@antv/layout 1.2.12 → 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 -541
  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 -74
  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/4161e9d58bae8f39711a.worker.js +0 -2
  184. package/dist/4161e9d58bae8f39711a.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,18 +1,21 @@
1
- import { __assign, __awaiter, __generator, __read, __spreadArray } from "tslib";
2
- import { isFunction, isNumber, isObject } from "@antv/util";
3
- import { Graph as GGraph } from "@antv/graphlib";
4
- import { cloneFormatData, isArray } from "../util";
5
- import { handleSingleNodeGraph } from "../util/common";
6
- import Body from "./body";
7
- import Quad from "./quad";
8
- import QuadTree from "./quadTree";
9
- var DEFAULTS_LAYOUT_OPTIONS = {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ForceAtlas2Layout = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const graphlib_1 = require("@antv/graphlib");
6
+ const util_1 = require("@antv/util");
7
+ const util_2 = require("../util");
8
+ const common_1 = require("../util/common");
9
+ const body_1 = tslib_1.__importDefault(require("./body"));
10
+ const quad_1 = tslib_1.__importDefault(require("./quad"));
11
+ const quadTree_1 = tslib_1.__importDefault(require("./quadTree"));
12
+ const DEFAULTS_LAYOUT_OPTIONS = {
10
13
  center: [0, 0],
11
14
  width: 300,
12
15
  height: 300,
13
16
  kr: 5,
14
17
  kg: 1,
15
- mode: "normal",
18
+ mode: 'normal',
16
19
  preventOverlap: false,
17
20
  dissuadeHubs: false,
18
21
  maxIteration: 0,
@@ -35,87 +38,78 @@ var DEFAULTS_LAYOUT_OPTIONS = {
35
38
  * // If you want to assign the positions directly to the nodes, use assign method.
36
39
  * await layout.assign(graph, { center: [100, 100] });
37
40
  */
38
- var ForceAtlas2Layout = /** @class */ (function () {
39
- function ForceAtlas2Layout(options) {
40
- if (options === void 0) { options = {}; }
41
+ class ForceAtlas2Layout {
42
+ constructor(options = {}) {
41
43
  this.options = options;
42
- this.id = "forceAtlas2";
43
- this.options = __assign(__assign({}, DEFAULTS_LAYOUT_OPTIONS), options);
44
+ this.id = 'forceAtlas2';
45
+ this.options = Object.assign(Object.assign({}, DEFAULTS_LAYOUT_OPTIONS), options);
44
46
  }
45
47
  /**
46
48
  * Return the positions of nodes and edges(if needed).
47
49
  */
48
- ForceAtlas2Layout.prototype.execute = function (graph, options) {
49
- return __awaiter(this, void 0, void 0, function () {
50
- return __generator(this, function (_a) {
51
- return [2 /*return*/, this.genericForceAtlas2Layout(false, graph, options)];
52
- });
50
+ execute(graph, options) {
51
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
52
+ return this.genericForceAtlas2Layout(false, graph, options);
53
53
  });
54
- };
54
+ }
55
55
  /**
56
56
  * To directly assign the positions to the nodes.
57
57
  */
58
- ForceAtlas2Layout.prototype.assign = function (graph, options) {
59
- return __awaiter(this, void 0, void 0, function () {
60
- return __generator(this, function (_a) {
61
- this.genericForceAtlas2Layout(true, graph, options);
62
- return [2 /*return*/];
63
- });
58
+ assign(graph, options) {
59
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
60
+ this.genericForceAtlas2Layout(true, graph, options);
64
61
  });
65
- };
66
- ForceAtlas2Layout.prototype.genericForceAtlas2Layout = function (assign, graph, options) {
67
- return __awaiter(this, void 0, void 0, function () {
68
- var edges, nodes, mergedOptions, width, height, prune, maxIteration, nodeSize, center, calcNodes, calcEdges, calcGraph, sizes, j, _a, source, target, sourceDegree, targetDegree, targetNode, sourceNode, postOptions;
69
- return __generator(this, function (_b) {
70
- edges = graph.getAllEdges();
71
- nodes = graph.getAllNodes();
72
- mergedOptions = this.formatOptions(options, nodes.length);
73
- width = mergedOptions.width, height = mergedOptions.height, prune = mergedOptions.prune, maxIteration = mergedOptions.maxIteration, nodeSize = mergedOptions.nodeSize, center = mergedOptions.center;
74
- if (!(nodes === null || nodes === void 0 ? void 0 : nodes.length) || nodes.length === 1) {
75
- return [2 /*return*/, handleSingleNodeGraph(graph, assign, center)];
76
- }
77
- calcNodes = nodes.map(function (node) { return cloneFormatData(node, [width, height]); });
78
- calcEdges = edges.filter(function (edge) {
79
- var source = edge.source, target = edge.target;
80
- return source !== target;
81
- });
82
- calcGraph = new GGraph({
83
- nodes: calcNodes,
84
- edges: calcEdges,
85
- });
86
- sizes = this.getSizes(calcGraph, graph, nodeSize);
87
- this.run(calcGraph, graph, maxIteration, sizes, assign, mergedOptions);
88
- // if prune, place the leaves around their parents, and then re-layout for several iterations.
89
- if (prune) {
90
- for (j = 0; j < calcEdges.length; j += 1) {
91
- _a = calcEdges[j], source = _a.source, target = _a.target;
92
- sourceDegree = calcGraph.getDegree(source);
93
- targetDegree = calcGraph.getDegree(source);
94
- if (sourceDegree <= 1) {
95
- targetNode = calcGraph.getNode(target);
96
- calcGraph.mergeNodeData(source, {
97
- x: targetNode.data.x,
98
- y: targetNode.data.y,
99
- });
100
- }
101
- else if (targetDegree <= 1) {
102
- sourceNode = calcGraph.getNode(source);
103
- calcGraph.mergeNodeData(target, {
104
- x: sourceNode.data.x,
105
- y: sourceNode.data.y,
106
- });
107
- }
62
+ }
63
+ genericForceAtlas2Layout(assign, graph, options) {
64
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
65
+ const edges = graph.getAllEdges();
66
+ const nodes = graph.getAllNodes();
67
+ const mergedOptions = this.formatOptions(options, nodes.length);
68
+ const { width, height, prune, maxIteration, nodeSize, center } = mergedOptions;
69
+ if (!(nodes === null || nodes === void 0 ? void 0 : nodes.length) || nodes.length === 1) {
70
+ return (0, common_1.handleSingleNodeGraph)(graph, assign, center);
71
+ }
72
+ const calcNodes = nodes.map((node) => (0, util_2.cloneFormatData)(node, [width, height]));
73
+ const calcEdges = edges.filter((edge) => {
74
+ const { source, target } = edge;
75
+ return source !== target;
76
+ });
77
+ const calcGraph = new graphlib_1.Graph({
78
+ nodes: calcNodes,
79
+ edges: calcEdges,
80
+ });
81
+ const sizes = this.getSizes(calcGraph, graph, nodeSize);
82
+ this.run(calcGraph, graph, maxIteration, sizes, assign, mergedOptions);
83
+ // if prune, place the leaves around their parents, and then re-layout for several iterations.
84
+ if (prune) {
85
+ for (let j = 0; j < calcEdges.length; j += 1) {
86
+ const { source, target } = calcEdges[j];
87
+ const sourceDegree = calcGraph.getDegree(source);
88
+ const targetDegree = calcGraph.getDegree(source);
89
+ if (sourceDegree <= 1) {
90
+ const targetNode = calcGraph.getNode(target);
91
+ calcGraph.mergeNodeData(source, {
92
+ x: targetNode.data.x,
93
+ y: targetNode.data.y,
94
+ });
95
+ }
96
+ else if (targetDegree <= 1) {
97
+ const sourceNode = calcGraph.getNode(source);
98
+ calcGraph.mergeNodeData(target, {
99
+ x: sourceNode.data.x,
100
+ y: sourceNode.data.y,
101
+ });
108
102
  }
109
- postOptions = __assign(__assign({}, mergedOptions), { prune: false, barnesHut: false });
110
- this.run(calcGraph, graph, 100, sizes, assign, postOptions);
111
103
  }
112
- return [2 /*return*/, {
113
- nodes: calcNodes,
114
- edges: edges,
115
- }];
116
- });
104
+ const postOptions = Object.assign(Object.assign({}, mergedOptions), { prune: false, barnesHut: false });
105
+ this.run(calcGraph, graph, 100, sizes, assign, postOptions);
106
+ }
107
+ return {
108
+ nodes: calcNodes,
109
+ edges,
110
+ };
117
111
  });
118
- };
112
+ }
119
113
  /**
120
114
  * Init the node positions if there is no initial positions.
121
115
  * And pre-calculate the size (max of width and height) for each node.
@@ -124,58 +118,57 @@ var ForceAtlas2Layout = /** @class */ (function () {
124
118
  * @param nodeSize node size config from layout options
125
119
  * @returns {SizeMap} node'id mapped to max of its width and height
126
120
  */
127
- ForceAtlas2Layout.prototype.getSizes = function (calcGraph, graph, nodeSize) {
128
- var nodes = calcGraph.getAllNodes();
129
- var sizes = {};
130
- for (var i = 0; i < nodes.length; i += 1) {
131
- var _a = nodes[i], id = _a.id, data = _a.data;
121
+ getSizes(calcGraph, graph, nodeSize) {
122
+ const nodes = calcGraph.getAllNodes();
123
+ const sizes = {};
124
+ for (let i = 0; i < nodes.length; i += 1) {
125
+ const { id, data } = nodes[i];
132
126
  sizes[id] = 10;
133
- if (isNumber(data.size)) {
127
+ if ((0, util_1.isNumber)(data.size)) {
134
128
  sizes[id] = data.size;
135
129
  }
136
- else if (isArray(data.size)) {
130
+ else if ((0, util_2.isArray)(data.size)) {
137
131
  if (!isNaN(data.size[0]))
138
132
  sizes[id] = Math.max(data.size[0]);
139
133
  if (!isNaN(data.size[1]))
140
134
  sizes[id] = Math.max(data.size[1]);
141
135
  }
142
- else if (isObject(data.size)) {
136
+ else if ((0, util_1.isObject)(data.size)) {
143
137
  // @ts-ignore
144
138
  sizes[id] = Math.max(data.size.width, data.size.height);
145
139
  }
146
- else if (isFunction(nodeSize)) {
147
- var originNode = graph.getNode(id);
148
- var size = nodeSize(originNode);
149
- if (isArray(size)) {
150
- sizes[id] = Math.max.apply(Math, __spreadArray([], __read(size)));
140
+ else if ((0, util_1.isFunction)(nodeSize)) {
141
+ const originNode = graph.getNode(id);
142
+ const size = nodeSize(originNode);
143
+ if ((0, util_2.isArray)(size)) {
144
+ sizes[id] = Math.max(...size);
151
145
  }
152
146
  else {
153
147
  sizes[id] = size;
154
148
  }
155
149
  }
156
- else if (isArray(nodeSize)) {
157
- sizes[id] = Math.max.apply(Math, __spreadArray([], __read(nodeSize)));
150
+ else if ((0, util_2.isArray)(nodeSize)) {
151
+ sizes[id] = Math.max(...nodeSize);
158
152
  }
159
- else if (isNumber(nodeSize)) {
153
+ else if ((0, util_1.isNumber)(nodeSize)) {
160
154
  sizes[id] = nodeSize;
161
155
  }
162
156
  }
163
157
  return sizes;
164
- };
158
+ }
165
159
  /**
166
160
  * Format the options.
167
161
  * @param options input options
168
162
  * @param nodeNum number of nodes
169
163
  * @returns formatted options
170
164
  */
171
- ForceAtlas2Layout.prototype.formatOptions = function (options, nodeNum) {
172
- if (options === void 0) { options = {}; }
173
- var mergedOptions = __assign(__assign({}, this.options), options);
174
- var center = mergedOptions.center, width = mergedOptions.width, height = mergedOptions.height, barnesHut = mergedOptions.barnesHut, prune = mergedOptions.prune, maxIteration = mergedOptions.maxIteration, kr = mergedOptions.kr, kg = mergedOptions.kg;
165
+ formatOptions(options = {}, nodeNum) {
166
+ const mergedOptions = Object.assign(Object.assign({}, this.options), options);
167
+ const { center, width, height, barnesHut, prune, maxIteration, kr, kg } = mergedOptions;
175
168
  mergedOptions.width =
176
- !width && typeof window !== "undefined" ? window.innerWidth : width;
169
+ !width && typeof window !== 'undefined' ? window.innerWidth : width;
177
170
  mergedOptions.height =
178
- !height && typeof window !== "undefined" ? window.innerHeight : height;
171
+ !height && typeof window !== 'undefined' ? window.innerHeight : height;
179
172
  mergedOptions.center = !center
180
173
  ? [mergedOptions.width / 2, mergedOptions.height / 2]
181
174
  : center;
@@ -213,7 +206,7 @@ var ForceAtlas2Layout = /** @class */ (function () {
213
206
  mergedOptions.kg = 1;
214
207
  }
215
208
  return mergedOptions;
216
- };
209
+ }
217
210
  /**
218
211
  * Loops for fa2.
219
212
  * @param calcGraph graph for calculation
@@ -223,19 +216,19 @@ var ForceAtlas2Layout = /** @class */ (function () {
223
216
  * @param options formatted layout options
224
217
  * @returns
225
218
  */
226
- ForceAtlas2Layout.prototype.run = function (calcGraph, graph, iteration, sizes, assign, options) {
227
- var kr = options.kr, barnesHut = options.barnesHut, onTick = options.onTick;
228
- var calcNodes = calcGraph.getAllNodes();
229
- var sg = 0;
230
- var iter = iteration;
231
- var forces = {};
232
- var preForces = {};
233
- var bodies = {};
234
- for (var i = 0; i < calcNodes.length; i += 1) {
235
- var _a = calcNodes[i], data = _a.data, id = _a.id;
219
+ run(calcGraph, graph, iteration, sizes, assign, options) {
220
+ const { kr, barnesHut, onTick } = options;
221
+ const calcNodes = calcGraph.getAllNodes();
222
+ let sg = 0;
223
+ let iter = iteration;
224
+ const forces = {};
225
+ const preForces = {};
226
+ const bodies = {};
227
+ for (let i = 0; i < calcNodes.length; i += 1) {
228
+ const { data, id } = calcNodes[i];
236
229
  forces[id] = [0, 0];
237
230
  if (barnesHut) {
238
- var params = {
231
+ const params = {
239
232
  id: i,
240
233
  rx: data.x,
241
234
  ry: data.y,
@@ -243,19 +236,19 @@ var ForceAtlas2Layout = /** @class */ (function () {
243
236
  g: kr,
244
237
  degree: calcGraph.getDegree(id),
245
238
  };
246
- bodies[id] = new Body(params);
239
+ bodies[id] = new body_1.default(params);
247
240
  }
248
241
  }
249
242
  while (iter > 0) {
250
243
  sg = this.oneStep(calcGraph, {
251
- iter: iter,
244
+ iter,
252
245
  preventOverlapIters: 50,
253
246
  krPrime: 100,
254
- sg: sg,
255
- forces: forces,
256
- preForces: preForces,
257
- bodies: bodies,
258
- sizes: sizes,
247
+ sg,
248
+ forces,
249
+ preForces,
250
+ bodies,
251
+ sizes,
259
252
  }, options);
260
253
  iter--;
261
254
  onTick === null || onTick === void 0 ? void 0 : onTick({
@@ -270,7 +263,7 @@ var ForceAtlas2Layout = /** @class */ (function () {
270
263
  // }
271
264
  }
272
265
  return calcGraph;
273
- };
266
+ }
274
267
  /**
275
268
  * One step for a loop.
276
269
  * @param graph graph for calculation
@@ -278,14 +271,14 @@ var ForceAtlas2Layout = /** @class */ (function () {
278
271
  * @param options formatted layout's input options
279
272
  * @returns
280
273
  */
281
- ForceAtlas2Layout.prototype.oneStep = function (graph, params, options) {
282
- var iter = params.iter, preventOverlapIters = params.preventOverlapIters, krPrime = params.krPrime, sg = params.sg, preForces = params.preForces, bodies = params.bodies, sizes = params.sizes;
283
- var forces = params.forces;
284
- var preventOverlap = options.preventOverlap, barnesHut = options.barnesHut;
285
- var nodes = graph.getAllNodes();
286
- for (var i = 0; i < nodes.length; i += 1) {
287
- var id = nodes[i].id;
288
- preForces[id] = __spreadArray([], __read(forces[id]));
274
+ oneStep(graph, params, options) {
275
+ const { iter, preventOverlapIters, krPrime, sg, preForces, bodies, sizes } = params;
276
+ let { forces } = params;
277
+ const { preventOverlap, barnesHut } = options;
278
+ const nodes = graph.getAllNodes();
279
+ for (let i = 0; i < nodes.length; i += 1) {
280
+ const { id } = nodes[i];
281
+ preForces[id] = [...forces[id]];
289
282
  forces[id] = [0, 0];
290
283
  }
291
284
  // attractive forces, existing on every actual edge
@@ -301,7 +294,7 @@ var ForceAtlas2Layout = /** @class */ (function () {
301
294
  }
302
295
  // update the positions
303
296
  return this.updatePos(graph, forces, preForces, sg, options);
304
- };
297
+ }
305
298
  /**
306
299
  * Calculate the attract forces for nodes.
307
300
  * @param graph graph for calculation
@@ -312,31 +305,31 @@ var ForceAtlas2Layout = /** @class */ (function () {
312
305
  * @param options formatted layout's input options
313
306
  * @returns
314
307
  */
315
- ForceAtlas2Layout.prototype.getAttrForces = function (graph, iter, preventOverlapIters, sizes, forces, options) {
316
- var preventOverlap = options.preventOverlap, dissuadeHubs = options.dissuadeHubs, mode = options.mode, prune = options.prune;
317
- var edges = graph.getAllEdges();
318
- for (var i = 0; i < edges.length; i += 1) {
319
- var _a = edges[i], source = _a.source, target = _a.target;
320
- var sourceNode = graph.getNode(source);
321
- var targetNode = graph.getNode(target);
322
- var sourceDegree = graph.getDegree(source);
323
- var targetDegree = graph.getDegree(target);
308
+ getAttrForces(graph, iter, preventOverlapIters, sizes, forces, options) {
309
+ const { preventOverlap, dissuadeHubs, mode, prune } = options;
310
+ const edges = graph.getAllEdges();
311
+ for (let i = 0; i < edges.length; i += 1) {
312
+ const { source, target } = edges[i];
313
+ const sourceNode = graph.getNode(source);
314
+ const targetNode = graph.getNode(target);
315
+ const sourceDegree = graph.getDegree(source);
316
+ const targetDegree = graph.getDegree(target);
324
317
  if (prune && (sourceDegree <= 1 || targetDegree <= 1))
325
318
  continue;
326
- var dir = [
319
+ const dir = [
327
320
  targetNode.data.x - sourceNode.data.x,
328
321
  targetNode.data.y - sourceNode.data.y,
329
322
  ];
330
- var eucliDis = Math.hypot(dir[0], dir[1]);
323
+ let eucliDis = Math.hypot(dir[0], dir[1]);
331
324
  eucliDis = eucliDis < 0.0001 ? 0.0001 : eucliDis;
332
325
  dir[0] = dir[0] / eucliDis;
333
326
  dir[1] = dir[1] / eucliDis;
334
327
  if (preventOverlap && iter < preventOverlapIters) {
335
328
  eucliDis = eucliDis - sizes[source] - sizes[target];
336
329
  }
337
- var fa1 = eucliDis;
338
- var fa2 = fa1;
339
- if (mode === "linlog") {
330
+ let fa1 = eucliDis;
331
+ let fa2 = fa1;
332
+ if (mode === 'linlog') {
340
333
  fa1 = Math.log(1 + eucliDis);
341
334
  fa2 = fa1;
342
335
  }
@@ -358,7 +351,7 @@ var ForceAtlas2Layout = /** @class */ (function () {
358
351
  forces[target][1] -= fa2 * dir[1];
359
352
  }
360
353
  return forces;
361
- };
354
+ }
362
355
  /**
363
356
  * Calculate the repulsive forces for nodes under barnesHut mode.
364
357
  * @param graph graph for calculatiion
@@ -367,16 +360,16 @@ var ForceAtlas2Layout = /** @class */ (function () {
367
360
  * @param options formatted layout's input options
368
361
  * @returns
369
362
  */
370
- ForceAtlas2Layout.prototype.getOptRepGraForces = function (graph, forces, bodies, options) {
371
- var kg = options.kg, center = options.center, prune = options.prune;
372
- var nodes = graph.getAllNodes();
373
- var nodeNum = nodes.length;
374
- var minx = 9e10;
375
- var maxx = -9e10;
376
- var miny = 9e10;
377
- var maxy = -9e10;
378
- for (var i = 0; i < nodeNum; i += 1) {
379
- var _a = nodes[i], id = _a.id, data = _a.data;
363
+ getOptRepGraForces(graph, forces, bodies, options) {
364
+ const { kg, center, prune } = options;
365
+ const nodes = graph.getAllNodes();
366
+ const nodeNum = nodes.length;
367
+ let minx = 9e10;
368
+ let maxx = -9e10;
369
+ let miny = 9e10;
370
+ let maxy = -9e10;
371
+ for (let i = 0; i < nodeNum; i += 1) {
372
+ const { id, data } = nodes[i];
380
373
  if (prune && graph.getDegree(id) <= 1)
381
374
  continue;
382
375
  bodies[id].setPos(data.x, data.y);
@@ -389,28 +382,28 @@ var ForceAtlas2Layout = /** @class */ (function () {
389
382
  if (data.y <= miny)
390
383
  miny = data.y;
391
384
  }
392
- var width = Math.max(maxx - minx, maxy - miny);
393
- var quadParams = {
385
+ const width = Math.max(maxx - minx, maxy - miny);
386
+ const quadParams = {
394
387
  xmid: (maxx + minx) / 2,
395
388
  ymid: (maxy + miny) / 2,
396
389
  length: width,
397
390
  massCenter: center,
398
391
  mass: nodeNum,
399
392
  };
400
- var quad = new Quad(quadParams);
401
- var quadTree = new QuadTree(quad);
393
+ const quad = new quad_1.default(quadParams);
394
+ const quadTree = new quadTree_1.default(quad);
402
395
  // build the tree, insert the nodes(quads) into the tree
403
- for (var i = 0; i < nodeNum; i += 1) {
404
- var id = nodes[i].id;
396
+ for (let i = 0; i < nodeNum; i += 1) {
397
+ const { id } = nodes[i];
405
398
  if (prune && graph.getDegree(id) <= 1)
406
399
  continue;
407
400
  if (bodies[id].in(quad))
408
401
  quadTree.insert(bodies[id]);
409
402
  }
410
403
  // update the repulsive forces and the gravity.
411
- for (var i = 0; i < nodeNum; i += 1) {
412
- var _b = nodes[i], id = _b.id, data = _b.data;
413
- var degree = graph.getDegree(id);
404
+ for (let i = 0; i < nodeNum; i += 1) {
405
+ const { id, data } = nodes[i];
406
+ const degree = graph.getDegree(id);
414
407
  if (prune && degree <= 1)
415
408
  continue;
416
409
  bodies[id].resetForce();
@@ -418,17 +411,17 @@ var ForceAtlas2Layout = /** @class */ (function () {
418
411
  forces[id][0] -= bodies[id].fx;
419
412
  forces[id][1] -= bodies[id].fy;
420
413
  // gravity
421
- var dir = [data.x - center[0], data.y - center[1]];
422
- var eucliDis = Math.hypot(dir[0], dir[1]);
414
+ const dir = [data.x - center[0], data.y - center[1]];
415
+ let eucliDis = Math.hypot(dir[0], dir[1]);
423
416
  eucliDis = eucliDis < 0.0001 ? 0.0001 : eucliDis;
424
417
  dir[0] = dir[0] / eucliDis;
425
418
  dir[1] = dir[1] / eucliDis;
426
- var fg = kg * (degree + 1); // tslint:disable-line
419
+ const fg = kg * (degree + 1); // tslint:disable-line
427
420
  forces[id][0] -= fg * dir[0];
428
421
  forces[id][1] -= fg * dir[1];
429
422
  }
430
423
  return forces;
431
- };
424
+ }
432
425
  /**
433
426
  * Calculate the repulsive forces for nodes.
434
427
  * @param graph graph for calculatiion
@@ -440,56 +433,56 @@ var ForceAtlas2Layout = /** @class */ (function () {
440
433
  * @param options formatted layout's input options
441
434
  * @returns
442
435
  */
443
- ForceAtlas2Layout.prototype.getRepGraForces = function (graph, iter, preventOverlapIters, forces, krPrime, sizes, options) {
444
- var preventOverlap = options.preventOverlap, kr = options.kr, kg = options.kg, center = options.center, prune = options.prune;
445
- var nodes = graph.getAllNodes();
446
- var nodeNum = nodes.length;
447
- for (var i = 0; i < nodeNum; i += 1) {
448
- var nodei = nodes[i];
449
- var degreei = graph.getDegree(nodei.id);
450
- for (var j = i + 1; j < nodeNum; j += 1) {
451
- var nodej = nodes[j];
452
- var degreej = graph.getDegree(nodej.id);
436
+ getRepGraForces(graph, iter, preventOverlapIters, forces, krPrime, sizes, options) {
437
+ const { preventOverlap, kr, kg, center, prune } = options;
438
+ const nodes = graph.getAllNodes();
439
+ const nodeNum = nodes.length;
440
+ for (let i = 0; i < nodeNum; i += 1) {
441
+ const nodei = nodes[i];
442
+ const degreei = graph.getDegree(nodei.id);
443
+ for (let j = i + 1; j < nodeNum; j += 1) {
444
+ const nodej = nodes[j];
445
+ const degreej = graph.getDegree(nodej.id);
453
446
  if (prune && (degreei <= 1 || degreej <= 1))
454
447
  continue;
455
- var dir_1 = [nodej.data.x - nodei.data.x, nodej.data.y - nodei.data.y];
456
- var eucliDis_1 = Math.hypot(dir_1[0], dir_1[1]);
457
- eucliDis_1 = eucliDis_1 < 0.0001 ? 0.0001 : eucliDis_1;
458
- dir_1[0] = dir_1[0] / eucliDis_1;
459
- dir_1[1] = dir_1[1] / eucliDis_1;
448
+ const dir = [nodej.data.x - nodei.data.x, nodej.data.y - nodei.data.y];
449
+ let eucliDis = Math.hypot(dir[0], dir[1]);
450
+ eucliDis = eucliDis < 0.0001 ? 0.0001 : eucliDis;
451
+ dir[0] = dir[0] / eucliDis;
452
+ dir[1] = dir[1] / eucliDis;
460
453
  if (preventOverlap && iter < preventOverlapIters) {
461
- eucliDis_1 = eucliDis_1 - sizes[nodei.id] - sizes[nodej.id];
454
+ eucliDis = eucliDis - sizes[nodei.id] - sizes[nodej.id];
462
455
  }
463
- var fr = (kr * (degreei + 1) * (degreej + 1)) / eucliDis_1;
464
- if (preventOverlap && iter < preventOverlapIters && eucliDis_1 < 0) {
456
+ let fr = (kr * (degreei + 1) * (degreej + 1)) / eucliDis;
457
+ if (preventOverlap && iter < preventOverlapIters && eucliDis < 0) {
465
458
  fr = krPrime * (degreei + 1) * (degreej + 1);
466
459
  }
467
460
  else if (preventOverlap &&
468
461
  iter < preventOverlapIters &&
469
- eucliDis_1 === 0) {
462
+ eucliDis === 0) {
470
463
  fr = 0;
471
464
  }
472
465
  else if (preventOverlap &&
473
466
  iter < preventOverlapIters &&
474
- eucliDis_1 > 0) {
475
- fr = (kr * (degreei + 1) * (degreej + 1)) / eucliDis_1;
467
+ eucliDis > 0) {
468
+ fr = (kr * (degreei + 1) * (degreej + 1)) / eucliDis;
476
469
  }
477
- forces[nodei.id][0] -= fr * dir_1[0];
478
- forces[nodej.id][0] += fr * dir_1[0];
479
- forces[nodei.id][1] -= fr * dir_1[1];
480
- forces[nodej.id][1] += fr * dir_1[1];
470
+ forces[nodei.id][0] -= fr * dir[0];
471
+ forces[nodej.id][0] += fr * dir[0];
472
+ forces[nodei.id][1] -= fr * dir[1];
473
+ forces[nodej.id][1] += fr * dir[1];
481
474
  }
482
475
  // gravity
483
- var dir = [nodei.data.x - center[0], nodei.data.y - center[1]];
484
- var eucliDis = Math.hypot(dir[0], dir[1]);
476
+ const dir = [nodei.data.x - center[0], nodei.data.y - center[1]];
477
+ const eucliDis = Math.hypot(dir[0], dir[1]);
485
478
  dir[0] = dir[0] / eucliDis;
486
479
  dir[1] = dir[1] / eucliDis;
487
- var fg = kg * (degreei + 1); // tslint:disable-line
480
+ const fg = kg * (degreei + 1); // tslint:disable-line
488
481
  forces[nodei.id][0] -= fg * dir[0];
489
482
  forces[nodei.id][1] -= fg * dir[1];
490
483
  }
491
484
  return forces;
492
- };
485
+ }
493
486
  /**
494
487
  * Update node positions.
495
488
  * @param graph graph for calculatiion
@@ -499,64 +492,63 @@ var ForceAtlas2Layout = /** @class */ (function () {
499
492
  * @param options formatted layout's input options
500
493
  * @returns
501
494
  */
502
- ForceAtlas2Layout.prototype.updatePos = function (graph, forces, preForces, sg, options) {
503
- var ks = options.ks, tao = options.tao, prune = options.prune, ksmax = options.ksmax;
504
- var nodes = graph.getAllNodes();
505
- var nodeNum = nodes.length;
506
- var swgns = [];
507
- var trans = [];
495
+ updatePos(graph, forces, preForces, sg, options) {
496
+ const { ks, tao, prune, ksmax } = options;
497
+ const nodes = graph.getAllNodes();
498
+ const nodeNum = nodes.length;
499
+ const swgns = [];
500
+ const trans = [];
508
501
  // swg(G) and tra(G)
509
- var swgG = 0;
510
- var traG = 0;
511
- var usingSg = sg;
512
- for (var i = 0; i < nodeNum; i += 1) {
513
- var id = nodes[i].id;
514
- var degree = graph.getDegree(id);
502
+ let swgG = 0;
503
+ let traG = 0;
504
+ let usingSg = sg;
505
+ for (let i = 0; i < nodeNum; i += 1) {
506
+ const { id } = nodes[i];
507
+ const degree = graph.getDegree(id);
515
508
  if (prune && degree <= 1)
516
509
  continue;
517
- var minus = [
510
+ const minus = [
518
511
  forces[id][0] - preForces[id][0],
519
512
  forces[id][1] - preForces[id][1],
520
513
  ];
521
- var minusNorm = Math.hypot(minus[0], minus[1]);
522
- var add = [
514
+ const minusNorm = Math.hypot(minus[0], minus[1]);
515
+ const add = [
523
516
  forces[id][0] + preForces[id][0],
524
517
  forces[id][1] + preForces[id][1],
525
518
  ];
526
- var addNorm = Math.hypot(add[0], add[1]);
519
+ const addNorm = Math.hypot(add[0], add[1]);
527
520
  swgns[i] = minusNorm;
528
521
  trans[i] = addNorm / 2;
529
522
  swgG += (degree + 1) * swgns[i];
530
523
  traG += (degree + 1) * trans[i];
531
524
  }
532
- var preSG = usingSg;
525
+ const preSG = usingSg;
533
526
  usingSg = (tao * traG) / swgG;
534
527
  if (preSG !== 0) {
535
528
  usingSg = usingSg > 1.5 * preSG ? 1.5 * preSG : usingSg;
536
529
  }
537
530
  // update the node positions
538
- for (var i = 0; i < nodeNum; i += 1) {
539
- var _a = nodes[i], id = _a.id, data = _a.data;
540
- var degree = graph.getDegree(id);
531
+ for (let i = 0; i < nodeNum; i += 1) {
532
+ const { id, data } = nodes[i];
533
+ const degree = graph.getDegree(id);
541
534
  if (prune && degree <= 1)
542
535
  continue;
543
- if (isNumber(data.fx) && isNumber(data.fy))
536
+ if ((0, util_1.isNumber)(data.fx) && (0, util_1.isNumber)(data.fy))
544
537
  continue;
545
- var sn = (ks * usingSg) / (1 + usingSg * Math.sqrt(swgns[i]));
546
- var absForce = Math.hypot(forces[id][0], forces[id][1]);
538
+ let sn = (ks * usingSg) / (1 + usingSg * Math.sqrt(swgns[i]));
539
+ let absForce = Math.hypot(forces[id][0], forces[id][1]);
547
540
  absForce = absForce < 0.0001 ? 0.0001 : absForce;
548
- var max = ksmax / absForce;
541
+ const max = ksmax / absForce;
549
542
  sn = sn > max ? max : sn;
550
- var dnx = sn * forces[id][0];
551
- var dny = sn * forces[id][1];
543
+ const dnx = sn * forces[id][0];
544
+ const dny = sn * forces[id][1];
552
545
  graph.mergeNodeData(id, {
553
546
  x: data.x + dnx,
554
547
  y: data.y + dny,
555
548
  });
556
549
  }
557
550
  return usingSg;
558
- };
559
- return ForceAtlas2Layout;
560
- }());
561
- export { ForceAtlas2Layout };
551
+ }
552
+ }
553
+ exports.ForceAtlas2Layout = ForceAtlas2Layout;
562
554
  //# sourceMappingURL=index.js.map