@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
@@ -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 D3ForceLayoutOptions = GraphLayoutProps & {
3
4
  alpha?: number;
4
5
  resumeAlpha?: number;
@@ -8,27 +9,38 @@ export type D3ForceLayoutOptions = GraphLayoutProps & {
8
9
  getCollisionRadius?: number;
9
10
  };
10
11
  export declare class D3ForceLayout extends GraphLayout<D3ForceLayoutOptions> {
11
- static defaultProps: Required<D3ForceLayoutOptions>;
12
+ static defaultProps: {
13
+ readonly alpha: 0.3;
14
+ readonly resumeAlpha: 0.1;
15
+ readonly nBodyStrength: -900;
16
+ readonly nBodyDistanceMin: 100;
17
+ readonly nBodyDistanceMax: 400;
18
+ readonly getCollisionRadius: 0;
19
+ readonly onLayoutStart: (detail?: import("../../core/graph-layout").GraphLayoutEventDetail) => void;
20
+ readonly onLayoutChange: (detail?: import("../../core/graph-layout").GraphLayoutEventDetail) => void;
21
+ readonly onLayoutDone: (detail?: import("../../core/graph-layout").GraphLayoutEventDetail) => void;
22
+ readonly onLayoutError: (error?: unknown) => void;
23
+ };
12
24
  protected readonly _name = "D3";
13
25
  private _positionsByNodeId;
14
26
  private _graph;
15
27
  private _worker;
16
- constructor(options?: D3ForceLayoutOptions);
17
- initializeGraph(graph: any): void;
18
- updateGraph(graph: any): void;
28
+ constructor(props?: D3ForceLayoutOptions);
29
+ initializeGraph(graph: Graph): void;
30
+ updateGraph(graph: Graph): void;
19
31
  start(): void;
20
32
  update(): void;
21
33
  _engageWorker(): void;
22
34
  resume(): void;
23
35
  stop(): void;
24
- getEdgePosition: (edge: any) => {
36
+ getEdgePosition: (edge: EdgeInterface) => {
25
37
  type: string;
26
38
  sourcePosition: any;
27
39
  targetPosition: any;
28
40
  controlPoints: any[];
29
41
  };
30
- getNodePosition: (node: any) => any;
31
- lockNodePosition: (node: any, x: any, y: any) => void;
32
- unlockNodePosition: (node: any) => void;
42
+ getNodePosition: (node: NodeInterface | null) => any;
43
+ lockNodePosition: (node: NodeInterface, x: number, y: number) => void;
44
+ unlockNodePosition: (node: NodeInterface) => void;
33
45
  protected _updateBounds(): void;
34
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"d3-force-layout.d.ts","sourceRoot":"","sources":["../../../src/layouts/d3-force/d3-force-layout.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,WAAW,EAAE,gBAAgB,EAAC,mCAAgC;AAGtE,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG;IACpD,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,qBAAa,aAAc,SAAQ,WAAW,CAAC,oBAAoB,CAAC;IAClE,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAOjD;IAEF,SAAS,CAAC,QAAQ,CAAC,KAAK,QAAQ;IAChC,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,OAAO,CAAM;gBAET,OAAO,CAAC,EAAE,oBAAoB;IAS1C,eAAe,CAAC,KAAK,KAAA;IAKrB,WAAW,CAAC,KAAK,KAAA;IAQjB,KAAK;IAML,MAAM;IAIN,aAAa;IAwCb,MAAM;IAIN,IAAI;IAOJ,eAAe,GAAI,SAAI;;;;;MAoBrB;IAEF,eAAe,GAAI,SAAI,SAWrB;IAEF,gBAAgB,GAAI,SAAI,EAAE,MAAC,EAAE,MAAC,UAY5B;IAEF,kBAAkB,GAAI,SAAI,UAIxB;cAEiB,aAAa,IAAI,IAAI;CAOzC"}
1
+ {"version":3,"file":"d3-force-layout.d.ts","sourceRoot":"","sources":["../../../src/layouts/d3-force/d3-force-layout.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,WAAW,EAAE,gBAAgB,EAAC,mCAAgC;AACtE,OAAO,KAAK,EAAC,KAAK,EAAE,aAAa,EAAE,aAAa,EAAC,6BAA0B;AAG3E,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG;IACpD,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,qBAAa,aAAc,SAAQ,WAAW,CAAC,oBAAoB,CAAC;IAClE,MAAM,CAAC,YAAY;;;;;;;uCADY,CAAC;wCACV,CAAC;sCAGhB,CAAC;sCAEY,CAAC;MAGyC;IAE9D,SAAS,CAAC,QAAQ,CAAC,KAAK,QAAQ;IAChC,OAAO,CAAC,kBAAkB,CAAmC;IAC7D,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,OAAO,CAAuB;gBAE1B,KAAK,CAAC,EAAE,oBAAoB;IAIxC,eAAe,CAAC,KAAK,EAAE,KAAK;IAK5B,WAAW,CAAC,KAAK,EAAE,KAAK;IAWxB,KAAK;IAML,MAAM;IAIN,aAAa;IAqDb,MAAM;IAIN,IAAI;IAOJ,eAAe,GAAI,MAAM,aAAa;;;;;MAwBpC;IAEF,eAAe,GAAI,MAAM,aAAa,GAAG,IAAI,SAW3C;IAEF,gBAAgB,GAAI,MAAM,aAAa,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,UAa3D;IAEF,kBAAkB,GAAI,MAAM,aAAa,UAQvC;cAEiB,aAAa,IAAI,IAAI;CAOzC"}
@@ -5,6 +5,7 @@ import { GraphLayout } from '../../core/graph-layout';
5
5
  import { log } from '../../utils/log';
6
6
  export class D3ForceLayout extends GraphLayout {
7
7
  static defaultProps = {
8
+ ...GraphLayout.defaultProps,
8
9
  alpha: 0.3,
9
10
  resumeAlpha: 0.1,
10
11
  nBodyStrength: -900,
@@ -14,14 +15,10 @@ export class D3ForceLayout extends GraphLayout {
14
15
  };
15
16
  _name = 'D3';
16
17
  _positionsByNodeId = new Map();
17
- _graph;
18
- _worker;
19
- constructor(options) {
20
- super(options);
21
- this._options = {
22
- ...D3ForceLayout.defaultProps,
23
- ...options
24
- };
18
+ _graph = null;
19
+ _worker = null;
20
+ constructor(props) {
21
+ super(props, D3ForceLayout.defaultProps);
25
22
  }
26
23
  initializeGraph(graph) {
27
24
  this._graph = graph;
@@ -29,7 +26,10 @@ export class D3ForceLayout extends GraphLayout {
29
26
  // for streaming new data on the same graph
30
27
  updateGraph(graph) {
31
28
  this._graph = graph;
32
- this._positionsByNodeId = new Map(this._graph.getNodes().map((node) => [node.id, this._positionsByNodeId.get(node.id)]));
29
+ this._positionsByNodeId = new Map(Array.from(this._graph.getNodes(), (node) => {
30
+ const id = node.getId();
31
+ return [id, this._positionsByNodeId.get(id)];
32
+ }));
33
33
  }
34
34
  start() {
35
35
  this._engageWorker();
@@ -44,17 +44,28 @@ export class D3ForceLayout extends GraphLayout {
44
44
  this._worker.terminate();
45
45
  }
46
46
  this._worker = new Worker(new URL('./worker.js', import.meta.url).href);
47
+ if (!this._graph) {
48
+ return;
49
+ }
50
+ const options = { ...this.props };
51
+ delete options.onLayoutStart;
52
+ delete options.onLayoutChange;
53
+ delete options.onLayoutDone;
54
+ delete options.onLayoutError;
47
55
  this._worker.postMessage({
48
- nodes: this._graph.getNodes().map((node) => ({
49
- id: node.id,
50
- ...this._positionsByNodeId.get(node.id)
51
- })),
52
- edges: this._graph.getEdges().map((edge) => ({
53
- id: edge.id,
56
+ nodes: Array.from(this._graph.getNodes(), (node) => {
57
+ const id = node.getId();
58
+ return {
59
+ id,
60
+ ...this._positionsByNodeId.get(id)
61
+ };
62
+ }),
63
+ edges: Array.from(this._graph.getEdges(), (edge) => ({
64
+ id: edge.getId(),
54
65
  source: edge.getSourceNodeId(),
55
66
  target: edge.getTargetNodeId()
56
67
  })),
57
- options: this._options
68
+ options
58
69
  });
59
70
  this._worker.onmessage = (event) => {
60
71
  log.log(0, 'D3ForceLayout: worker message', event.data?.type, event.data);
@@ -80,6 +91,9 @@ export class D3ForceLayout extends GraphLayout {
80
91
  }
81
92
  }
82
93
  getEdgePosition = (edge) => {
94
+ if (!this._graph) {
95
+ return null;
96
+ }
83
97
  const sourceNode = this._graph.findNode(edge.getSourceNodeId());
84
98
  const targetNode = this._graph.findNode(edge.getTargetNodeId());
85
99
  if (!sourceNode || !targetNode) {
@@ -101,15 +115,16 @@ export class D3ForceLayout extends GraphLayout {
101
115
  if (!node) {
102
116
  return null;
103
117
  }
104
- const d3Node = this._positionsByNodeId.get(node.id);
118
+ const d3Node = this._positionsByNodeId.get(node.getId());
105
119
  if (d3Node) {
106
120
  return d3Node.coordinates;
107
121
  }
108
122
  return null;
109
123
  };
110
124
  lockNodePosition = (node, x, y) => {
111
- const d3Node = this._positionsByNodeId.get(node.id);
112
- this._positionsByNodeId.set(node.id, {
125
+ const id = node.getId();
126
+ const d3Node = this._positionsByNodeId.get(id);
127
+ this._positionsByNodeId.set(id, {
113
128
  ...d3Node,
114
129
  x,
115
130
  y,
@@ -121,7 +136,11 @@ export class D3ForceLayout extends GraphLayout {
121
136
  this._onLayoutDone();
122
137
  };
123
138
  unlockNodePosition = (node) => {
124
- const d3Node = this._positionsByNodeId.get(node.id);
139
+ const id = node.getId();
140
+ const d3Node = this._positionsByNodeId.get(id);
141
+ if (!d3Node) {
142
+ return;
143
+ }
125
144
  d3Node.fx = null;
126
145
  d3Node.fy = null;
127
146
  };
@@ -1 +1 @@
1
- {"version":3,"file":"d3-force-layout.js","sourceRoot":"","sources":["../../../src/layouts/d3-force/d3-force-layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"d3-force-layout.js","sourceRoot":"","sources":["../../../src/layouts/d3-force/d3-force-layout.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { GraphLayout, GraphLayoutProps } from '../../core/graph-layout';
2
- import { Node } from '../../graph/node';
3
- import { Graph } from '../../graph/graph';
2
+ import type { Graph, NodeInterface, EdgeInterface } from '../../graph/graph';
3
+ import * as d3 from 'd3-force';
4
4
  export type ForceMultiGraphLayoutProps = GraphLayoutProps & {
5
5
  alpha?: number;
6
6
  nBodyStrength?: number;
@@ -9,21 +9,25 @@ export type ForceMultiGraphLayoutProps = GraphLayoutProps & {
9
9
  };
10
10
  export declare class ForceMultiGraphLayout extends GraphLayout<ForceMultiGraphLayoutProps> {
11
11
  static defaultProps: {
12
- alpha: number;
13
- nBodyStrength: number;
14
- nBodyDistanceMin: number;
15
- nBodyDistanceMax: number;
12
+ readonly alpha: 3;
13
+ readonly nBodyStrength: -1200;
14
+ readonly nBodyDistanceMin: 100;
15
+ readonly nBodyDistanceMax: 1400;
16
+ readonly onLayoutStart: (detail?: import("../../core/graph-layout").GraphLayoutEventDetail) => void;
17
+ readonly onLayoutChange: (detail?: import("../../core/graph-layout").GraphLayoutEventDetail) => void;
18
+ readonly onLayoutDone: (detail?: import("../../core/graph-layout").GraphLayoutEventDetail) => void;
19
+ readonly onLayoutError: (error?: unknown) => void;
16
20
  };
17
21
  _name: string;
18
- _graph: Graph;
22
+ _graph: Graph | null;
19
23
  _d3Graph: {
20
24
  nodes: any[];
21
25
  edges: any[];
22
26
  };
23
- _nodeMap: {};
24
- _edgeMap: {};
25
- _simulator: any;
26
- constructor(options?: ForceMultiGraphLayoutProps);
27
+ _nodeMap: Map<string | number, any>;
28
+ _edgeMap: Map<string | number, any>;
29
+ _simulator: d3.Simulation<any, undefined> | null;
30
+ constructor(props?: ForceMultiGraphLayoutProps);
27
31
  initializeGraph(graph: Graph): void;
28
32
  _strength: (d3Edge: any) => number;
29
33
  _generateSimulator(): void;
@@ -31,14 +35,14 @@ export declare class ForceMultiGraphLayout extends GraphLayout<ForceMultiGraphLa
31
35
  resume(): void;
32
36
  stop(): void;
33
37
  update(): void;
34
- updateGraph(graph: any): void;
35
- getNodePosition: (node: Node) => [number, number];
36
- getEdgePosition: (edge: any) => {
38
+ updateGraph(graph: Graph): void;
39
+ getNodePosition: (node: NodeInterface) => [number, number];
40
+ getEdgePosition: (edge: EdgeInterface) => {
37
41
  type: string;
38
42
  sourcePosition: any[];
39
43
  targetPosition: any[];
40
44
  controlPoints: number[][];
41
45
  };
42
- lockNodePosition: (node: any, x: any, y: any) => void;
46
+ lockNodePosition: (node: NodeInterface, x: number, y: number) => void;
43
47
  protected _updateBounds(): void;
44
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"force-multi-graph-layout.d.ts","sourceRoot":"","sources":["../../../src/layouts/experimental/force-multi-graph-layout.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,WAAW,EAAE,gBAAgB,EAAC,mCAAgC;AACtE,OAAO,EAAC,IAAI,EAAC,4BAAyB;AACtC,OAAO,EAAC,KAAK,EAAC,6BAA0B;AAGxC,MAAM,MAAM,0BAA0B,GAAG,gBAAgB,GAAG;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,qBAAa,qBAAsB,SAAQ,WAAW,CAAC,0BAA0B,CAAC;IAChF,MAAM,CAAC,YAAY;;;;;MAKjB;IAEF,KAAK,SAA2B;IAChC,MAAM,EAAE,KAAK,CAAC;IAId,QAAQ;;;MAA0B;IAClC,QAAQ,KAAM;IACd,QAAQ,KAAM;IACd,UAAU,MAAC;gBAEC,OAAO,GAAE,0BAA+B;IAQpD,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAInC,SAAS,GAAI,WAAM,YAOjB;IAEF,kBAAkB;IAgClB,KAAK;IAKL,MAAM;IAIN,IAAI;IAIJ,MAAM,IAAI,IAAI;IAEd,WAAW,CAAC,KAAK,KAAA;IAkFjB,eAAe,GAAI,MAAM,IAAI,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAO9C;IAEF,eAAe,GAAI,SAAI;;;;;MA8CrB;IAEF,gBAAgB,GAAI,SAAI,EAAE,MAAC,EAAE,MAAC,UAM5B;cAEiB,aAAa,IAAI,IAAI;CAMzC"}
1
+ {"version":3,"file":"force-multi-graph-layout.d.ts","sourceRoot":"","sources":["../../../src/layouts/experimental/force-multi-graph-layout.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,WAAW,EAAE,gBAAgB,EAAC,mCAAgC;AACtE,OAAO,KAAK,EAAC,KAAK,EAAE,aAAa,EAAE,aAAa,EAAC,6BAA0B;AAC3E,OAAO,KAAK,EAAE,MAAM,UAAU,CAAC;AAE/B,MAAM,MAAM,0BAA0B,GAAG,gBAAgB,GAAG;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,qBAAa,qBAAsB,SAAQ,WAAW,CAAC,0BAA0B,CAAC;IAChF,MAAM,CAAC,YAAY;;;;;uCAAnB,CAAC;wCAEE,CAAC;sCAEmB,CAAC;sCAEK,CAAC;MAAsC;IAEpE,KAAK,SAA2B;IAChC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAQ;IAI5B,QAAQ,EAAE;QAAC,KAAK,EAAE,GAAG,EAAE,CAAC;QAAC,KAAK,EAAE,GAAG,EAAE,CAAA;KAAC,CAA0B;IAChE,QAAQ,4BAAmC;IAC3C,QAAQ,4BAAmC;IAC3C,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,IAAI,CAAQ;gBAE5C,KAAK,GAAE,0BAA+B;IAIlD,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAInC,SAAS,GAAI,WAAM,YASjB;IAEF,kBAAkB;IAgClB,KAAK;IAKL,MAAM;IAIN,IAAI;IAIJ,MAAM,IAAI,IAAI;IAEd,WAAW,CAAC,KAAK,EAAE,KAAK;IAsFxB,eAAe,GAAI,MAAM,aAAa,KAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAOvD;IAEF,eAAe,GAAI,MAAM,aAAa;;;;;MAiDpC;IAEF,gBAAgB,GAAI,MAAM,aAAa,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,UAS3D;cAEiB,aAAa,IAAI,IAAI;CAIzC"}
@@ -5,25 +5,22 @@ import { GraphLayout } from '../../core/graph-layout';
5
5
  import * as d3 from 'd3-force';
6
6
  export class ForceMultiGraphLayout extends GraphLayout {
7
7
  static defaultProps = {
8
+ ...GraphLayout.defaultProps,
8
9
  alpha: 3,
9
10
  nBodyStrength: -1200,
10
11
  nBodyDistanceMin: 100,
11
12
  nBodyDistanceMax: 1400
12
13
  };
13
14
  _name = 'ForceMultiGraphLayout';
14
- _graph;
15
+ _graph = null;
15
16
  // d3 part
16
17
  // custom graph data
17
18
  _d3Graph = { nodes: [], edges: [] };
18
- _nodeMap = {};
19
- _edgeMap = {};
20
- _simulator;
21
- constructor(options = {}) {
22
- super(options);
23
- this._options = {
24
- ...ForceMultiGraphLayout.defaultProps,
25
- ...options
26
- };
19
+ _nodeMap = new Map();
20
+ _edgeMap = new Map();
21
+ _simulator = null;
22
+ constructor(props = {}) {
23
+ super(props, ForceMultiGraphLayout.defaultProps);
27
24
  }
28
25
  initializeGraph(graph) {
29
26
  this.updateGraph(graph);
@@ -32,8 +29,10 @@ export class ForceMultiGraphLayout extends GraphLayout {
32
29
  if (d3Edge.isVirtual) {
33
30
  return 1 / d3Edge.edgeCount;
34
31
  }
35
- const sourceDegree = this._graph.getDegree(d3Edge.source.id);
36
- const targetDegree = this._graph.getDegree(d3Edge.target.id);
32
+ const sourceNode = this._graph?.findNode(d3Edge.source.id);
33
+ const targetNode = this._graph?.findNode(d3Edge.target.id);
34
+ const sourceDegree = sourceNode?.getDegree() ?? 0;
35
+ const targetDegree = targetNode?.getDegree() ?? 0;
37
36
  return 1 / Math.min(sourceDegree, targetDegree);
38
37
  };
39
38
  _generateSimulator() {
@@ -41,7 +40,7 @@ export class ForceMultiGraphLayout extends GraphLayout {
41
40
  this._simulator.on('tick', null).on('end', null);
42
41
  this._simulator = null;
43
42
  }
44
- const { alpha, nBodyStrength, nBodyDistanceMin, nBodyDistanceMax } = this._options;
43
+ const { alpha, nBodyStrength, nBodyDistanceMin, nBodyDistanceMax } = this.props;
45
44
  const g = this._d3Graph;
46
45
  this._simulator = d3
47
46
  .forceSimulation(g.nodes)
@@ -74,20 +73,23 @@ export class ForceMultiGraphLayout extends GraphLayout {
74
73
  updateGraph(graph) {
75
74
  this._graph = graph;
76
75
  // nodes
77
- const newNodeMap = {};
78
- const newD3Nodes = graph.getNodes().map((node) => {
79
- const oldD3Node = this._nodeMap[node.id];
80
- const newD3Node = oldD3Node ? oldD3Node : { id: node.id };
81
- newNodeMap[node.id] = newD3Node;
76
+ const newNodeMap = new Map();
77
+ const nodes = Array.from(graph.getNodes());
78
+ const newD3Nodes = nodes.map((node) => {
79
+ const id = node.getId();
80
+ const oldD3Node = this._nodeMap.get(id);
81
+ const newD3Node = oldD3Node ? oldD3Node : { id };
82
+ newNodeMap.set(id, newD3Node);
82
83
  return newD3Node;
83
84
  });
84
85
  // edges
85
86
  // bucket edges between the same source/target node pairs.
86
- const nodePairs = graph.getEdges().reduce((res, edge) => {
87
- const nodes = [edge.getSourceNodeId(), edge.getTargetNodeId()];
87
+ const edges = Array.from(graph.getEdges());
88
+ const nodePairs = edges.reduce((res, edge) => {
89
+ const endpoints = [edge.getSourceNodeId(), edge.getTargetNodeId()];
88
90
  // sort the node ids to count the edges with the same pair
89
91
  // but different direction (a -> b or b -> a)
90
- const pairId = nodes.sort().toString();
92
+ const pairId = endpoints.sort().toString();
91
93
  // push this edge into the bucket
92
94
  if (!res[pairId]) {
93
95
  res[pairId] = [edge];
@@ -101,7 +103,7 @@ export class ForceMultiGraphLayout extends GraphLayout {
101
103
  // if only one edge between two nodes, create a straight line
102
104
  // otherwise, create one virtual node and two edges for each edge
103
105
  const newD3Edges = [];
104
- const newEdgeMap = {};
106
+ const newEdgeMap = new Map();
105
107
  Object.keys(nodePairs).forEach((pairId) => {
106
108
  const betweenEdges = nodePairs[pairId];
107
109
  const firstEdge = betweenEdges[0];
@@ -110,11 +112,11 @@ export class ForceMultiGraphLayout extends GraphLayout {
110
112
  const newD3Edge = {
111
113
  type: 'line',
112
114
  id: firstEdge.getId(),
113
- source: newNodeMap[firstEdge.getSourceNodeId()],
114
- target: newNodeMap[firstEdge.getTargetNodeId()],
115
+ source: newNodeMap.get(firstEdge.getSourceNodeId()),
116
+ target: newNodeMap.get(firstEdge.getTargetNodeId()),
115
117
  isVirtual: false
116
118
  };
117
- newEdgeMap[firstEdge.getId()] = newD3Edge;
119
+ newEdgeMap.set(firstEdge.getId(), newD3Edge);
118
120
  newD3Edges.push(newD3Edge);
119
121
  return;
120
122
  }
@@ -122,23 +124,24 @@ export class ForceMultiGraphLayout extends GraphLayout {
122
124
  const newD3Edge = {
123
125
  type: 'line',
124
126
  id: pairId,
125
- source: newNodeMap[firstEdge.getSourceNodeId()],
126
- target: newNodeMap[firstEdge.getTargetNodeId()],
127
+ source: newNodeMap.get(firstEdge.getSourceNodeId()),
128
+ target: newNodeMap.get(firstEdge.getTargetNodeId()),
127
129
  isVirtual: true,
128
130
  edgeCount: betweenEdges.length
129
131
  };
130
- newEdgeMap[pairId] = newD3Edge;
132
+ newEdgeMap.set(pairId, newD3Edge);
131
133
  newD3Edges.push(newD3Edge);
132
134
  betweenEdges.forEach((e, idx) => {
133
- newEdgeMap[e.id] = {
135
+ const edgeId = e.getId();
136
+ newEdgeMap.set(edgeId, {
134
137
  type: 'spline-curve',
135
- id: e.id,
136
- source: newNodeMap[e.getSourceNodeId()],
137
- target: newNodeMap[e.getTargetNodeId()],
138
+ id: edgeId,
139
+ source: newNodeMap.get(e.getSourceNodeId()),
140
+ target: newNodeMap.get(e.getTargetNodeId()),
138
141
  virtualEdgeId: pairId,
139
142
  isVirtual: true,
140
143
  index: idx
141
- };
144
+ });
142
145
  });
143
146
  });
144
147
  this._nodeMap = newNodeMap;
@@ -147,7 +150,7 @@ export class ForceMultiGraphLayout extends GraphLayout {
147
150
  this._d3Graph.edges = newD3Edges;
148
151
  }
149
152
  getNodePosition = (node) => {
150
- const d3Node = this._nodeMap[node.id];
153
+ const d3Node = this._nodeMap.get(node.getId());
151
154
  if (d3Node) {
152
155
  return [d3Node.x, d3Node.y];
153
156
  }
@@ -155,7 +158,7 @@ export class ForceMultiGraphLayout extends GraphLayout {
155
158
  return [0, 0];
156
159
  };
157
160
  getEdgePosition = (edge) => {
158
- const d3Edge = this._edgeMap[edge.id];
161
+ const d3Edge = this._edgeMap.get(edge.getId());
159
162
  if (d3Edge) {
160
163
  if (!d3Edge.isVirtual) {
161
164
  return {
@@ -166,7 +169,10 @@ export class ForceMultiGraphLayout extends GraphLayout {
166
169
  };
167
170
  }
168
171
  // else, check the referenced virtual edge
169
- const virtualEdge = this._edgeMap[d3Edge.virtualEdgeId];
172
+ const virtualEdge = this._edgeMap.get(d3Edge.virtualEdgeId);
173
+ if (!virtualEdge) {
174
+ return null;
175
+ }
170
176
  const edgeCount = virtualEdge.edgeCount;
171
177
  // get the position of source and target nodes
172
178
  const sourcePosition = [virtualEdge.source.x, virtualEdge.source.y];
@@ -198,14 +204,17 @@ export class ForceMultiGraphLayout extends GraphLayout {
198
204
  };
199
205
  };
200
206
  lockNodePosition = (node, x, y) => {
201
- const d3Node = this._nodeMap[node.id];
207
+ const d3Node = this._nodeMap.get(node.getId());
208
+ if (!d3Node) {
209
+ return;
210
+ }
202
211
  d3Node.x = x;
203
212
  d3Node.y = y;
204
213
  this._onLayoutChange();
205
214
  this._onLayoutDone();
206
215
  };
207
216
  _updateBounds() {
208
- const positions = Object.values(this._nodeMap ?? {}).map((node) => this._normalizePosition(node));
217
+ const positions = Array.from(this._nodeMap.values(), (node) => this._normalizePosition(node));
209
218
  this._bounds = this._calculateBounds(positions);
210
219
  }
211
220
  }
@@ -1 +1 @@
1
- {"version":3,"file":"force-multi-graph-layout.js","sourceRoot":"","sources":["../../../src/layouts/experimental/force-multi-graph-layout.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,WAAW,EAAmB,mCAAgC;AAGtE,OAAO,KAAK,EAAE,MAAM,UAAU,CAAC;AAS/B,MAAM,OAAO,qBAAsB,SAAQ,WAAuC;IAChF,MAAM,CAAC,YAAY,GAAG;QACpB,KAAK,EAAE,CAAC;QACR,aAAa,EAAE,CAAC,IAAI;QACpB,gBAAgB,EAAE,GAAG;QACrB,gBAAgB,EAAE,IAAI;KACvB,CAAC;IAEF,KAAK,GAAG,uBAAuB,CAAC;IAChC,MAAM,CAAQ;IAEd,UAAU;IACV,oBAAoB;IACpB,QAAQ,GAAG,EAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAC,CAAC;IAClC,QAAQ,GAAG,EAAE,CAAC;IACd,QAAQ,GAAG,EAAE,CAAC;IACd,UAAU,CAAC;IAEX,YAAY,UAAsC,EAAE;QAClD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG;YACd,GAAG,qBAAqB,CAAC,YAAY;YACrC,GAAG,OAAO;SACX,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,KAAY;QAC1B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED,SAAS,GAAG,CAAC,MAAM,EAAE,EAAE;QACrB,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,OAAO,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;QAC9B,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,kBAAkB;QAChB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACjD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;QACD,MAAM,EAAC,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QAEjF,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,EAAE;aACjB,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;aACxB,KAAK,CACJ,MAAM,EACN,EAAE;aACC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;YACnB,kCAAkC;aACjC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACf,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5B;aACA,KAAK,CACJ,QAAQ,EACR,EAAE;aACC,aAAa,EAAE;aACf,QAAQ,CAAC,aAAa,CAAC;aACvB,WAAW,CAAC,gBAAgB,CAAC;aAC7B,WAAW,CAAC,gBAAgB,CAAC,CACjC;aACA,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC;aACjC,KAAK,CAAC,KAAK,CAAC,CAAC;QAChB,2BAA2B;QAC3B,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACjF,CAAC;IAED,KAAK;QACH,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI;QACF,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,KAAU,CAAC;IAEjB,WAAW,CAAC,KAAK;QACf,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QAEpB,QAAQ;QACR,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzC,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAC,CAAC;YACxD,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;YAChC,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,QAAQ;QACR,0DAA0D;QAC1D,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACtD,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;YAC/D,0DAA0D;YAC1D,6CAA6C;YAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;YACvC,iCAAiC;YACjC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,iCAAiC;QACjC,6DAA6D;QAC7D,iEAAiE;QACjE,MAAM,UAAU,GAAG,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACxC,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;YAClC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,kCAAkC;gBAClC,MAAM,SAAS,GAAG;oBAChB,IAAI,EAAE,MAAM;oBACZ,EAAE,EAAE,SAAS,CAAC,KAAK,EAAE;oBACrB,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;oBAC/C,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;oBAC/C,SAAS,EAAE,KAAK;iBACjB,CAAC;gBACF,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC;gBAC1C,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC3B,OAAO;YACT,CAAC;YAED,kCAAkC;YAClC,MAAM,SAAS,GAAG;gBAChB,IAAI,EAAE,MAAM;gBACZ,EAAE,EAAE,MAAM;gBACV,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;gBAC/C,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC;gBAC/C,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,YAAY,CAAC,MAAM;aAC/B,CAAC;YACF,UAAU,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;YAC/B,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE3B,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;gBAC9B,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG;oBACjB,IAAI,EAAE,cAAc;oBACpB,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;oBACvC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;oBACvC,aAAa,EAAE,MAAM;oBACrB,SAAS,EAAE,IAAI;oBACf,KAAK,EAAE,GAAG;iBACX,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,UAAU,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,UAAU,CAAC;IACnC,CAAC;IAED,eAAe,GAAG,CAAC,IAAU,EAAoB,EAAE;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;QACD,gBAAgB;QAChB,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChB,CAAC,CAAC;IAEF,eAAe,GAAG,CAAC,IAAI,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBACtB,OAAO;oBACL,IAAI,EAAE,MAAM;oBACZ,cAAc,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;oBAClD,cAAc,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;oBAClD,aAAa,EAAE,EAAE;iBAClB,CAAC;YACJ,CAAC;YACD,0CAA0C;YAC1C,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACxD,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;YACxC,8CAA8C;YAC9C,MAAM,cAAc,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACpE,MAAM,cAAc,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACpE,8BAA8B;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,EACrC,cAAc,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CACtC,CAAC;YACF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,sCAAsC;YACtC,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,2EAA2E;YAC3E,oFAAoF;YACpF,MAAM,cAAc,GAAG,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3C,MAAM,MAAM,GACV,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC1B,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YACtE,MAAM,YAAY,GAAG,mBAAmB,CAAC,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAC5F,OAAO;gBACL,IAAI,EAAE,cAAc;gBACpB,cAAc;gBACd,cAAc;gBACd,aAAa,EAAE,CAAC,YAAY,CAAC;aAC9B,CAAC;QACJ,CAAC;QACD,gBAAgB;QAChB,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACtB,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACtB,aAAa,EAAE,EAAE;SAClB,CAAC;IACJ,CAAC,CAAC;IAEF,gBAAgB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,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,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAChE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAC9B,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;;AAGH;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAC5D,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,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC9E,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":"force-multi-graph-layout.js","sourceRoot":"","sources":["../../../src/layouts/experimental/force-multi-graph-layout.ts"],"names":[],"mappings":"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"}
@@ -1,37 +1,40 @@
1
1
  import { GraphLayout, GraphLayoutProps } from '../../core/graph-layout';
2
- import { Node } from '../../graph/node';
3
- import { Graph } from '../../graph/graph';
2
+ import type { Graph, NodeInterface, EdgeInterface } from '../../graph/graph';
4
3
  export type HivePlotLayoutProps = GraphLayoutProps & {
5
4
  innerRadius?: number;
6
5
  outerRadius?: number;
7
- getNodeAxis?: (node: Node) => any;
6
+ getNodeAxis?: (node: NodeInterface) => any;
8
7
  };
9
8
  export declare class HivePlotLayout extends GraphLayout<HivePlotLayoutProps> {
10
9
  static defaultProps: {
11
10
  readonly innerRadius: 100;
12
11
  readonly outerRadius: 500;
13
- readonly getNodeAxis: (node: Node) => unknown;
12
+ readonly getNodeAxis: (node: NodeInterface) => unknown;
13
+ readonly onLayoutStart: (detail?: import("../../core/graph-layout").GraphLayoutEventDetail) => void;
14
+ readonly onLayoutChange: (detail?: import("../../core/graph-layout").GraphLayoutEventDetail) => void;
15
+ readonly onLayoutDone: (detail?: import("../../core/graph-layout").GraphLayoutEventDetail) => void;
16
+ readonly onLayoutError: (error?: unknown) => void;
14
17
  };
15
18
  _name: string;
16
- _graph: Graph;
19
+ _graph: Graph | null;
17
20
  _totalAxis: number;
18
- _axis: Record<string, any>;
19
- _nodeMap: {};
20
- _nodePositionMap: {};
21
- constructor(options?: HivePlotLayoutProps);
21
+ _axis: Record<string, NodeInterface[]>;
22
+ _nodeMap: Map<string | number, NodeInterface>;
23
+ _nodePositionMap: Map<string | number, [number, number]>;
24
+ constructor(props?: HivePlotLayoutProps);
22
25
  initializeGraph(graph: Graph): void;
23
- updateGraph(graph: any): void;
26
+ updateGraph(graph: Graph): void;
24
27
  start(): void;
25
28
  stop(): void;
26
29
  update(): void;
27
30
  resume(): void;
28
- getNodePosition: (node: any) => any;
29
- getEdgePosition: (edge: any) => {
31
+ getNodePosition: (node: NodeInterface) => [number, number];
32
+ getEdgePosition: (edge: EdgeInterface) => {
30
33
  type: string;
31
- sourcePosition: any;
32
- targetPosition: any;
34
+ sourcePosition: [number, number];
35
+ targetPosition: [number, number];
33
36
  controlPoints: [number, number][];
34
37
  };
35
- lockNodePosition: (node: any, x: any, y: any) => void;
38
+ lockNodePosition: (node: NodeInterface, x: number, y: number) => void;
36
39
  protected _updateBounds(): void;
37
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hive-plot-layout.d.ts","sourceRoot":"","sources":["../../../src/layouts/experimental/hive-plot-layout.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,WAAW,EAAE,gBAAgB,EAAC,mCAAgC;AACtE,OAAO,EAAC,IAAI,EAAC,4BAAyB;AACtC,OAAO,EAAC,KAAK,EAAC,6BAA0B;AAExC,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,GAAG,CAAC;CACnC,CAAC;AAEF,qBAAa,cAAe,SAAQ,WAAW,CAAC,mBAAmB,CAAC;IAClE,MAAM,CAAC,YAAY;;;qCAGG,IAAI;MACmC;IAE7D,KAAK,SAAc;IACnB,MAAM,EAAE,KAAK,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,QAAQ,KAAM;IACd,gBAAgB,KAAM;gBAEV,OAAO,GAAE,mBAAwB;IAQ7C,eAAe,CAAC,KAAK,EAAE,KAAK;IAI5B,WAAW,CAAC,KAAK,KAAA;IAsDjB,KAAK;IAKL,IAAI;IAEJ,MAAM;IAEN,MAAM;IAEN,eAAe,GAAI,SAAI,SAAyC;IAEhE,eAAe,GAAI,SAAI;;;;;MAqCrB;IAEF,gBAAgB,GAAI,SAAI,EAAE,MAAC,EAAE,MAAC,UAI5B;cAEiB,aAAa,IAAI,IAAI;CAMzC"}
1
+ {"version":3,"file":"hive-plot-layout.d.ts","sourceRoot":"","sources":["../../../src/layouts/experimental/hive-plot-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,mBAAmB,GAAG,gBAAgB,GAAG;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,GAAG,CAAC;CAC5C,CAAC;AAEF,qBAAa,cAAe,SAAQ,WAAW,CAAC,mBAAmB,CAAC;IAClE,MAAM,CAAC,YAAY;;;qCAIG,aAAa;uCAFjC,CAAC;wCAEiB,CAAC;sCACd,CAAC;sCAEN,CAAC;MAF0D;IAE7D,KAAK,SAAc;IACnB,MAAM,EAAE,KAAK,GAAG,IAAI,CAAQ;IAC5B,UAAU,EAAE,MAAM,CAAK;IACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAM;IAC5C,QAAQ,sCAA6C;IACrD,gBAAgB,yCAAgD;gBAEpD,KAAK,GAAE,mBAAwB;IAI3C,eAAe,CAAC,KAAK,EAAE,KAAK;IAI5B,WAAW,CAAC,KAAK,EAAE,KAAK;IAoDxB,KAAK;IAML,IAAI;IAEJ,MAAM;IAEN,MAAM;IAEN,eAAe,GAAI,MAAM,aAAa,sBAA6C;IAEnF,eAAe,GAAI,MAAM,aAAa;;;;;MAyCpC;IAEF,gBAAgB,GAAI,MAAM,aAAa,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,UAI3D;cAEiB,aAAa,IAAI,IAAI;CAMzC"}