@antv/layout 1.2.13 → 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 -542
  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 -75
  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/aa1bb0ccc06b11cf79c1.worker.js +0 -2
  184. package/dist/aa1bb0ccc06b11cf79c1.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
@@ -1,3 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.slack = exports.longestPathWithLayer = exports.longestPath = void 0;
1
4
  /*
2
5
  * Initializes ranks for the input graph using the longest path algorithm. This
3
6
  * algorithm scales well and is fast in practice, it yields rather poor
@@ -19,22 +22,22 @@
19
22
  *
20
23
  * 1. Each node will be assign an (unnormalized) "rank" property.
21
24
  */
22
- var longestPath = function (g) {
23
- var visited = {};
24
- var dfs = function (v) {
25
+ const longestPath = (g) => {
26
+ const visited = {};
27
+ const dfs = (v) => {
25
28
  var _a;
26
- var label = g.getNode(v);
29
+ const label = g.getNode(v);
27
30
  if (!label)
28
31
  return 0;
29
32
  if (visited[v]) {
30
33
  return label.data.rank;
31
34
  }
32
35
  visited[v] = true;
33
- var rank;
34
- (_a = g.getRelatedEdges(v, "out")) === null || _a === void 0 ? void 0 : _a.forEach(function (e) {
35
- var wRank = dfs(e.target);
36
- var minLen = e.data.minlen;
37
- var r = wRank - minLen;
36
+ let rank;
37
+ (_a = g.getRelatedEdges(v, 'out')) === null || _a === void 0 ? void 0 : _a.forEach((e) => {
38
+ const wRank = dfs(e.target);
39
+ const minLen = e.data.minlen;
40
+ const r = wRank - minLen;
38
41
  if (r) {
39
42
  if (rank === undefined || r < rank) {
40
43
  rank = r;
@@ -48,27 +51,28 @@ var longestPath = function (g) {
48
51
  return rank;
49
52
  };
50
53
  g.getAllNodes()
51
- .filter(function (n) { return g.getRelatedEdges(n.id, "in").length === 0; })
52
- .forEach(function (source) { return dfs(source.id); });
54
+ .filter((n) => g.getRelatedEdges(n.id, 'in').length === 0)
55
+ .forEach((source) => dfs(source.id));
53
56
  };
54
- var longestPathWithLayer = function (g) {
57
+ exports.longestPath = longestPath;
58
+ const longestPathWithLayer = (g) => {
55
59
  // 用longest path,找出最深的点
56
- var visited = {};
57
- var minRank;
58
- var dfs = function (v) {
60
+ const visited = {};
61
+ let minRank;
62
+ const dfs = (v) => {
59
63
  var _a;
60
- var label = g.getNode(v);
64
+ const label = g.getNode(v);
61
65
  if (!label)
62
66
  return 0;
63
67
  if (visited[v]) {
64
68
  return label.data.rank;
65
69
  }
66
70
  visited[v] = true;
67
- var rank;
68
- (_a = g.getRelatedEdges(v, "out")) === null || _a === void 0 ? void 0 : _a.forEach(function (e) {
69
- var wRank = dfs(e.target);
70
- var minLen = e.data.minlen;
71
- var r = wRank - minLen;
71
+ let rank;
72
+ (_a = g.getRelatedEdges(v, 'out')) === null || _a === void 0 ? void 0 : _a.forEach((e) => {
73
+ const wRank = dfs(e.target);
74
+ const minLen = e.data.minlen;
75
+ const r = wRank - minLen;
72
76
  if (r) {
73
77
  if (rank === undefined || r < rank) {
74
78
  rank = r;
@@ -85,8 +89,8 @@ var longestPathWithLayer = function (g) {
85
89
  return rank;
86
90
  };
87
91
  g.getAllNodes()
88
- .filter(function (n) { return g.getRelatedEdges(n.id, "in").length === 0; })
89
- .forEach(function (source) {
92
+ .filter((n) => g.getRelatedEdges(n.id, 'in').length === 0)
93
+ .forEach((source) => {
90
94
  if (source)
91
95
  dfs(source.id);
92
96
  });
@@ -95,11 +99,11 @@ var longestPathWithLayer = function (g) {
95
99
  }
96
100
  // minRank += 1; // NOTE: 最小的层级是dummy root,+1
97
101
  // forward一遍,赋值层级
98
- var forwardVisited = {};
99
- var dfsForward = function (v, nextRank) {
102
+ const forwardVisited = {};
103
+ const dfsForward = (v, nextRank) => {
100
104
  var _a;
101
- var label = g.getNode(v);
102
- var currRank = !isNaN(label.data.layer) ? label.data.layer : nextRank;
105
+ const label = g.getNode(v);
106
+ const currRank = !isNaN(label.data.layer) ? label.data.layer : nextRank;
103
107
  // 没有指定,取最大值
104
108
  if (label.data.rank === undefined || label.data.rank < currRank) {
105
109
  label.data.rank = currRank;
@@ -108,13 +112,13 @@ var longestPathWithLayer = function (g) {
108
112
  return;
109
113
  forwardVisited[v] = true;
110
114
  // DFS遍历子节点
111
- (_a = g.getRelatedEdges(v, "out")) === null || _a === void 0 ? void 0 : _a.forEach(function (e) {
115
+ (_a = g.getRelatedEdges(v, 'out')) === null || _a === void 0 ? void 0 : _a.forEach((e) => {
112
116
  dfsForward(e.target, currRank + e.data.minlen);
113
117
  });
114
118
  };
115
119
  // 指定层级的,更新下游
116
- g.getAllNodes().forEach(function (n) {
117
- var label = n.data;
120
+ g.getAllNodes().forEach((n) => {
121
+ const label = n.data;
118
122
  if (!label)
119
123
  return;
120
124
  if (!isNaN(label.layer)) {
@@ -125,14 +129,15 @@ var longestPathWithLayer = function (g) {
125
129
  }
126
130
  });
127
131
  };
132
+ exports.longestPathWithLayer = longestPathWithLayer;
128
133
  /*
129
134
  * Returns the amount of slack for the given edge. The slack is defined as the
130
135
  * difference between the length of the edge and its minimum length.
131
136
  */
132
- var slack = function (g, e) {
137
+ const slack = (g, e) => {
133
138
  return (g.getNode(e.target).data.rank -
134
139
  g.getNode(e.source).data.rank -
135
140
  e.data.minlen);
136
141
  };
137
- export { longestPath, longestPathWithLayer, slack };
142
+ exports.slack = slack;
138
143
  //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/antv-dagre/rank/util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export type DagreRankdir = 'TB' | 'BT' | 'LR' | 'RL' | 'tb' | 'lr' | 'rl' | 'bt';
2
+ export type DagreAlign = 'UL' | 'UR' | 'DL' | 'DR';
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/antv-dagre/types.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { ID, Graph, Node } from '@antv/graphlib';
1
+ import { Graph, ID, Node } from '@antv/graphlib';
2
2
  import { EdgeData, Graph as IGraph, NodeData } from '../types';
3
3
  export declare const addDummyNode: (g: IGraph, type: string, data: NodeData, name: string) => ID;
4
4
  export declare const simplify: (g: IGraph) => Graph<NodeData, EdgeData>;
@@ -0,0 +1,299 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dfs = exports.minBy = exports.partition = exports.maxRank = exports.addBorderNode = exports.removeEmptyRanks = exports.normalizeRanks = exports.buildLayerMatrix = exports.intersectRect = exports.predecessorWeights = exports.successorWeights = exports.zipObject = exports.asNonCompoundGraph = exports.simplify = exports.addDummyNode = void 0;
4
+ const graphlib_1 = require("@antv/graphlib");
5
+ const util_1 = require("@antv/util");
6
+ const safeSort = (valueA, valueB) => {
7
+ return Number(valueA) - Number(valueB);
8
+ };
9
+ /*
10
+ * Adds a dummy node to the graph and return v.
11
+ */
12
+ const addDummyNode = (g, type, data, name) => {
13
+ let v;
14
+ do {
15
+ v = `${name}${Math.random()}`;
16
+ } while (g.hasNode(v));
17
+ data.dummy = type;
18
+ g.addNode({
19
+ id: v,
20
+ data,
21
+ });
22
+ return v;
23
+ };
24
+ exports.addDummyNode = addDummyNode;
25
+ /*
26
+ * Returns a new graph with only simple edges. Handles aggregation of data
27
+ * associated with multi-edges.
28
+ */
29
+ const simplify = (g) => {
30
+ const simplified = new graphlib_1.Graph();
31
+ g.getAllNodes().forEach((v) => {
32
+ simplified.addNode(Object.assign({}, v));
33
+ });
34
+ g.getAllEdges().forEach((e) => {
35
+ const edge = simplified
36
+ .getRelatedEdges(e.source, 'out')
37
+ .find((edge) => edge.target === e.target);
38
+ if (!edge) {
39
+ simplified.addEdge({
40
+ id: e.id,
41
+ source: e.source,
42
+ target: e.target,
43
+ data: {
44
+ weight: e.data.weight || 0,
45
+ minlen: e.data.minlen || 1,
46
+ },
47
+ });
48
+ }
49
+ else {
50
+ simplified.updateEdgeData(edge === null || edge === void 0 ? void 0 : edge.id, Object.assign(Object.assign({}, edge.data), { weight: edge.data.weight + e.data.weight || 0, minlen: Math.max(edge.data.minlen, e.data.minlen || 1) }));
51
+ }
52
+ });
53
+ return simplified;
54
+ };
55
+ exports.simplify = simplify;
56
+ const asNonCompoundGraph = (g) => {
57
+ const simplified = new graphlib_1.Graph();
58
+ g.getAllNodes().forEach((node) => {
59
+ if (!g.getChildren(node.id).length) {
60
+ simplified.addNode(Object.assign({}, node));
61
+ }
62
+ });
63
+ g.getAllEdges().forEach((edge) => {
64
+ simplified.addEdge(edge);
65
+ });
66
+ return simplified;
67
+ };
68
+ exports.asNonCompoundGraph = asNonCompoundGraph;
69
+ const zipObject = (keys, values) => {
70
+ return keys === null || keys === void 0 ? void 0 : keys.reduce((obj, key, i) => {
71
+ obj[key] = values[i];
72
+ return obj;
73
+ }, {});
74
+ };
75
+ exports.zipObject = zipObject;
76
+ const successorWeights = (g) => {
77
+ const weightsMap = {};
78
+ g.getAllNodes().forEach((node) => {
79
+ const sucs = {};
80
+ g.getRelatedEdges(node.id, 'out').forEach((e) => {
81
+ sucs[e.target] = (sucs[e.target] || 0) + (e.data.weight || 0);
82
+ });
83
+ weightsMap[node.id] = sucs;
84
+ });
85
+ return weightsMap;
86
+ };
87
+ exports.successorWeights = successorWeights;
88
+ const predecessorWeights = (g) => {
89
+ const nodes = g.getAllNodes();
90
+ const weightMap = nodes.map((v) => {
91
+ const preds = {};
92
+ g.getRelatedEdges(v.id, 'in').forEach((e) => {
93
+ preds[e.source] = (preds[e.source] || 0) + e.data.weight;
94
+ });
95
+ return preds;
96
+ });
97
+ return (0, exports.zipObject)(nodes.map((n) => n.id), weightMap);
98
+ };
99
+ exports.predecessorWeights = predecessorWeights;
100
+ /*
101
+ * Finds where a line starting at point ({x, y}) would intersect a rectangle
102
+ * ({x, y, width, height}) if it were pointing at the rectangle's center.
103
+ */
104
+ const intersectRect = (rect, point) => {
105
+ const x = Number(rect.x);
106
+ const y = Number(rect.y);
107
+ // Rectangle intersection algorithm from:
108
+ // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes
109
+ const dx = Number(point.x) - x;
110
+ const dy = Number(point.y) - y;
111
+ let w = Number(rect.width) / 2;
112
+ let h = Number(rect.height) / 2;
113
+ if (!dx && !dy) {
114
+ // completely overlapped directly, then return points its self
115
+ return { x: 0, y: 0 };
116
+ }
117
+ let sx;
118
+ let sy;
119
+ if (Math.abs(dy) * w > Math.abs(dx) * h) {
120
+ // Intersection is top or bottom of rect.
121
+ if (dy < 0) {
122
+ h = -h;
123
+ }
124
+ sx = (h * dx) / dy;
125
+ sy = h;
126
+ }
127
+ else {
128
+ // Intersection is left or right of rect.
129
+ if (dx < 0) {
130
+ w = -w;
131
+ }
132
+ sx = w;
133
+ sy = (w * dy) / dx;
134
+ }
135
+ return { x: x + sx, y: y + sy };
136
+ };
137
+ exports.intersectRect = intersectRect;
138
+ /*
139
+ * Given a DAG with each node assigned "rank" and "order" properties, this
140
+ * const will produce a matrix with the ids of each node.
141
+ */
142
+ const buildLayerMatrix = (g) => {
143
+ const layeringNodes = [];
144
+ const rankMax = (0, exports.maxRank)(g) + 1;
145
+ for (let i = 0; i < rankMax; i++) {
146
+ layeringNodes.push([]);
147
+ }
148
+ // const layering = _.map(_.range(maxRank(g) + 1), function() { return []; });
149
+ g.getAllNodes().forEach((node) => {
150
+ const rank = node.data.rank;
151
+ if (rank !== undefined && layeringNodes[rank]) {
152
+ layeringNodes[rank].push(node.id);
153
+ }
154
+ });
155
+ for (let i = 0; i < rankMax; i++) {
156
+ layeringNodes[i] = layeringNodes[i].sort((va, vb) => safeSort(g.getNode(va).data.order, g.getNode(vb).data.order));
157
+ }
158
+ return layeringNodes;
159
+ };
160
+ exports.buildLayerMatrix = buildLayerMatrix;
161
+ /*
162
+ * Adjusts the ranks for all nodes in the graph such that all nodes v have
163
+ * rank(v) >= 0 and at least one node w has rank(w) = 0.
164
+ */
165
+ const normalizeRanks = (g) => {
166
+ const nodeRanks = g
167
+ .getAllNodes()
168
+ .filter((v) => v.data.rank !== undefined)
169
+ .map((v) => v.data.rank);
170
+ const min = Math.min(...nodeRanks);
171
+ g.getAllNodes().forEach((v) => {
172
+ if (v.data.hasOwnProperty('rank') && min !== Infinity) {
173
+ v.data.rank -= min;
174
+ }
175
+ });
176
+ };
177
+ exports.normalizeRanks = normalizeRanks;
178
+ const removeEmptyRanks = (g, nodeRankFactor = 0) => {
179
+ // Ranks may not start at 0, so we need to offset them
180
+ const nodes = g.getAllNodes();
181
+ const nodeRanks = nodes
182
+ .filter((v) => v.data.rank !== undefined)
183
+ .map((v) => v.data.rank);
184
+ const offset = Math.min(...nodeRanks);
185
+ const layers = [];
186
+ nodes.forEach((v) => {
187
+ const rank = (v.data.rank || 0) - offset;
188
+ if (!layers[rank]) {
189
+ layers[rank] = [];
190
+ }
191
+ layers[rank].push(v.id);
192
+ });
193
+ let delta = 0;
194
+ for (let i = 0; i < layers.length; i++) {
195
+ const vs = layers[i];
196
+ if (vs === undefined) {
197
+ if (i % nodeRankFactor !== 0) {
198
+ delta -= 1;
199
+ }
200
+ }
201
+ else if (delta) {
202
+ vs === null || vs === void 0 ? void 0 : vs.forEach((v) => {
203
+ const node = g.getNode(v);
204
+ if (node) {
205
+ node.data.rank = node.data.rank || 0;
206
+ node.data.rank += delta;
207
+ }
208
+ });
209
+ }
210
+ }
211
+ };
212
+ exports.removeEmptyRanks = removeEmptyRanks;
213
+ const addBorderNode = (g, prefix, rank, order) => {
214
+ const node = {
215
+ width: 0,
216
+ height: 0,
217
+ };
218
+ if ((0, util_1.isNumber)(rank) && (0, util_1.isNumber)(order)) {
219
+ node.rank = rank;
220
+ node.order = order;
221
+ }
222
+ return (0, exports.addDummyNode)(g, 'border', node, prefix);
223
+ };
224
+ exports.addBorderNode = addBorderNode;
225
+ const maxRank = (g) => {
226
+ let maxRank;
227
+ g.getAllNodes().forEach((v) => {
228
+ const rank = v.data.rank;
229
+ if (rank !== undefined) {
230
+ if (maxRank === undefined || rank > maxRank) {
231
+ maxRank = rank;
232
+ }
233
+ }
234
+ });
235
+ if (!maxRank) {
236
+ maxRank = 0;
237
+ }
238
+ return maxRank;
239
+ };
240
+ exports.maxRank = maxRank;
241
+ /*
242
+ * Partition a collection into two groups: `lhs` and `rhs`. If the supplied
243
+ * const returns true for an entry it goes into `lhs`. Otherwise it goes
244
+ * into `rhs.
245
+ */
246
+ const partition = (collection, fn) => {
247
+ const result = { lhs: [], rhs: [] };
248
+ collection === null || collection === void 0 ? void 0 : collection.forEach((value) => {
249
+ if (fn(value)) {
250
+ result.lhs.push(value);
251
+ }
252
+ else {
253
+ result.rhs.push(value);
254
+ }
255
+ });
256
+ return result;
257
+ };
258
+ exports.partition = partition;
259
+ const minBy = (array, func) => {
260
+ return array.reduce((a, b) => {
261
+ const valA = func(a);
262
+ const valB = func(b);
263
+ return valA > valB ? b : a;
264
+ });
265
+ };
266
+ exports.minBy = minBy;
267
+ const doDFS = (graph, node, postorder, visited, navigator, result) => {
268
+ if (!visited.includes(node.id)) {
269
+ visited.push(node.id);
270
+ if (!postorder) {
271
+ result.push(node.id);
272
+ }
273
+ navigator(node.id).forEach((n) => doDFS(graph, n, postorder, visited, navigator, result));
274
+ if (postorder) {
275
+ result.push(node.id);
276
+ }
277
+ }
278
+ };
279
+ /**
280
+ * @description DFS traversal.
281
+ * @description.zh-CN DFS 遍历。
282
+ */
283
+ const dfs = (graph, node, order, isDirected) => {
284
+ const nodes = Array.isArray(node) ? node : [node];
285
+ const navigator = (n) => (isDirected ? graph.getSuccessors(n) : graph.getNeighbors(n));
286
+ const results = [];
287
+ const visited = [];
288
+ nodes.forEach((node) => {
289
+ if (!graph.hasNode(node.id)) {
290
+ throw new Error(`Graph does not have node: ${node}`);
291
+ }
292
+ else {
293
+ doDFS(graph, node, order === 'post', visited, navigator, results);
294
+ }
295
+ });
296
+ return results;
297
+ };
298
+ exports.dfs = dfs;
299
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/antv-dagre/util.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { ID } from '@antv/graphlib';
2
+ import type { DagreAlign, DagreRankdir } from './antv-dagre/types';
3
+ import type { Graph as IGraph, Layout, LayoutMapping, Node, OutNode, PointTuple } from './types';
4
+ export interface AntVDagreLayoutOptions {
5
+ rankdir?: DagreRankdir;
6
+ ranker?: 'network-simplex' | 'tight-tree' | 'longest-path';
7
+ align?: DagreAlign;
8
+ begin?: PointTuple;
9
+ nodeSize?: number | number[] | ((nodeData: Node) => number);
10
+ nodesep?: number;
11
+ ranksep?: number;
12
+ controlPoints?: boolean;
13
+ sortByCombo?: boolean;
14
+ edgeLabelSpace?: boolean;
15
+ nodeOrder?: string[];
16
+ radial?: boolean;
17
+ focusNode?: ID | Node | null;
18
+ preset?: OutNode[];
19
+ nodesepFunc?: (d?: Node) => number;
20
+ ranksepFunc?: (d?: Node) => number;
21
+ }
22
+ /**
23
+ * Layout arranging the nodes in a circle.
24
+ *
25
+ * @example
26
+ * // Assign layout options when initialization.
27
+ * const layout = new CircularLayout({ radius: 10 });
28
+ * const positions = await layout.execute(graph); // { nodes: [], edges: [] }
29
+ *
30
+ * // Or use different options later.
31
+ * const layout = new CircularLayout({ radius: 10 });
32
+ * const positions = await layout.execute(graph, { radius: 20 }); // { nodes: [], edges: [] }
33
+ *
34
+ * // If you want to assign the positions directly to the nodes, use assign method.
35
+ * await layout.assign(graph, { radius: 20 });
36
+ */
37
+ export declare class AntVDagreLayout implements Layout<AntVDagreLayoutOptions> {
38
+ options: AntVDagreLayoutOptions;
39
+ id: string;
40
+ constructor(options?: AntVDagreLayoutOptions);
41
+ /**
42
+ * Return the positions of nodes and edges(if needed).
43
+ */
44
+ execute(graph: IGraph, options?: AntVDagreLayoutOptions): Promise<LayoutMapping>;
45
+ /**
46
+ * To directly assign the positions to the nodes.
47
+ */
48
+ assign(graph: IGraph, options?: AntVDagreLayoutOptions): Promise<void>;
49
+ private genericDagreLayout;
50
+ }