@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.
Files changed (135) hide show
  1. package/dist/5fc550bbb6f708833d84.worker.js +2 -0
  2. package/dist/5fc550bbb6f708833d84.worker.js.map +1 -0
  3. package/dist/index.min.js +1 -1
  4. package/dist/index.min.js.map +1 -1
  5. package/package.json +1 -1
  6. package/dist/5cb5472f0e3cc36231e3.worker.js +0 -2
  7. package/dist/5cb5472f0e3cc36231e3.worker.js.map +0 -1
  8. package/lib/bundle-entry.js +0 -19
  9. package/lib/bundle-entry.js.map +0 -1
  10. package/lib/bundle-supervisor.js +0 -94
  11. package/lib/bundle-supervisor.js.map +0 -1
  12. package/lib/bundle-worker.js +0 -53
  13. package/lib/bundle-worker.js.map +0 -1
  14. package/lib/circular.js +0 -258
  15. package/lib/circular.js.map +0 -1
  16. package/lib/comboCombined.js +0 -441
  17. package/lib/comboCombined.js.map +0 -1
  18. package/lib/concentric.js +0 -229
  19. package/lib/concentric.js.map +0 -1
  20. package/lib/d3Force/forceInBox.js +0 -331
  21. package/lib/d3Force/forceInBox.js.map +0 -1
  22. package/lib/d3Force/index.js +0 -339
  23. package/lib/d3Force/index.js.map +0 -1
  24. package/lib/dagre/acyclic.js +0 -62
  25. package/lib/dagre/acyclic.js.map +0 -1
  26. package/lib/dagre/add-border-segments.js +0 -37
  27. package/lib/dagre/add-border-segments.js.map +0 -1
  28. package/lib/dagre/coordinate-system.js +0 -65
  29. package/lib/dagre/coordinate-system.js.map +0 -1
  30. package/lib/dagre/data/list.js +0 -50
  31. package/lib/dagre/data/list.js.map +0 -1
  32. package/lib/dagre/greedy-fas.js +0 -147
  33. package/lib/dagre/greedy-fas.js.map +0 -1
  34. package/lib/dagre/layout.js +0 -470
  35. package/lib/dagre/layout.js.map +0 -1
  36. package/lib/dagre/nesting-graph.js +0 -153
  37. package/lib/dagre/nesting-graph.js.map +0 -1
  38. package/lib/dagre/normalize.js +0 -98
  39. package/lib/dagre/normalize.js.map +0 -1
  40. package/lib/dagre/order/add-subgraph-constraints.js +0 -45
  41. package/lib/dagre/order/add-subgraph-constraints.js.map +0 -1
  42. package/lib/dagre/order/barycenter.js +0 -23
  43. package/lib/dagre/order/barycenter.js.map +0 -1
  44. package/lib/dagre/order/build-layer-graph.js +0 -96
  45. package/lib/dagre/order/build-layer-graph.js.map +0 -1
  46. package/lib/dagre/order/cross-count.js +0 -63
  47. package/lib/dagre/order/cross-count.js.map +0 -1
  48. package/lib/dagre/order/index.js +0 -91
  49. package/lib/dagre/order/index.js.map +0 -1
  50. package/lib/dagre/order/init-data-order.js +0 -28
  51. package/lib/dagre/order/init-data-order.js.map +0 -1
  52. package/lib/dagre/order/init-order.js +0 -50
  53. package/lib/dagre/order/init-order.js.map +0 -1
  54. package/lib/dagre/order/resolve-conflicts.js +0 -121
  55. package/lib/dagre/order/resolve-conflicts.js.map +0 -1
  56. package/lib/dagre/order/sort-subgraph.js +0 -84
  57. package/lib/dagre/order/sort-subgraph.js.map +0 -1
  58. package/lib/dagre/order/sort.js +0 -74
  59. package/lib/dagre/order/sort.js.map +0 -1
  60. package/lib/dagre/parent-dummy-chains.js +0 -80
  61. package/lib/dagre/parent-dummy-chains.js.map +0 -1
  62. package/lib/dagre/position/bk.js +0 -398
  63. package/lib/dagre/position/bk.js.map +0 -1
  64. package/lib/dagre/position/index.js +0 -54
  65. package/lib/dagre/position/index.js.map +0 -1
  66. package/lib/dagre/rank/feasible-tree.js +0 -164
  67. package/lib/dagre/rank/feasible-tree.js.map +0 -1
  68. package/lib/dagre/rank/index.js +0 -48
  69. package/lib/dagre/rank/index.js.map +0 -1
  70. package/lib/dagre/rank/network-simplex.js +0 -232
  71. package/lib/dagre/rank/network-simplex.js.map +0 -1
  72. package/lib/dagre/rank/util.js +0 -138
  73. package/lib/dagre/rank/util.js.map +0 -1
  74. package/lib/dagre/util.js +0 -289
  75. package/lib/dagre/util.js.map +0 -1
  76. package/lib/dagre.js +0 -545
  77. package/lib/dagre.js.map +0 -1
  78. package/lib/force/forceNBody.js +0 -123
  79. package/lib/force/forceNBody.js.map +0 -1
  80. package/lib/force/index.js +0 -808
  81. package/lib/force/index.js.map +0 -1
  82. package/lib/force/types.js +0 -2
  83. package/lib/force/types.js.map +0 -1
  84. package/lib/forceAtlas2/body.js +0 -91
  85. package/lib/forceAtlas2/body.js.map +0 -1
  86. package/lib/forceAtlas2/index.js +0 -562
  87. package/lib/forceAtlas2/index.js.map +0 -1
  88. package/lib/forceAtlas2/quad.js +0 -98
  89. package/lib/forceAtlas2/quad.js.map +0 -1
  90. package/lib/forceAtlas2/quadTree.js +0 -105
  91. package/lib/forceAtlas2/quadTree.js.map +0 -1
  92. package/lib/fruchterman.js +0 -376
  93. package/lib/fruchterman.js.map +0 -1
  94. package/lib/grid.js +0 -308
  95. package/lib/grid.js.map +0 -1
  96. package/lib/index.js +0 -17
  97. package/lib/index.js.map +0 -1
  98. package/lib/mds.js +0 -137
  99. package/lib/mds.js.map +0 -1
  100. package/lib/radial/index.js +0 -355
  101. package/lib/radial/index.js.map +0 -1
  102. package/lib/radial/mds.js +0 -29
  103. package/lib/radial/mds.js.map +0 -1
  104. package/lib/radial/radial-nonoverlap-force.js +0 -100
  105. package/lib/radial/radial-nonoverlap-force.js.map +0 -1
  106. package/lib/random.js +0 -98
  107. package/lib/random.js.map +0 -1
  108. package/lib/registry.js +0 -27
  109. package/lib/registry.js.map +0 -1
  110. package/lib/supervisor.js +0 -90
  111. package/lib/supervisor.js.map +0 -1
  112. package/lib/types.js +0 -4
  113. package/lib/types.js.map +0 -1
  114. package/lib/util/array.js +0 -2
  115. package/lib/util/array.js.map +0 -1
  116. package/lib/util/common.d.ts +0 -12
  117. package/lib/util/common.js +0 -32
  118. package/lib/util/common.js.map +0 -1
  119. package/lib/util/function.js +0 -127
  120. package/lib/util/function.js.map +0 -1
  121. package/lib/util/gpu.js +0 -214
  122. package/lib/util/gpu.js.map +0 -1
  123. package/lib/util/index.js +0 -7
  124. package/lib/util/index.js.map +0 -1
  125. package/lib/util/math.js +0 -257
  126. package/lib/util/math.js.map +0 -1
  127. package/lib/util/number.js +0 -5
  128. package/lib/util/number.js.map +0 -1
  129. package/lib/util/object.js +0 -42
  130. package/lib/util/object.js.map +0 -1
  131. package/lib/util/string.js +0 -15
  132. package/lib/util/string.js.map +0 -1
  133. package/lib/worker.d.ts +0 -1
  134. package/lib/worker.js +0 -45
  135. package/lib/worker.js.map +0 -1
