@deck.gl-community/graph-layers 9.2.0-beta.2 → 9.2.0-beta.3

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 (232) hide show
  1. package/dist/core/graph-engine.d.ts +63 -21
  2. package/dist/core/graph-engine.d.ts.map +1 -1
  3. package/dist/core/graph-engine.js +155 -75
  4. package/dist/core/graph-engine.js.map +1 -1
  5. package/dist/core/graph-layout.d.ts +22 -18
  6. package/dist/core/graph-layout.d.ts.map +1 -1
  7. package/dist/core/graph-layout.js +33 -18
  8. package/dist/core/graph-layout.js.map +1 -1
  9. package/dist/core/interaction-manager.d.ts +2 -2
  10. package/dist/core/interaction-manager.d.ts.map +1 -1
  11. package/dist/core/interaction-manager.js +7 -5
  12. package/dist/core/interaction-manager.js.map +1 -1
  13. package/dist/graph/arrow-graph.d.ts +69 -0
  14. package/dist/graph/arrow-graph.d.ts.map +1 -0
  15. package/dist/graph/arrow-graph.js +513 -0
  16. package/dist/graph/arrow-graph.js.map +1 -0
  17. package/dist/graph/classic-graph.d.ts +169 -0
  18. package/dist/graph/classic-graph.d.ts.map +1 -0
  19. package/dist/graph/classic-graph.js +390 -0
  20. package/dist/graph/classic-graph.js.map +1 -0
  21. package/dist/graph/edge.d.ts +6 -6
  22. package/dist/graph/edge.d.ts.map +1 -1
  23. package/dist/graph/edge.js.map +1 -1
  24. package/dist/graph/functions/arrow-utils.d.ts +6 -0
  25. package/dist/graph/functions/arrow-utils.d.ts.map +1 -0
  26. package/dist/graph/functions/arrow-utils.js +67 -0
  27. package/dist/graph/functions/arrow-utils.js.map +1 -0
  28. package/dist/graph/functions/create-graph-from-data.d.ts +3 -0
  29. package/dist/graph/functions/create-graph-from-data.d.ts.map +1 -0
  30. package/dist/graph/functions/create-graph-from-data.js +12 -0
  31. package/dist/graph/functions/create-graph-from-data.js.map +1 -0
  32. package/dist/graph/graph-normalization.d.ts +10 -0
  33. package/dist/graph/graph-normalization.d.ts.map +1 -0
  34. package/dist/graph/graph-normalization.js +65 -0
  35. package/dist/graph/graph-normalization.js.map +1 -0
  36. package/dist/graph/graph.d.ts +62 -155
  37. package/dist/graph/graph.d.ts.map +1 -1
  38. package/dist/graph/graph.js +11 -300
  39. package/dist/graph/graph.js.map +1 -1
  40. package/dist/graph/node.d.ts +6 -6
  41. package/dist/graph/node.d.ts.map +1 -1
  42. package/dist/graph/node.js +2 -2
  43. package/dist/graph/node.js.map +1 -1
  44. package/dist/graph-data/arrow-graph-data-builder.d.ts +21 -0
  45. package/dist/graph-data/arrow-graph-data-builder.d.ts.map +1 -0
  46. package/dist/graph-data/arrow-graph-data-builder.js +105 -0
  47. package/dist/graph-data/arrow-graph-data-builder.js.map +1 -0
  48. package/dist/graph-data/graph-data-builder.d.ts +6 -0
  49. package/dist/graph-data/graph-data-builder.d.ts.map +1 -0
  50. package/dist/graph-data/graph-data-builder.js +1 -0
  51. package/dist/graph-data/graph-data-builder.js.map +1 -0
  52. package/dist/graph-data/graph-data.d.ts +40 -0
  53. package/dist/graph-data/graph-data.d.ts.map +1 -0
  54. package/dist/graph-data/graph-data.js +11 -0
  55. package/dist/graph-data/graph-data.js.map +1 -0
  56. package/dist/graph-data/plain-graph-data-builder.d.ts +20 -0
  57. package/dist/graph-data/plain-graph-data-builder.d.ts.map +1 -0
  58. package/dist/graph-data/plain-graph-data-builder.js +105 -0
  59. package/dist/graph-data/plain-graph-data-builder.js.map +1 -0
  60. package/dist/graph-style-schema.cdn.js +1 -1
  61. package/dist/graph-style-schema.json +1 -1
  62. package/dist/index.cjs +6905 -4576
  63. package/dist/index.cjs.map +4 -4
  64. package/dist/index.d.ts +14 -7
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +24 -11
  67. package/dist/index.js.map +1 -1
  68. package/dist/layers/common-layers/flow-path-layer/flow-path-layer.d.ts.map +1 -1
  69. package/dist/layers/common-layers/flow-path-layer/flow-path-layer.js +1 -2
  70. package/dist/layers/common-layers/flow-path-layer/flow-path-layer.js.map +1 -1
  71. package/dist/layers/common-layers/grid-layer/grid-layer.d.ts +83 -0
  72. package/dist/layers/common-layers/grid-layer/grid-layer.d.ts.map +1 -0
  73. package/dist/layers/common-layers/grid-layer/grid-layer.js +133 -0
  74. package/dist/layers/common-layers/grid-layer/grid-layer.js.map +1 -0
  75. package/dist/layers/edge-attachment-helper.d.ts.map +1 -1
  76. package/dist/layers/edge-attachment-helper.js +1 -2
  77. package/dist/layers/edge-attachment-helper.js.map +1 -1
  78. package/dist/layers/graph-layer.d.ts +68 -11
  79. package/dist/layers/graph-layer.d.ts.map +1 -1
  80. package/dist/layers/graph-layer.js +435 -50
  81. package/dist/layers/graph-layer.js.map +1 -1
  82. package/dist/layouts/d3-dag/collapsable-d3-dag-layout.d.ts +24 -0
  83. package/dist/layouts/d3-dag/collapsable-d3-dag-layout.d.ts.map +1 -0
  84. package/dist/layouts/d3-dag/collapsable-d3-dag-layout.js +251 -0
  85. package/dist/layouts/d3-dag/collapsable-d3-dag-layout.js.map +1 -0
  86. package/dist/layouts/d3-dag/d3-dag-layout.d.ts +46 -61
  87. package/dist/layouts/d3-dag/d3-dag-layout.d.ts.map +1 -1
  88. package/dist/layouts/d3-dag/d3-dag-layout.js +85 -270
  89. package/dist/layouts/d3-dag/d3-dag-layout.js.map +1 -1
  90. package/dist/layouts/d3-force/d3-force-layout.d.ts +20 -8
  91. package/dist/layouts/d3-force/d3-force-layout.d.ts.map +1 -1
  92. package/dist/layouts/d3-force/d3-force-layout.js +39 -20
  93. package/dist/layouts/d3-force/d3-force-layout.js.map +1 -1
  94. package/dist/layouts/experimental/force-multi-graph-layout.d.ts +19 -15
  95. package/dist/layouts/experimental/force-multi-graph-layout.d.ts.map +1 -1
  96. package/dist/layouts/experimental/force-multi-graph-layout.js +47 -38
  97. package/dist/layouts/experimental/force-multi-graph-layout.js.map +1 -1
  98. package/dist/layouts/experimental/hive-plot-layout.d.ts +18 -15
  99. package/dist/layouts/experimental/hive-plot-layout.d.ts.map +1 -1
  100. package/dist/layouts/experimental/hive-plot-layout.js +33 -34
  101. package/dist/layouts/experimental/hive-plot-layout.js.map +1 -1
  102. package/dist/layouts/experimental/radial-layout.d.ts +12 -7
  103. package/dist/layouts/experimental/radial-layout.d.ts.map +1 -1
  104. package/dist/layouts/experimental/radial-layout.js +31 -14
  105. package/dist/layouts/experimental/radial-layout.js.map +1 -1
  106. package/dist/layouts/gpu-force/gpu-force-layout.d.ts +11 -8
  107. package/dist/layouts/gpu-force/gpu-force-layout.d.ts.map +1 -1
  108. package/dist/layouts/gpu-force/gpu-force-layout.js +59 -56
  109. package/dist/layouts/gpu-force/gpu-force-layout.js.map +1 -1
  110. package/dist/layouts/simple-layout.d.ts +8 -25
  111. package/dist/layouts/simple-layout.d.ts.map +1 -1
  112. package/dist/layouts/simple-layout.js +13 -17
  113. package/dist/layouts/simple-layout.js.map +1 -1
  114. package/dist/loaders/dot-graph-loader.d.ts +25 -0
  115. package/dist/loaders/dot-graph-loader.d.ts.map +1 -0
  116. package/dist/loaders/dot-graph-loader.js +668 -0
  117. package/dist/loaders/dot-graph-loader.js.map +1 -0
  118. package/dist/loaders/json-graph-loader.d.ts +6 -0
  119. package/dist/loaders/json-graph-loader.d.ts.map +1 -0
  120. package/dist/loaders/json-graph-loader.js +31 -0
  121. package/dist/loaders/json-graph-loader.js.map +1 -0
  122. package/dist/loaders/{edge-parsers.d.ts → parsers/edge-parsers.d.ts} +1 -1
  123. package/dist/loaders/parsers/edge-parsers.d.ts.map +1 -0
  124. package/dist/loaders/{edge-parsers.js → parsers/edge-parsers.js} +1 -1
  125. package/dist/loaders/parsers/edge-parsers.js.map +1 -0
  126. package/dist/loaders/{node-parsers.d.ts → parsers/node-parsers.d.ts} +1 -1
  127. package/dist/loaders/parsers/node-parsers.d.ts.map +1 -0
  128. package/dist/loaders/{node-parsers.js → parsers/node-parsers.js} +1 -1
  129. package/dist/loaders/parsers/node-parsers.js.map +1 -0
  130. package/dist/loaders/parsers/parse-json-graph.d.ts +29 -0
  131. package/dist/loaders/parsers/parse-json-graph.d.ts.map +1 -0
  132. package/dist/loaders/parsers/parse-json-graph.js +78 -0
  133. package/dist/loaders/parsers/parse-json-graph.js.map +1 -0
  134. package/dist/style/graph-style-engine.d.ts +4 -2
  135. package/dist/style/graph-style-engine.d.ts.map +1 -1
  136. package/dist/style/graph-style-engine.js +3 -2
  137. package/dist/style/graph-style-engine.js.map +1 -1
  138. package/dist/style/{style-engine.d.ts → stylesheet-engine.d.ts} +3 -3
  139. package/dist/style/stylesheet-engine.d.ts.map +1 -0
  140. package/dist/style/{style-engine.js → stylesheet-engine.js} +1 -1
  141. package/dist/style/stylesheet-engine.js.map +1 -0
  142. package/dist/utils/collapsed-chains.d.ts +8 -8
  143. package/dist/utils/collapsed-chains.d.ts.map +1 -1
  144. package/dist/utils/collapsed-chains.js +1 -6
  145. package/dist/utils/collapsed-chains.js.map +1 -1
  146. package/dist/utils/rank-grid.d.ts +30 -0
  147. package/dist/utils/rank-grid.d.ts.map +1 -0
  148. package/dist/utils/rank-grid.js +306 -0
  149. package/dist/utils/rank-grid.js.map +1 -0
  150. package/package.json +4 -8
  151. package/src/_disabled/arrow-graph-data.ts.disabled +18 -0
  152. package/src/_disabled/columnar-graph-data-builder.ts.disabled +250 -0
  153. package/src/_disabled/graph-runtime-layout.ts.disabled +29 -0
  154. package/src/core/graph-engine.ts +201 -84
  155. package/src/core/graph-layout.ts +52 -29
  156. package/src/core/interaction-manager.ts +20 -20
  157. package/src/graph/arrow-graph.ts +648 -0
  158. package/src/graph/classic-graph.ts +447 -0
  159. package/src/graph/edge.ts +7 -7
  160. package/src/graph/functions/arrow-utils.ts +72 -0
  161. package/src/graph/functions/convert-arrow-graph-to-classic-graph.ts.disabled +47 -0
  162. package/src/graph/functions/convert-plain-graph-to-arrow-graph.ts.disabled +119 -0
  163. package/src/graph/functions/create-graph-from-data.ts +16 -0
  164. package/src/graph/functions/create-plain-graph-from-data.ts.disabled +176 -0
  165. package/src/graph/graph-normalization.ts +87 -0
  166. package/src/graph/graph.ts +68 -339
  167. package/src/graph/node.ts +9 -9
  168. package/src/graph/tabular-graph.ts.disabled +761 -0
  169. package/src/graph-data/arrow-graph-data-builder.ts +165 -0
  170. package/src/graph-data/graph-data-builder.ts +7 -0
  171. package/src/graph-data/graph-data.ts +57 -0
  172. package/src/graph-data/plain-graph-data-builder.ts +132 -0
  173. package/src/index.ts +53 -13
  174. package/src/layers/common-layers/flow-path-layer/flow-path-layer.ts +1 -2
  175. package/src/layers/common-layers/grid-layer/grid-layer.ts +237 -0
  176. package/src/layers/edge-attachment-helper.ts +22 -16
  177. package/src/layers/graph-layer.ts +642 -62
  178. package/src/layouts/d3-dag/collapsable-d3-dag-layout.ts +330 -0
  179. package/src/layouts/d3-dag/d3-dag-layout.ts +166 -396
  180. package/src/layouts/d3-force/d3-force-layout.ts +52 -30
  181. package/src/layouts/experimental/force-multi-graph-layout.ts +55 -49
  182. package/src/layouts/experimental/hive-plot-layout.ts +41 -42
  183. package/src/layouts/experimental/radial-layout.ts +39 -20
  184. package/src/layouts/gpu-force/gpu-force-layout.ts +72 -70
  185. package/src/layouts/simple-layout.ts +20 -44
  186. package/src/loaders/{create-graph.ts → deprecated/create-graph.ts.disabled} +6 -6
  187. package/src/loaders/deprecated/json-classic-graph-loader.ts.disabled +33 -0
  188. package/src/loaders/{simple-json-graph-loader.ts → deprecated/simple-json-graph-loader.ts.disabled} +3 -3
  189. package/src/loaders/{table-graph-loader.ts → deprecated/table-graph-loader.ts.disabled} +8 -8
  190. package/src/loaders/dot-graph-loader.ts +860 -0
  191. package/src/loaders/json-graph-loader.ts +48 -0
  192. package/src/loaders/parsers/create-graph-data.ts.disabled +45 -0
  193. package/src/loaders/{edge-parsers.ts → parsers/edge-parsers.ts} +2 -2
  194. package/src/loaders/{node-parsers.ts → parsers/node-parsers.ts} +2 -2
  195. package/src/loaders/parsers/parse-json-graph.ts +134 -0
  196. package/src/style/graph-style-engine.ts +5 -2
  197. package/src/style/{style-engine.ts → stylesheet-engine.ts} +3 -3
  198. package/src/utils/collapsed-chains.ts +11 -17
  199. package/src/utils/rank-grid.ts +426 -0
  200. package/dist/loaders/create-graph.d.ts +0 -12
  201. package/dist/loaders/create-graph.d.ts.map +0 -1
  202. package/dist/loaders/create-graph.js +0 -38
  203. package/dist/loaders/create-graph.js.map +0 -1
  204. package/dist/loaders/edge-parsers.d.ts.map +0 -1
  205. package/dist/loaders/edge-parsers.js.map +0 -1
  206. package/dist/loaders/json-loader.d.ts +0 -7
  207. package/dist/loaders/json-loader.d.ts.map +0 -1
  208. package/dist/loaders/json-loader.js +0 -16
  209. package/dist/loaders/json-loader.js.map +0 -1
  210. package/dist/loaders/node-parsers.d.ts.map +0 -1
  211. package/dist/loaders/node-parsers.js.map +0 -1
  212. package/dist/loaders/simple-json-graph-loader.d.ts +0 -11
  213. package/dist/loaders/simple-json-graph-loader.d.ts.map +0 -1
  214. package/dist/loaders/simple-json-graph-loader.js +0 -20
  215. package/dist/loaders/simple-json-graph-loader.js.map +0 -1
  216. package/dist/loaders/table-graph-loader.d.ts +0 -16
  217. package/dist/loaders/table-graph-loader.d.ts.map +0 -1
  218. package/dist/loaders/table-graph-loader.js +0 -91
  219. package/dist/loaders/table-graph-loader.js.map +0 -1
  220. package/dist/style/style-engine.d.ts.map +0 -1
  221. package/dist/style/style-engine.js.map +0 -1
  222. package/dist/widgets/long-press-button.d.ts +0 -12
  223. package/dist/widgets/long-press-button.d.ts.map +0 -1
  224. package/dist/widgets/long-press-button.js +0 -31
  225. package/dist/widgets/long-press-button.js.map +0 -1
  226. package/dist/widgets/view-control-widget.d.ts +0 -77
  227. package/dist/widgets/view-control-widget.d.ts.map +0 -1
  228. package/dist/widgets/view-control-widget.js +0 -197
  229. package/dist/widgets/view-control-widget.js.map +0 -1
  230. package/src/loaders/json-loader.ts +0 -19
  231. package/src/widgets/long-press-button.tsx +0 -50
  232. package/src/widgets/view-control-widget.tsx +0 -339
