跳到主要内容

eo-display-canvas

<eo-display-canvas>

用于展示查看的画布构件。

Examples​

Basic​

Playground

Force layout​

Playground

Dagre layout​

Playground

Degraded diagram​

Playground

Properties​

NameDescriptionTypeDefaultRequired
cells

用于查看的画布可以更新 cells 属性。

InitialCell[]
layoutLayoutType
layoutOptionsLayoutOptions
autoSizeAutoSize
defaultNodeSizeSizeTuple [DEFAULT_NODE_SIZE, DEFAULT_NODE_SIZE]
defaultNodeBricksNodeBrickConf[]
degradedThreshold

当节点数量达到或超过 degradedThreshold 时,节点将被降级展示。

number 500
degradedNodeLabel

设置节点将降级展示时显示的名称。

string "<% DATA.node.id %>"
defaultEdgeLines

使用条件判断设置默认的边对应的连线。在 if 表达式中 DATA 为 { edge },例如:

defaultEdgeLines:
  - if: <% DATA.edge.data?.virtual %>
    dashed: true
EdgeLineConf[]
activeTargetActiveTarget | null
fadeUnrelatedCells

当鼠标悬浮到某节点上时,隐藏其他跟该节点无关的元素。

boolean
zoomableboolean true
scrollableboolean true
pannableboolean true
scaleRangeRangeTuple
hideZoomBar

隐藏右下角放大缩小的控制栏

boolean
autoCenterWhenCellsChange

每当 cells 改变时,重新自动居中

boolean
doNotResetActiveTargetForSelector

选择器,点击该选择器对应的元素时不重置 activeTarget。

string
doNotResetActiveTargetOutsideCanvas

在画布外点击时不重置 activeTarget。

boolean
extraStyleTextsstring[]

Events​

NameDescriptionEvent Detail
activeTarget.changeActiveTarget | null
cell.contextmenuCellContextMenuDetail
cell.clickCellContextMenuDetail

Methods​

NameDescriptionParamsReturns
center

Type references​

BaseBrickCell​

extends BaseCell
NameDescriptionTypeDefaultRequired
useBrickUseSingleBrickConf

BaseCell​

NameDescriptionTypeDefaultRequired
type"node" | "edge" | "decorator"✅
dataunknown

BaseNodeCell​

extends BaseCell
NameDescriptionTypeDefaultRequired
type"node"✅
idNodeId✅
containerIdNodeId
groupIdNodeId
viewNodeView✅

NodeView​

extends InitialNodeView
NameDescriptionTypeDefaultRequired
widthnumber✅
heightnumber✅

InitialNodeView​

NameDescriptionTypeDefaultRequired
xnumber✅
ynumber✅
widthnumber
heightnumber
lockedboolean

NodeComponentCell​

extends BaseNodeCell
NameDescriptionTypeDefaultRequired
componentNodeComponent

EdgeCell​

extends BaseCell
NameDescriptionTypeDefaultRequired
type"edge"✅
sourceNodeId✅
targetNodeId✅
viewEdgeView

EdgeView​

extends LineSettings
NameDescriptionTypeDefaultRequired
exitPositionNodePosition | null
entryPositionNodePosition | null
verticesNodePosition[] | null
xnumber
ynumber
widthnumber
heightnumber
lockedboolean

LineSettings​

NameDescriptionTypeDefaultRequired
typeLineType
curveTypeCurveType

DecoratorCell​

extends BaseCell
NameDescriptionTypeDefaultRequired
type"decorator"✅
decoratorDecoratorType✅
idNodeId✅
containerIdNodeId
groupIdNodeId
viewDecoratorView✅

DecoratorView​

extends NodeView
NameDescriptionTypeDefaultRequired
text

用于文本装饰器和容器装饰器

string
style

设置文本/区域/方框/容器装饰器的样式

CSSProperties
titleStyle

设置容器装饰器的标题的样式

CSSProperties
direction

设置容器装饰器的文本位置

Direction
level

设置容器层级(从小到大排序)

number
verticesNodePosition[] | null
usePlus

分组的+号功能

boolean

LayoutOptionsManual​

extends BaseLayoutOptions
NameDescriptionTypeDefaultRequired
initialLayoutInitialLayout

BaseLayoutOptions​

NameDescriptionTypeDefaultRequired
snap

Snap options. Setting to true means enable all snap options

boolean | SnapOptions
padding

画布内间距,自动居中时将预留此间距。

PartialRectTuple

SnapOptions​

NameDescriptionTypeDefaultRequired
grid

Snap to grid

boolean | SnapToGridOptions
object

Snap to object

boolean | SnapToObjectOptions

SnapToGridOptions​

NameDescriptionTypeDefaultRequired
sizenumber10

SnapToObjectOptions​

NameDescriptionTypeDefaultRequired
distancenumber5
positions

默认为 "all",在中心、上下左右共五个位置进行对齐。 设置为 "center" 表示只对中心进行对齐。 可以按顺序设置对齐位置,例如 "center top bottom" 表示只对中心和上下共三个位置进行对齐。

string"all"

LayoutOptionsDagre​

