@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,35 +1,37 @@
1
- import { __assign } from "tslib";
2
- import { Graph } from '@antv/graphlib';
3
- import { isNil } from '@antv/util';
4
- import { run as runAcyclic, undo as undoAcyclic } from './acyclic';
5
- import { run as runNormalize, undo as undoNormalize } from './normalize';
6
- import { rank } from './rank';
7
- import { normalizeRanks, removeEmptyRanks, asNonCompoundGraph, addDummyNode, intersectRect, buildLayerMatrix, } from './util';
8
- import { parentDummyChains } from './parent-dummy-chains';
9
- import { run as runNestingGraph, cleanup as cleanupNestingGraph, } from './nesting-graph';
10
- import { addBorderSegments } from './add-border-segments';
11
- import { adjust as adjustCoordinateSystem, undo as undoCoordinateSystem, } from './coordinate-system';
12
- import { order } from './order';
13
- import { position } from './position';
14
- import { initDataOrder } from './order/init-data-order';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.layout = void 0;
4
+ const graphlib_1 = require("@antv/graphlib");
5
+ const util_1 = require("@antv/util");
6
+ const acyclic_1 = require("./acyclic");
7
+ const add_border_segments_1 = require("./add-border-segments");
8
+ const coordinate_system_1 = require("./coordinate-system");
9
+ const nesting_graph_1 = require("./nesting-graph");
10
+ const normalize_1 = require("./normalize");
11
+ const order_1 = require("./order");
12
+ const init_data_order_1 = require("./order/init-data-order");
13
+ const parent_dummy_chains_1 = require("./parent-dummy-chains");
14
+ const position_1 = require("./position");
15
+ const rank_1 = require("./rank");
16
+ const util_2 = require("./util");
15
17
  // const graphNumAttrs = ["nodesep", "edgesep", "ranksep", "marginx", "marginy"];
16
18
  // const graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: "tb" };
17
19
  // const graphAttrs = ["acyclicer", "ranker", "rankdir", "align"];
