@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.
- package/dist/85db61ddc757dae66e04.worker.js +2 -0
- package/dist/85db61ddc757dae66e04.worker.js.map +1 -0
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/lib/{dagre → antv-dagre}/acyclic.d.ts +1 -1
- package/lib/antv-dagre/acyclic.js +61 -0
- package/lib/antv-dagre/acyclic.js.map +1 -0
- package/lib/{dagre → antv-dagre}/add-border-segments.js +12 -12
- package/lib/antv-dagre/add-border-segments.js.map +1 -0
- package/lib/{dagre → antv-dagre}/coordinate-system.d.ts +2 -1
- package/lib/antv-dagre/coordinate-system.js +65 -0
- package/lib/antv-dagre/coordinate-system.js.map +1 -0
- package/lib/{dagre → antv-dagre}/data/list.d.ts +1 -1
- package/lib/{dagre → antv-dagre}/data/list.js +20 -22
- package/lib/antv-dagre/data/list.js.map +1 -0
- package/lib/{dagre → antv-dagre}/greedy-fas.d.ts +2 -2
- package/lib/antv-dagre/greedy-fas.js +136 -0
- package/lib/antv-dagre/greedy-fas.js.map +1 -0
- package/lib/{dagre → antv-dagre}/layout.d.ts +2 -1
- package/lib/{dagre → antv-dagre}/layout.js +125 -127
- package/lib/antv-dagre/layout.js.map +1 -0
- package/lib/{dagre → antv-dagre}/nesting-graph.js +36 -37
- package/lib/antv-dagre/nesting-graph.js.map +1 -0
- package/lib/{dagre → antv-dagre}/normalize.d.ts +2 -2
- package/lib/{dagre → antv-dagre}/normalize.js +24 -24
- package/lib/antv-dagre/normalize.js.map +1 -0
- package/lib/{dagre → antv-dagre}/order/add-subgraph-constraints.js +9 -9
- package/lib/antv-dagre/order/add-subgraph-constraints.js.map +1 -0
- package/lib/{dagre → antv-dagre}/order/barycenter.d.ts +2 -2
- package/lib/{dagre → antv-dagre}/order/barycenter.js +8 -8
- package/lib/antv-dagre/order/barycenter.js.map +1 -0
- package/lib/{dagre → antv-dagre}/order/build-layer-graph.js +18 -22
- package/lib/antv-dagre/order/build-layer-graph.js.map +1 -0
- package/lib/antv-dagre/order/cross-count.d.ts +3 -0
- package/lib/{dagre → antv-dagre}/order/cross-count.js +17 -17
- package/lib/antv-dagre/order/cross-count.js.map +1 -0
- package/lib/{dagre → antv-dagre}/order/index.d.ts +1 -1
- package/lib/{dagre → antv-dagre}/order/index.js +35 -35
- package/lib/antv-dagre/order/index.js.map +1 -0
- package/lib/{dagre → antv-dagre}/order/init-data-order.js +8 -9
- package/lib/antv-dagre/order/init-data-order.js.map +1 -0
- package/lib/antv-dagre/order/init-order.js +47 -0
- package/lib/antv-dagre/order/init-order.js.map +1 -0
- package/lib/{dagre → antv-dagre}/order/resolve-conflicts.d.ts +3 -3
- package/lib/{dagre → antv-dagre}/order/resolve-conflicts.js +32 -35
- package/lib/antv-dagre/order/resolve-conflicts.js.map +1 -0
- package/lib/{dagre → antv-dagre}/order/sort-subgraph.js +20 -20
- package/lib/antv-dagre/order/sort-subgraph.js.map +1 -0
- package/lib/{dagre → antv-dagre}/order/sort.d.ts +2 -2
- package/lib/{dagre → antv-dagre}/order/sort.js +19 -19
- package/lib/antv-dagre/order/sort.js.map +1 -0
- package/lib/{dagre → antv-dagre}/parent-dummy-chains.js +28 -28
- package/lib/antv-dagre/parent-dummy-chains.js.map +1 -0
- package/lib/{dagre → antv-dagre}/position/bk.d.ts +5 -4
- package/lib/{dagre → antv-dagre}/position/bk.js +140 -143
- package/lib/antv-dagre/position/bk.js.map +1 -0
- package/lib/{dagre → antv-dagre}/position/index.d.ts +2 -1
- package/lib/antv-dagre/position/index.js +51 -0
- package/lib/antv-dagre/position/index.js.map +1 -0
- package/lib/{dagre → antv-dagre}/rank/feasible-tree.d.ts +2 -2
- package/lib/{dagre → antv-dagre}/rank/feasible-tree.js +32 -32
- package/lib/antv-dagre/rank/feasible-tree.js.map +1 -0
- package/lib/antv-dagre/rank/index.d.ts +2 -0
- package/lib/{dagre → antv-dagre}/rank/index.js +10 -10
- package/lib/antv-dagre/rank/index.js.map +1 -0
- package/lib/{dagre → antv-dagre}/rank/network-simplex.d.ts +2 -2
- package/lib/{dagre → antv-dagre}/rank/network-simplex.js +70 -71
- package/lib/antv-dagre/rank/network-simplex.js.map +1 -0
- package/lib/{dagre → antv-dagre}/rank/util.d.ts +2 -2
- package/lib/{dagre → antv-dagre}/rank/util.js +31 -31
- package/lib/antv-dagre/rank/util.js.map +1 -0
- package/lib/antv-dagre/types.d.ts +2 -0
- package/lib/antv-dagre/types.js +2 -0
- package/lib/antv-dagre/types.js.map +1 -0
- package/lib/{dagre → antv-dagre}/util.d.ts +1 -1
- package/lib/{dagre → antv-dagre}/util.js +90 -98
- package/lib/antv-dagre/util.js.map +1 -0
- package/lib/antv-dagre.d.ts +50 -0
- package/lib/antv-dagre.js +538 -0
- package/lib/antv-dagre.js.map +1 -0
- package/lib/bundle-entry.d.ts +2 -18
- package/lib/bundle-entry.js +2 -18
- package/lib/bundle-entry.js.map +1 -1
- package/lib/bundle-supervisor.d.ts +4 -22
- package/lib/bundle-supervisor.js +54 -53
- package/lib/bundle-supervisor.js.map +1 -1
- package/lib/bundle-worker.d.ts +1 -1
- package/lib/bundle-worker.js +31 -33
- package/lib/bundle-worker.js.map +1 -1
- package/lib/circular.d.ts +1 -1
- package/lib/circular.js +124 -140
- package/lib/circular.js.map +1 -1
- package/lib/comboCombined.d.ts +1 -1
- package/lib/comboCombined.js +254 -284
- package/lib/comboCombined.js.map +1 -1
- package/lib/concentric.d.ts +1 -1
- package/lib/concentric.js +166 -176
- package/lib/concentric.js.map +1 -1
- package/lib/d3Force/forceInBox.js +75 -77
- package/lib/d3Force/forceInBox.js.map +1 -1
- package/lib/d3Force/index.d.ts +2 -2
- package/lib/d3Force/index.js +196 -222
- package/lib/d3Force/index.js.map +1 -1
- package/lib/dagre.d.ts +13 -24
- package/lib/dagre.js +57 -542
- package/lib/dagre.js.map +1 -1
- package/lib/exports.d.ts +17 -0
- package/lib/exports.js +17 -0
- package/lib/exports.js.map +1 -0
- package/lib/force/forceNBody.js +42 -45
- package/lib/force/forceNBody.js.map +1 -1
- package/lib/force/index.d.ts +1 -1
- package/lib/force/index.js +282 -309
- package/lib/force/index.js.map +1 -1
- package/lib/force/types.d.ts +5 -5
- package/lib/forceAtlas2/body.d.ts +1 -1
- package/lib/forceAtlas2/body.js +29 -31
- package/lib/forceAtlas2/body.js.map +1 -1
- package/lib/forceAtlas2/index.d.ts +1 -1
- package/lib/forceAtlas2/index.js +206 -218
- package/lib/forceAtlas2/index.js.map +1 -1
- package/lib/forceAtlas2/quad.d.ts +2 -2
- package/lib/forceAtlas2/quad.js +40 -42
- package/lib/forceAtlas2/quad.js.map +1 -1
- package/lib/forceAtlas2/quadTree.js +16 -17
- package/lib/forceAtlas2/quadTree.js.map +1 -1
- package/lib/fruchterman.d.ts +1 -1
- package/lib/fruchterman.js +185 -205
- package/lib/fruchterman.js.map +1 -1
- package/lib/grid.d.ts +1 -1
- package/lib/grid.js +197 -207
- package/lib/grid.js.map +1 -1
- package/lib/index.d.ts +1 -15
- package/lib/index.js +1 -15
- package/lib/index.js.map +1 -1
- package/lib/mds.d.ts +1 -1
- package/lib/mds.js +68 -78
- package/lib/mds.js.map +1 -1
- package/lib/radial/index.d.ts +1 -1
- package/lib/radial/index.js +177 -184
- package/lib/radial/index.js.map +1 -1
- package/lib/radial/mds.d.ts +1 -1
- package/lib/radial/mds.js +15 -13
- package/lib/radial/mds.js.map +1 -1
- package/lib/radial/radial-nonoverlap-force.d.ts +2 -2
- package/lib/radial/radial-nonoverlap-force.js +36 -37
- package/lib/radial/radial-nonoverlap-force.js.map +1 -1
- package/lib/random.d.ts +1 -1
- package/lib/random.js +53 -66
- package/lib/random.js.map +1 -1
- package/lib/registry.d.ts +2 -2
- package/lib/registry.js +3 -1
- package/lib/registry.js.map +1 -1
- package/lib/supervisor.d.ts +2 -3
- package/lib/supervisor.js +57 -56
- package/lib/supervisor.js.map +1 -1
- package/lib/types.d.ts +20 -75
- package/lib/types.js.map +1 -1
- package/lib/util/array.js +1 -1
- package/lib/util/array.js.map +1 -1
- package/lib/util/common.d.ts +1 -1
- package/lib/util/common.js +7 -8
- package/lib/util/common.js.map +1 -1
- package/lib/util/function.js +23 -25
- package/lib/util/function.js.map +1 -1
- package/lib/util/index.d.ts +0 -2
- package/lib/util/index.js +0 -2
- package/lib/util/index.js.map +1 -1
- package/lib/util/math.d.ts +1 -26
- package/lib/util/math.js +41 -149
- package/lib/util/math.js.map +1 -1
- package/lib/util/object.d.ts +1 -1
- package/lib/util/object.js +13 -13
- package/lib/util/object.js.map +1 -1
- package/lib/util/size.d.ts +3 -0
- package/lib/util/size.js +12 -0
- package/lib/util/size.js.map +1 -0
- package/lib/worker.js +30 -31
- package/lib/worker.js.map +1 -1
- package/package.json +9 -5
- package/dist/aa1bb0ccc06b11cf79c1.worker.js +0 -2
- package/dist/aa1bb0ccc06b11cf79c1.worker.js.map +0 -1
- package/lib/dagre/acyclic.js +0 -62
- package/lib/dagre/acyclic.js.map +0 -1
- package/lib/dagre/add-border-segments.js.map +0 -1
- package/lib/dagre/coordinate-system.js +0 -65
- package/lib/dagre/coordinate-system.js.map +0 -1
- package/lib/dagre/data/list.js.map +0 -1
- package/lib/dagre/greedy-fas.js +0 -147
- package/lib/dagre/greedy-fas.js.map +0 -1
- package/lib/dagre/layout.js.map +0 -1
- package/lib/dagre/nesting-graph.js.map +0 -1
- package/lib/dagre/normalize.js.map +0 -1
- package/lib/dagre/order/add-subgraph-constraints.js.map +0 -1
- package/lib/dagre/order/barycenter.js.map +0 -1
- package/lib/dagre/order/build-layer-graph.js.map +0 -1
- package/lib/dagre/order/cross-count.d.ts +0 -3
- package/lib/dagre/order/cross-count.js.map +0 -1
- package/lib/dagre/order/index.js.map +0 -1
- package/lib/dagre/order/init-data-order.js.map +0 -1
- package/lib/dagre/order/init-order.js +0 -50
- package/lib/dagre/order/init-order.js.map +0 -1
- package/lib/dagre/order/resolve-conflicts.js.map +0 -1
- package/lib/dagre/order/sort-subgraph.js.map +0 -1
- package/lib/dagre/order/sort.js.map +0 -1
- package/lib/dagre/parent-dummy-chains.js.map +0 -1
- package/lib/dagre/position/bk.js.map +0 -1
- package/lib/dagre/position/index.js +0 -54
- package/lib/dagre/position/index.js.map +0 -1
- package/lib/dagre/rank/feasible-tree.js.map +0 -1
- package/lib/dagre/rank/index.d.ts +0 -2
- package/lib/dagre/rank/index.js.map +0 -1
- package/lib/dagre/rank/network-simplex.js.map +0 -1
- package/lib/dagre/rank/util.js.map +0 -1
- package/lib/dagre/util.js.map +0 -1
- package/lib/util/gpu.d.ts +0 -45
- package/lib/util/gpu.js +0 -214
- package/lib/util/gpu.js.map +0 -1
- package/lib/util/number.d.ts +0 -1
- package/lib/util/number.js +0 -5
- package/lib/util/number.js.map +0 -1
- package/lib/util/string.d.ts +0 -1
- package/lib/util/string.js +0 -15
- package/lib/util/string.js.map +0 -1
- /package/lib/{dagre → antv-dagre}/add-border-segments.d.ts +0 -0
- /package/lib/{dagre → antv-dagre}/nesting-graph.d.ts +0 -0
- /package/lib/{dagre → antv-dagre}/order/add-subgraph-constraints.d.ts +0 -0
- /package/lib/{dagre → antv-dagre}/order/build-layer-graph.d.ts +0 -0
- /package/lib/{dagre → antv-dagre}/order/init-data-order.d.ts +0 -0
- /package/lib/{dagre → antv-dagre}/order/init-order.d.ts +0 -0
- /package/lib/{dagre → antv-dagre}/order/sort-subgraph.d.ts +0 -0
- /package/lib/{dagre → antv-dagre}/parent-dummy-chains.d.ts +0 -0
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var DEFAULTS_LAYOUT_OPTIONS = {
|
|
1
|
+
const SPEED_DIVISOR = 800;
|
|
2
|
+
const DEFAULTS_LAYOUT_OPTIONS = {
|
|
4
3
|
iterations: 10,
|
|
5
4
|
height: 10,
|
|
6
5
|
width: 10,
|
|
7
6
|
speed: 100,
|
|
8
7
|
gravity: 10,
|
|
9
|
-
k: 5
|
|
8
|
+
k: 5,
|
|
10
9
|
};
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
for (
|
|
18
|
-
positions.forEach(
|
|
10
|
+
export const radialNonoverlapForce = (graph, options) => {
|
|
11
|
+
const mergedOptions = Object.assign(Object.assign({}, DEFAULTS_LAYOUT_OPTIONS), options);
|
|
12
|
+
const { positions, iterations, width, k, speed = 100, strictRadial, focusIdx, radii = [], nodeSizeFunc, } = mergedOptions;
|
|
13
|
+
const nodes = graph.getAllNodes();
|
|
14
|
+
const disp = [];
|
|
15
|
+
const maxDisplace = width / 10;
|
|
16
|
+
for (let i = 0; i < iterations; i++) {
|
|
17
|
+
positions.forEach((_, k) => {
|
|
19
18
|
disp[k] = { x: 0, y: 0 };
|
|
20
19
|
});
|
|
21
20
|
// 给重叠的节点增加斥力
|
|
@@ -24,10 +23,10 @@ export var radialNonoverlapForce = function (graph, options) {
|
|
|
24
23
|
}
|
|
25
24
|
return positions;
|
|
26
25
|
};
|
|
27
|
-
|
|
28
|
-
positions.forEach(
|
|
26
|
+
const getRepulsion = (nodes, positions, disp, k, radii, nodeSizeFunc) => {
|
|
27
|
+
positions.forEach((v, i) => {
|
|
29
28
|
disp[i] = { x: 0, y: 0 };
|
|
30
|
-
positions.forEach(
|
|
29
|
+
positions.forEach((u, j) => {
|
|
31
30
|
if (i === j) {
|
|
32
31
|
return;
|
|
33
32
|
}
|
|
@@ -35,59 +34,59 @@ var getRepulsion = function (nodes, positions, disp, k, radii, nodeSizeFunc) {
|
|
|
35
34
|
if (radii[i] !== radii[j]) {
|
|
36
35
|
return;
|
|
37
36
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
let vecx = v.x - u.x;
|
|
38
|
+
let vecy = v.y - u.y;
|
|
39
|
+
let vecLength = Math.sqrt(vecx * vecx + vecy * vecy);
|
|
41
40
|
if (vecLength === 0) {
|
|
42
41
|
vecLength = 1;
|
|
43
|
-
|
|
42
|
+
const sign = i > j ? 1 : -1;
|
|
44
43
|
vecx = 0.01 * sign;
|
|
45
44
|
vecy = 0.01 * sign;
|
|
46
45
|
}
|
|
47
46
|
// these two nodes overlap
|
|
48
47
|
if (vecLength < nodeSizeFunc(nodes[i]) / 2 + nodeSizeFunc(nodes[j]) / 2) {
|
|
49
|
-
|
|
48
|
+
const common = (k * k) / vecLength;
|
|
50
49
|
disp[i].x += (vecx / vecLength) * common;
|
|
51
50
|
disp[i].y += (vecy / vecLength) * common;
|
|
52
51
|
}
|
|
53
52
|
});
|
|
54
53
|
});
|
|
55
54
|
};
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
const updatePositions = (positions, disp, speed, strictRadial, focusIdx, maxDisplace, width, radii) => {
|
|
56
|
+
const maxDisp = maxDisplace || width / 10;
|
|
58
57
|
if (strictRadial) {
|
|
59
|
-
disp.forEach(
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
58
|
+
disp.forEach((di, i) => {
|
|
59
|
+
const vx = positions[i].x - positions[focusIdx].x;
|
|
60
|
+
const vy = positions[i].y - positions[focusIdx].y;
|
|
61
|
+
const vLength = Math.sqrt(vx * vx + vy * vy);
|
|
62
|
+
let vpx = vy / vLength;
|
|
63
|
+
let vpy = -vx / vLength;
|
|
64
|
+
const diLength = Math.sqrt(di.x * di.x + di.y * di.y);
|
|
65
|
+
let alpha = Math.acos((vpx * di.x + vpy * di.y) / diLength);
|
|
67
66
|
if (alpha > Math.PI / 2) {
|
|
68
67
|
alpha -= Math.PI / 2;
|
|
69
68
|
vpx *= -1;
|
|
70
69
|
vpy *= -1;
|
|
71
70
|
}
|
|
72
|
-
|
|
71
|
+
const tdispLength = Math.cos(alpha) * diLength;
|
|
73
72
|
di.x = vpx * tdispLength;
|
|
74
73
|
di.y = vpy * tdispLength;
|
|
75
74
|
});
|
|
76
75
|
}
|
|
77
76
|
// move
|
|
78
|
-
positions.forEach(
|
|
77
|
+
positions.forEach((n, i) => {
|
|
79
78
|
if (i === focusIdx) {
|
|
80
79
|
return;
|
|
81
80
|
}
|
|
82
|
-
|
|
81
|
+
const distLength = Math.sqrt(disp[i].x * disp[i].x + disp[i].y * disp[i].y);
|
|
83
82
|
if (distLength > 0 && i !== focusIdx) {
|
|
84
|
-
|
|
83
|
+
const limitedDist = Math.min(maxDisp * (speed / SPEED_DIVISOR), distLength);
|
|
85
84
|
n.x += (disp[i].x / distLength) * limitedDist;
|
|
86
85
|
n.y += (disp[i].y / distLength) * limitedDist;
|
|
87
86
|
if (strictRadial) {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
87
|
+
let vx = n.x - positions[focusIdx].x;
|
|
88
|
+
let vy = n.y - positions[focusIdx].y;
|
|
89
|
+
const nfDis = Math.sqrt(vx * vx + vy * vy);
|
|
91
90
|
vx = (vx / nfDis) * radii[i];
|
|
92
91
|
vy = (vy / nfDis) * radii[i];
|
|
93
92
|
n.x = positions[focusIdx].x + vx;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radial-nonoverlap-force.js","sourceRoot":"","sources":["../../src/radial/radial-nonoverlap-force.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"radial-nonoverlap-force.js","sourceRoot":"","sources":["../../src/radial/radial-nonoverlap-force.ts"],"names":[],"mappings":"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"}
|
package/lib/random.d.ts
CHANGED
package/lib/random.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
const DEFAULTS_LAYOUT_OPTIONS = {
|
|
3
3
|
center: [0, 0],
|
|
4
4
|
width: 300,
|
|
5
5
|
height: 300,
|
|
@@ -19,80 +19,67 @@ var DEFAULTS_LAYOUT_OPTIONS = {
|
|
|
19
19
|
* // If you want to assign the positions directly to the nodes, use assign method.
|
|
20
20
|
* await layout.assign(graph, { center: [100, 100] });
|
|
21
21
|
*/
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
if (options === void 0) { options = {}; }
|
|
22
|
+
export class RandomLayout {
|
|
23
|
+
constructor(options = {}) {
|
|
25
24
|
this.options = options;
|
|
26
|
-
this.id =
|
|
27
|
-
this.options =
|
|
25
|
+
this.id = 'random';
|
|
26
|
+
this.options = Object.assign(Object.assign({}, DEFAULTS_LAYOUT_OPTIONS), options);
|
|
28
27
|
}
|
|
29
28
|
/**
|
|
30
29
|
* Return the positions of nodes and edges(if needed).
|
|
31
30
|
*/
|
|
32
|
-
|
|
33
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
34
|
-
return
|
|
35
|
-
return [2 /*return*/, this.genericRandomLayout(false, graph, options)];
|
|
36
|
-
});
|
|
31
|
+
execute(graph, options) {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
return this.genericRandomLayout(false, graph, options);
|
|
37
34
|
});
|
|
38
|
-
}
|
|
35
|
+
}
|
|
39
36
|
/**
|
|
40
37
|
* To directly assign the positions to the nodes.
|
|
41
38
|
*/
|
|
42
|
-
|
|
43
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
44
|
-
|
|
45
|
-
this.genericRandomLayout(true, graph, options);
|
|
46
|
-
return [2 /*return*/];
|
|
47
|
-
});
|
|
39
|
+
assign(graph, options) {
|
|
40
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
this.genericRandomLayout(true, graph, options);
|
|
48
42
|
});
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
y: (Math.random() - 0.5) * layoutScale * height + center[1],
|
|
75
|
-
},
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
if (assign) {
|
|
80
|
-
layoutNodes.forEach(function (node) {
|
|
81
|
-
return graph.mergeNodeData(node.id, {
|
|
82
|
-
x: node.data.x,
|
|
83
|
-
y: node.data.y,
|
|
84
|
-
});
|
|
43
|
+
}
|
|
44
|
+
genericRandomLayout(assign, graph, options) {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
const mergedOptions = Object.assign(Object.assign({}, this.options), options);
|
|
47
|
+
const { center: propsCenter, width: propsWidth, height: propsHeight, } = mergedOptions;
|
|
48
|
+
const nodes = graph.getAllNodes();
|
|
49
|
+
const layoutScale = 0.9;
|
|
50
|
+
const width = !propsWidth && typeof window !== 'undefined'
|
|
51
|
+
? window.innerWidth
|
|
52
|
+
: propsWidth;
|
|
53
|
+
const height = !propsHeight && typeof window !== 'undefined'
|
|
54
|
+
? window.innerHeight
|
|
55
|
+
: propsHeight;
|
|
56
|
+
const center = !propsCenter
|
|
57
|
+
? [width / 2, height / 2]
|
|
58
|
+
: propsCenter;
|
|
59
|
+
const layoutNodes = [];
|
|
60
|
+
if (nodes) {
|
|
61
|
+
nodes.forEach((node) => {
|
|
62
|
+
layoutNodes.push({
|
|
63
|
+
id: node.id,
|
|
64
|
+
data: {
|
|
65
|
+
x: (Math.random() - 0.5) * layoutScale * width + center[0],
|
|
66
|
+
y: (Math.random() - 0.5) * layoutScale * height + center[1],
|
|
67
|
+
},
|
|
85
68
|
});
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
if (assign) {
|
|
72
|
+
layoutNodes.forEach((node) => graph.mergeNodeData(node.id, {
|
|
73
|
+
x: node.data.x,
|
|
74
|
+
y: node.data.y,
|
|
75
|
+
}));
|
|
76
|
+
}
|
|
77
|
+
const result = {
|
|
78
|
+
nodes: layoutNodes,
|
|
79
|
+
edges: graph.getAllEdges(),
|
|
80
|
+
};
|
|
81
|
+
return result;
|
|
93
82
|
});
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
}());
|
|
97
|
-
export { RandomLayout };
|
|
83
|
+
}
|
|
84
|
+
}
|
|
98
85
|
//# sourceMappingURL=random.js.map
|
package/lib/random.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"random.js","sourceRoot":"","sources":["../src/random.ts"],"names":[],"mappings":";AASA,
|
|
1
|
+
{"version":3,"file":"random.js","sourceRoot":"","sources":["../src/random.ts"],"names":[],"mappings":";AASA,MAAM,uBAAuB,GAAiC;IAC5D,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACd,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,GAAG;CACZ,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,YAAY;IAGvB,YAAmB,UAA+B,EAAyB;QAAxD,YAAO,GAAP,OAAO,CAAiD;QAF3E,OAAE,GAAG,QAAQ,CAAC;QAGZ,IAAI,CAAC,OAAO,mCACP,uBAAuB,GACvB,OAAO,CACX,CAAC;IACJ,CAAC;IAED;;OAEG;IACG,OAAO,CAAC,KAAY,EAAE,OAA6B;;YACvD,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACzD,CAAC;KAAA;IACD;;OAEG;IACG,MAAM,CAAC,KAAY,EAAE,OAA6B;;YACtD,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;KAAA;IAYa,mBAAmB,CAC/B,MAAe,EACf,KAAY,EACZ,OAA6B;;YAE7B,MAAM,aAAa,mCAAQ,IAAI,CAAC,OAAO,GAAK,OAAO,CAAE,CAAC;YACtD,MAAM,EACJ,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,WAAW,GACpB,GAAG,aAAa,CAAC;YAElB,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,WAAW,GAAG,GAAG,CAAC;YACxB,MAAM,KAAK,GACT,CAAC,UAAU,IAAI,OAAO,MAAM,KAAK,WAAW;gBAC1C,CAAC,CAAC,MAAM,CAAC,UAAU;gBACnB,CAAC,CAAE,UAAqB,CAAC;YAC7B,MAAM,MAAM,GACV,CAAC,WAAW,IAAI,OAAO,MAAM,KAAK,WAAW;gBAC3C,CAAC,CAAC,MAAM,CAAC,WAAW;gBACpB,CAAC,CAAE,WAAsB,CAAC;YAC9B,MAAM,MAAM,GAAG,CAAC,WAAW;gBACzB,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;gBACzB,CAAC,CAAE,WAA0B,CAAC;YAEhC,MAAM,WAAW,GAAc,EAAE,CAAC;YAClC,IAAI,KAAK,EAAE;gBACT,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBACrB,WAAW,CAAC,IAAI,CAAC;wBACf,EAAE,EAAE,IAAI,CAAC,EAAE;wBACX,IAAI,EAAE;4BACJ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,WAAW,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;4BAC1D,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC;yBAC5D;qBACF,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;aACJ;YAED,IAAI,MAAM,EAAE;gBACV,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAC3B,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE;oBAC3B,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;oBACd,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;iBACf,CAAC,CACH,CAAC;aACH;YAED,MAAM,MAAM,GAAG;gBACb,KAAK,EAAE,WAAW;gBAClB,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE;aAC3B,CAAC;YAEF,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;CACF"}
|
package/lib/registry.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
export declare const registry: Record<string,
|
|
1
|
+
import type { Layout } from './types';
|
|
2
|
+
export declare const registry: Record<string, new (...args: any) => Layout<any>>;
|
package/lib/registry.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { AntVDagreLayout } from './antv-dagre';
|
|
1
2
|
import { CircularLayout } from './circular';
|
|
2
3
|
import { ComboCombinedLayout } from './comboCombined';
|
|
3
4
|
import { ConcentricLayout } from './concentric';
|
|
@@ -10,7 +11,7 @@ import { GridLayout } from './grid';
|
|
|
10
11
|
import { MDSLayout } from './mds';
|
|
11
12
|
import { RadialLayout } from './radial';
|
|
12
13
|
import { RandomLayout } from './random';
|
|
13
|
-
export
|
|
14
|
+
export const registry = {
|
|
14
15
|
circular: CircularLayout,
|
|
15
16
|
concentric: ConcentricLayout,
|
|
16
17
|
mds: MDSLayout,
|
|
@@ -22,6 +23,7 @@ export var registry = {
|
|
|
22
23
|
fruchterman: FruchtermanLayout,
|
|
23
24
|
forceAtlas2: ForceAtlas2Layout,
|
|
24
25
|
dagre: DagreLayout,
|
|
26
|
+
antvDagre: AntVDagreLayout,
|
|
25
27
|
comboCombined: ComboCombinedLayout,
|
|
26
28
|
};
|
|
27
29
|
//# sourceMappingURL=registry.js.map
|
package/lib/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,MAAM,CAAC,MAAM,QAAQ,GAAsD;IACzE,QAAQ,EAAE,cAAc;IACxB,UAAU,EAAE,gBAAgB;IAC5B,GAAG,EAAE,SAAS;IACd,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,aAAa;IACtB,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,iBAAiB;IAC9B,KAAK,EAAE,WAAW;IAClB,SAAS,EAAE,eAAe;IAC1B,aAAa,EAAE,mBAAmB;CACnC,CAAC"}
|
package/lib/supervisor.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import EventEmitter from '@antv/event-emitter';
|
|
2
|
-
import { Graph, Node
|
|
2
|
+
import { Edge, Graph, Node } from '@antv/graphlib';
|
|
3
3
|
import type { Layout, LayoutSupervisor } from './types';
|
|
4
4
|
/**
|
|
5
5
|
* The payload transferred from main thread to the worker.
|
|
@@ -13,7 +13,7 @@ export interface Payload {
|
|
|
13
13
|
nodes: Node<any>[];
|
|
14
14
|
edges: Edge<any>[];
|
|
15
15
|
}
|
|
16
|
-
interface SupervisorOptions {
|
|
16
|
+
export interface SupervisorOptions {
|
|
17
17
|
/**
|
|
18
18
|
* Iterations run in algorithm such as d3force, will be passed in `tick()` later.
|
|
19
19
|
*/
|
|
@@ -48,4 +48,3 @@ export declare class Supervisor extends EventEmitter implements LayoutSupervisor
|
|
|
48
48
|
kill(): void;
|
|
49
49
|
isRunning(): boolean;
|
|
50
50
|
}
|
|
51
|
-
export {};
|
package/lib/supervisor.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { __awaiter,
|
|
2
|
-
// @ts-ignore
|
|
1
|
+
import { __awaiter, __rest } from "tslib";
|
|
3
2
|
import EventEmitter from '@antv/event-emitter';
|
|
4
|
-
import * as Comlink from 'comlink';
|
|
5
3
|
import { isFunction } from '@antv/util';
|
|
4
|
+
import * as Comlink from 'comlink';
|
|
6
5
|
/**
|
|
7
6
|
* @example
|
|
8
7
|
* const graph = new Graph();
|
|
@@ -13,17 +12,15 @@ import { isFunction } from '@antv/util';
|
|
|
13
12
|
* supervisor.stop();
|
|
14
13
|
* supervisor.kill();
|
|
15
14
|
*/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
_this.spawnWorker();
|
|
24
|
-
return _this;
|
|
15
|
+
export class Supervisor extends EventEmitter {
|
|
16
|
+
constructor(graph, layout, options) {
|
|
17
|
+
super();
|
|
18
|
+
this.graph = graph;
|
|
19
|
+
this.layout = layout;
|
|
20
|
+
this.options = options;
|
|
21
|
+
this.spawnWorker();
|
|
25
22
|
}
|
|
26
|
-
|
|
23
|
+
spawnWorker() {
|
|
27
24
|
this.proxy = Comlink.wrap(
|
|
28
25
|
// @ts-ignore
|
|
29
26
|
new Worker(new URL('./worker.js', import.meta.url), { type: 'module' }));
|
|
@@ -31,60 +28,64 @@ var Supervisor = /** @class */ (function (_super) {
|
|
|
31
28
|
this.running = false;
|
|
32
29
|
this.execute();
|
|
33
30
|
}
|
|
34
|
-
}
|
|
35
|
-
|
|
31
|
+
}
|
|
32
|
+
execute() {
|
|
36
33
|
var _a;
|
|
37
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
Object.keys(rest).forEach(function (name) {
|
|
48
|
-
if (!isFunction(rest[name]))
|
|
49
|
-
noFunctionOptions[name] = rest[name];
|
|
50
|
-
});
|
|
51
|
-
payload = {
|
|
52
|
-
layout: {
|
|
53
|
-
id: this.layout.id,
|
|
54
|
-
options: noFunctionOptions,
|
|
55
|
-
iterations: (_a = this.options) === null || _a === void 0 ? void 0 : _a.iterations,
|
|
56
|
-
},
|
|
57
|
-
nodes: this.graph.getAllNodes(),
|
|
58
|
-
edges: this.graph.getAllEdges(),
|
|
59
|
-
};
|
|
60
|
-
arraybufferWithNodesEdges = new Float32Array([0]);
|
|
61
|
-
return [4 /*yield*/, this.proxy.calculateLayout(payload, [
|
|
62
|
-
arraybufferWithNodesEdges,
|
|
63
|
-
])];
|
|
64
|
-
case 1:
|
|
65
|
-
_c = __read.apply(void 0, [_d.sent(), 1]), positions = _c[0];
|
|
66
|
-
return [2 /*return*/, positions];
|
|
67
|
-
}
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
if (this.running)
|
|
36
|
+
return this;
|
|
37
|
+
this.running = true;
|
|
38
|
+
// Payload should include nodes & edges(if needed).
|
|
39
|
+
const _b = this.layout.options, { onTick } = _b, rest = __rest(_b, ["onTick"]);
|
|
40
|
+
const noFunctionOptions = {};
|
|
41
|
+
Object.keys(rest).forEach((name) => {
|
|
42
|
+
if (!isFunction(rest[name]))
|
|
43
|
+
noFunctionOptions[name] = rest[name];
|
|
68
44
|
});
|
|
45
|
+
const payload = {
|
|
46
|
+
layout: {
|
|
47
|
+
id: this.layout.id,
|
|
48
|
+
options: noFunctionOptions,
|
|
49
|
+
iterations: (_a = this.options) === null || _a === void 0 ? void 0 : _a.iterations,
|
|
50
|
+
},
|
|
51
|
+
nodes: this.graph.getAllNodes(),
|
|
52
|
+
edges: this.graph.getAllEdges(),
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* TODO: Convert graph object to linear memory(e.g. csr, adjacency matrix), then transfer the ownership to worker.
|
|
56
|
+
* @example
|
|
57
|
+
* const arraybufferWithNodesEdges = graphToByteArrays(this.graph); // Float32Array
|
|
58
|
+
*/
|
|
59
|
+
const arraybufferWithNodesEdges = new Float32Array([0]);
|
|
60
|
+
// TODO: Support transferables.
|
|
61
|
+
// @see https://www.npmjs.com/package/@naoak/workerize-transferable
|
|
62
|
+
// setupTransferableMethodsOnMain(this.worker, {
|
|
63
|
+
// calculateLayout: {
|
|
64
|
+
// // pick a transferable object from the method parameters
|
|
65
|
+
// pickTransferablesFromParams: (params) => [params[1].buffer],
|
|
66
|
+
// },
|
|
67
|
+
// });
|
|
68
|
+
const [positions] = yield this.proxy.calculateLayout(payload, [
|
|
69
|
+
arraybufferWithNodesEdges,
|
|
70
|
+
]);
|
|
71
|
+
return positions;
|
|
69
72
|
});
|
|
70
|
-
}
|
|
71
|
-
|
|
73
|
+
}
|
|
74
|
+
stop() {
|
|
72
75
|
this.running = false;
|
|
73
76
|
// trigger `layout.stop()` if needed
|
|
74
77
|
this.proxy.stopLayout();
|
|
75
78
|
return this;
|
|
76
|
-
}
|
|
77
|
-
|
|
79
|
+
}
|
|
80
|
+
kill() {
|
|
78
81
|
// allow the GC to collect wrapper port
|
|
79
82
|
// @see https://github.com/GoogleChromeLabs/comlink#comlinkreleaseproxy
|
|
80
83
|
this.proxy[Comlink.releaseProxy]();
|
|
81
84
|
// TODO: unbind listeners on graph.
|
|
82
85
|
// TODO: release attached memory
|
|
83
|
-
}
|
|
84
|
-
|
|
86
|
+
}
|
|
87
|
+
isRunning() {
|
|
85
88
|
return this.running;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
}(EventEmitter));
|
|
89
|
-
export { Supervisor };
|
|
89
|
+
}
|
|
90
|
+
}
|
|
90
91
|
//# sourceMappingURL=supervisor.js.map
|
package/lib/supervisor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../src/supervisor.ts"],"names":[],"mappings":";AAAA,
|
|
1
|
+
{"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../src/supervisor.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAuBnC;;;;;;;;;GASG;AACH,MAAM,OAAO,UAAW,SAAQ,YAAY;IAW1C,YACU,KAAsB,EACtB,MAAmB,EACnB,OAAoC;QAE5C,KAAK,EAAE,CAAC;QAJA,UAAK,GAAL,KAAK,CAAiB;QACtB,WAAM,GAAN,MAAM,CAAa;QACnB,YAAO,GAAP,OAAO,CAA6B;QAI5C,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,WAAW;QACT,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI;QACvB,aAAa;QACb,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CACxE,CAAC;QAEF,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;IACH,CAAC;IAEK,OAAO;;;YACX,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAE9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEpB,mDAAmD;YACnD,MAAM,KAAsB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAzC,EAAE,MAAM,OAAiC,EAA5B,IAAI,cAAjB,UAAmB,CAAsB,CAAC;YAChD,MAAM,iBAAiB,GAAQ,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAAE,iBAAiB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;YACH,MAAM,OAAO,GAAG;gBACd,MAAM,EAAE;oBACN,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;oBAClB,OAAO,EAAE,iBAAiB;oBAC1B,UAAU,EAAE,MAAA,IAAI,CAAC,OAAO,0CAAE,UAAU;iBACrC;gBACD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;gBAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;aAChC,CAAC;YAEF;;;;eAIG;YACH,MAAM,yBAAyB,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAExD,+BAA+B;YAC/B,mEAAmE;YACnE,gDAAgD;YAChD,uBAAuB;YACvB,+DAA+D;YAC/D,mEAAmE;YACnE,OAAO;YACP,MAAM;YAEN,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE;gBAC5D,yBAAyB;aAC1B,CAAC,CAAC;YAEH,OAAO,SAAS,CAAC;;KAClB;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,oCAAoC;QACpC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QAExB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI;QACF,uCAAuC;QACvC,uEAAuE;QACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAEnC,mCAAmC;QAEnC,gCAAgC;IAClC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
|