@deck.gl-community/graph-layers 9.1.1 → 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 (354) 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 +63 -20
  12. package/dist/core/graph-engine.d.ts.map +1 -1
  13. package/dist/core/graph-engine.js +163 -72
  14. package/dist/core/graph-engine.js.map +1 -1
  15. package/dist/core/graph-layout.d.ts +63 -32
  16. package/dist/core/graph-layout.d.ts.map +1 -1
  17. package/dist/core/graph-layout.js +118 -36
  18. package/dist/core/graph-layout.js.map +1 -1
  19. package/dist/core/interaction-manager.d.ts +7 -5
  20. package/dist/core/interaction-manager.d.ts.map +1 -1
  21. package/dist/core/interaction-manager.js +64 -20
  22. package/dist/core/interaction-manager.js.map +1 -1
  23. package/dist/graph/arrow-graph.d.ts +69 -0
  24. package/dist/graph/arrow-graph.d.ts.map +1 -0
  25. package/dist/graph/arrow-graph.js +513 -0
  26. package/dist/graph/arrow-graph.js.map +1 -0
  27. package/dist/graph/classic-graph.d.ts +169 -0
  28. package/dist/graph/classic-graph.d.ts.map +1 -0
  29. package/dist/graph/classic-graph.js +390 -0
  30. package/dist/graph/classic-graph.js.map +1 -0
  31. package/dist/graph/edge.d.ts +12 -12
  32. package/dist/graph/edge.d.ts.map +1 -1
  33. package/dist/graph/edge.js +3 -6
  34. package/dist/graph/edge.js.map +1 -1
  35. package/dist/graph/functions/arrow-utils.d.ts +6 -0
  36. package/dist/graph/functions/arrow-utils.d.ts.map +1 -0
  37. package/dist/graph/functions/arrow-utils.js +67 -0
  38. package/dist/graph/functions/arrow-utils.js.map +1 -0
  39. package/dist/graph/functions/create-graph-from-data.d.ts +3 -0
  40. package/dist/graph/functions/create-graph-from-data.d.ts.map +1 -0
  41. package/dist/graph/functions/create-graph-from-data.js +12 -0
  42. package/dist/graph/functions/create-graph-from-data.js.map +1 -0
  43. package/dist/graph/graph-normalization.d.ts +10 -0
  44. package/dist/graph/graph-normalization.d.ts.map +1 -0
  45. package/dist/graph/graph-normalization.js +65 -0
  46. package/dist/graph/graph-normalization.js.map +1 -0
  47. package/dist/graph/graph.d.ts +62 -156
  48. package/dist/graph/graph.d.ts.map +1 -1
  49. package/dist/graph/graph.js +11 -301
  50. package/dist/graph/graph.js.map +1 -1
  51. package/dist/graph/node.d.ts +12 -13
  52. package/dist/graph/node.d.ts.map +1 -1
  53. package/dist/graph/node.js +5 -7
  54. package/dist/graph/node.js.map +1 -1
  55. package/dist/graph-data/arrow-graph-data-builder.d.ts +21 -0
  56. package/dist/graph-data/arrow-graph-data-builder.d.ts.map +1 -0
  57. package/dist/graph-data/arrow-graph-data-builder.js +105 -0
  58. package/dist/graph-data/arrow-graph-data-builder.js.map +1 -0
  59. package/dist/graph-data/graph-data-builder.d.ts +6 -0
  60. package/dist/graph-data/graph-data-builder.d.ts.map +1 -0
  61. package/dist/graph-data/graph-data-builder.js +1 -0
  62. package/dist/graph-data/graph-data-builder.js.map +1 -0
  63. package/dist/graph-data/graph-data.d.ts +40 -0
  64. package/dist/graph-data/graph-data.d.ts.map +1 -0
  65. package/dist/graph-data/graph-data.js +11 -0
  66. package/dist/graph-data/graph-data.js.map +1 -0
  67. package/dist/graph-data/plain-graph-data-builder.d.ts +20 -0
  68. package/dist/graph-data/plain-graph-data-builder.d.ts.map +1 -0
  69. package/dist/graph-data/plain-graph-data-builder.js +105 -0
  70. package/dist/graph-data/plain-graph-data-builder.js.map +1 -0
  71. package/dist/graph-style-schema.cdn.d.ts +2 -0
  72. package/dist/graph-style-schema.cdn.js +2 -0
  73. package/dist/graph-style-schema.json +12 -0
  74. package/dist/index.cjs +7851 -3250
  75. package/dist/index.cjs.map +4 -4
  76. package/dist/index.d.ts +35 -22
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +42 -25
  79. package/dist/index.js.map +1 -1
  80. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-fragment.glsl.d.ts +0 -1
  81. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-fragment.glsl.js +0 -1
  82. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex-tf.glsl.d.ts +0 -1
  83. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex-tf.glsl.js +0 -1
  84. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex.glsl.d.ts +0 -1
  85. package/dist/layers/common-layers/flow-path-layer/flow-path-layer-vertex.glsl.js +0 -1
  86. package/dist/layers/common-layers/flow-path-layer/flow-path-layer.d.ts +0 -1
  87. package/dist/layers/common-layers/flow-path-layer/flow-path-layer.d.ts.map +1 -1
  88. package/dist/layers/common-layers/flow-path-layer/flow-path-layer.js +1 -3
  89. package/dist/layers/common-layers/flow-path-layer/flow-path-layer.js.map +1 -1
  90. package/dist/layers/common-layers/grid-layer/grid-layer.d.ts +83 -0
  91. package/dist/layers/common-layers/grid-layer/grid-layer.d.ts.map +1 -0
  92. package/dist/layers/common-layers/grid-layer/grid-layer.js +133 -0
  93. package/dist/layers/common-layers/grid-layer/grid-layer.js.map +1 -0
  94. package/dist/layers/common-layers/marker-layer/atlas-data-url.d.ts +0 -1
  95. package/dist/layers/common-layers/marker-layer/atlas-data-url.js +0 -1
  96. package/dist/layers/common-layers/marker-layer/marker-layer.d.ts +0 -1
  97. package/dist/layers/common-layers/marker-layer/marker-layer.js +2 -3
  98. package/dist/layers/common-layers/marker-layer/marker-list.d.ts +2 -63
  99. package/dist/layers/common-layers/marker-layer/marker-list.d.ts.map +1 -1
  100. package/dist/layers/common-layers/marker-layer/marker-list.js +1 -65
  101. package/dist/layers/common-layers/marker-layer/marker-list.js.map +1 -1
  102. package/dist/layers/common-layers/marker-layer/marker-mapping.d.ts +0 -1
  103. package/dist/layers/common-layers/marker-layer/marker-mapping.js +0 -1
  104. package/dist/layers/common-layers/spline-layer/spline-layer.d.ts +0 -1
  105. package/dist/layers/common-layers/spline-layer/spline-layer.js +0 -1
  106. package/dist/layers/common-layers/zoomable-text-layer/zoomable-text-layer.d.ts +0 -1
  107. package/dist/layers/common-layers/zoomable-text-layer/zoomable-text-layer.js +0 -1
  108. package/dist/layers/edge-attachment-helper.d.ts +15 -0
  109. package/dist/layers/edge-attachment-helper.d.ts.map +1 -0
  110. package/dist/layers/edge-attachment-helper.js +229 -0
  111. package/dist/layers/edge-attachment-helper.js.map +1 -0
  112. package/dist/layers/edge-layer.d.ts +1 -5
  113. package/dist/layers/edge-layer.d.ts.map +1 -1
  114. package/dist/layers/edge-layer.js +9 -11
  115. package/dist/layers/edge-layer.js.map +1 -1
  116. package/dist/layers/edge-layers/arrow-2d-geometry.d.ts +4 -0
  117. package/dist/layers/edge-layers/arrow-2d-geometry.d.ts.map +1 -0
  118. package/dist/layers/edge-layers/arrow-2d-geometry.js +42 -0
  119. package/dist/layers/edge-layers/arrow-2d-geometry.js.map +1 -0
  120. package/dist/layers/edge-layers/curved-edge-layer.d.ts +1 -2
  121. package/dist/layers/edge-layers/curved-edge-layer.js +1 -2
  122. package/dist/layers/edge-layers/edge-arrow-layer.d.ts +21 -0
  123. package/dist/layers/edge-layers/edge-arrow-layer.d.ts.map +1 -0
  124. package/dist/layers/edge-layers/edge-arrow-layer.js +131 -0
  125. package/dist/layers/edge-layers/edge-arrow-layer.js.map +1 -0
  126. package/dist/layers/edge-layers/edge-label-layer.d.ts +1 -2
  127. package/dist/layers/edge-layers/edge-label-layer.js +1 -2
  128. package/dist/layers/edge-layers/flow-layer.d.ts +1 -2
  129. package/dist/layers/edge-layers/flow-layer.js +1 -2
  130. package/dist/layers/edge-layers/path-edge-layer.d.ts +0 -1
  131. package/dist/layers/edge-layers/path-edge-layer.js +0 -1
  132. package/dist/layers/edge-layers/straight-line-edge-layer.d.ts +0 -1
  133. package/dist/layers/edge-layers/straight-line-edge-layer.js +0 -1
  134. package/dist/layers/graph-layer.d.ts +85 -29
  135. package/dist/layers/graph-layer.d.ts.map +1 -1
  136. package/dist/layers/graph-layer.js +635 -94
  137. package/dist/layers/graph-layer.js.map +1 -1
  138. package/dist/layers/node-layers/circle-layer.d.ts +0 -1
  139. package/dist/layers/node-layers/circle-layer.js +0 -1
  140. package/dist/layers/node-layers/image-layer.d.ts +0 -1
  141. package/dist/layers/node-layers/image-layer.js +0 -1
  142. package/dist/layers/node-layers/label-layer.d.ts +1 -2
  143. package/dist/layers/node-layers/label-layer.js +1 -2
  144. package/dist/layers/node-layers/path-rounded-rectangle-layer.d.ts +0 -1
  145. package/dist/layers/node-layers/path-rounded-rectangle-layer.js +1 -2
  146. package/dist/layers/node-layers/rectangle-layer.d.ts +0 -1
  147. package/dist/layers/node-layers/rectangle-layer.js +0 -1
  148. package/dist/layers/node-layers/rounded-rectangle-layer-fragment.d.ts +0 -1
  149. package/dist/layers/node-layers/rounded-rectangle-layer-fragment.js +0 -1
  150. package/dist/layers/node-layers/rounded-rectangle-layer.d.ts +1 -2
  151. package/dist/layers/node-layers/rounded-rectangle-layer.js +2 -3
  152. package/dist/layers/node-layers/zoomable-marker-layer.d.ts +1 -2
  153. package/dist/layers/node-layers/zoomable-marker-layer.js +1 -2
  154. package/dist/layouts/d3-dag/collapsable-d3-dag-layout.d.ts +24 -0
  155. package/dist/layouts/d3-dag/collapsable-d3-dag-layout.d.ts.map +1 -0
  156. package/dist/layouts/d3-dag/collapsable-d3-dag-layout.js +251 -0
  157. package/dist/layouts/d3-dag/collapsable-d3-dag-layout.js.map +1 -0
  158. package/dist/layouts/d3-dag/d3-dag-layout.d.ts +102 -0
  159. package/dist/layouts/d3-dag/d3-dag-layout.d.ts.map +1 -0
  160. package/dist/layouts/d3-dag/d3-dag-layout.js +531 -0
  161. package/dist/layouts/d3-dag/d3-dag-layout.js.map +1 -0
  162. package/dist/layouts/d3-force/d3-force-layout.d.ts +23 -11
  163. package/dist/layouts/d3-force/d3-force-layout.d.ts.map +1 -1
  164. package/dist/layouts/d3-force/d3-force-layout.js +63 -29
  165. package/dist/layouts/d3-force/d3-force-layout.js.map +1 -1
  166. package/dist/layouts/d3-force/worker.d.ts +0 -1
  167. package/dist/layouts/d3-force/worker.js +0 -1
  168. package/dist/layouts/experimental/force-multi-graph-layout.d.ts +25 -20
  169. package/dist/layouts/experimental/force-multi-graph-layout.d.ts.map +1 -1
  170. package/dist/layouts/experimental/force-multi-graph-layout.js +60 -47
  171. package/dist/layouts/experimental/force-multi-graph-layout.js.map +1 -1
  172. package/dist/layouts/experimental/hive-plot-layout.d.ts +26 -20
  173. package/dist/layouts/experimental/hive-plot-layout.d.ts.map +1 -1
  174. package/dist/layouts/experimental/hive-plot-layout.js +43 -39
  175. package/dist/layouts/experimental/hive-plot-layout.js.map +1 -1
  176. package/dist/layouts/experimental/radial-layout.d.ts +20 -12
  177. package/dist/layouts/experimental/radial-layout.d.ts.map +1 -1
  178. package/dist/layouts/experimental/radial-layout.js +41 -19
  179. package/dist/layouts/experimental/radial-layout.js.map +1 -1
  180. package/dist/layouts/gpu-force/gpu-force-layout.d.ts +15 -12
  181. package/dist/layouts/gpu-force/gpu-force-layout.d.ts.map +1 -1
  182. package/dist/layouts/gpu-force/gpu-force-layout.js +71 -59
  183. package/dist/layouts/gpu-force/gpu-force-layout.js.map +1 -1
  184. package/dist/layouts/gpu-force/worker.d.ts +0 -1
  185. package/dist/layouts/gpu-force/worker.js +0 -1
  186. package/dist/layouts/simple-layout.d.ts +21 -31
  187. package/dist/layouts/simple-layout.d.ts.map +1 -1
  188. package/dist/layouts/simple-layout.js +33 -26
  189. package/dist/layouts/simple-layout.js.map +1 -1
  190. package/dist/loaders/dot-graph-loader.d.ts +25 -0
  191. package/dist/loaders/dot-graph-loader.d.ts.map +1 -0
  192. package/dist/loaders/dot-graph-loader.js +668 -0
  193. package/dist/loaders/dot-graph-loader.js.map +1 -0
  194. package/dist/loaders/json-graph-loader.d.ts +6 -0
  195. package/dist/loaders/json-graph-loader.d.ts.map +1 -0
  196. package/dist/loaders/json-graph-loader.js +31 -0
  197. package/dist/loaders/json-graph-loader.js.map +1 -0
  198. package/dist/loaders/parsers/edge-parsers.d.ts +2 -0
  199. package/dist/loaders/parsers/edge-parsers.d.ts.map +1 -0
  200. package/dist/loaders/{edge-parsers.js → parsers/edge-parsers.js} +2 -3
  201. package/dist/loaders/parsers/edge-parsers.js.map +1 -0
  202. package/dist/loaders/parsers/node-parsers.d.ts +2 -0
  203. package/dist/loaders/parsers/node-parsers.d.ts.map +1 -0
  204. package/dist/loaders/{node-parsers.js → parsers/node-parsers.js} +2 -3
  205. package/dist/loaders/parsers/node-parsers.js.map +1 -0
  206. package/dist/loaders/parsers/parse-json-graph.d.ts +29 -0
  207. package/dist/loaders/parsers/parse-json-graph.d.ts.map +1 -0
  208. package/dist/loaders/parsers/parse-json-graph.js +78 -0
  209. package/dist/loaders/parsers/parse-json-graph.js.map +1 -0
  210. package/dist/style/graph-layer-stylesheet.d.ts +34 -0
  211. package/dist/style/graph-layer-stylesheet.d.ts.map +1 -0
  212. package/dist/style/graph-layer-stylesheet.js +39 -0
  213. package/dist/style/graph-layer-stylesheet.js.map +1 -0
  214. package/dist/style/graph-style-accessor-map.d.ts +93 -0
  215. package/dist/style/graph-style-accessor-map.d.ts.map +1 -0
  216. package/dist/style/graph-style-accessor-map.js +93 -0
  217. package/dist/style/graph-style-accessor-map.js.map +1 -0
  218. package/dist/style/graph-style-engine.d.ts +12 -0
  219. package/dist/style/graph-style-engine.d.ts.map +1 -0
  220. package/dist/style/graph-style-engine.js +164 -0
  221. package/dist/style/graph-style-engine.js.map +1 -0
  222. package/dist/style/graph-stylesheet.schema.d.ts +310 -0
  223. package/dist/style/graph-stylesheet.schema.d.ts.map +1 -0
  224. package/dist/style/graph-stylesheet.schema.js +237 -0
  225. package/dist/style/graph-stylesheet.schema.js.map +1 -0
  226. package/dist/style/style-property.d.ts +2 -3
  227. package/dist/style/style-property.d.ts.map +1 -1
  228. package/dist/style/style-property.js +224 -48
  229. package/dist/style/style-property.js.map +1 -1
  230. package/dist/style/stylesheet-engine.d.ts +33 -0
  231. package/dist/style/stylesheet-engine.d.ts.map +1 -0
  232. package/dist/style/stylesheet-engine.js +121 -0
  233. package/dist/style/stylesheet-engine.js.map +1 -0
  234. package/dist/utils/collapsed-chains.d.ts +17 -0
  235. package/dist/utils/collapsed-chains.d.ts.map +1 -0
  236. package/dist/utils/collapsed-chains.js +192 -0
  237. package/dist/utils/collapsed-chains.js.map +1 -0
  238. package/dist/utils/layer-utils.d.ts +0 -1
  239. package/dist/utils/layer-utils.d.ts.map +1 -1
  240. package/dist/utils/layer-utils.js +0 -1
  241. package/dist/utils/log.d.ts +2 -1
  242. package/dist/utils/log.d.ts.map +1 -1
  243. package/dist/utils/log.js +12 -2
  244. package/dist/utils/log.js.map +1 -1
  245. package/dist/utils/node-boundary.d.ts +10 -0
  246. package/dist/utils/node-boundary.d.ts.map +1 -0
  247. package/dist/utils/node-boundary.js +130 -0
  248. package/dist/utils/node-boundary.js.map +1 -0
  249. package/dist/utils/polygon-calculations.d.ts +0 -1
  250. package/dist/utils/polygon-calculations.js +0 -1
  251. package/dist/utils/rank-grid.d.ts +30 -0
  252. package/dist/utils/rank-grid.d.ts.map +1 -0
  253. package/dist/utils/rank-grid.js +306 -0
  254. package/dist/utils/rank-grid.js.map +1 -0
  255. package/package.json +25 -13
  256. package/src/_deprecated/old-constants.ts +122 -0
  257. package/src/_disabled/arrow-graph-data.ts.disabled +18 -0
  258. package/src/_disabled/columnar-graph-data-builder.ts.disabled +250 -0
  259. package/src/_disabled/graph-runtime-layout.ts.disabled +29 -0
  260. package/src/core/constants.ts +21 -43
  261. package/src/core/graph-engine.ts +212 -80
  262. package/src/core/graph-layout.ts +175 -47
  263. package/src/core/interaction-manager.ts +93 -33
  264. package/src/graph/arrow-graph.ts +648 -0
  265. package/src/graph/classic-graph.ts +447 -0
  266. package/src/graph/edge.ts +13 -13
  267. package/src/graph/functions/arrow-utils.ts +72 -0
  268. package/src/graph/functions/convert-arrow-graph-to-classic-graph.ts.disabled +47 -0
  269. package/src/graph/functions/convert-plain-graph-to-arrow-graph.ts.disabled +119 -0
  270. package/src/graph/functions/create-graph-from-data.ts +16 -0
  271. package/src/graph/functions/create-plain-graph-from-data.ts.disabled +176 -0
  272. package/src/graph/graph-normalization.ts +87 -0
  273. package/src/graph/graph.ts +68 -339
  274. package/src/graph/node.ts +15 -15
  275. package/src/graph/tabular-graph.ts.disabled +761 -0
  276. package/src/graph-data/arrow-graph-data-builder.ts +165 -0
  277. package/src/graph-data/graph-data-builder.ts +7 -0
  278. package/src/graph-data/graph-data.ts +57 -0
  279. package/src/graph-data/plain-graph-data-builder.ts +132 -0
  280. package/src/index.ts +82 -17
  281. package/src/layers/common-layers/flow-path-layer/flow-path-layer.ts +1 -2
  282. package/src/layers/common-layers/grid-layer/grid-layer.ts +237 -0
  283. package/src/layers/common-layers/marker-layer/marker-list.ts +62 -64
  284. package/src/layers/edge-attachment-helper.ts +361 -0
  285. package/src/layers/edge-layer.ts +6 -7
  286. package/src/layers/edge-layers/arrow-2d-geometry.ts +51 -0
  287. package/src/layers/edge-layers/edge-arrow-layer.ts +171 -0
  288. package/src/layers/graph-layer.ts +928 -130
  289. package/src/layouts/d3-dag/collapsable-d3-dag-layout.ts +330 -0
  290. package/src/layouts/d3-dag/d3-dag-layout.ts +739 -0
  291. package/src/layouts/d3-force/d3-force-layout.ts +83 -39
  292. package/src/layouts/experimental/force-multi-graph-layout.ts +72 -57
  293. package/src/layouts/experimental/hive-plot-layout.ts +60 -49
  294. package/src/layouts/experimental/radial-layout.ts +57 -26
  295. package/src/layouts/gpu-force/gpu-force-layout.ts +86 -72
  296. package/src/layouts/simple-layout.ts +51 -52
  297. package/src/loaders/{create-graph.ts → deprecated/create-graph.ts.disabled} +6 -6
  298. package/src/loaders/deprecated/json-classic-graph-loader.ts.disabled +33 -0
  299. package/src/loaders/{simple-json-graph-loader.ts → deprecated/simple-json-graph-loader.ts.disabled} +4 -4
  300. package/src/loaders/{table-graph-loader.ts → deprecated/table-graph-loader.ts.disabled} +9 -9
  301. package/src/loaders/dot-graph-loader.ts +860 -0
  302. package/src/loaders/json-graph-loader.ts +48 -0
  303. package/src/loaders/parsers/create-graph-data.ts.disabled +45 -0
  304. package/src/loaders/{edge-parsers.ts → parsers/edge-parsers.ts} +3 -3
  305. package/src/loaders/{node-parsers.ts → parsers/node-parsers.ts} +3 -3
  306. package/src/loaders/parsers/parse-json-graph.ts +134 -0
  307. package/src/style/graph-layer-stylesheet.ts +99 -0
  308. package/src/style/graph-style-accessor-map.ts +103 -0
  309. package/src/style/graph-style-engine.ts +232 -0
  310. package/src/style/graph-stylesheet.schema.ts +344 -0
  311. package/src/style/style-property.ts +314 -51
  312. package/src/style/stylesheet-engine.ts +168 -0
  313. package/src/utils/collapsed-chains.ts +255 -0
  314. package/src/utils/log.ts +15 -1
  315. package/src/utils/node-boundary.ts +238 -0
  316. package/src/utils/rank-grid.ts +426 -0
  317. package/dist/loaders/create-graph.d.ts +0 -13
  318. package/dist/loaders/create-graph.d.ts.map +0 -1
  319. package/dist/loaders/create-graph.js +0 -39
  320. package/dist/loaders/create-graph.js.map +0 -1
  321. package/dist/loaders/edge-parsers.d.ts +0 -3
  322. package/dist/loaders/edge-parsers.d.ts.map +0 -1
  323. package/dist/loaders/edge-parsers.js.map +0 -1
  324. package/dist/loaders/json-loader.d.ts +0 -8
  325. package/dist/loaders/json-loader.d.ts.map +0 -1
  326. package/dist/loaders/json-loader.js +0 -17
  327. package/dist/loaders/json-loader.js.map +0 -1
  328. package/dist/loaders/node-parsers.d.ts +0 -3
  329. package/dist/loaders/node-parsers.d.ts.map +0 -1
  330. package/dist/loaders/node-parsers.js.map +0 -1
  331. package/dist/loaders/simple-json-graph-loader.d.ts +0 -12
  332. package/dist/loaders/simple-json-graph-loader.d.ts.map +0 -1
  333. package/dist/loaders/simple-json-graph-loader.js +0 -21
  334. package/dist/loaders/simple-json-graph-loader.js.map +0 -1
  335. package/dist/loaders/table-graph-loader.d.ts +0 -17
  336. package/dist/loaders/table-graph-loader.d.ts.map +0 -1
  337. package/dist/loaders/table-graph-loader.js +0 -92
  338. package/dist/loaders/table-graph-loader.js.map +0 -1
  339. package/dist/style/style-sheet.d.ts +0 -11
  340. package/dist/style/style-sheet.d.ts.map +0 -1
  341. package/dist/style/style-sheet.js +0 -253
  342. package/dist/style/style-sheet.js.map +0 -1
  343. package/dist/widgets/long-press-button.d.ts +0 -13
  344. package/dist/widgets/long-press-button.d.ts.map +0 -1
  345. package/dist/widgets/long-press-button.js +0 -32
  346. package/dist/widgets/long-press-button.js.map +0 -1
  347. package/dist/widgets/view-control-widget.d.ts +0 -78
  348. package/dist/widgets/view-control-widget.d.ts.map +0 -1
  349. package/dist/widgets/view-control-widget.js +0 -195
  350. package/dist/widgets/view-control-widget.js.map +0 -1
  351. package/src/loaders/json-loader.ts +0 -19
  352. package/src/style/style-sheet.ts +0 -277
  353. package/src/widgets/long-press-button.tsx +0 -50
  354. package/src/widgets/view-control-widget.tsx +0 -337
