@antv/layout 1.2.12 → 1.2.14-beta.0

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