@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
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.order = void 0;
4
+ const graphlib_1 = require("@antv/graphlib");
5
+ const util_1 = require("@antv/util");
6
+ const util_2 = require("../util");
7
+ const add_subgraph_constraints_1 = require("./add-subgraph-constraints");
8
+ const build_layer_graph_1 = require("./build-layer-graph");
9
+ const cross_count_1 = require("./cross-count");
10
+ const init_order_1 = require("./init-order");
11
+ const sort_subgraph_1 = require("./sort-subgraph");
12
+ /*
13
+ * Applies heuristics to minimize edge crossings in the graph and sets the best
14
+ * order solution as an order attribute on each node.
15
+ *
16
+ * Pre-conditions:
17
+ *
18
+ * 1. Graph must be DAG
19
+ * 2. Graph nodes must be objects with a "rank" attribute
20
+ * 3. Graph edges must have the "weight" attribute
21
+ *
22
+ * Post-conditions:
23
+ *
24
+ * 1. Graph nodes will have an "order" attribute based on the results of the
25
+ * algorithm.
26
+ */
27
+ const order = (g, keepNodeOrder) => {
28
+ const mxRank = (0, util_2.maxRank)(g);
29
+ const range1 = [];
30
+ const range2 = [];
31
+ for (let i = 1; i < mxRank + 1; i++)
32
+ range1.push(i);
33
+ for (let i = mxRank - 1; i > -1; i--)
34
+ range2.push(i);
35
+ const downLayerGraphs = buildLayerGraphs(g, range1, 'in');
36
+ const upLayerGraphs = buildLayerGraphs(g, range2, 'out');
37
+ let layering = (0, init_order_1.initOrder)(g);
38
+ assignOrder(g, layering);
39
+ let bestCC = Number.POSITIVE_INFINITY;
40
+ let best;
41
+ for (let i = 0, lastBest = 0; lastBest < 4; ++i, ++lastBest) {
42
+ sweepLayerGraphs(i % 2 ? downLayerGraphs : upLayerGraphs, i % 4 >= 2, false, keepNodeOrder);
43
+ layering = (0, util_2.buildLayerMatrix)(g);
44
+ const cc = (0, cross_count_1.crossCount)(g, layering);
45
+ if (cc < bestCC) {
46
+ lastBest = 0;
47
+ best = (0, util_1.clone)(layering);
48
+ bestCC = cc;
49
+ }
50
+ }
51
+ // consider use previous result, maybe somewhat reduendant
52
+ layering = (0, init_order_1.initOrder)(g);
53
+ assignOrder(g, layering);
54
+ for (let i = 0, lastBest = 0; lastBest < 4; ++i, ++lastBest) {
55
+ sweepLayerGraphs(i % 2 ? downLayerGraphs : upLayerGraphs, i % 4 >= 2, true, keepNodeOrder);
56
+ layering = (0, util_2.buildLayerMatrix)(g);
57
+ const cc = (0, cross_count_1.crossCount)(g, layering);
58
+ if (cc < bestCC) {
59
+ lastBest = 0;
60
+ best = (0, util_1.clone)(layering);
61
+ bestCC = cc;
62
+ }
63
+ }
64
+ assignOrder(g, best);
65
+ };
66
+ exports.order = order;
67
+ const buildLayerGraphs = (g, ranks, direction) => {
68
+ return ranks.map((rank) => {
69
+ return (0, build_layer_graph_1.buildLayerGraph)(g, rank, direction);
70
+ });
71
+ };
72
+ const sweepLayerGraphs = (layerGraphs, biasRight, usePrev, keepNodeOrder) => {
73
+ const cg = new graphlib_1.Graph();
74
+ layerGraphs === null || layerGraphs === void 0 ? void 0 : layerGraphs.forEach((lg) => {
75
+ var _a;
76
+ // const root = lg.graph().root as string;
77
+ const root = lg.getRoots()[0].id;
78
+ const sorted = (0, sort_subgraph_1.sortSubgraph)(lg, root, cg, biasRight, usePrev, keepNodeOrder);
79
+ for (let i = 0; i < ((_a = sorted.vs) === null || _a === void 0 ? void 0 : _a.length) || 0; i++) {
80
+ const lnode = lg.getNode(sorted.vs[i]);
81
+ if (lnode) {
82
+ lnode.data.order = i;
83
+ }
84
+ }
85
+ (0, add_subgraph_constraints_1.addSubgraphConstraints)(lg, cg, sorted.vs);
86
+ });
87
+ };
88
+ const assignOrder = (g, layering) => {
89
+ layering === null || layering === void 0 ? void 0 : layering.forEach((layer) => {
90
+ layer === null || layer === void 0 ? void 0 : layer.forEach((v, i) => {
91
+ g.getNode(v).data.order = i;
92
+ });
93
+ });
94
+ };
95
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/antv-dagre/order/index.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,22 @@
1
- import { __read, __spreadArray } from "tslib";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initDataOrder = void 0;
2
4
  /**
3
5
  * 按照数据中的结果设置fixorder
4
6
  */