@@ -0,0 +1,361 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ import type {InteractionManager} from '../core/interaction-manager';
6
+ import type {GraphEngine} from '../core/graph-engine';
7
+ import type {NodeInterface} from '../graph/graph';
8
+
9
+ import {
10
+ GraphStylesheetEngine,
11
+ type GraphStylesheet
12
+ } from '../style/graph-style-engine';
13
+ import type {GraphLayerNodeStyle} from '../style/graph-layer-stylesheet';
14
+ import {getNodeBoundaryIntersection, type GeometryNodeType, type NodeGeometry} from '../utils/node-boundary';
15
+ import {warn} from '../utils/log';
16
+
17
+ type NumericAccessor = ((node: NodeInterface) => number) | number | null | undefined;
18
+ type OffsetAccessor =
19
+ | ((node: NodeInterface) => [number, number])
20
+ | [number, number]
21
+ | null
22
+ | undefined;
23
+
24
+ type NodeStyleAccessors = {
25
+ type: GeometryNodeType;
26
+ getOffset?: OffsetAccessor;
27
+ getRadius?: NumericAccessor;
28
+ getWidth?: NumericAccessor;
29
+ getHeight?: NumericAccessor;
30
+ getCornerRadius?: NumericAccessor;
31
+ getSize?: NumericAccessor;
32
+ };
33
+
34
+ const GEOMETRY_NODE_TYPES: GeometryNodeType[] = [
35
+ 'circle',
36
+ 'rectangle',
37
+ 'rounded-rectangle',
38
+ 'path-rounded-rectangle',
39
+ 'marker'
40
+ ];
41
+
42
+ function evaluateNumericAccessor(accessor: NumericAccessor, node: NodeInterface): number | undefined {
43
+ if (typeof accessor === 'function') {
44
+ const value = accessor(node);
45
+ return typeof value === 'number' && Number.isFinite(value) ? value : undefined;
46
+ }
47
+ if (typeof accessor === 'number' && Number.isFinite(accessor)) {
48
+ return accessor;
49
+ }
50
+ return undefined;
51
+ }
52
+
53
+ function evaluateOffsetAccessor(accessor: OffsetAccessor, node: NodeInterface): [number, number] {
54
+ if (!accessor) {
55
+ return [0, 0];
56
+ }
57
+
58
+ let value = accessor as [number, number];
59
+ if (typeof accessor === 'function') {
60
+ value = accessor(node);
61
+ }
62
+
63
+ if (Array.isArray(value) && value.length >= 2) {
64
+ const offsetX = Number(value[0]);
65
+ const offsetY = Number(value[1]);
66
+ if (Number.isFinite(offsetX) && Number.isFinite(offsetY)) {
67
+ return [offsetX, offsetY];
68
+ }
69
+ }
70
+
71
+ return [0, 0];
72
+ }
73
+
74
+ function normalizePosition(value: any): [number, number] | null {
75
+ if (!value || typeof value !== 'object') {
76
+ return null;
77
+ }
78
+
79
+ const candidate = value as {length?: number; [index: number]: number};
80
+ if (typeof candidate.length === 'number' && candidate.length >= 2) {
81
+ const x = Number(candidate[0]);
82
+ const y = Number(candidate[1]);
83
+ if (Number.isFinite(x) && Number.isFinite(y)) {
84
+ return [x, y];
85
+ }
86
+ }
87
+
88
+ return null;
89
+ }
90
+
91
+ function resolveAccessorValue(accessor: NumericAccessor | undefined, node: NodeInterface) {
92
+ if (!accessor) {
93
+ return undefined;
94
+ }
95
+ return evaluateNumericAccessor(accessor, node);
96
+ }
97
+
98
+ function assignDimension(
99
+ geometry: NodeGeometry,
100
+ key: 'radius' | 'width' | 'height' | 'cornerRadius',
101
+ value: number | undefined
102
+ ) {
103
+ if (typeof value === 'number' && Number.isFinite(value)) {
104
+ geometry[key] = Math.max(value, 0);
105
+ }
106
+ }
107
+
108
+ function assignRectangleDimensions(
109
+ node: NodeInterface,
110
+ accessors: NodeStyleAccessors,
111
+ geometry: NodeGeometry
112
+ ) {
113
+ assignDimension(geometry, 'width', resolveAccessorValue(accessors.getWidth, node));
114
+ assignDimension(geometry, 'height', resolveAccessorValue(accessors.getHeight, node));
115
+ }
116
+
117
+ const GEOMETRY_APPLIERS: Record<
118
+ GeometryNodeType,
119
+ (node: NodeInterface, accessors: NodeStyleAccessors, geometry: NodeGeometry) => void
120
+ > = {
121
+ circle: (node, accessors, geometry) => {
122
+ assignDimension(geometry, 'radius', resolveAccessorValue(accessors.getRadius, node));
123
+ },
124
+ marker: (node, accessors, geometry) => {
125
+ const size = resolveAccessorValue(accessors.getSize, node);
126
+ assignDimension(geometry, 'radius', typeof size === 'number' ? size / 2 : undefined);
127
+ },
128
+ rectangle: (node, accessors, geometry) => {
129
+ assignRectangleDimensions(node, accessors, geometry);
130
+ },
131
+ 'rounded-rectangle': (node, accessors, geometry) => {
132
+ assignRectangleDimensions(node, accessors, geometry);
133
+ assignDimension(geometry, 'cornerRadius', resolveAccessorValue(accessors.getCornerRadius, node));
134
+ assignDimension(geometry, 'radius', resolveAccessorValue(accessors.getRadius, node));
135
+ },
136
+ 'path-rounded-rectangle': (node, accessors, geometry) => {
137
+ assignRectangleDimensions(node, accessors, geometry);
138
+ assignDimension(geometry, 'cornerRadius', resolveAccessorValue(accessors.getCornerRadius, node));
139
+ }
140
+ };
141
+
142
+ export class EdgeAttachmentHelper {
143
+ getLayoutAccessor({
144
+ engine,
145
+ interactionManager,
146
+ nodeStyle
147
+ }: {
148
+ engine: GraphEngine;
149
+ interactionManager: InteractionManager;
150
+ nodeStyle?: GraphLayerNodeStyle[] | GraphLayerNodeStyle;
151
+ }) {
152
+ const nodeAccessorMap = this._buildNodeStyleAccessorMap({
153
+ engine,
154
+ interactionManager,
155
+ nodeStyle
156
+ });
157
+
158
+ if (nodeAccessorMap.size === 0) {
159
+ return (edge: any) => engine.getEdgePosition(edge);
160
+ }
161
+
162
+ const nodeMap = engine
163
+ .getNodes()
164
+ .reduce(
165
+ (acc, node) => acc.set(node.getId(), node),
166
+ new Map<string | number, NodeInterface>()
167
+ );
168
+
169
+ return (edge: any) =>
170
+ this._getAdjustedEdgeLayout(engine, nodeAccessorMap, nodeMap, edge);
171
+ }
172
+
173
+ private _buildNodeStyleAccessorMap({
174
+ engine,
175
+ interactionManager,
176
+ nodeStyle
177
+ }: {
178
+ engine: GraphEngine;
179
+ interactionManager: InteractionManager;
180
+ nodeStyle?: GraphLayerNodeStyle[] | GraphLayerNodeStyle;
181
+ }) {
182
+ const nodeAccessorMap = new Map<string | number, NodeStyleAccessors>();
183
+
184
+ if (!nodeStyle) {
185
+ return nodeAccessorMap;
186
+ }
187
+
188
+ const styles = Array.isArray(nodeStyle) ? nodeStyle : [nodeStyle];
189
+
190
+ styles
191
+ .filter(Boolean)
192
+ .forEach((style) => {
193
+ const {data = (nodes) => nodes, ...restStyle} = style;
194
+ const type = restStyle.type;
195
+
196
+ if (!type || !GEOMETRY_NODE_TYPES.includes(type as GeometryNodeType)) {
197
+ return;
198
+ }
199
+
200
+ let stylesheet: GraphStylesheetEngine | null = null;
201
+ try {
202
+ stylesheet = engine.createStylesheetEngine(restStyle as GraphStylesheet, {
203
+ stateUpdateTrigger: (interactionManager as any).getLastInteraction()
204
+ });
205
+ } catch (error) {
206
+ warn(
207
+ `GraphLayer: Failed to evaluate node stylesheet for edge attachment (${String(
208
+ (error as Error).message ?? error
209
+ )}).`
210
+ );
211
+ return;
212
+ }
213
+
214
+ const nodes = data(engine.getNodes());
215
+ if (!Array.isArray(nodes)) {
216
+ return;
217
+ }
218
+
219
+ const geometryType = type as GeometryNodeType;
220
+ const accessors = this._createAccessorsForType(geometryType, stylesheet);
221
+
222
+ nodes.forEach((node: NodeInterface) => {
223
+ const id = node.getId();
224
+ if (!nodeAccessorMap.has(id)) {
225
+ nodeAccessorMap.set(id, accessors);
226
+ }
227
+ });
228
+ });
229
+
230
+ return nodeAccessorMap;
231
+ }
232
+
233
+ private _getAdjustedEdgeLayout(
234
+ engine: GraphEngine,
235
+ nodeAccessorMap: Map<string | number, NodeStyleAccessors>,
236
+ nodeMap: Map<string | number, NodeInterface>,
237
+ edge: any
238
+ ) {
239
+ const layoutInfo = engine.getEdgePosition(edge);
240
+ if (!layoutInfo) {
241
+ return layoutInfo;
242
+ }
243
+
244
+ const sourceNode = nodeMap.get(edge.getSourceNodeId());
245
+ const targetNode = nodeMap.get(edge.getTargetNodeId());
246
+
247
+ if (!sourceNode || !targetNode) {
248
+ return layoutInfo;
249
+ }
250
+
251
+ const sourceGeometry = this._computeNodeGeometry(
252
+ engine,
253
+ sourceNode,
254
+ nodeAccessorMap.get(sourceNode.getId())
255
+ );
256
+ const targetGeometry = this._computeNodeGeometry(
257
+ engine,
258
+ targetNode,
259
+ nodeAccessorMap.get(targetNode.getId())
260
+ );
261
+
262
+ if (!sourceGeometry && !targetGeometry) {
263
+ return layoutInfo;
264
+ }
265
+
266
+ return this._applyGeometryToLayout(layoutInfo, sourceGeometry, targetGeometry);
267
+ }
268
+
269
+ private _applyGeometryToLayout(
270
+ layoutInfo: any,
271
+ sourceGeometry: NodeGeometry | null,
272
+ targetGeometry: NodeGeometry | null
273
+ ) {
274
+ const adjustedLayout = {...layoutInfo};
275
+
276
+ const targetReference = targetGeometry?.center ?? normalizePosition(layoutInfo.targetPosition);
277
+ const sourceReference = sourceGeometry?.center ?? normalizePosition(layoutInfo.sourcePosition);
278
+
279
+ if (sourceGeometry) {
280
+ adjustedLayout.sourcePosition = targetReference
281
+ ? getNodeBoundaryIntersection(sourceGeometry, targetReference)
282
+ : [...sourceGeometry.center];
283
+ }
284
+
285
+ if (targetGeometry) {
286
+ adjustedLayout.targetPosition = sourceReference
287
+ ? getNodeBoundaryIntersection(targetGeometry, sourceReference)
288
+ : [...targetGeometry.center];
289
+ }
290
+
291
+ return adjustedLayout;
292
+ }
293
+
294
+ private _createAccessorsForType(
295
+ geometryType: GeometryNodeType,
296
+ stylesheet: GraphStylesheetEngine
297
+ ): NodeStyleAccessors {
298
+ const base: NodeStyleAccessors = {
299
+ type: geometryType,
300
+ getOffset: stylesheet.getDeckGLAccessor('getOffset')
301
+ };
302
+
303
+ switch (geometryType) {
304
+ case 'circle':
305
+ base.getRadius = stylesheet.getDeckGLAccessor('getRadius');
306
+ break;
307
+ case 'marker':
308
+ base.getSize = stylesheet.getDeckGLAccessor('getSize');
309
+ break;
310
+ case 'rectangle':
311
+ base.getWidth = stylesheet.getDeckGLAccessor('getWidth');
312
+ base.getHeight = stylesheet.getDeckGLAccessor('getHeight');
313
+ break;
314
+ case 'rounded-rectangle':
315
+ base.getWidth = stylesheet.getDeckGLAccessor('getWidth');
316
+ base.getHeight = stylesheet.getDeckGLAccessor('getHeight');
317
+ base.getCornerRadius = stylesheet.getDeckGLAccessor('getCornerRadius');
318
+ base.getRadius = stylesheet.getDeckGLAccessor('getRadius');
319
+ break;
320
+ case 'path-rounded-rectangle':
321
+ base.getWidth = stylesheet.getDeckGLAccessor('getWidth');
322
+ base.getHeight = stylesheet.getDeckGLAccessor('getHeight');
323
+ base.getCornerRadius = stylesheet.getDeckGLAccessor('getCornerRadius');
324
+ break;
325
+ default:
326
+ break;
327
+ }
328
+
329
+ return base;
330
+ }
331
+
332
+ private _computeNodeGeometry(
333
+ engine: GraphEngine,
334
+ node: NodeInterface,
335
+ accessors?: NodeStyleAccessors
336
+ ): NodeGeometry | null {
337
+ const basePosition = engine.getNodePosition(node);
338
+ if (!basePosition) {
339
+ return null;
340
+ }
341
+
342
+ const offset = evaluateOffsetAccessor(accessors?.getOffset, node);
343
+ const center: [number, number] = [basePosition[0] + offset[0], basePosition[1] + offset[1]];
344
+
345
+ const geometry: NodeGeometry = {
346
+ type: accessors?.type,
347
+ center
348
+ };
349
+
350
+ if (!accessors || !accessors.type) {
351
+ return geometry;
352
+ }
353
+
354
+ const applier = GEOMETRY_APPLIERS[accessors.type];
355
+ if (applier) {
356
+ applier(node, accessors, geometry);
357
+ }
358
+
359
+ return geometry;
360
+ }
361
+ }
@@ -4,15 +4,14 @@
4
4
 