extends BaseAutoLayoutOptions
NameDescriptionTypeDefaultRequired
rankdir"TB" | "BT" | "LR" | "RL""TB"
ranksepnumber50
edgesepnumber10
nodesepnumber50
align"UL" | "UR" | "DL" | "DR"

BaseAutoLayoutOptions​

extends BaseLayoutOptions
NameDescriptionTypeDefaultRequired
nodePaddingPartialRectTuple
alignOrigin

根据节点什么位置进行对齐,支持关键字、百分比和比例值。 第一个值为 x 轴,第二个值为 y 轴。 使用数字时,表示相对于节点的宽高的比例。

注意,节点宽高将包含 nodePadding 的值。

AlignOrigin["center","center"]

LayoutOptionsForce​

extends BaseAutoLayoutOptions
NameDescriptionTypeDefaultRequired
collide

设置碰撞参数

boolean | ForceCollideOptions

ForceCollideOptions​

NameDescriptionTypeDefaultRequired
radiusDiff

在计算节点碰撞关系时,节点半径 = 节点固有半径 + radiusDiff。

其中,节点固有半径 = 节点矩形对角线长度 / 2。

number18
strength

See https://d3js.org/d3-force/collide#collide_strength

number1
iterations

See https://d3js.org/d3-force/collide#collide_iterations

number1

AutoSize​

NameDescriptionTypeDefaultRequired
width"fit-content"
minWidthnumber
maxWidthnumber
height"fit-content"
minHeightnumber
maxHeightnumber

NodeBrickConf​

NameDescriptionTypeDefaultRequired
useBrickUseSingleBrickConf
componentNodeComponent
ifstring | boolean | null

EdgeLineConf​

extends BaseEdgeLineConf
NameDescriptionTypeDefaultRequired
ifstring | boolean | null

BaseEdgeLineConf​

NameDescriptionTypeDefaultRequired
typeLineType
curveTypeCurveType
dashedboolean
dottedboolean
strokeWidthnumber
strokeColorstring
interactStrokeWidthnumber
parallelGapnumber
markersLineMarkerConf[]
callLabelOnDoubleClickstring
textTextOptions
labelLineLabelConf
showStartArrowboolean
showEndArrowboolean
animateLineAnimate
overridesEdgeLineConfOverrides
jumpsboolean

LineAnimate​

NameDescriptionTypeDefaultRequired
useAnimateboolean✅
durationnumber✅

EdgeLineConfOverrides​

NameDescriptionTypeDefaultRequired
activeEdgeLineConfOverridable
activeRelatedEdgeLineConfOverridable

EdgeLineConfOverridable​

NameDescriptionTypeDefaultRequired
strokeWidthnumber
strokeColorstring
motionEdgeLineMotion

EdgeLineMotion​

NameDescriptionTypeDefaultRequired
shapeEdgeLineMotionShape
speed

移动速度,单位 px/s,默认为 50

number
size

尺寸,默认为当前 strokeWidth * 4

number

ActiveTargetOfNode​

NameDescriptionTypeDefaultRequired
type"node"✅
idNodeId✅

ActiveTargetOfEdge​

NameDescriptionTypeDefaultRequired
type"edge"✅
sourceNodeId✅
targetNodeId✅

ActiveTargetOfDecorator​

NameDescriptionTypeDefaultRequired
type"decorator"✅
idNodeId✅

ActiveTargetOfMulti​

NameDescriptionTypeDefaultRequired
type"multi"✅
targetsActiveTargetOfSingular[]✅

CellContextMenuDetail​

extends CellClickDetail
NameDescriptionTypeDefaultRequired
cellCell✅
targetActiveTarget✅

CellClickDetail​

NameDescriptionTypeDefaultRequired
cellCell✅
clientXnumber✅
clientYnumber✅
locked

该元素或其容器是否处于锁定状态

boolean

InitialCell​

InitialNodeCell | EdgeCell | DecoratorCell

InitialNodeCell​

Omit<NodeCell, "view"> & { view?: InitialNodeView }

NodeCell​

NodeBrickCell | NodeComponentCell

NodeBrickCell​

BaseBrickCell & BaseNodeCell

NodeId​

string

NodeComponent​

FunctionComponent<{ node: { id: NodeId; data: any; locked?: boolean }; refCallback?: (element: HTMLElement | null) => void }>

LineType​

"straight" | "curve" | "polyline"

DecoratorType​

"text" | "area" | "container" | "rect" | "line" | "group"

Direction​

"top" | "right" | "bottom" | "left"

LayoutType​

"manual" | "force" | "dagre" | undefined

LayoutOptions​

LayoutOptionsManual | LayoutOptionsDagre | LayoutOptionsForce

InitialLayout​

"default" | "layered-architecture" | "layered-staggered"

AlignOrigin​

[x: string | number, y: string | number]

SizeTuple​

[width: number, height: number]

EdgeLineMotionShape​

"dot" | "triangle" | "none"

ActiveTarget​

ActiveTargetOfSingular | ActiveTargetOfMulti

ActiveTargetOfSingular​

ActiveTargetOfNode | ActiveTargetOfEdge | ActiveTargetOfDecorator

RangeTuple​

[min: number, max: number]

Cell​

NodeCell | EdgeCell | DecoratorCell