Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@byai/topology

Package Overview
Dependencies
Maintainers
3
Versions
115
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@byai/topology

拓扑图组件

  • 1.9.6
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
5
increased by150%
Maintainers
3
Weekly downloads
 
Created
Source

Topology

安装

yarn add @byai/topology

开发

yarn
yarn start

测试

yarn test

示例

http://localhost:3000

使用

见demo

组件

Topology

props
nametypedefaultdescription
dataobject{ nodes: []; lines: [] }数据
snaplinebooltrue是否显示辅助对齐线
lineLinkageHighlightbooleanfalsehover 节点线条是否联动高亮
lineColorobject{}线条颜色映射对象 eg: {'锚点1': '#82BEFF', '锚点2': '#FFA39E'}
lineTextColorobject{}线条上文字颜色映射对象 eg: {'锚点1': '#82BEFF', '锚点2': '#FFA39E'}
lineOffsetYnumber0线条起始点向上偏移量
startPointAnchorIdstring保持所有线条起始点与 startPointAnchorId 线条一致
anchorPlacementstring锚点位置,若值为 bottom,则位于锚点的父节点底部
selectionAutoScrollbooleanfalse是否开启框选至边缘时画布自动滚动
lineTextMapobject{}线条上文字与 anchorId 映射对象 eg: {'anchorId1': '锚点1', 'anchorId2': '锚点2'}
lineTextDecorator(text: textPosition, line: ITopologyLine)-线条上文字装饰器
showText(start: string) => boolean-当 anchorId 为 startPointAnchorId 时, 是否显示线条文字
showBarbooltrue是否显示工具栏
showCenterbooltrue是否显示工具栏中的定位中心
showLayoutbooltrue是否显示工具栏中的自动布局
showDownloadboolfalse是否显示工具栏中的下载图片
showMinimapboolfalse是否显示小地图
allowNodeInsertOnEdgeboolean是否开启拖拽节点到线中间进行节点插入
canConnectMultiLinesboolfalse控制一个锚点是否可以连接多条线
overlapboolfalse是否允许节点覆盖,默认允许,设置 true 时不允许
overlapCallback() => voidoverlap 为 true 时的回调
overlapOffset{}{offsetX: 0, offsetY: 0}overlap 为 true 时,节点的 x,y 偏移量
customPostionHeightnumber0未设置 customPostionHeight 画布默认居中展示,当设置 customPostionHeight 时,画布距离顶部 customPostionHeight
readOnlyboolfalse只读模式,为true时不可编辑
prevNodeStyleobject-控制预览节点样式,目前支持配置 border、background 属性
isReduceRenderboolfalse控制节点 shouldComponentUpdate 生命周期的返回值
autoLayoutboolfalse自动布局,当数据中没有position属性时将自动计算布局。
renderTreeNode(node,decorators) => ReactNode-子节点render方法,接收节点数据,返回JSX。
getInstance(instance: Topology) => void-返回组件实例,用于调用组件内部的方法。
onChange(data, changeType) => void-数据发成改变时触发,changeType为改变的类型
onSelect(data) => void-选中数据时触发,返回当前选中的数据(包含节点、线段)
sortChildren(parent, children) => sortedChildren-子节点排序回调,可选,默认无。

node options 中 一些可配置参数

nametypedefaultdescription
idstring-节点id
canDragbooleantrue控制节点是否可拖拽
dragChildbooleanfalse设置当前节点下的子节点是否需要联动拖动
filterOverlapbooleanfalse控制节点在设置 overlap 为 true 时是否仍允许被覆盖

getInstance

返回topology组件的实例,可通过实例调用组件内部的方法:

scrollCanvasToCenter():void

移动到中心,当所有节点都有位置数据(positions)时,移动的中心点为内容的中心,否则为画布的中心。

autoLayout():void

自动计算布局

decorators

renderTreeNode的第二个参数,包含以下装饰器函数:

anchorDecorator

anchorDecorator是一个高阶函数,经过 anchorDecorator 包装的控件将变成一个锚点。

用法
anchorDecorator(options)(ReactNode)
options参数
nametypedefaultdescription
anchorIdstring-锚点唯一id,如果不传将默认生成一个自增的id

TemplateWrapper

模板装饰器,用于包装模板组件

用法

disabled 字段控制 TemplateNode 是否启用

<TemplateWrapper disabled generator={this.generatorNodeData}>
    <div>模板节点</div>
</TemplateWrapper>

props
nametypedefaultdescription
data() => nodeData-数据生成器,用于产生节点数据

FAQs

Package last updated on 22 Dec 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc