@antv/layout 1.2.8 → 1.2.10
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/5fc550bbb6f708833d84.worker.js +2 -0
- package/dist/5fc550bbb6f708833d84.worker.js.map +1 -0
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
- package/dist/5cb5472f0e3cc36231e3.worker.js +0 -2
- package/dist/5cb5472f0e3cc36231e3.worker.js.map +0 -1
- package/lib/bundle-entry.js +0 -19
- package/lib/bundle-entry.js.map +0 -1
- package/lib/bundle-supervisor.js +0 -94
- package/lib/bundle-supervisor.js.map +0 -1
- package/lib/bundle-worker.js +0 -53
- package/lib/bundle-worker.js.map +0 -1
- package/lib/circular.js +0 -258
- package/lib/circular.js.map +0 -1
- package/lib/comboCombined.js +0 -441
- package/lib/comboCombined.js.map +0 -1
- package/lib/concentric.js +0 -229
- package/lib/concentric.js.map +0 -1
- package/lib/d3Force/forceInBox.js +0 -331
- package/lib/d3Force/forceInBox.js.map +0 -1
- package/lib/d3Force/index.js +0 -339
- package/lib/d3Force/index.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 +0 -37
- 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 +0 -50
- 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 +0 -470
- package/lib/dagre/layout.js.map +0 -1
- package/lib/dagre/nesting-graph.js +0 -153
- package/lib/dagre/nesting-graph.js.map +0 -1
- package/lib/dagre/normalize.js +0 -98
- package/lib/dagre/normalize.js.map +0 -1
- package/lib/dagre/order/add-subgraph-constraints.js +0 -45
- package/lib/dagre/order/add-subgraph-constraints.js.map +0 -1
- package/lib/dagre/order/barycenter.js +0 -23
- package/lib/dagre/order/barycenter.js.map +0 -1
- package/lib/dagre/order/build-layer-graph.js +0 -96
- package/lib/dagre/order/build-layer-graph.js.map +0 -1
- package/lib/dagre/order/cross-count.js +0 -63
- package/lib/dagre/order/cross-count.js.map +0 -1
- package/lib/dagre/order/index.js +0 -91
- package/lib/dagre/order/index.js.map +0 -1
- package/lib/dagre/order/init-data-order.js +0 -28
- 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 +0 -121
- package/lib/dagre/order/resolve-conflicts.js.map +0 -1
- package/lib/dagre/order/sort-subgraph.js +0 -84
- package/lib/dagre/order/sort-subgraph.js.map +0 -1
- package/lib/dagre/order/sort.js +0 -74
- package/lib/dagre/order/sort.js.map +0 -1
- package/lib/dagre/parent-dummy-chains.js +0 -80
- package/lib/dagre/parent-dummy-chains.js.map +0 -1
- package/lib/dagre/position/bk.js +0 -398
- 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 +0 -164
- package/lib/dagre/rank/feasible-tree.js.map +0 -1
- package/lib/dagre/rank/index.js +0 -48
- package/lib/dagre/rank/index.js.map +0 -1
- package/lib/dagre/rank/network-simplex.js +0 -232
- package/lib/dagre/rank/network-simplex.js.map +0 -1
- package/lib/dagre/rank/util.js +0 -138
- package/lib/dagre/rank/util.js.map +0 -1
- package/lib/dagre/util.js +0 -289
- package/lib/dagre/util.js.map +0 -1
- package/lib/dagre.js +0 -545
- package/lib/dagre.js.map +0 -1
- package/lib/force/forceNBody.js +0 -123
- package/lib/force/forceNBody.js.map +0 -1
- package/lib/force/index.js +0 -808
- package/lib/force/index.js.map +0 -1
- package/lib/force/types.js +0 -2
- package/lib/force/types.js.map +0 -1
- package/lib/forceAtlas2/body.js +0 -91
- package/lib/forceAtlas2/body.js.map +0 -1
- package/lib/forceAtlas2/index.js +0 -562
- package/lib/forceAtlas2/index.js.map +0 -1
- package/lib/forceAtlas2/quad.js +0 -98
- package/lib/forceAtlas2/quad.js.map +0 -1
- package/lib/forceAtlas2/quadTree.js +0 -105
- package/lib/forceAtlas2/quadTree.js.map +0 -1
- package/lib/fruchterman.js +0 -376
- package/lib/fruchterman.js.map +0 -1
- package/lib/grid.js +0 -308
- package/lib/grid.js.map +0 -1
- package/lib/index.js +0 -17
- package/lib/index.js.map +0 -1
- package/lib/mds.js +0 -137
- package/lib/mds.js.map +0 -1
- package/lib/radial/index.js +0 -355
- package/lib/radial/index.js.map +0 -1
- package/lib/radial/mds.js +0 -29
- package/lib/radial/mds.js.map +0 -1
- package/lib/radial/radial-nonoverlap-force.js +0 -100
- package/lib/radial/radial-nonoverlap-force.js.map +0 -1
- package/lib/random.js +0 -98
- package/lib/random.js.map +0 -1
- package/lib/registry.js +0 -27
- package/lib/registry.js.map +0 -1
- package/lib/supervisor.js +0 -90
- package/lib/supervisor.js.map +0 -1
- package/lib/types.js +0 -4
- package/lib/types.js.map +0 -1
- package/lib/util/array.js +0 -2
- package/lib/util/array.js.map +0 -1
- package/lib/util/common.d.ts +0 -12
- package/lib/util/common.js +0 -32
- package/lib/util/common.js.map +0 -1
- package/lib/util/function.js +0 -127
- package/lib/util/function.js.map +0 -1
- package/lib/util/gpu.js +0 -214
- package/lib/util/gpu.js.map +0 -1
- package/lib/util/index.js +0 -7
- package/lib/util/index.js.map +0 -1
- package/lib/util/math.js +0 -257
- package/lib/util/math.js.map +0 -1
- package/lib/util/number.js +0 -5
- package/lib/util/number.js.map +0 -1
- package/lib/util/object.js +0 -42
- package/lib/util/object.js.map +0 -1
- package/lib/util/string.js +0 -15
- package/lib/util/string.js.map +0 -1
- package/lib/worker.d.ts +0 -1
- package/lib/worker.js +0 -45
- package/lib/worker.js.map +0 -1
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
import { __read, __spreadArray } from "tslib";
|
|
2
|
-
import { addBorderNode, addDummyNode } from './util';
|
|
3
|
-
/*
|
|
4
|
-
* A nesting graph creates dummy nodes for the tops and bottoms of subgraphs,
|
|
5
|
-
* adds appropriate edges to ensure that all cluster nodes are placed between
|
|
6
|
-
* these boundries, and ensures that the graph is connected.
|
|
7
|
-
*
|
|
8
|
-
* In addition we ensure, through the use of the minlen property, that nodes
|
|
9
|
-
* and subgraph border nodes to not end up on the same rank.
|
|
10
|
-
*
|
|
11
|
-
* Preconditions:
|
|
12
|
-
*
|
|
13
|
-
* 1. Input graph is a DAG
|
|
14
|
-
* 2. Nodes in the input graph has a minlen attribute
|
|
15
|
-
*
|
|
16
|
-
* Postconditions:
|
|
17
|
-
*
|
|
18
|
-
* 1. Input graph is connected.
|
|
19
|
-
* 2. Dummy nodes are added for the tops and bottoms of subgraphs.
|
|
20
|
-
* 3. The minlen attribute for nodes is adjusted to ensure nodes do not
|
|
21
|
-
* get placed on the same rank as subgraph border nodes.
|
|
22
|
-
*
|
|
23
|
-
* The nesting graph idea comes from Sander, "Layout of Compound Directed
|
|
24
|
-
* Graphs."
|
|
25
|
-
*/
|
|
26
|
-
var run = function (g) {
|
|
27
|
-
var root = addDummyNode(g, 'root', {}, '_root');
|
|
28
|
-
var depths = treeDepths(g);
|
|
29
|
-
var maxDepth = Math.max.apply(Math, __spreadArray([], __read(Object.values(depths))));
|
|
30
|
-
if (Math.abs(maxDepth) === Infinity) {
|
|
31
|
-
maxDepth = 1;
|
|
32
|
-
}
|
|
33
|
-
var height = maxDepth - 1; // Note: depths is an Object not an array
|
|
34
|
-
var nodeSep = 2 * height + 1;
|
|
35
|
-
// g.graph().nestingRoot = root;
|
|
36
|
-
// Multiply minlen by nodeSep to align nodes on non-border ranks.
|
|
37
|
-
g.getAllEdges().forEach(function (e) {
|
|
38
|
-
e.data.minlen *= nodeSep;
|
|
39
|
-
});
|
|
40
|
-
// Calculate a weight that is sufficient to keep subgraphs vertically compact
|
|
41
|
-
var weight = sumWeights(g) + 1;
|
|
42
|
-
// Create border nodes and link them up
|
|
43
|
-
// g.children()?.forEach((child) => {
|
|
44
|
-
// dfs(g, root, nodeSep, weight, height, depths, child);
|
|
45
|
-
// });
|
|
46
|
-
g.getRoots().forEach(function (child) {
|
|
47
|
-
dfs(g, root, nodeSep, weight, height, depths, child.id);
|
|
48
|
-
});
|
|
49
|
-
// Save the multiplier for node layers for later removal of empty border
|
|
50
|
-
// layers.
|
|
51
|
-
// g.graph().nodeRankFactor = nodeSep;
|
|
52
|
-
return {
|
|
53
|
-
nestingRoot: root,
|
|
54
|
-
nodeRankFactor: nodeSep,
|
|
55
|
-
};
|
|
56
|
-
};
|
|
57
|
-
var dfs = function (g, root, nodeSep, weight, height, depths, v) {
|
|
58
|
-
var children = g.getChildren(v);
|
|
59
|
-
if (!(children === null || children === void 0 ? void 0 : children.length)) {
|
|
60
|
-
if (v !== root) {
|
|
61
|
-
// g.setEdge(root, v, { weight: 0, minlen: nodeSep });
|
|
62
|
-
g.addEdge({
|
|
63
|
-
id: "e" + Math.random(),
|
|
64
|
-
source: root,
|
|
65
|
-
target: v,
|
|
66
|
-
data: { weight: 0, minlen: nodeSep },
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
var top = addBorderNode(g, '_bt');
|
|
72
|
-
var bottom = addBorderNode(g, '_bb');
|
|
73
|
-
var label = g.getNode(v);
|
|
74
|
-
g.setParent(top, v);
|
|
75
|
-
label.data.borderTop = top;
|
|
76
|
-
g.setParent(bottom, v);
|
|
77
|
-
label.data.borderBottom = bottom;
|
|
78
|
-
children === null || children === void 0 ? void 0 : children.forEach(function (childNode) {
|
|
79
|
-
dfs(g, root, nodeSep, weight, height, depths, childNode.id);
|
|
80
|
-
var childTop = childNode.data.borderTop
|
|
81
|
-
? childNode.data.borderTop
|
|
82
|
-
: childNode.id;
|
|
83
|
-
var childBottom = childNode.data.borderBottom
|
|
84
|
-
? childNode.data.borderBottom
|
|
85
|
-
: childNode.id;
|
|
86
|
-
var thisWeight = childNode.data.borderTop ? weight : 2 * weight;
|
|
87
|
-
var minlen = childTop !== childBottom ? 1 : height - depths[v] + 1;
|
|
88
|
-
g.addEdge({
|
|
89
|
-
id: "e" + Math.random(),
|
|
90
|
-
source: top,
|
|
91
|
-
target: childTop,
|
|
92
|
-
data: {
|
|
93
|
-
minlen: minlen,
|
|
94
|
-
weight: thisWeight,
|
|
95
|
-
nestingEdge: true,
|
|
96
|
-
},
|
|
97
|
-
});
|
|
98
|
-
g.addEdge({
|
|
99
|
-
id: "e" + Math.random(),
|
|
100
|
-
source: childBottom,
|
|
101
|
-
target: bottom,
|
|
102
|
-
data: {
|
|
103
|
-
minlen: minlen,
|
|
104
|
-
weight: thisWeight,
|
|
105
|
-
nestingEdge: true,
|
|
106
|
-
},
|
|
107
|
-
});
|
|
108
|
-
});
|
|
109
|
-
if (!g.getParent(v)) {
|
|
110
|
-
g.addEdge({
|
|
111
|
-
id: "e" + Math.random(),
|
|
112
|
-
source: root,
|
|
113
|
-
target: top,
|
|
114
|
-
data: {
|
|
115
|
-
weight: 0,
|
|
116
|
-
minlen: height + depths[v],
|
|
117
|
-
},
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
};
|
|
121
|
-
var treeDepths = function (g) {
|
|
122
|
-
var depths = {};
|
|
123
|
-
var dfs = function (v, depth) {
|
|
124
|
-
var children = g.getChildren(v);
|
|
125
|
-
children === null || children === void 0 ? void 0 : children.forEach(function (child) { return dfs(child.id, depth + 1); });
|
|
126
|
-
depths[v] = depth;
|
|
127
|
-
};
|
|
128
|
-
// g.children()?.forEach((v) => dfs(v, 1));
|
|
129
|
-
g.getRoots().forEach(function (v) { return dfs(v.id, 1); });
|
|
130
|
-
return depths;
|
|
131
|
-
};
|
|
132
|
-
var sumWeights = function (g) {
|
|
133
|
-
var result = 0;
|
|
134
|
-
g.getAllEdges().forEach(function (e) {
|
|
135
|
-
result += e.data.weight;
|
|
136
|
-
});
|
|
137
|
-
return result;
|
|
138
|
-
};
|
|
139
|
-
var cleanup = function (g, nestingRoot) {
|
|
140
|
-
// const graphLabel = g.graph();
|
|
141
|
-
// graphLabel.nestingRoot && g.removeNode(graphLabel.nestingRoot);
|
|
142
|
-
// delete graphLabel.nestingRoot;
|
|
143
|
-
if (nestingRoot) {
|
|
144
|
-
g.removeNode(nestingRoot);
|
|
145
|
-
}
|
|
146
|
-
g.getAllEdges().forEach(function (e) {
|
|
147
|
-
if (e.data.nestingEdge) {
|
|
148
|
-
g.removeEdge(e.id);
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
};
|
|
152
|
-
export { run, cleanup };
|
|
153
|
-
//# sourceMappingURL=nesting-graph.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nesting-graph.js","sourceRoot":"","sources":["../../src/dagre/nesting-graph.ts"],"names":[],"mappings":"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"}
|
package/lib/dagre/normalize.js
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { addDummyNode } from "./util";
|
|
2
|
-
/*
|
|
3
|
-
* Breaks any long edges in the graph into short segments that span 1 layer
|
|
4
|
-
* each. This operation is undoable with the denormalize function.
|
|
5
|
-
*
|
|
6
|
-
* Pre-conditions:
|
|
7
|
-
*
|
|
8
|
-
* 1. The input graph is a DAG.
|
|
9
|
-
* 2. Each node in the graph has a "rank" property.
|
|
10
|
-
*
|
|
11
|
-
* Post-condition:
|
|
12
|
-
*
|
|
13
|
-
* 1. All edges in the graph have a length of 1.
|
|
14
|
-
* 2. Dummy nodes are added where edges have been split into segments.
|
|
15
|
-
* 3. The graph is augmented with a "dummyChains" attribute which contains
|
|
16
|
-
* the first dummy in each chain of dummy nodes produced.
|
|
17
|
-
*/
|
|
18
|
-
var DUMMY_NODE_EDGE = "edge";
|
|
19
|
-
var DUMMY_NODE_EDGE_LABEL = "edge-label";
|
|
20
|
-
var run = function (g, dummyChains) {
|
|
21
|
-
g.getAllEdges().forEach(function (edge) { return normalizeEdge(g, edge, dummyChains); });
|
|
22
|
-
};
|
|
23
|
-
var normalizeEdge = function (g, e, dummyChains) {
|
|
24
|
-
var v = e.source;
|
|
25
|
-
var vRank = g.getNode(v).data.rank;
|
|
26
|
-
var w = e.target;
|
|
27
|
-
var wRank = g.getNode(w).data.rank;
|
|
28
|
-
var labelRank = e.data.labelRank;
|
|
29
|
-
if (wRank === vRank + 1)
|
|
30
|
-
return;
|
|
31
|
-
g.removeEdge(e.id);
|
|
32
|
-
var dummy;
|
|
33
|
-
var nodeData;
|
|
34
|
-
var i;
|
|
35
|
-
for (i = 0, ++vRank; vRank < wRank; ++i, ++vRank) {
|
|
36
|
-
e.data.points = [];
|
|
37
|
-
nodeData = {
|
|
38
|
-
originalEdge: e,
|
|
39
|
-
width: 0,
|
|
40
|
-
height: 0,
|
|
41
|
-
rank: vRank,
|
|
42
|
-
};
|
|
43
|
-
dummy = addDummyNode(g, DUMMY_NODE_EDGE, nodeData, "_d");
|
|
44
|
-
if (vRank === labelRank) {
|
|
45
|
-
nodeData.width = e.data.width;
|
|
46
|
-
nodeData.height = e.data.height;
|
|
47
|
-
nodeData.dummy = DUMMY_NODE_EDGE_LABEL;
|
|
48
|
-
nodeData.labelpos = e.data.labelpos;
|
|
49
|
-
}
|
|
50
|
-
g.addEdge({
|
|
51
|
-
id: "e" + Math.random(),
|
|
52
|
-
source: v,
|
|
53
|
-
target: dummy,
|
|
54
|
-
data: { weight: e.data.weight },
|
|
55
|
-
});
|
|
56
|
-
if (i === 0) {
|
|
57
|
-
dummyChains.push(dummy);
|
|
58
|
-
}
|
|
59
|
-
v = dummy;
|
|
60
|
-
}
|
|
61
|
-
g.addEdge({
|
|
62
|
-
id: "e" + Math.random(),
|
|
63
|
-
source: v,
|
|
64
|
-
target: w,
|
|
65
|
-
data: { weight: e.data.weight },
|
|
66
|
-
});
|
|
67
|
-
};
|
|
68
|
-
var undo = function (g, dummyChains) {
|
|
69
|
-
dummyChains.forEach(function (v) {
|
|
70
|
-
var node = g.getNode(v);
|
|
71
|
-
var data = node.data;
|
|
72
|
-
var originalEdge = data.originalEdge;
|
|
73
|
-
var w;
|
|
74
|
-
// Restore original edge.
|
|
75
|
-
if (originalEdge) {
|
|
76
|
-
g.addEdge(originalEdge);
|
|
77
|
-
}
|
|
78
|
-
var currentV = v;
|
|
79
|
-
while (node.data.dummy) {
|
|
80
|
-
w = g.getSuccessors(currentV)[0];
|
|
81
|
-
g.removeNode(currentV);
|
|
82
|
-
originalEdge.data.points.push({
|
|
83
|
-
x: node.data.x,
|
|
84
|
-
y: node.data.y,
|
|
85
|
-
});
|
|
86
|
-
if (node.data.dummy === DUMMY_NODE_EDGE_LABEL) {
|
|
87
|
-
originalEdge.data.x = node.data.x;
|
|
88
|
-
originalEdge.data.y = node.data.y;
|
|
89
|
-
originalEdge.data.width = node.data.width;
|
|
90
|
-
originalEdge.data.height = node.data.height;
|
|
91
|
-
}
|
|
92
|
-
currentV = w.id;
|
|
93
|
-
node = g.getNode(currentV);
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
};
|
|
97
|
-
export { run, undo };
|
|
98
|
-
//# sourceMappingURL=normalize.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/dagre/normalize.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
export var addSubgraphConstraints = function (g, cg, vs) {
|
|
2
|
-
var prev = {};
|
|
3
|
-
var rootPrev;
|
|
4
|
-
vs === null || vs === void 0 ? void 0 : vs.forEach(function (v) {
|
|
5
|
-
var child = g.getParent(v);
|
|
6
|
-
var parent;
|
|
7
|
-
var prevChild;
|
|
8
|
-
while (child) {
|
|
9
|
-
parent = g.getParent(child.id);
|
|
10
|
-
if (parent) {
|
|
11
|
-
prevChild = prev[parent.id];
|
|
12
|
-
prev[parent.id] = child.id;
|
|
13
|
-
}
|
|
14
|
-
else {
|
|
15
|
-
prevChild = rootPrev;
|
|
16
|
-
rootPrev = child.id;
|
|
17
|
-
}
|
|
18
|
-
if (prevChild && prevChild !== child.id) {
|
|
19
|
-
if (!cg.hasNode(prevChild)) {
|
|
20
|
-
cg.addNode({
|
|
21
|
-
id: prevChild,
|
|
22
|
-
data: {},
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
if (!cg.hasNode(child.id)) {
|
|
26
|
-
cg.addNode({
|
|
27
|
-
id: child.id,
|
|
28
|
-
data: {},
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
if (!cg.hasEdge("e" + prevChild + "-" + child.id)) {
|
|
32
|
-
cg.addEdge({
|
|
33
|
-
id: "e" + prevChild + "-" + child.id,
|
|
34
|
-
source: prevChild,
|
|
35
|
-
target: child.id,
|
|
36
|
-
data: {},
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
child = parent;
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
};
|
|
45
|
-
//# sourceMappingURL=add-subgraph-constraints.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"add-subgraph-constraints.js","sourceRoot":"","sources":["../../../src/dagre/order/add-subgraph-constraints.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,IAAM,sBAAsB,GAAG,UAAC,CAAQ,EAAE,EAAS,EAAE,EAAQ;IAClE,IAAM,IAAI,GAAmB,EAAE,CAAC;IAChC,IAAI,QAAY,CAAC;IAEjB,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,OAAO,CAAC,UAAC,CAAC;QACZ,IAAI,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,MAAM,CAAC;QACX,IAAI,SAAa,CAAC;QAClB,OAAO,KAAK,EAAE;YACZ,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC/B,IAAI,MAAM,EAAE;gBACV,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC5B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;aAC5B;iBAAM;gBACL,SAAS,GAAG,QAAQ,CAAC;gBACrB,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC;aACrB;YACD,IAAI,SAAS,IAAI,SAAS,KAAK,KAAK,CAAC,EAAE,EAAE;gBACvC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;oBAC1B,EAAE,CAAC,OAAO,CAAC;wBACT,EAAE,EAAE,SAAS;wBACb,IAAI,EAAE,EAAE;qBACT,CAAC,CAAC;iBACJ;gBACD,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;oBACzB,EAAE,CAAC,OAAO,CAAC;wBACT,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,IAAI,EAAE,EAAE;qBACT,CAAC,CAAC;iBACJ;gBACD,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,MAAI,SAAS,SAAI,KAAK,CAAC,EAAI,CAAC,EAAE;oBAC5C,EAAE,CAAC,OAAO,CAAC;wBACT,EAAE,EAAE,MAAI,SAAS,SAAI,KAAK,CAAC,EAAI;wBAC/B,MAAM,EAAE,SAAS;wBACjB,MAAM,EAAE,KAAK,CAAC,EAAE;wBAChB,IAAI,EAAE,EAAE;qBACT,CAAC,CAAC;iBACJ;gBACD,OAAO;aACR;YACD,KAAK,GAAG,MAAM,CAAC;SAChB;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TODO: The median method consistently performs better than the barycenter method and has a slight theoretical advantage
|
|
3
|
-
*/
|
|
4
|
-
export var barycenter = function (g, movable) {
|
|
5
|
-
return movable.map(function (v) {
|
|
6
|
-
var inV = g.getRelatedEdges(v, "in");
|
|
7
|
-
if (!(inV === null || inV === void 0 ? void 0 : inV.length)) {
|
|
8
|
-
return { v: v };
|
|
9
|
-
}
|
|
10
|
-
var result = { sum: 0, weight: 0 };
|
|
11
|
-
inV === null || inV === void 0 ? void 0 : inV.forEach(function (e) {
|
|
12
|
-
var nodeU = g.getNode(e.source);
|
|
13
|
-
result.sum += e.data.weight * nodeU.data.order;
|
|
14
|
-
result.weight += e.data.weight;
|
|
15
|
-
});
|
|
16
|
-
return {
|
|
17
|
-
v: v,
|
|
18
|
-
barycenter: result.sum / result.weight,
|
|
19
|
-
weight: result.weight,
|
|
20
|
-
};
|
|
21
|
-
});
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=barycenter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"barycenter.js","sourceRoot":"","sources":["../../../src/dagre/order/barycenter.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,CAAC,IAAM,UAAU,GAAG,UAAC,CAAQ,EAAE,OAAa;IAChD,OAAO,OAAO,CAAC,GAAG,CAAC,UAAC,CAAC;QACnB,IAAM,GAAG,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,CAAA,EAAE;YAChB,OAAO,EAAE,CAAC,GAAA,EAAE,CAAC;SACd;QAED,IAAM,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACrC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAC,UAAC,CAAC;YACb,IAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAE,CAAC;YACnC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,MAAO,GAAG,KAAK,CAAC,IAAI,CAAC,KAAM,CAAC;YACjD,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,MAAO,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,OAAO;YACL,CAAC,GAAA;YACD,UAAU,EAAE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,MAAM;YACtC,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { __assign } from "tslib";
|
|
2
|
-
import { Graph } from '@antv/graphlib';
|
|
3
|
-
/*
|
|
4
|
-
* Constructs a graph that can be used to sort a layer of nodes. The graph will
|
|
5
|
-
* contain all base and subgraph nodes from the request layer in their original
|
|
6
|
-
* hierarchy and any edges that are incident on these nodes and are of the type
|
|
7
|
-
* requested by the "relationship" parameter.
|
|
8
|
-
*
|
|
9
|
-
* Nodes from the requested rank that do not have parents are assigned a root
|
|
10
|
-
* node in the output graph, which is set in the root graph attribute. This
|
|
11
|
-
* makes it easy to walk the hierarchy of movable nodes during ordering.
|
|
12
|
-
*
|
|
13
|
-
* Pre-conditions:
|
|
14
|
-
*
|
|
15
|
-
* 1. Input graph is a DAG
|
|
16
|
-
* 2. Base nodes in the input graph have a rank attribute
|
|
17
|
-
* 3. Subgraph nodes in the input graph has minRank and maxRank attributes
|
|
18
|
-
* 4. Edges have an assigned weight
|
|
19
|
-
*
|
|
20
|
-
* Post-conditions:
|
|
21
|
-
*
|
|
22
|
-
* 1. Output graph has all nodes in the movable rank with preserved
|
|
23
|
-
* hierarchy.
|
|
24
|
-
* 2. Root nodes in the movable layer are made children of the node
|
|
25
|
-
* indicated by the root attribute of the graph.
|
|
26
|
-
* 3. Non-movable nodes incident on movable nodes, selected by the
|
|
27
|
-
* relationship parameter, are included in the graph (without hierarchy).
|
|
28
|
-
* 4. Edges incident on movable nodes, selected by the relationship
|
|
29
|
-
* parameter, are added to the output graph.
|
|
30
|
-
* 5. The weights for copied edges are aggregated as need, since the output
|
|
31
|
-
* graph is not a multi-graph.
|
|
32
|
-
*/
|
|
33
|
-
export var buildLayerGraph = function (g, rank, direction) {
|
|
34
|
-
var root = createRootNode(g);
|
|
35
|
-
var result = new Graph({
|
|
36
|
-
tree: [
|
|
37
|
-
{
|
|
38
|
-
id: root,
|
|
39
|
-
children: [],
|
|
40
|
-
data: {},
|
|
41
|
-
},
|
|
42
|
-
],
|
|
43
|
-
});
|
|
44
|
-
g.getAllNodes().forEach(function (v) {
|
|
45
|
-
var parent = g.getParent(v.id);
|
|
46
|
-
if (v.data.rank === rank ||
|
|
47
|
-
(v.data.minRank <= rank && rank <= v.data.maxRank)) {
|
|
48
|
-
if (!result.hasNode(v.id)) {
|
|
49
|
-
result.addNode(__assign({}, v));
|
|
50
|
-
}
|
|
51
|
-
if ((parent === null || parent === void 0 ? void 0 : parent.id) && !result.hasNode(parent === null || parent === void 0 ? void 0 : parent.id)) {
|
|
52
|
-
result.addNode(__assign({}, parent));
|
|
53
|
-
}
|
|
54
|
-
result.setParent(v.id, (parent === null || parent === void 0 ? void 0 : parent.id) || root);
|
|
55
|
-
// This assumes we have only short edges!
|
|
56
|
-
g.getRelatedEdges(v.id, direction).forEach(function (e) {
|
|
57
|
-
var u = e.source === v.id ? e.target : e.source;
|
|
58
|
-
if (!result.hasNode(u)) {
|
|
59
|
-
result.addNode(__assign({}, g.getNode(u)));
|
|
60
|
-
}
|
|
61
|
-
var edge = result
|
|
62
|
-
.getRelatedEdges(u, 'out')
|
|
63
|
-
.find(function (_a) {
|
|
64
|
-
var target = _a.target;
|
|
65
|
-
return target === v.id;
|
|
66
|
-
});
|
|
67
|
-
var weight = edge !== undefined ? edge.data.weight : 0;
|
|
68
|
-
if (!edge) {
|
|
69
|
-
result.addEdge({
|
|
70
|
-
id: e.id,
|
|
71
|
-
source: u,
|
|
72
|
-
target: v.id,
|
|
73
|
-
data: {
|
|
74
|
-
weight: e.data.weight + weight,
|
|
75
|
-
},
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
result.updateEdgeData(edge.id, __assign(__assign({}, edge.data), { weight: e.data.weight + weight }));
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
// console.log(v);
|
|
83
|
-
if (v.data.hasOwnProperty('minRank')) {
|
|
84
|
-
result.updateNodeData(v.id, __assign(__assign({}, v.data), { borderLeft: v.data.borderLeft[rank], borderRight: v.data.borderRight[rank] }));
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
});
|
|
88
|
-
return result;
|
|
89
|
-
};
|
|
90
|
-
var createRootNode = function (g) {
|
|
91
|
-
var v;
|
|
92
|
-
while (g.hasNode((v = "_root" + Math.random())))
|
|
93
|
-
;
|
|
94
|
-
return v;
|
|
95
|
-
};
|
|
96
|
-
//# sourceMappingURL=build-layer-graph.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build-layer-graph.js","sourceRoot":"","sources":["../../../src/dagre/order/build-layer-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* A function that takes a layering (an array of layers, each with an array of
|
|
3
|
-
* ordererd nodes) and a graph and returns a weighted crossing count.
|
|
4
|
-
*
|
|
5
|
-
* Pre-conditions:
|
|
6
|
-
*
|
|
7
|
-
* 1. Input graph must be simple (not a multigraph), directed, and include
|
|
8
|
-
* only simple edges.
|
|
9
|
-
* 2. Edges in the input graph must have assigned weights.
|
|
10
|
-
*
|
|
11
|
-
* Post-conditions:
|
|
12
|
-
*
|
|
13
|
-
* 1. The graph and layering matrix are left unchanged.
|
|
14
|
-
*
|
|
15
|
-
* This algorithm is derived from Barth, et al., "Bilayer Cross Counting."
|
|
16
|
-
*/
|
|
17
|
-
import { zipObject } from "../util";
|
|
18
|
-
var twoLayerCrossCount = function (g, northLayer, southLayer) {
|
|
19
|
-
// Sort all of the edges between the north and south layers by their position
|
|
20
|
-
// in the north layer and then the south. Map these edges to the position of
|
|
21
|
-
// their head in the south layer.
|
|
22
|
-
var southPos = zipObject(southLayer, southLayer.map(function (v, i) { return i; }));
|
|
23
|
-
var unflat = northLayer.map(function (v) {
|
|
24
|
-
var unsort = g.getRelatedEdges(v, "out").map(function (e) {
|
|
25
|
-
return { pos: southPos[e.target] || 0, weight: e.data.weight };
|
|
26
|
-
});
|
|
27
|
-
return unsort === null || unsort === void 0 ? void 0 : unsort.sort(function (a, b) { return a.pos - b.pos; });
|
|
28
|
-
});
|
|
29
|
-
var southEntries = unflat.flat().filter(function (entry) { return entry !== undefined; });
|
|
30
|
-
// Build the accumulator tree
|
|
31
|
-
var firstIndex = 1;
|
|
32
|
-
while (firstIndex < southLayer.length)
|
|
33
|
-
firstIndex <<= 1;
|
|
34
|
-
var treeSize = 2 * firstIndex - 1;
|
|
35
|
-
firstIndex -= 1;
|
|
36
|
-
var tree = Array(treeSize).fill(0, 0, treeSize);
|
|
37
|
-
// Calculate the weighted crossings
|
|
38
|
-
var cc = 0;
|
|
39
|
-
southEntries === null || southEntries === void 0 ? void 0 : southEntries.forEach(function (entry) {
|
|
40
|
-
if (entry) {
|
|
41
|
-
var index = entry.pos + firstIndex;
|
|
42
|
-
tree[index] += entry.weight;
|
|
43
|
-
var weightSum = 0;
|
|
44
|
-
while (index > 0) {
|
|
45
|
-
if (index % 2) {
|
|
46
|
-
weightSum += tree[index + 1];
|
|
47
|
-
}
|
|
48
|
-
index = (index - 1) >> 1;
|
|
49
|
-
tree[index] += entry.weight;
|
|
50
|
-
}
|
|
51
|
-
cc += entry.weight * weightSum;
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
return cc;
|
|
55
|
-
};
|
|
56
|
-
export var crossCount = function (g, layering) {
|
|
57
|
-
var cc = 0;
|
|
58
|
-
for (var i = 1; i < (layering === null || layering === void 0 ? void 0 : layering.length); i += 1) {
|
|
59
|
-
cc += twoLayerCrossCount(g, layering[i - 1], layering[i]);
|
|
60
|
-
}
|
|
61
|
-
return cc;
|
|
62
|
-
};
|
|
63
|
-
//# sourceMappingURL=cross-count.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cross-count.js","sourceRoot":"","sources":["../../../src/dagre/order/cross-count.ts"],"names":[],"mappings":"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"}
|
package/lib/dagre/order/index.js
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { initOrder } from "./init-order";
|
|
2
|
-
import { crossCount } from "./cross-count";
|
|
3
|
-
import { buildLayerGraph } from "./build-layer-graph";
|
|
4
|
-
import { addSubgraphConstraints } from "./add-subgraph-constraints";
|
|
5
|
-
import { sortSubgraph } from "./sort-subgraph";
|
|
6
|
-
import { buildLayerMatrix, maxRank } from "../util";
|
|
7
|
-
import { Graph } from "@antv/graphlib";
|
|
8
|
-
import { clone } from "@antv/util";
|
|
9
|
-
/*
|
|
10
|
-
* Applies heuristics to minimize edge crossings in the graph and sets the best
|
|
11
|
-
* order solution as an order attribute on each node.
|
|
12
|
-
*
|
|
13
|
-
* Pre-conditions:
|
|
14
|
-
*
|
|
15
|
-
* 1. Graph must be DAG
|
|
16
|
-
* 2. Graph nodes must be objects with a "rank" attribute
|
|
17
|
-
* 3. Graph edges must have the "weight" attribute
|
|
18
|
-
*
|
|
19
|
-
* Post-conditions:
|
|
20
|
-
*
|
|
21
|
-
* 1. Graph nodes will have an "order" attribute based on the results of the
|
|
22
|
-
* algorithm.
|
|
23
|
-
*/
|
|
24
|
-
export var order = function (g, keepNodeOrder) {
|
|
25
|
-
var mxRank = maxRank(g);
|
|
26
|
-
var range1 = [];
|
|
27
|
-
var range2 = [];
|
|
28
|
-
for (var i = 1; i < mxRank + 1; i++)
|
|
29
|
-
range1.push(i);
|
|
30
|
-
for (var i = mxRank - 1; i > -1; i--)
|
|
31
|
-
range2.push(i);
|
|
32
|
-
var downLayerGraphs = buildLayerGraphs(g, range1, "in");
|
|
33
|
-
var upLayerGraphs = buildLayerGraphs(g, range2, "out");
|
|
34
|
-
var layering = initOrder(g);
|
|
35
|
-
assignOrder(g, layering);
|
|
36
|
-
var bestCC = Number.POSITIVE_INFINITY;
|
|
37
|
-
var best;
|
|
38
|
-
for (var i = 0, lastBest = 0; lastBest < 4; ++i, ++lastBest) {
|
|
39
|
-
sweepLayerGraphs(i % 2 ? downLayerGraphs : upLayerGraphs, i % 4 >= 2, false, keepNodeOrder);
|
|
40
|
-
layering = buildLayerMatrix(g);
|
|
41
|
-
var cc = crossCount(g, layering);
|
|
42
|
-
if (cc < bestCC) {
|
|
43
|
-
lastBest = 0;
|
|
44
|
-
best = clone(layering);
|
|
45
|
-
bestCC = cc;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
// consider use previous result, maybe somewhat reduendant
|
|
49
|
-
layering = initOrder(g);
|
|
50
|
-
assignOrder(g, layering);
|
|
51
|
-
for (var i = 0, lastBest = 0; lastBest < 4; ++i, ++lastBest) {
|
|
52
|
-
sweepLayerGraphs(i % 2 ? downLayerGraphs : upLayerGraphs, i % 4 >= 2, true, keepNodeOrder);
|
|
53
|
-
layering = buildLayerMatrix(g);
|
|
54
|
-
var cc = crossCount(g, layering);
|
|
55
|
-
if (cc < bestCC) {
|
|
56
|
-
lastBest = 0;
|
|
57
|
-
best = clone(layering);
|
|
58
|
-
bestCC = cc;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
assignOrder(g, best);
|
|
62
|
-
};
|
|
63
|
-
var buildLayerGraphs = function (g, ranks, direction) {
|
|
64
|
-
return ranks.map(function (rank) {
|
|
65
|
-
return buildLayerGraph(g, rank, direction);
|
|
66
|
-
});
|
|
67
|
-
};
|
|
68
|
-
var sweepLayerGraphs = function (layerGraphs, biasRight, usePrev, keepNodeOrder) {
|
|
69
|
-
var cg = new Graph();
|
|
70
|
-
layerGraphs === null || layerGraphs === void 0 ? void 0 : layerGraphs.forEach(function (lg) {
|
|
71
|
-
var _a;
|
|
72
|
-
// const root = lg.graph().root as string;
|
|
73
|
-
var root = lg.getRoots()[0].id;
|
|
74
|
-
var sorted = sortSubgraph(lg, root, cg, biasRight, usePrev, keepNodeOrder);
|
|
75
|
-
for (var i = 0; i < ((_a = sorted.vs) === null || _a === void 0 ? void 0 : _a.length) || 0; i++) {
|
|
76
|
-
var lnode = lg.getNode(sorted.vs[i]);
|
|
77
|
-
if (lnode) {
|
|
78
|
-
lnode.data.order = i;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
addSubgraphConstraints(lg, cg, sorted.vs);
|
|
82
|
-
});
|
|
83
|
-
};
|
|
84
|
-
var assignOrder = function (g, layering) {
|
|
85
|
-
layering === null || layering === void 0 ? void 0 : layering.forEach(function (layer) {
|
|
86
|
-
layer === null || layer === void 0 ? void 0 : layer.forEach(function (v, i) {
|
|
87
|
-
g.getNode(v).data.order = i;
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
};
|
|
91
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dagre/order/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { __read, __spreadArray } from "tslib";
|
|
2
|
-
/**
|
|
3
|
-
* 按照数据中的结果设置fixorder
|
|
4
|
-
*/
|
|
5
|
-
export var initDataOrder = function (g, nodeOrder) {
|
|
6
|
-
var simpleNodes = g.getAllNodes().filter(function (v) {
|
|
7
|
-
var _a;
|
|
8
|
-
return !((_a = g.getChildren(v.id)) === null || _a === void 0 ? void 0 : _a.length);
|
|
9
|
-
});
|
|
10
|
-
var ranks = simpleNodes.map(function (v) { return v.data.rank; });
|
|
11
|
-
var maxRank = Math.max.apply(Math, __spreadArray([], __read(ranks)));
|
|
12
|
-
var layers = [];
|
|
13
|
-
for (var i = 0; i < maxRank + 1; i++) {
|
|
14
|
-
layers[i] = [];
|
|
15
|
-
}
|
|
16
|
-
nodeOrder === null || nodeOrder === void 0 ? void 0 : nodeOrder.forEach(function (n) {
|
|
17
|
-
var node = g.getNode(n);
|
|
18
|
-
// 只考虑原有节点,dummy节点需要按照后续算法排出
|
|
19
|
-
if (!node || node.data.dummy) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
if (!isNaN(node.data.rank)) {
|
|
23
|
-
node.data.fixorder = layers[node.data.rank].length; // 设置fixorder为当层的顺序
|
|
24
|
-
layers[node.data.rank].push(n);
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
};
|
|
28
|
-
//# sourceMappingURL=init-data-order.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init-data-order.js","sourceRoot":"","sources":["../../../src/dagre/order/init-data-order.ts"],"names":[],"mappings":";AAGA;;GAEG;AACH,MAAM,CAAC,IAAM,aAAa,GAAG,UAAC,CAAQ,EAAE,SAAgB;IACtD,IAAM,WAAW,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,UAAC,CAAC;;QAC3C,OAAO,CAAC,CAAA,MAAA,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,0CAAE,MAAM,CAAA,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,IAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,CAAC,IAAK,EAAZ,CAAY,CAAC,CAAC;IACnD,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,OAAR,IAAI,2BAAQ,KAAK,GAAC,CAAC;IACnC,IAAM,MAAM,GAAW,EAAE,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KAChB;IAED,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,CAAC,UAAC,CAAC;QACnB,IAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1B,4BAA4B;QAC5B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAC5B,OAAO;SACR;QACD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAK,CAAC,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC,MAAM,CAAC,CAAC,mBAAmB;YACxE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|