@antv/layout 1.2.13 → 1.2.14-beta.1

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 (232) 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 +61 -0
  7. package/lib/antv-dagre/acyclic.js.map +1 -0
  8. package/lib/{dagre → antv-dagre}/add-border-segments.js +12 -12
  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 +65 -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 +20 -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 +136 -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 +125 -127
  21. package/lib/antv-dagre/layout.js.map +1 -0
  22. package/lib/{dagre → antv-dagre}/nesting-graph.js +36 -37
  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 +24 -24
  26. package/lib/antv-dagre/normalize.js.map +1 -0
  27. package/lib/{dagre → antv-dagre}/order/add-subgraph-constraints.js +9 -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/{dagre → antv-dagre}/order/barycenter.js +8 -8
  31. package/lib/antv-dagre/order/barycenter.js.map +1 -0
  32. package/lib/{dagre → antv-dagre}/order/build-layer-graph.js +18 -22
  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 +17 -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/{dagre → antv-dagre}/order/index.js +35 -35
  39. package/lib/antv-dagre/order/index.js.map +1 -0
  40. package/lib/{dagre → antv-dagre}/order/init-data-order.js +8 -9
  41. package/lib/antv-dagre/order/init-data-order.js.map +1 -0
  42. package/lib/antv-dagre/order/init-order.js +47 -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 +32 -35
  46. package/lib/antv-dagre/order/resolve-conflicts.js.map +1 -0
  47. package/lib/{dagre → antv-dagre}/order/sort-subgraph.js +20 -20
  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 +19 -19
  51. package/lib/antv-dagre/order/sort.js.map +1 -0
  52. package/lib/{dagre → antv-dagre}/parent-dummy-chains.js +28 -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 +140 -143
  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 +51 -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 +32 -32
  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 +10 -10
  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 +70 -71
  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 +31 -31
  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 +2 -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/{dagre → antv-dagre}/util.js +90 -98
  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 +538 -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 +2 -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 +54 -53
  86. package/lib/bundle-supervisor.js.map +1 -1
  87. package/lib/bundle-worker.d.ts +1 -1
  88. package/lib/bundle-worker.js +31 -33
  89. package/lib/bundle-worker.js.map +1 -1
  90. package/lib/circular.d.ts +1 -1
  91. package/lib/circular.js +124 -140
  92. package/lib/circular.js.map +1 -1
  93. package/lib/comboCombined.d.ts +1 -1
  94. package/lib/comboCombined.js +254 -284
  95. package/lib/comboCombined.js.map +1 -1
  96. package/lib/concentric.d.ts +1 -1
  97. package/lib/concentric.js +166 -176
  98. package/lib/concentric.js.map +1 -1
  99. package/lib/d3Force/forceInBox.js +75 -77
  100. package/lib/d3Force/forceInBox.js.map +1 -1
  101. package/lib/d3Force/index.d.ts +2 -2
  102. package/lib/d3Force/index.js +196 -222
  103. package/lib/d3Force/index.js.map +1 -1
  104. package/lib/dagre.d.ts +13 -24
  105. package/lib/dagre.js +57 -542
  106. package/lib/dagre.js.map +1 -1
  107. package/lib/exports.d.ts +17 -0
  108. package/lib/exports.js +17 -0
  109. package/lib/exports.js.map +1 -0
  110. package/lib/force/forceNBody.js +42 -45
  111. package/lib/force/forceNBody.js.map +1 -1
  112. package/lib/force/index.d.ts +1 -1
  113. package/lib/force/index.js +282 -309
  114. package/lib/force/index.js.map +1 -1
  115. package/lib/force/types.d.ts +5 -5
  116. package/lib/forceAtlas2/body.d.ts +1 -1
  117. package/lib/forceAtlas2/body.js +29 -31
  118. package/lib/forceAtlas2/body.js.map +1 -1
  119. package/lib/forceAtlas2/index.d.ts +1 -1
  120. package/lib/forceAtlas2/index.js +206 -218
  121. package/lib/forceAtlas2/index.js.map +1 -1
  122. package/lib/forceAtlas2/quad.d.ts +2 -2
  123. package/lib/forceAtlas2/quad.js +40 -42
  124. package/lib/forceAtlas2/quad.js.map +1 -1
  125. package/lib/forceAtlas2/quadTree.js +16 -17
  126. package/lib/forceAtlas2/quadTree.js.map +1 -1
  127. package/lib/fruchterman.d.ts +1 -1
  128. package/lib/fruchterman.js +185 -205
  129. package/lib/fruchterman.js.map +1 -1
  130. package/lib/grid.d.ts +1 -1
  131. package/lib/grid.js +197 -207
  132. package/lib/grid.js.map +1 -1
  133. package/lib/index.d.ts +1 -15
  134. package/lib/index.js +1 -15
  135. package/lib/index.js.map +1 -1
  136. package/lib/mds.d.ts +1 -1
  137. package/lib/mds.js +68 -78
  138. package/lib/mds.js.map +1 -1
  139. package/lib/radial/index.d.ts +1 -1
  140. package/lib/radial/index.js +177 -184
  141. package/lib/radial/index.js.map +1 -1
  142. package/lib/radial/mds.d.ts +1 -1
  143. package/lib/radial/mds.js +15 -13
  144. package/lib/radial/mds.js.map +1 -1
  145. package/lib/radial/radial-nonoverlap-force.d.ts +2 -2
  146. package/lib/radial/radial-nonoverlap-force.js +36 -37
  147. package/lib/radial/radial-nonoverlap-force.js.map +1 -1
  148. package/lib/random.d.ts +1 -1
  149. package/lib/random.js +53 -66
  150. package/lib/random.js.map +1 -1
  151. package/lib/registry.d.ts +2 -2
  152. package/lib/registry.js +3 -1
  153. package/lib/registry.js.map +1 -1
  154. package/lib/supervisor.d.ts +2 -3
  155. package/lib/supervisor.js +57 -56
  156. package/lib/supervisor.js.map +1 -1
  157. package/lib/types.d.ts +20 -75
  158. package/lib/types.js.map +1 -1
  159. package/lib/util/array.js +1 -1
  160. package/lib/util/array.js.map +1 -1
  161. package/lib/util/common.d.ts +1 -1
  162. package/lib/util/common.js +7 -8
  163. package/lib/util/common.js.map +1 -1
  164. package/lib/util/function.js +23 -25
  165. package/lib/util/function.js.map +1 -1
  166. package/lib/util/index.d.ts +0 -2
  167. package/lib/util/index.js +0 -2
  168. package/lib/util/index.js.map +1 -1
  169. package/lib/util/math.d.ts +1 -26
  170. package/lib/util/math.js +41 -149
  171. package/lib/util/math.js.map +1 -1
  172. package/lib/util/object.d.ts +1 -1
  173. package/lib/util/object.js +13 -13
  174. package/lib/util/object.js.map +1 -1
  175. package/lib/util/size.d.ts +3 -0
  176. package/lib/util/size.js +12 -0
  177. package/lib/util/size.js.map +1 -0
  178. package/lib/worker.js +30 -31
  179. package/lib/worker.js.map +1 -1
  180. package/package.json +9 -5
  181. package/dist/aa1bb0ccc06b11cf79c1.worker.js +0 -2
  182. package/dist/aa1bb0ccc06b11cf79c1.worker.js.map +0 -1
  183. package/lib/dagre/acyclic.js +0 -62
  184. package/lib/dagre/acyclic.js.map +0 -1
  185. package/lib/dagre/add-border-segments.js.map +0 -1
  186. package/lib/dagre/coordinate-system.js +0 -65
  187. package/lib/dagre/coordinate-system.js.map +0 -1
  188. package/lib/dagre/data/list.js.map +0 -1
  189. package/lib/dagre/greedy-fas.js +0 -147
  190. package/lib/dagre/greedy-fas.js.map +0 -1
  191. package/lib/dagre/layout.js.map +0 -1
  192. package/lib/dagre/nesting-graph.js.map +0 -1
  193. package/lib/dagre/normalize.js.map +0 -1
  194. package/lib/dagre/order/add-subgraph-constraints.js.map +0 -1
  195. package/lib/dagre/order/barycenter.js.map +0 -1
  196. package/lib/dagre/order/build-layer-graph.js.map +0 -1
  197. package/lib/dagre/order/cross-count.d.ts +0 -3
  198. package/lib/dagre/order/cross-count.js.map +0 -1
  199. package/lib/dagre/order/index.js.map +0 -1
  200. package/lib/dagre/order/init-data-order.js.map +0 -1
  201. package/lib/dagre/order/init-order.js +0 -50
  202. package/lib/dagre/order/init-order.js.map +0 -1
  203. package/lib/dagre/order/resolve-conflicts.js.map +0 -1
  204. package/lib/dagre/order/sort-subgraph.js.map +0 -1
  205. package/lib/dagre/order/sort.js.map +0 -1
  206. package/lib/dagre/parent-dummy-chains.js.map +0 -1
  207. package/lib/dagre/position/bk.js.map +0 -1
  208. package/lib/dagre/position/index.js +0 -54
  209. package/lib/dagre/position/index.js.map +0 -1
  210. package/lib/dagre/rank/feasible-tree.js.map +0 -1
  211. package/lib/dagre/rank/index.d.ts +0 -2
  212. package/lib/dagre/rank/index.js.map +0 -1
  213. package/lib/dagre/rank/network-simplex.js.map +0 -1
  214. package/lib/dagre/rank/util.js.map +0 -1
  215. package/lib/dagre/util.js.map +0 -1
  216. package/lib/util/gpu.d.ts +0 -45
  217. package/lib/util/gpu.js +0 -214
  218. package/lib/util/gpu.js.map +0 -1
  219. package/lib/util/number.d.ts +0 -1
  220. package/lib/util/number.js +0 -5
  221. package/lib/util/number.js.map +0 -1
  222. package/lib/util/string.d.ts +0 -1
  223. package/lib/util/string.js +0 -15
  224. package/lib/util/string.js.map +0 -1
  225. /package/lib/{dagre → antv-dagre}/add-border-segments.d.ts +0 -0
  226. /package/lib/{dagre → antv-dagre}/nesting-graph.d.ts +0 -0
  227. /package/lib/{dagre → antv-dagre}/order/add-subgraph-constraints.d.ts +0 -0
  228. /package/lib/{dagre → antv-dagre}/order/build-layer-graph.d.ts +0 -0
  229. /package/lib/{dagre → antv-dagre}/order/init-data-order.d.ts +0 -0
  230. /package/lib/{dagre → antv-dagre}/order/init-order.d.ts +0 -0
  231. /package/lib/{dagre → antv-dagre}/order/sort-subgraph.d.ts +0 -0
  232. /package/lib/{dagre → antv-dagre}/parent-dummy-chains.d.ts +0 -0
