@antv/layout 1.2.13 → 1.2.14-beta.1

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.
Files changed (232) hide show
  1. package/dist/85db61ddc757dae66e04.worker.js +2 -0
  2. package/dist/85db61ddc757dae66e04.worker.js.map +1 -0
  3. package/dist/index.min.js +1 -1
  4. package/dist/index.min.js.map +1 -1
  5. package/lib/{dagre → antv-dagre}/acyclic.d.ts +1 -1
  6. package/lib/antv-dagre/acyclic.js +61 -0
  7. package/lib/antv-dagre/acyclic.js.map +1 -0
  8. package/lib/{dagre → antv-dagre}/add-border-segments.js +12 -12
  9. package/lib/antv-dagre/add-border-segments.js.map +1 -0
  10. package/lib/{dagre → antv-dagre}/coordinate-system.d.ts +2 -1
  11. package/lib/antv-dagre/coordinate-system.js +65 -0
  12. package/lib/antv-dagre/coordinate-system.js.map +1 -0
  13. package/lib/{dagre → antv-dagre}/data/list.d.ts +1 -1
  14. package/lib/{dagre → antv-dagre}/data/list.js +20 -22
  15. package/lib/antv-dagre/data/list.js.map +1 -0
  16. package/lib/{dagre → antv-dagre}/greedy-fas.d.ts +2 -2
  17. package/lib/antv-dagre/greedy-fas.js +136 -0
  18. package/lib/antv-dagre/greedy-fas.js.map +1 -0
  19. package/lib/{dagre → antv-dagre}/layout.d.ts +2 -1
  20. package/lib/{dagre → antv-dagre}/layout.js +125 -127
  21. package/lib/antv-dagre/layout.js.map +1 -0
  22. package/lib/{dagre → antv-dagre}/nesting-graph.js +36 -37
  23. package/lib/antv-dagre/nesting-graph.js.map +1 -0
  24. package/lib/{dagre → antv-dagre}/normalize.d.ts +2 -2
  25. package/lib/{dagre → antv-dagre}/normalize.js +24 -24
  26. package/lib/antv-dagre/normalize.js.map +1 -0
  27. package/lib/{dagre → antv-dagre}/order/add-subgraph-constraints.js +9 -9
  28. package/lib/antv-dagre/order/add-subgraph-constraints.js.map +1 -0
  29. package/lib/{dagre → antv-dagre}/order/barycenter.d.ts +2 -2
  30. package/lib/{dagre → antv-dagre}/order/barycenter.js +8 -8
  31. package/lib/antv-dagre/order/barycenter.js.map +1 -0
  32. package/lib/{dagre → antv-dagre}/order/build-layer-graph.js +18 -22
  33. package/lib/antv-dagre/order/build-layer-graph.js.map +1 -0
  34. package/lib/antv-dagre/order/cross-count.d.ts +3 -0
  35. package/lib/{dagre → antv-dagre}/order/cross-count.js +17 -17
  36. package/lib/antv-dagre/order/cross-count.js.map +1 -0
  37. package/lib/{dagre → antv-dagre}/order/index.d.ts +1 -1
  38. package/lib/{dagre → antv-dagre}/order/index.js +35 -35
  39. package/lib/antv-dagre/order/index.js.map +1 -0
  40. package/lib/{dagre → antv-dagre}/order/init-data-order.js +8 -9
  41. package/lib/antv-dagre/order/init-data-order.js.map +1 -0
  42. package/lib/antv-dagre/order/init-order.js +47 -0
  43. package/lib/antv-dagre/order/init-order.js.map +1 -0
  44. package/lib/{dagre → antv-dagre}/order/resolve-conflicts.d.ts +3 -3
  45. package/lib/{dagre → antv-dagre}/order/resolve-conflicts.js +32 -35
  46. package/lib/antv-dagre/order/resolve-conflicts.js.map +1 -0
  47. package/lib/{dagre → antv-dagre}/order/sort-subgraph.js +20 -20
  48. package/lib/antv-dagre/order/sort-subgraph.js.map +1 -0
  49. package/lib/{dagre → antv-dagre}/order/sort.d.ts +2 -2
  50. package/lib/{dagre → antv-dagre}/order/sort.js +19 -19
  51. package/lib/antv-dagre/order/sort.js.map +1 -0
  52. package/lib/{dagre → antv-dagre}/parent-dummy-chains.js +28 -28
  53. package/lib/antv-dagre/parent-dummy-chains.js.map +1 -0
  54. package/lib/{dagre → antv-dagre}/position/bk.d.ts +5 -4
  55. package/lib/{dagre → antv-dagre}/position/bk.js +140 -143
  56. package/lib/antv-dagre/position/bk.js.map +1 -0
  57. package/lib/{dagre → antv-dagre}/position/index.d.ts +2 -1
  58. package/lib/antv-dagre/position/index.js +51 -0
  59. package/lib/antv-dagre/position/index.js.map +1 -0
  60. package/lib/{dagre → antv-dagre}/rank/feasible-tree.d.ts +2 -2
  61. package/lib/{dagre → antv-dagre}/rank/feasible-tree.js +32 -32
  62. package/lib/antv-dagre/rank/feasible-tree.js.map +1 -0
  63. package/lib/antv-dagre/rank/index.d.ts +2 -0
  64. package/lib/{dagre → antv-dagre}/rank/index.js +10 -10
  65. package/lib/antv-dagre/rank/index.js.map +1 -0
  66. package/lib/{dagre → antv-dagre}/rank/network-simplex.d.ts +2 -2
  67. package/lib/{dagre → antv-dagre}/rank/network-simplex.js +70 -71
  68. package/lib/antv-dagre/rank/network-simplex.js.map +1 -0
  69. package/lib/{dagre → antv-dagre}/rank/util.d.ts +2 -2
  70. package/lib/{dagre → antv-dagre}/rank/util.js +31 -31
  71. package/lib/antv-dagre/rank/util.js.map +1 -0
  72. package/lib/antv-dagre/types.d.ts +2 -0
  73. package/lib/antv-dagre/types.js +2 -0
  74. package/lib/antv-dagre/types.js.map +1 -0
  75. package/lib/{dagre → antv-dagre}/util.d.ts +1 -1
  76. package/lib/{dagre → antv-dagre}/util.js +90 -98
  77. package/lib/antv-dagre/util.js.map +1 -0
  78. package/lib/antv-dagre.d.ts +50 -0
  79. package/lib/antv-dagre.js +538 -0
  80. package/lib/antv-dagre.js.map +1 -0
  81. package/lib/bundle-entry.d.ts +2 -18
  82. package/lib/bundle-entry.js +2 -18
  83. package/lib/bundle-entry.js.map +1 -1
  84. package/lib/bundle-supervisor.d.ts +4 -22
  85. package/lib/bundle-supervisor.js +54 -53
  86. package/lib/bundle-supervisor.js.map +1 -1
  87. package/lib/bundle-worker.d.ts +1 -1
  88. package/lib/bundle-worker.js +31 -33
  89. package/lib/bundle-worker.js.map +1 -1
  90. package/lib/circular.d.ts +1 -1
  91. package/lib/circular.js +124 -140
  92. package/lib/circular.js.map +1 -1
  93. package/lib/comboCombined.d.ts +1 -1
  94. package/lib/comboCombined.js +254 -284
  95. package/lib/comboCombined.js.map +1 -1
  96. package/lib/concentric.d.ts +1 -1
  97. package/lib/concentric.js +166 -176
  98. package/lib/concentric.js.map +1 -1
  99. package/lib/d3Force/forceInBox.js +75 -77
  100. package/lib/d3Force/forceInBox.js.map +1 -1
  101. package/lib/d3Force/index.d.ts +2 -2
  102. package/lib/d3Force/index.js +196 -222
  103. package/lib/d3Force/index.js.map +1 -1
  104. package/lib/dagre.d.ts +13 -24
  105. package/lib/dagre.js +57 -542
  106. package/lib/dagre.js.map +1 -1
  107. package/lib/exports.d.ts +17 -0
  108. package/lib/exports.js +17 -0
  109. package/lib/exports.js.map +1 -0
  110. package/lib/force/forceNBody.js +42 -45
  111. package/lib/force/forceNBody.js.map +1 -1
  112. package/lib/force/index.d.ts +1 -1
  113. package/lib/force/index.js +282 -309
  114. package/lib/force/index.js.map +1 -1
  115. package/lib/force/types.d.ts +5 -5
  116. package/lib/forceAtlas2/body.d.ts +1 -1
  117. package/lib/forceAtlas2/body.js +29 -31
  118. package/lib/forceAtlas2/body.js.map +1 -1
  119. package/lib/forceAtlas2/index.d.ts +1 -1
  120. package/lib/forceAtlas2/index.js +206 -218
  121. package/lib/forceAtlas2/index.js.map +1 -1
  122. package/lib/forceAtlas2/quad.d.ts +2 -2
  123. package/lib/forceAtlas2/quad.js +40 -42
  124. package/lib/forceAtlas2/quad.js.map +1 -1
  125. package/lib/forceAtlas2/quadTree.js +16 -17
  126. package/lib/forceAtlas2/quadTree.js.map +1 -1
  127. package/lib/fruchterman.d.ts +1 -1
  128. package/lib/fruchterman.js +185 -205
  129. package/lib/fruchterman.js.map +1 -1
  130. package/lib/grid.d.ts +1 -1
  131. package/lib/grid.js +197 -207
  132. package/lib/grid.js.map +1 -1
  133. package/lib/index.d.ts +1 -15
  134. package/lib/index.js +1 -15
  135. package/lib/index.js.map +1 -1
  136. package/lib/mds.d.ts +1 -1
  137. package/lib/mds.js +68 -78
  138. package/lib/mds.js.map +1 -1
  139. package/lib/radial/index.d.ts +1 -1
  140. package/lib/radial/index.js +177 -184
  141. package/lib/radial/index.js.map +1 -1
  142. package/lib/radial/mds.d.ts +1 -1
  143. package/lib/radial/mds.js +15 -13
  144. package/lib/radial/mds.js.map +1 -1
  145. package/lib/radial/radial-nonoverlap-force.d.ts +2 -2
  146. package/lib/radial/radial-nonoverlap-force.js +36 -37
  147. package/lib/radial/radial-nonoverlap-force.js.map +1 -1
  148. package/lib/random.d.ts +1 -1
  149. package/lib/random.js +53 -66
  150. package/lib/random.js.map +1 -1
  151. package/lib/registry.d.ts +2 -2
  152. package/lib/registry.js +3 -1
  153. package/lib/registry.js.map +1 -1
  154. package/lib/supervisor.d.ts +2 -3
  155. package/lib/supervisor.js +57 -56
  156. package/lib/supervisor.js.map +1 -1
  157. package/lib/types.d.ts +20 -75
  158. package/lib/types.js.map +1 -1
  159. package/lib/util/array.js +1 -1
  160. package/lib/util/array.js.map +1 -1
  161. package/lib/util/common.d.ts +1 -1
  162. package/lib/util/common.js +7 -8
  163. package/lib/util/common.js.map +1 -1
  164. package/lib/util/function.js +23 -25
  165. package/lib/util/function.js.map +1 -1
  166. package/lib/util/index.d.ts +0 -2
  167. package/lib/util/index.js +0 -2
  168. package/lib/util/index.js.map +1 -1
  169. package/lib/util/math.d.ts +1 -26
  170. package/lib/util/math.js +41 -149
  171. package/lib/util/math.js.map +1 -1
  172. package/lib/util/object.d.ts +1 -1
  173. package/lib/util/object.js +13 -13
  174. package/lib/util/object.js.map +1 -1
  175. package/lib/util/size.d.ts +3 -0
  176. package/lib/util/size.js +12 -0
  177. package/lib/util/size.js.map +1 -0
  178. package/lib/worker.js +30 -31
  179. package/lib/worker.js.map +1 -1
  180. package/package.json +9 -5
  181. package/dist/aa1bb0ccc06b11cf79c1.worker.js +0 -2
  182. package/dist/aa1bb0ccc06b11cf79c1.worker.js.map +0 -1
  183. package/lib/dagre/acyclic.js +0 -62
  184. package/lib/dagre/acyclic.js.map +0 -1
  185. package/lib/dagre/add-border-segments.js.map +0 -1
  186. package/lib/dagre/coordinate-system.js +0 -65
  187. package/lib/dagre/coordinate-system.js.map +0 -1
  188. package/lib/dagre/data/list.js.map +0 -1
  189. package/lib/dagre/greedy-fas.js +0 -147
  190. package/lib/dagre/greedy-fas.js.map +0 -1
  191. package/lib/dagre/layout.js.map +0 -1
  192. package/lib/dagre/nesting-graph.js.map +0 -1
  193. package/lib/dagre/normalize.js.map +0 -1
  194. package/lib/dagre/order/add-subgraph-constraints.js.map +0 -1
  195. package/lib/dagre/order/barycenter.js.map +0 -1
  196. package/lib/dagre/order/build-layer-graph.js.map +0 -1
  197. package/lib/dagre/order/cross-count.d.ts +0 -3
  198. package/lib/dagre/order/cross-count.js.map +0 -1
  199. package/lib/dagre/order/index.js.map +0 -1
  200. package/lib/dagre/order/init-data-order.js.map +0 -1
  201. package/lib/dagre/order/init-order.js +0 -50
  202. package/lib/dagre/order/init-order.js.map +0 -1
  203. package/lib/dagre/order/resolve-conflicts.js.map +0 -1
  204. package/lib/dagre/order/sort-subgraph.js.map +0 -1
  205. package/lib/dagre/order/sort.js.map +0 -1
  206. package/lib/dagre/parent-dummy-chains.js.map +0 -1
  207. package/lib/dagre/position/bk.js.map +0 -1
  208. package/lib/dagre/position/index.js +0 -54
  209. package/lib/dagre/position/index.js.map +0 -1
  210. package/lib/dagre/rank/feasible-tree.js.map +0 -1
  211. package/lib/dagre/rank/index.d.ts +0 -2
  212. package/lib/dagre/rank/index.js.map +0 -1
  213. package/lib/dagre/rank/network-simplex.js.map +0 -1
  214. package/lib/dagre/rank/util.js.map +0 -1
  215. package/lib/dagre/util.js.map +0 -1
  216. package/lib/util/gpu.d.ts +0 -45
  217. package/lib/util/gpu.js +0 -214
  218. package/lib/util/gpu.js.map +0 -1
  219. package/lib/util/number.d.ts +0 -1
  220. package/lib/util/number.js +0 -5
  221. package/lib/util/number.js.map +0 -1
  222. package/lib/util/string.d.ts +0 -1
  223. package/lib/util/string.js +0 -15
  224. package/lib/util/string.js.map +0 -1
  225. /package/lib/{dagre → antv-dagre}/add-border-segments.d.ts +0 -0
  226. /package/lib/{dagre → antv-dagre}/nesting-graph.d.ts +0 -0
  227. /package/lib/{dagre → antv-dagre}/order/add-subgraph-constraints.d.ts +0 -0
  228. /package/lib/{dagre → antv-dagre}/order/build-layer-graph.d.ts +0 -0
  229. /package/lib/{dagre → antv-dagre}/order/init-data-order.d.ts +0 -0
  230. /package/lib/{dagre → antv-dagre}/order/init-order.d.ts +0 -0
  231. /package/lib/{dagre → antv-dagre}/order/sort-subgraph.d.ts +0 -0
  232. /package/lib/{dagre → antv-dagre}/parent-dummy-chains.d.ts +0 -0