5
5
  import {COORDINATE_SYSTEM, CompositeLayer} from '@deck.gl/core';
6
6
 
7
- import {EDGE_TYPE} from '../core/constants';
8
7
  import {StraightLineEdgeLayer} from '../layers/edge-layers/straight-line-edge-layer';
9
8
  import {PathEdgeLayer} from './edge-layers/path-edge-layer';
10
9
  import {CurvedEdgeLayer} from './edge-layers/curved-edge-layer';
11
10
 
12
11
  const EDGE_LAYER_MAP = {
13
- [EDGE_TYPE.LINE]: StraightLineEdgeLayer,
14
- [EDGE_TYPE.PATH]: PathEdgeLayer,
15
- [EDGE_TYPE.SPLINE_CURVE]: CurvedEdgeLayer
12
+ 'line': StraightLineEdgeLayer,
13
+ 'path': PathEdgeLayer,
14
+ 'spline-curve': CurvedEdgeLayer
16
15
  };
17
16
 
18
17
  export class EdgeLayer extends CompositeLayer {
@@ -47,9 +46,9 @@ export class EdgeLayer extends CompositeLayer {
47
46
  return res;
48
47
  },
49
48
  {
50
- [EDGE_TYPE.LINE]: [],
51
- [EDGE_TYPE.PATH]: [],
52
- [EDGE_TYPE.SPLINE_CURVE]: []
49
+ 'line': [],
50
+ 'path': [],
51
+ 'spline-curve': []
53
52
  }
54
53
  );