@@ -1,6 +1,7 @@
1
- import { ID, Node } from "@antv/graphlib";
2
- import { DagreAlign, Graph as IGraph, NodeData } from "../../types";
3
- declare type Conflicts = Record<ID, Record<ID, boolean>>;
1
+ import { ID, Node } from '@antv/graphlib';
2
+ import type { Graph as IGraph, NodeData } from '../../types';
3
+ import type { DagreAlign } from '../types';
4
+ type Conflicts = Record<ID, Record<ID, boolean>>;
4
5
  export declare const findType1Conflicts: (g: IGraph, layering?: ID[][]) => {};
5
6
  export declare const findType2Conflicts: (g: IGraph, layering?: ID[][]) => {};
6
7
  export declare const findOtherInnerSegmentNode: (g: IGraph, v: ID) => Node<NodeData>;
@@ -21,5 +22,5 @@ export declare const positionX: (g: IGraph, options?: Partial<{
21
22
  edgesep: number;
22
23
  }>) => Record<string, number>;
23
24
  export declare const sep: (nodeSep: number, edgeSep: number, reverseSep: boolean) => (g: IGraph, v: ID, w: ID) => number;
24
- export declare const width: (g: IGraph, v: ID) => number;
25
+ export declare const width: (g: IGraph, v: ID) => any;
25
26
  export {};
@@ -1,32 +1,31 @@
1
- import { __assign, __read, __spreadArray } from "tslib";
2
1
  /*
3
2
  * This module provides coordinate assignment based on Brandes and Köpf, "Fast
4
3
  * and Simple Horizontal Coordinate Assignment."
5
4
  */