package/lib/dagre.js CHANGED
@@ -1,553 +1,68 @@
1
- import { __assign, __awaiter, __generator } from "tslib";
2
- import { Graph } from '@antv/graphlib';
3
- import { isNumber } from '@antv/util';
4
- import { layout } from './dagre/layout';
5
- import { cloneFormatData, formatNumberFn, formatNodeSize } from './util';
6
- var DEFAULTS_LAYOUT_OPTIONS = {
7
- rankdir: 'TB',
8
- nodesep: 50,
9
- ranksep: 50,
10
- edgeLabelSpace: true,
11
- ranker: 'tight-tree',
12
- controlPoints: false,
13
- radial: false,
14
- focusNode: null, // radial 为 true 时生效,关注的节点
15
- };
1
+ import { __awaiter, __rest } from "tslib";
2
+ import { isFunction, isNumber } from '@antv/util';
3
+ import dagre, { graphlib } from 'dagre';
4
+ import { parseSize } from './util/size';
16
5
  /**
17
- * Layout arranging the nodes in a circle.
18
- *
19
- * @example
20
- * // Assign layout options when initialization.
21
- * const layout = new CircularLayout({ radius: 10 });
22
- * const positions = await layout.execute(graph); // { nodes: [], edges: [] }
23
- *
24
- * // Or use different options later.
25
- * const layout = new CircularLayout({ radius: 10 });
26
- * const positions = await layout.execute(graph, { radius: 20 }); // { nodes: [], edges: [] }
27
- *
28
- * // If you want to assign the positions directly to the nodes, use assign method.
29
- * await layout.assign(graph, { radius: 20 });
6
+ * Adapt dagre.js layout
7
+ * @link https://github.com/dagrejs/dagre
30
8
  */
