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

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 (313) hide show
  1. package/dist/_deprecated/old-constants.d.ts +1 -0
  2. package/dist/_deprecated/old-constants.js +1 -0
  3. package/dist/core/cache.d.ts +1 -0
  4. package/dist/core/cache.js +1 -0
  5. package/dist/core/constants.d.ts +2 -1
  6. package/dist/core/constants.js +1 -0
  7. package/dist/core/graph-engine.d.ts +64 -21
  8. package/dist/core/graph-engine.d.ts.map +1 -1
  9. package/dist/core/graph-engine.js +158 -77
  10. package/dist/core/graph-engine.js.map +1 -1
  11. package/dist/core/graph-layout.d.ts +23 -18
  12. package/dist/core/graph-layout.d.ts.map +1 -1
  13. package/dist/core/graph-layout.js +35 -19
  14. package/dist/core/graph-layout.js.map +1 -1
  15. package/dist/core/interaction-manager.d.ts +5 -4
  16. package/dist/core/interaction-manager.d.ts.map +1 -1
  17. package/dist/core/interaction-manager.js +10 -7
  18. package/dist/core/interaction-manager.js.map +1 -1
  19. package/dist/graph/arrow-graph.d.ts +70 -0
  20. package/dist/graph/arrow-graph.d.ts.map +1 -0
  21. package/dist/graph/arrow-graph.js +514 -0
  22. package/dist/graph/arrow-graph.js.map +1 -0
  23. package/dist/graph/classic-graph.d.ts +170 -0
  24. package/dist/graph/classic-graph.d.ts.map +1 -0
  25. package/dist/graph/classic-graph.js +391 -0
  26. package/dist/graph/classic-graph.js.map +1 -0
  27. package/dist/graph/edge.d.ts +8 -7
  28. package/dist/graph/edge.d.ts.map +1 -1
  29. package/dist/graph/edge.js +1 -0
  30. package/dist/graph/edge.js.map +1 -1
  31. package/dist/graph/functions/arrow-utils.d.ts +7 -0
  32. package/dist/graph/functions/arrow-utils.d.ts.map +1 -0
  33. package/dist/graph/functions/arrow-utils.js +68 -0
  34. package/dist/graph/functions/arrow-utils.js.map +1 -0
  35. package/dist/graph/functions/create-graph-from-data.d.ts +4 -0
  36. package/dist/graph/functions/create-graph-from-data.d.ts.map +1 -0
  37. package/dist/graph/functions/create-graph-from-data.js +13 -0
  38. package/dist/graph/functions/create-graph-from-data.js.map +1 -0
  39. package/dist/graph/graph-normalization.d.ts +11 -0
  40. package/dist/graph/graph-normalization.d.ts.map +1 -0
  41. package/dist/graph/graph-normalization.js +66 -0
  42. package/dist/graph/graph-normalization.js.map +1 -0
  43. package/dist/graph/graph.d.ts +63 -155
  44. package/dist/graph/graph.d.ts.map +1 -1
  45. package/dist/graph/graph.js +12 -300
  46. package/dist/graph/graph.js.map +1 -1
  47. package/dist/graph/node.d.ts +8 -7
  48. package/dist/graph/node.d.ts.map +1 -1
  49. package/dist/graph/node.js +3 -2
  50. package/dist/graph/node.js.map +1 -1
  51. package/dist/graph-data/arrow-graph-data-builder.d.ts +22 -0
  52. package/dist/graph-data/arrow-graph-data-builder.d.ts.map +1 -0
  53. package/dist/graph-data/arrow-graph-data-builder.js +106 -0
  54. package/dist/graph-data/arrow-graph-data-builder.js.map +1 -0
  55. package/dist/graph-data/graph-data-builder.d.ts +7 -0
  56. package/dist/graph-data/graph-data-builder.d.ts.map +1 -0
  57. package/dist/graph-data/graph-data-builder.js +2 -0
  58. package/dist/graph-data/graph-data-builder.js.map +1 -0
  59. package/dist/graph-data/graph-data.d.ts +41 -0
  60. package/dist/graph-data/graph-data.d.ts.map +1 -0
  61. package/dist/graph-data/graph-data.js +12 -0
  62. package/dist/graph-data/graph-data.js.map +1 -0
  63. package/dist/graph-data/plain-graph-data-builder.d.ts +21 -0
  64. package/dist/graph-data/plain-graph-data-builder.d.ts.map +1 -0
  65. package/dist/graph-data/plain-graph-data-builder.js +106 -0
  66. package/dist/graph-data/plain-graph-data-builder.js.map +1 -0
  67. package/dist/graph-style-schema.cdn.js +1 -1
  68. package/dist/graph-style-schema.json +1 -1
  69. package/dist/index.cjs +6905 -4576
  70. package/dist/index.cjs.map +4 -4
  71. package/dist/index.d.ts +36 -28
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +43 -29
  74. package/dist/index.js.map +1 -1
  75. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-fragment.glsl.d.ts +1 -0
  76. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-fragment.glsl.js +1 -0
  77. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex-tf.glsl.d.ts +1 -0
  78. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex-tf.glsl.js +1 -0
  79. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex.glsl.d.ts +1 -0
  80. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex.glsl.js +1 -0
  81. package/dist/layers/common-layers/flow-path-layer/flow-path-layer.d.ts +1 -0
  82. package/dist/layers/common-layers/flow-path-layer/flow-path-layer.d.ts.map +1 -1
  83. package/dist/layers/common-layers/flow-path-layer/flow-path-layer.js +2 -2
  84. package/dist/layers/common-layers/flow-path-layer/flow-path-layer.js.map +1 -1
  85. package/dist/layers/common-layers/grid-layer/grid-layer.d.ts +84 -0
  86. package/dist/layers/common-layers/grid-layer/grid-layer.d.ts.map +1 -0
  87. package/dist/layers/common-layers/grid-layer/grid-layer.js +134 -0
  88. package/dist/layers/common-layers/grid-layer/grid-layer.js.map +1 -0
  89. package/dist/layers/common-layers/marker-layer/atlas-data-url.d.ts +1 -0
  90. package/dist/layers/common-layers/marker-layer/atlas-data-url.js +1 -0
  91. package/dist/layers/common-layers/marker-layer/marker-layer.d.ts +1 -0
  92. package/dist/layers/common-layers/marker-layer/marker-layer.js +3 -2
  93. package/dist/layers/common-layers/marker-layer/marker-list.d.ts +1 -0
  94. package/dist/layers/common-layers/marker-layer/marker-list.js +1 -0
  95. package/dist/layers/common-layers/marker-layer/marker-mapping.d.ts +1 -0
  96. package/dist/layers/common-layers/marker-layer/marker-mapping.js +1 -0
  97. package/dist/layers/common-layers/spline-layer/spline-layer.d.ts +1 -0
  98. package/dist/layers/common-layers/spline-layer/spline-layer.js +1 -0
  99. package/dist/layers/common-layers/zoomable-text-layer/zoomable-text-layer.d.ts +1 -0
  100. package/dist/layers/common-layers/zoomable-text-layer/zoomable-text-layer.js +1 -0
  101. package/dist/layers/edge-attachment-helper.d.ts +4 -3
  102. package/dist/layers/edge-attachment-helper.d.ts.map +1 -1
  103. package/dist/layers/edge-attachment-helper.js +4 -4
  104. package/dist/layers/edge-attachment-helper.js.map +1 -1
  105. package/dist/layers/edge-layer.d.ts +1 -0
  106. package/dist/layers/edge-layer.js +4 -3
  107. package/dist/layers/edge-layers/arrow-2d-geometry.d.ts +1 -0
  108. package/dist/layers/edge-layers/arrow-2d-geometry.js +1 -0
  109. package/dist/layers/edge-layers/curved-edge-layer.d.ts +2 -1
  110. package/dist/layers/edge-layers/curved-edge-layer.js +2 -1
  111. package/dist/layers/edge-layers/edge-arrow-layer.d.ts +1 -0
  112. package/dist/layers/edge-layers/edge-arrow-layer.js +2 -1
  113. package/dist/layers/edge-layers/edge-label-layer.d.ts +2 -1
  114. package/dist/layers/edge-layers/edge-label-layer.js +2 -1
  115. package/dist/layers/edge-layers/flow-layer.d.ts +2 -1
  116. package/dist/layers/edge-layers/flow-layer.js +2 -1
  117. package/dist/layers/edge-layers/path-edge-layer.d.ts +1 -0
  118. package/dist/layers/edge-layers/path-edge-layer.js +1 -0
  119. package/dist/layers/edge-layers/straight-line-edge-layer.d.ts +1 -0
  120. package/dist/layers/edge-layers/straight-line-edge-layer.js +1 -0
  121. package/dist/layers/graph-layer.d.ts +75 -17
  122. package/dist/layers/graph-layer.d.ts.map +1 -1
  123. package/dist/layers/graph-layer.js +450 -64
  124. package/dist/layers/graph-layer.js.map +1 -1
  125. package/dist/layers/node-layers/circle-layer.d.ts +1 -0
  126. package/dist/layers/node-layers/circle-layer.js +1 -0
  127. package/dist/layers/node-layers/image-layer.d.ts +1 -0
  128. package/dist/layers/node-layers/image-layer.js +1 -0
  129. package/dist/layers/node-layers/label-layer.d.ts +2 -1
  130. package/dist/layers/node-layers/label-layer.js +2 -1
  131. package/dist/layers/node-layers/path-rounded-rectangle-layer.d.ts +1 -0
  132. package/dist/layers/node-layers/path-rounded-rectangle-layer.js +2 -1
  133. package/dist/layers/node-layers/rectangle-layer.d.ts +1 -0
  134. package/dist/layers/node-layers/rectangle-layer.js +1 -0
  135. package/dist/layers/node-layers/rounded-rectangle-layer-fragment.d.ts +1 -0
  136. package/dist/layers/node-layers/rounded-rectangle-layer-fragment.js +1 -0
  137. package/dist/layers/node-layers/rounded-rectangle-layer.d.ts +2 -1
  138. package/dist/layers/node-layers/rounded-rectangle-layer.js +3 -2
  139. package/dist/layers/node-layers/zoomable-marker-layer.d.ts +2 -1
  140. package/dist/layers/node-layers/zoomable-marker-layer.js +2 -1
  141. package/dist/layouts/d3-dag/collapsable-d3-dag-layout.d.ts +25 -0
  142. package/dist/layouts/d3-dag/collapsable-d3-dag-layout.d.ts.map +1 -0
  143. package/dist/layouts/d3-dag/collapsable-d3-dag-layout.js +252 -0
  144. package/dist/layouts/d3-dag/collapsable-d3-dag-layout.js.map +1 -0
  145. package/dist/layouts/d3-dag/d3-dag-layout.d.ts +48 -62
  146. package/dist/layouts/d3-dag/d3-dag-layout.d.ts.map +1 -1
  147. package/dist/layouts/d3-dag/d3-dag-layout.js +89 -273
  148. package/dist/layouts/d3-dag/d3-dag-layout.js.map +1 -1
  149. package/dist/layouts/d3-force/d3-force-layout.d.ts +22 -9
  150. package/dist/layouts/d3-force/d3-force-layout.d.ts.map +1 -1
  151. package/dist/layouts/d3-force/d3-force-layout.js +42 -22
  152. package/dist/layouts/d3-force/d3-force-layout.js.map +1 -1
  153. package/dist/layouts/d3-force/worker.d.ts +1 -0
  154. package/dist/layouts/d3-force/worker.js +1 -0
  155. package/dist/layouts/experimental/force-multi-graph-layout.d.ts +21 -16
  156. package/dist/layouts/experimental/force-multi-graph-layout.d.ts.map +1 -1
  157. package/dist/layouts/experimental/force-multi-graph-layout.js +49 -39
  158. package/dist/layouts/experimental/force-multi-graph-layout.js.map +1 -1
  159. package/dist/layouts/experimental/hive-plot-layout.d.ts +20 -16
  160. package/dist/layouts/experimental/hive-plot-layout.d.ts.map +1 -1
  161. package/dist/layouts/experimental/hive-plot-layout.js +35 -35
  162. package/dist/layouts/experimental/hive-plot-layout.js.map +1 -1
  163. package/dist/layouts/experimental/radial-layout.d.ts +14 -8
  164. package/dist/layouts/experimental/radial-layout.d.ts.map +1 -1
  165. package/dist/layouts/experimental/radial-layout.js +33 -15
  166. package/dist/layouts/experimental/radial-layout.js.map +1 -1
  167. package/dist/layouts/gpu-force/gpu-force-layout.d.ts +13 -9
  168. package/dist/layouts/gpu-force/gpu-force-layout.d.ts.map +1 -1
  169. package/dist/layouts/gpu-force/gpu-force-layout.js +61 -57
  170. package/dist/layouts/gpu-force/gpu-force-layout.js.map +1 -1
  171. package/dist/layouts/gpu-force/worker.d.ts +1 -0
  172. package/dist/layouts/gpu-force/worker.js +1 -0
  173. package/dist/layouts/simple-layout.d.ts +10 -26
  174. package/dist/layouts/simple-layout.d.ts.map +1 -1
  175. package/dist/layouts/simple-layout.js +15 -18
  176. package/dist/layouts/simple-layout.js.map +1 -1
  177. package/dist/loaders/dot-graph-loader.d.ts +26 -0
  178. package/dist/loaders/dot-graph-loader.d.ts.map +1 -0
  179. package/dist/loaders/dot-graph-loader.js +669 -0
  180. package/dist/loaders/dot-graph-loader.js.map +1 -0
  181. package/dist/loaders/json-graph-loader.d.ts +7 -0
  182. package/dist/loaders/json-graph-loader.d.ts.map +1 -0
  183. package/dist/loaders/json-graph-loader.js +32 -0
  184. package/dist/loaders/json-graph-loader.js.map +1 -0
  185. package/dist/loaders/parsers/edge-parsers.d.ts +3 -0
  186. package/dist/loaders/parsers/edge-parsers.d.ts.map +1 -0
  187. package/dist/loaders/{edge-parsers.js → parsers/edge-parsers.js} +2 -1
  188. package/dist/loaders/parsers/edge-parsers.js.map +1 -0
  189. package/dist/loaders/parsers/node-parsers.d.ts +3 -0
  190. package/dist/loaders/parsers/node-parsers.d.ts.map +1 -0
  191. package/dist/loaders/{node-parsers.js → parsers/node-parsers.js} +2 -1
  192. package/dist/loaders/parsers/node-parsers.js.map +1 -0
  193. package/dist/loaders/parsers/parse-json-graph.d.ts +30 -0
  194. package/dist/loaders/parsers/parse-json-graph.d.ts.map +1 -0
  195. package/dist/loaders/parsers/parse-json-graph.js +79 -0
  196. package/dist/loaders/parsers/parse-json-graph.js.map +1 -0
  197. package/dist/style/graph-layer-stylesheet.d.ts +3 -2
  198. package/dist/style/graph-layer-stylesheet.js +1 -0
  199. package/dist/style/graph-style-accessor-map.d.ts +1 -0
  200. package/dist/style/graph-style-accessor-map.js +1 -0
  201. package/dist/style/graph-style-engine.d.ts +6 -3
  202. package/dist/style/graph-style-engine.d.ts.map +1 -1
  203. package/dist/style/graph-style-engine.js +7 -5
  204. package/dist/style/graph-style-engine.js.map +1 -1
  205. package/dist/style/graph-stylesheet.schema.d.ts +1 -0
  206. package/dist/style/graph-stylesheet.schema.js +1 -0
  207. package/dist/style/style-property.d.ts +1 -0
  208. package/dist/style/style-property.js +2 -1
  209. package/dist/style/{style-engine.d.ts → stylesheet-engine.d.ts} +5 -4
  210. package/dist/style/stylesheet-engine.d.ts.map +1 -0
  211. package/dist/style/{style-engine.js → stylesheet-engine.js} +4 -3
  212. package/dist/style/stylesheet-engine.js.map +1 -0
  213. package/dist/utils/collapsed-chains.d.ts +10 -9
  214. package/dist/utils/collapsed-chains.d.ts.map +1 -1
  215. package/dist/utils/collapsed-chains.js +2 -6
  216. package/dist/utils/collapsed-chains.js.map +1 -1
  217. package/dist/utils/layer-utils.d.ts +1 -0
  218. package/dist/utils/layer-utils.js +1 -0
  219. package/dist/utils/log.d.ts +1 -0
  220. package/dist/utils/log.js +1 -0
  221. package/dist/utils/node-boundary.d.ts +1 -0
  222. package/dist/utils/node-boundary.js +1 -0
  223. package/dist/utils/polygon-calculations.d.ts +1 -0
  224. package/dist/utils/polygon-calculations.js +1 -0
  225. package/dist/utils/rank-grid.d.ts +31 -0
  226. package/dist/utils/rank-grid.d.ts.map +1 -0
  227. package/dist/utils/rank-grid.js +307 -0
  228. package/dist/utils/rank-grid.js.map +1 -0
  229. package/package.json +7 -11
  230. package/src/_disabled/arrow-graph-data.ts.disabled +18 -0
  231. package/src/_disabled/columnar-graph-data-builder.ts.disabled +250 -0
  232. package/src/_disabled/graph-runtime-layout.ts.disabled +29 -0
  233. package/src/core/graph-engine.ts +201 -84
  234. package/src/core/graph-layout.ts +52 -29
  235. package/src/core/interaction-manager.ts +20 -20
  236. package/src/graph/arrow-graph.ts +648 -0
  237. package/src/graph/classic-graph.ts +447 -0
  238. package/src/graph/edge.ts +7 -7
  239. package/src/graph/functions/arrow-utils.ts +72 -0
  240. package/src/graph/functions/convert-arrow-graph-to-classic-graph.ts.disabled +47 -0
  241. package/src/graph/functions/convert-plain-graph-to-arrow-graph.ts.disabled +119 -0
  242. package/src/graph/functions/create-graph-from-data.ts +16 -0
  243. package/src/graph/functions/create-plain-graph-from-data.ts.disabled +176 -0
  244. package/src/graph/graph-normalization.ts +87 -0
  245. package/src/graph/graph.ts +68 -339
  246. package/src/graph/node.ts +9 -9
  247. package/src/graph/tabular-graph.ts.disabled +761 -0
  248. package/src/graph-data/arrow-graph-data-builder.ts +165 -0
  249. package/src/graph-data/graph-data-builder.ts +7 -0
  250. package/src/graph-data/graph-data.ts +57 -0
  251. package/src/graph-data/plain-graph-data-builder.ts +132 -0
  252. package/src/index.ts +53 -13
  253. package/src/layers/common-layers/flow-path-layer/flow-path-layer.ts +1 -2
  254. package/src/layers/common-layers/grid-layer/grid-layer.ts +237 -0
  255. package/src/layers/edge-attachment-helper.ts +22 -16
  256. package/src/layers/graph-layer.ts +642 -62
  257. package/src/layouts/d3-dag/collapsable-d3-dag-layout.ts +330 -0
  258. package/src/layouts/d3-dag/d3-dag-layout.ts +166 -396
  259. package/src/layouts/d3-force/d3-force-layout.ts +52 -30
  260. package/src/layouts/experimental/force-multi-graph-layout.ts +55 -49
  261. package/src/layouts/experimental/hive-plot-layout.ts +41 -42
  262. package/src/layouts/experimental/radial-layout.ts +39 -20
  263. package/src/layouts/gpu-force/gpu-force-layout.ts +72 -70
  264. package/src/layouts/simple-layout.ts +20 -44
  265. package/src/loaders/{create-graph.ts → deprecated/create-graph.ts.disabled} +6 -6
  266. package/src/loaders/deprecated/json-classic-graph-loader.ts.disabled +33 -0
  267. package/src/loaders/{simple-json-graph-loader.ts → deprecated/simple-json-graph-loader.ts.disabled} +3 -3
  268. package/src/loaders/{table-graph-loader.ts → deprecated/table-graph-loader.ts.disabled} +8 -8
  269. package/src/loaders/dot-graph-loader.ts +860 -0
  270. package/src/loaders/json-graph-loader.ts +48 -0
  271. package/src/loaders/parsers/create-graph-data.ts.disabled +45 -0
  272. package/src/loaders/{edge-parsers.ts → parsers/edge-parsers.ts} +2 -2
  273. package/src/loaders/{node-parsers.ts → parsers/node-parsers.ts} +2 -2
  274. package/src/loaders/parsers/parse-json-graph.ts +134 -0
  275. package/src/style/graph-style-engine.ts +5 -2
  276. package/src/style/{style-engine.ts → stylesheet-engine.ts} +3 -3
  277. package/src/utils/collapsed-chains.ts +11 -17
  278. package/src/utils/rank-grid.ts +426 -0
  279. package/dist/loaders/create-graph.d.ts +0 -12
  280. package/dist/loaders/create-graph.d.ts.map +0 -1
  281. package/dist/loaders/create-graph.js +0 -38
  282. package/dist/loaders/create-graph.js.map +0 -1
  283. package/dist/loaders/edge-parsers.d.ts +0 -2
  284. package/dist/loaders/edge-parsers.d.ts.map +0 -1
  285. package/dist/loaders/edge-parsers.js.map +0 -1
  286. package/dist/loaders/json-loader.d.ts +0 -7
  287. package/dist/loaders/json-loader.d.ts.map +0 -1
  288. package/dist/loaders/json-loader.js +0 -16
  289. package/dist/loaders/json-loader.js.map +0 -1
  290. package/dist/loaders/node-parsers.d.ts +0 -2
  291. package/dist/loaders/node-parsers.d.ts.map +0 -1
  292. package/dist/loaders/node-parsers.js.map +0 -1
  293. package/dist/loaders/simple-json-graph-loader.d.ts +0 -11
  294. package/dist/loaders/simple-json-graph-loader.d.ts.map +0 -1
  295. package/dist/loaders/simple-json-graph-loader.js +0 -20
  296. package/dist/loaders/simple-json-graph-loader.js.map +0 -1
  297. package/dist/loaders/table-graph-loader.d.ts +0 -16
  298. package/dist/loaders/table-graph-loader.d.ts.map +0 -1
  299. package/dist/loaders/table-graph-loader.js +0 -91
  300. package/dist/loaders/table-graph-loader.js.map +0 -1
  301. package/dist/style/style-engine.d.ts.map +0 -1
  302. package/dist/style/style-engine.js.map +0 -1
  303. package/dist/widgets/long-press-button.d.ts +0 -12
  304. package/dist/widgets/long-press-button.d.ts.map +0 -1
  305. package/dist/widgets/long-press-button.js +0 -31
  306. package/dist/widgets/long-press-button.js.map +0 -1
  307. package/dist/widgets/view-control-widget.d.ts +0 -77
  308. package/dist/widgets/view-control-widget.d.ts.map +0 -1
  309. package/dist/widgets/view-control-widget.js +0 -197
  310. package/dist/widgets/view-control-widget.js.map +0 -1
  311. package/src/loaders/json-loader.ts +0 -19
  312. package/src/widgets/long-press-button.tsx +0 -50
  313. package/src/widgets/view-control-widget.tsx +0 -339
