文章 dagre-compound APIs 文档
Post
Cancel

dagre-compound APIs 文档

布局方法

buildGraph(data, option?, setting?)

data: 必须 option & setting: 可选

初始化的图数据,是一个包括 nodes 数组和 edges 数组的对象,option 包含布局方向和需要展开的节点 id

参数

  • data: HierarchyGraphDef
  • option: HierarchyGraphOption
  • setting: DeepPartial<LayoutConfig>,正常无需配置

返回值

  • 返回值类型:HierarchyGraphNodeInfo
  • 包含所有节点、边、组的位置和大小等布局信息,数据结构参考接口定义

用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import { buildGraph, HierarchyGraphNodeInfo } from 'dagre-compound';

const data = {
    nodes: [
      { id: '0-1'},
      { id: '0-2'},
      { id: '1-1'},
      { id: '1-2'},
    ],
    edges: [
      { v: '0-1', w: '0-2' },
      { v: '0-2', w: '1-1' },
      { v: '1-1', w: '1-2' }
    ],
    compound: {
      GROUP0: ['0-1', '0-2']
    }
}
const renderInfo: HierarchyGraphNodeInfo = buildGraph(data); // 获得布局结构数据

接口定义

HierarchyGraphDef

初始化的图数据,是一个包括 nodes 数组和 edges 数组和分组对象的对象集合

属性类型说明
nodesHierarchyGraphNodeDef[]节点
edgesHierarchyGraphEdgeDef[]
compoundHierarchyGraphCompoundDef分组(optional)

HierarchyGraphNodeDef

节点的属性

属性类型说明
idany节点 id
widthnumber节点宽(optional)
heightnumber节点高(optional)
[key: string]any其他附加信息

HierarchyGraphEdgeDef

边的属性

属性类型说明
vany起始节点 id
wany终止节点 id
[key: string]any其他附加信息

HierarchyGraphCompoundDef

分组对象

属性类型说明
[parent: string]any[]分组信息,键为组名,值为所属子节点的 id 数组

HierarchyGraphOption

初始化选项,包含布局方向和需展开的节点

属性类型说明
rankDirectionTB | BT | LR | RL布局方向
expandedstring[]需展开的组节点 id

HierarchyGraphNodeInfo

生成的布局结构数据,extends from HierarchyBaseNodeInfo

属性类型说明
expandedboolean是否已展开
nodesArray<<br>HierarchyBaseNodeInfo | HierarchyGraphNodeInfo>该分组下的子节点
edgesHierarchyBaseEdgeInfo[]该分组下的边

HierarchyBaseNodeInfo

布局后的节点对象,包含了经过布局的位置和大小等信息

属性类型说明
nameany节点名称,等同于节点 id(待优化)
type0 | 1 | 2节点类型
0: 组节点
1: 常规节点
2:虚拟节点(参与布局单不需要参与渲染)
attr[key: string]: any;用户原始节点数据
parentNodeNamestring | null父节点 id
coreBox{ width: number; height: number; }coreBox,不含 padding
xnumberx 轴偏移值(相对父节点)
ynumbery 轴偏移值(相对父节点)
widthnumber宽,包含 padding
heightnumber高,包含 padding
labelHeightnumberlabel 高度
labelOffsetnumberlabel 距离坐标轴的位置
radiusnumber-
paddingTopnumber上边距
paddingBottomnumber下边距
paddingLeftnumber左边距
paddingRightnumber右边距

HierarchyBaseEdgeInfo

属性类型说明
vany起始节点 id
wany终止节点 id
inboundboolean | null是否为入边
pointsArray<{ x: number; y: number }>points
adjoiningEdge{ v: string; w: string; } | null相邻边
baseEdgeListArray<{ v: string; w: string; }>原始的 Edge 对象

LayoutConfig

布局配置信息,默认不需要更改,有强烈 dagre 定制使用者可参考

This post is licensed under CC BY 4.0 by the author.