package/lib/dagre/util.js DELETED
@@ -1,289 +0,0 @@
1
- import { __assign, __read, __spreadArray } from "tslib";
2
- import { Graph } from '@antv/graphlib';
3
- import { isNumber } from '@antv/util';
4
- var safeSort = function (valueA, valueB) {
5
- return Number(valueA) - Number(valueB);
6
- };
7
- /*
8
- * Adds a dummy node to the graph and return v.
9
- */
10
- export var addDummyNode = function (g, type, data, name) {
11
- var v;
12
- do {
13
- v = "" + name + Math.random();
14
- } while (g.hasNode(v));
15
- data.dummy = type;
16
- g.addNode({
17
- id: v,
18
- data: data,
19
- });
20
- return v;
21
- };
22
- /*
23
- * Returns a new graph with only simple edges. Handles aggregation of data
24
- * associated with multi-edges.
25
- */
26
- export var simplify = function (g) {
27
- var simplified = new Graph();
28
- g.getAllNodes().forEach(function (v) {
29
- simplified.addNode(__assign({}, v));
30
- });
31
- g.getAllEdges().forEach(function (e) {
32
- var edge = simplified
33
- .getRelatedEdges(e.source, 'out')
34
- .find(function (edge) { return edge.target === e.target; });
35
- if (!edge) {
36
- simplified.addEdge({
37
- id: e.id,
38
- source: e.source,
39
- target: e.target,
40
- data: {
41
- weight: e.data.weight || 0,
42
- minlen: e.data.minlen || 1,
43
- },
44
- });
45
- }
46
- else {
47
- simplified.updateEdgeData(edge === null || edge === void 0 ? void 0 : edge.id, __assign(__assign({}, edge.data), { weight: edge.data.weight + e.data.weight || 0, minlen: Math.max(edge.data.minlen, e.data.minlen || 1) }));
48
- }
49
- });
50
- return simplified;
51
- };
52
- export var asNonCompoundGraph = function (g) {
53
- var simplified = new Graph();
54
- g.getAllNodes().forEach(function (node) {
55
- if (!g.getChildren(node.id).length) {
56
- simplified.addNode(__assign({}, node));
57
- }
58
- });
59
- g.getAllEdges().forEach(function (edge) {
60
- simplified.addEdge(edge);
61
- });
62
- return simplified;
63
- };
64
- export var zipObject = function (keys, values) {
65
- return keys === null || keys === void 0 ? void 0 : keys.reduce(function (obj, key, i) {
66
- obj[key] = values[i];
67
- return obj;
68
- }, {});
69
- };
70
- export var successorWeights = function (g) {
71
- var weightsMap = {};
72
- g.getAllNodes().forEach(function (node) {
73
- var sucs = {};
74
- g.getRelatedEdges(node.id, 'out').forEach(function (e) {
75
- sucs[e.target] = (sucs[e.target] || 0) + (e.data.weight || 0);
76
- });
77
- weightsMap[node.id] = sucs;
78
- });
79
- return weightsMap;
80
- };
81
- export var predecessorWeights = function (g) {
82
- var nodes = g.getAllNodes();
83
- var weightMap = nodes.map(function (v) {
84
- var preds = {};
85
- g.getRelatedEdges(v.id, 'in').forEach(function (e) {
86
- preds[e.source] = (preds[e.source] || 0) + e.data.weight;
87
- });
88
- return preds;
89
- });
90
- return zipObject(nodes.map(function (n) { return n.id; }), weightMap);
91
- };
92
- /*
93
- * Finds where a line starting at point ({x, y}) would intersect a rectangle
94
- * ({x, y, width, height}) if it were pointing at the rectangle's center.
95
- */
96
- export var intersectRect = function (rect, point) {
97
- var x = Number(rect.x);
98
- var y = Number(rect.y);
99
- // Rectangle intersection algorithm from:
100
- // http://math.stackexchange.com/questions/108113/find-edge-between-two-boxes
101
- var dx = Number(point.x) - x;
102
- var dy = Number(point.y) - y;
103
- var w = Number(rect.width) / 2;
104
- var h = Number(rect.height) / 2;
105
- if (!dx && !dy) {
106
- // completely overlapped directly, then return points its self
107
- return { x: 0, y: 0 };
108
- }
109
- var sx;
110
- var sy;
111
- if (Math.abs(dy) * w > Math.abs(dx) * h) {
112
- // Intersection is top or bottom of rect.
113
- if (dy < 0) {
114
- h = -h;
115
- }
116
- sx = (h * dx) / dy;
117
- sy = h;
118
- }
119
- else {
120
- // Intersection is left or right of rect.
121
- if (dx < 0) {
122
- w = -w;
123
- }
124
- sx = w;
125
- sy = (w * dy) / dx;
126
- }
127
- return { x: x + sx, y: y + sy };
128
- };
129
- /*
130
- * Given a DAG with each node assigned "rank" and "order" properties, this
131
- * const will produce a matrix with the ids of each node.
132
- */
133
- export var buildLayerMatrix = function (g) {
134
- var layeringNodes = [];
135
- var rankMax = maxRank(g) + 1;
136
- for (var i = 0; i < rankMax; i++) {
137
- layeringNodes.push([]);
138
- }
139
- // const layering = _.map(_.range(maxRank(g) + 1), function() { return []; });
140
- g.getAllNodes().forEach(function (node) {
141
- var rank = node.data.rank;
142
- if (rank !== undefined && layeringNodes[rank]) {
143
- layeringNodes[rank].push(node.id);
144
- }
145
- });
146
- for (var i = 0; i < rankMax; i++) {
147
- layeringNodes[i] = layeringNodes[i].sort(function (va, vb) {
148
- return safeSort(g.getNode(va).data.order, g.getNode(vb).data.order);
149
- });
150
- }
151
- return layeringNodes;
152
- };
153
- /*
154
- * Adjusts the ranks for all nodes in the graph such that all nodes v have
155
- * rank(v) >= 0 and at least one node w has rank(w) = 0.
156
- */
157
- export var normalizeRanks = function (g) {
158
- var nodeRanks = g
159
- .getAllNodes()
160
- .filter(function (v) { return v.data.rank !== undefined; })
161
- .map(function (v) { return v.data.rank; });
162
- var min = Math.min.apply(Math, __spreadArray([], __read(nodeRanks)));
163
- g.getAllNodes().forEach(function (v) {
164
- if (v.data.hasOwnProperty('rank') && min !== Infinity) {
165
- v.data.rank -= min;
166
- }
167
- });
168
- };
169
- export var removeEmptyRanks = function (g, nodeRankFactor) {
170
- if (nodeRankFactor === void 0) { nodeRankFactor = 0; }
171
- // Ranks may not start at 0, so we need to offset them
172
- var nodes = g.getAllNodes();
173
- var nodeRanks = nodes
174
- .filter(function (v) { return v.data.rank !== undefined; })
175
- .map(function (v) { return v.data.rank; });
176
- var offset = Math.min.apply(Math, __spreadArray([], __read(nodeRanks)));
177
- var layers = [];
178
- nodes.forEach(function (v) {
179
- var rank = (v.data.rank || 0) - offset;
180
- if (!layers[rank]) {
181
- layers[rank] = [];
182
- }
183
- layers[rank].push(v.id);
184
- });
185
- var delta = 0;
186
- for (var i = 0; i < layers.length; i++) {
187
- var vs = layers[i];
188
- if (vs === undefined) {
189
- if (i % nodeRankFactor !== 0) {
190
- delta -= 1;
191
- }
192
- }
193
- else if (delta) {
194
- vs === null || vs === void 0 ? void 0 : vs.forEach(function (v) {
195
- var node = g.getNode(v);
196
- if (node) {
197
- node.data.rank = node.data.rank || 0;
198
- node.data.rank += delta;
199
- }
200
- });
201
- }
202
- }
203
- };
204
- export var addBorderNode = function (g, prefix, rank, order) {
205
- var node = {
206
- width: 0,
207
- height: 0,
208
- };
209
- if (isNumber(rank) && isNumber(order)) {
210
- node.rank = rank;
211
- node.order = order;
212
- }
213
- return addDummyNode(g, 'border', node, prefix);
214
- };
215
- export var maxRank = function (g) {
216
- var maxRank;
217
- g.getAllNodes().forEach(function (v) {
218
- var rank = v.data.rank;
219
- if (rank !== undefined) {
220
- if (maxRank === undefined || rank > maxRank) {
221
- maxRank = rank;
222
- }
223
- }
224
- });
225
- if (!maxRank) {
226
- maxRank = 0;
227
- }
228
- return maxRank;
229
- };
230
- /*
231
- * Partition a collection into two groups: `lhs` and `rhs`. If the supplied
232
- * const returns true for an entry it goes into `lhs`. Otherwise it goes
233
- * into `rhs.
234
- */
235
- export var partition = function (collection, fn) {
236
- var result = { lhs: [], rhs: [] };
237
- collection === null || collection === void 0 ? void 0 : collection.forEach(function (value) {
238
- if (fn(value)) {
239
- result.lhs.push(value);
240
- }
241
- else {
242
- result.rhs.push(value);
243
- }
244
- });
245
- return result;
246
- };
247
- export var minBy = function (array, func) {
248
- return array.reduce(function (a, b) {
249
- var valA = func(a);
250
- var valB = func(b);
251
- return valA > valB ? b : a;
252
- });
253
- };
254
- var doDFS = function (graph, node, postorder, visited, navigator, result) {
255
- if (!visited.includes(node.id)) {
256
- visited.push(node.id);
257
- if (!postorder) {
258
- result.push(node.id);
259
- }
260
- navigator(node.id).forEach(function (n) {
261
- return doDFS(graph, n, postorder, visited, navigator, result);
262
- });
263
- if (postorder) {
264
- result.push(node.id);
265
- }
266
- }
267
- };
268
- /**
269
- * @description DFS traversal.
270
- * @description.zh-CN DFS 遍历。
271
- */
272
- export var dfs = function (graph, node, order, isDirected) {
273
- var nodes = Array.isArray(node) ? node : [node];
274
- var navigator = function (n) {
275
- return (isDirected ? graph.getSuccessors(n) : graph.getNeighbors(n));
276
- };
277
- var results = [];
278
- var visited = [];
279
- nodes.forEach(function (node) {
280
- if (!graph.hasNode(node.id)) {
281
- throw new Error("Graph does not have node: " + node);
282
- }
283
- else {
284
- doDFS(graph, node, order === 'post', visited, navigator, results);
285
- }
286
- });
287
- return results;
288
- };
289
- //# sourceMappingURL=util.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/dagre/util.ts"],"names":[],"mappings":"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"}