@antv/layout 1.2.13 → 1.2.14-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.
Files changed (238) hide show
  1. package/dist/85db61ddc757dae66e04.worker.js +2 -0
  2. package/dist/85db61ddc757dae66e04.worker.js.map +1 -0
  3. package/dist/index.min.js +1 -1
  4. package/dist/index.min.js.map +1 -1
  5. package/lib/{dagre → antv-dagre}/acyclic.d.ts +1 -1
  6. package/lib/antv-dagre/acyclic.js +65 -0
  7. package/lib/antv-dagre/acyclic.js.map +1 -0
  8. package/lib/antv-dagre/add-border-segments.js +41 -0
  9. package/lib/antv-dagre/add-border-segments.js.map +1 -0
  10. package/lib/{dagre → antv-dagre}/coordinate-system.d.ts +2 -1
  11. package/lib/antv-dagre/coordinate-system.js +69 -0
  12. package/lib/antv-dagre/coordinate-system.js.map +1 -0
  13. package/lib/{dagre → antv-dagre}/data/list.d.ts +1 -1
  14. package/lib/{dagre → antv-dagre}/data/list.js +23 -22
  15. package/lib/antv-dagre/data/list.js.map +1 -0
  16. package/lib/{dagre → antv-dagre}/greedy-fas.d.ts +2 -2
  17. package/lib/antv-dagre/greedy-fas.js +141 -0
  18. package/lib/antv-dagre/greedy-fas.js.map +1 -0
  19. package/lib/{dagre → antv-dagre}/layout.d.ts +2 -1
  20. package/lib/{dagre → antv-dagre}/layout.js +156 -154
  21. package/lib/antv-dagre/layout.js.map +1 -0
  22. package/lib/{dagre → antv-dagre}/nesting-graph.js +42 -39
  23. package/lib/antv-dagre/nesting-graph.js.map +1 -0
  24. package/lib/{dagre → antv-dagre}/normalize.d.ts +2 -2
  25. package/lib/{dagre → antv-dagre}/normalize.js +29 -25
  26. package/lib/antv-dagre/normalize.js.map +1 -0
  27. package/lib/{dagre → antv-dagre}/order/add-subgraph-constraints.js +13 -9
  28. package/lib/antv-dagre/order/add-subgraph-constraints.js.map +1 -0
  29. package/lib/{dagre → antv-dagre}/order/barycenter.d.ts +2 -2
  30. package/lib/antv-dagre/order/barycenter.js +27 -0
  31. package/lib/antv-dagre/order/barycenter.js.map +1 -0
  32. package/lib/{dagre → antv-dagre}/order/build-layer-graph.js +23 -23
  33. package/lib/antv-dagre/order/build-layer-graph.js.map +1 -0
  34. package/lib/antv-dagre/order/cross-count.d.ts +3 -0
  35. package/lib/{dagre → antv-dagre}/order/cross-count.js +21 -17
  36. package/lib/antv-dagre/order/cross-count.js.map +1 -0
  37. package/lib/{dagre → antv-dagre}/order/index.d.ts +1 -1
  38. package/lib/antv-dagre/order/index.js +95 -0
  39. package/lib/antv-dagre/order/index.js.map +1 -0
  40. package/lib/{dagre → antv-dagre}/order/init-data-order.js +12 -9
  41. package/lib/antv-dagre/order/init-data-order.js.map +1 -0
  42. package/lib/antv-dagre/order/init-order.js +51 -0
  43. package/lib/antv-dagre/order/init-order.js.map +1 -0
  44. package/lib/{dagre → antv-dagre}/order/resolve-conflicts.d.ts +3 -3
  45. package/lib/{dagre → antv-dagre}/order/resolve-conflicts.js +35 -36
  46. package/lib/antv-dagre/order/resolve-conflicts.js.map +1 -0
  47. package/lib/{dagre → antv-dagre}/order/sort-subgraph.js +28 -23
  48. package/lib/antv-dagre/order/sort-subgraph.js.map +1 -0
  49. package/lib/{dagre → antv-dagre}/order/sort.d.ts +2 -2
  50. package/lib/{dagre → antv-dagre}/order/sort.js +23 -19
  51. package/lib/antv-dagre/order/sort.js.map +1 -0
  52. package/lib/{dagre → antv-dagre}/parent-dummy-chains.js +32 -28
  53. package/lib/antv-dagre/parent-dummy-chains.js.map +1 -0
  54. package/lib/{dagre → antv-dagre}/position/bk.d.ts +5 -4
  55. package/lib/{dagre → antv-dagre}/position/bk.js +162 -148
  56. package/lib/antv-dagre/position/bk.js.map +1 -0
  57. package/lib/{dagre → antv-dagre}/position/index.d.ts +2 -1
  58. package/lib/antv-dagre/position/index.js +55 -0
  59. package/lib/antv-dagre/position/index.js.map +1 -0
  60. package/lib/{dagre → antv-dagre}/rank/feasible-tree.d.ts +2 -2
  61. package/lib/{dagre → antv-dagre}/rank/feasible-tree.js +42 -38
  62. package/lib/antv-dagre/rank/feasible-tree.js.map +1 -0
  63. package/lib/antv-dagre/rank/index.d.ts +2 -0
  64. package/lib/{dagre → antv-dagre}/rank/index.js +17 -13
  65. package/lib/antv-dagre/rank/index.js.map +1 -0
  66. package/lib/{dagre → antv-dagre}/rank/network-simplex.d.ts +2 -2
  67. package/lib/{dagre → antv-dagre}/rank/network-simplex.js +90 -81
  68. package/lib/antv-dagre/rank/network-simplex.js.map +1 -0
  69. package/lib/{dagre → antv-dagre}/rank/util.d.ts +2 -2
  70. package/lib/{dagre → antv-dagre}/rank/util.js +37 -32
  71. package/lib/antv-dagre/rank/util.js.map +1 -0
  72. package/lib/antv-dagre/types.d.ts +2 -0
  73. package/lib/antv-dagre/types.js +3 -0
  74. package/lib/antv-dagre/types.js.map +1 -0
  75. package/lib/{dagre → antv-dagre}/util.d.ts +1 -1
  76. package/lib/antv-dagre/util.js +299 -0
  77. package/lib/antv-dagre/util.js.map +1 -0
  78. package/lib/antv-dagre.d.ts +50 -0
  79. package/lib/antv-dagre.js +542 -0
  80. package/lib/antv-dagre.js.map +1 -0
  81. package/lib/bundle-entry.d.ts +2 -18
  82. package/lib/bundle-entry.js +5 -18
  83. package/lib/bundle-entry.js.map +1 -1
  84. package/lib/bundle-supervisor.d.ts +4 -22
  85. package/lib/bundle-supervisor.js +59 -54
  86. package/lib/bundle-supervisor.js.map +1 -1
  87. package/lib/bundle-worker.d.ts +1 -1
  88. package/lib/bundle-worker.js +38 -35
  89. package/lib/bundle-worker.js.map +1 -1
  90. package/lib/circular.d.ts +1 -1
  91. package/lib/circular.js +133 -145
  92. package/lib/circular.js.map +1 -1
  93. package/lib/comboCombined.d.ts +1 -1
  94. package/lib/comboCombined.js +273 -299
  95. package/lib/comboCombined.js.map +1 -1
  96. package/lib/concentric.d.ts +1 -1
  97. package/lib/concentric.js +173 -179
  98. package/lib/concentric.js.map +1 -1
  99. package/lib/d3Force/forceInBox.js +80 -78
  100. package/lib/d3Force/forceInBox.js.map +1 -1
  101. package/lib/d3Force/index.d.ts +2 -2
  102. package/lib/d3Force/index.js +207 -229
  103. package/lib/d3Force/index.js.map +1 -1
  104. package/lib/dagre.d.ts +13 -24
  105. package/lib/dagre.js +61 -542
  106. package/lib/dagre.js.map +1 -1
  107. package/lib/exports.d.ts +17 -0
  108. package/lib/exports.js +20 -0
  109. package/lib/exports.js.map +1 -0
  110. package/lib/force/forceNBody.js +48 -47
  111. package/lib/force/forceNBody.js.map +1 -1
  112. package/lib/force/index.d.ts +1 -1
  113. package/lib/force/index.js +301 -324
  114. package/lib/force/index.js.map +1 -1
  115. package/lib/force/types.d.ts +5 -5
  116. package/lib/force/types.js +2 -1
  117. package/lib/forceAtlas2/body.d.ts +1 -1
  118. package/lib/forceAtlas2/body.js +32 -31
  119. package/lib/forceAtlas2/body.js.map +1 -1
  120. package/lib/forceAtlas2/index.d.ts +1 -1
  121. package/lib/forceAtlas2/index.js +219 -227
  122. package/lib/forceAtlas2/index.js.map +1 -1
  123. package/lib/forceAtlas2/quad.d.ts +2 -2
  124. package/lib/forceAtlas2/quad.js +43 -42
  125. package/lib/forceAtlas2/quad.js.map +1 -1
  126. package/lib/forceAtlas2/quadTree.js +19 -17
  127. package/lib/forceAtlas2/quadTree.js.map +1 -1
  128. package/lib/fruchterman.d.ts +1 -1
  129. package/lib/fruchterman.js +203 -219
  130. package/lib/fruchterman.js.map +1 -1
  131. package/lib/grid.d.ts +1 -1
  132. package/lib/grid.js +201 -207
  133. package/lib/grid.js.map +1 -1
  134. package/lib/index.d.ts +1 -15
  135. package/lib/index.js +5 -16
  136. package/lib/index.js.map +1 -1
  137. package/lib/mds.d.ts +1 -1
  138. package/lib/mds.js +73 -79
  139. package/lib/mds.js.map +1 -1
  140. package/lib/radial/index.d.ts +1 -1
  141. package/lib/radial/index.js +183 -186
  142. package/lib/radial/index.js.map +1 -1
  143. package/lib/radial/mds.d.ts +1 -1
  144. package/lib/radial/mds.js +20 -14
  145. package/lib/radial/mds.js.map +1 -1
  146. package/lib/radial/radial-nonoverlap-force.d.ts +2 -2
  147. package/lib/radial/radial-nonoverlap-force.js +40 -37
  148. package/lib/radial/radial-nonoverlap-force.js.map +1 -1
  149. package/lib/random.d.ts +1 -1
  150. package/lib/random.js +57 -66
  151. package/lib/random.js.map +1 -1
  152. package/lib/registry.d.ts +2 -2
  153. package/lib/registry.js +30 -25
  154. package/lib/registry.js.map +1 -1
  155. package/lib/supervisor.d.ts +2 -3
  156. package/lib/supervisor.js +63 -58
  157. package/lib/supervisor.js.map +1 -1
  158. package/lib/types.d.ts +20 -75
  159. package/lib/types.js +5 -1
  160. package/lib/types.js.map +1 -1
  161. package/lib/util/array.js +4 -1
  162. package/lib/util/array.js.map +1 -1
  163. package/lib/util/common.d.ts +1 -1
  164. package/lib/util/common.js +11 -8
  165. package/lib/util/common.js.map +1 -1
  166. package/lib/util/function.js +41 -37
  167. package/lib/util/function.js.map +1 -1
  168. package/lib/util/index.d.ts +0 -2
  169. package/lib/util/index.js +7 -6
  170. package/lib/util/index.js.map +1 -1
  171. package/lib/util/math.d.ts +1 -26
  172. package/lib/util/math.js +55 -154
  173. package/lib/util/math.js.map +1 -1
  174. package/lib/util/object.d.ts +1 -1
  175. package/lib/util/object.js +20 -15
  176. package/lib/util/object.js.map +1 -1
  177. package/lib/util/size.d.ts +3 -0
  178. package/lib/util/size.js +16 -0
  179. package/lib/util/size.js.map +1 -0
  180. package/lib/worker.js +36 -35
  181. package/lib/worker.js.map +1 -1
  182. package/package.json +10 -6
  183. package/dist/aa1bb0ccc06b11cf79c1.worker.js +0 -2
  184. package/dist/aa1bb0ccc06b11cf79c1.worker.js.map +0 -1
  185. package/lib/dagre/acyclic.js +0 -62
  186. package/lib/dagre/acyclic.js.map +0 -1
  187. package/lib/dagre/add-border-segments.js +0 -37
  188. package/lib/dagre/add-border-segments.js.map +0 -1
  189. package/lib/dagre/coordinate-system.js +0 -65
  190. package/lib/dagre/coordinate-system.js.map +0 -1
  191. package/lib/dagre/data/list.js.map +0 -1
  192. package/lib/dagre/greedy-fas.js +0 -147
  193. package/lib/dagre/greedy-fas.js.map +0 -1
  194. package/lib/dagre/layout.js.map +0 -1
  195. package/lib/dagre/nesting-graph.js.map +0 -1
  196. package/lib/dagre/normalize.js.map +0 -1
  197. package/lib/dagre/order/add-subgraph-constraints.js.map +0 -1
  198. package/lib/dagre/order/barycenter.js +0 -23
  199. package/lib/dagre/order/barycenter.js.map +0 -1
  200. package/lib/dagre/order/build-layer-graph.js.map +0 -1
  201. package/lib/dagre/order/cross-count.d.ts +0 -3
  202. package/lib/dagre/order/cross-count.js.map +0 -1
  203. package/lib/dagre/order/index.js +0 -91
  204. package/lib/dagre/order/index.js.map +0 -1
  205. package/lib/dagre/order/init-data-order.js.map +0 -1
  206. package/lib/dagre/order/init-order.js +0 -50
  207. package/lib/dagre/order/init-order.js.map +0 -1
  208. package/lib/dagre/order/resolve-conflicts.js.map +0 -1
  209. package/lib/dagre/order/sort-subgraph.js.map +0 -1
  210. package/lib/dagre/order/sort.js.map +0 -1
  211. package/lib/dagre/parent-dummy-chains.js.map +0 -1
  212. package/lib/dagre/position/bk.js.map +0 -1
  213. package/lib/dagre/position/index.js +0 -54
  214. package/lib/dagre/position/index.js.map +0 -1
  215. package/lib/dagre/rank/feasible-tree.js.map +0 -1
  216. package/lib/dagre/rank/index.d.ts +0 -2
  217. package/lib/dagre/rank/index.js.map +0 -1
  218. package/lib/dagre/rank/network-simplex.js.map +0 -1
  219. package/lib/dagre/rank/util.js.map +0 -1
  220. package/lib/dagre/util.js +0 -289
  221. package/lib/dagre/util.js.map +0 -1
  222. package/lib/util/gpu.d.ts +0 -45
  223. package/lib/util/gpu.js +0 -214
  224. package/lib/util/gpu.js.map +0 -1
  225. package/lib/util/number.d.ts +0 -1
  226. package/lib/util/number.js +0 -5
  227. package/lib/util/number.js.map +0 -1
  228. package/lib/util/string.d.ts +0 -1
  229. package/lib/util/string.js +0 -15
  230. package/lib/util/string.js.map +0 -1
  231. /package/lib/{dagre → antv-dagre}/add-border-segments.d.ts +0 -0
  232. /package/lib/{dagre → antv-dagre}/nesting-graph.d.ts +0 -0
  233. /package/lib/{dagre → antv-dagre}/order/add-subgraph-constraints.d.ts +0 -0
  234. /package/lib/{dagre → antv-dagre}/order/build-layer-graph.d.ts +0 -0
  235. /package/lib/{dagre → antv-dagre}/order/init-data-order.d.ts +0 -0
  236. /package/lib/{dagre → antv-dagre}/order/init-order.d.ts +0 -0
  237. /package/lib/{dagre → antv-dagre}/order/sort-subgraph.d.ts +0 -0
  238. /package/lib/{dagre → antv-dagre}/parent-dummy-chains.d.ts +0 -0
