@antv/layout 0.3.18 → 0.3.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/layout.min.js +1 -1
- package/dist/layout.min.js.map +1 -1
- package/es/layout/dagre.d.ts +4 -4
- package/es/layout/dagre.js +58 -44
- package/es/layout/dagre.js.map +1 -1
- package/es/registy/index.js +4 -3
- package/es/registy/index.js.map +1 -1
- package/lib/layout/dagre.d.ts +4 -4
- package/lib/layout/dagre.js +56 -42
- package/lib/layout/dagre.js.map +1 -1
- package/lib/registy/index.js +4 -2
- package/lib/registy/index.js.map +1 -1
- package/package.json +1 -1
- package/src/layout/dagre.ts +55 -42
- package/src/registy/index.ts +10 -4
package/lib/layout/dagre.js
CHANGED
|
@@ -35,7 +35,7 @@ var DagreLayout = /** @class */ (function (_super) {
|
|
|
35
35
|
function DagreLayout(options) {
|
|
36
36
|
var _this = _super.call(this) || this;
|
|
37
37
|
/** layout 方向, 可选 TB, BT, LR, RL */
|
|
38
|
-
_this.rankdir =
|
|
38
|
+
_this.rankdir = 'TB';
|
|
39
39
|
/** 节点水平间距(px) */
|
|
40
40
|
_this.nodesep = 50;
|
|
41
41
|
/** 每一层节点之间间距 */
|
|
@@ -67,7 +67,7 @@ var DagreLayout = /** @class */ (function (_super) {
|
|
|
67
67
|
}
|
|
68
68
|
DagreLayout.prototype.getDefaultCfg = function () {
|
|
69
69
|
return {
|
|
70
|
-
rankdir:
|
|
70
|
+
rankdir: 'TB',
|
|
71
71
|
align: undefined,
|
|
72
72
|
nodeSize: undefined,
|
|
73
73
|
nodesepFunc: undefined,
|
|
@@ -84,9 +84,9 @@ var DagreLayout = /** @class */ (function (_super) {
|
|
|
84
84
|
*/
|
|
85
85
|
DagreLayout.prototype.execute = function () {
|
|
86
86
|
var _this = this;
|
|
87
|
-
var _a, _b, _c;
|
|
87
|
+
var _a, _b, _c, _d;
|
|
88
88
|
var self = this;
|
|
89
|
-
var nodes = self.nodes, nodeSize = self.nodeSize, rankdir = self.rankdir, combos = self.combos, begin = self.begin, radial = self.radial,
|
|
89
|
+
var nodes = self.nodes, nodeSize = self.nodeSize, rankdir = self.rankdir, combos = self.combos, begin = self.begin, radial = self.radial, _e = self.comboEdges, comboEdges = _e === void 0 ? [] : _e, _f = self.vedges, vedges = _f === void 0 ? [] : _f;
|
|
90
90
|
if (!nodes)
|
|
91
91
|
return;
|
|
92
92
|
var edges = self.edges || [];
|
|
@@ -104,6 +104,21 @@ var DagreLayout = /** @class */ (function (_super) {
|
|
|
104
104
|
nodeComboMap[node.comboId] = nodeComboMap[node.comboId] || [];
|
|
105
105
|
nodeComboMap[node.comboId].push(node.id);
|
|
106
106
|
});
|
|
107
|
+
var sortedNodes = [];
|
|
108
|
+
var visitedMap = {};
|
|
109
|
+
if ((_a = self.nodeOrder) === null || _a === void 0 ? void 0 : _a.length) {
|
|
110
|
+
self.nodeOrder.forEach(function (id) {
|
|
111
|
+
visitedMap[id] = true;
|
|
112
|
+
sortedNodes.push(self.nodeMap[id]);
|
|
113
|
+
});
|
|
114
|
+
nodes.forEach(function (node) {
|
|
115
|
+
if (!visitedMap[node.id])
|
|
116
|
+
sortedNodes.push(node);
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
sortedNodes = nodes;
|
|
121
|
+
}
|
|
107
122
|
var nodeSizeFunc;
|
|
108
123
|
if (!nodeSize) {
|
|
109
124
|
nodeSizeFunc = function (d) {
|
|
@@ -129,7 +144,7 @@ var DagreLayout = /** @class */ (function (_super) {
|
|
|
129
144
|
var nodesepfunc = (0, util_1.getFunc)(self.nodesep, 50, self.nodesepFunc);
|
|
130
145
|
var horisep = nodesepfunc;
|
|
131
146
|
var vertisep = ranksepfunc;
|
|
132
|
-
if (rankdir ===
|
|
147
|
+
if (rankdir === 'LR' || rankdir === 'RL') {
|
|
133
148
|
horisep = ranksepfunc;
|
|
134
149
|
vertisep = nodesepfunc;
|
|
135
150
|
}
|
|
@@ -156,7 +171,7 @@ var DagreLayout = /** @class */ (function (_super) {
|
|
|
156
171
|
g.setParent(combo.id, combo.parentId);
|
|
157
172
|
});
|
|
158
173
|
}
|
|
159
|
-
|
|
174
|
+
sortedNodes
|
|
160
175
|
.filter(function (node) { return node.layout !== false; })
|
|
161
176
|
.forEach(function (node) {
|
|
162
177
|
var size = nodeSizeFunc(node);
|
|
@@ -182,8 +197,8 @@ var DagreLayout = /** @class */ (function (_super) {
|
|
|
182
197
|
});
|
|
183
198
|
edges.forEach(function (edge) {
|
|
184
199
|
// dagrejs Wiki https://github.com/dagrejs/dagre/wiki#configuring-the-layout
|
|
185
|
-
var source = (0, util_1.getEdgeTerminal)(edge,
|
|
186
|
-
var target = (0, util_1.getEdgeTerminal)(edge,
|
|
200
|
+
var source = (0, util_1.getEdgeTerminal)(edge, 'source');
|
|
201
|
+
var target = (0, util_1.getEdgeTerminal)(edge, 'target');
|
|
187
202
|
if (_this.layoutNode(source) && _this.layoutNode(target)) {
|
|
188
203
|
g.setEdge(source, target, {
|
|
189
204
|
weight: edge.weight || 1,
|
|
@@ -191,7 +206,7 @@ var DagreLayout = /** @class */ (function (_super) {
|
|
|
191
206
|
}
|
|
192
207
|
});
|
|
193
208
|
// create virtual edges from node to node for comboEdges
|
|
194
|
-
(
|
|
209
|
+
(_b = comboEdges === null || comboEdges === void 0 ? void 0 : comboEdges.concat(vedges || [])) === null || _b === void 0 ? void 0 : _b.forEach(function (comboEdge) {
|
|
195
210
|
var _a, _b;
|
|
196
211
|
var source = comboEdge.source, target = comboEdge.target;
|
|
197
212
|
var sources = ((_a = comboMap[source]) === null || _a === void 0 ? void 0 : _a.collapsed)
|
|
@@ -210,7 +225,7 @@ var DagreLayout = /** @class */ (function (_super) {
|
|
|
210
225
|
});
|
|
211
226
|
// 考虑增量图中的原始图
|
|
212
227
|
var prevGraph = undefined;
|
|
213
|
-
if ((
|
|
228
|
+
if ((_c = self.preset) === null || _c === void 0 ? void 0 : _c.nodes) {
|
|
214
229
|
prevGraph = new graph_1.Graph({
|
|
215
230
|
multigraph: true,
|
|
216
231
|
compound: true,
|
|
@@ -249,24 +264,23 @@ var DagreLayout = /** @class */ (function (_super) {
|
|
|
249
264
|
dBegin[0] = begin[0] - minX_1;
|
|
250
265
|
dBegin[1] = begin[1] - minY_1;
|
|
251
266
|
}
|
|
252
|
-
var isHorizontal = rankdir ===
|
|
267
|
+
var isHorizontal = rankdir === 'LR' || rankdir === 'RL';
|
|
253
268
|
// 变形为辐射
|
|
254
269
|
if (radial) {
|
|
255
|
-
var
|
|
270
|
+
var _g = this, focusNode = _g.focusNode, ranksep = _g.ranksep, getRadialPos_1 = _g.getRadialPos;
|
|
256
271
|
var focusId = (0, util_1.isString)(focusNode) ? focusNode : focusNode === null || focusNode === void 0 ? void 0 : focusNode.id;
|
|
257
|
-
var focusLayer_1 = focusId ? (
|
|
272
|
+
var focusLayer_1 = focusId ? (_d = g.node(focusId)) === null || _d === void 0 ? void 0 : _d._rank : 0;
|
|
258
273
|
var layers_1 = [];
|
|
259
|
-
var dim_1 = isHorizontal ?
|
|
260
|
-
var sizeDim_1 = isHorizontal ?
|
|
274
|
+
var dim_1 = isHorizontal ? 'y' : 'x';
|
|
275
|
+
var sizeDim_1 = isHorizontal ? 'height' : 'width';
|
|
261
276
|
// 找到整个图作为环的坐标维度(dim)的最大、最小值,考虑节点宽度
|
|
262
277
|
var min_1 = Infinity;
|
|
263
278
|
var max_1 = -Infinity;
|
|
264
279
|
g.nodes().forEach(function (node) {
|
|
265
280
|
var coord = g.node(node);
|
|
266
|
-
|
|
267
|
-
if (!nodes[i])
|
|
281
|
+
if (!self.nodeMap[node])
|
|
268
282
|
return;
|
|
269
|
-
var currentNodesep = nodesepfunc(
|
|
283
|
+
var currentNodesep = nodesepfunc(self.nodeMap[node]);
|
|
270
284
|
if (focusLayer_1 === 0) {
|
|
271
285
|
if (!layers_1[coord._rank]) {
|
|
272
286
|
layers_1[coord._rank] = {
|
|
@@ -348,15 +362,14 @@ var DagreLayout = /** @class */ (function (_super) {
|
|
|
348
362
|
// 获取变形为 radial 后的直角坐标系坐标
|
|
349
363
|
var _a = getRadialPos_1(coord[dim_1], range_1, rangeLength_1, radius, arcRange), newX = _a.x, newY = _a.y;
|
|
350
364
|
// 将新坐标写入源数据
|
|
351
|
-
|
|
352
|
-
if (!nodes[i])
|
|
365
|
+
if (!self.nodeMap[node])
|
|
353
366
|
return;
|
|
354
|
-
|
|
355
|
-
|
|
367
|
+
self.nodeMap[node].x = newX + dBegin[0];
|
|
368
|
+
self.nodeMap[node].y = newY + dBegin[1];
|
|
356
369
|
// @ts-ignore: pass layer order to data for increment layout use
|
|
357
|
-
|
|
370
|
+
self.nodeMap[node]._order = coord._order;
|
|
358
371
|
// 找到本层最大的一个 ranksep,作为下一层与本层的间隙,叠加到下一层的半径上
|
|
359
|
-
var currentNodeRanksep = ranksepfunc(
|
|
372
|
+
var currentNodeRanksep = ranksepfunc(self.nodeMap[node]);
|
|
360
373
|
if (maxRanksep < currentNodeRanksep)
|
|
361
374
|
maxRanksep = currentNodeRanksep;
|
|
362
375
|
});
|
|
@@ -374,13 +387,13 @@ var DagreLayout = /** @class */ (function (_super) {
|
|
|
374
387
|
// 第一层只有一个节点,直接放在圆心,初始半径设定为 0
|
|
375
388
|
if (isFirstLevel_1 && layerNodes.nodes.length === 1) {
|
|
376
389
|
// 将新坐标写入源数据
|
|
377
|
-
var
|
|
378
|
-
if (
|
|
390
|
+
var nodeId = layerNodes.nodes[0];
|
|
391
|
+
if (!self.nodeMap[nodeId])
|
|
379
392
|
return;
|
|
380
|
-
|
|
381
|
-
|
|
393
|
+
self.nodeMap[nodeId].x = dBegin[0];
|
|
394
|
+
self.nodeMap[nodeId].y = dBegin[1];
|
|
382
395
|
radiusMap_1[layerNodes.nodes[0]] = 0;
|
|
383
|
-
radius_1 = ranksepfunc(
|
|
396
|
+
radius_1 = ranksepfunc(self.nodeMap[nodeId]);
|
|
384
397
|
isFirstLevel_1 = false;
|
|
385
398
|
return;
|
|
386
399
|
}
|
|
@@ -410,16 +423,16 @@ var DagreLayout = /** @class */ (function (_super) {
|
|
|
410
423
|
var _a, _b, _c;
|
|
411
424
|
var coord = g.edge(edge);
|
|
412
425
|
var i = edges.findIndex(function (it) {
|
|
413
|
-
var source = (0, util_1.getEdgeTerminal)(it,
|
|
414
|
-
var target = (0, util_1.getEdgeTerminal)(it,
|
|
426
|
+
var source = (0, util_1.getEdgeTerminal)(it, 'source');
|
|
427
|
+
var target = (0, util_1.getEdgeTerminal)(it, 'target');
|
|
415
428
|
return source === edge.v && target === edge.w;
|
|
416
429
|
});
|
|
417
430
|
if (i <= -1)
|
|
418
431
|
return;
|
|
419
432
|
if (self.edgeLabelSpace &&
|
|
420
433
|
self.controlPoints &&
|
|
421
|
-
edges[i].type !==
|
|
422
|
-
var otherDim_1 = dim_1 ===
|
|
434
|
+
edges[i].type !== 'loop') {
|
|
435
|
+
var otherDim_1 = dim_1 === 'x' ? 'y' : 'x';
|
|
423
436
|
var controlPoints = (_a = coord === null || coord === void 0 ? void 0 : coord.points) === null || _a === void 0 ? void 0 : _a.slice(1, coord.points.length - 1);
|
|
424
437
|
var newControlPoints_1 = [];
|
|
425
438
|
var sourceOtherDimValue_1 = (_b = g.node(edge.v)) === null || _b === void 0 ? void 0 : _b[otherDim_1];
|
|
@@ -444,7 +457,7 @@ var DagreLayout = /** @class */ (function (_super) {
|
|
|
444
457
|
}
|
|
445
458
|
else {
|
|
446
459
|
var layerCoords_1 = new Set();
|
|
447
|
-
var isInvert = rankdir ===
|
|
460
|
+
var isInvert = rankdir === 'BT' || rankdir === 'RL';
|
|
448
461
|
var layerCoordSort = isInvert
|
|
449
462
|
? function (a, b) { return b - a; }
|
|
450
463
|
: function (a, b) { return a - b; };
|
|
@@ -481,24 +494,25 @@ var DagreLayout = /** @class */ (function (_super) {
|
|
|
481
494
|
return ps.filter(function (point) { return point.x <= max && point.x >= min; });
|
|
482
495
|
};
|
|
483
496
|
g.edges().forEach(function (edge) {
|
|
497
|
+
var _a;
|
|
484
498
|
var coord = g.edge(edge);
|
|
485
499
|
var i = edges.findIndex(function (it) {
|
|
486
|
-
var source = (0, util_1.getEdgeTerminal)(it,
|
|
487
|
-
var target = (0, util_1.getEdgeTerminal)(it,
|
|
500
|
+
var source = (0, util_1.getEdgeTerminal)(it, 'source');
|
|
501
|
+
var target = (0, util_1.getEdgeTerminal)(it, 'target');
|
|
488
502
|
return source === edge.v && target === edge.w;
|
|
489
503
|
});
|
|
490
504
|
if (i <= -1)
|
|
491
505
|
return;
|
|
492
506
|
if (self.edgeLabelSpace &&
|
|
493
507
|
self.controlPoints &&
|
|
494
|
-
edges[i].type !==
|
|
495
|
-
|
|
496
|
-
var targetNode = self.nodeMap[edge.w];
|
|
497
|
-
edges[i].controlPoints = getControlPoints(coord === null || coord === void 0 ? void 0 : coord.points, sourceNode, targetNode, layerCoordsArr_1, isHorizontal, isDifferentLayer_1, filterControlPointsOutOfBoundary_1);
|
|
498
|
-
edges[i].controlPoints.forEach(function (point) {
|
|
508
|
+
edges[i].type !== 'loop') {
|
|
509
|
+
(_a = coord === null || coord === void 0 ? void 0 : coord.points) === null || _a === void 0 ? void 0 : _a.forEach(function (point) {
|
|
499
510
|
point.x += dBegin[0];
|
|
500
511
|
point.y += dBegin[1];
|
|
501
512
|
});
|
|
513
|
+
var sourceNode = self.nodeMap[edge.v];
|
|
514
|
+
var targetNode = self.nodeMap[edge.w];
|
|
515
|
+
edges[i].controlPoints = getControlPoints(coord === null || coord === void 0 ? void 0 : coord.points, sourceNode, targetNode, layerCoordsArr_1, isHorizontal, isDifferentLayer_1, filterControlPointsOutOfBoundary_1);
|
|
502
516
|
}
|
|
503
517
|
});
|
|
504
518
|
}
|
|
@@ -524,7 +538,7 @@ var DagreLayout = /** @class */ (function (_super) {
|
|
|
524
538
|
};
|
|
525
539
|
};
|
|
526
540
|
DagreLayout.prototype.getType = function () {
|
|
527
|
-
return
|
|
541
|
+
return 'dagre';
|
|
528
542
|
};
|
|
529
543
|
return DagreLayout;
|
|
530
544
|
}(base_1.Base));
|
package/lib/layout/dagre.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dagre.js","sourceRoot":"","sources":["../../src/layout/dagre.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dagre.js","sourceRoot":"","sources":["../../src/layout/dagre.ts"],"names":[],"mappings":"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"}
|
package/lib/registy/index.js
CHANGED
|
@@ -28,10 +28,12 @@ var registerLayout = function (name, layoutOverride) {
|
|
|
28
28
|
var GLayout = /** @class */ (function (_super) {
|
|
29
29
|
__extends(GLayout, _super);
|
|
30
30
|
function GLayout(cfg) {
|
|
31
|
-
var _this =
|
|
31
|
+
var _this = this;
|
|
32
|
+
var _a;
|
|
33
|
+
_this = _super.call(this) || this;
|
|
32
34
|
var self = _this;
|
|
33
35
|
var props = {};
|
|
34
|
-
var defaultCfg = self.getDefaultCfg();
|
|
36
|
+
var defaultCfg = Object.assign({}, self.getDefaultCfg(), ((_a = layoutOverride.getDefaultCfg) === null || _a === void 0 ? void 0 : _a.call(layoutOverride)) || {});
|
|
35
37
|
Object.assign(props, defaultCfg, layoutOverride, cfg);
|
|
36
38
|
Object.keys(props).forEach(function (key) {
|
|
37
39
|
var value = props[key];
|
package/lib/registy/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registy/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,uCAAsC;AACtC,gCAAmC;AAEnC,IAAM,GAAG,GAAqB,IAAI,GAAG,EAAE,CAAC;AAEjC,IAAM,cAAc,GAAG,UAAC,IAAY,EAAE,cAAmB;IAC9D,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACjB,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registy/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,uCAAsC;AACtC,gCAAmC;AAEnC,IAAM,GAAG,GAAqB,IAAI,GAAG,EAAE,CAAC;AAEjC,IAAM,cAAc,GAAG,UAAC,IAAY,EAAE,cAAmB;IAC9D,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACjB,OAAO,CAAC,IAAI,CACV,mCAA4B,IAAI,2CAAwC,CACzE,CAAC;KACH;IACD,IAAI,IAAA,eAAQ,EAAC,cAAc,CAAC,EAAE;QAC5B,iDAAiD;QACjD;YAAsB,2BAAI;YACxB,iBAAY,GAAQ;gBAApB,iBAcC;;wBAbC,iBAAO;gBACP,IAAM,IAAI,GAAG,KAAW,CAAC;gBACzB,IAAM,KAAK,GAAQ,EAAE,CAAC;gBACtB,IAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAC9B,EAAE,EACF,IAAI,CAAC,aAAa,EAAE,EACpB,CAAA,MAAA,cAAc,CAAC,aAAa,8DAAI,KAAI,EAAE,CACvC,CAAC;gBACF,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,GAAc,CAAC,CAAC;gBACjE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAC,GAAW;oBACrC,IAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;oBACzB,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACpB,CAAC,CAAC,CAAC;;YACL,CAAC;YACH,cAAC;QAAD,CAAC,AAhBD,CAAsB,WAAI,GAgBzB;QACD,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACxB;SAAM;QACL,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;KAC/B;IACD,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC,CAAC;AA9BW,QAAA,cAAc,kBA8BzB;AAEK,IAAM,gBAAgB,GAAG,UAAC,IAAY;IAC3C,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACjB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAClB;AACH,CAAC,CAAC;AAJW,QAAA,gBAAgB,oBAI3B;AAEK,IAAM,eAAe,GAAG,UAAC,IAAY;IAC1C,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QACjB,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACtB;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AALW,QAAA,eAAe,mBAK1B"}
|
package/package.json
CHANGED
package/src/layout/dagre.ts
CHANGED
|
@@ -10,8 +10,8 @@ import {
|
|
|
10
10
|
PointTuple,
|
|
11
11
|
Point,
|
|
12
12
|
Node,
|
|
13
|
-
} from
|
|
14
|
-
import dagre from
|
|
13
|
+
} from './types';
|
|
14
|
+
import dagre from './dagre/index';
|
|
15
15
|
import {
|
|
16
16
|
isArray,
|
|
17
17
|
isNumber,
|
|
@@ -19,19 +19,19 @@ import {
|
|
|
19
19
|
getEdgeTerminal,
|
|
20
20
|
getFunc,
|
|
21
21
|
isString,
|
|
22
|
-
} from
|
|
23
|
-
import { Base } from
|
|
24
|
-
import { Graph as DagreGraph } from
|
|
22
|
+
} from '../util';
|
|
23
|
+
import { Base } from './base';
|
|
24
|
+
import { Graph as DagreGraph } from './dagre/graph';
|
|
25
25
|
|
|
26
26
|
/**
|
|
27
27
|
* 层次布局
|
|
28
28
|
*/
|
|
29
29
|
export class DagreLayout extends Base {
|
|
30
30
|
/** layout 方向, 可选 TB, BT, LR, RL */
|
|
31
|
-
public rankdir:
|
|
31
|
+
public rankdir: 'TB' | 'BT' | 'LR' | 'RL' = 'TB';
|
|
32
32
|
|
|
33
33
|
/** 节点对齐方式,可选 UL, UR, DL, DR */
|
|
34
|
-
public align: undefined |
|
|
34
|
+
public align: undefined | 'UL' | 'UR' | 'DL' | 'DR';
|
|
35
35
|
|
|
36
36
|
/** 布局的起始(左上角)位置 */
|
|
37
37
|
public begin: PointTuple;
|
|
@@ -93,7 +93,7 @@ export class DagreLayout extends Base {
|
|
|
93
93
|
|
|
94
94
|
public getDefaultCfg() {
|
|
95
95
|
return {
|
|
96
|
-
rankdir:
|
|
96
|
+
rankdir: 'TB', // layout 方向, 可选 TB, BT, LR, RL
|
|
97
97
|
align: undefined, // 节点对齐方式,可选 UL, UR, DL, DR
|
|
98
98
|
nodeSize: undefined, // 节点大小
|
|
99
99
|
nodesepFunc: undefined, // 节点水平间距(px)
|
|
@@ -149,6 +149,20 @@ export class DagreLayout extends Base {
|
|
|
149
149
|
nodeComboMap[node.comboId].push(node.id);
|
|
150
150
|
});
|
|
151
151
|
|
|
152
|
+
let sortedNodes: OutNode[] = [];
|
|
153
|
+
const visitedMap: { [id: string]: boolean } = {};
|
|
154
|
+
if (self.nodeOrder?.length) {
|
|
155
|
+
self.nodeOrder.forEach((id) => {
|
|
156
|
+
visitedMap[id] = true;
|
|
157
|
+
sortedNodes.push(self.nodeMap[id]);
|
|
158
|
+
});
|
|
159
|
+
nodes.forEach((node) => {
|
|
160
|
+
if (!visitedMap[node.id]) sortedNodes.push(node);
|
|
161
|
+
});
|
|
162
|
+
} else {
|
|
163
|
+
sortedNodes = nodes;
|
|
164
|
+
}
|
|
165
|
+
|
|
152
166
|
let nodeSizeFunc: (d?: any) => number[];
|
|
153
167
|
if (!nodeSize) {
|
|
154
168
|
nodeSizeFunc = (d: any) => {
|
|
@@ -173,7 +187,7 @@ export class DagreLayout extends Base {
|
|
|
173
187
|
let horisep: Function = nodesepfunc;
|
|
174
188
|
let vertisep: Function = ranksepfunc;
|
|
175
189
|
|
|
176
|
-
if (rankdir ===
|
|
190
|
+
if (rankdir === 'LR' || rankdir === 'RL') {
|
|
177
191
|
horisep = ranksepfunc;
|
|
178
192
|
vertisep = nodesepfunc;
|
|
179
193
|
}
|
|
@@ -202,7 +216,7 @@ export class DagreLayout extends Base {
|
|
|
202
216
|
});
|
|
203
217
|
}
|
|
204
218
|
|
|
205
|
-
|
|
219
|
+
sortedNodes
|
|
206
220
|
.filter((node) => node.layout !== false)
|
|
207
221
|
.forEach((node) => {
|
|
208
222
|
const size = nodeSizeFunc(node);
|
|
@@ -229,8 +243,8 @@ export class DagreLayout extends Base {
|
|
|
229
243
|
|
|
230
244
|
edges.forEach((edge) => {
|
|
231
245
|
// dagrejs Wiki https://github.com/dagrejs/dagre/wiki#configuring-the-layout
|
|
232
|
-
const source = getEdgeTerminal(edge,
|
|
233
|
-
const target = getEdgeTerminal(edge,
|
|
246
|
+
const source = getEdgeTerminal(edge, 'source');
|
|
247
|
+
const target = getEdgeTerminal(edge, 'target');
|
|
234
248
|
if (this.layoutNode(source) && this.layoutNode(target)) {
|
|
235
249
|
g.setEdge(source, target, {
|
|
236
250
|
weight: edge.weight || 1,
|
|
@@ -295,23 +309,22 @@ export class DagreLayout extends Base {
|
|
|
295
309
|
dBegin[1] = begin[1] - minY;
|
|
296
310
|
}
|
|
297
311
|
|
|
298
|
-
const isHorizontal = rankdir ===
|
|
312
|
+
const isHorizontal = rankdir === 'LR' || rankdir === 'RL';
|
|
299
313
|
// 变形为辐射
|
|
300
314
|
if (radial) {
|
|
301
315
|
const { focusNode, ranksep, getRadialPos } = this;
|
|
302
316
|
const focusId = isString(focusNode) ? focusNode : focusNode?.id;
|
|
303
317
|
const focusLayer = focusId ? g.node(focusId)?._rank : 0;
|
|
304
318
|
const layers: any[] = [];
|
|
305
|
-
const dim = isHorizontal ?
|
|
306
|
-
const sizeDim = isHorizontal ?
|
|
319
|
+
const dim = isHorizontal ? 'y' : 'x';
|
|
320
|
+
const sizeDim = isHorizontal ? 'height' : 'width';
|
|
307
321
|
// 找到整个图作为环的坐标维度(dim)的最大、最小值,考虑节点宽度
|
|
308
322
|
let min = Infinity;
|
|
309
323
|
let max = -Infinity;
|
|
310
324
|
g.nodes().forEach((node: any) => {
|
|
311
325
|
const coord = g.node(node)! as any;
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
const currentNodesep = nodesepfunc(nodes[i]);
|
|
326
|
+
if (!self.nodeMap[node]) return;
|
|
327
|
+
const currentNodesep = nodesepfunc(self.nodeMap[node]);
|
|
315
328
|
|
|
316
329
|
if (focusLayer === 0) {
|
|
317
330
|
if (!layers[coord._rank]) {
|
|
@@ -409,15 +422,14 @@ export class DagreLayout extends Base {
|
|
|
409
422
|
arcRange
|
|
410
423
|
);
|
|
411
424
|
// 将新坐标写入源数据
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
nodes[i].y = newY + dBegin[1];
|
|
425
|
+
if (!self.nodeMap[node]) return;
|
|
426
|
+
self.nodeMap[node].x = newX + dBegin[0];
|
|
427
|
+
self.nodeMap[node].y = newY + dBegin[1];
|
|
416
428
|
// @ts-ignore: pass layer order to data for increment layout use
|
|
417
|
-
|
|
429
|
+
self.nodeMap[node]._order = coord._order;
|
|
418
430
|
|
|
419
431
|
// 找到本层最大的一个 ranksep,作为下一层与本层的间隙,叠加到下一层的半径上
|
|
420
|
-
const currentNodeRanksep = ranksepfunc(
|
|
432
|
+
const currentNodeRanksep = ranksepfunc(self.nodeMap[node]);
|
|
421
433
|
if (maxRanksep < currentNodeRanksep) maxRanksep = currentNodeRanksep;
|
|
422
434
|
});
|
|
423
435
|
return maxRanksep;
|
|
@@ -436,12 +448,12 @@ export class DagreLayout extends Base {
|
|
|
436
448
|
// 第一层只有一个节点,直接放在圆心,初始半径设定为 0
|
|
437
449
|
if (isFirstLevel && layerNodes.nodes.length === 1) {
|
|
438
450
|
// 将新坐标写入源数据
|
|
439
|
-
const
|
|
440
|
-
if (
|
|
441
|
-
|
|
442
|
-
|
|
451
|
+
const nodeId = layerNodes.nodes[0];
|
|
452
|
+
if (!self.nodeMap[nodeId]) return;
|
|
453
|
+
self.nodeMap[nodeId].x = dBegin[0];
|
|
454
|
+
self.nodeMap[nodeId].y = dBegin[1];
|
|
443
455
|
radiusMap[layerNodes.nodes[0]] = 0;
|
|
444
|
-
radius = ranksepfunc(
|
|
456
|
+
radius = ranksepfunc(self.nodeMap[nodeId]);
|
|
445
457
|
isFirstLevel = false;
|
|
446
458
|
return;
|
|
447
459
|
}
|
|
@@ -477,17 +489,17 @@ export class DagreLayout extends Base {
|
|
|
477
489
|
g.edges().forEach((edge: any) => {
|
|
478
490
|
const coord = g.edge(edge);
|
|
479
491
|
const i = edges.findIndex((it) => {
|
|
480
|
-
const source = getEdgeTerminal(it,
|
|
481
|
-
const target = getEdgeTerminal(it,
|
|
492
|
+
const source = getEdgeTerminal(it, 'source');
|
|
493
|
+
const target = getEdgeTerminal(it, 'target');
|
|
482
494
|
return source === edge.v && target === edge.w;
|
|
483
495
|
});
|
|
484
496
|
if (i <= -1) return;
|
|
485
497
|
if (
|
|
486
498
|
self.edgeLabelSpace &&
|
|
487
499
|
self.controlPoints &&
|
|
488
|
-
edges[i].type !==
|
|
500
|
+
edges[i].type !== 'loop'
|
|
489
501
|
) {
|
|
490
|
-
const otherDim = dim ===
|
|
502
|
+
const otherDim = dim === 'x' ? 'y' : 'x';
|
|
491
503
|
const controlPoints = coord?.points?.slice(
|
|
492
504
|
1,
|
|
493
505
|
coord.points.length - 1
|
|
@@ -521,7 +533,7 @@ export class DagreLayout extends Base {
|
|
|
521
533
|
});
|
|
522
534
|
} else {
|
|
523
535
|
const layerCoords: Set<number> = new Set();
|
|
524
|
-
const isInvert = rankdir ===
|
|
536
|
+
const isInvert = rankdir === 'BT' || rankdir === 'RL';
|
|
525
537
|
const layerCoordSort = isInvert
|
|
526
538
|
? (a: number, b: number) => b - a
|
|
527
539
|
: (a: number, b: number) => a - b;
|
|
@@ -560,16 +572,21 @@ export class DagreLayout extends Base {
|
|
|
560
572
|
g.edges().forEach((edge: any) => {
|
|
561
573
|
const coord = g.edge(edge);
|
|
562
574
|
const i = edges.findIndex((it) => {
|
|
563
|
-
const source = getEdgeTerminal(it,
|
|
564
|
-
const target = getEdgeTerminal(it,
|
|
575
|
+
const source = getEdgeTerminal(it, 'source');
|
|
576
|
+
const target = getEdgeTerminal(it, 'target');
|
|
565
577
|
return source === edge.v && target === edge.w;
|
|
566
578
|
});
|
|
567
579
|
if (i <= -1) return;
|
|
568
580
|
if (
|
|
569
581
|
self.edgeLabelSpace &&
|
|
570
582
|
self.controlPoints &&
|
|
571
|
-
edges[i].type !==
|
|
583
|
+
edges[i].type !== 'loop'
|
|
572
584
|
) {
|
|
585
|
+
coord?.points?.forEach((point: any) => {
|
|
586
|
+
point.x += dBegin[0];
|
|
587
|
+
point.y += dBegin[1];
|
|
588
|
+
});
|
|
589
|
+
|
|
573
590
|
const sourceNode = self.nodeMap[edge.v];
|
|
574
591
|
const targetNode = self.nodeMap[edge.w];
|
|
575
592
|
edges[i].controlPoints = getControlPoints(
|
|
@@ -581,10 +598,6 @@ export class DagreLayout extends Base {
|
|
|
581
598
|
isDifferentLayer,
|
|
582
599
|
filterControlPointsOutOfBoundary
|
|
583
600
|
);
|
|
584
|
-
edges[i].controlPoints.forEach((point: any) => {
|
|
585
|
-
point.x += dBegin[0];
|
|
586
|
-
point.y += dBegin[1];
|
|
587
|
-
});
|
|
588
601
|
}
|
|
589
602
|
});
|
|
590
603
|
}
|
|
@@ -617,7 +630,7 @@ export class DagreLayout extends Base {
|
|
|
617
630
|
}
|
|
618
631
|
|
|
619
632
|
public getType() {
|
|
620
|
-
return
|
|
633
|
+
return 'dagre';
|
|
621
634
|
}
|
|
622
635
|
}
|
|
623
636
|
|