18
- export var layout = function (g, options) {
19
- var edgeLabelSpace = options.edgeLabelSpace, keepNodeOrder = options.keepNodeOrder, prevGraph = options.prevGraph, rankdir = options.rankdir, ranksep = options.ranksep;
20
+ const layout = (g, options) => {
21
+ const { edgeLabelSpace, keepNodeOrder, prevGraph, rankdir, ranksep } = options;
20
22
  // 如果在原图基础上修改,继承原图的order结果
21
23
  if (!keepNodeOrder && prevGraph) {
22
24
  inheritOrder(g, prevGraph);
23
25
  }
24
- var layoutGraph = buildLayoutGraph(g);
26
+ const layoutGraph = buildLayoutGraph(g);
25
27
  // 控制是否为边的label留位置(这会影响是否在边中间添加dummy node)
26
28
  if (!!edgeLabelSpace) {
27
29
  options.ranksep = makeSpaceForEdgeLabels(layoutGraph, {
28
- rankdir: rankdir,
29
- ranksep: ranksep,
30
+ rankdir,
31
+ ranksep,
30
32
  });
31
33
  }
32
- var dimension;
34
+ let dimension;
33
35
  // TODO: 暂时处理层级设置不正确时的异常报错,提示设置正确的层级
34
36
  try {
35
37
  dimension = runLayout(layoutGraph, options);
@@ -44,54 +46,55 @@ export var layout = function (g, options) {
44
46
  updateInputGraph(g, layoutGraph);
45
47
  return dimension;
46
48
  };
47
- var runLayout = function (g, options) {
48
- var acyclicer = options.acyclicer, ranker = options.ranker, _a = options.rankdir, rankdir = _a === void 0 ? 'tb' : _a, nodeOrder = options.nodeOrder, keepNodeOrder = options.keepNodeOrder, align = options.align, _b = options.nodesep, nodesep = _b === void 0 ? 50 : _b, _c = options.edgesep, edgesep = _c === void 0 ? 20 : _c, _d = options.ranksep, ranksep = _d === void 0 ? 50 : _d;
49
+ exports.layout = layout;
50
+ const runLayout = (g, options) => {
51
+ const { acyclicer, ranker, rankdir = 'tb', nodeOrder, keepNodeOrder, align, nodesep = 50, edgesep = 20, ranksep = 50, } = options;
49
52
  removeSelfEdges(g);
50
- runAcyclic(g, acyclicer);
51
- var _e = runNestingGraph(g), nestingRoot = _e.nestingRoot, nodeRankFactor = _e.nodeRankFactor;
52
- rank(asNonCompoundGraph(g), ranker);
53
+ (0, acyclic_1.run)(g, acyclicer);
54
+ const { nestingRoot, nodeRankFactor } = (0, nesting_graph_1.run)(g);
55
+ (0, rank_1.rank)((0, util_2.asNonCompoundGraph)(g), ranker);
53
56
  injectEdgeLabelProxies(g);
54
- removeEmptyRanks(g, nodeRankFactor);
55
- cleanupNestingGraph(g, nestingRoot);
56
- normalizeRanks(g);
57
+ (0, util_2.removeEmptyRanks)(g, nodeRankFactor);
58
+ (0, nesting_graph_1.cleanup)(g, nestingRoot);
59
+ (0, util_2.normalizeRanks)(g);
57
60
  assignRankMinMax(g);
58
61
  removeEdgeLabelProxies(g);
59
- var dummyChains = [];
60
- runNormalize(g, dummyChains);
61
- parentDummyChains(g, dummyChains);
62
- addBorderSegments(g);
62
+ const dummyChains = [];
63
+ (0, normalize_1.run)(g, dummyChains);
64
+ (0, parent_dummy_chains_1.parentDummyChains)(g, dummyChains);
65
+ (0, add_border_segments_1.addBorderSegments)(g);
63
66
  if (keepNodeOrder) {
64
- initDataOrder(g, nodeOrder);
67
+ (0, init_data_order_1.initDataOrder)(g, nodeOrder);
65
68
  }
66
- order(g, keepNodeOrder);
69
+ (0, order_1.order)(g, keepNodeOrder);
67
70
  insertSelfEdges(g);
68
- adjustCoordinateSystem(g, rankdir);
69
- position(g, {
70
- align: align,
71
- nodesep: nodesep,
72
- edgesep: edgesep,
73
- ranksep: ranksep,
71
+ (0, coordinate_system_1.adjust)(g, rankdir);
72
+ (0, position_1.position)(g, {
73
+ align,
74
+ nodesep,
75
+ edgesep,
76
+ ranksep,
74
77
  });
75
78
  positionSelfEdges(g);
76
79
  removeBorderNodes(g);
77
- undoNormalize(g, dummyChains);
80
+ (0, normalize_1.undo)(g, dummyChains);
78
81
  fixupEdgeLabelCoords(g);
79
- undoCoordinateSystem(g, rankdir);
80
- var _f = translateGraph(g), width = _f.width, height = _f.height;
82
+ (0, coordinate_system_1.undo)(g, rankdir);
83
+ const { width, height } = translateGraph(g);
81
84
  assignNodeIntersects(g);
82
85
  reversePointsForReversedEdges(g);
83
- undoAcyclic(g);
84
- return { width: width, height: height };
86
+ (0, acyclic_1.undo)(g);
87
+ return { width, height };
85
88
  };
86
89
  /**
87
90
  * 继承上一个布局中的order,防止翻转
88
91
  * TODO: 暂时没有考虑涉及层级变动的布局,只保证原来布局层级和相对顺序不变
89
92
  */
90
- var inheritOrder = function (currG, prevG) {
91
- currG.getAllNodes().forEach(function (n) {
92
- var node = currG.getNode(n.id);
93
+ const inheritOrder = (currG, prevG) => {
94
+ currG.getAllNodes().forEach((n) => {
95
+ const node = currG.getNode(n.id);
93
96
  if (prevG.hasNode(n.id)) {
94
- var prevNode = prevG.getNode(n.id);
97
+ const prevNode = prevG.getNode(n.id);
95
98
  node.data.fixorder = prevNode.data._order;
96
99
  delete prevNode.data._order;
97
100
  }
@@ -106,12 +109,12 @@ var inheritOrder = function (currG, prevG) {
106
109
  * to the input graph, so it serves as a good place to determine what
107
110
  * attributes can influence layout.
108
111
  */
109
- var updateInputGraph = function (inputGraph, layoutGraph) {
110
- inputGraph.getAllNodes().forEach(function (v) {
112
+ const updateInputGraph = (inputGraph, layoutGraph) => {
113
+ inputGraph.getAllNodes().forEach((v) => {
111
114
  var _a;
112
- var inputLabel = inputGraph.getNode(v.id);
115
+ const inputLabel = inputGraph.getNode(v.id);
113
116
  if (inputLabel) {
114
- var layoutLabel = layoutGraph.getNode(v.id);
117
+ const layoutLabel = layoutGraph.getNode(v.id);
115
118
  inputLabel.data.x = layoutLabel.data.x;
116
119
  inputLabel.data.y = layoutLabel.data.y;
117
120
  inputLabel.data._order = layoutLabel.data.order;
@@ -122,9 +125,9 @@ var updateInputGraph = function (inputGraph, layoutGraph) {
122
125
  }
123
126
  }
124
127
  });
125
- inputGraph.getAllEdges().forEach(function (e) {
126
- var inputLabel = inputGraph.getEdge(e.id);
127
- var layoutLabel = layoutGraph.getEdge(e.id);
128
+ inputGraph.getAllEdges().forEach((e) => {
129
+ const inputLabel = inputGraph.getEdge(e.id);
130
+ const layoutLabel = layoutGraph.getEdge(e.id);
128
131
  inputLabel.data.points = layoutLabel ? layoutLabel.data.points : [];
129
132
  if (layoutLabel && layoutLabel.data.hasOwnProperty('x')) {
130
133
  inputLabel.data.x = layoutLabel.data.x;
@@ -134,10 +137,10 @@ var updateInputGraph = function (inputGraph, layoutGraph) {
134
137
  // inputGraph.graph().width = layoutGraph.graph().width;
135
138
  // inputGraph.graph().height = layoutGraph.graph().height;
136
139
  };
137
- var nodeNumAttrs = ['width', 'height', 'layer', 'fixorder']; // 需要传入layer, fixOrder作为参数参考
138
- var nodeDefaults = { width: 0, height: 0 };
139
- var edgeNumAttrs = ['minlen', 'weight', 'width', 'height', 'labeloffset'];
140
- var edgeDefaults = {
140
+ const nodeNumAttrs = ['width', 'height', 'layer', 'fixorder']; // 需要传入layer, fixOrder作为参数参考
141
+ const nodeDefaults = { width: 0, height: 0 };
142
+ const edgeNumAttrs = ['minlen', 'weight', 'width', 'height', 'labeloffset'];
143
+ const edgeDefaults = {
141
144
  minlen: 1,
142
145
  weight: 1,
143
146
  width: 0,
@@ -145,39 +148,39 @@ var edgeDefaults = {
145
148
  labeloffset: 10,
146
149
  labelpos: 'r',
147
150
  };
148
- var edgeAttrs = ['labelpos'];
151
+ const edgeAttrs = ['labelpos'];
149
152
  /*
150
153
  * Constructs a new graph from the input graph, which can be used for layout.
151
154
  * This process copies only whitelisted attributes from the input graph to the
152
155
  * layout graph. Thus this function serves as a good place to determine what
153
156
  * attributes can influence layout.
154
157
  */
155
- var buildLayoutGraph = function (inputGraph) {
156
- var g = new Graph({ tree: [] });
157
- inputGraph.getAllNodes().forEach(function (v) {
158
- var node = canonicalize(inputGraph.getNode(v.id).data);
159
- var defaultNode = __assign(__assign({}, nodeDefaults), node);
160
- var defaultAttrs = selectNumberAttrs(defaultNode, nodeNumAttrs);
158
+ const buildLayoutGraph = (inputGraph) => {
159
+ const g = new graphlib_1.Graph({ tree: [] });
160
+ inputGraph.getAllNodes().forEach((v) => {
161
+ const node = canonicalize(inputGraph.getNode(v.id).data);
162
+ const defaultNode = Object.assign(Object.assign({}, nodeDefaults), node);
163
+ const defaultAttrs = selectNumberAttrs(defaultNode, nodeNumAttrs);
161
164
  if (!g.hasNode(v.id)) {
162
165
  g.addNode({
163
166
  id: v.id,
164
- data: __assign({}, defaultAttrs),
167
+ data: Object.assign({}, defaultAttrs),
165
168
  });
166
169
  }
167
- var parent = inputGraph.hasTreeStructure('combo')
170
+ const parent = inputGraph.hasTreeStructure('combo')
168
171
  ? inputGraph.getParent(v.id, 'combo')
169
172
  : inputGraph.getParent(v.id);
170
- if (!isNil(parent)) {
173
+ if (!(0, util_1.isNil)(parent)) {
171
174
  if (!g.hasNode(parent.id)) {
172
- g.addNode(__assign({}, parent));
175
+ g.addNode(Object.assign({}, parent));
173
176
  }
174
177
  g.setParent(v.id, parent.id);
175
178
  }
176
179
  });
177
- inputGraph.getAllEdges().forEach(function (e) {
178
- var edge = canonicalize(inputGraph.getEdge(e.id).data);
179
- var pickedProperties = {};
180
- edgeAttrs === null || edgeAttrs === void 0 ? void 0 : edgeAttrs.forEach(function (key) {
180
+ inputGraph.getAllEdges().forEach((e) => {
181
+ const edge = canonicalize(inputGraph.getEdge(e.id).data);
182
+ const pickedProperties = {};
183
+ edgeAttrs === null || edgeAttrs === void 0 ? void 0 : edgeAttrs.forEach((key) => {
181
184
  if (edge[key] !== undefined)
182
185
  pickedProperties[key] = edge[key];
183
186
  });
@@ -198,15 +201,15 @@ var buildLayoutGraph = function (inputGraph) {
198
201
  * We also add some minimal padding to the width to push the label for the edge
199
202
  * away from the edge itself a bit.
200
203
  */
201
- var makeSpaceForEdgeLabels = function (g, options) {
202
- var _a = options.ranksep, ranksep = _a === void 0 ? 0 : _a, rankdir = options.rankdir;
203
- g.getAllNodes().forEach(function (node) {
204
+ const makeSpaceForEdgeLabels = (g, options) => {
205
+ const { ranksep = 0, rankdir } = options;
206
+ g.getAllNodes().forEach((node) => {
204
207
  if (!isNaN(node.data.layer)) {
205
208
  if (!node.data.layer)
206
209
  node.data.layer = 0;
207
210
  }
208
211
  });
209
- g.getAllEdges().forEach(function (edge) {
212
+ g.getAllEdges().forEach((edge) => {
210
213
  var _a;
211
214
  edge.data.minlen *= 2;
212
215
  if (((_a = edge.data.labelpos) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== 'c') {
@@ -226,22 +229,22 @@ var makeSpaceForEdgeLabels = function (g, options) {
226
229
  * so that we can safely remove empty ranks while preserving balance for the
227
230
  * label's position.
228
231
  */
229
- var injectEdgeLabelProxies = function (g) {
230
- g.getAllEdges().forEach(function (e) {
232
+ const injectEdgeLabelProxies = (g) => {
233
+ g.getAllEdges().forEach((e) => {
231
234
  if (e.data.width && e.data.height) {
232
- var v = g.getNode(e.source);
233
- var w = g.getNode(e.target);
234
- var label = {
235
- e: e,
235
+ const v = g.getNode(e.source);
236
+ const w = g.getNode(e.target);
237
+ const label = {
238
+ e,
236
239
  rank: (w.data.rank - v.data.rank) / 2 + v.data.rank,
237
240
  };
238
- addDummyNode(g, 'edge-proxy', label, '_ep');
241
+ (0, util_2.addDummyNode)(g, 'edge-proxy', label, '_ep');
239
242
  }
240
243
  });
241
244
  };
242
- var assignRankMinMax = function (g) {
243
- var maxRank = 0;
244
- g.getAllNodes().forEach(function (node) {
245
+ const assignRankMinMax = (g) => {
246
+ let maxRank = 0;
247
+ g.getAllNodes().forEach((node) => {
245
248
  var _a, _b;
246
249
  if (node.data.borderTop) {
247
250
  node.data.minRank = (_a = g.getNode(node.data.borderTop)) === null || _a === void 0 ? void 0 : _a.data.rank;
@@ -251,27 +254,27 @@ var assignRankMinMax = function (g) {
251
254
  });
252
255
  return maxRank;
253
256
  };
254
- var removeEdgeLabelProxies = function (g) {
255
- g.getAllNodes().forEach(function (node) {
257
+ const removeEdgeLabelProxies = (g) => {
258
+ g.getAllNodes().forEach((node) => {
256
259
  if (node.data.dummy === 'edge-proxy') {
257
260
  g.getEdge(node.data.e.id).data.labelRank = node.data.rank;
258
261
  g.removeNode(node.id);
259
262
  }
260
263
  });
261
264
  };
262
- var translateGraph = function (g, options) {
263
- var minX;
264
- var maxX = 0;
265
- var minY;
266
- var maxY = 0;
267
- var _a = options || {}, _b = _a.marginx, marginX = _b === void 0 ? 0 : _b, _c = _a.marginy, marginY = _c === void 0 ? 0 : _c;
268
- var getExtremes = function (attrs) {
265
+ const translateGraph = (g, options) => {
266
+ let minX;
267
+ let maxX = 0;
268
+ let minY;
269
+ let maxY = 0;
270
+ const { marginx: marginX = 0, marginy: marginY = 0 } = options || {};
271
+ const getExtremes = (attrs) => {
269
272
  if (!attrs.data)
270
273
  return;
271
- var x = attrs.data.x;
272
- var y = attrs.data.y;
273
- var w = attrs.data.width;
274
- var h = attrs.data.height;
274
+ const x = attrs.data.x;
275
+ const y = attrs.data.y;
276
+ const w = attrs.data.width;
277
+ const h = attrs.data.height;
275
278
  if (!isNaN(x) && !isNaN(w)) {
276
279
  if (minX === undefined) {
277
280
  minX = x - w / 2;
@@ -287,23 +290,23 @@ var translateGraph = function (g, options) {
287
290
  maxY = Math.max(maxY, y + h / 2);
288
291
  }
289
292
  };
290
- g.getAllNodes().forEach(function (v) {
293
+ g.getAllNodes().forEach((v) => {
291
294
  getExtremes(v);
292
295
  });
293
- g.getAllEdges().forEach(function (e) {
296
+ g.getAllEdges().forEach((e) => {
294
297
  if (e === null || e === void 0 ? void 0 : e.data.hasOwnProperty('x')) {
295
298
  getExtremes(e);
296
299
  }
297
300
  });
298
301
  minX -= marginX;
299
302
  minY -= marginY;
300
- g.getAllNodes().forEach(function (node) {
303
+ g.getAllNodes().forEach((node) => {
301
304
  node.data.x -= minX;
302
305
  node.data.y -= minY;
303
306
  });
304
- g.getAllEdges().forEach(function (edge) {
307
+ g.getAllEdges().forEach((edge) => {
305
308
  var _a;
306
- (_a = edge.data.points) === null || _a === void 0 ? void 0 : _a.forEach(function (p) {
309
+ (_a = edge.data.points) === null || _a === void 0 ? void 0 : _a.forEach((p) => {
307
310
  p.x -= minX;
308
311
  p.y -= minY;
309
312
  });
@@ -319,12 +322,12 @@ var translateGraph = function (g, options) {
319
322
  height: maxY - minY + marginY,
320
323
  };
321
324
  };
322
- var assignNodeIntersects = function (g) {
323
- g.getAllEdges().forEach(function (e) {
324
- var nodeV = g.getNode(e.source);
325
- var nodeW = g.getNode(e.target);
326
- var p1;
327
- var p2;
325
+ const assignNodeIntersects = (g) => {
326
+ g.getAllEdges().forEach((e) => {
327
+ const nodeV = g.getNode(e.source);
328
+ const nodeW = g.getNode(e.target);
329
+ let p1;
330
+ let p2;
328
331
  if (!e.data.points) {
329
332
  e.data.points = [];
330
333
  p1 = { x: nodeW.data.x, y: nodeW.data.y };
@@ -334,12 +337,12 @@ var assignNodeIntersects = function (g) {
334
337
  p1 = e.data.points[0];
335
338
  p2 = e.data.points[e.data.points.length - 1];
336
339
  }
337
- e.data.points.unshift(intersectRect(nodeV.data, p1));
338
- e.data.points.push(intersectRect(nodeW.data, p2));
340
+ e.data.points.unshift((0, util_2.intersectRect)(nodeV.data, p1));
341
+ e.data.points.push((0, util_2.intersectRect)(nodeW.data, p2));
339
342
  });
340
343
  };
341
- var fixupEdgeLabelCoords = function (g) {
342
- g.getAllEdges().forEach(function (edge) {
344
+ const fixupEdgeLabelCoords = (g) => {
345
+ g.getAllEdges().forEach((edge) => {
343
346
  if (edge.data.hasOwnProperty('x')) {
344
347
  if (edge.data.labelpos === 'l' || edge.data.labelpos === 'r') {
345
348
  edge.data.width -= edge.data.labeloffset;
@@ -355,39 +358,39 @@ var fixupEdgeLabelCoords = function (g) {
355
358
  }
356
359
  });
357
360
  };
358
- var reversePointsForReversedEdges = function (g) {
359
- g.getAllEdges().forEach(function (edge) {
361
+ const reversePointsForReversedEdges = (g) => {
362
+ g.getAllEdges().forEach((edge) => {
360
363
  var _a;
361
364
  if (edge.data.reversed) {
362
365
  (_a = edge.data.points) === null || _a === void 0 ? void 0 : _a.reverse();
363
366
  }
364
367
  });
365
368
  };
366
- var removeBorderNodes = function (g) {
367
- g.getAllNodes().forEach(function (v) {
369
+ const removeBorderNodes = (g) => {
370
+ g.getAllNodes().forEach((v) => {
368
371
  var _a, _b, _c;
369
372
  if ((_a = g.getChildren(v.id)) === null || _a === void 0 ? void 0 : _a.length) {
370
- var node = g.getNode(v.id);
371
- var t = g.getNode(node.data.borderTop);
372
- var b = g.getNode(node.data.borderBottom);
373
- var l = g.getNode(node.data.borderLeft[((_b = node.data.borderLeft) === null || _b === void 0 ? void 0 : _b.length) - 1]);
374
- var r = g.getNode(node.data.borderRight[((_c = node.data.borderRight) === null || _c === void 0 ? void 0 : _c.length) - 1]);
373
+ const node = g.getNode(v.id);
374
+ const t = g.getNode(node.data.borderTop);
375
+ const b = g.getNode(node.data.borderBottom);
376
+ const l = g.getNode(node.data.borderLeft[((_b = node.data.borderLeft) === null || _b === void 0 ? void 0 : _b.length) - 1]);
377
+ const r = g.getNode(node.data.borderRight[((_c = node.data.borderRight) === null || _c === void 0 ? void 0 : _c.length) - 1]);
375
378
  node.data.width = Math.abs((r === null || r === void 0 ? void 0 : r.data.x) - (l === null || l === void 0 ? void 0 : l.data.x)) || 10;
376
379
  node.data.height = Math.abs((b === null || b === void 0 ? void 0 : b.data.y) - (t === null || t === void 0 ? void 0 : t.data.y)) || 10;
377
380
  node.data.x = ((l === null || l === void 0 ? void 0 : l.data.x) || 0) + node.data.width / 2;
378
381
  node.data.y = ((t === null || t === void 0 ? void 0 : t.data.y) || 0) + node.data.height / 2;
379
382
  }
380
383
  });
381
- g.getAllNodes().forEach(function (n) {
384
+ g.getAllNodes().forEach((n) => {
382
385
  if (n.data.dummy === 'border') {
383
386
  g.removeNode(n.id);
384
387
  }
385
388
  });
386
389
  };
387
- var removeSelfEdges = function (g) {
388
- g.getAllEdges().forEach(function (e) {
390
+ const removeSelfEdges = (g) => {
391
+ g.getAllEdges().forEach((e) => {
389
392
  if (e.source === e.target) {
390
- var node = g.getNode(e.source);
393
+ const node = g.getNode(e.source);
391
394
  if (!node.data.selfEdges) {
392
395
  node.data.selfEdges = [];
393
396
  }
@@ -396,16 +399,16 @@ var removeSelfEdges = function (g) {
396
399
  }
397
400
  });
398
401
  };
399
- var insertSelfEdges = function (g) {
400
- var layers = buildLayerMatrix(g);
401
- layers === null || layers === void 0 ? void 0 : layers.forEach(function (layer) {
402
- var orderShift = 0;
403
- layer === null || layer === void 0 ? void 0 : layer.forEach(function (v, i) {
402
+ const insertSelfEdges = (g) => {
403
+ const layers = (0, util_2.buildLayerMatrix)(g);
404
+ layers === null || layers === void 0 ? void 0 : layers.forEach((layer) => {
405
+ let orderShift = 0;
406
+ layer === null || layer === void 0 ? void 0 : layer.forEach((v, i) => {
404
407
  var _a;
405
- var node = g.getNode(v);
408
+ const node = g.getNode(v);
406
409
  node.data.order = i + orderShift;
407
- (_a = node.data.selfEdges) === null || _a === void 0 ? void 0 : _a.forEach(function (selfEdge) {
408
- addDummyNode(g, 'selfedge', {
410
+ (_a = node.data.selfEdges) === null || _a === void 0 ? void 0 : _a.forEach((selfEdge) => {
411
+ (0, util_2.addDummyNode)(g, 'selfedge', {
409
412
  width: selfEdge.data.width,
410
413
  height: selfEdge.data.height,
411
414
  rank: node.data.rank,
@@ -417,15 +420,15 @@ var insertSelfEdges = function (g) {
417
420
  });
418
421
  });
419
422
  };
420
- var positionSelfEdges = function (g) {
421
- g.getAllNodes().forEach(function (v) {
422
- var node = g.getNode(v.id);
423
+ const positionSelfEdges = (g) => {
424
+ g.getAllNodes().forEach((v) => {
425
+ const node = g.getNode(v.id);
423
426
  if (node.data.dummy === 'selfedge') {
424
- var selfNode = g.getNode(node.data.e.source);
425
- var x = selfNode.data.x + selfNode.data.width / 2;
426
- var y = selfNode.data.y;
427
- var dx = node.data.x - x;
428
- var dy = selfNode.data.height / 2;
427
+ const selfNode = g.getNode(node.data.e.source);
428
+ const x = selfNode.data.x + selfNode.data.width / 2;
429
+ const y = selfNode.data.y;
430
+ const dx = node.data.x - x;
431
+ const dy = selfNode.data.height / 2;
429
432
  if (g.hasEdge(node.data.e.id)) {
430
433
  g.updateEdgeData(node.data.e.id, node.data.e.data);
431
434
  }
@@ -441,7 +444,7 @@ var positionSelfEdges = function (g) {
441
444
  node.data.e.data.points = [
442
445
  { x: x + (2 * dx) / 3, y: y - dy },
443
446
  { x: x + (5 * dx) / 6, y: y - dy },
444
- { y: y, x: x + dx },
447
+ { y, x: x + dx },
445
448
  { x: x + (5 * dx) / 6, y: y + dy },
446
449
  { x: x + (2 * dx) / 3, y: y + dy },
447
450
  ];
@@ -450,19 +453,18 @@ var positionSelfEdges = function (g) {
450
453
  }
451
454
  });
452
455
  };
453
- var selectNumberAttrs = function (obj, attrs) {
454
- var pickedProperties = {};
455
- attrs === null || attrs === void 0 ? void 0 : attrs.forEach(function (key) {
456
+ const selectNumberAttrs = (obj, attrs) => {
457
+ const pickedProperties = {};
458
+ attrs === null || attrs === void 0 ? void 0 : attrs.forEach((key) => {
456
459
  if (obj[key] === undefined)
457
460
  return;
458
461
  pickedProperties[key] = +obj[key];
459
462
  });
460
463
  return pickedProperties;
461
464
  };
462
- var canonicalize = function (attrs) {
463
- if (attrs === void 0) { attrs = {}; }
464
- var newAttrs = {};
465
- Object.keys(attrs).forEach(function (k) {
465
+ const canonicalize = (attrs = {}) => {
466
+ const newAttrs = {};
467
+ Object.keys(attrs).forEach((k) => {
466
468
  newAttrs[k.toLowerCase()] = attrs[k];
467
469
  });
468
470
  return newAttrs;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/antv-dagre/layout.ts"],"names":[],"mappings":"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"}