@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
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.position = void 0;
4
+ const util_1 = require("../util");
5
+ const bk_1 = require("./bk");
6
+ const positionY = (g, options) => {
7
+ const { ranksep = 0 } = options || {};
8
+ const layering = (0, util_1.buildLayerMatrix)(g);
9
+ let prevY = 0;
10
+ layering === null || layering === void 0 ? void 0 : layering.forEach((layer) => {
11
+ const heights = layer.map((v) => g.getNode(v).data.height);
12
+ const maxHeight = Math.max(...heights, 0);
13
+ layer === null || layer === void 0 ? void 0 : layer.forEach((v) => {
14
+ g.getNode(v).data.y = prevY + maxHeight / 2;
15
+ });
16
+ prevY += maxHeight + ranksep;
17
+ });
18
+ };
19
+ const positionX = (g, options) => {
20
+ const { align: graphAlign, nodesep = 0, edgesep = 0 } = options || {};
21
+ const layering = (0, util_1.buildLayerMatrix)(g);
22
+ const conflicts = Object.assign((0, bk_1.findType1Conflicts)(g, layering), (0, bk_1.findType2Conflicts)(g, layering));
23
+ const xss = {};
24
+ let adjustedLayering = [];
25
+ ['u', 'd'].forEach((vert) => {
26
+ adjustedLayering =
27
+ vert === 'u' ? layering : Object.values(layering).reverse();
28
+ ['l', 'r'].forEach((horiz) => {
29
+ if (horiz === 'r') {
30
+ adjustedLayering = adjustedLayering.map((inner) => Object.values(inner).reverse());
31
+ }
32
+ const neighborFn = (vert === 'u' ? g.getPredecessors : g.getSuccessors).bind(g);
33
+ const align = (0, bk_1.verticalAlignment)(g, adjustedLayering, conflicts, neighborFn);
34
+ const xs = (0, bk_1.horizontalCompaction)(g, adjustedLayering, align.root, align.align, nodesep, edgesep, horiz === 'r');
35
+ if (horiz === 'r') {
36
+ Object.keys(xs).forEach((xsKey) => (xs[xsKey] = -xs[xsKey]));
37
+ }
38
+ xss[vert + horiz] = xs;
39
+ });
40
+ });
41
+ const smallestWidth = (0, bk_1.findSmallestWidthAlignment)(g, xss);
42
+ smallestWidth && (0, bk_1.alignCoordinates)(xss, smallestWidth);
43
+ return (0, bk_1.balance)(xss, graphAlign);
44
+ };
45
+ const position = (g, options) => {
46
+ var _a;
47
+ const ng = (0, util_1.asNonCompoundGraph)(g);
48
+ positionY(ng, options);
49
+ const xs = positionX(ng, options);
50
+ (_a = Object.keys(xs)) === null || _a === void 0 ? void 0 : _a.forEach((key) => {
51
+ ng.getNode(key).data.x = xs[key];
52
+ });
53
+ };
54
+ exports.position = position;
55
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/antv-dagre/position/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { Graph } from "@antv/graphlib";
2
- import { Graph as IGraph } from "../../types";
1
+ import { Graph } from '@antv/graphlib';
2
+ import { Graph as IGraph } from '../../types';
3
3
  declare const feasibleTree: (g: IGraph) => Graph<import("@antv/graphlib").PlainObject, import("@antv/graphlib").PlainObject>;
4
4
  declare const feasibleTreeWithLayer: (g: IGraph) => Graph<import("@antv/graphlib").PlainObject, import("@antv/graphlib").PlainObject>;
5
5
  export { feasibleTree, feasibleTreeWithLayer };
@@ -1,6 +1,9 @@
1
- import { slack } from "./util";
2
- import { minBy } from "../util";
3
- import { Graph } from "@antv/graphlib";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.feasibleTreeWithLayer = exports.feasibleTree = void 0;
4
+ const graphlib_1 = require("@antv/graphlib");
5
+ const util_1 = require("../util");
6
+ const util_2 = require("./util");
4
7
  /*
5
8
  * Constructs a spanning tree with tight edges and adjusted the input node's
6
9
  * ranks to achieve this. A tight edge is one that is has a length that matches
@@ -26,33 +29,34 @@ import { Graph } from "@antv/graphlib";
26
29
  * Returns a tree (undirected graph) that is constructed using only "tight"
27
30
  * edges.
28
31
  */