5
- export var initDataOrder = function (g, nodeOrder) {
6
- var simpleNodes = g.getAllNodes().filter(function (v) {
7
+ const initDataOrder = (g, nodeOrder) => {
8
+ const simpleNodes = g.getAllNodes().filter((v) => {
7
9
  var _a;
8
10
  return !((_a = g.getChildren(v.id)) === null || _a === void 0 ? void 0 : _a.length);
9
11
  });
10
- var ranks = simpleNodes.map(function (v) { return v.data.rank; });
11
- var maxRank = Math.max.apply(Math, __spreadArray([], __read(ranks)));
12
- var layers = [];
13
- for (var i = 0; i < maxRank + 1; i++) {
12
+ const ranks = simpleNodes.map((v) => v.data.rank);
13
+ const maxRank = Math.max(...ranks);
14
+ const layers = [];
15
+ for (let i = 0; i < maxRank + 1; i++) {
14
16
  layers[i] = [];
15
17
  }
16
- nodeOrder === null || nodeOrder === void 0 ? void 0 : nodeOrder.forEach(function (n) {
17
- var node = g.getNode(n);
18
+ nodeOrder === null || nodeOrder === void 0 ? void 0 : nodeOrder.forEach((n) => {
19
+ const node = g.getNode(n);
18
20
  // 只考虑原有节点,dummy节点需要按照后续算法排出
19
21
  if (!node || node.data.dummy) {
20
22
  return;
@@ -25,4 +27,5 @@ export var initDataOrder = function (g, nodeOrder) {
25
27
  }
26
28
  });
27
29
  };
30
+ exports.initDataOrder = initDataOrder;
28
31
  //# sourceMappingURL=init-data-order.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-data-order.js","sourceRoot":"","sources":["../../../src/antv-dagre/order/init-data-order.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACI,MAAM,aAAa,GAAG,CAAC,CAAQ,EAAE,SAAgB,EAAE,EAAE;IAC1D,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;;QAC/C,OAAO,CAAC,CAAA,MAAA,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,0CAAE,MAAM,CAAA,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IACnC,MAAM,MAAM,GAAW,EAAE,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAChB;IAED,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACvB,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,4BAA4B;QAC5B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAC5B,OAAO;SACR;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAK,CAAC,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC,MAAM,CAAC,CAAC,mBAAmB;YACxE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAtBW,QAAA,aAAa,iBAsBxB"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initOrder = void 0;
4
+ /*
5
+ * Assigns an initial order value for each node by performing a DFS search
6
+ * starting from nodes in the first rank. Nodes are assigned an order in their
7
+ * rank as they are first visited.
8
+ *
9
+ * This approach comes from Gansner, et al., "A Technique for Drawing Directed
10
+ * Graphs."
11
+ *
12
+ * Returns a layering matrix with an array per layer and each layer sorted by
13
+ * the order of its nodes.
14
+ */
15
+ const initOrder = (g) => {
16
+ const visited = {};
17
+ // const simpleNodes = g.getAllNodes().filter((v) => {
18
+ // return !g.getChildren(v.id)?.length;
19
+ // });
20
+ const simpleNodes = g.getAllNodes();
21
+ const nodeRanks = simpleNodes.map((v) => { var _a; return (_a = v.data.rank) !== null && _a !== void 0 ? _a : -Infinity; });
22
+ const maxRank = Math.max(...nodeRanks);
23
+ const layers = [];
24
+ for (let i = 0; i < maxRank + 1; i++) {
25
+ layers.push([]);
26
+ }
27
+ const orderedVs = simpleNodes.sort((a, b) => g.getNode(a.id).data.rank - g.getNode(b.id).data.rank);
28
+ // const orderedVs = _.sortBy(simpleNodes, function(v) { return g.node(v)!.rank; });
29
+ // 有fixOrder的,直接排序好放进去
30
+ const beforeSort = orderedVs.filter((n) => {
31
+ return g.getNode(n.id).data.fixorder !== undefined;
32
+ });
33
+ const fixOrderNodes = beforeSort.sort((a, b) => g.getNode(a.id).data.fixorder - g.getNode(b.id).data.fixorder);
34
+ fixOrderNodes === null || fixOrderNodes === void 0 ? void 0 : fixOrderNodes.forEach((n) => {
35
+ if (!isNaN(g.getNode(n.id).data.rank)) {
36
+ layers[g.getNode(n.id).data.rank].push(n.id);
37
+ }
38
+ visited[n.id] = true;
39
+ });
40
+ orderedVs === null || orderedVs === void 0 ? void 0 : orderedVs.forEach((n) => g.dfsTree(n.id, (node) => {
41
+ if (visited.hasOwnProperty(node.id))
42
+ return true;
43
+ visited[node.id] = true;
44
+ if (!isNaN(node.data.rank)) {
45
+ layers[node.data.rank].push(node.id);
46
+ }
47
+ }));
48
+ return layers;
49
+ };
50
+ exports.initOrder = initOrder;
51
+ //# sourceMappingURL=init-order.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-order.js","sourceRoot":"","sources":["../../../src/antv-dagre/order/init-order.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { ID } from "@antv/graphlib";
2
- import { Graph } from "../../types";
3
- export declare type ConflictEntry = {
1
+ import { ID } from '@antv/graphlib';
2
+ import { Graph } from '../../types';
3
+ export type ConflictEntry = {
4
4
  i: number;
5
5
  indegree?: number;
6
6
  in?: ConflictEntry[];
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /*
2
3
  * Given a list of entries of the form {v, barycenter, weight} and a
3
4
  * constraint graph this function will resolve any conflicts between the
@@ -23,39 +24,40 @@
23
24
  * graph. The property `i` is the lowest original index of any of the
24
25
  * elements in `vs`.
25
26
  */
26
- var resolveConflicts = function (entries, cg) {
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ const resolveConflicts = (entries, cg) => {
27
29
  var _a, _b, _c;
28
- var mappedEntries = {};
29
- entries === null || entries === void 0 ? void 0 : entries.forEach(function (entry, i) {
30
+ const mappedEntries = {};
31
+ entries === null || entries === void 0 ? void 0 : entries.forEach((entry, i) => {
30
32
  mappedEntries[entry.v] = {
31
- i: i,
33
+ i,
32
34
  indegree: 0,
33
35
  in: [],
34
36
  out: [],
35
37
  vs: [entry.v],
36
38
  };
37
- var tmp = mappedEntries[entry.v];
39
+ const tmp = mappedEntries[entry.v];
38
40
  if (entry.barycenter !== undefined) {
39
41
  tmp.barycenter = entry.barycenter;
40
42
  tmp.weight = entry.weight;
41
43
  }
42
44
  });
43
- (_a = cg.getAllEdges()) === null || _a === void 0 ? void 0 : _a.forEach(function (e) {
44
- var entryV = mappedEntries[e.source];
45
- var entryW = mappedEntries[e.target];
45
+ (_a = cg.getAllEdges()) === null || _a === void 0 ? void 0 : _a.forEach((e) => {
46
+ const entryV = mappedEntries[e.source];
47
+ const entryW = mappedEntries[e.target];
46
48
  if (entryV !== undefined && entryW !== undefined) {
47
49
  entryW.indegree++;
48
50
  entryV.out.push(mappedEntries[e.target]);
49
51
  }
50
52
  });
51
- var sourceSet = (_c = (_b = Object.values(mappedEntries)).filter) === null || _c === void 0 ? void 0 : _c.call(_b, function (entry) { return !entry.indegree; });
53
+ const sourceSet = (_c = (_b = Object.values(mappedEntries)).filter) === null || _c === void 0 ? void 0 : _c.call(_b, (entry) => !entry.indegree);
52
54
  return doResolveConflicts(sourceSet);
53
55
  };
54
- var doResolveConflicts = function (sourceSet) {
56
+ const doResolveConflicts = (sourceSet) => {
55
57
  var _a, _b;
56
- var entries = [];
57
- var handleIn = function (vEntry) {
58
- return function (uEntry) {
58
+ const entries = [];
59
+ const handleIn = (vEntry) => {
60
+ return (uEntry) => {
59
61
  if (uEntry.merged)
60
62
  return;
61
63
  if (uEntry.barycenter === undefined ||
@@ -65,33 +67,30 @@ var doResolveConflicts = function (sourceSet) {
65
67
  }
66
68
  };
67
69
  };
68
- var handleOut = function (vEntry) {
69
- return function (wEntry) {
70
- wEntry["in"].push(vEntry);
70
+ const handleOut = (vEntry) => {
71
+ return (wEntry) => {
72
+ wEntry['in'].push(vEntry);
71
73
  if (--wEntry.indegree === 0) {
72
74
  sourceSet.push(wEntry);
73
75
  }
74
76
  };
75
77
  };
76
- var _loop_1 = function () {
77
- var entry = sourceSet.pop();
78
- entries.push(entry);
79
- (_a = entry["in"].reverse()) === null || _a === void 0 ? void 0 : _a.forEach(function (e) { return handleIn(entry)(e); });
80
- (_b = entry.out) === null || _b === void 0 ? void 0 : _b.forEach(function (e) { return handleOut(entry)(e); });
81
- };
82
78
  while (sourceSet === null || sourceSet === void 0 ? void 0 : sourceSet.length) {
83
- _loop_1();
79
+ const entry = sourceSet.pop();
80
+ entries.push(entry);
81
+ (_a = entry['in'].reverse()) === null || _a === void 0 ? void 0 : _a.forEach((e) => handleIn(entry)(e));
82
+ (_b = entry.out) === null || _b === void 0 ? void 0 : _b.forEach((e) => handleOut(entry)(e));
84
83
  }
85
- var filtered = entries.filter(function (entry) { return !entry.merged; });
86
- var keys = [
87
- "vs",
88
- "i",
89
- "barycenter",
90
- "weight",
84
+ const filtered = entries.filter((entry) => !entry.merged);
85
+ const keys = [
86
+ 'vs',
87
+ 'i',
88
+ 'barycenter',
89
+ 'weight',
91
90
  ];
92
- return filtered.map(function (entry) {
93
- var picked = {};
94
- keys === null || keys === void 0 ? void 0 : keys.forEach(function (key) {
91
+ return filtered.map((entry) => {
92
+ const picked = {};
93
+ keys === null || keys === void 0 ? void 0 : keys.forEach((key) => {
95
94
  if (entry[key] === undefined)
96
95
  return;
97
96
  picked[key] = entry[key];
@@ -99,10 +98,10 @@ var doResolveConflicts = function (sourceSet) {
99
98
  return picked;
100
99
  });
101
100
  };
102
- var mergeEntries = function (target, source) {
101
+ const mergeEntries = (target, source) => {
103
102
  var _a;
104
- var sum = 0;
105
- var weight = 0;
103
+ let sum = 0;
104
+ let weight = 0;
106
105
  if (target.weight) {
107
106
  sum += target.barycenter * target.weight;
108
107
  weight += target.weight;
@@ -117,5 +116,5 @@ var mergeEntries = function (target, source) {
117
116
  target.i = Math.min(source.i, target.i);
118
117
  source.merged = true;
119
118
  };
120
- export default resolveConflicts;
119
+ exports.default = resolveConflicts;
121
120
  //# sourceMappingURL=resolve-conflicts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-conflicts.js","sourceRoot":"","sources":["../../../src/antv-dagre/order/resolve-conflicts.ts"],"names":[],"mappings":"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"}
@@ -1,48 +1,52 @@
1
- import { barycenter } from './barycenter';
2
- import resolveConflicts from './resolve-conflicts';
3
- import { sort } from './sort';
4
- export var sortSubgraph = function (g, v, cg, biasRight, usePrev, keepNodeOrder) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sortSubgraph = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const barycenter_1 = require("./barycenter");
6
+ const resolve_conflicts_1 = tslib_1.__importDefault(require("./resolve-conflicts"));
7
+ const sort_1 = require("./sort");
8
+ const sortSubgraph = (g, v, cg, biasRight, usePrev, keepNodeOrder) => {
5
9
  var _a, _b, _c, _d;
6
- var movable = g.getChildren(v).map(function (n) { return n.id; });
10
+ let movable = g.getChildren(v).map((n) => n.id);
7
11
  // fixorder的点不参与排序(这个方案不合适,只排了新增节点,和原来的分离)
8
- var node = g.getNode(v);
9
- var bl = node ? node.data.borderLeft : undefined;
10
- var br = node ? node.data.borderRight : undefined;
11
- var subgraphs = {};
12
+ const node = g.getNode(v);
13
+ const bl = node ? node.data.borderLeft : undefined;
14
+ const br = node ? node.data.borderRight : undefined;
15
+ const subgraphs = {};
12
16
  if (bl) {
13
- movable = movable === null || movable === void 0 ? void 0 : movable.filter(function (w) {
17
+ movable = movable === null || movable === void 0 ? void 0 : movable.filter((w) => {
14
18
  return w !== bl && w !== br;
15
19
  });
16
20
  }
17
- var barycenters = barycenter(g, movable || []);
18
- barycenters === null || barycenters === void 0 ? void 0 : barycenters.forEach(function (entry) {
21
+ const barycenters = (0, barycenter_1.barycenter)(g, movable || []);
22
+ barycenters === null || barycenters === void 0 ? void 0 : barycenters.forEach((entry) => {
19
23
  var _a;
20
24
  if ((_a = g.getChildren(entry.v)) === null || _a === void 0 ? void 0 : _a.length) {
21
- var subgraphResult = sortSubgraph(g, entry.v, cg, biasRight, keepNodeOrder);
25
+ const subgraphResult = (0, exports.sortSubgraph)(g, entry.v, cg, biasRight, keepNodeOrder);
22
26
  subgraphs[entry.v] = subgraphResult;
23
27
  if (subgraphResult.hasOwnProperty('barycenter')) {
24
28
  mergeBarycenters(entry, subgraphResult);
25
29
  }
26
30
  }
27
31
  });
28
- var entries = resolveConflicts(barycenters, cg);
32
+ const entries = (0, resolve_conflicts_1.default)(barycenters, cg);
29
33
  expandSubgraphs(entries, subgraphs);
30
34
  // 添加fixorder信息到entries里边
31
35
  // TODO: 不考虑复合情况,只用第一个点的fixorder信息,后续考虑更完备的实现
32
36
  (_a = entries
33
- .filter(function (e) { return e.vs.length > 0; })) === null || _a === void 0 ? void 0 : _a.forEach(function (e) {
34
- var node = g.getNode(e.vs[0]);
37
+ .filter((e) => e.vs.length > 0)) === null || _a === void 0 ? void 0 : _a.forEach((e) => {
38
+ const node = g.getNode(e.vs[0]);
35
39
  if (node) {
36
40
  e.fixorder = node.data.fixorder;
37
41
  e.order = node.data.order;
38
42
  }
39
43
  });
40
- var result = sort(entries, biasRight, usePrev, keepNodeOrder);
44
+ const result = (0, sort_1.sort)(entries, biasRight, usePrev, keepNodeOrder);
41
45
  if (bl) {
42
46
  result.vs = [bl, result.vs, br].flat();
43
47
  if ((_b = g.getPredecessors(bl)) === null || _b === void 0 ? void 0 : _b.length) {
44
- var blPred = g.getNode(((_c = g.getPredecessors(bl)) === null || _c === void 0 ? void 0 : _c[0].id) || '');
45
- var brPred = g.getNode(((_d = g.getPredecessors(br)) === null || _d === void 0 ? void 0 : _d[0].id) || '');
48
+ const blPred = g.getNode(((_c = g.getPredecessors(bl)) === null || _c === void 0 ? void 0 : _c[0].id) || '');
49
+ const brPred = g.getNode(((_d = g.getPredecessors(br)) === null || _d === void 0 ? void 0 : _d[0].id) || '');
46
50
  if (!result.hasOwnProperty('barycenter')) {
47
51
  result.barycenter = 0;
48
52
  result.weight = 0;
@@ -57,10 +61,11 @@ export var sortSubgraph = function (g, v, cg, biasRight, usePrev, keepNodeOrder)
57
61
  }
58
62
  return result;
59
63
  };
60
- var expandSubgraphs = function (entries, subgraphs) {
61
- entries === null || entries === void 0 ? void 0 : entries.forEach(function (entry) {
64
+ exports.sortSubgraph = sortSubgraph;
65
+ const expandSubgraphs = (entries, subgraphs) => {
66
+ entries === null || entries === void 0 ? void 0 : entries.forEach((entry) => {
62
67
  var _a;
63
- var vss = (_a = entry.vs) === null || _a === void 0 ? void 0 : _a.map(function (v) {
68
+ const vss = (_a = entry.vs) === null || _a === void 0 ? void 0 : _a.map((v) => {
64
69
  if (subgraphs[v]) {
65
70
  return subgraphs[v].vs;
66
71
  }
@@ -69,7 +74,7 @@ var expandSubgraphs = function (entries, subgraphs) {
69
74
  entry.vs = vss.flat();
70
75
  });
71
76
  };
72
- var mergeBarycenters = function (target, other) {
77
+ const mergeBarycenters = (target, other) => {
73
78
  if (target.barycenter !== undefined) {
74
79
  target.barycenter =
75
80
  (target.barycenter * target.weight + other.barycenter * other.weight) /
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sort-subgraph.js","sourceRoot":"","sources":["../../../src/antv-dagre/order/sort-subgraph.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { ID } from "@antv/graphlib";
2
- import { ConflictEntry } from "./resolve-conflicts";
1
+ import { ID } from '@antv/graphlib';
2
+ import { ConflictEntry } from './resolve-conflicts';
3
3
  export declare const sort: (entries: ConflictEntry[], biasRight?: boolean, usePrev?: boolean, keepNodeOrder?: boolean) => {
4
4
  vs: ID[];
5
5
  barycenter?: number;
@@ -1,22 +1,25 @@
1
- import { partition } from "../util";
2
- export var sort = function (entries, biasRight, usePrev, keepNodeOrder) {
3
- var parts = partition(entries, function (entry) {
4
- var hasFixOrder = entry.hasOwnProperty("fixorder") && !isNaN(entry.fixorder);
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sort = void 0;
4
+ const util_1 = require("../util");
5
+ const sort = (entries, biasRight, usePrev, keepNodeOrder) => {
6
+ const parts = (0, util_1.partition)(entries, (entry) => {
7
+ const hasFixOrder = entry.hasOwnProperty('fixorder') && !isNaN(entry.fixorder);
5
8
  if (keepNodeOrder) {
6
- return !hasFixOrder && entry.hasOwnProperty("barycenter");
9
+ return !hasFixOrder && entry.hasOwnProperty('barycenter');
7
10
  }
8
11
  // NOTE: 有fixorder的也可以排
9
- return hasFixOrder || entry.hasOwnProperty("barycenter");
12
+ return hasFixOrder || entry.hasOwnProperty('barycenter');
10
13
  });
11
- var sortable = parts.lhs;
12
- var unsortable = parts.rhs.sort(function (a, b) { return -a.i - -b.i; });
13
- var vs = [];
14
- var sum = 0;
15
- var weight = 0;
16
- var vsIndex = 0;
14
+ const sortable = parts.lhs;
15
+ const unsortable = parts.rhs.sort((a, b) => -a.i - -b.i);
16
+ const vs = [];
17
+ let sum = 0;
18
+ let weight = 0;
19
+ let vsIndex = 0;
17
20
  sortable === null || sortable === void 0 ? void 0 : sortable.sort(compareWithBias(!!biasRight, !!usePrev));
18
21
  vsIndex = consumeUnsortable(vs, unsortable, vsIndex);
19
- sortable === null || sortable === void 0 ? void 0 : sortable.forEach(function (entry) {
22
+ sortable === null || sortable === void 0 ? void 0 : sortable.forEach((entry) => {
20
23
  var _a;
21
24
  vsIndex += (_a = entry.vs) === null || _a === void 0 ? void 0 : _a.length;
22
25
  vs.push(entry.vs);
@@ -24,7 +27,7 @@ export var sort = function (entries, biasRight, usePrev, keepNodeOrder) {
24
27
  weight += entry.weight;
25
28
  vsIndex = consumeUnsortable(vs, unsortable, vsIndex);
26
29
  });
27
- var result = {
30
+ const result = {
28
31
  vs: vs.flat(),
29
32
  };
30
33
  if (weight) {
@@ -33,9 +36,10 @@ export var sort = function (entries, biasRight, usePrev, keepNodeOrder) {
33
36
  }
34
37
  return result;
35
38
  };
36
- var consumeUnsortable = function (vs, unsortable, index) {
37
- var iindex = index;
38
- var last;
39
+ exports.sort = sort;
40
+ const consumeUnsortable = (vs, unsortable, index) => {
41
+ let iindex = index;
42
+ let last;
39
43
  while (unsortable.length &&
40
44
  (last = unsortable[unsortable.length - 1]).i <= iindex) {
41
45
  unsortable.pop();
@@ -47,8 +51,8 @@ var consumeUnsortable = function (vs, unsortable, index) {
47
51
  /**
48
52
  * 配置是否考虑使用之前的布局结果
49
53
  */
50
- var compareWithBias = function (bias, usePrev) {
51
- return function (entryV, entryW) {
54
+ const compareWithBias = (bias, usePrev) => {
55
+ return (entryV, entryW) => {
52
56
  // 排序的时候先判断fixorder,不行再判断重心
53
57
  if (entryV.fixorder !== undefined && entryW.fixorder !== undefined) {
54
58
  return entryV.fixorder - entryW.fixorder;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sort.js","sourceRoot":"","sources":["../../../src/antv-dagre/order/sort.ts"],"names":[],"mappings":"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"}
@@ -1,25 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parentDummyChains = void 0;
1
4
  // deep first search with both order low for pre, lim for post
2
- var dfsBothOrder = function (g) {
3
- var result = {};
4
- var lim = 0;
5
- var dfs = function (v) {
6
- var low = lim;
7
- g.getChildren(v).forEach(function (n) { return dfs(n.id); });
8
- result[v] = { low: low, lim: lim++ };
5
+ const dfsBothOrder = (g) => {
6
+ const result = {};
7
+ let lim = 0;
8
+ const dfs = (v) => {
9
+ const low = lim;
10
+ g.getChildren(v).forEach((n) => dfs(n.id));
11
+ result[v] = { low, lim: lim++ };
9
12
  };
10
- g.getRoots().forEach(function (n) { return dfs(n.id); });
13
+ g.getRoots().forEach((n) => dfs(n.id));
11
14
  return result;
12
15
  };
13
16
  // Find a path from v to w through the lowest common ancestor (LCA). Return the
14
17
  // full path and the LCA.
15
- var findPath = function (g, postorderNums, v, w) {
18
+ const findPath = (g, postorderNums, v, w) => {
16
19
  var _a, _b;
17
- var vPath = [];
18
- var wPath = [];
19
- var low = Math.min(postorderNums[v].low, postorderNums[w].low);
20
- var lim = Math.max(postorderNums[v].lim, postorderNums[w].lim);
21
- var parent;
22
- var lca;
20
+ const vPath = [];
21
+ const wPath = [];
22
+ const low = Math.min(postorderNums[v].low, postorderNums[w].low);
23
+ const lim = Math.max(postorderNums[v].lim, postorderNums[w].lim);
24
+ let parent;
25
+ let lca;
23
26
  // Traverse up from v to find the LCA
24
27
  parent = v;
25
28
  do {
@@ -34,23 +37,23 @@ var findPath = function (g, postorderNums, v, w) {
34
37
  wPath.push(parent);
35
38
  parent = (_b = g.getParent(parent)) === null || _b === void 0 ? void 0 : _b.id;
36
39
  }
37
- return { lca: lca, path: vPath.concat(wPath.reverse()) };
40
+ return { lca, path: vPath.concat(wPath.reverse()) };
38
41
  };
39
- export var parentDummyChains = function (g, dummyChains) {
40
- var postorderNums = dfsBothOrder(g);
41
- dummyChains.forEach(function (startV) {
42
+ const parentDummyChains = (g, dummyChains) => {
43
+ const postorderNums = dfsBothOrder(g);
44
+ dummyChains.forEach((startV) => {
42
45
  var _a, _b;
43
- var v = startV;
44
- var node = g.getNode(v);
45
- var originalEdge = node.data.originalEdge;
46
+ let v = startV;
47
+ let node = g.getNode(v);
48
+ const originalEdge = node.data.originalEdge;
46
49
  if (!originalEdge)
47
50
  return;
48
- var pathData = findPath(g, postorderNums, originalEdge.source, originalEdge.target);
49
- var path = pathData.path;
50
- var lca = pathData.lca;
51
- var pathIdx = 0;
52
- var pathV = path[pathIdx];
53
- var ascending = true;
51
+ const pathData = findPath(g, postorderNums, originalEdge.source, originalEdge.target);
52
+ const path = pathData.path;
53
+ const lca = pathData.lca;
54
+ let pathIdx = 0;
55
+ let pathV = path[pathIdx];
56
+ let ascending = true;
54
57
  while (v !== originalEdge.target) {
55
58
  node = g.getNode(v);
56
59
  if (ascending) {
@@ -77,4 +80,5 @@ export var parentDummyChains = function (g, dummyChains) {
77
80
  }
78
81
  });
79
82
  };
83
+ exports.parentDummyChains = parentDummyChains;
80
84
  //# sourceMappingURL=parent-dummy-chains.js.map