@@ -4,35 +4,30 @@
4
4
  import { GraphLayout } from '../../core/graph-layout';
5
5
  export class HivePlotLayout extends GraphLayout {
6
6
  static defaultProps = {
7
+ ...GraphLayout.defaultProps,
7
8
  innerRadius: 100,
8
9
  outerRadius: 500,
9
10
  getNodeAxis: (node) => node.getPropertyValue('group')
10
11
  };
11
12
  _name = 'HivePlot';
12
- _graph;
13
- _totalAxis;
14
- _axis;
15
- _nodeMap = {};
16
- _nodePositionMap = {};
17
- constructor(options = {}) {
18
- super(options);
19
- this._options = {
20
- ...HivePlotLayout.defaultProps,
21
- ...options
22
- };
13
+ _graph = null;
14
+ _totalAxis = 0;
15
+ _axis = {};
16
+ _nodeMap = new Map();
17
+ _nodePositionMap = new Map();
18
+ constructor(props = {}) {
19
+ super(props, HivePlotLayout.defaultProps);
23
20
  }
24
21
  initializeGraph(graph) {
25
22
  this.updateGraph(graph);
26
23
  }
27
24
  updateGraph(graph) {
28
- const { getNodeAxis, innerRadius, outerRadius } = this._options;
25
+ const { getNodeAxis, innerRadius, outerRadius } = this.props;
29
26
  this._graph = graph;
30
- this._nodeMap = graph.getNodes().reduce((res, node) => {
31
- res[node.getId()] = node;
32
- return res;
33
- }, {});
27
+ const nodes = Array.from(graph.getNodes());
28
+ this._nodeMap = new Map(nodes.map((node) => [node.getId(), node]));
34
29
  // bucket nodes into few axis
35
- this._axis = graph.getNodes().reduce((res, node) => {
30
+ this._axis = nodes.reduce((res, node) => {
36
31
  const axis = getNodeAxis(node);
37
32
  if (!res[axis]) {
38
33
  res[axis] = [];
@@ -59,7 +54,8 @@ export class HivePlotLayout extends GraphLayout {
59
54
  const center = [0, 0];
60
55
  const angleInterval = 360 / Object.keys(this._axis).length;
61
56
  // calculate positions
62
- this._nodePositionMap = Object.keys(this._axis).reduce((res, axis, axisIdx) => {
57
+ this._nodePositionMap = new Map();
58
+ Object.keys(this._axis).forEach((axis, axisIdx) => {
63
59
  const axisAngle = angleInterval * axisIdx;
64
60
  const bucketedNodes = this._axis[axis];
65
61
  const interval = (outerRadius - innerRadius) / bucketedNodes.length;
@@ -67,30 +63,33 @@ export class HivePlotLayout extends GraphLayout {
67
63
  const radius = innerRadius + idx * interval;
68
64
  const x = Math.cos((axisAngle / 180) * Math.PI) * radius + center[0];
69
65
  const y = Math.sin((axisAngle / 180) * Math.PI) * radius + center[1];
70
- res[node.getId()] = [x, y];
66
+ this._nodePositionMap.set(node.getId(), [x, y]);
71
67
  });
72
- return res;
73
- }, {});
68
+ });
74
69
  }
75
70
  start() {
71
+ this._onLayoutStart();
76
72
  this._onLayoutChange();
77
73
  this._onLayoutDone();
78
74
  }
79
75
  stop() { }
80
76
  update() { }
81
77
  resume() { }
82
- getNodePosition = (node) => this._nodePositionMap[node.getId()];
78
+ getNodePosition = (node) => this._nodePositionMap.get(node.getId());
83
79
  getEdgePosition = (edge) => {
84
- const { getNodeAxis } = this._options;
80
+ const { getNodeAxis } = this.props;
85
81
  const sourceNodeId = edge.getSourceNodeId();
86
82
  const targetNodeId = edge.getTargetNodeId();
87
- const sourcePosition = this._nodePositionMap[sourceNodeId];
88
- const targetPosition = this._nodePositionMap[targetNodeId];
89
- const sourceNode = this._nodeMap[sourceNodeId];
90
- const targetNode = this._nodeMap[targetNodeId];
91
- const sourceNodeAxis = getNodeAxis(sourceNode);
92
- const targetNodeAxis = getNodeAxis(targetNode);
93
- if (sourceNodeAxis === targetNodeAxis) {
83
+ const sourcePosition = this._nodePositionMap.get(sourceNodeId);
84
+ const targetPosition = this._nodePositionMap.get(targetNodeId);
85
+ if (!sourcePosition || !targetPosition) {
86
+ return null;
87
+ }
88
+ const sourceNode = this._nodeMap.get(sourceNodeId);
89
+ const targetNode = this._nodeMap.get(targetNodeId);
90
+ const sourceNodeAxis = sourceNode ? getNodeAxis(sourceNode) : null;
91
+ const targetNodeAxis = targetNode ? getNodeAxis(targetNode) : null;
92
+ if (sourceNodeAxis !== null && sourceNodeAxis === targetNodeAxis) {
94
93
  return {
95
94
  type: 'line',
96
95
  sourcePosition,
@@ -100,9 +99,9 @@ export class HivePlotLayout extends GraphLayout {
100
99
  }
101
100
  const controlPoint = computeControlPoint({
102
101
  sourcePosition,
103
- sourceNodeAxis,
102
+ sourceNodeAxis: sourceNodeAxis ?? 0,
104
103
  targetPosition,
105
- targetNodeAxis,
104
+ targetNodeAxis: targetNodeAxis ?? 0,
106
105
  totalAxis: this._totalAxis
107
106
  });
108
107
  return {
@@ -113,12 +112,12 @@ export class HivePlotLayout extends GraphLayout {
113
112
  };
114
113
  };
115
114
  lockNodePosition = (node, x, y) => {
116
- this._nodePositionMap[node.id] = [x, y];
115
+ this._nodePositionMap.set(node.getId(), [x, y]);
117
116
  this._onLayoutChange();
118
117
  this._onLayoutDone();
119
118
  };
120
119
  _updateBounds() {
121
- const positions = Object.values(this._nodePositionMap ?? {}).map((position) => this._normalizePosition(position));
120
+ const positions = Array.from(this._nodePositionMap.values(), (position) => this._normalizePosition(position));
122
121
  this._bounds = this._calculateBounds(positions);
123
122
  }
124
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hive-plot-layout.js","sourceRoot":"","sources":["../../../src/layouts/experimental/hive-plot-layout.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,WAAW,EAAmB,mCAAgC;AAUtE,MAAM,OAAO,cAAe,SAAQ,WAAgC;IAClE,MAAM,CAAC,YAAY,GAAG;QACpB,WAAW,EAAE,GAAG;QAChB,WAAW,EAAE,GAAG;QAChB,WAAW,EAAE,CAAC,IAAU,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;KACD,CAAC;IAE7D,KAAK,GAAG,UAAU,CAAC;IACnB,MAAM,CAAQ;IACd,UAAU,CAAS;IACnB,KAAK,CAAsB;IAC3B,QAAQ,GAAG,EAAE,CAAC;IACd,gBAAgB,GAAG,EAAE,CAAC;IAEtB,YAAY,UAA+B,EAAE;QAC3C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG;YACd,GAAG,cAAc,CAAC,YAAY;YAC9B,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,KAAY;QAC1B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,WAAW,CAAC,KAAK;QACf,MAAM,EAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9D,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACpD,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;YACzB,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,6BAA6B;QAE7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACjD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACf,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACjB,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,2CAA2C;QAC3C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACxD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC9C,IAAI,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC;oBAClC,OAAO,CAAC,CAAC;gBACX,CAAC;gBACD,IAAI,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC;oBACpC,OAAO,CAAC,CAAC;gBACX,CAAC;gBACD,OAAO,CAAC,CAAC,CAAC;YACZ,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;YACxB,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QACjD,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtB,MAAM,aAAa,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC;QAE3D,sBAAsB;QACtB,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAC5E,MAAM,SAAS,GAAG,aAAa,GAAG,OAAO,CAAC;YAC1C,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;YAEpE,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;gBAClC,MAAM,MAAM,GAAG,WAAW,GAAG,GAAG,GAAG,QAAQ,CAAC;gBAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACrE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACrE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;IAED,KAAK;QACH,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,IAAI,KAAI,CAAC;IAET,MAAM,KAAI,CAAC;IAEX,MAAM,KAAI,CAAC;IAEX,eAAe,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAEhE,eAAe,GAAG,CAAC,IAAI,EAAE,EAAE;QACzB,MAAM,EAAC,WAAW,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QACpC,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAE5C,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAE3D,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAE/C,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;QAE/C,IAAI,cAAc,KAAK,cAAc,EAAE,CAAC;YACtC,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,cAAc;gBACd,cAAc;gBACd,aAAa,EAAE,EAAE;aAClB,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,mBAAmB,CAAC;YACvC,cAAc;YACd,cAAc;YACd,cAAc;YACd,cAAc;YACd,SAAS,EAAE,IAAI,CAAC,UAAU;SAC3B,CAAC,CAAC;QAEH,OAAO;YACL,IAAI,EAAE,cAAc;YACpB,cAAc;YACd,cAAc;YACd,aAAa,EAAE,CAAC,YAAY,CAAC;SAC9B,CAAC;IACJ,CAAC,CAAC;IAEF,gBAAgB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAChC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC,CAAC;IAEiB,aAAa;QAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC5E,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAClC,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;;AAGH,SAAS,mBAAmB,CAAC,EAC3B,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,SAAS,EACV;IACC,MAAM,QAAQ,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACrC,wDAAwD;IACxD,MAAM,QAAQ,GACZ,CAAC,cAAc,IAAI,QAAQ,IAAI,cAAc,IAAI,QAAQ,CAAC;QAC1D,CAAC,cAAc,GAAG,QAAQ,IAAI,cAAc,GAAG,QAAQ,CAAC,CAAC;IAC3D,kBAAkB;IAClB,MAAM,SAAS,GAAG,QAAQ,IAAI,cAAc,IAAI,QAAQ,IAAI,cAAc,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhG,0DAA0D;IAC1D,MAAM,MAAM,GAAG,cAAc,GAAG,cAAc,IAAI,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC;IAC7F,MAAM,MAAM,GAAG,cAAc,GAAG,cAAc,IAAI,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC;IAE7F,mBAAmB;IACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,QAAQ,GAAG,GAAG,CAAC;IAE9B,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5E,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IACzB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;IAC5D,OAAO;QACL,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS;QAChD,QAAQ,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,SAAS;KACjD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"hive-plot-layout.js","sourceRoot":"","sources":["../../../src/layouts/experimental/hive-plot-layout.ts"],"names":[],"mappings":"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"}
@@ -1,31 +1,36 @@
1
1
  import { GraphLayout, GraphLayoutProps } from '../../core/graph-layout';
2
- import { Graph } from '../../graph/graph';
2
+ import type { Graph, NodeInterface, EdgeInterface } from '../../graph/graph';
3
3
  export type RadialLayoutProps = GraphLayoutProps & {
4
4
  radius?: number;
5
5
  tree?: any;
6
6
  };
7
7
  export declare class RadialLayout extends GraphLayout<RadialLayoutProps> {
8
8
  static defaultProps: {
9
- radius: number;
9
+ readonly radius: 500;
10
+ readonly tree: readonly [];
11
+ readonly onLayoutStart: (detail?: import("../../core/graph-layout").GraphLayoutEventDetail) => void;
12
+ readonly onLayoutChange: (detail?: import("../../core/graph-layout").GraphLayoutEventDetail) => void;
13
+ readonly onLayoutDone: (detail?: import("../../core/graph-layout").GraphLayoutEventDetail) => void;
14
+ readonly onLayoutError: (error?: unknown) => void;
10
15
  };
11
16
  _name: string;
12
- _graph: Graph;
17
+ _graph: Graph | null;
13
18
  _hierarchicalPoints: {};
14
19
  nestedTree: any;
15
- constructor(options?: RadialLayoutProps);
20
+ constructor(props?: RadialLayoutProps);
16
21
  initializeGraph(graph: Graph): void;
17
22
  updateGraph(graph: Graph): void;
18
23
  start(): void;
19
24
  stop(): void;
20
25
  resume(): void;
21
26
  update(): void;
22
- getNodePosition: (node: any) => any;
23
- getEdgePosition: (edge: any) => {
27
+ getNodePosition: (node: NodeInterface) => any;
28
+ getEdgePosition: (edge: EdgeInterface) => {
24
29
  type: string;
25
30
  sourcePosition: any;
26
31
  targetPosition: any;
27
32
  controlPoints: any[];
28
33
  };
29
- lockNodePosition: (node: any, x: any, y: any) => void;
34
+ lockNodePosition: (node: NodeInterface, x: number, y: number) => void;
30
35
  protected _updateBounds(): void;
31
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"radial-layout.d.ts","sourceRoot":"","sources":["../../../src/layouts/experimental/radial-layout.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,WAAW,EAAE,gBAAgB,EAAC,mCAAgC;AACtE,OAAO,EAAC,KAAK,EAAC,6BAA0B;AAExC,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ,CAAC;AA2CF,qBAAa,YAAa,SAAQ,WAAW,CAAC,iBAAiB,CAAC;IAC9D,MAAM,CAAC,YAAY;;MAEjB;IAEF,KAAK,SAAkB;IACvB,MAAM,EAAE,KAAK,CAAQ;IAErB,mBAAmB,KAAM;IACzB,UAAU,MAAC;gBAEC,OAAO,GAAE,iBAAsB;IAQ3C,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAInC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAI/B,KAAK,IAAI,IAAI;IAsEb,IAAI,IAAI,IAAI;IAEZ,MAAM;IAEN,MAAM;IAEN,eAAe,GAAI,SAAI,SAErB;IAGF,eAAe,GAAI,SAAI;;;;;MAoCrB;IAEF,gBAAgB,GAAI,SAAI,EAAE,MAAC,EAAE,MAAC,UAI5B;cAEiB,aAAa,IAAI,IAAI;CAMzC"}
1
+ {"version":3,"file":"radial-layout.d.ts","sourceRoot":"","sources":["../../../src/layouts/experimental/radial-layout.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,WAAW,EAAE,gBAAgB,EAAC,mCAAgC;AACtE,OAAO,KAAK,EAAC,KAAK,EAAE,aAAa,EAAE,aAAa,EAAC,6BAA0B;AAE3E,MAAM,MAAM,iBAAiB,GAAG,gBAAgB,GAAG;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ,CAAC;AA0DF,qBAAa,YAAa,SAAQ,WAAW,CAAC,iBAAiB,CAAC;IAC9D,MAAM,CAAC,YAAY;;;uCAnDV,CAAC;wCAMC,CAAC;sCACe,CAAC;sCAI5B,CAAC;MA4C0D;IAE3D,KAAK,SAAkB;IACvB,MAAM,EAAE,KAAK,GAAG,IAAI,CAAQ;IAE5B,mBAAmB,KAAM;IACzB,UAAU,MAAC;gBAEC,KAAK,GAAE,iBAAsB;IAIzC,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAInC,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAI/B,KAAK,IAAI,IAAI;IA4Eb,IAAI,IAAI,IAAI;IAEZ,MAAM;IAEN,MAAM;IAEN,eAAe,GAAI,MAAM,aAAa,SAEpC;IAGF,eAAe,GAAI,MAAM,aAAa;;;;;MAoCpC;IAEF,gBAAgB,GAAI,MAAM,aAAa,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,UAI3D;cAEiB,aAAa,IAAI,IAAI;CAMzC"}
@@ -2,14 +2,25 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { GraphLayout } from '../../core/graph-layout';
5
- const traverseTree = (nodeId, nodeMap) => {
5
+ const getTreeNode = (nodeId, nodeMap) => {
6
6
  const node = nodeMap[nodeId];
7
+ if (node) {
8
+ return node;
9
+ }
10
+ return {
11
+ id: nodeId,
12
+ children: [],
13
+ isLeaf: true
14
+ };
15
+ };
16
+ const traverseTree = (nodeId, nodeMap) => {
17
+ const node = getTreeNode(nodeId, nodeMap);
7
18
  if (node.isLeaf) {
8
19
  return node;
9
20
  }
10
21
  return {
11
22
  ...node,
12
- children: node.children.map((nid) => traverseTree(nid, nodeMap))
23
+ children: (node.children ?? []).map((nid) => traverseTree(nid, nodeMap))
13
24
  };
14
25
  };
15
26
  const getLeafNodeCount = (node, count) => {
@@ -28,6 +39,9 @@ const getTreeDepth = (node, depth = 0) => {
28
39
  return getTreeDepth(node.children[0], depth + 1);
29
40
  };
30
41
  const getPath = (node, targetId, path) => {
42
+ if (!node) {
43
+ return false;
44
+ }
31
45
  if (node.id === targetId) {
32
46
  path.push(node.id);
33
47
  return true;
@@ -41,19 +55,17 @@ const getPath = (node, targetId, path) => {
41
55
  };
42
56
  export class RadialLayout extends GraphLayout {
43
57
  static defaultProps = {
44
- radius: 500
58
+ ...GraphLayout.defaultProps,
59
+ radius: 500,
60
+ tree: []
45
61
  };
46
62
  _name = 'RadialLayout';
47
63
  _graph = null;
48
64
  // custom layout data structure
49
65
  _hierarchicalPoints = {};
50
66
  nestedTree;
51
- constructor(options = {}) {
52
- super(options);
53
- this._options = {
54
- ...RadialLayout.defaultProps,
55
- ...options
56
- };
67
+ constructor(props = {}) {
68
+ super(props, RadialLayout.defaultProps);
57
69
  }
58
70
  initializeGraph(graph) {
59
71
  this.updateGraph(graph);
@@ -62,15 +74,20 @@ export class RadialLayout extends GraphLayout {
62
74
  this._graph = graph;
63
75
  }
64
76
  start() {
65
- const nodeCount = this._graph.getNodes().length;
77
+ if (!this._graph) {
78
+ return;
79
+ }
80
+ const nodes = Array.from(this._graph.getNodes());
81
+ const nodeCount = nodes.length;
66
82
  if (nodeCount === 0) {
67
83
  return;
68
84
  }
69
- const { tree } = this._options;
85
+ const { tree } = this.props;
70
86
  if (!tree || tree.length === 0) {
71
87
  return;
72
88
  }
73
- const { radius } = this._options;
89
+ this._onLayoutStart();
90
+ const { radius } = this.props;
74
91
  const unitAngle = 360 / nodeCount;
75
92
  // hierarchical positions
76
93
  const rootNode = tree[0];
@@ -114,7 +131,7 @@ export class RadialLayout extends GraphLayout {
114
131
  resume() { }
115
132
  update() { }
116
133
  getNodePosition = (node) => {
117
- return this._hierarchicalPoints[node.id];
134
+ return this._hierarchicalPoints[node.getId()];
118
135
  };
119
136
  // spline curve version
120
137
  getEdgePosition = (edge) => {
@@ -151,7 +168,7 @@ export class RadialLayout extends GraphLayout {
151
168
  };
152
169
  };
153
170
  lockNodePosition = (node, x, y) => {
154
- this._hierarchicalPoints[node.id] = [x, y];
171
+ this._hierarchicalPoints[node.getId()] = [x, y];
155
172
  this._onLayoutChange();
156
173
  this._onLayoutDone();
157
174
  };
@@ -1 +1 @@
1
- {"version":3,"file":"radial-layout.js","sourceRoot":"","sources":["../../../src/layouts/experimental/radial-layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"radial-layout.js","sourceRoot":"","sources":["../../../src/layouts/experimental/radial-layout.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { GraphLayout, GraphLayoutProps } from '../../core/graph-layout';
2
+ import type { Graph, NodeInterface, EdgeInterface } from '../../graph/graph';
2
3
  export type GPUForceLayoutOptions = GraphLayoutProps & {
3
4
  alpha?: number;
4
5
  resumeAlpha?: number;
@@ -18,9 +19,8 @@ export declare class GPUForceLayout extends GraphLayout<GPUForceLayoutOptions> {
18
19
  private _edgeMap;
19
20
  private _graph;
20
21
  private _worker;
21
- private _callbacks;
22
22
  constructor(options?: GPUForceLayoutOptions);
23
- initializeGraph(graph: any): void;
23
+ initializeGraph(graph: Graph): void;
24
24
  start(): void;
25
25
  update(): void;
26
26
  _engageWorker(): void;
@@ -28,16 +28,19 @@ export declare class GPUForceLayout extends GraphLayout<GPUForceLayoutOptions> {
28
28
  ended(data: any): void;
29
29
  resume(): void;
30
30
  stop(): void;
31
- updateGraph(graph: any): void;
32
- updateD3Graph(graph: any): void;
33
- getNodePosition: (node: any) => [number, number];
34
- getEdgePosition: (edge: any) => {
31
+ updateGraph(graph: Graph): void;
32
+ updateD3Graph(graph: {
33
+ nodes: any[];
34
+ edges: any[];
35
+ }): void;
36
+ getNodePosition: (node: NodeInterface) => [number, number];
37
+ getEdgePosition: (edge: EdgeInterface) => {
35
38
  type: string;
36
39
  sourcePosition: any[];
37
40
  targetPosition: any[];
38
41
  controlPoints: any[];
39
42
  };
40
- lockNodePosition: (node: any, x: any, y: any) => void;
41
- unlockNodePosition: (node: any) => void;
43
+ lockNodePosition: (node: NodeInterface, x: number, y: number) => void;
44
+ unlockNodePosition: (node: NodeInterface) => void;
42
45
  protected _updateBounds(): void;
43
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gpu-force-layout.d.ts","sourceRoot":"","sources":["../../../src/layouts/gpu-force/gpu-force-layout.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,WAAW,EAAE,gBAAgB,EAAC,mCAAgC;AAEtE,MAAM,MAAM,qBAAqB,GAAG,gBAAgB,GAAG;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF;;GAEG;AACH,qBAAa,cAAe,SAAQ,WAAW,CAAC,qBAAqB,CAAC;IACpE,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAOlD;IAEF,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,UAAU,CAAM;gBAEZ,OAAO,GAAE,qBAA0B;IAoB/C,eAAe,CAAC,KAAK,KAAA;IAuCrB,KAAK;IAIL,MAAM;IAIN,aAAa;IAiCb,MAAM,CAAC,IAAI,KAAA;IACX,KAAK,CAAC,IAAI,KAAA;IAMV,MAAM;IAGN,IAAI;IAQJ,WAAW,CAAC,KAAK,KAAA;IA0CjB,aAAa,CAAC,KAAK,KAAA;IA6BnB,eAAe,GAAI,SAAI,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMxC;IAEF,eAAe,GAAI,SAAI;;;;;MAkBrB;IAEF,gBAAgB,GAAI,SAAI,EAAE,MAAC,EAAE,MAAC,UAQ5B;IAEF,kBAAkB,GAAI,SAAI,UAIxB;cAEiB,aAAa,IAAI,IAAI;CAMzC"}
1
+ {"version":3,"file":"gpu-force-layout.d.ts","sourceRoot":"","sources":["../../../src/layouts/gpu-force/gpu-force-layout.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,WAAW,EAAE,gBAAgB,EAAC,mCAAgC;AACtE,OAAO,KAAK,EAAC,KAAK,EAAE,aAAa,EAAE,aAAa,EAAC,6BAA0B;AAE3E,MAAM,MAAM,qBAAqB,GAAG,gBAAgB,GAAG;IACrD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF;;GAEG;AACH,qBAAa,cAAe,SAAQ,WAAW,CAAC,qBAAqB,CAAC;IACpE,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAQlD;IAEF,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAS;IACzC,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,OAAO,CAAuB;gBAE1B,OAAO,GAAE,qBAA0B;IAW/C,eAAe,CAAC,KAAK,EAAE,KAAK;IAwC5B,KAAK;IAIL,MAAM;IAIN,aAAa;IAiCb,MAAM,CAAC,IAAI,KAAA;IACX,KAAK,CAAC,IAAI,KAAA;IAMV,MAAM;IAGN,IAAI;IAQJ,WAAW,CAAC,KAAK,EAAE,KAAK;IA+CxB,aAAa,CAAC,KAAK,EAAE;QAAC,KAAK,EAAE,GAAG,EAAE,CAAC;QAAC,KAAK,EAAE,GAAG,EAAE,CAAA;KAAC,GAAG,IAAI;IA6BxD,eAAe,GAAI,MAAM,aAAa,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMvD;IAEF,eAAe,GAAI,MAAM,aAAa;;;;;MAkBpC;IAEF,gBAAgB,GAAI,MAAM,aAAa,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,UAW3D;IAEF,kBAAkB,GAAI,MAAM,aAAa,UAOvC;cAEiB,aAAa,IAAI,IAAI;CAIzC"}
@@ -7,6 +7,7 @@ import { GraphLayout } from '../../core/graph-layout';
7
7
  */
8
8
  export class GPUForceLayout extends GraphLayout {
9
9
  static defaultProps = {
10
+ ...GraphLayout.defaultProps,
10
11
  alpha: 0.3,
11
12
  resumeAlpha: 0.1,
12
13
  nBodyStrength: -900,
@@ -20,31 +21,22 @@ export class GPUForceLayout extends GraphLayout {
20
21
  _edgeMap;
21
22
  _graph;
22
23
  _worker = null;
23
- _callbacks;
24
24
  constructor(options = {}) {
25
- const _options = {
26
- ...GPUForceLayout.defaultProps,
27
- ...options
28
- };
29
- super(_options);
25
+ super(options, GPUForceLayout.defaultProps);
30
26
  this._name = 'GPU';
31
- this._options = _options;
32
27
  // store graph and prepare internal data
33
28
  this._d3Graph = { nodes: [], edges: [] };
34
- this._nodeMap = {};
35
- this._edgeMap = {};
36
- this._callbacks = {
37
- onLayoutChange: this._onLayoutChange,
38
- onLayoutDone: this._onLayoutDone
39
- };
29
+ this._nodeMap = new Map();
30
+ this._edgeMap = new Map();
31
+ this._graph = null;
40
32
  }
41
33
  initializeGraph(graph) {
42
34
  this._graph = graph;
43
- this._nodeMap = {};
44
- this._edgeMap = {};
35
+ this._nodeMap = new Map();
36
+ this._edgeMap = new Map();
45
37
  // nodes
46
- const d3Nodes = graph.getNodes().map((node) => {
47
- const id = node.id;
38
+ const d3Nodes = Array.from(graph.getNodes(), (node) => {
39
+ const id = node.getId();
48
40
  const locked = node.getPropertyValue('locked') || false;
49
41
  const x = node.getPropertyValue('x') || 0;
50
42
  const y = node.getPropertyValue('y') || 0;
@@ -58,17 +50,18 @@ export class GPUForceLayout extends GraphLayout {
58
50
  collisionRadius,
59
51
  locked
60
52
  };
61
- this._nodeMap[node.id] = d3Node;
53
+ this._nodeMap.set(id, d3Node);
62
54
  return d3Node;
63
55
  });
64
56
  // edges
65
- const d3Edges = graph.getEdges().map((edge) => {
57
+ const d3Edges = Array.from(graph.getEdges(), (edge) => {
58
+ const id = edge.getId();
66
59
  const d3Edge = {
67
- id: edge.id,
68
- source: this._nodeMap[edge.getSourceNodeId()],
69
- target: this._nodeMap[edge.getTargetNodeId()]
60
+ id,
61
+ source: this._nodeMap.get(edge.getSourceNodeId()),
62
+ target: this._nodeMap.get(edge.getTargetNodeId())
70
63
  };
71
- this._edgeMap[edge.id] = d3Edge;
64
+ this._edgeMap.set(id, d3Edge);
72
65
  return d3Edge;
73
66
  });
74
67
  this._d3Graph = {
@@ -88,7 +81,7 @@ export class GPUForceLayout extends GraphLayout {
88
81
  this._worker.terminate();
89
82
  }
90
83
  this._worker = new Worker(new URL('./worker.js', import.meta.url).href);
91
- const { alpha, nBodyStrength, nBodyDistanceMin, nBodyDistanceMax, getCollisionRadius } = this._options;
84
+ const { alpha, nBodyStrength, nBodyDistanceMin, nBodyDistanceMax, getCollisionRadius } = this.props;
92
85
  this._worker.postMessage({
93
86
  nodes: this._d3Graph.nodes,
94
87
  edges: this._d3Graph.edges,
@@ -131,81 +124,85 @@ export class GPUForceLayout extends GraphLayout {
131
124
  }
132
125
  // for steaming new data on the same graph
133
126
  updateGraph(graph) {
134
- if (this._graph.getGraphName() !== graph.getGraphName()) {
127
+ const previousName = this._graph?.getGraphName?.();
128
+ const nextName = graph.getGraphName?.();
129
+ const isSameGraph = (previousName && nextName && previousName === nextName) || this._graph === graph;
130
+ if (!isSameGraph) {
135
131
  // reset the maps
136
- this._nodeMap = {};
137
- this._edgeMap = {};
132
+ this._nodeMap = new Map();
133
+ this._edgeMap = new Map();
138
134
  }
139
135
  this._graph = graph;
140
136
  // update internal layout data
141
137
  // nodes
142
- const newNodeMap = {};
143
- const newD3Nodes = graph.getNodes().map((node) => {
144
- const id = node.id;
138
+ const newNodeMap = new Map();
139
+ const newD3Nodes = Array.from(graph.getNodes(), (node) => {
140
+ const id = node.getId();
145
141
  const locked = node.getPropertyValue('locked') || false;
146
142
  const x = node.getPropertyValue('x') || 0;
147
143
  const y = node.getPropertyValue('y') || 0;
148
144
  const fx = locked ? x : null;
149
145
  const fy = locked ? y : null;
150
146
  const collisionRadius = node.getPropertyValue('collisionRadius') || 0;
151
- const oldD3Node = this._nodeMap[node.id];
147
+ const oldD3Node = this._nodeMap.get(id);
152
148
  const newD3Node = oldD3Node ? oldD3Node : { id, x, y, fx, fy, collisionRadius };
153
- newNodeMap[node.id] = newD3Node;
149
+ newNodeMap.set(id, newD3Node);
154
150
  return newD3Node;
155
151
  });
156
152
  this._nodeMap = newNodeMap;
157
153
  this._d3Graph.nodes = newD3Nodes;
158
154
  // edges
159
- const newEdgeMap = {};
160
- const newD3Edges = graph.getEdges().map((edge) => {
161
- const oldD3Edge = this._edgeMap[edge.id];
155
+ const newEdgeMap = new Map();
156
+ const newD3Edges = Array.from(graph.getEdges(), (edge) => {
157
+ const id = edge.getId();
158
+ const oldD3Edge = this._edgeMap.get(id);
162
159
  const newD3Edge = oldD3Edge || {
163
- id: edge.id,
164
- source: newNodeMap[edge.getSourceNodeId()],
165
- target: newNodeMap[edge.getTargetNodeId()]
160
+ id,
161
+ source: newNodeMap.get(edge.getSourceNodeId()),
162
+ target: newNodeMap.get(edge.getTargetNodeId())
166
163
  };
167
- newEdgeMap[edge.id] = newD3Edge;
164
+ newEdgeMap.set(id, newD3Edge);
168
165
  return newD3Edge;
169
166
  });
170
167
  this._edgeMap = newEdgeMap;
171
168
  this._d3Graph.edges = newD3Edges;
172
169
  }
173
170
  updateD3Graph(graph) {
174
- const existingNodes = this._graph.getNodes();
171
+ const existingNodes = this._graph ? Array.from(this._graph.getNodes()) : [];
175
172
  // update internal layout data
176
173
  // nodes
177
- const newNodeMap = {};
174
+ const newNodeMap = new Map();
178
175
  const newD3Nodes = graph.nodes.map((node) => {
179
176
  // Update existing _graph with the new values
180
177
  const existingNode = existingNodes.find((n) => n.getId() === node.id);
181
- existingNode.setDataProperty('locked', node.locked);
182
- existingNode.setDataProperty('x', node.x);
183
- existingNode.setDataProperty('y', node.y);
184
- existingNode.setDataProperty('collisionRadius', node.collisionRadius);
185
- newNodeMap[node.id] = node;
178
+ existingNode?.setDataProperty('locked', node.locked);
179
+ existingNode?.setDataProperty('x', node.x);
180
+ existingNode?.setDataProperty('y', node.y);
181
+ existingNode?.setDataProperty('collisionRadius', node.collisionRadius);
182
+ newNodeMap.set(node.id, node);
186
183
  return node;
187
184
  });
188
185
  this._nodeMap = newNodeMap;
189
186
  this._d3Graph.nodes = newD3Nodes;
190
187
  // edges
191
- const newEdgeMap = {};
188
+ const newEdgeMap = new Map();
192
189
  const newD3Edges = graph.edges.map((edge) => {
193
- newEdgeMap[edge.id] = edge;
190
+ newEdgeMap.set(edge.id, edge);
194
191
  return edge;
195
192
  });
196
- this._graph.triggerUpdate();
193
+ this._graph?.triggerUpdate?.();
197
194
  this._edgeMap = newEdgeMap;
198
195
  this._d3Graph.edges = newD3Edges;
199
196
  }
200
197
  getNodePosition = (node) => {
201
- const d3Node = this._nodeMap[node.id];
198
+ const d3Node = this._nodeMap.get(node.getId());
202
199
  if (d3Node) {
203
200
  return [d3Node.x, d3Node.y];
204
201
  }
205
202
  return [0, 0];
206
203
  };
207
204
  getEdgePosition = (edge) => {
208
- const d3Edge = this._edgeMap[edge.id];
205
+ const d3Edge = this._edgeMap.get(edge.getId());
209
206
  const sourcePosition = d3Edge && d3Edge.source;
210
207
  const targetPosition = d3Edge && d3Edge.target;
211
208
  if (d3Edge && sourcePosition && targetPosition) {
@@ -224,21 +221,27 @@ export class GPUForceLayout extends GraphLayout {
224
221
  };
225
222
  };
226
223
  lockNodePosition = (node, x, y) => {
227
- const d3Node = this._nodeMap[node.id];
224
+ const d3Node = this._nodeMap.get(node.getId());
225
+ if (!d3Node) {
226
+ return;
227
+ }
228
228
  d3Node.x = x;
229
229
  d3Node.y = y;
230
230
  d3Node.fx = x;
231
231
  d3Node.fy = y;
232
- this._callbacks.onLayoutChange();
233
- this._callbacks.onLayoutDone();
232
+ this._onLayoutChange();
233
+ this._onLayoutDone();
234
234
  };
235
235
  unlockNodePosition = (node) => {
236
- const d3Node = this._nodeMap[node.id];
236
+ const d3Node = this._nodeMap.get(node.getId());
237
+ if (!d3Node) {
238
+ return;
239
+ }
237
240
  d3Node.fx = null;
238
241
  d3Node.fy = null;
239
242
  };
240
243
  _updateBounds() {
241
- const positions = Object.values(this._nodeMap ?? {}).map((node) => this._normalizePosition(node));
244
+ const positions = Array.from(this._nodeMap.values(), (node) => this._normalizePosition(node));
242
245
  this._bounds = this._calculateBounds(positions);
243
246
  }
244
247
  }