6
- import { Graph } from "@antv/graphlib";
7
- import { buildLayerMatrix, minBy } from "../util";
8
- export var findType1Conflicts = function (g, layering) {
9
- var conflicts = {};
10
- var visitLayer = function (prevLayer, layer) {
5
+ import { Graph } from '@antv/graphlib';
6
+ import { buildLayerMatrix, minBy } from '../util';
7
+ export const findType1Conflicts = (g, layering) => {
8
+ const conflicts = {};
9
+ const visitLayer = (prevLayer, layer) => {
11
10
  // last visited node in the previous layer that is incident on an inner
12
11
  // segment.
13
- var k0 = 0;
12
+ let k0 = 0;
14
13
  // Tracks the last node in this layer scanned for crossings with a type-1
15
14
  // segment.
16
- var scanPos = 0;
17
- var prevLayerLength = prevLayer.length;
18
- var lastNode = layer === null || layer === void 0 ? void 0 : layer[(layer === null || layer === void 0 ? void 0 : layer.length) - 1];
19
- layer === null || layer === void 0 ? void 0 : layer.forEach(function (v, i) {
15
+ let scanPos = 0;
16
+ const prevLayerLength = prevLayer.length;
17
+ const lastNode = layer === null || layer === void 0 ? void 0 : layer[(layer === null || layer === void 0 ? void 0 : layer.length) - 1];
18
+ layer === null || layer === void 0 ? void 0 : layer.forEach((v, i) => {
20
19
  var _a;
21
- var w = findOtherInnerSegmentNode(g, v);
22
- var k1 = w ? g.getNode(w.id).data.order : prevLayerLength;
20
+ const w = findOtherInnerSegmentNode(g, v);
21
+ const k1 = w ? g.getNode(w.id).data.order : prevLayerLength;
23
22
  if (w || v === lastNode) {
24
- (_a = layer.slice(scanPos, i + 1)) === null || _a === void 0 ? void 0 : _a.forEach(function (scanNode) {
23
+ (_a = layer.slice(scanPos, i + 1)) === null || _a === void 0 ? void 0 : _a.forEach((scanNode) => {
25
24
  var _a;
26
- (_a = g.getPredecessors(scanNode)) === null || _a === void 0 ? void 0 : _a.forEach(function (u) {
25
+ (_a = g.getPredecessors(scanNode)) === null || _a === void 0 ? void 0 : _a.forEach((u) => {
27
26
  var _a;
28
- var uLabel = g.getNode(u.id);
29
- var uPos = uLabel.data.order;
27
+ const uLabel = g.getNode(u.id);
28
+ const uPos = uLabel.data.order;
30
29
  if ((uPos < k0 || k1 < uPos) &&
31
30
  !(uLabel.data.dummy && ((_a = g.getNode(scanNode)) === null || _a === void 0 ? void 0 : _a.data.dummy))) {
32
31
  addConflict(conflicts, u.id, scanNode);
@@ -44,16 +43,16 @@ export var findType1Conflicts = function (g, layering) {
44
43
  }
45
44
  return conflicts;
46
45
  };
47
- export var findType2Conflicts = function (g, layering) {
48
- var conflicts = {};
46
+ export const findType2Conflicts = (g, layering) => {
47
+ const conflicts = {};
49
48
  function scan(south, southPos, southEnd, prevNorthBorder, nextNorthBorder) {
50
49
  var _a, _b;
51
- var v;
52
- for (var i = southPos; i < southEnd; i++) {
50
+ let v;
51
+ for (let i = southPos; i < southEnd; i++) {
53
52
  v = south[i];
54
53
  if ((_a = g.getNode(v)) === null || _a === void 0 ? void 0 : _a.data.dummy) {
55
- (_b = g.getPredecessors(v)) === null || _b === void 0 ? void 0 : _b.forEach(function (u) {
56
- var uNode = g.getNode(u.id);
54
+ (_b = g.getPredecessors(v)) === null || _b === void 0 ? void 0 : _b.forEach((u) => {
55
+ const uNode = g.getNode(u.id);
57
56
  if (uNode.data.dummy &&
58
57
  (uNode.data.order < prevNorthBorder ||
59
58
  uNode.data.order > nextNorthBorder)) {
@@ -68,21 +67,21 @@ export var findType2Conflicts = function (g, layering) {
68
67
  return JSON.stringify(params.slice(1));
69
68
  }
70
69
  function scanIfNeeded(params, scanCache) {
71
- var cacheKey = getScannedKey(params);
70
+ const cacheKey = getScannedKey(params);
72
71
  if (scanCache.get(cacheKey))
73
72
  return;
74
- scan.apply(void 0, __spreadArray([], __read(params)));
73
+ scan(...params);
75
74
  scanCache.set(cacheKey, true);
76
75
  }
77
- var visitLayer = function (north, south) {
78
- var prevNorthPos = -1;
79
- var nextNorthPos;
80
- var southPos = 0;
81
- var scanned = new Map();
82
- south === null || south === void 0 ? void 0 : south.forEach(function (v, southLookahead) {
76
+ const visitLayer = (north, south) => {
77
+ let prevNorthPos = -1;
78
+ let nextNorthPos;
79
+ let southPos = 0;
80
+ const scanned = new Map();
81
+ south === null || south === void 0 ? void 0 : south.forEach((v, southLookahead) => {
83
82
  var _a;
84
- if (((_a = g.getNode(v)) === null || _a === void 0 ? void 0 : _a.data.dummy) === "border") {
85
- var predecessors = g.getPredecessors(v) || [];
83
+ if (((_a = g.getNode(v)) === null || _a === void 0 ? void 0 : _a.data.dummy) === 'border') {
84
+ const predecessors = g.getPredecessors(v) || [];
86
85
  if (predecessors.length) {
87
86
  nextNorthPos = g.getNode(predecessors[0].id).data.order;
88
87
  scanIfNeeded([south, southPos, southLookahead, prevNorthPos, nextNorthPos], scanned);
@@ -99,31 +98,31 @@ export var findType2Conflicts = function (g, layering) {
99
98
  }
100
99
  return conflicts;
101
100
  };
102
- export var findOtherInnerSegmentNode = function (g, v) {
101
+ export const findOtherInnerSegmentNode = (g, v) => {
103
102
  var _a, _b;
104
103
  if ((_a = g.getNode(v)) === null || _a === void 0 ? void 0 : _a.data.dummy) {
105
- return (_b = g.getPredecessors(v)) === null || _b === void 0 ? void 0 : _b.find(function (u) { return g.getNode(u.id).data.dummy; });
104
+ return (_b = g.getPredecessors(v)) === null || _b === void 0 ? void 0 : _b.find((u) => g.getNode(u.id).data.dummy);
106
105
  }
107
106
  };
108
- export var addConflict = function (conflicts, v, w) {
109
- var vv = v;
110
- var ww = w;
107
+ export const addConflict = (conflicts, v, w) => {
108
+ let vv = v;
109
+ let ww = w;
111
110
  if (vv > ww) {
112
- var tmp = vv;
111
+ const tmp = vv;
113
112
  vv = ww;
114
113
  ww = tmp;
115
114
  }
116
- var conflictsV = conflicts[vv];
115
+ let conflictsV = conflicts[vv];
117
116
  if (!conflictsV) {
118
117
  conflicts[vv] = conflictsV = {};
119
118
  }
120
119
  conflictsV[ww] = true;
121
120
  };
122
- export var hasConflict = function (conflicts, v, w) {
123
- var vv = v;
124
- var ww = w;
121
+ export const hasConflict = (conflicts, v, w) => {
122
+ let vv = v;
123
+ let ww = w;
125
124
  if (vv > ww) {
126
- var tmp = v;
125
+ const tmp = v;
127
126
  vv = ww;
128
127
  ww = tmp;
129
128
  }
@@ -137,29 +136,29 @@ export var hasConflict = function (conflicts, v, w) {
137
136
  * we're trying to form a block with, we also ignore that possibility - our
138
137
  * blocks would be split in that scenario.
139
138
  */
140
- export var verticalAlignment = function (g, layering, conflicts, neighborFn) {
141
- var root = {};
142
- var align = {};
143
- var pos = {};
139
+ export const verticalAlignment = (g, layering, conflicts, neighborFn) => {
140
+ const root = {};
141
+ const align = {};
142
+ const pos = {};
144
143
  // We cache the position here based on the layering because the graph and
145
144
  // layering may be out of sync. The layering matrix is manipulated to
146
145
  // generate different extreme alignments.
147
- layering === null || layering === void 0 ? void 0 : layering.forEach(function (layer) {
148
- layer === null || layer === void 0 ? void 0 : layer.forEach(function (v, order) {
146
+ layering === null || layering === void 0 ? void 0 : layering.forEach((layer) => {
147
+ layer === null || layer === void 0 ? void 0 : layer.forEach((v, order) => {
149
148
  root[v] = v;
150
149
  align[v] = v;
151
150
  pos[v] = order;
152
151
  });
153
152
  });
154
- layering === null || layering === void 0 ? void 0 : layering.forEach(function (layer) {
155
- var prevIdx = -1;
156
- layer === null || layer === void 0 ? void 0 : layer.forEach(function (v) {
157
- var ws = neighborFn(v).map(function (n) { return n.id; });
153
+ layering === null || layering === void 0 ? void 0 : layering.forEach((layer) => {
154
+ let prevIdx = -1;
155
+ layer === null || layer === void 0 ? void 0 : layer.forEach((v) => {
156
+ let ws = neighborFn(v).map((n) => n.id);
158
157
  if (ws.length) {
159
- ws = ws.sort(function (a, b) { return pos[a] - pos[b]; });
160
- var mp = (ws.length - 1) / 2;
161
- for (var i = Math.floor(mp), il = Math.ceil(mp); i <= il; ++i) {
162
- var w = ws[i];
158
+ ws = ws.sort((a, b) => pos[a] - pos[b]);
159
+ const mp = (ws.length - 1) / 2;
160
+ for (let i = Math.floor(mp), il = Math.ceil(mp); i <= il; ++i) {
161
+ const w = ws[i];
163
162
  if (align[v] === v &&
164
163
  prevIdx < pos[w] &&
165
164
  !hasConflict(conflicts, v, w)) {
@@ -171,22 +170,22 @@ export var verticalAlignment = function (g, layering, conflicts, neighborFn) {
171
170
  }
172
171
  });
173
172
  });
174
- return { root: root, align: align };
173
+ return { root, align };
175
174
  };
176
- export var horizontalCompaction = function (g, layering, root, align, nodesep, edgesep, reverseSep) {
175
+ export const horizontalCompaction = (g, layering, root, align, nodesep, edgesep, reverseSep) => {
177
176
  var _a;
178
177
  // This portion of the algorithm differs from BK due to a number of problems.
179
178
  // Instead of their algorithm we construct a new block graph and do two
180
179
  // sweeps. The first sweep places blocks with the smallest possible
181
180
  // coordinates. The second sweep removes unused space by moving blocks to the
182
181
  // greatest coordinates without violating separation.
183
- var xs = {};
184
- var blockG = buildBlockGraph(g, layering, root, nodesep, edgesep, reverseSep);
185
- var borderType = reverseSep ? "borderLeft" : "borderRight";
186
- var iterate = function (setXsFunc, nextNodesFunc) {
187
- var stack = blockG.getAllNodes();
188
- var elem = stack.pop();
189
- var visited = {};
182
+ const xs = {};
183
+ const blockG = buildBlockGraph(g, layering, root, nodesep, edgesep, reverseSep);
184
+ const borderType = reverseSep ? 'borderLeft' : 'borderRight';
185
+ const iterate = (setXsFunc, nextNodesFunc) => {
186
+ let stack = blockG.getAllNodes();
187
+ let elem = stack.pop();
188
+ const visited = {};
190
189
  while (elem) {
191
190
  if (visited[elem.id]) {
192
191
  setXsFunc(elem.id);
@@ -200,17 +199,17 @@ export var horizontalCompaction = function (g, layering, root, align, nodesep, e
200
199
  }
201
200
  };
202
201
  // First pass, assign smallest coordinates
203
- var pass1 = function (elem) {
204
- xs[elem] = (blockG.getRelatedEdges(elem, "in") || []).reduce(function (acc, e) {
202
+ const pass1 = (elem) => {
203
+ xs[elem] = (blockG.getRelatedEdges(elem, 'in') || []).reduce((acc, e) => {
205
204
  return Math.max(acc, (xs[e.source] || 0) + e.data.weight);
206
205
  }, 0);
207
206
  };
208
207
  // Second pass, assign greatest coordinates
209
- var pass2 = function (elem) {
210
- var min = (blockG.getRelatedEdges(elem, "out") || []).reduce(function (acc, e) {
208
+ const pass2 = (elem) => {
209
+ const min = (blockG.getRelatedEdges(elem, 'out') || []).reduce((acc, e) => {
211
210
  return Math.min(acc, (xs[e.target] || 0) - e.data.weight);
212
211
  }, Number.POSITIVE_INFINITY);
213
- var node = g.getNode(elem);
212
+ const node = g.getNode(elem);
214
213
  if (min !== Number.POSITIVE_INFINITY &&
215
214
  node.data.borderType !== borderType) {
216
215
  xs[elem] = Math.max(xs[elem], min);
@@ -219,18 +218,18 @@ export var horizontalCompaction = function (g, layering, root, align, nodesep, e
219
218
  iterate(pass1, blockG.getPredecessors.bind(blockG));
220
219
  iterate(pass2, blockG.getSuccessors.bind(blockG));
221
220
  // Assign x coordinates to all nodes
222
- (_a = Object.values(align)) === null || _a === void 0 ? void 0 : _a.forEach(function (v) {
221
+ (_a = Object.values(align)) === null || _a === void 0 ? void 0 : _a.forEach((v) => {
223
222
  xs[v] = xs[root[v]];
224
223
  });
225
224
  return xs;
226
225
  };
227
- export var buildBlockGraph = function (g, layering, root, nodesep, edgesep, reverseSep) {
228
- var blockGraph = new Graph();
229
- var sepFn = sep(nodesep, edgesep, reverseSep);
230
- layering === null || layering === void 0 ? void 0 : layering.forEach(function (layer) {
231
- var u;
232
- layer === null || layer === void 0 ? void 0 : layer.forEach(function (v) {
233
- var vRoot = root[v];
226
+ export const buildBlockGraph = (g, layering, root, nodesep, edgesep, reverseSep) => {
227
+ const blockGraph = new Graph();
228
+ const sepFn = sep(nodesep, edgesep, reverseSep);
229
+ layering === null || layering === void 0 ? void 0 : layering.forEach((layer) => {
230
+ let u;
231
+ layer === null || layer === void 0 ? void 0 : layer.forEach((v) => {
232
+ const vRoot = root[v];
234
233
  if (!blockGraph.hasNode(vRoot)) {
235
234
  blockGraph.addNode({
236
235
  id: vRoot,
@@ -238,13 +237,13 @@ export var buildBlockGraph = function (g, layering, root, nodesep, edgesep, reve
238
237
  });
239
238
  }
240
239
  if (u) {
241
- var uRoot = root[u];
242
- var edge = blockGraph
243
- .getRelatedEdges(uRoot, "out")
244
- .find(function (edge) { return edge.target === vRoot; });
240
+ const uRoot = root[u];
241
+ const edge = blockGraph
242
+ .getRelatedEdges(uRoot, 'out')
243
+ .find((edge) => edge.target === vRoot);
245
244
  if (!edge) {
246
245
  blockGraph.addEdge({
247
- id: "e" + Math.random(),
246
+ id: `e${Math.random()}`,
248
247
  source: uRoot,
249
248
  target: vRoot,
250
249
  data: {
@@ -253,7 +252,7 @@ export var buildBlockGraph = function (g, layering, root, nodesep, edgesep, reve
253
252
  });
254
253
  }
255
254
  else {
256
- blockGraph.updateEdgeData(edge.id, __assign(__assign({}, edge.data), { weight: Math.max(sepFn(g, v, u), edge.data.weight || 0) }));
255
+ blockGraph.updateEdgeData(edge.id, Object.assign(Object.assign({}, edge.data), { weight: Math.max(sepFn(g, v, u), edge.data.weight || 0) }));
257
256
  }
258
257
  }
259
258
  u = v;
@@ -264,14 +263,14 @@ export var buildBlockGraph = function (g, layering, root, nodesep, edgesep, reve
264
263
  /*
265
264
  * Returns the alignment that has the smallest width of the given alignments.
266
265
  */
267
- export var findSmallestWidthAlignment = function (g, xss) {
268
- return minBy(Object.values(xss), function (xs) {
266
+ export const findSmallestWidthAlignment = (g, xss) => {
267
+ return minBy(Object.values(xss), (xs) => {
269
268
  var _a;
270
- var max = Number.NEGATIVE_INFINITY;
271
- var min = Number.POSITIVE_INFINITY;
272
- (_a = Object.keys(xs)) === null || _a === void 0 ? void 0 : _a.forEach(function (v) {
273
- var x = xs[v];
274
- var halfWidth = width(g, v) / 2;
269
+ let max = Number.NEGATIVE_INFINITY;
270
+ let min = Number.POSITIVE_INFINITY;
271
+ (_a = Object.keys(xs)) === null || _a === void 0 ? void 0 : _a.forEach((v) => {
272
+ const x = xs[v];
273
+ const halfWidth = width(g, v) / 2;
275
274
  max = Math.max(x + halfWidth, max);
276
275
  min = Math.min(x - halfWidth, min);
277
276
  });
@@ -286,86 +285,84 @@ export var findSmallestWidthAlignment = function (g, xss) {
286
285
  * coordinate of the smallest width alignment.
287
286
  */
288
287
  export function alignCoordinates(xss, alignTo) {
289
- var alignToVals = Object.values(alignTo);
290
- var alignToMin = Math.min.apply(Math, __spreadArray([], __read(alignToVals)));
291
- var alignToMax = Math.max.apply(Math, __spreadArray([], __read(alignToVals)));
292
- ["u", "d"].forEach(function (vert) {
293
- ["l", "r"].forEach(function (horiz) {
294
- var alignment = vert + horiz;
295
- var xs = xss[alignment];
296
- var delta;
288
+ const alignToVals = Object.values(alignTo);
289
+ const alignToMin = Math.min(...alignToVals);
290
+ const alignToMax = Math.max(...alignToVals);
291
+ ['u', 'd'].forEach((vert) => {
292
+ ['l', 'r'].forEach((horiz) => {
293
+ const alignment = vert + horiz;
294
+ const xs = xss[alignment];
295
+ let delta;
297
296
  if (xs === alignTo)
298
297
  return;
299
- var xsVals = Object.values(xs);
298
+ const xsVals = Object.values(xs);
300
299
  delta =
301
- horiz === "l"
302
- ? alignToMin - Math.min.apply(Math, __spreadArray([], __read(xsVals)))
303
- : alignToMax - Math.max.apply(Math, __spreadArray([], __read(xsVals)));
300
+ horiz === 'l'
301
+ ? alignToMin - Math.min(...xsVals)
302
+ : alignToMax - Math.max(...xsVals);
304
303
  if (delta) {
305
304
  xss[alignment] = {};
306
- Object.keys(xs).forEach(function (key) {
305
+ Object.keys(xs).forEach((key) => {
307
306
  xss[alignment][key] = xs[key] + delta;
308
307
  });
309
308
  }
310
309
  });
311
310
  });
312
311
  }
313
- export var balance = function (xss, align) {
314
- var result = {};
315
- Object.keys(xss.ul).forEach(function (key) {
312
+ export const balance = (xss, align) => {
313
+ const result = {};
314
+ Object.keys(xss.ul).forEach((key) => {
316
315
  if (align) {
317
316
  result[key] = xss[align.toLowerCase()][key];
318
317
  }
319
318
  else {
320
- var values = Object.values(xss).map(function (x) { return x[key]; });
319
+ const values = Object.values(xss).map((x) => x[key]);
321
320
  result[key] = (values[0] + values[1]) / 2; // (ur + ul) / 2
322
321
  }
323
322
  });
324
323
  return result;
325
324
  };
326
- export var positionX = function (g, options) {
327
- var _a = options || {}, graphAlign = _a.align, _b = _a.nodesep, nodesep = _b === void 0 ? 0 : _b, _c = _a.edgesep, edgesep = _c === void 0 ? 0 : _c;
328
- var layering = buildLayerMatrix(g);
329
- var conflicts = Object.assign(findType1Conflicts(g, layering), findType2Conflicts(g, layering));
330
- var xss = {};
331
- var adjustedLayering;
332
- ["u", "d"].forEach(function (vert) {
325
+ export const positionX = (g, options) => {
326
+ const { align: graphAlign, nodesep = 0, edgesep = 0 } = options || {};
327
+ const layering = buildLayerMatrix(g);
328
+ const conflicts = Object.assign(findType1Conflicts(g, layering), findType2Conflicts(g, layering));
329
+ const xss = {};
330
+ let adjustedLayering;
331
+ ['u', 'd'].forEach((vert) => {
333
332
  adjustedLayering =
334
- vert === "u" ? layering : Object.values(layering).reverse();
335
- ["l", "r"].forEach(function (horiz) {
336
- if (horiz === "r") {
337
- adjustedLayering = adjustedLayering.map(function (inner) {
338
- return Object.values(inner).reverse();
339
- });
333
+ vert === 'u' ? layering : Object.values(layering).reverse();
334
+ ['l', 'r'].forEach((horiz) => {
335
+ if (horiz === 'r') {
336
+ adjustedLayering = adjustedLayering.map((inner) => Object.values(inner).reverse());
340
337
  }
341
- var neighborFn = (vert === "u" ? g.getPredecessors : g.getSuccessors).bind(g);
342
- var align = verticalAlignment(g, adjustedLayering, conflicts, neighborFn);
343
- var xs = horizontalCompaction(g, adjustedLayering, align.root, align.align, nodesep, edgesep, horiz === "r");
344
- if (horiz === "r") {
345
- Object.keys(xs).forEach(function (key) {
338
+ const neighborFn = (vert === 'u' ? g.getPredecessors : g.getSuccessors).bind(g);
339
+ const align = verticalAlignment(g, adjustedLayering, conflicts, neighborFn);
340
+ const xs = horizontalCompaction(g, adjustedLayering, align.root, align.align, nodesep, edgesep, horiz === 'r');
341
+ if (horiz === 'r') {
342
+ Object.keys(xs).forEach((key) => {
346
343
  xs[key] = -xs[key];
347
344
  });
348
345
  }
349
346
  xss[vert + horiz] = xs;
350
347
  });
351
348
  });
352
- var smallestWidth = findSmallestWidthAlignment(g, xss);
349
+ const smallestWidth = findSmallestWidthAlignment(g, xss);
353
350
  alignCoordinates(xss, smallestWidth);
354
351
  return balance(xss, graphAlign);
355
352
  };
356
- export var sep = function (nodeSep, edgeSep, reverseSep) {
357
- return function (g, v, w) {
358
- var vLabel = g.getNode(v);
359
- var wLabel = g.getNode(w);
360
- var sum = 0;
361
- var delta = 0;
353
+ export const sep = (nodeSep, edgeSep, reverseSep) => {
354
+ return (g, v, w) => {
355
+ const vLabel = g.getNode(v);
356
+ const wLabel = g.getNode(w);
357
+ let sum = 0;
358
+ let delta = 0;
362
359
  sum += vLabel.data.width / 2;
363
- if (vLabel.data.hasOwnProperty("labelpos")) {
364
- switch ((vLabel.data.labelpos || "").toLowerCase()) {
365
- case "l":
360
+ if (vLabel.data.hasOwnProperty('labelpos')) {
361
+ switch ((vLabel.data.labelpos || '').toLowerCase()) {
362
+ case 'l':
366
363
  delta = -vLabel.data.width / 2;
367
364
  break;
368
- case "r":
365
+ case 'r':
369
366
  delta = vLabel.data.width / 2;
370
367
  break;
371
368
  }
@@ -378,11 +375,11 @@ export var sep = function (nodeSep, edgeSep, reverseSep) {
378
375
  sum += (wLabel.data.dummy ? edgeSep : nodeSep) / 2;
379
376
  sum += wLabel.data.width / 2;
380
377
  if (wLabel.data.labelpos) {
381
- switch ((wLabel.data.labelpos || "").toLowerCase()) {
382
- case "l":
378
+ switch ((wLabel.data.labelpos || '').toLowerCase()) {
379
+ case 'l':
383
380
  delta = wLabel.data.width / 2;
384
381
  break;
385
- case "r":
382
+ case 'r':
386
383
  delta = -wLabel.data.width / 2;
387
384
  break;
388
385
  }
@@ -394,5 +391,5 @@ export var sep = function (nodeSep, edgeSep, reverseSep) {
394
391
  return sum;
395
392
  };
396
393
  };
397
- export var width = function (g, v) { return g.getNode(v).data.width || 0; };
394
+ export const width = (g, v) => g.getNode(v).data.width || 0;
398
395
  //# sourceMappingURL=bk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bk.js","sourceRoot":"","sources":["../../../src/antv-dagre/position/bk.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,EAAY,MAAM,gBAAgB,CAAC;AAGjD,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAsBlD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAS,EAAE,QAAiB,EAAE,EAAE;IACjE,MAAM,SAAS,GAAG,EAAE,CAAC;IAErB,MAAM,UAAU,GAAG,CAAC,SAAe,EAAE,KAAW,EAAE,EAAE;QAClD,uEAAuE;QACvE,WAAW;QACX,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,yEAAyE;QACzE,WAAW;QACX,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,CAAC;QACzC,MAAM,QAAQ,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,IAAG,CAAC,CAAC,CAAC;QAE5C,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC,CAAC,CAAK,EAAE,CAAS,EAAE,EAAE;;YAClC,MAAM,CAAC,GAAG,yBAAyB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1C,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,IAAI,CAAC,KAAM,CAAC,CAAC,CAAC,eAAe,CAAC;YAE9D,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE;gBACvB,MAAA,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,0CAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;;oBAChD,MAAA,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,0CAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;;wBACzC,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC;wBAChC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAM,CAAC;wBAChC,IACE,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;4BACxB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,KAAI,MAAA,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,0CAAE,IAAI,CAAC,KAAK,CAAA,CAAC,EACvD;4BACA,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;yBACxC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;gBAChB,EAAE,GAAG,EAAE,CAAC;aACT;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,EAAE;QACpB,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KAC7B;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAS,EAAE,QAAiB,EAAE,EAAE;IACjE,MAAM,SAAS,GAAG,EAAE,CAAC;IAErB,SAAS,IAAI,CACX,KAAe,EACf,QAAgB,EAChB,QAAgB,EAChB,eAAuB,EACvB,eAAuB;;QAEvB,IAAI,CAAS,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;YACxC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACb,IAAI,MAAA,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAC,KAAK,EAAE;gBAC5B,MAAA,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,0CAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;oBAClC,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC;oBAC/B,IACE,KAAK,CAAC,IAAI,CAAC,KAAK;wBAChB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAM,GAAG,eAAe;4BAClC,KAAK,CAAC,IAAI,CAAC,KAAM,GAAG,eAAe,CAAC,EACtC;wBACA,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;qBACjC;gBACH,CAAC,CAAC,CAAC;aACJ;SACF;IACH,CAAC;IAED,SAAS,aAAa,CAAC,MAA+B;QACpD,sBAAsB;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IAED,SAAS,YAAY,CACnB,MAA+B,EAC/B,SAA+B;QAE/B,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QAEvC,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO;QAEpC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QAChB,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,KAAe,EAAE,KAAe,EAAE,EAAE;QACtD,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;QACtB,IAAI,YAAoB,CAAC;QACzB,IAAI,QAAQ,GAAG,CAAC,CAAC;QAEjB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;QAE3C,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC,CAAC,CAAS,EAAE,cAAsB,EAAE,EAAE;;YACnD,IAAI,CAAA,MAAA,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAC,KAAK,MAAK,QAAQ,EAAE;gBACzC,MAAM,YAAY,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChD,IAAI,YAAY,CAAC,MAAM,EAAE;oBACvB,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,IAAI,CAAC,KAAM,CAAC;oBAC1D,YAAY,CACV,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,CAAC,EAC7D,OAAO,CACR,CAAC;oBACF,QAAQ,GAAG,cAAc,CAAC;oBAC1B,YAAY,GAAG,YAAY,CAAC;iBAC7B;aACF;YACD,YAAY,CACV,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,EAC3D,OAAO,CACR,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,EAAE;QACpB,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KAC7B;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAS,EAAE,CAAK,EAAE,EAAE;;IAC5D,IAAI,MAAA,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAC,KAAK,EAAE;QAC5B,OAAO,MAAA,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtE;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAoB,EAAE,CAAK,EAAE,CAAK,EAAE,EAAE;IAChE,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,EAAE,GAAG,EAAE,EAAE;QACX,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,EAAE,GAAG,EAAE,CAAC;QACR,EAAE,GAAG,GAAG,CAAC;KACV;IAED,IAAI,UAAU,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;IAC/B,IAAI,CAAC,UAAU,EAAE;QACf,SAAS,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,EAAE,CAAC;KACjC;IACD,UAAU,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAoB,EAAE,CAAK,EAAE,CAAK,EAAE,EAAE;IAChE,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,EAAE,GAAG,EAAE,EAAE;QACX,MAAM,GAAG,GAAG,CAAC,CAAC;QACd,EAAE,GAAG,EAAE,CAAC;QACR,EAAE,GAAG,GAAG,CAAC;KACV;IACD,OAAO,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,CAAS,EACT,QAAgB,EAChB,SAAoB,EACpB,UAAuC,EACvC,EAAE;IACF,MAAM,IAAI,GAAmB,EAAE,CAAC;IAChC,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,MAAM,GAAG,GAAuB,EAAE,CAAC;IAEnC,yEAAyE;IACzE,qEAAqE;IACrE,yCAAyC;IACzC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAa,EAAE,EAAE;YAClC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACZ,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACb,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC;QACjB,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACnB,IAAI,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAExC,IAAI,EAAE,CAAC,MAAM,EAAE;gBACb,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAK,EAAE,CAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChD,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC/B,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE;oBAC7D,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;oBAChB,IACE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;wBACd,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC;wBAChB,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7B;wBACA,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACb,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;wBAC7B,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;qBAClB;iBACF;aACF;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,CAAS,EACT,QAAgB,EAChB,IAAoB,EACpB,KAAqB,EACrB,OAAe,EACf,OAAe,EACf,UAAoB,EACpB,EAAE;;IACF,6EAA6E;IAC7E,uEAAuE;IACvE,mEAAmE;IACnE,6EAA6E;IAC7E,qDAAqD;IACrD,MAAM,EAAE,GAAuB,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,eAAe,CAC5B,CAAC,EACD,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,OAAO,EACP,UAAU,CACX,CAAC;IACF,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC;IAE7D,MAAM,OAAO,GAAG,CACd,SAA8B,EAC9B,aAA4C,EAC5C,EAAE;QACF,IAAI,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACjC,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,OAAO,IAAI,EAAE;YACX,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBACpB,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACpB;iBAAM;gBACL,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aAC9C;YAED,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;SACpB;IACH,CAAC,CAAC;IAEF,0CAA0C;IAC1C,MAAM,KAAK,GAAG,CAAC,IAAQ,EAAE,EAAE;QACzB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAC1D,CAAC,GAAW,EAAE,CAAC,EAAE,EAAE;YACjB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC;QAC7D,CAAC,EACD,CAAC,CACF,CAAC;IACJ,CAAC,CAAC;IAEF,2CAA2C;IAC3C,MAAM,KAAK,GAAG,CAAC,IAAQ,EAAE,EAAE;QACzB,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAC5D,CAAC,GAAW,EAAE,CAAC,EAAE,EAAE;YACjB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC;QAC7D,CAAC,EACD,MAAM,CAAC,iBAAiB,CACzB,CAAC;QAEF,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAE,CAAC;QAC9B,IACE,GAAG,KAAK,MAAM,CAAC,iBAAiB;YAChC,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU,EACnC;YACA,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;SACpC;IACH,CAAC,CAAC;IAEF,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAElD,oCAAoC;IACpC,MAAA,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,0CAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAClC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,CAAS,EACT,QAAgB,EAChB,IAAoB,EACpB,OAAe,EACf,OAAe,EACf,UAAoB,EACZ,EAAE;IACV,MAAM,UAAU,GAAG,IAAI,KAAK,EAAsB,CAAC;IACnD,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,UAAqB,CAAC,CAAC;IAE3D,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1B,IAAI,CAAK,CAAC;QACV,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC9B,UAAU,CAAC,OAAO,CAAC;oBACjB,EAAE,EAAE,KAAK;oBACT,IAAI,EAAE,EAAE;iBACT,CAAC,CAAC;aACJ;YACD,IAAI,CAAC,EAAE;gBACL,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;gBAEtB,MAAM,IAAI,GAAG,UAAU;qBACpB,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC;qBAC7B,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC;gBACzC,IAAI,CAAC,IAAI,EAAE;oBACT,UAAU,CAAC,OAAO,CAAC;wBACjB,EAAE,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;wBACvB,MAAM,EAAE,KAAK;wBACb,MAAM,EAAE,KAAK;wBACb,IAAI,EAAE;4BACJ,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;yBACpC;qBACF,CAAC,CAAC;iBACJ;qBAAM;oBACL,UAAU,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,kCAC5B,IAAI,CAAC,IAAI,KACZ,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAO,IAAI,CAAC,CAAC,IACxD,CAAC;iBACJ;aACF;YACD,CAAC,GAAG,CAAC,CAAC;QACR,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AACF;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,CAAS,EACT,GAA2C,EAC3C,EAAE;IACF,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE;;QACtC,IAAI,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACnC,IAAI,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAEnC,MAAA,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,0CAAE,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;YACrC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAElC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC,CAAC;YACnC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAA2C,EAC3C,OAA+B;IAE/B,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IAE5C,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1B,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,MAAM,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC;YAC/B,MAAM,EAAE,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;YAC1B,IAAI,KAAa,CAAC;YAClB,IAAI,EAAE,KAAK,OAAO;gBAAE,OAAO;YAE3B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACjC,KAAK;gBACH,KAAK,KAAK,GAAG;oBACX,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;oBAClC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;YAEvC,IAAI,KAAK,EAAE;gBACT,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC9B,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACxC,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,GAA2C,EAC3C,KAAkB,EAClB,EAAE;IACF,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAClC,IAAI,KAAK,EAAE;YACT,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;SAC7C;aAAM;YACL,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACrD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB;SAC5D;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,CAAS,EACT,OAIE,EACF,EAAE;IACF,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IAEtE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAC7B,kBAAkB,CAAC,CAAC,EAAE,QAAQ,CAAC,EAC/B,kBAAkB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAChC,CAAC;IAEF,MAAM,GAAG,GAAuC,EAAE,CAAC;IACnD,IAAI,gBAAwB,CAAC;IAC7B,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1B,gBAAgB;YACd,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9D,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3B,IAAI,KAAK,KAAK,GAAG,EAAE;gBACjB,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAChD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAC/B,CAAC;aACH;YAED,MAAM,UAAU,GAAG,CACjB,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CACnD,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACV,MAAM,KAAK,GAAG,iBAAiB,CAC7B,CAAC,EACD,gBAAgB,EAChB,SAAS,EACT,UAAU,CACX,CAAC;YACF,MAAM,EAAE,GAAG,oBAAoB,CAC7B,CAAC,EACD,gBAAgB,EAChB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,KAAK,EACX,OAAO,EACP,OAAO,EACP,KAAK,KAAK,GAAG,CACd,CAAC;YACF,IAAI,KAAK,KAAK,GAAG,EAAE;gBACjB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;oBAC9B,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC,CAAC,CAAC;aACJ;YACD,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,0BAA0B,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACzD,gBAAgB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACrC,OAAO,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,OAAe,EAAE,OAAe,EAAE,UAAmB,EAAE,EAAE;IAC3E,OAAO,CAAC,CAAS,EAAE,CAAK,EAAE,CAAK,EAAE,EAAE;QACjC,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC;QAC7B,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,KAAK,GAAW,CAAC,CAAC;QAEtB,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAM,GAAG,CAAC,CAAC;QAC9B,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;YAC1C,QAAQ,CAAE,MAAM,CAAC,IAAI,CAAC,QAAmB,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE;gBAC9D,KAAK,GAAG;oBACN,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAM,GAAG,CAAC,CAAC;oBAChC,MAAM;gBACR,KAAK,GAAG;oBACN,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAM,GAAG,CAAC,CAAC;oBAC/B,MAAM;aACT;SACF;QACD,IAAI,KAAK,EAAE;YACT,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SACpC;QACD,KAAK,GAAG,CAAC,CAAC;QAEV,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnD,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEnD,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAM,GAAG,CAAC,CAAC;QAC9B,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;YACxB,QAAQ,CAAE,MAAM,CAAC,IAAI,CAAC,QAAmB,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE;gBAC9D,KAAK,GAAG;oBACN,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAM,GAAG,CAAC,CAAC;oBAC/B,MAAM;gBACR,KAAK,GAAG;oBACN,KAAK,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAM,GAAG,CAAC,CAAC;oBAChC,MAAM;aACT;SACF;QACD,IAAI,KAAK,EAAE;YACT,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SACpC;QACD,KAAK,GAAG,CAAC,CAAC;QAEV,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,CAAK,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,KAAM,IAAI,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
- import { DagreAlign, Graph as IGraph } from "../../types";
1
+ import type { Graph as IGraph } from '../../types';
2
+ import type { DagreAlign } from '../types';
2
3
  export declare const position: (g: IGraph, options?: Partial<{
3
4
  align: DagreAlign;
4
5
  nodesep: number;
@@ -0,0 +1,51 @@
1
+ import { asNonCompoundGraph, buildLayerMatrix } from '../util';
2
+ import { alignCoordinates, balance, findSmallestWidthAlignment, findType1Conflicts, findType2Conflicts, horizontalCompaction, verticalAlignment, } from './bk';
3
+ const positionY = (g, options) => {
4
+ const { ranksep = 0 } = options || {};
5
+ const layering = buildLayerMatrix(g);
6
+ let prevY = 0;
7
+ layering === null || layering === void 0 ? void 0 : layering.forEach((layer) => {
8
+ const heights = layer.map((v) => g.getNode(v).data.height);
9
+ const maxHeight = Math.max(...heights, 0);
10
+ layer === null || layer === void 0 ? void 0 : layer.forEach((v) => {
11
+ g.getNode(v).data.y = prevY + maxHeight / 2;
12
+ });
13
+ prevY += maxHeight + ranksep;
14
+ });
15
+ };
16
+ const positionX = (g, options) => {
17
+ const { align: graphAlign, nodesep = 0, edgesep = 0 } = options || {};
18
+ const layering = buildLayerMatrix(g);
19
+ const conflicts = Object.assign(findType1Conflicts(g, layering), findType2Conflicts(g, layering));
20
+ const xss = {};
21
+ let adjustedLayering = [];
22
+ ['u', 'd'].forEach((vert) => {
23
+ adjustedLayering =
24
+ vert === 'u' ? layering : Object.values(layering).reverse();
25
+ ['l', 'r'].forEach((horiz) => {
26
+ if (horiz === 'r') {
27
+ adjustedLayering = adjustedLayering.map((inner) => Object.values(inner).reverse());
28
+ }
29
+ const neighborFn = (vert === 'u' ? g.getPredecessors : g.getSuccessors).bind(g);
30
+ const align = verticalAlignment(g, adjustedLayering, conflicts, neighborFn);
31
+ const xs = horizontalCompaction(g, adjustedLayering, align.root, align.align, nodesep, edgesep, horiz === 'r');
32
+ if (horiz === 'r') {
33
+ Object.keys(xs).forEach((xsKey) => (xs[xsKey] = -xs[xsKey]));
34
+ }
35
+ xss[vert + horiz] = xs;
36
+ });
37
+ });
38
+ const smallestWidth = findSmallestWidthAlignment(g, xss);
39
+ smallestWidth && alignCoordinates(xss, smallestWidth);
40
+ return balance(xss, graphAlign);
41
+ };
42
+ export const position = (g, options) => {
43
+ var _a;
44
+ const ng = asNonCompoundGraph(g);
45
+ positionY(ng, options);
46
+ const xs = positionX(ng, options);
47
+ (_a = Object.keys(xs)) === null || _a === void 0 ? void 0 : _a.forEach((key) => {
48
+ ng.getNode(key).data.x = xs[key];
49
+ });
50
+ };
51
+ //# 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 };