@antv/layout 1.2.0 → 1.2.2

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 (142) hide show
  1. package/dist/0229766b7896aada2515.worker.js +2 -0
  2. package/dist/0229766b7896aada2515.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/bundle-entry.d.ts +18 -0
  6. package/lib/bundle-entry.js +19 -0
  7. package/lib/bundle-entry.js.map +1 -0
  8. package/lib/bundle-supervisor.d.ts +51 -0
  9. package/lib/bundle-supervisor.js +93 -0
  10. package/lib/bundle-supervisor.js.map +1 -0
  11. package/lib/bundle-worker.d.ts +3 -0
  12. package/lib/bundle-worker.js +53 -0
  13. package/lib/bundle-worker.js.map +1 -0
  14. package/lib/circular.js +258 -0
  15. package/lib/circular.js.map +1 -0
  16. package/lib/concentric.js +221 -0
  17. package/lib/concentric.js.map +1 -0
  18. package/lib/d3Force/forceInBox.js +331 -0
  19. package/lib/d3Force/forceInBox.js.map +1 -0
  20. package/lib/d3Force/index.js +339 -0
  21. package/lib/d3Force/index.js.map +1 -0
  22. package/lib/dagre/acyclic.js +62 -0
  23. package/lib/dagre/acyclic.js.map +1 -0
  24. package/lib/dagre/add-border-segments.js +37 -0
  25. package/lib/dagre/add-border-segments.js.map +1 -0
  26. package/lib/dagre/coordinate-system.js +65 -0
  27. package/lib/dagre/coordinate-system.js.map +1 -0
  28. package/lib/dagre/data/list.js +50 -0
  29. package/lib/dagre/data/list.js.map +1 -0
  30. package/lib/dagre/greedy-fas.js +147 -0
  31. package/lib/dagre/greedy-fas.js.map +1 -0
  32. package/lib/dagre/layout.js +468 -0
  33. package/lib/dagre/layout.js.map +1 -0
  34. package/lib/dagre/nesting-graph.js +153 -0
  35. package/lib/dagre/nesting-graph.js.map +1 -0
  36. package/lib/dagre/normalize.js +98 -0
  37. package/lib/dagre/normalize.js.map +1 -0
  38. package/lib/dagre/order/add-subgraph-constraints.js +41 -0
  39. package/lib/dagre/order/add-subgraph-constraints.js.map +1 -0
  40. package/lib/dagre/order/barycenter.js +23 -0
  41. package/lib/dagre/order/barycenter.js.map +1 -0
  42. package/lib/dagre/order/build-layer-graph.js +96 -0
  43. package/lib/dagre/order/build-layer-graph.js.map +1 -0
  44. package/lib/dagre/order/cross-count.js +63 -0
  45. package/lib/dagre/order/cross-count.js.map +1 -0
  46. package/lib/dagre/order/index.js +91 -0
  47. package/lib/dagre/order/index.js.map +1 -0
  48. package/lib/dagre/order/init-data-order.js +28 -0
  49. package/lib/dagre/order/init-data-order.js.map +1 -0
  50. package/lib/dagre/order/init-order.js +50 -0
  51. package/lib/dagre/order/init-order.js.map +1 -0
  52. package/lib/dagre/order/resolve-conflicts.js +121 -0
  53. package/lib/dagre/order/resolve-conflicts.js.map +1 -0
  54. package/lib/dagre/order/sort-subgraph.js +84 -0
  55. package/lib/dagre/order/sort-subgraph.js.map +1 -0
  56. package/lib/dagre/order/sort.js +74 -0
  57. package/lib/dagre/order/sort.js.map +1 -0
  58. package/lib/dagre/parent-dummy-chains.js +80 -0
  59. package/lib/dagre/parent-dummy-chains.js.map +1 -0
  60. package/lib/dagre/position/bk.js +398 -0
  61. package/lib/dagre/position/bk.js.map +1 -0
  62. package/lib/dagre/position/index.js +54 -0
  63. package/lib/dagre/position/index.js.map +1 -0
  64. package/lib/dagre/rank/feasible-tree.js +164 -0
  65. package/lib/dagre/rank/feasible-tree.js.map +1 -0
  66. package/lib/dagre/rank/index.js +48 -0
  67. package/lib/dagre/rank/index.js.map +1 -0
  68. package/lib/dagre/rank/network-simplex.js +232 -0
  69. package/lib/dagre/rank/network-simplex.js.map +1 -0
  70. package/lib/dagre/rank/util.js +138 -0
  71. package/lib/dagre/rank/util.js.map +1 -0
  72. package/lib/dagre/util.js +289 -0
  73. package/lib/dagre/util.js.map +1 -0
  74. package/lib/dagre.d.ts +1 -2
  75. package/lib/dagre.js +543 -0
  76. package/lib/dagre.js.map +1 -0
  77. package/lib/force/forceNBody.js +103 -0
  78. package/lib/force/forceNBody.js.map +1 -0
  79. package/lib/force/index.js +797 -0
  80. package/lib/force/index.js.map +1 -0
  81. package/lib/force/types.js +2 -0
  82. package/lib/force/types.js.map +1 -0
  83. package/lib/forceAtlas2/body.js +91 -0
  84. package/lib/forceAtlas2/body.js.map +1 -0
  85. package/lib/forceAtlas2/index.js +562 -0
  86. package/lib/forceAtlas2/index.js.map +1 -0
  87. package/lib/forceAtlas2/quad.js +98 -0
  88. package/lib/forceAtlas2/quad.js.map +1 -0
  89. package/lib/forceAtlas2/quadTree.js +105 -0
  90. package/lib/forceAtlas2/quadTree.js.map +1 -0
  91. package/lib/fruchterman.js +376 -0
  92. package/lib/fruchterman.js.map +1 -0
  93. package/lib/grid.js +308 -0
  94. package/lib/grid.js.map +1 -0
  95. package/lib/index.js +16 -0
  96. package/lib/index.js.map +1 -0
  97. package/lib/mds.js +137 -0
  98. package/lib/mds.js.map +1 -0
  99. package/lib/radial/index.js +355 -0
  100. package/lib/radial/index.js.map +1 -0
  101. package/lib/radial/mds.js +29 -0
  102. package/lib/radial/mds.js.map +1 -0
  103. package/lib/radial/radial-nonoverlap-force.js +100 -0
  104. package/lib/radial/radial-nonoverlap-force.js.map +1 -0
  105. package/lib/random.js +98 -0
  106. package/lib/random.js.map +1 -0
  107. package/lib/registry.d.ts +0 -1
  108. package/lib/registry.js +25 -0
  109. package/lib/registry.js.map +1 -0
  110. package/lib/supervisor.js +86 -0
  111. package/lib/supervisor.js.map +1 -0
  112. package/lib/types.js +4 -0
  113. package/lib/types.js.map +1 -0
  114. package/lib/util/array.js +2 -0
  115. package/lib/util/array.js.map +1 -0
  116. package/lib/util/common.d.ts +12 -0
  117. package/lib/util/common.js +32 -0
  118. package/lib/util/common.js.map +1 -0
  119. package/lib/util/function.js +124 -0
  120. package/lib/util/function.js.map +1 -0
  121. package/lib/util/gpu.js +214 -0
  122. package/lib/util/gpu.js.map +1 -0
  123. package/lib/util/index.js +7 -0
  124. package/lib/util/index.js.map +1 -0
  125. package/lib/util/math.js +228 -0
  126. package/lib/util/math.js.map +1 -0
  127. package/lib/util/number.js +5 -0
  128. package/lib/util/number.js.map +1 -0
  129. package/lib/util/object.js +42 -0
  130. package/lib/util/object.js.map +1 -0
  131. package/lib/util/string.js +15 -0
  132. package/lib/util/string.js.map +1 -0
  133. package/lib/worker.d.ts +1 -3
  134. package/lib/worker.js +45 -0
  135. package/lib/worker.js.map +1 -0
  136. package/package.json +6 -5
  137. package/dist/5e37927bd3e57252658c.worker.js +0 -2
  138. package/dist/5e37927bd3e57252658c.worker.js.map +0 -1
  139. package/esm/5e37927bd3e57252658c.worker.js +0 -2
  140. package/esm/5e37927bd3e57252658c.worker.js.map +0 -1
  141. package/esm/index.esm.js +0 -2
  142. package/esm/index.esm.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,MAAM,CAAC,IAAM,QAAQ,GAA2C;IAC9D,QAAQ,EAAE,cAAc;IACxB,UAAU,EAAE,gBAAgB;IAC5B,GAAG,EAAE,SAAS;IACd,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,UAAU;IAChB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,aAAa;IACtB,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,iBAAiB;IAC9B,KAAK,EAAE,WAAW;CACnB,CAAC"}
@@ -0,0 +1,86 @@
1
+ import { __awaiter, __extends, __generator, __read, __rest } from "tslib";
2
+ import EventEmitter from "eventemitter3";
3
+ import * as Comlink from "comlink";
4
+ /**
5
+ * @example
6
+ * const graph = new Graph();
7
+ * const layout = new CircularLayout();
8
+ *
9
+ * const supervisor = new Supervisor(graph, layout, { iterations: 1000 });
10
+ * const positions = await supervisor.execute();
11
+ * supervisor.stop();
12
+ * supervisor.kill();
13
+ */
14
+ var Supervisor = /** @class */ (function (_super) {
15
+ __extends(Supervisor, _super);
16
+ function Supervisor(graph, layout, options) {
17
+ var _this = _super.call(this) || this;
18
+ _this.graph = graph;
19
+ _this.layout = layout;
20
+ _this.options = options;
21
+ _this.spawnWorker();
22
+ return _this;
23
+ }
24
+ Supervisor.prototype.spawnWorker = function () {
25
+ if (this.worker) {
26
+ this.worker.terminate();
27
+ }
28
+ this.worker = Comlink.wrap(
29
+ // @ts-ignore
30
+ new Worker(new URL("./worker.js", import.meta.url)));
31
+ if (this.running) {
32
+ this.running = false;
33
+ this.execute();
34
+ }
35
+ };
36
+ Supervisor.prototype.execute = function () {
37
+ var _a;
38
+ return __awaiter(this, void 0, void 0, function () {
39
+ var _b, onTick, rest, payload, arraybufferWithNodesEdges, _c, positions;
40
+ return __generator(this, function (_d) {
41
+ switch (_d.label) {
42
+ case 0:
43
+ if (this.running)
44
+ return [2 /*return*/, this];
45
+ this.running = true;
46
+ _b = this.layout.options, onTick = _b.onTick, rest = __rest(_b, ["onTick"]);
47
+ payload = {
48
+ layout: {
49
+ id: this.layout.id,
50
+ options: rest,
51
+ iterations: (_a = this.options) === null || _a === void 0 ? void 0 : _a.iterations,
52
+ },
53
+ nodes: this.graph.getAllNodes(),
54
+ edges: this.graph.getAllEdges(),
55
+ };
56
+ arraybufferWithNodesEdges = new Float32Array([0]);
57
+ return [4 /*yield*/, this.worker.calculateLayout(payload, [
58
+ arraybufferWithNodesEdges,
59
+ ])];
60
+ case 1:
61
+ _c = __read.apply(void 0, [_d.sent(), 1]), positions = _c[0];
62
+ return [2 /*return*/, positions];
63
+ }
64
+ });
65
+ });
66
+ };
67
+ Supervisor.prototype.stop = function () {
68
+ this.running = false;
69
+ // trigger `layout.stop()` if needed
70
+ this.worker.stopLayout();
71
+ return this;
72
+ };
73
+ Supervisor.prototype.kill = function () {
74
+ // if (this.worker) {
75
+ // this.worker.terminate();
76
+ // }
77
+ // TODO: unbind listeners on graph.
78
+ // TODO: release attached memory
79
+ };
80
+ Supervisor.prototype.isRunning = function () {
81
+ return this.running;
82
+ };
83
+ return Supervisor;
84
+ }(EventEmitter));
85
+ export { Supervisor };
86
+ //# sourceMappingURL=supervisor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../src/supervisor.ts"],"names":[],"mappings":";AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAuBnC;;;;;;;;;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,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI;QACxB,aAAa;QACb,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CACpD,CAAC;QAEF,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,qBAAqB;QACrB,6BAA6B;QAC7B,IAAI;QAEJ,mCAAmC;QAEnC,gCAAgC;IAClC,CAAC;IAED,8BAAS,GAAT;QACE,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACH,iBAAC;AAAD,CAAC,AAnGD,CAAgC,YAAY,GAmG3C"}
package/lib/types.js ADDED
@@ -0,0 +1,4 @@
1
+ export function isLayoutWithIterations(layout) {
2
+ return !!layout.tick && !!layout.stop;
3
+ }
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAmGA,MAAM,UAAU,sBAAsB,CACpC,MAAW;IAEX,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;AACxC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export var isArray = Array.isArray;
2
+ //# sourceMappingURL=array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../../src/util/array.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { PointTuple, Graph } from "../types";
2
+ /**
3
+ * Assign or only return the result for the graph who has no nodes or only one node.
4
+ * @param graph original graph
5
+ * @param assign whether assign result to original graph
6
+ * @param center the layout center
7
+ * @returns
8
+ */
9
+ export declare const handleSingleNodeGraph: (graph: Graph, assign: boolean, center: PointTuple) => {
10
+ nodes: any[];
11
+ edges: import("@antv/graphlib").Edge<import("../types").EdgeData>[];
12
+ };
@@ -0,0 +1,32 @@
1
+ import { __assign } from "tslib";
2
+ /**
3
+ * Assign or only return the result for the graph who has no nodes or only one node.
4
+ * @param graph original graph
5
+ * @param assign whether assign result to original graph
6
+ * @param center the layout center
7
+ * @returns
8
+ */
9
+ export var handleSingleNodeGraph = function (graph, assign, center) {
10
+ var nodes = graph.getAllNodes();
11
+ var edges = graph.getAllEdges();
12
+ if (!(nodes === null || nodes === void 0 ? void 0 : nodes.length)) {
13
+ var result = { nodes: [], edges: edges };
14
+ return result;
15
+ }
16
+ if (nodes.length === 1) {
17
+ if (assign) {
18
+ graph.mergeNodeData(nodes[0].id, {
19
+ x: center[0],
20
+ y: center[1],
21
+ });
22
+ }
23
+ var result = {
24
+ nodes: [
25
+ __assign(__assign({}, nodes[0]), { data: __assign(__assign({}, nodes[0].data), { x: center[0], y: center[1] }) }),
26
+ ],
27
+ edges: edges,
28
+ };
29
+ return result;
30
+ }
31
+ };
32
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/util/common.ts"],"names":[],"mappings":";AAEA;;;;;;GAMG;AACH,MAAM,CAAC,IAAM,qBAAqB,GAAG,UACnC,KAAY,EACZ,MAAe,EACf,MAAkB;IAElB,IAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,IAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,IAAI,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAA,EAAE;QAClB,IAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAW,EAAE,KAAK,OAAA,EAAE,CAAC;QAC7C,OAAO,MAAM,CAAC;KACf;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,IAAI,MAAM,EAAE;YACV,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC/B,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;gBACZ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;aACb,CAAC,CAAC;SACJ;QACD,IAAM,MAAM,GAAG;YACb,KAAK,EAAE;sCAEA,KAAK,CAAC,CAAC,CAAC,KACX,IAAI,wBACC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAChB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EACZ,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;aAGjB;YACD,KAAK,OAAA;SACN,CAAC;QACF,OAAO,MAAM,CAAC;KACf;AACH,CAAC,CAAC"}
@@ -0,0 +1,124 @@
1
+ import { __read, __spreadArray } from "tslib";
2
+ import { isFunction, isNumber, isObject } from "@antv/util";
3
+ import { isArray } from ".";
4
+ /**
5
+ * Format value with multiple types into a function returns number.
6
+ * @param defaultValue default value when value is invalid
7
+ * @param value value to be formatted
8
+ * @returns formatted result, a function returns number
9
+ */
10
+ export function formatNumberFn(defaultValue, value) {
11
+ var resultFunc;
12
+ if (isFunction(value)) {
13
+ resultFunc = value;
14
+ }
15
+ else if (isNumber(value)) {
16
+ // value is number
17
+ resultFunc = function () { return value; };
18
+ }
19
+ else {
20
+ // value is not number and function
21
+ resultFunc = function () { return defaultValue; };
22
+ }
23
+ return resultFunc;
24
+ }
25
+ /**
26
+ * Format size config with multiple types into a function returns number
27
+ * @param defaultValue default value when value is invalid
28
+ * @param value value to be formatted
29
+ * @param resultIsNumber whether returns number
30
+ * @returns formatted result, a function returns number
31
+ */
32
+ export function formatSizeFn(defaultValue, value, resultIsNumber) {
33
+ if (resultIsNumber === void 0) { resultIsNumber = true; }
34
+ if (!value && value !== 0) {
35
+ return function (d) {
36
+ var size = (d.data || {}).size;
37
+ if (size) {
38
+ if (isArray(size)) {
39
+ return size[0] > size[1] ? size[0] : size[1];
40
+ }
41
+ if (isObject(size)) {
42
+ return size.width > size.height ? size.width : size.height;
43
+ }
44
+ return size;
45
+ }
46
+ return defaultValue;
47
+ };
48
+ }
49
+ if (isFunction(value)) {
50
+ return value;
51
+ }
52
+ if (isNumber(value)) {
53
+ return function () { return value; };
54
+ }
55
+ if (isArray(value)) {
56
+ return function () {
57
+ if (resultIsNumber) {
58
+ var max = Math.max.apply(Math, __spreadArray([], __read(value)));
59
+ return isNaN(max) ? defaultValue : max;
60
+ }
61
+ return value;
62
+ };
63
+ }
64
+ if (isObject(value)) {
65
+ return function () {
66
+ if (resultIsNumber) {
67
+ var max = Math.max(value.width, value.height);
68
+ return isNaN(max) ? defaultValue : max;
69
+ }
70
+ return [value.width, value.height];
71
+ };
72
+ }
73
+ return function () { return defaultValue; };
74
+ }
75
+ /**
76
+ * format the props nodeSize and nodeSpacing to a function
77
+ * @param nodeSize
78
+ * @param nodeSpacing
79
+ * @returns
80
+ */
81
+ export var formatNodeSize = function (nodeSize, nodeSpacing) {
82
+ var nodeSizeFunc;
83
+ var nodeSpacingFunc;
84
+ if (isNumber(nodeSpacing)) {
85
+ nodeSpacingFunc = function () { return nodeSpacing; };
86
+ }
87
+ else if (isFunction(nodeSpacing)) {
88
+ nodeSpacingFunc = nodeSpacing;
89
+ }
90
+ else {
91
+ nodeSpacingFunc = function () { return 0; };
92
+ }
93
+ if (!nodeSize) {
94
+ nodeSizeFunc = function (d) {
95
+ var _a, _b;
96
+ if ((_a = d.data) === null || _a === void 0 ? void 0 : _a.bboxSize) {
97
+ return (Math.max(d.data.bboxSize[0], d.data.bboxSize[1]) + nodeSpacingFunc(d));
98
+ }
99
+ if ((_b = d.data) === null || _b === void 0 ? void 0 : _b.size) {
100
+ if (isArray(d.data.size)) {
101
+ return Math.max(d.data.size[0], d.data.size[1]) + nodeSpacingFunc(d);
102
+ }
103
+ var dataSize = d.data.size;
104
+ if (isObject(dataSize)) {
105
+ var res = dataSize.width > dataSize.height ? dataSize.width : dataSize.height;
106
+ return res + nodeSpacingFunc(d);
107
+ }
108
+ return dataSize + nodeSpacingFunc(d);
109
+ }
110
+ return 10 + nodeSpacingFunc(d);
111
+ };
112
+ }
113
+ else if (isArray(nodeSize)) {
114
+ nodeSizeFunc = function (d) {
115
+ var res = nodeSize[0] > nodeSize[1] ? nodeSize[0] : nodeSize[1];
116
+ return res + nodeSpacingFunc(d);
117
+ };
118
+ }
119
+ else {
120
+ nodeSizeFunc = function (d) { return nodeSize + nodeSpacingFunc(d); };
121
+ }
122
+ return nodeSizeFunc;
123
+ };
124
+ //# sourceMappingURL=function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function.js","sourceRoot":"","sources":["../../src/util/function.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,214 @@
1
+ /**
2
+ * 将节点和边数据转换为 GPU 可读的数组。并返回 maxEdgePerVetex,每个节点上最多的边数
3
+ * @param {NodeConfig[]} nodes 需要被转换的值
4
+ * @param {EdgeConfig[]} edges 返回函数的默认返回值
5
+ * @return {Object} 转换后的数组及 maxEdgePerVetex 组成的对象
6
+ */
7
+ export var buildTextureData = function (nodes, edges) {
8
+ var dataArray = [];
9
+ var nodeDict = [];
10
+ var mapIdPos = {};
11
+ var i = 0;
12
+ for (i = 0; i < nodes.length; i++) {
13
+ var n = nodes[i];
14
+ mapIdPos[n.id] = i;
15
+ dataArray.push(n.data.x);
16
+ dataArray.push(n.data.y);
17
+ dataArray.push(0);
18
+ dataArray.push(0);
19
+ nodeDict.push([]);
20
+ }
21
+ for (i = 0; i < edges.length; i++) {
22
+ var _a = edges[i], source = _a.source, target = _a.target;
23
+ if (!isNaN(mapIdPos[source]) && !isNaN(mapIdPos[target])) {
24
+ nodeDict[mapIdPos[source]].push(mapIdPos[target]);
25
+ nodeDict[mapIdPos[target]].push(mapIdPos[source]);
26
+ }
27
+ }
28
+ var maxEdgePerVetex = 0;
29
+ for (i = 0; i < nodes.length; i++) {
30
+ var offset = dataArray.length;
31
+ var dests = nodeDict[i];
32
+ var len = dests.length;
33
+ dataArray[i * 4 + 2] = offset;
34
+ dataArray[i * 4 + 3] = len;
35
+ maxEdgePerVetex = Math.max(maxEdgePerVetex, len);
36
+ for (var j = 0; j < len; ++j) {
37
+ var dest = dests[j];
38
+ dataArray.push(+dest);
39
+ }
40
+ }
41
+ while (dataArray.length % 4 !== 0) {
42
+ dataArray.push(0);
43
+ }
44
+ return {
45
+ maxEdgePerVetex: maxEdgePerVetex,
46
+ array: new Float32Array(dataArray),
47
+ };
48
+ };
49
+ /**
50
+ * 将节点和边数据转换为 GPU 可读的数组,每条边带有一个属性。并返回 maxEdgePerVetex,每个节点上最多的边数
51
+ * @param {NodeConfig[]} nodes 节点数组
52
+ * @param {EdgeConfig[]} edges 边数组
53
+ * @param {Function} attrs 读取边属性的函数
54
+ * @return {Object} 转换后的数组及 maxEdgePerVetex 组成的对象
55
+ */
56
+ // export const buildTextureDataWithOneEdgeAttr = (nodes: OutNode[], edges: Edge[], attrs: Function): {
57
+ // array: Float32Array,
58
+ // maxEdgePerVetex: number
59
+ // } => {
60
+ // const dataArray = [];
61
+ // const nodeDict: any = [];
62
+ // const mapIdPos: IndexMap = {};
63
+ // let i = 0;
64
+ // for (i = 0; i < nodes.length; i++) {
65
+ // const n = nodes[i];
66
+ // mapIdPos[n.id] = i;
67
+ // dataArray.push(n.x);
68
+ // dataArray.push(n.y);
69
+ // dataArray.push(0);
70
+ // dataArray.push(0);
71
+ // nodeDict.push([]);
72
+ // }
73
+ // for (i = 0; i < edges.length; i++) {
74
+ // const e = edges[i];
75
+ // nodeDict[mapIdPos[e.source]].push(mapIdPos[e.target]);
76
+ // nodeDict[mapIdPos[e.source]].push(attrs(e)); // 理想边长,后续可以改成每条边不同
77
+ // nodeDict[mapIdPos[e.target]].push(mapIdPos[e.source]);
78
+ // nodeDict[mapIdPos[e.target]].push(attrs(e)); // 理想边长,后续可以改成每条边不同
79
+ // }
80
+ // let maxEdgePerVetex = 0;
81
+ // for (i = 0; i < nodes.length; i++) {
82
+ // const offset: number = dataArray.length;
83
+ // const dests = nodeDict[i]; // dest 中节点 id 与边长间隔存储,即一位节点 id,一位边长……
84
+ // const len = dests.length;
85
+ // dataArray[i * 4 + 2] = offset;
86
+ // dataArray[i * 4 + 3] = len / 2; // 第四位存储与该节点相关的所有节点个数
87
+ // maxEdgePerVetex = Math.max(maxEdgePerVetex, len / 2);
88
+ // for (let j = 0; j < len; ++j) {
89
+ // const dest = dests[j];
90
+ // dataArray.push(+dest);
91
+ // }
92
+ // }
93
+ // // 不是 4 的倍数,填充 0
94
+ // while (dataArray.length % 4 !== 0) {
95
+ // dataArray.push(0);
96
+ // }
97
+ // return {
98
+ // array: new Float32Array(dataArray),
99
+ // maxEdgePerVetex
100
+ // }
101
+ // }
102
+ /**
103
+ * 将节点和边数据转换为 GPU 可读的数组,每条边带有一个以上属性。并返回 maxEdgePerVetex,每个节点上最多的边数
104
+ * @param {NodeConfig[]} nodes 节点数组
105
+ * @param {EdgeConfig[]} edges 边数组
106
+ * @param {Function} attrs 读取边属性的函数
107
+ * @return {Object} 转换后的数组及 maxEdgePerVetex 组成的对象
108
+ */
109
+ export var buildTextureDataWithTwoEdgeAttr = function (nodes, edges, attrs1, attrs2) {
110
+ var dataArray = [];
111
+ var nodeDict = [];
112
+ var mapIdPos = {};
113
+ var i = 0;
114
+ for (i = 0; i < nodes.length; i++) {
115
+ var n = nodes[i];
116
+ mapIdPos[n.id] = i;
117
+ dataArray.push(n.data.x);
118
+ dataArray.push(n.data.y);
119
+ dataArray.push(0);
120
+ dataArray.push(0);
121
+ nodeDict.push([]);
122
+ }
123
+ for (i = 0; i < edges.length; i++) {
124
+ var e = edges[i];
125
+ var source = e.source, target = e.target;
126
+ nodeDict[mapIdPos[source]].push(mapIdPos[target]);
127
+ nodeDict[mapIdPos[source]].push(attrs1(e));
128
+ nodeDict[mapIdPos[source]].push(attrs2(e));
129
+ nodeDict[mapIdPos[source]].push(0);
130
+ nodeDict[mapIdPos[target]].push(mapIdPos[source]);
131
+ nodeDict[mapIdPos[target]].push(attrs1(e));
132
+ nodeDict[mapIdPos[target]].push(attrs2(e));
133
+ nodeDict[mapIdPos[target]].push(0);
134
+ }
135
+ var maxEdgePerVetex = 0;
136
+ for (i = 0; i < nodes.length; i++) {
137
+ var offset = dataArray.length;
138
+ var dests = nodeDict[i]; // dest 中节点 id 与边长间隔存储,即一位节点 id,一位边长……
139
+ var len = dests.length;
140
+ // dataArray[i * 4 + 2] = offset;
141
+ // dataArray[i * 4 + 3] = len / 4; // 第四位存储与该节点相关的所有节点个数
142
+ // pack offset & length into float32: offset 20bit, length 12bit
143
+ dataArray[i * 4 + 2] = offset + (1048576 * len) / 4;
144
+ dataArray[i * 4 + 3] = 0; // 第四位存储与上一次的距离差值
145
+ maxEdgePerVetex = Math.max(maxEdgePerVetex, len / 4);
146
+ for (var j = 0; j < len; ++j) {
147
+ var dest = dests[j];
148
+ dataArray.push(+dest);
149
+ }
150
+ }
151
+ // 不是 4 的倍数,填充 0
152
+ while (dataArray.length % 4 !== 0) {
153
+ dataArray.push(0);
154
+ }
155
+ return {
156
+ maxEdgePerVetex: maxEdgePerVetex,
157
+ array: new Float32Array(dataArray),
158
+ };
159
+ };
160
+ /**
161
+ * transform the extended attributes of nodes or edges to a texture array
162
+ * @param {string[]} attributeNames attributes' name to be read from items and put into output array
163
+ * @param {ModelConfig[]} items the items to be read
164
+ * @return {Float32Array} the attributes' value array to be read by GPU
165
+ */
166
+ export var attributesToTextureData = function (attributeNames, items) {
167
+ var dataArray = [];
168
+ var attributeNum = attributeNames.length;
169
+ var attributteStringMap = {};
170
+ items.forEach(function (item) {
171
+ attributeNames.forEach(function (name, i) {
172
+ if (attributteStringMap[item[name]] === undefined) {
173
+ attributteStringMap[item[name]] = Object.keys(attributteStringMap).length;
174
+ }
175
+ dataArray.push(attributteStringMap[item[name]]);
176
+ // insure each node's attributes take inter number of grids
177
+ if (i === attributeNum - 1) {
178
+ while (dataArray.length % 4 !== 0) {
179
+ dataArray.push(0);
180
+ }
181
+ }
182
+ });
183
+ });
184
+ return {
185
+ array: new Float32Array(dataArray),
186
+ count: Object.keys(attributteStringMap).length,
187
+ };
188
+ };
189
+ /**
190
+ * transform the number array format of extended attributes of nodes or edges to a texture array
191
+ * @param {string[]} attributeNames attributes' name to be read from items and put into output array
192
+ * @return {Float32Array} the attributes' value array to be read by GPU
193
+ */
194
+ export var arrayToTextureData = function (valueArrays) {
195
+ var dataArray = [];
196
+ var attributeNum = valueArrays.length;
197
+ var itemNum = valueArrays[0].length;
198
+ var _loop_1 = function (j) {
199
+ valueArrays.forEach(function (valueArray, i) {
200
+ dataArray.push(valueArray[j]);
201
+ // insure each node's attributes take inter number of grids
202
+ if (i === attributeNum - 1) {
203
+ while (dataArray.length % 4 !== 0) {
204
+ dataArray.push(0);
205
+ }
206
+ }
207
+ });
208
+ };
209
+ for (var j = 0; j < itemNum; j++) {
210
+ _loop_1(j);
211
+ }
212
+ return new Float32Array(dataArray);
213
+ };
214
+ //# sourceMappingURL=gpu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gpu.js","sourceRoot":"","sources":["../../src/util/gpu.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from "./string";
2
+ export * from "./array";
3
+ export * from "./number";
4
+ export * from "./math";
5
+ export * from "./object";
6
+ export * from "./function";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC"}