@deck.gl-community/graph-layers 9.1.1 → 9.2.0-beta.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 (251) hide show
  1. package/dist/_deprecated/old-constants.d.ts +107 -0
  2. package/dist/_deprecated/old-constants.d.ts.map +1 -0
  3. package/dist/_deprecated/old-constants.js +111 -0
  4. package/dist/_deprecated/old-constants.js.map +1 -0
  5. package/dist/core/cache.d.ts +0 -1
  6. package/dist/core/cache.js +0 -1
  7. package/dist/core/constants.d.ts +12 -100
  8. package/dist/core/constants.d.ts.map +1 -1
  9. package/dist/core/constants.js +3 -44
  10. package/dist/core/constants.js.map +1 -1
  11. package/dist/core/graph-engine.d.ts +12 -11
  12. package/dist/core/graph-engine.d.ts.map +1 -1
  13. package/dist/core/graph-engine.js +22 -11
  14. package/dist/core/graph-engine.js.map +1 -1
  15. package/dist/core/graph-layout.d.ts +48 -21
  16. package/dist/core/graph-layout.d.ts.map +1 -1
  17. package/dist/core/graph-layout.js +91 -24
  18. package/dist/core/graph-layout.js.map +1 -1
  19. package/dist/core/interaction-manager.d.ts +6 -4
  20. package/dist/core/interaction-manager.d.ts.map +1 -1
  21. package/dist/core/interaction-manager.js +59 -17
  22. package/dist/core/interaction-manager.js.map +1 -1
  23. package/dist/graph/edge.d.ts +7 -7
  24. package/dist/graph/edge.d.ts.map +1 -1
  25. package/dist/graph/edge.js +3 -6
  26. package/dist/graph/edge.js.map +1 -1
  27. package/dist/graph/graph.d.ts +2 -3
  28. package/dist/graph/graph.js +8 -9
  29. package/dist/graph/graph.js.map +1 -1
  30. package/dist/graph/node.d.ts +7 -8
  31. package/dist/graph/node.d.ts.map +1 -1
  32. package/dist/graph/node.js +3 -5
  33. package/dist/graph/node.js.map +1 -1
  34. package/dist/graph-style-schema.cdn.d.ts +2 -0
  35. package/dist/graph-style-schema.cdn.js +2 -0
  36. package/dist/graph-style-schema.json +12 -0
  37. package/dist/index.cjs +2821 -549
  38. package/dist/index.cjs.map +4 -4
  39. package/dist/index.d.ts +28 -22
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +25 -21
  42. package/dist/index.js.map +1 -1
  43. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-fragment.glsl.d.ts +0 -1
  44. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-fragment.glsl.js +0 -1
  45. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex-tf.glsl.d.ts +0 -1
  46. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex-tf.glsl.js +0 -1
  47. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex.glsl.d.ts +0 -1
  48. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex.glsl.js +0 -1
  49. package/dist/layers/common-layers/flow-path-layer/flow-path-layer.d.ts +0 -1
  50. package/dist/layers/common-layers/flow-path-layer/flow-path-layer.js +0 -1
  51. package/dist/layers/common-layers/marker-layer/atlas-data-url.d.ts +0 -1
  52. package/dist/layers/common-layers/marker-layer/atlas-data-url.js +0 -1
  53. package/dist/layers/common-layers/marker-layer/marker-layer.d.ts +0 -1
  54. package/dist/layers/common-layers/marker-layer/marker-layer.js +2 -3
  55. package/dist/layers/common-layers/marker-layer/marker-list.d.ts +2 -63
  56. package/dist/layers/common-layers/marker-layer/marker-list.d.ts.map +1 -1
  57. package/dist/layers/common-layers/marker-layer/marker-list.js +1 -65
  58. package/dist/layers/common-layers/marker-layer/marker-list.js.map +1 -1
  59. package/dist/layers/common-layers/marker-layer/marker-mapping.d.ts +0 -1
  60. package/dist/layers/common-layers/marker-layer/marker-mapping.js +0 -1
  61. package/dist/layers/common-layers/spline-layer/spline-layer.d.ts +0 -1
  62. package/dist/layers/common-layers/spline-layer/spline-layer.js +0 -1
  63. package/dist/layers/common-layers/zoomable-text-layer/zoomable-text-layer.d.ts +0 -1
  64. package/dist/layers/common-layers/zoomable-text-layer/zoomable-text-layer.js +0 -1
  65. package/dist/layers/edge-attachment-helper.d.ts +15 -0
  66. package/dist/layers/edge-attachment-helper.d.ts.map +1 -0
  67. package/dist/layers/edge-attachment-helper.js +230 -0
  68. package/dist/layers/edge-attachment-helper.js.map +1 -0
  69. package/dist/layers/edge-layer.d.ts +1 -5
  70. package/dist/layers/edge-layer.d.ts.map +1 -1
  71. package/dist/layers/edge-layer.js +9 -11
  72. package/dist/layers/edge-layer.js.map +1 -1
  73. package/dist/layers/edge-layers/arrow-2d-geometry.d.ts +4 -0
  74. package/dist/layers/edge-layers/arrow-2d-geometry.d.ts.map +1 -0
  75. package/dist/layers/edge-layers/arrow-2d-geometry.js +42 -0
  76. package/dist/layers/edge-layers/arrow-2d-geometry.js.map +1 -0
  77. package/dist/layers/edge-layers/curved-edge-layer.d.ts +1 -2
  78. package/dist/layers/edge-layers/curved-edge-layer.js +1 -2
  79. package/dist/layers/edge-layers/edge-arrow-layer.d.ts +21 -0
  80. package/dist/layers/edge-layers/edge-arrow-layer.d.ts.map +1 -0
  81. package/dist/layers/edge-layers/edge-arrow-layer.js +131 -0
  82. package/dist/layers/edge-layers/edge-arrow-layer.js.map +1 -0
  83. package/dist/layers/edge-layers/edge-label-layer.d.ts +1 -2
  84. package/dist/layers/edge-layers/edge-label-layer.js +1 -2
  85. package/dist/layers/edge-layers/flow-layer.d.ts +1 -2
  86. package/dist/layers/edge-layers/flow-layer.js +1 -2
  87. package/dist/layers/edge-layers/path-edge-layer.d.ts +0 -1
  88. package/dist/layers/edge-layers/path-edge-layer.js +0 -1
  89. package/dist/layers/edge-layers/straight-line-edge-layer.d.ts +0 -1
  90. package/dist/layers/edge-layers/straight-line-edge-layer.js +0 -1
  91. package/dist/layers/graph-layer.d.ts +22 -23
  92. package/dist/layers/graph-layer.d.ts.map +1 -1
  93. package/dist/layers/graph-layer.js +218 -62
  94. package/dist/layers/graph-layer.js.map +1 -1
  95. package/dist/layers/node-layers/circle-layer.d.ts +0 -1
  96. package/dist/layers/node-layers/circle-layer.js +0 -1
  97. package/dist/layers/node-layers/image-layer.d.ts +0 -1
  98. package/dist/layers/node-layers/image-layer.js +0 -1
  99. package/dist/layers/node-layers/label-layer.d.ts +1 -2
  100. package/dist/layers/node-layers/label-layer.js +1 -2
  101. package/dist/layers/node-layers/path-rounded-rectangle-layer.d.ts +0 -1
  102. package/dist/layers/node-layers/path-rounded-rectangle-layer.js +1 -2
  103. package/dist/layers/node-layers/rectangle-layer.d.ts +0 -1
  104. package/dist/layers/node-layers/rectangle-layer.js +0 -1
  105. package/dist/layers/node-layers/rounded-rectangle-layer-fragment.d.ts +0 -1
  106. package/dist/layers/node-layers/rounded-rectangle-layer-fragment.js +0 -1
  107. package/dist/layers/node-layers/rounded-rectangle-layer.d.ts +1 -2
  108. package/dist/layers/node-layers/rounded-rectangle-layer.js +2 -3
  109. package/dist/layers/node-layers/zoomable-marker-layer.d.ts +1 -2
  110. package/dist/layers/node-layers/zoomable-marker-layer.js +1 -2
  111. package/dist/layouts/d3-dag/d3-dag-layout.d.ts +117 -0
  112. package/dist/layouts/d3-dag/d3-dag-layout.d.ts.map +1 -0
  113. package/dist/layouts/d3-dag/d3-dag-layout.js +716 -0
  114. package/dist/layouts/d3-dag/d3-dag-layout.js.map +1 -0
  115. package/dist/layouts/d3-force/d3-force-layout.d.ts +4 -4
  116. package/dist/layouts/d3-force/d3-force-layout.d.ts.map +1 -1
  117. package/dist/layouts/d3-force/d3-force-layout.js +25 -10
  118. package/dist/layouts/d3-force/d3-force-layout.js.map +1 -1
  119. package/dist/layouts/d3-force/worker.d.ts +0 -1
  120. package/dist/layouts/d3-force/worker.js +0 -1
  121. package/dist/layouts/experimental/force-multi-graph-layout.d.ts +9 -8
  122. package/dist/layouts/experimental/force-multi-graph-layout.d.ts.map +1 -1
  123. package/dist/layouts/experimental/force-multi-graph-layout.js +15 -11
  124. package/dist/layouts/experimental/force-multi-graph-layout.js.map +1 -1
  125. package/dist/layouts/experimental/hive-plot-layout.d.ts +11 -8
  126. package/dist/layouts/experimental/hive-plot-layout.d.ts.map +1 -1
  127. package/dist/layouts/experimental/hive-plot-layout.js +12 -7
  128. package/dist/layouts/experimental/hive-plot-layout.js.map +1 -1
  129. package/dist/layouts/experimental/radial-layout.d.ts +10 -7
  130. package/dist/layouts/experimental/radial-layout.d.ts.map +1 -1
  131. package/dist/layouts/experimental/radial-layout.js +11 -6
  132. package/dist/layouts/experimental/radial-layout.js.map +1 -1
  133. package/dist/layouts/gpu-force/gpu-force-layout.d.ts +4 -4
  134. package/dist/layouts/gpu-force/gpu-force-layout.d.ts.map +1 -1
  135. package/dist/layouts/gpu-force/gpu-force-layout.js +18 -9
  136. package/dist/layouts/gpu-force/gpu-force-layout.js.map +1 -1
  137. package/dist/layouts/gpu-force/worker.d.ts +0 -1
  138. package/dist/layouts/gpu-force/worker.js +0 -1
  139. package/dist/layouts/simple-layout.d.ts +19 -12
  140. package/dist/layouts/simple-layout.d.ts.map +1 -1
  141. package/dist/layouts/simple-layout.js +26 -15
  142. package/dist/layouts/simple-layout.js.map +1 -1
  143. package/dist/loaders/create-graph.d.ts +1 -2
  144. package/dist/loaders/create-graph.js +3 -4
  145. package/dist/loaders/edge-parsers.d.ts +1 -2
  146. package/dist/loaders/edge-parsers.js +2 -3
  147. package/dist/loaders/edge-parsers.js.map +1 -1
  148. package/dist/loaders/json-loader.d.ts +2 -3
  149. package/dist/loaders/json-loader.d.ts.map +1 -1
  150. package/dist/loaders/json-loader.js +5 -6
  151. package/dist/loaders/json-loader.js.map +1 -1
  152. package/dist/loaders/node-parsers.d.ts +1 -2
  153. package/dist/loaders/node-parsers.js +2 -3
  154. package/dist/loaders/node-parsers.js.map +1 -1
  155. package/dist/loaders/simple-json-graph-loader.d.ts +0 -1
  156. package/dist/loaders/simple-json-graph-loader.d.ts.map +1 -1
  157. package/dist/loaders/simple-json-graph-loader.js +5 -6
  158. package/dist/loaders/simple-json-graph-loader.js.map +1 -1
  159. package/dist/loaders/table-graph-loader.d.ts +3 -4
  160. package/dist/loaders/table-graph-loader.js +5 -6
  161. package/dist/loaders/table-graph-loader.js.map +1 -1
  162. package/dist/style/graph-layer-stylesheet.d.ts +34 -0
  163. package/dist/style/graph-layer-stylesheet.d.ts.map +1 -0
  164. package/dist/style/graph-layer-stylesheet.js +39 -0
  165. package/dist/style/graph-layer-stylesheet.js.map +1 -0
  166. package/dist/style/graph-style-accessor-map.d.ts +93 -0
  167. package/dist/style/graph-style-accessor-map.d.ts.map +1 -0
  168. package/dist/style/graph-style-accessor-map.js +93 -0
  169. package/dist/style/graph-style-accessor-map.js.map +1 -0
  170. package/dist/style/graph-style-engine.d.ts +10 -0
  171. package/dist/style/graph-style-engine.d.ts.map +1 -0
  172. package/dist/style/graph-style-engine.js +163 -0
  173. package/dist/style/graph-style-engine.js.map +1 -0
  174. package/dist/style/graph-stylesheet.schema.d.ts +310 -0
  175. package/dist/style/graph-stylesheet.schema.d.ts.map +1 -0
  176. package/dist/style/graph-stylesheet.schema.js +237 -0
  177. package/dist/style/graph-stylesheet.schema.js.map +1 -0
  178. package/dist/style/style-engine.d.ts +33 -0
  179. package/dist/style/style-engine.d.ts.map +1 -0
  180. package/dist/style/style-engine.js +121 -0
  181. package/dist/style/style-engine.js.map +1 -0
  182. package/dist/style/style-property.d.ts +2 -3
  183. package/dist/style/style-property.d.ts.map +1 -1
  184. package/dist/style/style-property.js +224 -48
  185. package/dist/style/style-property.js.map +1 -1
  186. package/dist/utils/collapsed-chains.d.ts +17 -0
  187. package/dist/utils/collapsed-chains.d.ts.map +1 -0
  188. package/dist/utils/collapsed-chains.js +197 -0
  189. package/dist/utils/collapsed-chains.js.map +1 -0
  190. package/dist/utils/layer-utils.d.ts +0 -1
  191. package/dist/utils/layer-utils.d.ts.map +1 -1
  192. package/dist/utils/layer-utils.js +0 -1
  193. package/dist/utils/log.d.ts +2 -1
  194. package/dist/utils/log.d.ts.map +1 -1
  195. package/dist/utils/log.js +12 -2
  196. package/dist/utils/log.js.map +1 -1
  197. package/dist/utils/node-boundary.d.ts +10 -0
  198. package/dist/utils/node-boundary.d.ts.map +1 -0
  199. package/dist/utils/node-boundary.js +130 -0
  200. package/dist/utils/node-boundary.js.map +1 -0
  201. package/dist/utils/polygon-calculations.d.ts +0 -1
  202. package/dist/utils/polygon-calculations.js +0 -1
  203. package/dist/widgets/long-press-button.d.ts +0 -1
  204. package/dist/widgets/long-press-button.js +0 -1
  205. package/dist/widgets/view-control-widget.d.ts +4 -5
  206. package/dist/widgets/view-control-widget.d.ts.map +1 -1
  207. package/dist/widgets/view-control-widget.js +10 -8
  208. package/dist/widgets/view-control-widget.js.map +1 -1
  209. package/package.json +23 -7
  210. package/src/_deprecated/old-constants.ts +122 -0
  211. package/src/core/constants.ts +21 -43
  212. package/src/core/graph-engine.ts +24 -9
  213. package/src/core/graph-layout.ts +133 -28
  214. package/src/core/interaction-manager.ts +80 -20
  215. package/src/graph/edge.ts +6 -6
  216. package/src/graph/graph.ts +7 -7
  217. package/src/graph/node.ts +6 -6
  218. package/src/index.ts +31 -6
  219. package/src/layers/common-layers/marker-layer/marker-list.ts +62 -64
  220. package/src/layers/edge-attachment-helper.ts +355 -0
  221. package/src/layers/edge-layer.ts +6 -7
  222. package/src/layers/edge-layers/arrow-2d-geometry.ts +51 -0
  223. package/src/layers/edge-layers/edge-arrow-layer.ts +171 -0
  224. package/src/layers/graph-layer.ts +304 -86
  225. package/src/layouts/d3-dag/d3-dag-layout.ts +969 -0
  226. package/src/layouts/d3-force/d3-force-layout.ts +33 -11
  227. package/src/layouts/experimental/force-multi-graph-layout.ts +22 -13
  228. package/src/layouts/experimental/hive-plot-layout.ts +22 -10
  229. package/src/layouts/experimental/radial-layout.ts +20 -8
  230. package/src/layouts/gpu-force/gpu-force-layout.ts +22 -10
  231. package/src/layouts/simple-layout.ts +48 -25
  232. package/src/loaders/edge-parsers.ts +2 -2
  233. package/src/loaders/json-loader.ts +2 -2
  234. package/src/loaders/node-parsers.ts +2 -2
  235. package/src/loaders/simple-json-graph-loader.ts +2 -2
  236. package/src/loaders/table-graph-loader.ts +2 -2
  237. package/src/style/graph-layer-stylesheet.ts +99 -0
  238. package/src/style/graph-style-accessor-map.ts +103 -0
  239. package/src/style/graph-style-engine.ts +229 -0
  240. package/src/style/graph-stylesheet.schema.ts +344 -0
  241. package/src/style/style-engine.ts +168 -0
  242. package/src/style/style-property.ts +314 -51
  243. package/src/utils/collapsed-chains.ts +261 -0
  244. package/src/utils/log.ts +15 -1
  245. package/src/utils/node-boundary.ts +238 -0
  246. package/src/widgets/view-control-widget.tsx +15 -13
  247. package/dist/style/style-sheet.d.ts +0 -11
  248. package/dist/style/style-sheet.d.ts.map +0 -1
  249. package/dist/style/style-sheet.js +0 -253
  250. package/dist/style/style-sheet.js.map +0 -1
  251. package/src/style/style-sheet.ts +0 -277