@@ -0,0 +1,48 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ import type {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';
6
+
7
+ import type {PlainGraphData} from '../graph-data/graph-data';
8
+ // import {PlainGraphDataBuilder} from '../graph-data/plain-graph-data-builder';
9
+
10
+ // __VERSION__ is injected by babel-plugin-version-inline
11
+ // @ts-ignore TS2304: Cannot find name '__VERSION__'.
12
+ const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
13
+
14
+ export type JSONGraphLoaderOptions = LoaderOptions & {
15
+ jsongraph?: {
16
+ };
17
+ };
18
+
19
+ export type JSONGraphParserOptions = NonNullable<JSONGraphLoaderOptions['jsongraph']>;
20
+
21
+ export const JSONGraphLoader = {
22
+ dataType: null as unknown as PlainGraphData,
23
+ batchType: null as never,
24
+
25
+ name: 'DOT Graph',
26
+ id: 'dot-graph',
27
+ module: 'graph-layers',
28
+ version: VERSION,
29
+ worker: false,
30
+ extensions: ['json'],
31
+ mimeTypes: ['application/json'],
32
+ text: true,
33
+ options: {
34
+ 'jsongraph': {
35
+ }
36
+ },
37
+
38
+ parse: async (arrayBuffer: ArrayBuffer, options?: JSONGraphLoaderOptions) => {
39
+ const text = new TextDecoder().decode(arrayBuffer);
40
+ return Promise.resolve(JSONGraphLoader.parseTextSync(text, options));
41
+ },
42
+
43
+ parseTextSync: (text: string, options?: JSONGraphLoaderOptions) => {
44
+ // const parseOptions = {...JSONGraphLoader.options.jsongraph, ...options?.jsongraph};
45
+ throw new Error('JSONGraphLoader.parseTextSync not implemented');
46
+ // return loadSimpleJSONGraph(text, parseOptions);
47
+ }
48
+ } as const satisfies LoaderWithParser<PlainGraphData, never, JSONGraphLoaderOptions>;
@@ -0,0 +1,45 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ import {PlainGraphDataBuilder} from '../graph-data/plain-graph-data-builder';
6
+
7
+ /**
8
+ * @deprecated Use `new ClassicGraph(name, nodes, edges)`
9
+ * Create a graph from a list of Nodes and edges
10
+ */
11
+ export function createGraphData(props: {name; nodes; edges; nodeParser; edgeParser}): ClassicGraph {
12
+ const {name, nodes, edges, nodeParser, edgeParser} = props;
13
+ // create a new empty graph
14
+
15
+ const graphName = name || Date.now();
16
+
17
+ // add nodes
18
+ const glNodes = nodes.map((node) => {
19
+ const {id} = nodeParser(node);
20
+ return new Node({
21
+ id,
22
+ data: node
23
+ });
24
+ });
25
+ graph.batchAddNodes(glNodes);
26
+
27
+ const glEdges = edges.map((edge) => {
28
+ const {id, sourceId, targetId, directed} = edgeParser(edge);
29
+ return new Edge({
30
+ id,
31
+ sourceId,
32
+ targetId,
33
+ directed,
34
+ data: edge
35
+ });
36
+ });
37
+
38
+ return {
39
+ shape: 'plain-graph-data',
40
+ nodes: glNodes,
41
+ edges: glEdges,
42
+
43
+ graphName
44
+ };
45
+ }
@@ -2,8 +2,8 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
- import type {EdgeOptions} from '../graph/edge';
6
- import {error} from '../utils/log';
5
+ import type {EdgeOptions} from '../../graph/edge';
6
+ import {error} from '../../utils/log';
7
7
 
8
8
  export function basicEdgeParser(edge: any): Omit<EdgeOptions, 'data'> {
9
9
  const {id, directed, sourceId, targetId} = edge;
@@ -2,8 +2,8 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
- import type {NodeOptions} from '../graph/node';
6
- import {error} from '../utils/log';
5
+ import type {NodeOptions} from '../../graph/node';
6
+ import {error} from '../../utils/log';
7
7
 
8
8
  export function basicNodeParser(node: any): Pick<NodeOptions, 'id'> {
9
9
  if (node.id === undefined) {
@@ -0,0 +1,134 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ import type {NodeState, EdgeState} from '../../core/constants';
6
+ import type {PlainGraphData, GraphNodeData, GraphEdgeData} from '../../graph-data/graph-data';
7
+ import {PlainGraphDataBuilder} from '../../graph-data/plain-graph-data-builder';
8
+ import {basicNodeParser} from '../parsers/node-parsers';
9
+ import {basicEdgeParser} from '../parsers/edge-parsers';
10
+ import {error} from '../../utils/log';
11
+
12
+ type GraphJSON = {
13
+ version?: number;
14
+ nodes?: unknown[] | null;
15
+ edges?: unknown[] | null;
16
+ };
17
+
18
+ export type ParseJSONGraphOptions = {
19
+ json: GraphJSON;
20
+ nodeParser?: (node: any) => {
21
+ id: string | number;
22
+ state?: NodeState;
23
+ selectable?: boolean;
24
+ highlightConnectedEdges?: boolean;
25
+ label?: string;
26
+ weight?: number;
27
+ } | null;
28
+ edgeParser?: (edge: any) => {
29
+ id: string | number;
30
+ directed?: boolean;
31
+ sourceId: string | number;
32
+ targetId: string | number;
33
+ state?: EdgeState;
34
+ label?: string;
35
+ weight?: number;
36
+ } | null;
37
+ };
38
+
39
+ export function parseJSONGraph({
40
+ json,
41
+ nodeParser = basicNodeParser,
42
+ edgeParser = basicEdgeParser
43
+ }: ParseJSONGraphOptions): PlainGraphData | null {
44
+ const nodes = json?.nodes ?? null;
45
+ const edges = json?.edges ?? null;
46
+ if (!Array.isArray(nodes)) {
47
+ error('Invalid graph: nodes is missing.');
48
+ return null;
49
+ }
50
+
51
+ const normalizedNodes = parseNodes(nodes, nodeParser);
52
+ const normalizedEdges = parseEdges(Array.isArray(edges) ? edges : [], edgeParser);
53
+
54
+ const builder = new PlainGraphDataBuilder({
55
+ // @ts-expect-error TODO: fixme
56
+ nodeCapacity: normalizedNodes.length,
57
+ edgeCapacity: normalizedEdges.length,
58
+ version: json?.version
59
+ });
60
+
61
+ for (const node of normalizedNodes) {
62
+ builder.addNode(node);
63
+ }
64
+
65
+ for (const edge of normalizedEdges) {
66
+ builder.addEdge(edge);
67
+ }
68
+
69
+ return builder.build();
70
+ }
71
+
72
+ function parseNodes(
73
+ nodes: unknown[],
74
+ nodeParser: ParseJSONGraphOptions['nodeParser']
75
+ ): GraphNodeData[] {
76
+ const parsedNodes: GraphNodeData[] = [];
77
+
78
+ for (const node of nodes) {
79
+ const parsed = nodeParser?.(node);
80
+ if (parsed && typeof parsed.id !== 'undefined') {
81
+ const attributes = cloneRecord(node);
82
+ const nodeRecord: GraphNodeData = {
83
+ id: parsed.id,
84
+ state: parsed.state ?? (attributes.state as NodeState | undefined),
85
+ selectable: parsed.selectable ?? (attributes.selectable as boolean | undefined),
86
+ highlightConnectedEdges:
87
+ parsed.highlightConnectedEdges ?? (attributes.highlightConnectedEdges as boolean | undefined),
88
+ label: parsed.label ?? (attributes.label as string | undefined),
89
+ weight: parsed.weight ?? (attributes.weight as number | undefined),
90
+ attributes
91
+ };
92
+ parsedNodes.push(nodeRecord);
93
+ }
94
+ }
95
+
96
+ return parsedNodes;
97
+ }
98
+
99
+ function parseEdges(
100
+ edges: unknown[],
101
+ edgeParser: ParseJSONGraphOptions['edgeParser']
102
+ ): GraphEdgeData[] {
103
+ const handles: GraphEdgeData[] = [];
104
+
105
+ for (const edge of edges) {
106
+ const parsed = edgeParser?.(edge);
107
+ if (
108
+ parsed &&
109
+ typeof parsed.sourceId !== 'undefined' &&
110
+ typeof parsed.targetId !== 'undefined'
111
+ ) {
112
+ const attributes = cloneRecord(edge);
113
+ handles.push({
114
+ id: parsed.id,
115
+ directed: parsed.directed ?? (attributes.directed as boolean | undefined),
116
+ sourceId: parsed.sourceId,
117
+ targetId: parsed.targetId,
118
+ state: parsed.state ?? (attributes.state as EdgeState | undefined),
119
+ label: parsed.label ?? (attributes.label as string | undefined),
120
+ weight: parsed.weight ?? (attributes.weight as number | undefined),
121
+ attributes
122
+ });
123
+ }
124
+ }
125
+
126
+ return handles;
127
+ }
128
+
129
+ function cloneRecord(value: unknown): Record<string, unknown> {
130
+ if (value && typeof value === 'object') {
131
+ return {...(value as Record<string, unknown>)};
132
+ }
133
+ return {};
134
+ }
@@ -6,7 +6,7 @@
6
6
 
7
7
  import {ZodError, type ZodIssue} from 'zod';
8
8
 
9
- import {StyleEngine, type DeckGLUpdateTriggers} from './style-engine';
9
+ import {StylesheetEngine, type DeckGLUpdateTriggers} from './stylesheet-engine';
10
10
  import {
11
11
  GraphStylesheetSchema,
12
12
  type GraphStylesheet,
@@ -39,7 +39,7 @@ function formatStylesheetError(error: ZodError) {
39
39
  return `Invalid graph stylesheet:\n${details}`;
40
40
  }
41
41
 
42
- export class GraphStyleEngine extends StyleEngine {
42
+ export class GraphStylesheetEngine extends StylesheetEngine {
43
43
  constructor(style: GraphStylesheet, {stateUpdateTrigger}: {stateUpdateTrigger?: unknown} = {}) {
44
44
  const result = GraphStylesheetSchema.safeParse(style);
45
45
  const parsedStyle = result.success
@@ -54,6 +54,9 @@ export class GraphStyleEngine extends StyleEngine {
54
54
  }
55
55
  }
56
56
 
57
+ export const GraphStyleEngine = GraphStylesheetEngine;
58
+ export type GraphStyleEngine = GraphStylesheetEngine;
59
+
57
60
  export {
58
61
  GraphStyleScaleTypeEnum,
59
62
  GraphStyleScaleSchema,
@@ -16,7 +16,7 @@ export type StylePropertyConstructor<T extends StyleProperty = StyleProperty> =
16
16
 
17
17
  export type DefaultStyleValueFn = (property: string) => unknown;
18
18
 
19
- export type StyleEngineOptions<T extends StyleProperty = StyleProperty> = {
19
+ export type StylesheetEngineOptions<T extends StyleProperty = StyleProperty> = {
20
20
  deckglAccessorMap: DeckGLAccessorMap;
21
21
  deckglUpdateTriggers?: DeckGLUpdateTriggers;
22
22
  stateUpdateTrigger?: unknown;
@@ -26,7 +26,7 @@ export type StyleEngineOptions<T extends StyleProperty = StyleProperty> = {
26
26
 
27
27
  const DEFAULT_UPDATE_TRIGGERS: DeckGLUpdateTriggers = {};
28
28
 
29
- export class StyleEngine<TStyleProperty extends StyleProperty = StyleProperty> {
29
+ export class StylesheetEngine<TStyleProperty extends StyleProperty = StyleProperty> {
30
30
  type: string;
31
31
  properties: Record<string, TStyleProperty>;
32
32
 
@@ -36,7 +36,7 @@ export class StyleEngine<TStyleProperty extends StyleProperty = StyleProperty> {
36
36
  protected readonly StylePropertyClass: StylePropertyConstructor<TStyleProperty>;
37
37
  protected readonly getDefaultStyleValue: DefaultStyleValueFn;
38
38
 
39
- constructor(style: Record<string, any>, options: StyleEngineOptions<TStyleProperty>) {
39
+ constructor(style: Record<string, any>, options: StylesheetEngineOptions<TStyleProperty>) {
40
40
  const {
41
41
  deckglAccessorMap,
42
42
  deckglUpdateTriggers = DEFAULT_UPDATE_TRIGGERS,
@@ -3,7 +3,7 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
5
  import type {GraphEngine} from '../core/graph-engine';
6
- import type {Node} from '../graph/node';
6
+ import type {NodeInterface} from '../graph/graph';
7
7
 
8
8
  const OUTLINE_PADDING = 24;
9
9
  const OUTLINE_CORNER_RADIUS = 16;
@@ -77,7 +77,7 @@ export function resolveChainInteractionSource(info: any): ChainInteractionSource
77
77
  return 'node';
78
78
  }
79
79
 
80
- function isChainRepresentative(node: Node): boolean {
80
+ function isChainRepresentative(node: NodeInterface): boolean {
81
81
  const chainId = node.getPropertyValue('collapsedChainId');
82
82
  const nodeIds = node.getPropertyValue('collapsedNodeIds');
83
83
  const representativeId = node.getPropertyValue('collapsedChainRepresentativeId');
@@ -90,7 +90,7 @@ function isChainRepresentative(node: Node): boolean {
90
90
  );
91
91
  }
92
92
 
93
- export function getRepresentativeNodes(engine: GraphEngine | null | undefined): Node[] {
93
+ export function getRepresentativeNodes(engine: GraphEngine | null | undefined): NodeInterface[] {
94
94
  if (!engine) {
95
95
  return [];
96
96
  }
@@ -98,18 +98,17 @@ export function getRepresentativeNodes(engine: GraphEngine | null | undefined):
98
98
  return engine.getNodes().filter((node) => isChainRepresentative(node));
99
99
  }
100
100
 
101
- export type ChainOutlineGetter = (node: Node) => [number, number][] | null;
101
+ export type ChainOutlineGetter = (node: NodeInterface) => [number, number][] | null;
102
102
 
103
103
  export function createChainOutlineGetter(engine: GraphEngine | null | undefined): ChainOutlineGetter {
104
104
  if (!engine) {
105
105
  return () => null;
106
106
  }
107
107
 
108
- const graph = engine.props.graph;
109
108
  const cache = new Map<string, [number, number][] | null>();
110
109
 
111
110
  // eslint-disable-next-line max-statements, complexity
112
- return (node: Node): [number, number][] | null => {
111
+ return (node: NodeInterface): [number, number][] | null => {
113
112
  const chainId = node.getPropertyValue('collapsedChainId');
114
113
  if (!chainId) {
115
114
  return null;
@@ -120,11 +119,6 @@ export function createChainOutlineGetter(engine: GraphEngine | null | undefined)
120
119
  return cache.get(cacheKey) ?? null;
121
120
  }
122
121
 
123
- if (!graph) {
124
- cache.set(cacheKey, null);
125
- return null;
126
- }
127
-
128
122
  const collapsedNodeIds = node.getPropertyValue('collapsedNodeIds');
129
123
  if (!Array.isArray(collapsedNodeIds) || collapsedNodeIds.length === 0) {
130
124
  cache.set(cacheKey, null);
@@ -137,7 +131,7 @@ export function createChainOutlineGetter(engine: GraphEngine | null | undefined)
137
131
  let maxY = Number.NEGATIVE_INFINITY;
138
132
 
139
133
  for (const nodeId of collapsedNodeIds) {
140
- const chainNode = graph.findNode(nodeId);
134
+ const chainNode = engine.findNode(nodeId);
141
135
  if (chainNode) {
142
136
  const position = engine.getNodePosition(chainNode);
143
137
  if (position) {
@@ -217,11 +211,11 @@ export function createChainOutlineGetter(engine: GraphEngine | null | undefined)
217
211
  }
218
212
 
219
213
  export interface CollapsedChainLayerData {
220
- representativeNodes: Node[];
221
- collapsedNodes: Node[];
222
- collapsedOutlineNodes: Node[];
223
- expandedNodes: Node[];
224
- expandedOutlineNodes: Node[];
214
+ representativeNodes: NodeInterface[];
215
+ collapsedNodes: NodeInterface[];
216
+ collapsedOutlineNodes: NodeInterface[];
217
+ expandedNodes: NodeInterface[];
218
+ expandedOutlineNodes: NodeInterface[];
225
219
  getChainOutlinePolygon: ChainOutlineGetter;
226
220
  outlineUpdateTrigger: string;
227
221
  }