29
- var feasibleTree = function (g) {
30
- var t = new Graph({
32
+ const feasibleTree = (g) => {
33
+ const t = new graphlib_1.Graph({
31
34
  tree: [],
32
35
  });
33
36
  // Choose arbitrary node from which to start our tree
34
- var start = g.getAllNodes()[0];
35
- var size = g.getAllNodes().length;
37
+ const start = g.getAllNodes()[0];
38
+ const size = g.getAllNodes().length;
36
39
  t.addNode(start);
37
- var edge;
38
- var delta;
40
+ let edge;
41
+ let delta;
39
42
  while (tightTree(t, g) < size) {
40
43
  edge = findMinSlackEdge(t, g);
41
- delta = t.hasNode(edge.source) ? slack(g, edge) : -slack(g, edge);
44
+ delta = t.hasNode(edge.source) ? (0, util_2.slack)(g, edge) : -(0, util_2.slack)(g, edge);
42
45
  shiftRanks(t, g, delta);
43
46
  }
44
47
  return t;
45
48
  };
49
+ exports.feasibleTree = feasibleTree;
46
50
  /*
47
51
  * Finds a maximal tree of tight edges and returns the number of nodes in the
48
52
  * tree.
49
53
  */
50
- var tightTree = function (t, g) {
51
- var dfs = function (v) {
52
- g.getRelatedEdges(v, "both").forEach(function (e) {
53
- var edgeV = e.source;
54
- var w = v === edgeV ? e.target : edgeV;
55
- if (!t.hasNode(w) && !slack(g, e)) {
54
+ const tightTree = (t, g) => {
55
+ const dfs = (v) => {
56
+ g.getRelatedEdges(v, 'both').forEach((e) => {
57
+ const edgeV = e.source;
58
+ const w = v === edgeV ? e.target : edgeV;
59
+ if (!t.hasNode(w) && !(0, util_2.slack)(g, e)) {
56
60
  t.addNode({
57
61
  id: w,
58
62
  data: {},
@@ -67,7 +71,7 @@ var tightTree = function (t, g) {
67
71
  }
68
72
  });
69
73
  };
70
- t.getAllNodes().forEach(function (n) { return dfs(n.id); });
74
+ t.getAllNodes().forEach((n) => dfs(n.id));
71
75
  return t.getAllNodes().length;
72
76
  };
73
77
  /*
@@ -95,34 +99,35 @@ var tightTree = function (t, g) {
95
99
  * Returns a tree (undirected graph) that is constructed using only "tight"
96
100
  * edges.
97
101
  */
98
- var feasibleTreeWithLayer = function (g) {
99
- var t = new Graph({ tree: [] });
102
+ const feasibleTreeWithLayer = (g) => {
103
+ const t = new graphlib_1.Graph({ tree: [] });
100
104
  // Choose arbitrary node from which to start our tree
101
- var start = g.getAllNodes()[0];
102
- var size = g.getAllNodes().length;
105
+ const start = g.getAllNodes()[0];
106
+ const size = g.getAllNodes().length;
103
107
  t.addNode(start);
104
- var edge;
105
- var delta;
108
+ let edge;
109
+ let delta;
106
110
  while (tightTreeWithLayer(t, g) < size) {
107
111
  edge = findMinSlackEdge(t, g);
108
- delta = t.hasNode(edge.source) ? slack(g, edge) : -slack(g, edge);
112
+ delta = t.hasNode(edge.source) ? (0, util_2.slack)(g, edge) : -(0, util_2.slack)(g, edge);
109
113
  shiftRanks(t, g, delta);
110
114
  }
111
115
  return t;
112
116
  };
117
+ exports.feasibleTreeWithLayer = feasibleTreeWithLayer;
113
118
  /*
114
119
  * Finds a maximal tree of tight edges and returns the number of nodes in the
115
120
  * tree.
116
121
  */
117
- var tightTreeWithLayer = function (t, g) {
118
- var dfs = function (v) {
122
+ const tightTreeWithLayer = (t, g) => {
123
+ const dfs = (v) => {
119
124
  var _a;
120
- (_a = g.getRelatedEdges(v, "both")) === null || _a === void 0 ? void 0 : _a.forEach(function (e) {
121
- var edgeV = e.source;
122
- var w = v === edgeV ? e.target : edgeV;
125
+ (_a = g.getRelatedEdges(v, 'both')) === null || _a === void 0 ? void 0 : _a.forEach((e) => {
126
+ const edgeV = e.source;
127
+ const w = v === edgeV ? e.target : edgeV;
123
128
  // 对于指定layer的,直接加入tight-tree,不参与调整
124
129
  if (!t.hasNode(w) &&
125
- (g.getNode(w).data.layer !== undefined || !slack(g, e))) {
130
+ (g.getNode(w).data.layer !== undefined || !(0, util_2.slack)(g, e))) {
126
131
  t.addNode({
127
132
  id: w,
128
133
  data: {},
@@ -137,28 +142,27 @@ var tightTreeWithLayer = function (t, g) {
137
142
  }
138
143
  });
139
144
  };
140
- t.getAllNodes().forEach(function (n) { return dfs(n.id); });
145
+ t.getAllNodes().forEach((n) => dfs(n.id));
141
146
  return t.getAllNodes().length;
142
147
  };
143
148
  /*
144
149
  * Finds the edge with the smallest slack that is incident on tree and returns
145
150
  * it.
146
151
  */
147
- var findMinSlackEdge = function (t, g) {
148
- return minBy(g.getAllEdges(), function (e) {
152
+ const findMinSlackEdge = (t, g) => {
153
+ return (0, util_1.minBy)(g.getAllEdges(), (e) => {
149
154
  if (t.hasNode(e.source) !== t.hasNode(e.target)) {
150
- return slack(g, e);
155
+ return (0, util_2.slack)(g, e);
151
156
  }
152
157
  return Infinity;
153
158
  });
154
159
  };
155
- var shiftRanks = function (t, g, delta) {
156
- t.getAllNodes().forEach(function (tn) {
157
- var v = g.getNode(tn.id);
160
+ const shiftRanks = (t, g, delta) => {
161
+ t.getAllNodes().forEach((tn) => {
162
+ const v = g.getNode(tn.id);
158
163
  if (!v.data.rank)
159
164
  v.data.rank = 0;
160
165
  v.data.rank += delta;
161
166
  });
162
167
  };
163
- export { feasibleTree, feasibleTreeWithLayer };
164
168
  //# sourceMappingURL=feasible-tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feasible-tree.js","sourceRoot":"","sources":["../../../src/antv-dagre/rank/feasible-tree.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Graph as IGraph } from '../../types';
2
+ export declare const rank: (g: IGraph, ranker: 'network-simplex' | 'tight-tree' | 'longest-path') => void;
@@ -1,6 +1,9 @@
1
- import { longestPath, longestPathWithLayer } from "./util";
2
- import { feasibleTreeWithLayer as feasibleTree } from "./feasible-tree";
3
- import { networkSimplex } from "./network-simplex";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.rank = void 0;
4
+ const feasible_tree_1 = require("./feasible-tree");
5
+ const network_simplex_1 = require("./network-simplex");
6
+ const util_1 = require("./util");
4
7
  /*
5
8
  * Assigns a rank to each node in the input graph that respects the "minlen"
6
9
  * constraint specified on edges between nodes.
@@ -20,15 +23,15 @@ import { networkSimplex } from "./network-simplex";
20
23
  * algorithm. Ranks can start at any index (including negative), we'll
21
24
  * fix them up later.
22
25
  */
23
- export var rank = function (g, ranker) {
26
+ const rank = (g, ranker) => {
24
27
  switch (ranker) {
25
- case "network-simplex":
28
+ case 'network-simplex':
26
29
  networkSimplexRanker(g);
27
30
  break;
28
- case "tight-tree":
31
+ case 'tight-tree':
29
32
  tightTreeRanker(g);
30
33
  break;
31
- case "longest-path":
34
+ case 'longest-path':
32
35
  longestPathRanker(g);
33
36
  break;
34
37
  // default: networkSimplexRanker(g);
@@ -36,13 +39,14 @@ export var rank = function (g, ranker) {
36
39
  tightTreeRanker(g);
37
40
  }
38
41
  };
42
+ exports.rank = rank;
39
43
  // A fast and simple ranker, but results are far from optimal.
40
- var longestPathRanker = longestPath;
41
- var tightTreeRanker = function (g) {
42
- longestPathWithLayer(g);
43
- feasibleTree(g);
44
+ const longestPathRanker = util_1.longestPath;
45
+ const tightTreeRanker = (g) => {
46
+ (0, util_1.longestPathWithLayer)(g);
47
+ (0, feasible_tree_1.feasibleTreeWithLayer)(g);
44
48
  };
45
- var networkSimplexRanker = function (g) {
46
- networkSimplex(g);
49
+ const networkSimplexRanker = (g) => {
50
+ (0, network_simplex_1.networkSimplex)(g);
47
51
  };
48
52
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/antv-dagre/rank/index.ts"],"names":[],"mappings":";;;AACA,mDAAwE;AACxE,uDAAmD;AACnD,iCAA2D;AAE3D;;;;;;;;;;;;;;;;;;GAkBG;AACI,MAAM,IAAI,GAAG,CAClB,CAAS,EACT,MAAyD,EACzD,EAAE;IACF,QAAQ,MAAM,EAAE;QACd,KAAK,iBAAiB;YACpB,oBAAoB,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM;QACR,KAAK,YAAY;YACf,eAAe,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM;QACR,KAAK,cAAc;YACjB,iBAAiB,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM;QACR,oCAAoC;QACpC;YACE,eAAe,CAAC,CAAC,CAAC,CAAC;KACtB;AACH,CAAC,CAAC;AAlBW,QAAA,IAAI,QAkBf;AAEF,8DAA8D;AAC9D,MAAM,iBAAiB,GAAG,kBAAW,CAAC;AAEtC,MAAM,eAAe,GAAG,CAAC,CAAS,EAAE,EAAE;IACpC,IAAA,2BAAoB,EAAC,CAAC,CAAC,CAAC;IACxB,IAAA,qCAAY,EAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,CAAS,EAAE,EAAE;IACzC,IAAA,gCAAc,EAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC"}
@@ -1,5 +1,5 @@
1
- import { Edge, ID } from "@antv/graphlib";
2
- import { EdgeData, Graph as IGraph } from "../../types";
1
+ import { Edge, ID } from '@antv/graphlib';
2
+ import { EdgeData, Graph as IGraph } from '../../types';
3
3
  export declare const networkSimplex: (og: IGraph) => void;
4
4
  export declare const initCutValues: (t: IGraph, g: IGraph) => void;
5
5
  export declare const calcCutValue: (t: IGraph, g: IGraph, child: ID) => number;
@@ -1,6 +1,9 @@
1
- import { feasibleTree } from "./feasible-tree";
2
- import { slack, longestPath as initRank } from "./util";
3
- import { dfs, minBy, simplify } from "../util";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.exchangeEdges = exports.enterEdge = exports.leaveEdge = exports.initLowLimValues = exports.calcCutValue = exports.initCutValues = exports.networkSimplex = void 0;
4
+ const util_1 = require("../util");
5
+ const feasible_tree_1 = require("./feasible-tree");
6
+ const util_2 = require("./util");
4
7
  /*
5
8
  * The network simplex algorithm assigns ranks to each node in the input graph
6
9
  * and iteratively improves the ranking to reduce the length of edges.
@@ -34,72 +37,74 @@ import { dfs, minBy, simplify } from "../util";
34
37
  * for Drawing Directed Graphs." The structure of the file roughly follows the
35
38
  * structure of the overall algorithm.
36
39
  */
37
- export var networkSimplex = function (og) {
38
- var g = simplify(og);
39
- initRank(g);
40
- var t = feasibleTree(g);
41
- initLowLimValues(t);
42
- initCutValues(t, g);
43
- var e;
44
- var f;
45
- while ((e = leaveEdge(t))) {
46
- f = enterEdge(t, g, e);
47
- exchangeEdges(t, g, e, f);
40
+ const networkSimplex = (og) => {
41
+ const g = (0, util_1.simplify)(og);
42
+ (0, util_2.longestPath)(g);
43
+ const t = (0, feasible_tree_1.feasibleTree)(g);
44
+ (0, exports.initLowLimValues)(t);
45
+ (0, exports.initCutValues)(t, g);
46
+ let e;
47
+ let f;
48
+ while ((e = (0, exports.leaveEdge)(t))) {
49
+ f = (0, exports.enterEdge)(t, g, e);
50
+ (0, exports.exchangeEdges)(t, g, e, f);
48
51
  }
49
52
  };
53
+ exports.networkSimplex = networkSimplex;
50
54
  /*
51
55
  * Initializes cut values for all edges in the tree.
52
56
  */
53
- export var initCutValues = function (t, g) {
54
- var vs = dfs(t, t.getAllNodes(), "post", false);
57
+ const initCutValues = (t, g) => {
58
+ let vs = (0, util_1.dfs)(t, t.getAllNodes(), 'post', false);
55
59
  vs = vs.slice(0, (vs === null || vs === void 0 ? void 0 : vs.length) - 1);
56
- vs.forEach(function (v) {
60
+ vs.forEach((v) => {
57
61
  assignCutValue(t, g, v);
58
62
  });
59
63
  };
60
- var assignCutValue = function (t, g, child) {
61
- var childLab = t.getNode(child);
62
- var parent = childLab.data.parent;
64
+ exports.initCutValues = initCutValues;
65
+ const assignCutValue = (t, g, child) => {
66
+ const childLab = t.getNode(child);
67
+ const parent = childLab.data.parent;
63
68
  // FIXME: use undirected edge?
64
- var edge = t
65
- .getRelatedEdges(child, "both")
66
- .find(function (e) { return e.target === parent || e.source === parent; });
67
- edge.data.cutvalue = calcCutValue(t, g, child);
69
+ const edge = t
70
+ .getRelatedEdges(child, 'both')
71
+ .find((e) => e.target === parent || e.source === parent);
72
+ edge.data.cutvalue = (0, exports.calcCutValue)(t, g, child);
68
73
  };
69
74
  /*
70
75
  * Given the tight tree, its graph, and a child in the graph calculate and
71
76
  * return the cut value for the edge between the child and its parent.
72
77
  */
73
- export var calcCutValue = function (t, g, child) {
74
- var childLab = t.getNode(child);
75
- var parent = childLab.data.parent;
78
+ const calcCutValue = (t, g, child) => {
79
+ const childLab = t.getNode(child);
80
+ const parent = childLab.data.parent;
76
81
  // True if the child is on the tail end of the edge in the directed graph
77
- var childIsTail = true;
82
+ let childIsTail = true;
78
83
  // The graph's view of the tree edge we're inspecting
79
- var graphEdge = g
80
- .getRelatedEdges(child, "out")
81
- .find(function (e) { return e.target === parent; });
84
+ let graphEdge = g
85
+ .getRelatedEdges(child, 'out')
86
+ .find((e) => e.target === parent);
82
87
  // The accumulated cut value for the edge between this node and its parent
83
- var cutValue = 0;
88
+ let cutValue = 0;
84
89
  if (!graphEdge) {
85
90
  childIsTail = false;
86
91
  graphEdge = g
87
- .getRelatedEdges(parent, "out")
88
- .find(function (e) { return e.target === child; });
92
+ .getRelatedEdges(parent, 'out')
93
+ .find((e) => e.target === child);
89
94
  }
90
95
  cutValue = graphEdge.data.weight;
91
- g.getRelatedEdges(child, "both").forEach(function (e) {
92
- var isOutEdge = e.source === child;
93
- var other = isOutEdge ? e.target : e.source;
96
+ g.getRelatedEdges(child, 'both').forEach((e) => {
97
+ const isOutEdge = e.source === child;
98
+ const other = isOutEdge ? e.target : e.source;
94
99
  if (other !== parent) {
95
- var pointsToHead = isOutEdge === childIsTail;
96
- var otherWeight = e.data.weight;
100
+ const pointsToHead = isOutEdge === childIsTail;
101
+ const otherWeight = e.data.weight;
97
102
  cutValue += pointsToHead ? otherWeight : -otherWeight;
98
103
  if (isTreeEdge(t, child, other)) {
99
104
  // FIXME: use undirected edge?
100
- var otherCutValue = t
101
- .getRelatedEdges(child, "both")
102
- .find(function (e) { return e.source === other || e.target === other; }).data
105
+ const otherCutValue = t
106
+ .getRelatedEdges(child, 'both')
107
+ .find((e) => e.source === other || e.target === other).data
103
108
  .cutvalue;
104
109
  cutValue += pointsToHead ? -otherCutValue : otherCutValue;
105
110
  }
@@ -107,17 +112,18 @@ export var calcCutValue = function (t, g, child) {
107
112
  });
108
113
  return cutValue;
109
114
  };
110
- export var initLowLimValues = function (tree, root) {
111
- if (root === void 0) { root = tree.getAllNodes()[0].id; }
115
+ exports.calcCutValue = calcCutValue;
116
+ const initLowLimValues = (tree, root = tree.getAllNodes()[0].id) => {
112
117
  dfsAssignLowLim(tree, {}, 1, root);
113
118
  };
114
- var dfsAssignLowLim = function (tree, visited, nextLim, v, parent) {
119
+ exports.initLowLimValues = initLowLimValues;
120
+ const dfsAssignLowLim = (tree, visited, nextLim, v, parent) => {
115
121
  var _a;
116
- var low = nextLim;
117
- var useNextLim = nextLim;
118
- var label = tree.getNode(v);
122
+ const low = nextLim;
123
+ let useNextLim = nextLim;
124
+ const label = tree.getNode(v);
119
125
  visited[v] = true;
120
- (_a = tree.getNeighbors(v)) === null || _a === void 0 ? void 0 : _a.forEach(function (w) {
126
+ (_a = tree.getNeighbors(v)) === null || _a === void 0 ? void 0 : _a.forEach((w) => {
121
127
  if (!visited[w.id]) {
122
128
  useNextLim = dfsAssignLowLim(tree, visited, useNextLim, w.id, v);
123
129
  }
@@ -133,39 +139,41 @@ var dfsAssignLowLim = function (tree, visited, nextLim, v, parent) {
133
139
  }
134
140
  return useNextLim;
135
141
  };
136
- export var leaveEdge = function (tree) {
137
- return tree.getAllEdges().find(function (e) {
142
+ const leaveEdge = (tree) => {
143
+ return tree.getAllEdges().find((e) => {
138
144
  return e.data.cutvalue < 0;
139
145
  });
140
146
  };
141
- export var enterEdge = function (t, g, edge) {
142
- var v = edge.source;
143
- var w = edge.target;
147
+ exports.leaveEdge = leaveEdge;
148
+ const enterEdge = (t, g, edge) => {
149
+ let v = edge.source;
150
+ let w = edge.target;
144
151
  // For the rest of this function we assume that v is the tail and w is the
145
152
  // head, so if we don't have this edge in the graph we should flip it to
146
153
  // match the correct orientation.
147
- if (!g.getRelatedEdges(v, "out").find(function (e) { return e.target === w; })) {
154
+ if (!g.getRelatedEdges(v, 'out').find((e) => e.target === w)) {
148
155
  v = edge.target;
149
156
  w = edge.source;
150
157
  }
151
- var vLabel = t.getNode(v);
152
- var wLabel = t.getNode(w);
153
- var tailLabel = vLabel;
154
- var flip = false;
158
+ const vLabel = t.getNode(v);
159
+ const wLabel = t.getNode(w);
160
+ let tailLabel = vLabel;
161
+ let flip = false;
155
162
  // If the root is in the tail of the edge then we need to flip the logic that
156
163
  // checks for the head and tail nodes in the candidates function below.
157
164
  if (vLabel.data.lim > wLabel.data.lim) {
158
165
  tailLabel = wLabel;
159
166
  flip = true;
160
167
  }
161
- var candidates = g.getAllEdges().filter(function (edge) {
168
+ const candidates = g.getAllEdges().filter((edge) => {
162
169
  return (flip === isDescendant(t.getNode(edge.source), tailLabel) &&
163
170
  flip !== isDescendant(t.getNode(edge.target), tailLabel));
164
171
  });
165
- return minBy(candidates, function (edge) {
166
- return slack(g, edge);
172
+ return (0, util_1.minBy)(candidates, (edge) => {
173
+ return (0, util_2.slack)(g, edge);
167
174
  });
168
175
  };
176
+ exports.enterEdge = enterEdge;
169
177
  /**
170
178
  *
171
179
  * @param t
@@ -173,38 +181,39 @@ export var enterEdge = function (t, g, edge) {
173
181
  * @param e edge to remove
174
182
  * @param f edge to add
175
183
  */
176
- export var exchangeEdges = function (t, g, e, f) {
184
+ const exchangeEdges = (t, g, e, f) => {
177
185
  // FIXME: use undirected edge?
178
- var existed = t
179
- .getRelatedEdges(e.source, "both")
180
- .find(function (edge) { return edge.source === e.target || edge.target === e.target; });
186
+ const existed = t
187
+ .getRelatedEdges(e.source, 'both')
188
+ .find((edge) => edge.source === e.target || edge.target === e.target);
181
189
  if (existed) {
182
190
  t.removeEdge(existed.id);
183
191
  }
184
192
  t.addEdge({
185
- id: "e" + Math.random(),
193
+ id: `e${Math.random()}`,
186
194
  source: f.source,
187
195
  target: f.target,
188
196
  data: {},
189
197
  });
190
- initLowLimValues(t);
191
- initCutValues(t, g);
198
+ (0, exports.initLowLimValues)(t);
199
+ (0, exports.initCutValues)(t, g);
192
200
  updateRanks(t, g);
193
201
  };
194
- var updateRanks = function (t, g) {
195
- var root = t.getAllNodes().find(function (v) {
202
+ exports.exchangeEdges = exchangeEdges;
203
+ const updateRanks = (t, g) => {
204
+ const root = t.getAllNodes().find((v) => {
196
205
  return !v.data.parent;
197
206
  });
198
- var vs = dfs(t, root, "pre", false);
207
+ let vs = (0, util_1.dfs)(t, root, 'pre', false);
199
208
  vs = vs.slice(1);
200
- vs.forEach(function (v) {
201
- var parent = t.getNode(v).data.parent;
202
- var edge = g.getRelatedEdges(v, "out").find(function (e) { return e.target === parent; });
209
+ vs.forEach((v) => {
210
+ const parent = t.getNode(v).data.parent;
211
+ let edge = g.getRelatedEdges(v, 'out').find((e) => e.target === parent);
203
212
  // let edge = g.edgeFromArgs(v, parent);
204
- var flipped = false;
213
+ let flipped = false;
205
214
  if (!edge && g.hasNode(parent)) {
206
215
  // edge = g.edgeFromArgs(parent, v)!;
207
- edge = g.getRelatedEdges(parent, "out").find(function (e) { return e.target === v; });
216
+ edge = g.getRelatedEdges(parent, 'out').find((e) => e.target === v);
208
217
  flipped = true;
209
218
  }
210
219
  g.getNode(v).data.rank =
@@ -215,17 +224,17 @@ var updateRanks = function (t, g) {
215
224
  /*
216
225
  * Returns true if the edge is in the tree.
217
226
  */
218
- var isTreeEdge = function (tree, u, v) {
227
+ const isTreeEdge = (tree, u, v) => {
219
228
  // FIXME: use undirected edge?
220
229
  return tree
221
- .getRelatedEdges(u, "both")
222
- .find(function (e) { return e.source === v || e.target === v; });
230
+ .getRelatedEdges(u, 'both')
231
+ .find((e) => e.source === v || e.target === v);
223
232
  };
224
233
  /*
225
234
  * Returns true if the specified node is descendant of the root node per the
226
235
  * assigned low and lim attributes in the tree.
227
236
  */
228
- var isDescendant = function (vLabel, rootLabel) {
237
+ const isDescendant = (vLabel, rootLabel) => {
229
238
  return (rootLabel.data.low <= vLabel.data.lim &&
230
239
  vLabel.data.lim <= rootLabel.data.lim);
231
240
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network-simplex.js","sourceRoot":"","sources":["../../../src/antv-dagre/rank/network-simplex.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { Edge } from "@antv/graphlib";
2
- import { EdgeData, Graph } from "../../types";
1
+ import { Edge } from '@antv/graphlib';
2
+ import { EdgeData, Graph } from '../../types';
3
3
  declare const longestPath: (g: Graph) => void;
4
4
  declare const longestPathWithLayer: (g: Graph) => void;
5
5
  declare const slack: (g: Graph, e: Edge<EdgeData>) => number;