@@ -1,9 +1,11 @@
1
- import { __awaiter, __extends, __generator, __read, __rest } from "tslib";
2
- // @ts-ignore
3
- import EventEmitter from "@antv/event-emitter";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Supervisor = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const event_emitter_1 = tslib_1.__importDefault(require("@antv/event-emitter"));
4
6
  // @ts-ignore
5
7
  // Inline the worker as a Blob. @see https://github.com/developit/workerize-loader#inline
6
- import worker from "workerize-loader?inline!./bundle-worker";
8
+ const bundle_worker_1 = tslib_1.__importDefault(require("workerize-loader?inline!./bundle-worker"));
7
9
  /**
8
10
  * @example
9
11
  * const graph = new Graph();
@@ -14,17 +16,15 @@ import worker from "workerize-loader?inline!./bundle-worker";
14
16
  * supervisor.stop();
15
17
  * supervisor.kill();
16
18
  */
17
- var Supervisor = /** @class */ (function (_super) {
18
- __extends(Supervisor, _super);
19
- function Supervisor(graph, layout, options) {
20
- var _this = _super.call(this) || this;
21
- _this.graph = graph;
22
- _this.layout = layout;
23
- _this.options = options;
24
- _this.spawnWorker();
25
- return _this;
19
+ class Supervisor extends event_emitter_1.default {
20
+ constructor(graph, layout, options) {
21
+ super();
22
+ this.graph = graph;
23
+ this.layout = layout;
24
+ this.options = options;
25
+ this.spawnWorker();
26
26
  }
27
- Supervisor.prototype.spawnWorker = function () {
27
+ spawnWorker() {
28
28
  if (this.worker) {
29
29
  this.worker.terminate();
30
30
  }
@@ -35,60 +35,65 @@ var Supervisor = /** @class */ (function (_super) {
35
35
  // this.worker.addEventListener('message', this.handleWorkerMessage);
36
36
  // Use workerize-loader to create WebWorker.
37
37
  // @see https://github.com/developit/workerize-loader
38
- this.worker = worker();
38
+ this.worker = (0, bundle_worker_1.default)();
39
39
  if (this.running) {
40
40
  this.running = false;
41
41
  this.execute();
42
42
  }
43
- };
44
- Supervisor.prototype.execute = function () {
43
+ }
44
+ execute() {
45
45
  var _a;
46
- return __awaiter(this, void 0, void 0, function () {
47
- var _b, onTick, rest, payload, arraybufferWithNodesEdges, _c, positions;
48
- return __generator(this, function (_d) {
49
- switch (_d.label) {
50
- case 0:
51
- if (this.running)
52
- return [2 /*return*/, this];
53
- this.running = true;
54
- _b = this.layout.options, onTick = _b.onTick, rest = __rest(_b, ["onTick"]);
55
- payload = {
56
- layout: {
57
- id: this.layout.id,
58
- options: rest,
59
- iterations: (_a = this.options) === null || _a === void 0 ? void 0 : _a.iterations,
60
- },
61
- nodes: this.graph.getAllNodes(),
62
- edges: this.graph.getAllEdges(),
63
- };
64
- arraybufferWithNodesEdges = new Float32Array([0]);
65
- return [4 /*yield*/, this.worker.calculateLayout(payload, [
66
- arraybufferWithNodesEdges,
67
- ])];
68
- case 1:
69
- _c = __read.apply(void 0, [_d.sent(), 1]), positions = _c[0];
70
- return [2 /*return*/, positions];
71
- }
72
- });
46
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
47
+ if (this.running)
48
+ return this;
49
+ this.running = true;
50
+ // Payload should include nodes & edges(if needed).
51
+ const _b = this.layout.options, { onTick } = _b, rest = tslib_1.__rest(_b, ["onTick"]);
52
+ const payload = {
53
+ layout: {
54
+ id: this.layout.id,
55
+ options: rest,
56
+ iterations: (_a = this.options) === null || _a === void 0 ? void 0 : _a.iterations,
57
+ },
58
+ nodes: this.graph.getAllNodes(),
59
+ edges: this.graph.getAllEdges(),
60
+ };
61
+ /**
62
+ * TODO: Convert graph object to linear memory(e.g. csr, adjacency matrix), then transfer the ownership to worker.
63
+ * @example
64
+ * const arraybufferWithNodesEdges = graphToByteArrays(this.graph); // Float32Array
65
+ */
66
+ const arraybufferWithNodesEdges = new Float32Array([0]);
67
+ // TODO: Support transferables.
68
+ // @see https://www.npmjs.com/package/@naoak/workerize-transferable
69
+ // setupTransferableMethodsOnMain(this.worker, {
70
+ // calculateLayout: {
71
+ // // pick a transferable object from the method parameters
72
+ // pickTransferablesFromParams: (params) => [params[1].buffer],
73
+ // },
74
+ // });
75
+ const [positions] = yield this.worker.calculateLayout(payload, [
76
+ arraybufferWithNodesEdges,
77
+ ]);
78
+ return positions;
73
79
  });
74
- };
75
- Supervisor.prototype.stop = function () {
80
+ }
81
+ stop() {
76
82
  this.running = false;
77
83
  // trigger `layout.stop()` if needed
78
84
  this.worker.stopLayout();
79
85
  return this;
80
- };
81
- Supervisor.prototype.kill = function () {
86
+ }
87
+ kill() {
82
88
  if (this.worker) {
83
89
  this.worker.terminate();
84
90
  }
85
91
  // TODO: unbind listeners on graph.
86
92
  // TODO: release attached memory
87
- };
88
- Supervisor.prototype.isRunning = function () {
93
+ }
94
+ isRunning() {
89
95
  return this.running;
90
- };
91
- return Supervisor;
92
- }(EventEmitter));
93
- export { Supervisor };
96
+ }
97
+ }
98
+ exports.Supervisor = Supervisor;
94
99
  //# sourceMappingURL=bundle-supervisor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bundle-supervisor.js","sourceRoot":"","sources":["../src/bundle-supervisor.ts"],"names":[],"mappings":";AAAA,aAAa;AACb,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAG/C,aAAa;AACb,yFAAyF;AACzF,OAAO,MAAM,MAAM,yCAAyC,CAAC;AAuB7D;;;;;;;;;GASG;AACH;IAAgC,8BAAY;IAW1C,oBACU,KAAsB,EACtB,MAAmB,EACnB,OAAoC;QAH9C,YAKE,iBAAO,SAGR;QAPS,WAAK,GAAL,KAAK,CAAiB;QACtB,YAAM,GAAN,MAAM,CAAa;QACnB,aAAO,GAAP,OAAO,CAA6B;QAI5C,KAAI,CAAC,WAAW,EAAE,CAAC;;IACrB,CAAC;IAED,gCAAW,GAAX;QACE,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;SACzB;QAED;;WAEG;QACH,yDAAyD;QACzD,qEAAqE;QAErE,4CAA4C;QAC5C,qDAAqD;QACrD,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;QAEvB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;IACH,CAAC;IAEK,4BAAO,GAAb;;;;;;;wBACE,IAAI,IAAI,CAAC,OAAO;4BAAE,sBAAO,IAAI,EAAC;wBAE9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;wBAGd,KAAsB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAvC,MAAM,YAAA,EAAK,IAAI,cAAjB,UAAmB,CAAF,CAAyB;wBAC1C,OAAO,GAAG;4BACd,MAAM,EAAE;gCACN,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;gCAClB,OAAO,EAAE,IAAI;gCACb,UAAU,EAAE,MAAA,IAAI,CAAC,OAAO,0CAAE,UAAU;6BACrC;4BACD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;4BAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;yBAChC,CAAC;wBAOI,yBAAyB,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAWpC,qBAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE;gCAC7D,yBAAyB;6BAC1B,CAAC,EAAA;;wBAFI,KAAA,sBAAc,SAElB,KAAA,EAFK,SAAS,QAAA;wBAIhB,sBAAO,SAAS,EAAC;;;;KAClB;IAED,yBAAI,GAAJ;QACE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,oCAAoC;QACpC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAEzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yBAAI,GAAJ;QACE,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;SACzB;QAED,mCAAmC;QAEnC,gCAAgC;IAClC,CAAC;IAED,8BAAS,GAAT;QACE,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACH,iBAAC;AAAD,CAAC,AAxGD,CAAgC,YAAY,GAwG3C"}
1
+ {"version":3,"file":"bundle-supervisor.js","sourceRoot":"","sources":["../src/bundle-supervisor.ts"],"names":[],"mappings":";;;;AAAA,gFAA+C;AAG/C,aAAa;AACb,yFAAyF;AACzF,oGAA6D;AAG7D;;;;;;;;;GASG;AACH,MAAa,UAAW,SAAQ,uBAAY;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,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;SACzB;QAED;;WAEG;QACH,yDAAyD;QACzD,qEAAqE;QAErE,4CAA4C;QAC5C,qDAAqD;QACrD,IAAI,CAAC,MAAM,GAAG,IAAA,uBAAM,GAAE,CAAC;QAEvB,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,sBAAjB,UAAmB,CAAsB,CAAC;YAChD,MAAM,OAAO,GAAG;gBACd,MAAM,EAAE;oBACN,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;oBAClB,OAAO,EAAE,IAAI;oBACb,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,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE;gBAC7D,yBAAyB;aAC1B,CAAC,CAAC;YAEH,OAAO,SAAS,CAAC;;KAClB;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,oCAAoC;QACpC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAEzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;SACzB;QAED,mCAAmC;QAEnC,gCAAgC;IAClC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AAxGD,gCAwGC"}
@@ -1,3 +1,3 @@
1
- import type { Payload } from "./supervisor";
1
+ import type { Payload } from './supervisor';
2
2
  export declare function stopLayout(): void;
3
3
  export declare function calculateLayout(payload: Payload, transferables: Float32Array[]): Promise<(import("./types").LayoutMapping | Float32Array[])[]>;
@@ -1,8 +1,11 @@
1
- import { __awaiter, __generator } from "tslib";
2
- import { Graph } from "@antv/graphlib";
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calculateLayout = exports.stopLayout = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const graphlib_1 = require("@antv/graphlib");
3
6
  // import { setupTransferableMethodsOnWorker } from "@naoak/workerize-transferable";
4
- import { registry } from "./registry";
5
- import { isLayoutWithIterations } from "./types";
7
+ const registry_1 = require("./registry");
8
+ const types_1 = require("./types");
6
9
  // @see https://www.npmjs.com/package/@naoak/workerize-transferable
7
10
  // setupTransferableMethodsOnWorker({
8
11
  // // The name of function which use some transferables.
@@ -13,41 +16,41 @@ import { isLayoutWithIterations } from "./types";
13
16
  // pickTransferablesFromResult: (result) => [result[1].buffer],
14
17
  // },
15
18
  // });
16
- var currentLayout;
17
- export function stopLayout() {
18
- var _a;
19
- if ((_a = currentLayout) === null || _a === void 0 ? void 0 : _a.stop) {
19
+ let currentLayout;
20
+ function stopLayout() {
21
+ if (currentLayout === null || currentLayout === void 0 ? void 0 : currentLayout.stop) {
20
22
  currentLayout.stop();
21
23
  }
22
24
  }
23
- export function calculateLayout(payload, transferables) {
24
- return __awaiter(this, void 0, void 0, function () {
25
- var _a, id, options, iterations, nodes, edges, graph, layoutCtor, positions;
26
- return __generator(this, function (_b) {
27
- switch (_b.label) {
28
- case 0:
29
- _a = payload.layout, id = _a.id, options = _a.options, iterations = _a.iterations, nodes = payload.nodes, edges = payload.edges;
30
- graph = new Graph({
31
- nodes: nodes,
32
- edges: edges,
33
- });
34
- layoutCtor = registry[id];
35
- if (layoutCtor) {
36
- currentLayout = new layoutCtor(options);
37
- }
38
- else {
39
- throw new Error("Unknown layout id: " + id);
40
- }
41
- return [4 /*yield*/, currentLayout.execute(graph)];
42
- case 1:
43
- positions = _b.sent();
44
- if (isLayoutWithIterations(currentLayout)) {
45
- currentLayout.stop();
46
- positions = currentLayout.tick(iterations);
47
- }
48
- return [2 /*return*/, [positions, transferables]];
49
- }
25
+ exports.stopLayout = stopLayout;
26
+ function calculateLayout(payload, transferables) {
27
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
28
+ const { layout: { id, options, iterations }, nodes, edges, } = payload;
29
+ // Sync graph on the worker side.
30
+ // TODO: Use transferable objects like ArrayBuffer for nodes & edges,
31
+ // in which case we don't need the whole graph.
32
+ // @see https://github.com/graphology/graphology/blob/master/src/layout-noverlap/webworker.tpl.js#L32
33
+ const graph = new graphlib_1.Graph({
34
+ nodes,
35
+ edges,
50
36
  });
37
+ /**
38
+ * Create layout instance on the worker side.
39
+ */
40
+ const layoutCtor = registry_1.registry[id];
41
+ if (layoutCtor) {
42
+ currentLayout = new layoutCtor(options);
43
+ }
44
+ else {
45
+ throw new Error(`Unknown layout id: ${id}`);
46
+ }
47
+ let positions = yield currentLayout.execute(graph);
48
+ if ((0, types_1.isLayoutWithIterations)(currentLayout)) {
49
+ currentLayout.stop();
50
+ positions = currentLayout.tick(iterations);
51
+ }
52
+ return [positions, transferables];
51
53
  });
52
54
  }
55
+ exports.calculateLayout = calculateLayout;
53
56
  //# sourceMappingURL=bundle-worker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bundle-worker.js","sourceRoot":"","sources":["../src/bundle-worker.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,oFAAoF;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAgC,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAE/E,mEAAmE;AACnE,qCAAqC;AACrC,0DAA0D;AAC1D,uBAAuB;AACvB,6CAA6C;AAC7C,2BAA2B;AAC3B,yFAAyF;AACzF,mEAAmE;AACnE,OAAO;AACP,MAAM;AAEN,IAAI,aAA0B,CAAC;AAE/B,MAAM,UAAU,UAAU;;IACxB,IAAI,MAAC,aAA2C,0CAAE,IAAI,EAAE;QACrD,aAA2C,CAAC,IAAI,EAAE,CAAC;KACrD;AACH,CAAC;AAED,MAAM,UAAgB,eAAe,CACnC,OAAgB,EAChB,aAA6B;;;;;;oBAG3B,KAGE,OAAO,OAH0B,EAAzB,EAAE,QAAA,EAAE,OAAO,aAAA,EAAE,UAAU,gBAAA,EACjC,KAAK,GAEH,OAAO,MAFJ,EACL,KAAK,GACH,OAAO,MADJ,CACK;oBAMN,KAAK,GAAG,IAAI,KAAK,CAAC;wBACtB,KAAK,OAAA;wBACL,KAAK,OAAA;qBACN,CAAC,CAAC;oBAMG,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;oBAChC,IAAI,UAAU,EAAE;wBACd,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;qBACzC;yBAAM;wBACL,MAAM,IAAI,KAAK,CAAC,wBAAsB,EAAI,CAAC,CAAC;qBAC7C;oBAEe,qBAAM,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,EAAA;;oBAA9C,SAAS,GAAG,SAAkC;oBAClD,IAAI,sBAAsB,CAAC,aAAa,CAAC,EAAE;wBACzC,aAAa,CAAC,IAAI,EAAE,CAAC;wBACrB,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;qBAC5C;oBACD,sBAAO,CAAC,SAAS,EAAE,aAAa,CAAC,EAAC;;;;CACnC"}
1
+ {"version":3,"file":"bundle-worker.js","sourceRoot":"","sources":["../src/bundle-worker.ts"],"names":[],"mappings":";;;;AAAA,6CAAuC;AACvC,oFAAoF;AACpF,yCAAsC;AAEtC,mCAA+E;AAE/E,mEAAmE;AACnE,qCAAqC;AACrC,0DAA0D;AAC1D,uBAAuB;AACvB,6CAA6C;AAC7C,2BAA2B;AAC3B,yFAAyF;AACzF,mEAAmE;AACnE,OAAO;AACP,MAAM;AAEN,IAAI,aAA0B,CAAC;AAE/B,SAAgB,UAAU;IACxB,IAAK,aAA2C,aAA3C,aAAa,uBAAb,aAAa,CAAgC,IAAI,EAAE;QACrD,aAA2C,CAAC,IAAI,EAAE,CAAC;KACrD;AACH,CAAC;AAJD,gCAIC;AAED,SAAsB,eAAe,CACnC,OAAgB,EAChB,aAA6B;;QAE7B,MAAM,EACJ,MAAM,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EACnC,KAAK,EACL,KAAK,GACN,GAAG,OAAO,CAAC;QAEZ,iCAAiC;QACjC,qEAAqE;QACrE,+CAA+C;QAC/C,qGAAqG;QACrG,MAAM,KAAK,GAAG,IAAI,gBAAK,CAAC;YACtB,KAAK;YACL,KAAK;SACN,CAAC,CAAC;QAEH;;WAEG;QAEH,MAAM,UAAU,GAAG,mBAAQ,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,UAAU,EAAE;YACd,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;SACzC;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;SAC7C;QAED,IAAI,SAAS,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,IAAA,8BAAsB,EAAC,aAAa,CAAC,EAAE;YACzC,aAAa,CAAC,IAAI,EAAE,CAAC;YACrB,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC5C;QACD,OAAO,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACpC,CAAC;CAAA;AApCD,0CAoCC"}
package/lib/circular.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { Graph, CircularLayoutOptions, Layout, LayoutMapping } from './types';
1
+ import type { CircularLayoutOptions, Graph, Layout, LayoutMapping } from './types';
2
2
  /**
3
3
  * Layout arranging the nodes in a circle.
4
4
  *
package/lib/circular.js CHANGED
@@ -1,7 +1,10 @@
1
- import { __assign, __awaiter, __generator, __read } from "tslib";
2
- import { formatSizeFn, formatNumberFn, cloneFormatData } from './util';
3
- import { handleSingleNodeGraph } from './util/common';
4
- var DEFAULTS_LAYOUT_OPTIONS = {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CircularLayout = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const util_1 = require("./util");
6
+ const common_1 = require("./util/common");
7
+ const DEFAULTS_LAYOUT_OPTIONS = {
5
8
  radius: null,
6
9
  startRadius: null,
7
10
  endRadius: null,
@@ -27,138 +30,126 @@ var DEFAULTS_LAYOUT_OPTIONS = {
27
30
  * // If you want to assign the positions directly to the nodes, use assign method.
28
31
  * await layout.assign(graph, { radius: 20 });
29
32
  */
30
- var CircularLayout = /** @class */ (function () {
31
- function CircularLayout(options) {
32
- if (options === void 0) { options = {}; }
33
+ class CircularLayout {
34
+ constructor(options = {}) {
33
35
  this.options = options;
34
36
  this.id = 'circular';
35
- this.options = __assign(__assign({}, DEFAULTS_LAYOUT_OPTIONS), options);
37
+ this.options = Object.assign(Object.assign({}, DEFAULTS_LAYOUT_OPTIONS), options);
36
38
  }
37
39
  /**
38
40
  * Return the positions of nodes and edges(if needed).
39
41
  */
40
- CircularLayout.prototype.execute = function (graph, options) {
41
- return __awaiter(this, void 0, void 0, function () {
42
- return __generator(this, function (_a) {
43
- return [2 /*return*/, this.genericCircularLayout(false, graph, options)];
44
- });
42
+ execute(graph, options) {
43
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
44
+ return this.genericCircularLayout(false, graph, options);
45
45
  });
46
- };
46
+ }
47
47
  /**
48
48
  * To directly assign the positions to the nodes.
49
49
  */
50
- CircularLayout.prototype.assign = function (graph, options) {
51
- return __awaiter(this, void 0, void 0, function () {
52
- return __generator(this, function (_a) {
53
- switch (_a.label) {
54
- case 0: return [4 /*yield*/, this.genericCircularLayout(true, graph, options)];
55
- case 1:
56
- _a.sent();
57
- return [2 /*return*/];
58
- }
59
- });
50
+ assign(graph, options) {
51
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
52
+ yield this.genericCircularLayout(true, graph, options);
60
53
  });
61
- };
62
- CircularLayout.prototype.genericCircularLayout = function (assign, graph, options) {
63
- return __awaiter(this, void 0, void 0, function () {
64
- var mergedOptions, width, height, center, divisions, _a, startAngle, _b, endAngle, angleRatio, ordering, clockwise, paramNodeSpacing, paramNodeSize, nodes, edges, _c, calculatedWidth, calculatedHeight, calculatedCenter, n, angleStep, radius, startRadius, endRadius, nodeSpacing_1, nodeSize_1, maxNodeSize_1, perimeter_1, astep, layoutNodes, divN, i, r, angle, result;
65
- return __generator(this, function (_d) {
66
- mergedOptions = __assign(__assign({}, this.options), options);
67
- width = mergedOptions.width, height = mergedOptions.height, center = mergedOptions.center, divisions = mergedOptions.divisions, _a = mergedOptions.startAngle, startAngle = _a === void 0 ? 0 : _a, _b = mergedOptions.endAngle, endAngle = _b === void 0 ? 2 * Math.PI : _b, angleRatio = mergedOptions.angleRatio, ordering = mergedOptions.ordering, clockwise = mergedOptions.clockwise, paramNodeSpacing = mergedOptions.nodeSpacing, paramNodeSize = mergedOptions.nodeSize;
68
- nodes = graph.getAllNodes();
69
- edges = graph.getAllEdges();
70
- _c = __read(calculateCenter(width, height, center), 3), calculatedWidth = _c[0], calculatedHeight = _c[1], calculatedCenter = _c[2];
71
- n = nodes === null || nodes === void 0 ? void 0 : nodes.length;
72
- if (!n || n === 1) {
73
- return [2 /*return*/, handleSingleNodeGraph(graph, assign, calculatedCenter)];
74
- }
75
- angleStep = (endAngle - startAngle) / n;
76
- radius = mergedOptions.radius, startRadius = mergedOptions.startRadius, endRadius = mergedOptions.endRadius;
77
- if (paramNodeSpacing) {
78
- nodeSpacing_1 = formatNumberFn(10, paramNodeSpacing);
79
- nodeSize_1 = formatSizeFn(10, paramNodeSize);
80
- maxNodeSize_1 = -Infinity;
81
- nodes.forEach(function (node) {
82
- var nSize = nodeSize_1(node);
83
- if (maxNodeSize_1 < nSize)
84
- maxNodeSize_1 = nSize;
85
- });
86
- perimeter_1 = 0;
87
- nodes.forEach(function (node, i) {
88
- if (i === 0)
89
- perimeter_1 += maxNodeSize_1 || 10;
90
- else
91
- perimeter_1 += (nodeSpacing_1(node) || 0) + (maxNodeSize_1 || 10);
92
- });
93
- radius = perimeter_1 / (2 * Math.PI);
94
- }
95
- else if (!radius && !startRadius && !endRadius) {
96
- radius = Math.min(calculatedHeight, calculatedWidth) / 2;
97
- }
98
- else if (!startRadius && endRadius) {
99
- startRadius = endRadius;
100
- }
101
- else if (startRadius && !endRadius) {
102
- endRadius = startRadius;
103
- }
104
- astep = angleStep * angleRatio;
105
- layoutNodes = [];
106
- if (ordering === 'topology') {
107
- // layout according to the topology
108
- layoutNodes = topologyOrdering(graph, nodes);
109
- }
110
- else if (ordering === 'topology-directed') {
111
- // layout according to the topology
112
- layoutNodes = topologyOrdering(graph, nodes, true);
113
- }
114
- else if (ordering === 'degree') {
115
- // layout according to the descent order of degrees
116
- layoutNodes = degreeOrdering(graph, nodes);
54
+ }
55
+ genericCircularLayout(assign, graph, options) {
56
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
57
+ const mergedOptions = Object.assign(Object.assign({}, this.options), options);
58
+ const { width, height, center, divisions, startAngle = 0, endAngle = 2 * Math.PI, angleRatio, ordering, clockwise, nodeSpacing: paramNodeSpacing, nodeSize: paramNodeSize, } = mergedOptions;
59
+ const nodes = graph.getAllNodes();
60
+ const edges = graph.getAllEdges();
61
+ // Calculate center according to `window` if not provided.
62
+ const [calculatedWidth, calculatedHeight, calculatedCenter] = calculateCenter(width, height, center);
63
+ const n = nodes === null || nodes === void 0 ? void 0 : nodes.length;
64
+ if (!n || n === 1) {
65
+ return (0, common_1.handleSingleNodeGraph)(graph, assign, calculatedCenter);
66
+ }
67
+ const angleStep = (endAngle - startAngle) / n;
68
+ let { radius, startRadius, endRadius } = mergedOptions;
69
+ if (paramNodeSpacing) {
70
+ const nodeSpacing = (0, util_1.formatNumberFn)(10, paramNodeSpacing);
71
+ const nodeSize = (0, util_1.formatSizeFn)(10, paramNodeSize);
72
+ let maxNodeSize = -Infinity;
73
+ nodes.forEach((node) => {
74
+ const nSize = nodeSize(node);
75
+ if (maxNodeSize < nSize)
76
+ maxNodeSize = nSize;
77
+ });
78
+ let perimeter = 0;
79
+ nodes.forEach((node, i) => {
80
+ if (i === 0)
81
+ perimeter += maxNodeSize || 10;
82
+ else
83
+ perimeter += (nodeSpacing(node) || 0) + (maxNodeSize || 10);
84
+ });
85
+ radius = perimeter / (2 * Math.PI);
86
+ }
87
+ else if (!radius && !startRadius && !endRadius) {
88
+ radius = Math.min(calculatedHeight, calculatedWidth) / 2;
89
+ }
90
+ else if (!startRadius && endRadius) {
91
+ startRadius = endRadius;
92
+ }
93
+ else if (startRadius && !endRadius) {
94
+ endRadius = startRadius;
95
+ }
96
+ const astep = angleStep * angleRatio;
97
+ // calculated nodes as temporary result
98
+ let layoutNodes = [];
99
+ if (ordering === 'topology') {
100
+ // layout according to the topology
101
+ layoutNodes = topologyOrdering(graph, nodes);
102
+ }
103
+ else if (ordering === 'topology-directed') {
104
+ // layout according to the topology
105
+ layoutNodes = topologyOrdering(graph, nodes, true);
106
+ }
107
+ else if (ordering === 'degree') {
108
+ // layout according to the descent order of degrees
109
+ layoutNodes = degreeOrdering(graph, nodes);
110
+ }
111
+ else {
112
+ // layout according to the original order in the data.nodes
113
+ layoutNodes = nodes.map((node) => (0, util_1.cloneFormatData)(node));
114
+ }
115
+ const divN = Math.ceil(n / divisions); // node number in each division
116
+ for (let i = 0; i < n; ++i) {
117
+ let r = radius;
118
+ if (!r && startRadius !== null && endRadius !== null) {
119
+ r = startRadius + (i * (endRadius - startRadius)) / (n - 1);
117
120
  }
118
- else {
119
- // layout according to the original order in the data.nodes
120
- layoutNodes = nodes.map(function (node) { return cloneFormatData(node); });
121
+ if (!r) {
122
+ r = 10 + (i * 100) / (n - 1);
121
123
  }
122
- divN = Math.ceil(n / divisions);
123
- for (i = 0; i < n; ++i) {
124
- r = radius;
125
- if (!r && startRadius !== null && endRadius !== null) {
126
- r = startRadius + (i * (endRadius - startRadius)) / (n - 1);
127
- }
128
- if (!r) {
129
- r = 10 + (i * 100) / (n - 1);
130
- }
131
- angle = startAngle +
132
- (i % divN) * astep +
133
- ((2 * Math.PI) / divisions) * Math.floor(i / divN);
134
- if (!clockwise) {
135
- angle =
136
- endAngle -
137
- (i % divN) * astep -
138
- ((2 * Math.PI) / divisions) * Math.floor(i / divN);
139
- }
140
- layoutNodes[i].data.x = calculatedCenter[0] + Math.cos(angle) * r;
141
- layoutNodes[i].data.y = calculatedCenter[1] + Math.sin(angle) * r;
124
+ let angle = startAngle +
125
+ (i % divN) * astep +
126
+ ((2 * Math.PI) / divisions) * Math.floor(i / divN);
127
+ if (!clockwise) {
128
+ angle =
129
+ endAngle -
130
+ (i % divN) * astep -
131
+ ((2 * Math.PI) / divisions) * Math.floor(i / divN);
142
132
  }
143
- if (assign) {
144
- layoutNodes.forEach(function (node) {
145
- graph.mergeNodeData(node.id, {
146
- x: node.data.x,
147
- y: node.data.y,
148
- });
133
+ layoutNodes[i].data.x = calculatedCenter[0] + Math.cos(angle) * r;
134
+ layoutNodes[i].data.y = calculatedCenter[1] + Math.sin(angle) * r;
135
+ }
136
+ if (assign) {
137
+ layoutNodes.forEach((node) => {
138
+ graph.mergeNodeData(node.id, {
139
+ x: node.data.x,
140
+ y: node.data.y,
149
141
  });
150
- }
151
- result = {
152
- nodes: layoutNodes,
153
- edges: edges,
154
- };
155
- return [2 /*return*/, result];
156
- });
142
+ });
143
+ }
144
+ const result = {
145
+ nodes: layoutNodes,
146
+ edges,
147
+ };
148
+ return result;
157
149
  });
158
- };
159
- return CircularLayout;
160
- }());
161
- export { CircularLayout };
150
+ }
151
+ }
152
+ exports.CircularLayout = CircularLayout;
162
153
  /**
163
154
  * order the nodes acoording to the graph topology
164
155
  * @param graph
@@ -166,44 +157,43 @@ export { CircularLayout };
166
157
  * @param directed
167
158
  * @returns
168
159
  */
169
- var topologyOrdering = function (graph, nodes, directed) {
170
- if (directed === void 0) { directed = false; }
171
- var orderedCNodes = [cloneFormatData(nodes[0])];
172
- var pickFlags = {};
173
- var n = nodes.length;
160
+ const topologyOrdering = (graph, nodes, directed = false) => {
161
+ const orderedCNodes = [(0, util_1.cloneFormatData)(nodes[0])];
162
+ const pickFlags = {};
163
+ const n = nodes.length;
174
164
  pickFlags[nodes[0].id] = true;
175
165
  // write children into cnodes
176
- var k = 0;
177
- nodes.forEach(function (node, i) {
166
+ let k = 0;
167
+ nodes.forEach((node, i) => {
178
168
  if (i !== 0) {
179
169
  if ((i === n - 1 ||
180
170
  graph.getDegree(node.id, 'both') !==
181
171
  graph.getDegree(nodes[i + 1].id, 'both') ||
182
172
  graph.areNeighbors(orderedCNodes[k].id, node.id)) &&
183
173
  !pickFlags[node.id]) {
184
- orderedCNodes.push(cloneFormatData(node));
174
+ orderedCNodes.push((0, util_1.cloneFormatData)(node));
185
175
  pickFlags[node.id] = true;
186
176
  k++;
187
177
  }
188
178
  else {
189
- var children = directed
179
+ const children = directed
190
180
  ? graph.getSuccessors(orderedCNodes[k].id)
191
181
  : graph.getNeighbors(orderedCNodes[k].id);
192
- var foundChild = false;
193
- for (var j = 0; j < children.length; j++) {
194
- var child = children[j];
182
+ let foundChild = false;
183
+ for (let j = 0; j < children.length; j++) {
184
+ const child = children[j];
195
185
  if (graph.getDegree(child.id) === graph.getDegree(node.id) &&
196
186
  !pickFlags[child.id]) {
197
- orderedCNodes.push(cloneFormatData(child));
187
+ orderedCNodes.push((0, util_1.cloneFormatData)(child));
198
188
  pickFlags[child.id] = true;
199
189
  foundChild = true;
200
190
  break;
201
191
  }
202
192
  }
203
- var ii = 0;
193
+ let ii = 0;
204
194
  while (!foundChild) {
205
195
  if (!pickFlags[nodes[ii].id]) {
206
- orderedCNodes.push(cloneFormatData(nodes[ii]));
196
+ orderedCNodes.push((0, util_1.cloneFormatData)(nodes[ii]));
207
197
  pickFlags[nodes[ii].id] = true;
208
198
  foundChild = true;
209
199
  }
@@ -224,13 +214,11 @@ var topologyOrdering = function (graph, nodes, directed) {
224
214
  * @returns
225
215
  */
226
216
  function degreeOrdering(graph, nodes) {
227
- var orderedNodes = [];
228
- nodes.forEach(function (node, i) {
229
- orderedNodes.push(cloneFormatData(node));
230
- });
231
- orderedNodes.sort(function (nodeA, nodeB) {
232
- return graph.getDegree(nodeA.id, 'both') - graph.getDegree(nodeB.id, 'both');
217
+ const orderedNodes = [];
218
+ nodes.forEach((node, i) => {
219
+ orderedNodes.push((0, util_1.cloneFormatData)(node));
233
220
  });
221
+ orderedNodes.sort((nodeA, nodeB) => graph.getDegree(nodeA.id, 'both') - graph.getDegree(nodeB.id, 'both'));
234
222
  return orderedNodes;
235
223
  }
236
224
  /**
@@ -240,10 +228,10 @@ function degreeOrdering(graph, nodes) {
240
228
  * @param center
241
229
  * @returns
242
230
  */
243
- var calculateCenter = function (width, height, center) {
244
- var calculatedWidth = width;
245
- var calculatedHeight = height;
246
- var calculatedCenter = center;
231
+ const calculateCenter = (width, height, center) => {
232
+ let calculatedWidth = width;
233
+ let calculatedHeight = height;
234
+ let calculatedCenter = center;
247
235
  if (!calculatedWidth && typeof window !== 'undefined') {
248
236
  calculatedWidth = window.innerWidth;
249
237
  }