31
- var DagreLayout = /** @class */ (function () {
32
- function DagreLayout(options) {
33
- if (options === void 0) { options = {}; }
34
- this.options = options;
9
+ export class DagreLayout {
10
+ constructor(options) {
35
11
  this.id = 'dagre';
36
- this.options = __assign(__assign({}, DEFAULTS_LAYOUT_OPTIONS), options);
12
+ this.options = {};
13
+ Object.assign(this.options, DagreLayout.defaultOptions, options);
37
14
  }
38
- /**
39
- * Return the positions of nodes and edges(if needed).
40
- */
41
- DagreLayout.prototype.execute = function (graph, options) {
42
- return __awaiter(this, void 0, void 0, function () {
43
- return __generator(this, function (_a) {
44
- return [2 /*return*/, this.genericDagreLayout(false, graph, options)];
45
- });
15
+ execute(graph, options) {
16
+ return __awaiter(this, void 0, void 0, function* () {
17
+ return this.genericDagreLayout(false, graph, Object.assign(Object.assign({}, this.options), options));
46
18
  });
47
- };
48
- /**
49
- * To directly assign the positions to the nodes.
50
- */
51
- DagreLayout.prototype.assign = function (graph, options) {
52
- return __awaiter(this, void 0, void 0, function () {
53
- return __generator(this, function (_a) {
54
- switch (_a.label) {
55
- case 0: return [4 /*yield*/, this.genericDagreLayout(true, graph, options)];
56
- case 1:
57
- _a.sent();
58
- return [2 /*return*/];
59
- }
60
- });
19
+ }
20
+ assign(graph, options) {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ yield this.genericDagreLayout(true, graph, Object.assign(Object.assign({}, this.options), options));
61
23
  });
62
- };
63
- DagreLayout.prototype.genericDagreLayout = function (assign, graph, options) {
64
- return __awaiter(this, void 0, void 0, function () {
65
- var mergedOptions, nodeSize, align, _a, rankdir, ranksep, nodesep, ranksepFunc, nodesepFunc, edgeLabelSpace, ranker, nodeOrder, begin, controlPoints, radial, sortByCombo,
66
- // focusNode,
67
- preset, g, ranksepfunc, nodesepfunc, horisep, vertisep, nodeSizeFunc, nodes, edges, prevGraph, layoutTopLeft, minX_1, minY_1, isHorizontal, layerCoords_1, isInvert, layerCoordSort, layerCoordsArr_1, isDifferentLayer_1, filterControlPointsOutOfBoundary_1, layoutNodes, layoutEdges, result;
68
- return __generator(this, function (_b) {
69
- mergedOptions = __assign(__assign({}, this.options), options);
70
- nodeSize = mergedOptions.nodeSize, align = mergedOptions.align, _a = mergedOptions.rankdir, rankdir = _a === void 0 ? 'TB' : _a, ranksep = mergedOptions.ranksep, nodesep = mergedOptions.nodesep, ranksepFunc = mergedOptions.ranksepFunc, nodesepFunc = mergedOptions.nodesepFunc, edgeLabelSpace = mergedOptions.edgeLabelSpace, ranker = mergedOptions.ranker, nodeOrder = mergedOptions.nodeOrder, begin = mergedOptions.begin, controlPoints = mergedOptions.controlPoints, radial = mergedOptions.radial, sortByCombo = mergedOptions.sortByCombo, preset = mergedOptions.preset;
71
- g = new Graph({
72
- tree: [],
73
- });
74
- ranksepfunc = formatNumberFn(ranksep || 50, ranksepFunc);
75
- nodesepfunc = formatNumberFn(nodesep || 50, nodesepFunc);
76
- horisep = nodesepfunc;
77
- vertisep = ranksepfunc;
78
- if (rankdir === 'LR' || rankdir === 'RL') {
79
- horisep = ranksepfunc;
80
- vertisep = nodesepfunc;
81
- }
82
- nodeSizeFunc = formatNodeSize(nodeSize, undefined);
83
- nodes = graph.getAllNodes();
84
- edges = graph.getAllEdges();
85
- nodes.forEach(function (node) {
86
- var size = nodeSizeFunc(node);
87
- var verti = vertisep(node);
88
- var hori = horisep(node);
89
- // FIXME: support 2 dimensions?
90
- // const width = size[0] + 2 * hori;
91
- // const height = size[1] + 2 * verti;
92
- var width = size + 2 * hori;
93
- var height = size + 2 * verti;
94
- var layer = node.data.layer;
95
- if (isNumber(layer)) {
96
- // 如果有layer属性,加入到node的label中
97
- g.addNode({
98
- id: node.id,
99
- data: { width: width, height: height, layer: layer },
100
- });
101
- }
102
- else {
103
- g.addNode({
104
- id: node.id,
105
- data: { width: width, height: height },
106
- });
107
- }
108
- });
109
- if (sortByCombo) {
110
- g.attachTreeStructure('combo');
111
- nodes.forEach(function (node) {
112
- var parentId = node.data.parentId;
113
- if (parentId === undefined)
114
- return;
115
- if (g.hasNode(parentId)) {
116
- g.setParent(node.id, parentId, 'combo');
117
- }
118
- });
119
- }
120
- edges.forEach(function (edge) {
121
- // dagrejs Wiki https://github.com/dagrejs/dagre/wiki#configuring-the-layout
122
- g.addEdge({
123
- id: edge.id,
124
- source: edge.source,
125
- target: edge.target,
126
- data: {
127
- weight: edge.data.weight || 1,
128
- },
129
- });
130
- });
131
- prevGraph = undefined;
132
- if (preset === null || preset === void 0 ? void 0 : preset.length) {
133
- prevGraph = new Graph({
134
- nodes: preset,
135
- });
136
- }
137
- layout(g, {
138
- prevGraph: prevGraph,
139
- edgeLabelSpace: edgeLabelSpace,
140
- keepNodeOrder: !!nodeOrder,
141
- nodeOrder: nodeOrder || [],
142
- acyclicer: 'greedy',
143
- ranker: ranker,
144
- rankdir: rankdir,
145
- nodesep: nodesep,
146
- align: align,
147
- });
148
- layoutTopLeft = [0, 0];
149
- if (begin) {
150
- minX_1 = Infinity;
151
- minY_1 = Infinity;
152
- g.getAllNodes().forEach(function (node) {
153
- if (minX_1 > node.data.x)
154
- minX_1 = node.data.x;
155
- if (minY_1 > node.data.y)
156
- minY_1 = node.data.y;
157
- });
158
- g.getAllEdges().forEach(function (edge) {
159
- var _a;
160
- (_a = edge.data.points) === null || _a === void 0 ? void 0 : _a.forEach(function (point) {
161
- if (minX_1 > point.x)
162
- minX_1 = point.x;
163
- if (minY_1 > point.y)
164
- minY_1 = point.y;
165
- });
166
- });
167
- layoutTopLeft[0] = begin[0] - minX_1;
168
- layoutTopLeft[1] = begin[1] - minY_1;
169
- }
170
- isHorizontal = rankdir === 'LR' || rankdir === 'RL';
171
- if (radial) {
172
- // const focusId = (isString(focusNode) ? focusNode : focusNode?.id) as ID;
173
- // const focusLayer = focusId ? g.getNode(focusId)?.data._rank as number : 0;
174
- // const layers: any[] = [];
175
- // const dim = isHorizontal ? "y" : "x";
176
- // const sizeDim = isHorizontal ? "height" : "width";
177
- // // 找到整个图作为环的坐标维度(dim)的最大、最小值,考虑节点宽度
178
- // let min = Infinity;
179
- // let max = -Infinity;
180
- // g.getAllNodes().forEach((node) => {
181
- // const currentNodesep = nodesepfunc(node);
182
- // if (focusLayer === 0) {
183
- // if (!layers[node.data._rank!]) {
184
- // layers[node.data._rank!] = {
185
- // nodes: [],
186
- // totalWidth: 0,
187
- // maxSize: -Infinity,
188
- // };
189
- // }
190
- // layers[node.data._rank!].nodes.push(node);
191
- // layers[node.data._rank!].totalWidth += currentNodesep * 2 + node.data[sizeDim]!;
192
- // if (
193
- // layers[node.data._rank!].maxSize < Math.max(node.data.width!, node.data.height!)
194
- // ) {
195
- // layers[node.data._rank!].maxSize = Math.max(node.data.width!, node.data.height!);
196
- // }
197
- // } else {
198
- // const diffLayer = node.data._rank! - focusLayer!;
199
- // if (diffLayer === 0) {
200
- // if (!layers[diffLayer]) {
201
- // layers[diffLayer] = {
202
- // nodes: [],
203
- // totalWidth: 0,
204
- // maxSize: -Infinity,
205
- // };
206
- // }
207
- // layers[diffLayer].nodes.push(node);
208
- // layers[diffLayer].totalWidth += currentNodesep * 2 + node.data[sizeDim]!;
209
- // if (
210
- // layers[diffLayer].maxSize < Math.max(node.data.width!, node.data.height!)
211
- // ) {
212
- // layers[diffLayer].maxSize = Math.max(node.data.width!, node.data.height!);
213
- // }
214
- // } else {
215
- // const diffLayerAbs = Math.abs(diffLayer);
216
- // if (!layers[diffLayerAbs]) {
217
- // layers[diffLayerAbs] = {
218
- // left: [],
219
- // right: [],
220
- // totalWidth: 0,
221
- // maxSize: -Infinity,
222
- // };
223
- // }
224
- // layers[diffLayerAbs].totalWidth +=
225
- // currentNodesep * 2 + node.data[sizeDim]!;
226
- // if (
227
- // layers[diffLayerAbs].maxSize < Math.max(node.data.width!, node.data.height!)
228
- // ) {
229
- // layers[diffLayerAbs].maxSize = Math.max(
230
- // node.data.width!,
231
- // node.data.height!
232
- // );
233
- // }
234
- // if (diffLayer < 0) {
235
- // layers[diffLayerAbs].left.push(node);
236
- // } else {
237
- // layers[diffLayerAbs].right.push(node);
238
- // }
239
- // }
240
- // }
241
- // const leftPos = node.data[dim]! - node.data[sizeDim]! / 2 - currentNodesep;
242
- // const rightPos = node.data[dim]! + node.data[sizeDim]! / 2 + currentNodesep;
243
- // if (leftPos < min) min = leftPos;
244
- // if (rightPos > max) max = rightPos;
245
- // });
246
- // // const padding = (max - min) * 0.1; // TODO
247
- // // 初始化为第一圈的半径,后面根据每层 ranksep 叠加
248
- // let radius = ranksep || 50; // TODO;
249
- // const radiusMap: any = {};
250
- // // 扩大最大最小值范围,以便为环上留出接缝处的空隙
251
- // const rangeLength = (max - min) / 0.9;
252
- // const range = [
253
- // (min + max - rangeLength) * 0.5,
254
- // (min + max + rangeLength) * 0.5,
255
- // ];
256
- // // 根据半径、分布比例,计算节点在环上的位置,并返回该组节点中最大的 ranksep 值
257
- // const processNodes = (
258
- // layerNodes: any,
259
- // radius: number,
260
- // propsMaxRanksep = -Infinity,
261
- // arcRange = [0, 1]
262
- // ) => {
263
- // let maxRanksep = propsMaxRanksep;
264
- // layerNodes.forEach((node: any) => {
265
- // const coord = g.node(node);
266
- // radiusMap[node] = radius;
267
- // // 获取变形为 radial 后的直角坐标系坐标
268
- // const { x: newX, y: newY } = getRadialPos(
269
- // coord![dim]!,
270
- // range,
271
- // rangeLength,
272
- // radius,
273
- // arcRange
274
- // );
275
- // // 将新坐标写入源数据
276
- // const i = nodes.findIndex((it) => it.id === node);
277
- // if (!nodes[i]) return;
278
- // nodes[i].x = newX + dBegin[0];
279
- // nodes[i].y = newY + dBegin[1];
280
- // // @ts-ignore: pass layer order to data for increment layout use
281
- // nodes[i]._order = coord._order;
282
- // // 找到本层最大的一个 ranksep,作为下一层与本层的间隙,叠加到下一层的半径上
283
- // const currentNodeRanksep = ranksepfunc(nodes[i]);
284
- // if (maxRanksep < currentNodeRanksep) maxRanksep = currentNodeRanksep;
285
- // });
286
- // return maxRanksep;
287
- // };
288
- // let isFirstLevel = true;
289
- // const lastLayerMaxNodeSize = 0;
290
- // layers.forEach((layerNodes) => {
291
- // if (
292
- // !layerNodes?.nodes?.length &&
293
- // !layerNodes?.left?.length &&
294
- // !layerNodes?.right?.length
295
- // ) {
296
- // return;
297
- // }
298
- // // 第一层只有一个节点,直接放在圆心,初始半径设定为 0
299
- // if (isFirstLevel && layerNodes.nodes.length === 1) {
300
- // // 将新坐标写入源数据
301
- // const i = nodes.findIndex((it) => it.id === layerNodes.nodes[0]);
302
- // if (i <= -1) return;
303
- // nodes[i].x = dBegin[0];
304
- // nodes[i].y = dBegin[1];
305
- // radiusMap[layerNodes.nodes[0]] = 0;
306
- // radius = ranksepfunc(nodes[i]);
307
- // isFirstLevel = false;
308
- // return;
309
- // }
310
- // // 为接缝留出空隙,半径也需要扩大
311
- // radius = Math.max(radius, layerNodes.totalWidth / (2 * Math.PI)); // / 0.9;
312
- // let maxRanksep = -Infinity;
313
- // if (focusLayer === 0 || layerNodes.nodes?.length) {
314
- // maxRanksep = processNodes(
315
- // layerNodes.nodes,
316
- // radius,
317
- // maxRanksep,
318
- // [0, 1]
319
- // ); // 0.8
320
- // } else {
321
- // const leftRatio =
322
- // layerNodes.left?.length /
323
- // (layerNodes.left?.length + layerNodes.right?.length);
324
- // maxRanksep = processNodes(layerNodes.left, radius, maxRanksep, [
325
- // 0,
326
- // leftRatio,
327
- // ]); // 接缝留出 0.05 的缝隙
328
- // maxRanksep = processNodes(layerNodes.right, radius, maxRanksep, [
329
- // leftRatio + 0.05,
330
- // 1,
331
- // ]); // 接缝留出 0.05 的缝隙
332
- // }
333
- // radius += maxRanksep;
334
- // isFirstLevel = false;
335
- // lastLayerMaxNodeSize - layerNodes.maxSize;
336
- // });
337
- // g.edges().forEach((edge: any) => {
338
- // const coord = g.edge(edge);
339
- // const i = edges.findIndex((it) => {
340
- // const source = getEdgeTerminal(it, "source");
341
- // const target = getEdgeTerminal(it, "target");
342
- // return source === edge.v && target === edge.w;
343
- // });
344
- // if (i <= -1) return;
345
- // if (
346
- // self.edgeLabelSpace &&
347
- // self.controlPoints &&
348
- // edges[i].type !== "loop"
349
- // ) {
350
- // const otherDim = dim === "x" ? "y" : "x";
351
- // const controlPoints = coord?.points?.slice(
352
- // 1,
353
- // coord.points.length - 1
354
- // );
355
- // const newControlPoints: Point[] = [];
356
- // const sourceOtherDimValue = g.node(edge.v)?.[otherDim]!;
357
- // const otherDimDist =
358
- // sourceOtherDimValue - g.node(edge.w)?.[otherDim]!;
359
- // const sourceRadius = radiusMap[edge.v];
360
- // const radiusDist = sourceRadius - radiusMap[edge.w];
361
- // controlPoints?.forEach((point: any) => {
362
- // // 根据该边的起点、终点半径,及起点、终点、控制点位置关系,确定该控制点的半径
363
- // const cRadius =
364
- // ((point[otherDim] - sourceOtherDimValue) / otherDimDist) *
365
- // radiusDist +
366
- // sourceRadius;
367
- // // 获取变形为 radial 后的直角坐标系坐标
368
- // const newPos = getRadialPos(
369
- // point[dim],
370
- // range,
371
- // rangeLength,
372
- // cRadius
373
- // );
374
- // newControlPoints.push({
375
- // x: newPos.x + dBegin[0],
376
- // y: newPos.y + dBegin[1],
377
- // });
378
- // });
379
- // edges[i].controlPoints = newControlPoints;
380
- // }
381
- // });
382
- }
383
- else {
384
- layerCoords_1 = new Set();
385
- isInvert = rankdir === 'BT' || rankdir === 'RL';
386
- layerCoordSort = isInvert
387
- ? function (a, b) { return b - a; }
388
- : function (a, b) { return a - b; };
389
- g.getAllNodes().forEach(function (node) {
390
- // let ndata: any = this.nodeMap[node];
391
- // if (!ndata) {
392
- // ndata = combos?.find((it) => it.id === node);
393
- // }
394
- // if (!ndata) return;
395
- // ndata.x = node.data.x! + dBegin[0];
396
- // ndata.y = node.data.y! + dBegin[1];
397
- // // pass layer order to data for increment layout use
398
- // ndata._order = node.data._order;
399
- // layerCoords.add(isHorizontal ? ndata.x : ndata.y);
400
- node.data.x = node.data.x + layoutTopLeft[0];
401
- node.data.y = node.data.y + layoutTopLeft[1];
402
- layerCoords_1.add(isHorizontal ? node.data.x : node.data.y);
403
- });
404
- layerCoordsArr_1 = Array.from(layerCoords_1).sort(layerCoordSort);
405
- isDifferentLayer_1 = isHorizontal
406
- ? function (point1, point2) { return point1.x !== point2.x; }
407
- : function (point1, point2) { return point1.y !== point2.y; };
408
- filterControlPointsOutOfBoundary_1 = isHorizontal
409
- ? function (ps, point1, point2) {
410
- var max = Math.max(point1.y, point2.y);
411
- var min = Math.min(point1.y, point2.y);
412
- return ps.filter(function (point) { return point.y <= max && point.y >= min; });
413
- }
414
- : function (ps, point1, point2) {
415
- var max = Math.max(point1.x, point2.x);
416
- var min = Math.min(point1.x, point2.x);
417
- return ps.filter(function (point) { return point.x <= max && point.x >= min; });
418
- };
419
- g.getAllEdges().forEach(function (edge, i) {
420
- var _a;
421
- // const i = edges.findIndex((it) => {
422
- // return it.source === edge.source && it.target === edge.target;
423
- // });
424
- // if (i <= -1) return;
425
- if (edgeLabelSpace && controlPoints && edge.data.type !== 'loop') {
426
- edge.data.controlPoints = getControlPoints((_a = edge.data.points) === null || _a === void 0 ? void 0 : _a.map(function (_a) {
427
- var x = _a.x, y = _a.y;
428
- return ({
429
- x: x + layoutTopLeft[0],
430
- y: y + layoutTopLeft[1],
431
- });
432
- }), g.getNode(edge.source), g.getNode(edge.target), layerCoordsArr_1, isHorizontal, isDifferentLayer_1, filterControlPointsOutOfBoundary_1);
433
- }
434
- });
435
- }
436
- layoutNodes = [];
437
- // layout according to the original order in the data.nodes
438
- layoutNodes = g
439
- .getAllNodes()
440
- .map(function (node) { return cloneFormatData(node); });
441
- layoutEdges = g.getAllEdges();
442
- if (assign) {
443
- layoutNodes.forEach(function (node) {
444
- graph.mergeNodeData(node.id, {
445
- x: node.data.x,
446
- y: node.data.y,
447
- });
448
- });
449
- layoutEdges.forEach(function (edge) {
450
- graph.mergeEdgeData(edge.id, {
451
- controlPoints: edge.data.controlPoints,
452
- });
453
- });
24
+ }
25
+ genericDagreLayout(assign, graph, options) {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ const { nodeSize } = options;
28
+ const g = new graphlib.Graph();
29
+ g.setGraph(options);
30
+ g.setDefaultEdgeLabel(() => ({}));
31
+ const nodes = graph.getAllNodes();
32
+ const edges = graph.getAllEdges();
33
+ if ([...nodes, ...edges].some(({ id }) => isNumber(id))) {
34
+ console.error('Dagre layout only support string id, it will convert number to string.');
35
+ }
36
+ graph.getAllNodes().forEach((node) => {
37
+ const { id } = node;
38
+ const data = Object.assign({}, node.data);
39
+ if (nodeSize !== undefined) {
40
+ const [width, height] = parseSize(isFunction(nodeSize) ? nodeSize(node) : nodeSize);
41
+ Object.assign(data, { width, height });
454
42
  }
455
- result = {
456
- nodes: layoutNodes,
457
- edges: layoutEdges,
458
- };
459
- return [2 /*return*/, result];
43
+ g.setNode(id.toString(), data);
460
44
  });
45
+ graph.getAllEdges().forEach(({ id, source, target }) => {
46
+ g.setEdge(source.toString(), target.toString(), { id });
47
+ });
48
+ dagre.layout(g);
49
+ const mapping = { nodes: [], edges: [] };
50
+ g.nodes().forEach((id) => {
51
+ const data = g.node(id);
52
+ mapping.nodes.push({ id, data });
53
+ if (assign)
54
+ graph.mergeNodeData(id, data);
55
+ });
56
+ g.edges().forEach((edge) => {
57
+ const _a = g.edge(edge), { id } = _a, data = __rest(_a, ["id"]);
58
+ const { v: source, w: target } = edge;
59
+ mapping.edges.push({ id, source, target, data });
60
+ if (assign)
61
+ graph.mergeEdgeData(id, data);
62
+ });
63
+ return mapping;
461
64
  });
462
- };
463
- return DagreLayout;
464
- }());
465
- export { DagreLayout };
466
- /**
467
- * Format controlPoints to avoid polylines crossing nodes
468
- * @param points
469
- * @param sourceNode
470
- * @param targetNode
471
- * @param layerCoordsArr
472
- * @param isHorizontal
473
- * @returns
474
- */
475
- var getControlPoints = function (points, sourceNode, targetNode, layerCoordsArr, isHorizontal, isDifferentLayer, filterControlPointsOutOfBoundary) {
476
- var controlPoints = (points === null || points === void 0 ? void 0 : points.slice(1, points.length - 1)) || []; // 去掉头尾
477
- // 酌情增加控制点,使折线不穿过跨层的节点
478
- if (sourceNode && targetNode) {
479
- var _a = sourceNode.data, sourceX = _a.x, sourceY = _a.y;
480
- var _b = targetNode.data, targetX = _b.x, targetY = _b.y;
481
- if (isHorizontal) {
482
- sourceX = sourceNode.data.y;
483
- sourceY = sourceNode.data.x;
484
- targetX = targetNode.data.y;
485
- targetY = targetNode.data.x;
486
- }
487
- // 为跨层级的边增加第一个控制点。忽略垂直的/横向的边。
488
- // 新控制点 = {
489
- // x: 终点x,
490
- // y: (起点y + 下一层y) / 2, #下一层y可能不等于终点y
491
- // }
492
- if (targetY !== sourceY && sourceX !== targetX) {
493
- var sourceLayer = layerCoordsArr.indexOf(sourceY);
494
- var sourceNextLayerCoord = layerCoordsArr[sourceLayer + 1];
495
- if (sourceNextLayerCoord) {
496
- var firstControlPoint = controlPoints[0];
497
- var insertStartControlPoint = (isHorizontal
498
- ? {
499
- x: (sourceY + sourceNextLayerCoord) / 2,
500
- y: (firstControlPoint === null || firstControlPoint === void 0 ? void 0 : firstControlPoint.y) || targetX,
501
- }
502
- : {
503
- x: (firstControlPoint === null || firstControlPoint === void 0 ? void 0 : firstControlPoint.x) || targetX,
504
- y: (sourceY + sourceNextLayerCoord) / 2,
505
- });
506
- // 当新增的控制点不存在(!=当前第一个控制点)时添加
507
- if (!firstControlPoint ||
508
- isDifferentLayer(firstControlPoint, insertStartControlPoint)) {
509
- controlPoints.unshift(insertStartControlPoint);
510
- }
511
- }
512
- var targetLayer = layerCoordsArr.indexOf(targetY);
513
- var layerDiff = Math.abs(targetLayer - sourceLayer);
514
- if (layerDiff === 1) {
515
- controlPoints = filterControlPointsOutOfBoundary(controlPoints, sourceNode.data, targetNode.data);
516
- // one controlPoint at least
517
- if (!controlPoints.length) {
518
- controlPoints.push((isHorizontal
519
- ? {
520
- x: (sourceY + targetY) / 2,
521
- y: sourceX,
522
- }
523
- : {
524
- x: sourceX,
525
- y: (sourceY + targetY) / 2,
526
- }));
527
- }
528
- }
529
- else if (layerDiff > 1) {
530
- var targetLastLayerCoord = layerCoordsArr[targetLayer - 1];
531
- if (targetLastLayerCoord) {
532
- var lastControlPoints = controlPoints[controlPoints.length - 1];
533
- var insertEndControlPoint = (isHorizontal
534
- ? {
535
- x: (targetY + targetLastLayerCoord) / 2,
536
- y: (lastControlPoints === null || lastControlPoints === void 0 ? void 0 : lastControlPoints.y) || targetX,
537
- }
538
- : {
539
- x: (lastControlPoints === null || lastControlPoints === void 0 ? void 0 : lastControlPoints.x) || sourceX,
540
- y: (targetY + targetLastLayerCoord) / 2,
541
- });
542
- // 当新增的控制点不存在(!=当前最后一个控制点)时添加
543
- if (!lastControlPoints ||
544
- isDifferentLayer(lastControlPoints, insertEndControlPoint)) {
545
- controlPoints.push(insertEndControlPoint);
546
- }
547
- }
548
- }
549
- }
550
65
  }
551
- return controlPoints;
552
- };
66
+ }
67
+ DagreLayout.defaultOptions = {};
553
68
  //# sourceMappingURL=dagre.js.map
package/lib/dagre.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dagre.js","sourceRoot":"","sources":["../src/dagre.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dagre.js","sourceRoot":"","sources":["../src/dagre.ts"],"names":[],"mappings":"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"}