@@ -1,14 +1,25 @@
1
- import type { Graph } from "../graph/graph.js";
2
- import type { Node } from "../graph/node.js";
3
- import type { Edge } from "../graph/edge.js";
4
- export type GraphLayoutState = 'INIT' | 'START' | 'CALCULATING' | 'DONE' | 'ERROR';
5
- export type GraphLayoutOptions = {};
1
+ import type { Bounds2D } from '@math.gl/types';
2
+ import type { Graph } from '../graph/graph';
3
+ import type { Node } from '../graph/node';
4
+ import type { Edge } from '../graph/edge';
5
+ export type GraphLayoutState = 'init' | 'start' | 'calculating' | 'done' | 'error';
6
+ export type GraphLayoutEventDetail = {
7
+ bounds: Bounds2D | null;
8
+ };
9
+ export type GraphLayoutProps = {};
6
10
  /** All the layout classes are extended from this base layout class. */
7
- export declare class GraphLayout<OptionsT extends GraphLayoutOptions = GraphLayoutOptions> extends EventTarget {
11
+ export declare abstract class GraphLayout<OptionsT extends GraphLayoutProps = GraphLayoutProps> extends EventTarget {
8
12
  /** Name of the layout. */
9
13
  protected readonly _name: string;
10
14
  /** Extra configuration options of the layout. */
11
15
  protected _options: OptionsT;
16
+ /**
17
+ * Last computed layout bounds in local layout coordinates.
18
+ *
19
+ * Subclasses should update this value by overriding {@link _updateBounds}
20
+ * so it reflects the latest geometry before layout lifecycle events fire.
21
+ */
22
+ protected _bounds: Bounds2D | null;
12
23
  version: number;
13
24
  state: GraphLayoutState;
14
25
  /**
@@ -22,19 +33,6 @@ export declare class GraphLayout<OptionsT extends GraphLayoutOptions = GraphLayo
22
33
  * @return - True if the layout is the same as itself.
23
34
  */
24
35
  equals(layout: GraphLayout): boolean;
25
- /** virtual functions: will be implemented in the child class */
26
- /** first time to pass the graph data into this layout */
27
- initializeGraph(graph: Graph): void;
28
- /** update the existing graph */
29
- updateGraph(graph: Graph): void;
30
- /** start the layout calculation */
31
- start(): void;
32
- /** update the layout calculation */
33
- update(): void;
34
- /** resume the layout calculation */
35
- resume(): void;
36
- /** stop the layout calculation */
37
- stop(): void;
38
36
  /** access the position of the node in the layout */
39
37
  getNodePosition(node: Node): [number, number];
40
38
  /** access the layout information of the edge */
@@ -56,7 +54,37 @@ export declare class GraphLayout<OptionsT extends GraphLayoutOptions = GraphLayo
56
54
  * @param {Object} node Node to be unlocked
57
55
  */
58
56
  unlockNodePosition(node: Node): void;
59
- protected _updateState(state: any): void;
57
+ /** Returns the last computed layout bounds, if available. */
58
+ getBounds(): Bounds2D | null;
59
+ /** virtual functions: will be implemented in the child class */
60
+ /** first time to pass the graph data into this layout */
61
+ abstract initializeGraph(graph: Graph): any;
62
+ /** update the existing graph */
63
+ abstract updateGraph(graph: Graph): any;
64
+ /** start the layout calculation */
65
+ abstract start(): any;
66
+ /** update the layout calculation */
67
+ abstract update(): any;
68
+ /** resume the layout calculation */
69
+ abstract resume(): any;
70
+ /** stop the layout calculation */
71
+ abstract stop(): any;
72
+ /** Hook for subclasses to update bounds prior to emitting events. */
73
+ protected _updateBounds(): void;
74
+ /**
75
+ * Utility for subclasses to derive layout bounds from an iterable of [x, y] positions.
76
+ * @param positions Iterable of node positions.
77
+ * @returns Layout bounds for the supplied positions or `null` if none are finite.
78
+ */
79
+ protected _calculateBounds(positions: Iterable<Readonly<[number, number]> | null | undefined>): Bounds2D | null;
80
+ /**
81
+ * Attempt to coerce an arbitrary value into a finite 2D point.
82
+ * @param value Candidate value that may represent a position.
83
+ * @returns Finite [x, y] tuple or null if the value cannot be interpreted.
84
+ */
85
+ protected _normalizePosition(value: unknown): [number, number] | null;
86
+ private _isFiniteNumber;
87
+ protected _updateState(state: GraphLayoutState): void;
60
88
  /** @fires GraphLayout#onLayoutStart */
61
89
  protected _onLayoutStart: () => void;
62
90
  /** @fires GraphLayout#onLayoutChange */
@@ -66,4 +94,3 @@ export declare class GraphLayout<OptionsT extends GraphLayoutOptions = GraphLayo
66
94
  /** @fires GraphLayout#onLayoutError */
67
95
  protected _onLayoutError: () => void;
68
96
  }
69
- //# sourceMappingURL=graph-layout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph-layout.d.ts","sourceRoot":"","sources":["../../src/core/graph-layout.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,KAAK,EAAC,0BAAuB;AAC1C,OAAO,KAAK,EAAC,IAAI,EAAC,yBAAsB;AACxC,OAAO,KAAK,EAAC,IAAI,EAAC,yBAAsB;AAMxC,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnF,MAAM,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAEpC,uEAAuE;AACvE,qBAAa,WAAW,CACtB,QAAQ,SAAS,kBAAkB,GAAG,kBAAkB,CACxD,SAAQ,WAAW;IACnB,0BAA0B;IAC1B,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAiB;IACjD,iDAAiD;IACjD,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAEtB,OAAO,SAAK;IACZ,KAAK,EAAE,gBAAgB,CAAU;IAExC;;;OAGG;gBACS,OAAO,EAAE,QAAQ;IAK7B;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IAOpC,gEAAgE;IAEhE,yDAAyD;IACzD,eAAe,CAAC,KAAK,EAAE,KAAK;IAC5B,gCAAgC;IAChC,WAAW,CAAC,KAAK,EAAE,KAAK;IACxB,mCAAmC;IACnC,KAAK;IACL,oCAAoC;IACpC,MAAM;IACN,oCAAoC;IACpC,MAAM;IACN,kCAAkC;IAClC,IAAI;IACJ,oDAAoD;IACpD,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAG7C,gDAAgD;IAChD,eAAe,CAAC,IAAI,EAAE,IAAI;;;;;;IAS1B;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAEjD;;;OAGG;IACH,kBAAkB,CAAC,IAAI,EAAE,IAAI;IAI7B,SAAS,CAAC,YAAY,CAAC,KAAK,KAAA;IAK5B,uCAAuC;IACvC,SAAS,CAAC,cAAc,QAAO,IAAI,CASjC;IAEF,wCAAwC;IACxC,SAAS,CAAC,eAAe,QAAO,IAAI,CASlC;IAEF,sCAAsC;IACtC,SAAS,CAAC,aAAa,QAAO,IAAI,CAShC;IAEF,uCAAuC;IACvC,SAAS,CAAC,cAAc,QAAO,IAAI,CASjC;CACH"}
1
+ {"version":3,"file":"graph-layout.d.ts","sourceRoot":"","sources":["../../src/core/graph-layout.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AAE7C,OAAO,KAAK,EAAC,KAAK,EAAC,0BAAuB;AAC1C,OAAO,KAAK,EAAC,IAAI,EAAC,yBAAsB;AACxC,OAAO,KAAK,EAAC,IAAI,EAAC,yBAAsB;AAMxC,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAElC,uEAAuE;AACvE,8BAAsB,WAAW,CAC/B,QAAQ,SAAS,gBAAgB,GAAG,gBAAgB,CACpD,SAAQ,WAAW;IACnB,0BAA0B;IAC1B,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAiB;IACjD,iDAAiD;IACjD,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAE7B;;;;;OAKG;IACH,SAAS,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAEnC,OAAO,SAAK;IACZ,KAAK,EAAE,gBAAgB,CAAU;IAExC;;;OAGG;gBACS,OAAO,EAAE,QAAQ;IAK7B;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO;IASpC,oDAAoD;IACpD,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAI7C,gDAAgD;IAChD,eAAe,CAAC,IAAI,EAAE,IAAI;;;;;;IAS1B;;;;;OAKG;IACH,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAEjD;;;OAGG;IACH,kBAAkB,CAAC,IAAI,EAAE,IAAI;IAE7B,6DAA6D;IAC7D,SAAS,IAAI,QAAQ,GAAG,IAAI;IAI1B,gEAAgE;IAElE,yDAAyD;IACzD,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK;IACrC,gCAAgC;IAChC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK;IACjC,mCAAmC;IACnC,QAAQ,CAAC,KAAK;IACd,oCAAoC;IACpC,QAAQ,CAAC,MAAM;IACf,oCAAoC;IACpC,QAAQ,CAAC,MAAM;IACf,kCAAkC;IAClC,QAAQ,CAAC,IAAI;IAKb,qEAAqE;IAErE,SAAS,CAAC,aAAa,IAAI,IAAI;IAE/B;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CACxB,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC,GACjE,QAAQ,GAAG,IAAI;IAiClB;;;;OAIG;IACH,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAmBrE,OAAO,CAAC,eAAe;IAIvB,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,gBAAgB;IAK9C,uCAAuC;IACvC,SAAS,CAAC,cAAc,QAAO,IAAI,CAYjC;IAEF,wCAAwC;IACxC,SAAS,CAAC,eAAe,QAAO,IAAI,CAYlC;IAEF,sCAAsC;IACtC,SAAS,CAAC,aAAa,QAAO,IAAI,CAYhC;IAEF,uCAAuC;IACvC,SAAS,CAAC,cAAc,QAAO,IAAI,CASjC;CACH"}
@@ -2,15 +2,22 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import isEqual from 'lodash.isequal';
5
- import { EDGE_TYPE } from "./constants.js";
5
+ import { log } from '../utils/log';
6
6
  /** All the layout classes are extended from this base layout class. */
7
7
  export class GraphLayout extends EventTarget {
8
8
  /** Name of the layout. */
9
9
  _name = 'GraphLayout';
10
10
  /** Extra configuration options of the layout. */
11
11
  _options;
12
+ /**
13
+ * Last computed layout bounds in local layout coordinates.
14
+ *
15
+ * Subclasses should update this value by overriding {@link _updateBounds}
16
+ * so it reflects the latest geometry before layout lifecycle events fire.
17
+ */
18
+ _bounds = null;
12
19
  version = 0;
13
- state = 'INIT';
20
+ state = 'init';
14
21
  /**
15
22
  * Constructor of GraphLayout
16
23
  * @param options extra configuration options of the layout
@@ -30,19 +37,7 @@ export class GraphLayout extends EventTarget {
30
37
  }
31
38
  return this._name === layout._name && isEqual(this._options, layout._options);
32
39
  }
33
- /** virtual functions: will be implemented in the child class */
34
- /** first time to pass the graph data into this layout */
35
- initializeGraph(graph) { }
36
- /** update the existing graph */
37
- updateGraph(graph) { }
38
- /** start the layout calculation */
39
- start() { }
40
- /** update the layout calculation */
41
- update() { }
42
- /** resume the layout calculation */
43
- resume() { }
44
- /** stop the layout calculation */
45
- stop() { }
40
+ // Accessors
46
41
  /** access the position of the node in the layout */
47
42
  getNodePosition(node) {
48
43
  return [0, 0];
@@ -50,7 +45,7 @@ export class GraphLayout extends EventTarget {
50
45
  /** access the layout information of the edge */
51
46
  getEdgePosition(edge) {
52
47
  return {
53
- type: EDGE_TYPE.LINE,
48
+ type: 'line',
54
49
  sourcePosition: [0, 0],
55
50
  targetPosition: [0, 0],
56
51
  controlPoints: []
@@ -68,44 +63,117 @@ export class GraphLayout extends EventTarget {
68
63
  * @param {Object} node Node to be unlocked
69
64
  */
70
65
  unlockNodePosition(node) { }
66
+ /** Returns the last computed layout bounds, if available. */
67
+ getBounds() {
68
+ return this._bounds;
69
+ }
71
70
  // INTERNAL METHODS
71
+ /** Hook for subclasses to update bounds prior to emitting events. */
72
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
73
+ _updateBounds() { }
74
+ /**
75
+ * Utility for subclasses to derive layout bounds from an iterable of [x, y] positions.
76
+ * @param positions Iterable of node positions.
77
+ * @returns Layout bounds for the supplied positions or `null` if none are finite.
78
+ */
79
+ _calculateBounds(positions) {
80
+ let minX = Number.POSITIVE_INFINITY;
81
+ let maxX = Number.NEGATIVE_INFINITY;
82
+ let minY = Number.POSITIVE_INFINITY;
83
+ let maxY = Number.NEGATIVE_INFINITY;
84
+ for (const position of positions) {
85
+ if (!position) {
86
+ // eslint-disable-next-line no-continue
87
+ continue;
88
+ }
89
+ const [x, y] = position;
90
+ if (!Number.isFinite(x) || !Number.isFinite(y)) {
91
+ // eslint-disable-next-line no-continue
92
+ continue;
93
+ }
94
+ minX = Math.min(minX, x);
95
+ maxX = Math.max(maxX, x);
96
+ minY = Math.min(minY, y);
97
+ maxY = Math.max(maxY, y);
98
+ }
99
+ if (minX === Number.POSITIVE_INFINITY) {
100
+ return null;
101
+ }
102
+ return [
103
+ [minX, minY],
104
+ [maxX, maxY]
105
+ ];
106
+ }
107
+ /**
108
+ * Attempt to coerce an arbitrary value into a finite 2D point.
109
+ * @param value Candidate value that may represent a position.
110
+ * @returns Finite [x, y] tuple or null if the value cannot be interpreted.
111
+ */
112
+ _normalizePosition(value) {
113
+ if (Array.isArray(value) && value.length >= 2) {
114
+ const [x, y] = value;
115
+ if (this._isFiniteNumber(x) && this._isFiniteNumber(y)) {
116
+ return [x, y];
117
+ }
118
+ return null;
119
+ }
120
+ if (value && typeof value === 'object') {
121
+ const { x, y } = value;
122
+ if (this._isFiniteNumber(x) && this._isFiniteNumber(y)) {
123
+ return [x, y];
124
+ }
125
+ }
126
+ return null;
127
+ }
128
+ _isFiniteNumber(value) {
129
+ return typeof value === 'number' && Number.isFinite(value);
130
+ }
72
131
  _updateState(state) {
73
132
  this.state = state;
74
133
  this.version += 1;
75
134
  }
76
135
  /** @fires GraphLayout#onLayoutStart */
77
136
  _onLayoutStart = () => {
78
- this._updateState('CALCULATING');
137
+ log.log(0, `GraphLayout(${this._name}): start`)();
138
+ this._updateBounds();
139
+ this._updateState('calculating');
79
140
  /**
80
141
  * Layout calculation start.
81
142
  * @event GraphLayout#onLayoutChange
82
143
  * @type {CustomEvent}
83
144
  */
84
- this.dispatchEvent(new CustomEvent('onLayoutStart'));
145
+ const detail = { bounds: this._bounds };
146
+ this.dispatchEvent(new CustomEvent('onLayoutStart', { detail }));
85
147
  };
86
148
  /** @fires GraphLayout#onLayoutChange */
87
149
  _onLayoutChange = () => {
88
- this._updateState('CALCULATING');
150
+ log.log(0, `GraphLayout(${this._name}): update`)();
151
+ this._updateBounds();
152
+ this._updateState('calculating');
89
153
  /**
90
154
  * Layout calculation iteration.
91
155
  * @event GraphLayout#onLayoutChange
92
156
  * @type {CustomEvent}
93
157
  */
94
- this.dispatchEvent(new CustomEvent('onLayoutChange'));
158
+ const detail = { bounds: this._bounds };
159
+ this.dispatchEvent(new CustomEvent('onLayoutChange', { detail }));
95
160
  };
96
161
  /** @fires GraphLayout#onLayoutDone */
97
162
  _onLayoutDone = () => {
98
- this._updateState('DONE');
163
+ log.log(0, `GraphLayout(${this._name}): end`)();
164
+ this._updateBounds();
165
+ this._updateState('done');
99
166
  /**
100
167
  * Layout calculation is done.
101
168
  * @event GraphLayout#onLayoutDone
102
169
  * @type {CustomEvent}
103
170
  */
104
- this.dispatchEvent(new CustomEvent('onLayoutDone'));
171
+ const detail = { bounds: this._bounds };
172
+ this.dispatchEvent(new CustomEvent('onLayoutDone', { detail }));
105
173
  };
106
174
  /** @fires GraphLayout#onLayoutError */
107
175
  _onLayoutError = () => {
108
- this._updateState('ERROR');
176
+ this._updateState('error');
109
177
  /**
110
178
  * Layout calculation went wrong.
111
179
  * @event GraphLayout#onLayoutError
@@ -114,4 +182,3 @@ export class GraphLayout extends EventTarget {
114
182
  this.dispatchEvent(new CustomEvent('onLayoutError'));
115
183
  };
116
184
  }
117
- //# sourceMappingURL=graph-layout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph-layout.js","sourceRoot":"","sources":["../../src/core/graph-layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph-layout.js","sourceRoot":"","sources":["../../src/core/graph-layout.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,9 @@
1
- import { Node } from "../graph/node.js";
2
- import { GraphEngine } from "./graph-engine.js";
1
+ import { Node } from '../graph/node';
2
+ import { GraphEngine } from './graph-engine';
3
+ import { resolveChainInteractionSource, type ChainInteractionSource } from '../utils/collapsed-chains';
4
+ export { resolveChainInteractionSource };
5
+ export type { ChainInteractionSource };
6
+ export declare function shouldToggleCollapsedChain(isCollapsed: boolean, source: ChainInteractionSource): boolean;
3
7
  interface EventMap {
4
8
  onClick?: (info: unknown, event: Event) => void;
5
9
  onHover?: (info: unknown) => void;
@@ -37,5 +41,3 @@ export declare class InteractionManager {
37
41
  onDrag(info: any, event: any): void;
38
42
  onDragEnd(info: any, event: any): void;
39
43
  }
40
- export {};
41
- //# sourceMappingURL=interaction-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interaction-manager.d.ts","sourceRoot":"","sources":["../../src/core/interaction-manager.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,IAAI,EAAC,yBAAsB;AACnC,OAAO,EAAC,WAAW,EAAC,0BAAuB;AA8B3C,UAAU,QAAQ;IAChB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,yBAAyB,EAAE,OAAO,CAAC;CACpC;AAED,qBAAa,kBAAkB;IACtB,cAAc,EAAE,QAAQ,CAAC;IAChC,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,iBAAiB,CAAqB;IAEvC,UAAU,EAAE,QAAQ,CAAc;IAClC,UAAU,EAAE,QAAQ,CAAc;IAClC,MAAM,EAAE,WAAW,CAAc;IACjC,cAAc,EAAE,OAAO,CAAc;IACrC,yBAAyB,EAAE,OAAO,CAAc;gBAE3C,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAE,QAAQ;IAUpE,WAAW,CAAC,EACV,UAAe,EACf,UAAe,EACf,MAAM,EACN,cAAc,EACd,yBAAyB,EAC1B,EAAE,uBAAuB,GAAG,IAAI;IAQjC,kBAAkB,IAAI,MAAM;IAI5B,OAAO,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA,GAAG,IAAI;IA4B1B,eAAe,IAAI,IAAI;IAiBvB,eAAe,CAAC,IAAI,KAAA,GAAG,IAAI;IAY3B,OAAO,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA;IAiCnB,WAAW,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA;IAMvB,MAAM,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA;IAuBlB,SAAS,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA;CAUtB"}
1
+ {"version":3,"file":"interaction-manager.d.ts","sourceRoot":"","sources":["../../src/core/interaction-manager.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,IAAI,EAAC,yBAAsB;AACnC,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAE3C,OAAO,EACL,6BAA6B,EAC7B,KAAK,sBAAsB,EAC5B,qCAAkC;AAEnC,OAAO,EAAC,6BAA6B,EAAC,CAAC;AACvC,YAAY,EAAC,sBAAsB,EAAC,CAAC;AAErC,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAKT;AA4BD,UAAU,QAAQ;IAChB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAChD,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,UAAU,CAAC,EAAE,QAAQ,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,yBAAyB,EAAE,OAAO,CAAC;CACpC;AAED,qBAAa,kBAAkB;IACtB,cAAc,EAAE,QAAQ,CAAC;IAChC,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,iBAAiB,CAAqB;IAEvC,UAAU,EAAE,QAAQ,CAAc;IAClC,UAAU,EAAE,QAAQ,CAAc;IAClC,MAAM,EAAE,WAAW,CAAc;IACjC,cAAc,EAAE,OAAO,CAAc;IACrC,yBAAyB,EAAE,OAAO,CAAc;gBAE3C,KAAK,EAAE,uBAAuB,EAAE,cAAc,EAAE,QAAQ;IAUpE,WAAW,CAAC,EACV,UAAe,EACf,UAAe,EACf,MAAM,EACN,cAAc,EACd,yBAAyB,EAC1B,EAAE,uBAAuB,GAAG,IAAI;IAQjC,kBAAkB,IAAI,MAAM;IAK5B,OAAO,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA,GAAG,IAAI;IAuE1B,eAAe,IAAI,IAAI;IAiBvB,eAAe,CAAC,IAAI,KAAA,GAAG,IAAI;IAY3B,OAAO,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA;IAiCnB,WAAW,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA;IAMvB,MAAM,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA;IAuBlB,SAAS,CAAC,IAAI,KAAA,EAAE,KAAK,KAAA;CAUtB"}
@@ -1,17 +1,25 @@
1
1
  // deck.gl-community
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { EDGE_STATE, NODE_STATE } from "./constants.js";
4
+ import { log } from '../utils/log';
5
+ import { resolveChainInteractionSource } from '../utils/collapsed-chains';
6
+ export { resolveChainInteractionSource };
7
+ export function shouldToggleCollapsedChain(isCollapsed, source) {
8
+ if (isCollapsed) {
9
+ return true;
10
+ }
11
+ return source === 'expanded-marker' || source === 'expanded-outline';
12
+ }
5
13
  const NODE_TO_EDGE_STATE_MAP = {
6
- [NODE_STATE.DEFAULT]: EDGE_STATE.DEFAULT,
7
- [NODE_STATE.HOVER]: EDGE_STATE.HOVER,
8
- [NODE_STATE.DRAGGING]: EDGE_STATE.DRAGGING,
9
- [NODE_STATE.SELECTED]: EDGE_STATE.SELECTED
14
+ default: 'default',
15
+ hover: 'hover',
16
+ dragging: 'dragging',
17
+ selected: 'selected'
10
18
  };
11
19
  function shouldEdgeBeSelected(edge) {
12
20
  return edge
13
21
  .getConnectedNodes()
14
- .some((node) => node.getState() === NODE_STATE.SELECTED && node.shouldHighlightConnectedEdges());
22
+ .some((node) => node.getState() === 'selected' && node.shouldHighlightConnectedEdges());
15
23
  }
16
24
  function setNodeState(node, state) {
17
25
  node.setState(state);
@@ -19,7 +27,7 @@ function setNodeState(node, state) {
19
27
  node.getConnectedEdges().forEach((edge) => {
20
28
  let newEdgeState = NODE_TO_EDGE_STATE_MAP[state];
21
29
  if (shouldEdgeBeSelected(edge)) {
22
- newEdgeState = EDGE_STATE.SELECTED;
30
+ newEdgeState = 'selected';
23
31
  }
24
32
  edge.setState(newEdgeState);
25
33
  });
@@ -53,18 +61,53 @@ export class InteractionManager {
53
61
  getLastInteraction() {
54
62
  return this._lastInteraction;
55
63
  }
64
+ // eslint-disable-next-line max-statements, complexity
56
65
  onClick(info, event) {
57
66
  const { object } = info;
58
67
  if (!object) {
59
68
  return;
60
69
  }
61
70
  if (object.isNode) {
71
+ const node = object;
72
+ const chainId = node.getPropertyValue('collapsedChainId');
73
+ const collapsedNodeIds = node.getPropertyValue('collapsedNodeIds');
74
+ const representativeId = node.getPropertyValue('collapsedChainRepresentativeId');
75
+ const isCollapsed = Boolean(node.getPropertyValue('isCollapsedChain'));
76
+ const hasChainMetadata = chainId !== null &&
77
+ chainId !== undefined &&
78
+ Array.isArray(collapsedNodeIds) &&
79
+ collapsedNodeIds.length > 1 &&
80
+ representativeId !== null &&
81
+ representativeId !== undefined;
82
+ const isRepresentative = hasChainMetadata && representativeId === node.getId();
83
+ if (hasChainMetadata && isRepresentative) {
84
+ const layout = this.engine?.props?.layout;
85
+ if (layout && typeof layout.toggleCollapsedChain === 'function') {
86
+ const interactionSource = resolveChainInteractionSource(info ?? null);
87
+ // eslint-disable-next-line max-depth
88
+ if (shouldToggleCollapsedChain(isCollapsed, interactionSource)) {
89
+ const action = isCollapsed ? 'expand' : 'collapse';
90
+ const chainIdStr = String(chainId);
91
+ log.log(0, `InteractionManager: ${action} chain ${chainIdStr} via ${interactionSource}`);
92
+ // eslint-disable-next-line no-console
93
+ console.log(`InteractionManager: ${action} chain ${chainIdStr} via ${interactionSource}`);
94
+ layout.toggleCollapsedChain(chainIdStr);
95
+ this._lastInteraction = Date.now();
96
+ this.notifyCallback();
97
+ // eslint-disable-next-line max-depth
98
+ if (this.nodeEvents.onClick) {
99
+ this.nodeEvents.onClick(info, event);
100
+ }
101
+ return;
102
+ }
103
+ }
104
+ }
62
105
  if (object.isSelectable()) {
63
106
  if (this._lastSelectedNode) {
64
- setNodeState(this._lastSelectedNode, NODE_STATE.DEFAULT);
107
+ setNodeState(this._lastSelectedNode, 'default');
65
108
  }
66
- setNodeState(object, NODE_STATE.SELECTED);
67
- this._lastSelectedNode = object;
109
+ setNodeState(node, 'selected');
110
+ this._lastSelectedNode = node;
68
111
  this._lastInteraction = Date.now();
69
112
  this.notifyCallback();
70
113
  }
@@ -78,11 +121,11 @@ export class InteractionManager {
78
121
  }
79
122
  _mouseLeaveNode() {
80
123
  const lastHoveredNode = this._lastHoveredNode;
81
- if (!(lastHoveredNode.isSelectable() && lastHoveredNode.getState() === NODE_STATE.SELECTED)) {
124
+ if (!(lastHoveredNode.isSelectable() && lastHoveredNode.getState() === 'selected')) {
82
125
  // reset the last hovered node's state
83
126
  const newState = this._lastSelectedNode !== null && this._lastSelectedNode.id === this._lastHoveredNode?.id
84
- ? NODE_STATE.SELECTED
85
- : NODE_STATE.DEFAULT;
127
+ ? 'selected'
128
+ : 'default';
86
129
  setNodeState(lastHoveredNode, newState);
87
130
  }
88
131
  // trigger the callback if exists
@@ -92,7 +135,7 @@ export class InteractionManager {
92
135
  }
93
136
  _mouseEnterNode(info) {
94
137
  // set the node's state to hover
95
- setNodeState(info.object, NODE_STATE.HOVER);
138
+ setNodeState(info.object, 'hover');
96
139
  // trigger the callback if exists
97
140
  if (this.nodeEvents.onMouseEnter) {
98
141
  this.nodeEvents.onMouseEnter(info);
@@ -149,7 +192,7 @@ export class InteractionManager {
149
192
  const x = Math.min(Math.max(coordinates[0], bounds[0]), bounds[2]);
150
193
  const y = Math.min(Math.max(coordinates[1], bounds[1]), bounds[3]);
151
194
  this.engine.lockNodePosition(info.object, x, y);
152
- setNodeState(info.object, NODE_STATE.DRAGGING);
195
+ setNodeState(info.object, 'dragging');
153
196
  this._lastInteraction = Date.now();
154
197
  this.notifyCallback();
155
198
  if (this.nodeEvents.onDrag) {
@@ -163,8 +206,7 @@ export class InteractionManager {
163
206
  if (this.resumeLayoutAfterDragging) {
164
207
  this.engine.resume();
165
208
  }
166
- setNodeState(info.object, NODE_STATE.DEFAULT);
209
+ setNodeState(info.object, 'default');
167
210
  this.engine.unlockNodePosition(info.object);
168
211
  }
169
212
  }
170
- //# sourceMappingURL=interaction-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"interaction-manager.js","sourceRoot":"","sources":["../../src/core/interaction-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interaction-manager.js","sourceRoot":"","sources":["../../src/core/interaction-manager.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { Node } from "./node.js";
1
+ import type { EdgeState } from '../core/constants';
2
+ import { Node } from './node';
2
3
  export interface EdgeOptions {
3
4
  /** the unique ID of the edge */
4
5
  id: string | number;
@@ -28,7 +29,7 @@ export declare class Edge {
28
29
  /** Nodes at either end of this edge. */
29
30
  private readonly _connectedNodes;
30
31
  /** Edge state. */
31
- state: string;
32
+ state: EdgeState;
32
33
  /**
33
34
  * The constructor
34
35
  * @param options.id - information about the edge
@@ -73,16 +74,15 @@ export declare class Edge {
73
74
  setDataProperty(key: string, value: unknown): void;
74
75
  /**
75
76
  * Set edge state
76
- * @param state - one of EDGE_STATE
77
+ * @param state - the new interaction state for the edge
77
78
  */
78
- setState(state: string): void;
79
+ setState(state: EdgeState): void;
79
80
  /**
80
81
  * Get edge state
81
- * @returns state - one of EDGE_STATE
82
+ * @returns state - the current interaction state for the edge
82
83
  */
83
- getState(): string;
84
+ getState(): EdgeState;
84
85
  addNode(node: Node): void;
85
86
  removeNode(node: Node): void;
86
87
  getConnectedNodes(): Node[];
87
88
  }
88
- //# sourceMappingURL=edge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../../src/graph/edge.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,IAAI,EAAC,kBAAe;AAE5B,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,gCAAgC;IAChC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,gCAAgC;IAChC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,gCAAgC;AAChC,qBAAa,IAAI;IACf,+BAA+B;IACxB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,6BAA6B;IAC7B,OAAO,CAAC,SAAS,CAAkB;IACnC,6BAA6B;IAC7B,OAAO,CAAC,SAAS,CAAkB;IACnC,2CAA2C;IAC3C,OAAO,CAAC,SAAS,CAAU;IAC3B,yCAAyC;IACzC,OAAO,CAAC,KAAK,CAA0B;IACvC,gEAAgE;IAChE,SAAgB,MAAM,QAAQ;IAC9B,wCAAwC;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4B;IAC5D,kBAAkB;IACX,KAAK,SAAsB;IAElC;;;OAGG;gBACS,EAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAgB,EAAC,EAAE,WAAW;IAQzE;;;OAGG;IACH,KAAK,IAAI,MAAM,GAAG,MAAM;IAIxB;;;OAGG;IACH,UAAU,IAAI,OAAO;IAIrB;;;OAGG;IACH,eAAe,IAAI,MAAM,GAAG,MAAM;IAIlC;;;OAGG;IACH,eAAe,IAAI,MAAM,GAAG,MAAM;IAIlC;;;;OAIG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAatC;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI5C;;;;OAIG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAIlD;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI7B;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIzB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI5B,iBAAiB,IAAI,IAAI,EAAE;CAG5B"}
1
+ {"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../../src/graph/edge.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,SAAS,EAAC,6BAA0B;AACjD,OAAO,EAAC,IAAI,EAAC,kBAAe;AAE5B,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,gCAAgC;IAChC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,gCAAgC;IAChC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,gCAAgC;AAChC,qBAAa,IAAI;IACf,+BAA+B;IACxB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,6BAA6B;IAC7B,OAAO,CAAC,SAAS,CAAkB;IACnC,6BAA6B;IAC7B,OAAO,CAAC,SAAS,CAAkB;IACnC,2CAA2C;IAC3C,OAAO,CAAC,SAAS,CAAU;IAC3B,yCAAyC;IACzC,OAAO,CAAC,KAAK,CAA0B;IACvC,gEAAgE;IAChE,SAAgB,MAAM,QAAQ;IAC9B,wCAAwC;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA4B;IAC5D,kBAAkB;IACX,KAAK,EAAE,SAAS,CAAa;IAEpC;;;OAGG;gBACS,EAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAgB,EAAC,EAAE,WAAW;IAQzE;;;OAGG;IACH,KAAK,IAAI,MAAM,GAAG,MAAM;IAIxB;;;OAGG;IACH,UAAU,IAAI,OAAO;IAIrB;;;OAGG;IACH,eAAe,IAAI,MAAM,GAAG,MAAM;IAIlC;;;OAGG;IACH,eAAe,IAAI,MAAM,GAAG,MAAM;IAIlC;;;;OAIG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAatC;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI5C;;;;OAIG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAIlD;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAIhC;;;OAGG;IACH,QAAQ,IAAI,SAAS;IAIrB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAIzB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAI5B,iBAAiB,IAAI,IAAI,EAAE;CAG5B"}
@@ -1,8 +1,6 @@
1
1
  // deck.gl-community
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- // Basic data structure of an edge
5
- import { EDGE_STATE } from "../core/constants.js";
6
4
  /** Basic edge data structure */
7
5
  export class Edge {
8
6
  /** Unique uuid of the edge. */
@@ -20,7 +18,7 @@ export class Edge {
20
18
  /** Nodes at either end of this edge. */
21
19
  _connectedNodes = {};
22
20
  /** Edge state. */
23
- state = EDGE_STATE.DEFAULT;
21
+ state = 'default';
24
22
  /**
25
23
  * The constructor
26
24
  * @param options.id - information about the edge
@@ -94,14 +92,14 @@ export class Edge {
94
92
  }
95
93
  /**
96
94
  * Set edge state
97
- * @param state - one of EDGE_STATE
95
+ * @param state - the new interaction state for the edge
98
96
  */
99
97
  setState(state) {
100
98
  this.state = state;
101
99
  }
102
100
  /**
103
101
  * Get edge state
104
- * @returns state - one of EDGE_STATE
102
+ * @returns state - the current interaction state for the edge
105
103
  */
106
104
  getState() {
107
105
  return this.state;
@@ -116,4 +114,3 @@ export class Edge {
116
114
  return Object.values(this._connectedNodes);
117
115
  }
118
116
  }
119
- //# sourceMappingURL=edge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"edge.js","sourceRoot":"","sources":["../../src/graph/edge.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,+BAA+B;AAC/B,oCAAoC;AAEpC,kCAAkC;AAClC,OAAO,EAAC,UAAU,EAAC,6BAA0B;AAgB7C,gCAAgC;AAChC,MAAM,OAAO,IAAI;IACf,+BAA+B;IACxB,EAAE,CAAkB;IAC3B,6BAA6B;IACrB,SAAS,CAAkB;IACnC,6BAA6B;IACrB,SAAS,CAAkB;IACnC,2CAA2C;IACnC,SAAS,CAAU;IAC3B,yCAAyC;IACjC,KAAK,CAA0B;IACvC,gEAAgE;IAChD,MAAM,GAAG,IAAI,CAAC;IAC9B,wCAAwC;IACvB,eAAe,GAAyB,EAAE,CAAC;IAC5D,kBAAkB;IACX,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC;IAElC;;;OAGG;IACH,YAAY,EAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAc;QACvE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,GAAW;QAC1B,2CAA2C;QAC3C,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,uDAAuD;aAClD,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,uBAAuB;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,IAA6B;QACnC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,GAAW,EAAE,KAAc;QACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,KAAa;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,OAAO,CAAC,IAAU;QAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAC5C,CAAC;IAED,UAAU,CAAC,IAAU;QACnB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,iBAAiB;QACf,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC;CACF"}
1
+ {"version":3,"file":"edge.js","sourceRoot":"","sources":["../../src/graph/edge.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,+BAA+B;AAC/B,oCAAoC;AAmBpC,gCAAgC;AAChC,MAAM,OAAO,IAAI;IACf,+BAA+B;IACxB,EAAE,CAAkB;IAC3B,6BAA6B;IACrB,SAAS,CAAkB;IACnC,6BAA6B;IACrB,SAAS,CAAkB;IACnC,2CAA2C;IACnC,SAAS,CAAU;IAC3B,yCAAyC;IACjC,KAAK,CAA0B;IACvC,gEAAgE;IAChD,MAAM,GAAG,IAAI,CAAC;IAC9B,wCAAwC;IACvB,eAAe,GAAyB,EAAE,CAAC;IAC5D,kBAAkB;IACX,KAAK,GAAc,SAAS,CAAC;IAEpC;;;OAGG;IACH,YAAY,EAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,GAAG,KAAK,EAAc;QACvE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,gBAAgB,CAAC,GAAW;QAC1B,2CAA2C;QAC3C,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,uDAAuD;aAClD,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;QACD,uBAAuB;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,IAA6B;QACnC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,GAAW,EAAE,KAAc;QACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,KAAgB;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,OAAO,CAAC,IAAU;QAChB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAC5C,CAAC;IAED,UAAU,CAAC,IAAU;QACnB,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,iBAAiB;QACf,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
- import { Edge } from "./edge.js";
2
- import { Node } from "./node.js";
1
+ import { Edge } from './edge';
2
+ import { Node } from './node';
3
3
  export type GraphProps = {
4
4
  name?: string;
5
5
  nodes?: Node[];
@@ -156,4 +156,3 @@ export declare class Graph extends EventTarget {
156
156
  _bumpVersion(): void;
157
157
  _updateCache(key: 'nodes' | 'edges', updateValue: unknown): void;
158
158
  }
159
- //# sourceMappingURL=graph.d.ts.map