@antv/layout 1.2.10 → 1.2.11-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{5fc550bbb6f708833d84.worker.js → 1364056b7ad586222caf.worker.js} +2 -2
- package/dist/1364056b7ad586222caf.worker.js.map +1 -0
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/lib/bundle-entry.js +19 -0
- package/lib/bundle-entry.js.map +1 -0
- package/lib/bundle-supervisor.js +94 -0
- package/lib/bundle-supervisor.js.map +1 -0
- package/lib/bundle-worker.js +53 -0
- package/lib/bundle-worker.js.map +1 -0
- package/lib/circular.js +258 -0
- package/lib/circular.js.map +1 -0
- package/lib/comboCombined.js +441 -0
- package/lib/comboCombined.js.map +1 -0
- package/lib/concentric.js +229 -0
- package/lib/concentric.js.map +1 -0
- package/lib/d3Force/forceInBox.js +331 -0
- package/lib/d3Force/forceInBox.js.map +1 -0
- package/lib/d3Force/index.js +339 -0
- package/lib/d3Force/index.js.map +1 -0
- package/lib/dagre/acyclic.js +62 -0
- package/lib/dagre/acyclic.js.map +1 -0
- package/lib/dagre/add-border-segments.js +37 -0
- package/lib/dagre/add-border-segments.js.map +1 -0
- package/lib/dagre/coordinate-system.js +65 -0
- package/lib/dagre/coordinate-system.js.map +1 -0
- package/lib/dagre/data/list.js +50 -0
- package/lib/dagre/data/list.js.map +1 -0
- package/lib/dagre/greedy-fas.js +147 -0
- package/lib/dagre/greedy-fas.js.map +1 -0
- package/lib/dagre/layout.js +470 -0
- package/lib/dagre/layout.js.map +1 -0
- package/lib/dagre/nesting-graph.js +153 -0
- package/lib/dagre/nesting-graph.js.map +1 -0
- package/lib/dagre/normalize.js +98 -0
- package/lib/dagre/normalize.js.map +1 -0
- package/lib/dagre/order/add-subgraph-constraints.js +45 -0
- package/lib/dagre/order/add-subgraph-constraints.js.map +1 -0
- package/lib/dagre/order/barycenter.js +23 -0
- package/lib/dagre/order/barycenter.js.map +1 -0
- package/lib/dagre/order/build-layer-graph.js +96 -0
- package/lib/dagre/order/build-layer-graph.js.map +1 -0
- package/lib/dagre/order/cross-count.js +63 -0
- package/lib/dagre/order/cross-count.js.map +1 -0
- package/lib/dagre/order/index.js +91 -0
- package/lib/dagre/order/index.js.map +1 -0
- package/lib/dagre/order/init-data-order.js +28 -0
- package/lib/dagre/order/init-data-order.js.map +1 -0
- package/lib/dagre/order/init-order.js +50 -0
- package/lib/dagre/order/init-order.js.map +1 -0
- package/lib/dagre/order/resolve-conflicts.js +121 -0
- package/lib/dagre/order/resolve-conflicts.js.map +1 -0
- package/lib/dagre/order/sort-subgraph.js +84 -0
- package/lib/dagre/order/sort-subgraph.js.map +1 -0
- package/lib/dagre/order/sort.js +74 -0
- package/lib/dagre/order/sort.js.map +1 -0
- package/lib/dagre/parent-dummy-chains.js +80 -0
- package/lib/dagre/parent-dummy-chains.js.map +1 -0
- package/lib/dagre/position/bk.js +398 -0
- package/lib/dagre/position/bk.js.map +1 -0
- package/lib/dagre/position/index.js +54 -0
- package/lib/dagre/position/index.js.map +1 -0
- package/lib/dagre/rank/feasible-tree.js +164 -0
- package/lib/dagre/rank/feasible-tree.js.map +1 -0
- package/lib/dagre/rank/index.js +48 -0
- package/lib/dagre/rank/index.js.map +1 -0
- package/lib/dagre/rank/network-simplex.js +232 -0
- package/lib/dagre/rank/network-simplex.js.map +1 -0
- package/lib/dagre/rank/util.js +138 -0
- package/lib/dagre/rank/util.js.map +1 -0
- package/lib/dagre/util.js +289 -0
- package/lib/dagre/util.js.map +1 -0
- package/lib/dagre.js +552 -0
- package/lib/dagre.js.map +1 -0
- package/lib/force/forceNBody.js +123 -0
- package/lib/force/forceNBody.js.map +1 -0
- package/lib/force/index.js +805 -0
- package/lib/force/index.js.map +1 -0
- package/lib/force/types.js +2 -0
- package/lib/force/types.js.map +1 -0
- package/lib/forceAtlas2/body.js +91 -0
- package/lib/forceAtlas2/body.js.map +1 -0
- package/lib/forceAtlas2/index.js +562 -0
- package/lib/forceAtlas2/index.js.map +1 -0
- package/lib/forceAtlas2/quad.js +98 -0
- package/lib/forceAtlas2/quad.js.map +1 -0
- package/lib/forceAtlas2/quadTree.js +105 -0
- package/lib/forceAtlas2/quadTree.js.map +1 -0
- package/lib/fruchterman.js +376 -0
- package/lib/fruchterman.js.map +1 -0
- package/lib/grid.js +308 -0
- package/lib/grid.js.map +1 -0
- package/lib/index.js +17 -0
- package/lib/index.js.map +1 -0
- package/lib/mds.js +137 -0
- package/lib/mds.js.map +1 -0
- package/lib/radial/index.js +355 -0
- package/lib/radial/index.js.map +1 -0
- package/lib/radial/mds.js +29 -0
- package/lib/radial/mds.js.map +1 -0
- package/lib/radial/radial-nonoverlap-force.js +100 -0
- package/lib/radial/radial-nonoverlap-force.js.map +1 -0
- package/lib/random.js +98 -0
- package/lib/random.js.map +1 -0
- package/lib/registry.js +27 -0
- package/lib/registry.js.map +1 -0
- package/lib/supervisor.js +90 -0
- package/lib/supervisor.js.map +1 -0
- package/lib/types.js +4 -0
- package/lib/types.js.map +1 -0
- package/lib/util/array.js +2 -0
- package/lib/util/array.js.map +1 -0
- package/lib/util/common.d.ts +12 -0
- package/lib/util/common.js +32 -0
- package/lib/util/common.js.map +1 -0
- package/lib/util/function.js +126 -0
- package/lib/util/function.js.map +1 -0
- package/lib/util/gpu.js +214 -0
- package/lib/util/gpu.js.map +1 -0
- package/lib/util/index.js +7 -0
- package/lib/util/index.js.map +1 -0
- package/lib/util/math.js +257 -0
- package/lib/util/math.js.map +1 -0
- package/lib/util/number.js +5 -0
- package/lib/util/number.js.map +1 -0
- package/lib/util/object.js +42 -0
- package/lib/util/object.js.map +1 -0
- package/lib/util/string.js +15 -0
- package/lib/util/string.js.map +1 -0
- package/lib/worker.d.ts +1 -0
- package/lib/worker.js +45 -0
- package/lib/worker.js.map +1 -0
- package/package.json +1 -1
- package/dist/5fc550bbb6f708833d84.worker.js.map +0 -1
package/lib/grid.js
ADDED
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
import { __assign, __awaiter, __generator } from "tslib";
|
|
2
|
+
import { isString, isNumber } from "@antv/util";
|
|
3
|
+
import { isArray, formatSizeFn, formatNumberFn, cloneFormatData } from "./util";
|
|
4
|
+
import { handleSingleNodeGraph } from "./util/common";
|
|
5
|
+
var DEFAULTS_LAYOUT_OPTIONS = {
|
|
6
|
+
begin: [0, 0],
|
|
7
|
+
preventOverlap: true,
|
|
8
|
+
preventOverlapPadding: 10,
|
|
9
|
+
condense: false,
|
|
10
|
+
rows: undefined,
|
|
11
|
+
cols: undefined,
|
|
12
|
+
position: undefined,
|
|
13
|
+
sortBy: "degree",
|
|
14
|
+
nodeSize: 30,
|
|
15
|
+
width: 300,
|
|
16
|
+
height: 300,
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Layout arranging the nodes in a grid.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* // Assign layout options when initialization.
|
|
23
|
+
* const layout = new GridLayout({ rows: 10 });
|
|
24
|
+
* const positions = await layout.execute(graph); // { nodes: [], edges: [] }
|
|
25
|
+
*
|
|
26
|
+
* // Or use different options later.
|
|
27
|
+
* const layout = new GridLayout({ rows: 10 });
|
|
28
|
+
* const positions = await layout.execute(graph, { rows: 20 }); // { nodes: [], edges: [] }
|
|
29
|
+
*
|
|
30
|
+
* // If you want to assign the positions directly to the nodes, use assign method.
|
|
31
|
+
* await layout.assign(graph, { rows: 20 });
|
|
32
|
+
*/
|
|
33
|
+
var GridLayout = /** @class */ (function () {
|
|
34
|
+
function GridLayout(options) {
|
|
35
|
+
if (options === void 0) { options = {}; }
|
|
36
|
+
this.options = options;
|
|
37
|
+
this.id = "grid";
|
|
38
|
+
this.options = __assign(__assign({}, DEFAULTS_LAYOUT_OPTIONS), options);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Return the positions of nodes and edges(if needed).
|
|
42
|
+
*/
|
|
43
|
+
GridLayout.prototype.execute = function (graph, options) {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
45
|
+
return __generator(this, function (_a) {
|
|
46
|
+
return [2 /*return*/, this.genericGridLayout(false, graph, options)];
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* To directly assign the positions to the nodes.
|
|
52
|
+
*/
|
|
53
|
+
GridLayout.prototype.assign = function (graph, options) {
|
|
54
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
55
|
+
return __generator(this, function (_a) {
|
|
56
|
+
this.genericGridLayout(true, graph, options);
|
|
57
|
+
return [2 /*return*/];
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
GridLayout.prototype.genericGridLayout = function (assign, graph, options) {
|
|
62
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
63
|
+
var mergedOptions, _a, begin, condense, preventOverlapPadding, preventOverlap, propsRows, propsCols, paramNodeSpacing, paramNodeSize, propsWidth, propsHeight, position, sortBy, nodes, edges, n, layoutNodes, width, height, cells, rcs, splits, sm, lg, sm, lg, cellWidth, cellHeight, nodeSpacing_1, nodeSize_1, cellUsed, rc, id2manPos, i, node, rcPos, pos, result;
|
|
64
|
+
return __generator(this, function (_b) {
|
|
65
|
+
mergedOptions = __assign(__assign({}, this.options), options);
|
|
66
|
+
_a = mergedOptions.begin, begin = _a === void 0 ? [0, 0] : _a, condense = mergedOptions.condense, preventOverlapPadding = mergedOptions.preventOverlapPadding, preventOverlap = mergedOptions.preventOverlap, propsRows = mergedOptions.rows, propsCols = mergedOptions.cols, paramNodeSpacing = mergedOptions.nodeSpacing, paramNodeSize = mergedOptions.nodeSize, propsWidth = mergedOptions.width, propsHeight = mergedOptions.height, position = mergedOptions.position;
|
|
67
|
+
sortBy = mergedOptions.sortBy;
|
|
68
|
+
nodes = graph.getAllNodes();
|
|
69
|
+
edges = graph.getAllEdges();
|
|
70
|
+
n = nodes === null || nodes === void 0 ? void 0 : nodes.length;
|
|
71
|
+
// Need no layout if there is no node.
|
|
72
|
+
if (!n || n === 1) {
|
|
73
|
+
return [2 /*return*/, handleSingleNodeGraph(graph, assign, begin)];
|
|
74
|
+
}
|
|
75
|
+
layoutNodes = nodes.map(function (node) { return cloneFormatData(node); });
|
|
76
|
+
if (
|
|
77
|
+
// `id` should be reserved keyword
|
|
78
|
+
sortBy !== "id" &&
|
|
79
|
+
(!isString(sortBy) || layoutNodes[0].data[sortBy] === undefined)) {
|
|
80
|
+
sortBy = "degree";
|
|
81
|
+
}
|
|
82
|
+
if (sortBy === "degree") {
|
|
83
|
+
layoutNodes.sort(function (n1, n2) {
|
|
84
|
+
return graph.getDegree(n2.id, "both") - graph.getDegree(n1.id, "both");
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
else if (sortBy === "id") {
|
|
88
|
+
// sort nodes by ID
|
|
89
|
+
layoutNodes.sort(function (n1, n2) {
|
|
90
|
+
if (isNumber(n2.id) && isNumber(n1.id)) {
|
|
91
|
+
return n2.id - n1.id;
|
|
92
|
+
}
|
|
93
|
+
return ("" + n1.id).localeCompare("" + n2.id);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
// sort nodes by value
|
|
98
|
+
layoutNodes.sort(function (n1, n2) { return n2.data[sortBy] - n1.data[sortBy]; });
|
|
99
|
+
}
|
|
100
|
+
width = !propsWidth && typeof window !== "undefined"
|
|
101
|
+
? window.innerWidth
|
|
102
|
+
: propsWidth;
|
|
103
|
+
height = !propsHeight && typeof window !== "undefined"
|
|
104
|
+
? window.innerHeight
|
|
105
|
+
: propsHeight;
|
|
106
|
+
cells = n;
|
|
107
|
+
rcs = { rows: propsRows, cols: propsCols };
|
|
108
|
+
// if rows or columns were set in self, use those values
|
|
109
|
+
if (propsRows != null && propsCols != null) {
|
|
110
|
+
rcs.rows = propsRows;
|
|
111
|
+
rcs.cols = propsCols;
|
|
112
|
+
}
|
|
113
|
+
else if (propsRows != null && propsCols == null) {
|
|
114
|
+
rcs.rows = propsRows;
|
|
115
|
+
rcs.cols = Math.ceil(cells / rcs.rows);
|
|
116
|
+
}
|
|
117
|
+
else if (propsRows == null && propsCols != null) {
|
|
118
|
+
rcs.cols = propsCols;
|
|
119
|
+
rcs.rows = Math.ceil(cells / rcs.cols);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
splits = Math.sqrt((cells * height) / width);
|
|
123
|
+
rcs.rows = Math.round(splits);
|
|
124
|
+
rcs.cols = Math.round((width / height) * splits);
|
|
125
|
+
}
|
|
126
|
+
rcs.rows = Math.max(rcs.rows, 1);
|
|
127
|
+
rcs.cols = Math.max(rcs.cols, 1);
|
|
128
|
+
if (rcs.cols * rcs.rows > cells) {
|
|
129
|
+
sm = small(rcs);
|
|
130
|
+
lg = large(rcs);
|
|
131
|
+
// reducing the small side takes away the most cells, so try it first
|
|
132
|
+
if ((sm - 1) * lg >= cells) {
|
|
133
|
+
small(rcs, sm - 1);
|
|
134
|
+
}
|
|
135
|
+
else if ((lg - 1) * sm >= cells) {
|
|
136
|
+
large(rcs, lg - 1);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
// if rounding was too low, add rows or columns
|
|
141
|
+
while (rcs.cols * rcs.rows < cells) {
|
|
142
|
+
sm = small(rcs);
|
|
143
|
+
lg = large(rcs);
|
|
144
|
+
// try to add to larger side first (adds less in multiplication)
|
|
145
|
+
if ((lg + 1) * sm >= cells) {
|
|
146
|
+
large(rcs, lg + 1);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
small(rcs, sm + 1);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
cellWidth = condense ? 0 : width / rcs.cols;
|
|
154
|
+
cellHeight = condense ? 0 : height / rcs.rows;
|
|
155
|
+
if (preventOverlap || paramNodeSpacing) {
|
|
156
|
+
nodeSpacing_1 = formatNumberFn(10, paramNodeSpacing);
|
|
157
|
+
nodeSize_1 = formatSizeFn(30, paramNodeSize, false);
|
|
158
|
+
layoutNodes.forEach(function (node) {
|
|
159
|
+
if (!node.data.x || !node.data.y) {
|
|
160
|
+
// for bb
|
|
161
|
+
node.data.x = 0;
|
|
162
|
+
node.data.y = 0;
|
|
163
|
+
}
|
|
164
|
+
var oNode = graph.getNode(node.id);
|
|
165
|
+
var res = nodeSize_1(oNode) || 30;
|
|
166
|
+
var nodeW;
|
|
167
|
+
var nodeH;
|
|
168
|
+
if (isArray(res)) {
|
|
169
|
+
nodeW = res[0];
|
|
170
|
+
nodeH = res[1];
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
nodeW = res;
|
|
174
|
+
nodeH = res;
|
|
175
|
+
}
|
|
176
|
+
var p = nodeSpacing_1 !== undefined ? nodeSpacing_1(node) : preventOverlapPadding;
|
|
177
|
+
var w = nodeW + p;
|
|
178
|
+
var h = nodeH + p;
|
|
179
|
+
cellWidth = Math.max(cellWidth, w);
|
|
180
|
+
cellHeight = Math.max(cellHeight, h);
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
cellUsed = {};
|
|
184
|
+
rc = { row: 0, col: 0 };
|
|
185
|
+
id2manPos = {};
|
|
186
|
+
for (i = 0; i < layoutNodes.length; i++) {
|
|
187
|
+
node = layoutNodes[i];
|
|
188
|
+
rcPos = void 0;
|
|
189
|
+
if (position) {
|
|
190
|
+
// TODO: not sure the api name
|
|
191
|
+
rcPos = position(graph.getNode(node.id));
|
|
192
|
+
}
|
|
193
|
+
if (rcPos && (rcPos.row !== undefined || rcPos.col !== undefined)) {
|
|
194
|
+
pos = {
|
|
195
|
+
row: rcPos.row,
|
|
196
|
+
col: rcPos.col,
|
|
197
|
+
};
|
|
198
|
+
if (pos.col === undefined) {
|
|
199
|
+
// find unused col
|
|
200
|
+
pos.col = 0;
|
|
201
|
+
while (used(cellUsed, pos)) {
|
|
202
|
+
pos.col++;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
else if (pos.row === undefined) {
|
|
206
|
+
// find unused row
|
|
207
|
+
pos.row = 0;
|
|
208
|
+
while (used(cellUsed, pos)) {
|
|
209
|
+
pos.row++;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
id2manPos[node.id] = pos;
|
|
213
|
+
use(cellUsed, pos);
|
|
214
|
+
}
|
|
215
|
+
getPos(node, begin, cellWidth, cellHeight, id2manPos, rcs, rc, cellUsed);
|
|
216
|
+
}
|
|
217
|
+
result = {
|
|
218
|
+
nodes: layoutNodes,
|
|
219
|
+
edges: edges,
|
|
220
|
+
};
|
|
221
|
+
if (assign) {
|
|
222
|
+
layoutNodes.forEach(function (node) {
|
|
223
|
+
graph.mergeNodeData(node.id, {
|
|
224
|
+
x: node.data.x,
|
|
225
|
+
y: node.data.y,
|
|
226
|
+
});
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
return [2 /*return*/, result];
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
};
|
|
233
|
+
return GridLayout;
|
|
234
|
+
}());
|
|
235
|
+
export { GridLayout };
|
|
236
|
+
var small = function (rcs, val) {
|
|
237
|
+
var res;
|
|
238
|
+
var rows = rcs.rows || 5;
|
|
239
|
+
var cols = rcs.cols || 5;
|
|
240
|
+
if (val == null) {
|
|
241
|
+
res = Math.min(rows, cols);
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
var min = Math.min(rows, cols);
|
|
245
|
+
if (min === rcs.rows) {
|
|
246
|
+
rcs.rows = val;
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
rcs.cols = val;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
return res;
|
|
253
|
+
};
|
|
254
|
+
var large = function (rcs, val) {
|
|
255
|
+
var result;
|
|
256
|
+
var usedRows = rcs.rows || 5;
|
|
257
|
+
var usedCols = rcs.cols || 5;
|
|
258
|
+
if (val == null) {
|
|
259
|
+
result = Math.max(usedRows, usedCols);
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
var max = Math.max(usedRows, usedCols);
|
|
263
|
+
if (max === rcs.rows) {
|
|
264
|
+
rcs.rows = val;
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
rcs.cols = val;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
return result;
|
|
271
|
+
};
|
|
272
|
+
var used = function (cellUsed, rc) {
|
|
273
|
+
return cellUsed["c-" + rc.row + "-" + rc.col] || false;
|
|
274
|
+
};
|
|
275
|
+
var use = function (cellUsed, rc) {
|
|
276
|
+
return (cellUsed["c-" + rc.row + "-" + rc.col] = true);
|
|
277
|
+
};
|
|
278
|
+
var moveToNextCell = function (rcs, rc) {
|
|
279
|
+
var cols = rcs.cols || 5;
|
|
280
|
+
rc.col++;
|
|
281
|
+
if (rc.col >= cols) {
|
|
282
|
+
rc.col = 0;
|
|
283
|
+
rc.row++;
|
|
284
|
+
}
|
|
285
|
+
};
|
|
286
|
+
var getPos = function (node, begin, cellWidth, cellHeight, id2manPos, rcs, rc, cellUsed) {
|
|
287
|
+
var x;
|
|
288
|
+
var y;
|
|
289
|
+
// see if we have a manual position set
|
|
290
|
+
var rcPos = id2manPos[node.id];
|
|
291
|
+
if (rcPos) {
|
|
292
|
+
x = rcPos.col * cellWidth + cellWidth / 2 + begin[0];
|
|
293
|
+
y = rcPos.row * cellHeight + cellHeight / 2 + begin[1];
|
|
294
|
+
}
|
|
295
|
+
else {
|
|
296
|
+
// otherwise set automatically
|
|
297
|
+
while (used(cellUsed, rc)) {
|
|
298
|
+
moveToNextCell(rcs, rc);
|
|
299
|
+
}
|
|
300
|
+
x = rc.col * cellWidth + cellWidth / 2 + begin[0];
|
|
301
|
+
y = rc.row * cellHeight + cellHeight / 2 + begin[1];
|
|
302
|
+
use(cellUsed, rc);
|
|
303
|
+
moveToNextCell(rcs, rc);
|
|
304
|
+
}
|
|
305
|
+
node.data.x = x;
|
|
306
|
+
node.data.y = y;
|
|
307
|
+
};
|
|
308
|
+
//# sourceMappingURL=grid.js.map
|
package/lib/grid.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid.js","sourceRoot":"","sources":["../src/grid.ts"],"names":[],"mappings":"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"}
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export * from './circular';
|
|
2
|
+
export * from './supervisor';
|
|
3
|
+
export * from './registry';
|
|
4
|
+
export * from './grid';
|
|
5
|
+
export * from './random';
|
|
6
|
+
export * from './mds';
|
|
7
|
+
export * from './concentric';
|
|
8
|
+
export * from './radial';
|
|
9
|
+
export * from './fruchterman';
|
|
10
|
+
export * from './d3Force';
|
|
11
|
+
export * from './force';
|
|
12
|
+
export * from './forceAtlas2';
|
|
13
|
+
export * from './dagre';
|
|
14
|
+
export * from './comboCombined';
|
|
15
|
+
export * from './types';
|
|
16
|
+
export * from './util';
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC"}
|
package/lib/mds.js
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { __assign, __awaiter, __generator } from "tslib";
|
|
2
|
+
import { Matrix as MLMatrix, SingularValueDecomposition } from "ml-matrix";
|
|
3
|
+
import { cloneFormatData, floydWarshall, getAdjMatrix, scaleMatrix, } from "./util";
|
|
4
|
+
import { handleSingleNodeGraph } from "./util/common";
|
|
5
|
+
var DEFAULTS_LAYOUT_OPTIONS = {
|
|
6
|
+
center: [0, 0],
|
|
7
|
+
linkDistance: 50,
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Layout arranging the nodes with multiple dimensional scaling algorithm
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* // Assign layout options when initialization.
|
|
14
|
+
* const layout = new MDSLayout({ center: [100, 100] });
|
|
15
|
+
* const positions = await layout.execute(graph); // { nodes: [], edges: [] }
|
|
16
|
+
*
|
|
17
|
+
* // Or use different options later.
|
|
18
|
+
* const layout = new MDSLayout({ center: [100, 100] });
|
|
19
|
+
* const positions = await layout.execute(graph, { rows: 20 }); // { nodes: [], edges: [] }
|
|
20
|
+
*
|
|
21
|
+
* // If you want to assign the positions directly to the nodes, use assign method.
|
|
22
|
+
* await layout.assign(graph, { center: [100, 100] });
|
|
23
|
+
*/
|
|
24
|
+
var MDSLayout = /** @class */ (function () {
|
|
25
|
+
function MDSLayout(options) {
|
|
26
|
+
if (options === void 0) { options = {}; }
|
|
27
|
+
this.options = options;
|
|
28
|
+
this.id = "mds";
|
|
29
|
+
this.options = __assign(__assign({}, DEFAULTS_LAYOUT_OPTIONS), options);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Return the positions of nodes and edges(if needed).
|
|
33
|
+
*/
|
|
34
|
+
MDSLayout.prototype.execute = function (graph, options) {
|
|
35
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
36
|
+
return __generator(this, function (_a) {
|
|
37
|
+
return [2 /*return*/, this.genericMDSLayout(false, graph, options)];
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* To directly assign the positions to the nodes.
|
|
43
|
+
*/
|
|
44
|
+
MDSLayout.prototype.assign = function (graph, options) {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
46
|
+
return __generator(this, function (_a) {
|
|
47
|
+
this.genericMDSLayout(true, graph, options);
|
|
48
|
+
return [2 /*return*/];
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
MDSLayout.prototype.genericMDSLayout = function (assign, graph, options) {
|
|
53
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
54
|
+
var mergedOptions, _a, center, _b, linkDistance, nodes, edges, adjMatrix, distances, scaledD, positions, layoutNodes, result;
|
|
55
|
+
return __generator(this, function (_c) {
|
|
56
|
+
mergedOptions = __assign(__assign({}, this.options), options);
|
|
57
|
+
_a = mergedOptions.center, center = _a === void 0 ? [0, 0] : _a, _b = mergedOptions.linkDistance, linkDistance = _b === void 0 ? 50 : _b;
|
|
58
|
+
nodes = graph.getAllNodes();
|
|
59
|
+
edges = graph.getAllEdges();
|
|
60
|
+
if (!(nodes === null || nodes === void 0 ? void 0 : nodes.length) || nodes.length === 1) {
|
|
61
|
+
return [2 /*return*/, handleSingleNodeGraph(graph, assign, center)];
|
|
62
|
+
}
|
|
63
|
+
adjMatrix = getAdjMatrix({ nodes: nodes, edges: edges }, false);
|
|
64
|
+
distances = floydWarshall(adjMatrix);
|
|
65
|
+
handleInfinity(distances);
|
|
66
|
+
scaledD = scaleMatrix(distances, linkDistance);
|
|
67
|
+
positions = runMDS(scaledD);
|
|
68
|
+
layoutNodes = [];
|
|
69
|
+
positions.forEach(function (p, i) {
|
|
70
|
+
var cnode = cloneFormatData(nodes[i]);
|
|
71
|
+
cnode.data.x = p[0] + center[0];
|
|
72
|
+
cnode.data.y = p[1] + center[1];
|
|
73
|
+
layoutNodes.push(cnode);
|
|
74
|
+
});
|
|
75
|
+
if (assign) {
|
|
76
|
+
layoutNodes.forEach(function (node) {
|
|
77
|
+
return graph.mergeNodeData(node.id, {
|
|
78
|
+
x: node.data.x,
|
|
79
|
+
y: node.data.y,
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
result = {
|
|
84
|
+
nodes: layoutNodes,
|
|
85
|
+
edges: edges,
|
|
86
|
+
};
|
|
87
|
+
return [2 /*return*/, result];
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
return MDSLayout;
|
|
92
|
+
}());
|
|
93
|
+
export { MDSLayout };
|
|
94
|
+
var handleInfinity = function (distances) {
|
|
95
|
+
var maxDistance = -999999;
|
|
96
|
+
distances.forEach(function (row) {
|
|
97
|
+
row.forEach(function (value) {
|
|
98
|
+
if (value === Infinity) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
if (maxDistance < value) {
|
|
102
|
+
maxDistance = value;
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
distances.forEach(function (row, i) {
|
|
107
|
+
row.forEach(function (value, j) {
|
|
108
|
+
if (value === Infinity) {
|
|
109
|
+
distances[i][j] = maxDistance;
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* mds 算法
|
|
116
|
+
* @return {array} positions 计算后的节点位置数组
|
|
117
|
+
*/
|
|
118
|
+
var runMDS = function (distances) {
|
|
119
|
+
var dimension = 2;
|
|
120
|
+
// square distances
|
|
121
|
+
var M = MLMatrix.mul(MLMatrix.pow(distances, 2), -0.5);
|
|
122
|
+
// double centre the rows/columns
|
|
123
|
+
var rowMeans = M.mean("row");
|
|
124
|
+
var colMeans = M.mean("column");
|
|
125
|
+
var totalMean = M.mean();
|
|
126
|
+
M.add(totalMean).subRowVector(rowMeans).subColumnVector(colMeans);
|
|
127
|
+
// take the SVD of the double centred matrix, and return the
|
|
128
|
+
// points from it
|
|
129
|
+
var ret = new SingularValueDecomposition(M);
|
|
130
|
+
var eigenValues = MLMatrix.sqrt(ret.diagonalMatrix).diagonal();
|
|
131
|
+
return ret.leftSingularVectors.toJSON().map(function (row) {
|
|
132
|
+
return MLMatrix.mul([row], [eigenValues])
|
|
133
|
+
.toJSON()[0]
|
|
134
|
+
.splice(0, dimension);
|
|
135
|
+
});
|
|
136
|
+
};
|
|
137
|
+
//# sourceMappingURL=mds.js.map
|
package/lib/mds.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mds.js","sourceRoot":"","sources":["../src/mds.ts"],"names":[],"mappings":"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"}
|