55
54
  this.setState({typedEdgeData});
@@ -0,0 +1,51 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ import {Geometry} from '@luma.gl/engine';
6
+
7
+ // Mirror of the arrow geometry used by PathMarkerLayer, but only the head triangle.
8
+ export class Arrow2DGeometry extends Geometry {
9
+ constructor(opts = {}) {
10
+ super(
11
+ Object.assign({}, opts, {
12
+ attributes: getArrowAttributes(opts),
13
+ topology: 'triangle-list' as const
14
+ })
15
+ );
16
+ }
17
+ }
18
+
19
+ function getArrowAttributes({length = 1, headWidth = 1}) {
20
+ const halfLength = length / 2;
21
+ const halfWidth = headWidth / 2;
22
+
23
+ const positions = new Float32Array([
24
+ 0,
25
+ halfLength,
26
+ 0,
27
+ -halfWidth,
28
+ -halfLength,
29
+ 0,
30
+ halfWidth,
31
+ -halfLength,
32
+ 0
33
+ ]);
34
+
35
+ const normals = new Float32Array([0, 0, 1, 0, 0, 1, 0, 0, 1]);
36
+
37
+ const texCoords = new Float32Array([
38
+ 0.5,
39
+ 1,
40
+ 0,
41
+ 0,
42
+ 1,
43
+ 0
44
+ ]);
45
+
46
+ return {
47
+ positions: {size: 3, value: positions},
48
+ normals: {size: 3, value: normals},
49
+ texCoords: {size: 2, value: texCoords}
50
+ };
51
+ }
@@ -0,0 +1,171 @@
1
+ // deck.gl-community
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ import {CompositeLayer} from '@deck.gl/core';
6
+ import {SimpleMeshLayer} from '@deck.gl/mesh-layers';
7
+
8
+ import {Arrow2DGeometry} from './arrow-2d-geometry';
9
+
10
+ const DEFAULT_ARROW_GEOMETRY = new Arrow2DGeometry({length: 1, headWidth: 0.6});
11
+
12
+ type LayoutInfo = {
13
+ sourcePosition: number[];
14
+ targetPosition: number[];
15
+ controlPoints?: number[][];
16
+ };
17
+
18
+ const DEFAULT_Z = 0;
19
+
20
+ function resolveSize(value: unknown): number {
21
+ const numeric = Number(value);
22
+ return Number.isFinite(numeric) && numeric !== 0 ? numeric : 1;
23
+ }
24
+
25
+ function getOffsetComponents(offset: unknown): {along: number; perpendicular: number} {
26
+ if (!Array.isArray(offset)) {
27
+ return {along: 0, perpendicular: 0};
28
+ }
29
+ const along = Number(offset[0]);
30
+ const perpendicular = Number(offset[1]);
31
+ return {
32
+ along: Number.isFinite(along) ? along : 0,
33
+ perpendicular: Number.isFinite(perpendicular) ? perpendicular : 0
34
+ };
35
+ }
36
+
37
+ export function isEdgeDirected(edge: any): boolean {
38
+ if (!edge) {
39
+ return false;
40
+ }
41
+ if (typeof edge.isDirected === 'function') {
42
+ return Boolean(edge.isDirected());
43
+ }
44
+ if (typeof edge.directed === 'boolean') {
45
+ return edge.directed;
46
+ }
47
+ return false;
48
+ }
49
+
50
+ function normalizeVector(vector: number[]): number[] {
51
+ const length = Math.hypot(vector[0] ?? 0, vector[1] ?? 0, vector[2] ?? 0);
52
+ if (length === 0) {
53
+ return [0, 0, 0];
54
+ }
55
+ return [(vector[0] ?? 0) / length, (vector[1] ?? 0) / length, (vector[2] ?? 0) / length];
56
+ }
57
+
58
+ function getTerminalDirection({sourcePosition, targetPosition, controlPoints = []}: LayoutInfo): {
59
+ target: number[];
60
+ direction: number[];
61
+ } {
62
+ const anchor = controlPoints.length ? controlPoints[controlPoints.length - 1] : sourcePosition;
63
+ const direction = [
64
+ (targetPosition[0] ?? 0) - (anchor?.[0] ?? 0),
65
+ (targetPosition[1] ?? 0) - (anchor?.[1] ?? 0),
66
+ (targetPosition[2] ?? DEFAULT_Z) - (anchor?.[2] ?? DEFAULT_Z)
67
+ ];
68
+ return {target: targetPosition, direction};
69
+ }
70
+
71
+ export function getArrowTransform({
72
+ layout,
73
+ size,
74
+ offset = null
75
+ }: {
76
+ layout: LayoutInfo;
77
+ size: number;
78
+ offset?: number[] | null;
79
+ }): {position: [number, number, number]; angle: number} {
80
+ const {target, direction} = getTerminalDirection(layout);
81
+ const unit = normalizeVector(direction);
82
+
83
+ const hasDirection = unit[0] !== 0 || unit[1] !== 0 || unit[2] !== 0;
84
+ const resolvedSize = resolveSize(size);
85
+ const basePosition: [number, number, number] = [
86
+ target[0] ?? 0,
87
+ target[1] ?? 0,
88
+ target[2] ?? DEFAULT_Z
89
+ ];
90
+
91
+ if (!hasDirection) {
92
+ return {position: basePosition, angle: 0};
93
+ }
94
+
95
+ const {along, perpendicular} = getOffsetComponents(offset);
96
+ const alongDistance = resolvedSize * 0.5 + along;
97
+ const position: [number, number, number] = [
98
+ basePosition[0] - unit[0] * alongDistance,
99
+ basePosition[1] - unit[1] * alongDistance,
100
+ basePosition[2] - unit[2] * alongDistance
101
+ ];
102
+
103
+ if (perpendicular) {
104
+ const perp = [-unit[1], unit[0], 0];
105
+ position[0] += perp[0] * perpendicular;
106
+ position[1] += perp[1] * perpendicular;
107
+ position[2] += perp[2] * perpendicular;
108
+ }
109
+
110
+ const angle = (Math.atan2(unit[0], unit[1]) * 180) / Math.PI;
111
+
112
+ return {position, angle};
113
+ }
114
+
115
+ export class EdgeArrowLayer extends CompositeLayer {
116
+ static layerName = 'EdgeArrowLayer';
117
+
118
+ renderLayers() {
119
+ const {data, getLayoutInfo, positionUpdateTrigger = 0, stylesheet} = this.props as any;
120
+ const directedEdges = (data || []).filter(isEdgeDirected);
121
+
122
+ if (!directedEdges.length) {
123
+ return [];
124
+ }
125
+
126
+ const {getColor, getSize, getOffset} = stylesheet.getDeckGLAccessors();
127
+ const updateTriggers = stylesheet.getDeckGLUpdateTriggers();
128
+
129
+ return [
130
+ new SimpleMeshLayer(
131
+ this.getSubLayerProps({
132
+ id: '__edge-arrow-layer',
133
+ data: directedEdges,
134
+ mesh: DEFAULT_ARROW_GEOMETRY,
135
+ getColor,
136
+ getScale: (edge) => {
137
+ const size = resolveSize(getSize(edge));
138
+ return [size, size, size];
139
+ },
140
+ getOrientation: (edge) => {
141
+ const layout = getLayoutInfo(edge);
142
+ const size = resolveSize(getSize(edge));
143
+ const offset = getOffset ? getOffset(edge) : null;
144
+ const {angle} = getArrowTransform({layout, size, offset});
145
+ return [0, -angle, 0];
146
+ },
147
+ getPosition: (edge) => {
148
+ const layout = getLayoutInfo(edge);
149
+ const size = resolveSize(getSize(edge));
150
+ const offset = getOffset ? getOffset(edge) : null;
151
+ const {position} = getArrowTransform({layout, size, offset});
152
+ return position;
153
+ },
154
+ parameters: {
155
+ depthTest: false
156
+ },
157
+ updateTriggers: {
158
+ getColor: updateTriggers.getColor,
159
+ getScale: updateTriggers.getSize,
160
+ getOrientation: [
161
+ positionUpdateTrigger,
162
+ updateTriggers.getSize,
163
+ updateTriggers.getOffset
164
+ ],
165
+ getPosition: [positionUpdateTrigger, updateTriggers.getSize, updateTriggers.getOffset]
166
+ }
167
+ })
168
+ )
169
+ ];
170
+ }
171
+ }