@unovis/ts 1.0.0-beta.0

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 (505) hide show
  1. package/.cache/.npm/_cacache/content-v2/sha512/61/45/6fe676782aa108257b260c25e8140c6d37bbc18450696066eeeb68af0ecc30da712b9d888ddf31844ec3334478f2b142f957298bebde9cba8de0ffc3c2d7 +0 -0
  2. package/.cache/.npm/_cacache/content-v2/sha512/c1/fd/5918e37e37c05cdfc4482fae30721b118c227a6b70b2830ff04cd62a82899a4ad1beaa562b4c673122c932c2eb017af2f4da3c8b7f9a0affbd1d926341a0 +0 -0
  3. package/.cache/.npm/_cacache/index-v5/1f/ac/9e290f9c0248c783167cd161d22fe850034423d1a425963bd64808710219 +3 -0
  4. package/LICENSE +193 -0
  5. package/components/area/config.d.ts +25 -0
  6. package/components/area/config.js +16 -0
  7. package/components/area/config.js.map +1 -0
  8. package/components/area/index.d.ts +19 -0
  9. package/components/area/index.js +103 -0
  10. package/components/area/index.js.map +1 -0
  11. package/components/area/style.d.ts +3 -0
  12. package/components/area/style.js +32 -0
  13. package/components/area/style.js.map +1 -0
  14. package/components/area/types.d.ts +6 -0
  15. package/components/axis/config.d.ts +74 -0
  16. package/components/axis/config.js +33 -0
  17. package/components/axis/config.js.map +1 -0
  18. package/components/axis/index.d.ts +51 -0
  19. package/components/axis/index.js +291 -0
  20. package/components/axis/index.js.map +1 -0
  21. package/components/axis/modules/tick.d.ts +5 -0
  22. package/components/axis/modules/tick.js +48 -0
  23. package/components/axis/modules/tick.js.map +1 -0
  24. package/components/axis/style.d.ts +9 -0
  25. package/components/axis/style.js +95 -0
  26. package/components/axis/style.js.map +1 -0
  27. package/components/axis/types.d.ts +4 -0
  28. package/components/axis/types.js +8 -0
  29. package/components/axis/types.js.map +1 -0
  30. package/components/brush/config.d.ts +42 -0
  31. package/components/brush/config.js +24 -0
  32. package/components/brush/config.js.map +1 -0
  33. package/components/brush/index.d.ts +28 -0
  34. package/components/brush/index.js +199 -0
  35. package/components/brush/index.js.map +1 -0
  36. package/components/brush/style.d.ts +5 -0
  37. package/components/brush/style.js +63 -0
  38. package/components/brush/style.js.map +1 -0
  39. package/components/brush/types.d.ts +7 -0
  40. package/components/brush/types.js +8 -0
  41. package/components/brush/types.js.map +1 -0
  42. package/components/bullet-legend/config.d.ts +24 -0
  43. package/components/bullet-legend/config.js +16 -0
  44. package/components/bullet-legend/config.js.map +1 -0
  45. package/components/bullet-legend/index.d.ts +19 -0
  46. package/components/bullet-legend/index.js +79 -0
  47. package/components/bullet-legend/index.js.map +1 -0
  48. package/components/bullet-legend/style.d.ts +6 -0
  49. package/components/bullet-legend/style.js +66 -0
  50. package/components/bullet-legend/style.js.map +1 -0
  51. package/components/bullet-legend/types.d.ts +7 -0
  52. package/components/chord-diagram/config.d.ts +42 -0
  53. package/components/chord-diagram/config.js +25 -0
  54. package/components/chord-diagram/config.js.map +1 -0
  55. package/components/chord-diagram/index.d.ts +49 -0
  56. package/components/chord-diagram/index.js +280 -0
  57. package/components/chord-diagram/index.js.map +1 -0
  58. package/components/chord-diagram/modules/label.d.ts +8 -0
  59. package/components/chord-diagram/modules/label.js +128 -0
  60. package/components/chord-diagram/modules/label.js.map +1 -0
  61. package/components/chord-diagram/modules/link.d.ts +20 -0
  62. package/components/chord-diagram/modules/link.js +32 -0
  63. package/components/chord-diagram/modules/link.js.map +1 -0
  64. package/components/chord-diagram/modules/node.d.ts +17 -0
  65. package/components/chord-diagram/modules/node.js +52 -0
  66. package/components/chord-diagram/modules/node.js.map +1 -0
  67. package/components/chord-diagram/style.d.ts +13 -0
  68. package/components/chord-diagram/style.js +88 -0
  69. package/components/chord-diagram/style.js.map +1 -0
  70. package/components/chord-diagram/types.d.ts +40 -0
  71. package/components/chord-diagram/types.js +8 -0
  72. package/components/chord-diagram/types.js.map +1 -0
  73. package/components/crosshair/config.d.ts +43 -0
  74. package/components/crosshair/config.js +19 -0
  75. package/components/crosshair/config.js.map +1 -0
  76. package/components/crosshair/index.d.ts +35 -0
  77. package/components/crosshair/index.js +180 -0
  78. package/components/crosshair/index.js.map +1 -0
  79. package/components/crosshair/style.d.ts +4 -0
  80. package/components/crosshair/style.js +25 -0
  81. package/components/crosshair/style.js.map +1 -0
  82. package/components/crosshair/types.d.ts +13 -0
  83. package/components/donut/config.d.ts +45 -0
  84. package/components/donut/config.js +25 -0
  85. package/components/donut/config.js.map +1 -0
  86. package/components/donut/index.d.ts +20 -0
  87. package/components/donut/index.js +84 -0
  88. package/components/donut/index.js.map +1 -0
  89. package/components/donut/modules/arc.d.ts +10 -0
  90. package/components/donut/modules/arc.js +53 -0
  91. package/components/donut/modules/arc.js.map +1 -0
  92. package/components/donut/style.d.ts +6 -0
  93. package/components/donut/style.js +53 -0
  94. package/components/donut/style.js.map +1 -0
  95. package/components/donut/types.d.ts +12 -0
  96. package/components/flow-legend/config.d.ts +26 -0
  97. package/components/flow-legend/config.js +17 -0
  98. package/components/flow-legend/config.js.map +1 -0
  99. package/components/flow-legend/index.d.ts +16 -0
  100. package/components/flow-legend/index.js +73 -0
  101. package/components/flow-legend/index.js.map +1 -0
  102. package/components/flow-legend/style.d.ts +8 -0
  103. package/components/flow-legend/style.js +80 -0
  104. package/components/flow-legend/style.js.map +1 -0
  105. package/components/flow-legend/types.d.ts +9 -0
  106. package/components/flow-legend/types.js +8 -0
  107. package/components/flow-legend/types.js.map +1 -0
  108. package/components/free-brush/config.d.ts +45 -0
  109. package/components/free-brush/config.js +24 -0
  110. package/components/free-brush/config.js.map +1 -0
  111. package/components/free-brush/index.d.ts +20 -0
  112. package/components/free-brush/index.js +191 -0
  113. package/components/free-brush/index.js.map +1 -0
  114. package/components/free-brush/style.d.ts +4 -0
  115. package/components/free-brush/style.js +50 -0
  116. package/components/free-brush/style.js.map +1 -0
  117. package/components/free-brush/types.d.ts +7 -0
  118. package/components/free-brush/types.js +9 -0
  119. package/components/free-brush/types.js.map +1 -0
  120. package/components/graph/config.d.ts +207 -0
  121. package/components/graph/config.js +75 -0
  122. package/components/graph/config.js.map +1 -0
  123. package/components/graph/index.d.ts +121 -0
  124. package/components/graph/index.js +653 -0
  125. package/components/graph/index.js.map +1 -0
  126. package/components/graph/modules/layout-helpers.d.ts +2 -0
  127. package/components/graph/modules/layout-helpers.js +11 -0
  128. package/components/graph/modules/layout-helpers.js.map +1 -0
  129. package/components/graph/modules/layout.d.ts +9 -0
  130. package/components/graph/modules/layout.js +343 -0
  131. package/components/graph/modules/layout.js.map +1 -0
  132. package/components/graph/modules/link/helper.d.ts +25 -0
  133. package/components/graph/modules/link/helper.js +78 -0
  134. package/components/graph/modules/link/helper.js.map +1 -0
  135. package/components/graph/modules/link/index.d.ts +12 -0
  136. package/components/graph/modules/link/index.js +201 -0
  137. package/components/graph/modules/link/index.js.map +1 -0
  138. package/components/graph/modules/link/style.d.ts +15 -0
  139. package/components/graph/modules/link/style.js +112 -0
  140. package/components/graph/modules/link/style.js.map +1 -0
  141. package/components/graph/modules/node/helper.d.ts +21 -0
  142. package/components/graph/modules/node/helper.js +127 -0
  143. package/components/graph/modules/node/helper.js.map +1 -0
  144. package/components/graph/modules/node/index.d.ts +12 -0
  145. package/components/graph/modules/node/index.js +248 -0
  146. package/components/graph/modules/node/index.js.map +1 -0
  147. package/components/graph/modules/node/style.d.ts +24 -0
  148. package/components/graph/modules/node/style.js +273 -0
  149. package/components/graph/modules/node/style.js.map +1 -0
  150. package/components/graph/modules/panel/helper.d.ts +16 -0
  151. package/components/graph/modules/panel/helper.js +110 -0
  152. package/components/graph/modules/panel/helper.js.map +1 -0
  153. package/components/graph/modules/panel/index.d.ts +7 -0
  154. package/components/graph/modules/panel/index.js +103 -0
  155. package/components/graph/modules/panel/index.js.map +1 -0
  156. package/components/graph/modules/panel/style.d.ts +14 -0
  157. package/components/graph/modules/panel/style.js +123 -0
  158. package/components/graph/modules/panel/style.js.map +1 -0
  159. package/components/graph/modules/shape.d.ts +7 -0
  160. package/components/graph/modules/shape.js +80 -0
  161. package/components/graph/modules/shape.js.map +1 -0
  162. package/components/graph/modules/zoom-levels.d.ts +6 -0
  163. package/components/graph/modules/zoom-levels.js +10 -0
  164. package/components/graph/modules/zoom-levels.js.map +1 -0
  165. package/components/graph/style.d.ts +6 -0
  166. package/components/graph/style.js +66 -0
  167. package/components/graph/style.js.map +1 -0
  168. package/components/graph/types.d.ts +120 -0
  169. package/components/graph/types.js +29 -0
  170. package/components/graph/types.js.map +1 -0
  171. package/components/grouped-bar/config.d.ts +36 -0
  172. package/components/grouped-bar/config.js +20 -0
  173. package/components/grouped-bar/config.js.map +1 -0
  174. package/components/grouped-bar/index.d.ts +30 -0
  175. package/components/grouped-bar/index.js +231 -0
  176. package/components/grouped-bar/index.js.map +1 -0
  177. package/components/grouped-bar/style.d.ts +5 -0
  178. package/components/grouped-bar/style.js +36 -0
  179. package/components/grouped-bar/style.js.map +1 -0
  180. package/components/leaflet-flow-map/config.d.ts +46 -0
  181. package/components/leaflet-flow-map/config.js +25 -0
  182. package/components/leaflet-flow-map/config.js.map +1 -0
  183. package/components/leaflet-flow-map/index.d.ts +51 -0
  184. package/components/leaflet-flow-map/index.js +220 -0
  185. package/components/leaflet-flow-map/index.js.map +1 -0
  186. package/components/leaflet-flow-map/renderer-utils.d.ts +5 -0
  187. package/components/leaflet-flow-map/renderer-utils.js +15 -0
  188. package/components/leaflet-flow-map/renderer-utils.js.map +1 -0
  189. package/components/leaflet-flow-map/renderer.d.ts +26 -0
  190. package/components/leaflet-flow-map/renderer.js +117 -0
  191. package/components/leaflet-flow-map/renderer.js.map +1 -0
  192. package/components/leaflet-flow-map/shaders.d.ts +2 -0
  193. package/components/leaflet-flow-map/shaders.js +27 -0
  194. package/components/leaflet-flow-map/shaders.js.map +1 -0
  195. package/components/leaflet-flow-map/types.d.ts +23 -0
  196. package/components/leaflet-map/config.d.ts +175 -0
  197. package/components/leaflet-map/config.js +67 -0
  198. package/components/leaflet-map/config.js.map +1 -0
  199. package/components/leaflet-map/index.d.ts +95 -0
  200. package/components/leaflet-map/index.js +648 -0
  201. package/components/leaflet-map/index.js.map +1 -0
  202. package/components/leaflet-map/leaflet.css.js +4 -0
  203. package/components/leaflet-map/leaflet.css.js.map +1 -0
  204. package/components/leaflet-map/modules/clusterBackground.d.ts +4 -0
  205. package/components/leaflet-map/modules/clusterBackground.js +27 -0
  206. package/components/leaflet-map/modules/clusterBackground.js.map +1 -0
  207. package/components/leaflet-map/modules/donut.d.ts +3 -0
  208. package/components/leaflet-map/modules/donut.js +25 -0
  209. package/components/leaflet-map/modules/donut.js.map +1 -0
  210. package/components/leaflet-map/modules/map.d.ts +13 -0
  211. package/components/leaflet-map/modules/map.js +139 -0
  212. package/components/leaflet-map/modules/map.js.map +1 -0
  213. package/components/leaflet-map/modules/node.d.ts +8 -0
  214. package/components/leaflet-map/modules/node.js +148 -0
  215. package/components/leaflet-map/modules/node.js.map +1 -0
  216. package/components/leaflet-map/modules/selectionRing.d.ts +6 -0
  217. package/components/leaflet-map/modules/selectionRing.js +41 -0
  218. package/components/leaflet-map/modules/selectionRing.js.map +1 -0
  219. package/components/leaflet-map/modules/utils.d.ts +49 -0
  220. package/components/leaflet-map/modules/utils.js +207 -0
  221. package/components/leaflet-map/modules/utils.js.map +1 -0
  222. package/components/leaflet-map/renderer/map-style.d.ts +4 -0
  223. package/components/leaflet-map/renderer/map-style.js +15 -0
  224. package/components/leaflet-map/renderer/map-style.js.map +1 -0
  225. package/components/leaflet-map/renderer/mapboxgl/mapboxgl-dark-theme.json.js +40 -0
  226. package/components/leaflet-map/renderer/mapboxgl/mapboxgl-dark-theme.json.js.map +1 -0
  227. package/components/leaflet-map/renderer/mapboxgl/mapboxgl-light-theme.json.js +40 -0
  228. package/components/leaflet-map/renderer/mapboxgl/mapboxgl-light-theme.json.js.map +1 -0
  229. package/components/leaflet-map/renderer/mapboxgl/mapboxgl-settings.json.js +4987 -0
  230. package/components/leaflet-map/renderer/mapboxgl/mapboxgl-settings.json.js.map +1 -0
  231. package/components/leaflet-map/renderer/mapboxgl-layer.d.ts +7 -0
  232. package/components/leaflet-map/renderer/mapboxgl-layer.js +28 -0
  233. package/components/leaflet-map/renderer/mapboxgl-layer.js.map +1 -0
  234. package/components/leaflet-map/renderer/mapboxgl-utils.d.ts +5 -0
  235. package/components/leaflet-map/renderer/mapboxgl-utils.js +39 -0
  236. package/components/leaflet-map/renderer/mapboxgl-utils.js.map +1 -0
  237. package/components/leaflet-map/style.d.ts +19 -0
  238. package/components/leaflet-map/style.js +192 -0
  239. package/components/leaflet-map/style.js.map +1 -0
  240. package/components/leaflet-map/types.d.ts +70 -0
  241. package/components/leaflet-map/types.js +10 -0
  242. package/components/leaflet-map/types.js.map +1 -0
  243. package/components/line/config.d.ts +30 -0
  244. package/components/line/config.js +17 -0
  245. package/components/line/config.js.map +1 -0
  246. package/components/line/index.d.ts +27 -0
  247. package/components/line/index.js +139 -0
  248. package/components/line/index.js.map +1 -0
  249. package/components/line/style.d.ts +6 -0
  250. package/components/line/style.js +35 -0
  251. package/components/line/style.js.map +1 -0
  252. package/components/line/types.d.ts +12 -0
  253. package/components/radial-dendrogram/config.d.ts +34 -0
  254. package/components/radial-dendrogram/config.js +20 -0
  255. package/components/radial-dendrogram/config.js.map +1 -0
  256. package/components/radial-dendrogram/index.d.ts +22 -0
  257. package/components/radial-dendrogram/index.js +98 -0
  258. package/components/radial-dendrogram/index.js.map +1 -0
  259. package/components/radial-dendrogram/modules/label.d.ts +8 -0
  260. package/components/radial-dendrogram/modules/label.js +70 -0
  261. package/components/radial-dendrogram/modules/label.js.map +1 -0
  262. package/components/radial-dendrogram/modules/link.d.ts +19 -0
  263. package/components/radial-dendrogram/modules/link.js +59 -0
  264. package/components/radial-dendrogram/modules/link.js.map +1 -0
  265. package/components/radial-dendrogram/modules/node.d.ts +16 -0
  266. package/components/radial-dendrogram/modules/node.js +51 -0
  267. package/components/radial-dendrogram/modules/node.js.map +1 -0
  268. package/components/radial-dendrogram/style.d.ts +6 -0
  269. package/components/radial-dendrogram/style.js +54 -0
  270. package/components/radial-dendrogram/style.js.map +1 -0
  271. package/components/radial-dendrogram/types.d.ts +34 -0
  272. package/components/sankey/config.d.ts +162 -0
  273. package/components/sankey/config.js +65 -0
  274. package/components/sankey/config.js.map +1 -0
  275. package/components/sankey/index.d.ts +56 -0
  276. package/components/sankey/index.js +299 -0
  277. package/components/sankey/index.js.map +1 -0
  278. package/components/sankey/modules/label.d.ts +23 -0
  279. package/components/sankey/modules/label.js +164 -0
  280. package/components/sankey/modules/label.js.map +1 -0
  281. package/components/sankey/modules/link.d.ts +13 -0
  282. package/components/sankey/modules/link.js +108 -0
  283. package/components/sankey/modules/link.js.map +1 -0
  284. package/components/sankey/modules/node.d.ts +10 -0
  285. package/components/sankey/modules/node.js +156 -0
  286. package/components/sankey/modules/node.js.map +1 -0
  287. package/components/sankey/style.d.ts +20 -0
  288. package/components/sankey/style.js +164 -0
  289. package/components/sankey/style.js.map +1 -0
  290. package/components/sankey/types.d.ts +84 -0
  291. package/components/sankey/types.js +34 -0
  292. package/components/sankey/types.js.map +1 -0
  293. package/components/scatter/config.d.ts +44 -0
  294. package/components/scatter/config.js +23 -0
  295. package/components/scatter/config.js.map +1 -0
  296. package/components/scatter/index.d.ts +19 -0
  297. package/components/scatter/index.js +123 -0
  298. package/components/scatter/index.js.map +1 -0
  299. package/components/scatter/modules/point.d.ts +7 -0
  300. package/components/scatter/modules/point.js +98 -0
  301. package/components/scatter/modules/point.js.map +1 -0
  302. package/components/scatter/style.d.ts +5 -0
  303. package/components/scatter/style.js +53 -0
  304. package/components/scatter/style.js.map +1 -0
  305. package/components/scatter/types.d.ts +13 -0
  306. package/components/stacked-bar/config.d.ts +38 -0
  307. package/components/stacked-bar/config.js +20 -0
  308. package/components/stacked-bar/config.js.map +1 -0
  309. package/components/stacked-bar/index.d.ts +27 -0
  310. package/components/stacked-bar/index.js +193 -0
  311. package/components/stacked-bar/index.js.map +1 -0
  312. package/components/stacked-bar/style.d.ts +5 -0
  313. package/components/stacked-bar/style.js +36 -0
  314. package/components/stacked-bar/style.js.map +1 -0
  315. package/components/stacked-bar/types.d.ts +5 -0
  316. package/components/timeline/config.d.ts +43 -0
  317. package/components/timeline/config.js +23 -0
  318. package/components/timeline/config.js.map +1 -0
  319. package/components/timeline/index.d.ts +43 -0
  320. package/components/timeline/index.js +235 -0
  321. package/components/timeline/index.js.map +1 -0
  322. package/components/timeline/style.d.ts +12 -0
  323. package/components/timeline/style.js +86 -0
  324. package/components/timeline/style.js.map +1 -0
  325. package/components/tooltip/config.d.ts +46 -0
  326. package/components/tooltip/config.js +19 -0
  327. package/components/tooltip/config.js.map +1 -0
  328. package/components/tooltip/index.d.ts +34 -0
  329. package/components/tooltip/index.js +147 -0
  330. package/components/tooltip/index.js.map +1 -0
  331. package/components/tooltip/style.js +72 -0
  332. package/components/tooltip/style.js.map +1 -0
  333. package/components/topojson-map/config.d.ts +99 -0
  334. package/components/topojson-map/config.js +42 -0
  335. package/components/topojson-map/config.js.map +1 -0
  336. package/components/topojson-map/index.d.ts +52 -0
  337. package/components/topojson-map/index.js +355 -0
  338. package/components/topojson-map/index.js.map +1 -0
  339. package/components/topojson-map/style.d.ts +11 -0
  340. package/components/topojson-map/style.js +97 -0
  341. package/components/topojson-map/style.js.map +1 -0
  342. package/components/topojson-map/types.d.ts +48 -0
  343. package/components/topojson-map/types.js +45 -0
  344. package/components/topojson-map/types.js.map +1 -0
  345. package/components/topojson-map/utils.d.ts +3 -0
  346. package/components/topojson-map/utils.js +30 -0
  347. package/components/topojson-map/utils.js.map +1 -0
  348. package/components/vis-controls/config.d.ts +12 -0
  349. package/components/vis-controls/config.js +13 -0
  350. package/components/vis-controls/config.js.map +1 -0
  351. package/components/vis-controls/index.d.ts +14 -0
  352. package/components/vis-controls/index.js +52 -0
  353. package/components/vis-controls/index.js.map +1 -0
  354. package/components/vis-controls/style.d.ts +11 -0
  355. package/components/vis-controls/style.js +75 -0
  356. package/components/vis-controls/style.js.map +1 -0
  357. package/components/vis-controls/types.d.ts +13 -0
  358. package/components/vis-controls/types.js +8 -0
  359. package/components/vis-controls/types.js.map +1 -0
  360. package/components/xy-labels/config.d.ts +48 -0
  361. package/components/xy-labels/config.js +25 -0
  362. package/components/xy-labels/config.js.map +1 -0
  363. package/components/xy-labels/index.d.ts +15 -0
  364. package/components/xy-labels/index.js +86 -0
  365. package/components/xy-labels/index.js.map +1 -0
  366. package/components/xy-labels/modules/label.d.ts +9 -0
  367. package/components/xy-labels/modules/label.js +105 -0
  368. package/components/xy-labels/modules/label.js.map +1 -0
  369. package/components/xy-labels/style.d.ts +5 -0
  370. package/components/xy-labels/style.js +53 -0
  371. package/components/xy-labels/style.js.map +1 -0
  372. package/components/xy-labels/types.d.ts +23 -0
  373. package/components/xy-labels/types.js +9 -0
  374. package/components/xy-labels/types.js.map +1 -0
  375. package/components.d.ts +52 -0
  376. package/containers/single-container/config.d.ts +12 -0
  377. package/containers/single-container/config.js +12 -0
  378. package/containers/single-container/config.js.map +1 -0
  379. package/containers/single-container/index.d.ts +17 -0
  380. package/containers/single-container/index.js +115 -0
  381. package/containers/single-container/index.js.map +1 -0
  382. package/containers/xy-container/config.d.ts +99 -0
  383. package/containers/xy-container/config.js +30 -0
  384. package/containers/xy-container/config.js.map +1 -0
  385. package/containers/xy-container/index.d.ts +33 -0
  386. package/containers/xy-container/index.js +322 -0
  387. package/containers/xy-container/index.js.map +1 -0
  388. package/containers.d.ts +6 -0
  389. package/core/component/config.d.ts +58 -0
  390. package/core/component/config.js +14 -0
  391. package/core/component/config.js.map +1 -0
  392. package/core/component/index.d.ts +38 -0
  393. package/core/component/index.js +112 -0
  394. package/core/component/index.js.map +1 -0
  395. package/core/component/types.d.ts +2 -0
  396. package/core/config/index.d.ts +3 -0
  397. package/core/config/index.js +16 -0
  398. package/core/config/index.js.map +1 -0
  399. package/core/container/config.d.ts +38 -0
  400. package/core/container/config.js +29 -0
  401. package/core/container/config.js.map +1 -0
  402. package/core/container/index.d.ts +25 -0
  403. package/core/container/index.js +92 -0
  404. package/core/container/index.js.map +1 -0
  405. package/core/xy-component/config.d.ts +38 -0
  406. package/core/xy-component/config.js +20 -0
  407. package/core/xy-component/config.js.map +1 -0
  408. package/core/xy-component/index.d.ts +25 -0
  409. package/core/xy-component/index.js +65 -0
  410. package/core/xy-component/index.js.map +1 -0
  411. package/data-models/core.d.ts +6 -0
  412. package/data-models/core.js +14 -0
  413. package/data-models/core.js.map +1 -0
  414. package/data-models/graph.d.ts +24 -0
  415. package/data-models/graph.js +101 -0
  416. package/data-models/graph.js.map +1 -0
  417. package/data-models/map-graph.d.ts +23 -0
  418. package/data-models/map-graph.js +59 -0
  419. package/data-models/map-graph.js.map +1 -0
  420. package/data-models/map.d.ts +5 -0
  421. package/data-models/map.js +12 -0
  422. package/data-models/map.js.map +1 -0
  423. package/data-models/series.d.ts +6 -0
  424. package/data-models/series.js +19 -0
  425. package/data-models/series.js.map +1 -0
  426. package/external/maplibre-gl/dist/maplibre-gl.css.js +4 -0
  427. package/external/maplibre-gl/dist/maplibre-gl.css.js.map +1 -0
  428. package/index.d.ts +4 -0
  429. package/index.js +49 -0
  430. package/index.js.map +1 -0
  431. package/maps/china-provinces.json.js +140373 -0
  432. package/maps/fr-regions.json.js +14162 -0
  433. package/maps/germany-regions.json.js +35760 -0
  434. package/maps/ind-regions.json.js +290584 -0
  435. package/maps/uk-regions.json.js +96233 -0
  436. package/maps/us-counties.json.js +206318 -0
  437. package/maps/us-states.json.js +16345 -0
  438. package/maps/world-110m-alpha.json.js +251366 -0
  439. package/maps/world-simple.json.js +89428 -0
  440. package/maps/world-simplest.json.js +28175 -0
  441. package/maps.d.ts +60 -0
  442. package/maps.js +23 -0
  443. package/package.json +61 -0
  444. package/styles/colors.d.ts +4 -0
  445. package/styles/colors.js +11 -0
  446. package/styles/colors.js.map +1 -0
  447. package/styles/css-variables.d.ts +2 -0
  448. package/styles/css-variables.js +16 -0
  449. package/styles/css-variables.js.map +1 -0
  450. package/types/accessor.d.ts +5 -0
  451. package/types/component.d.ts +13 -0
  452. package/types/component.js +14 -0
  453. package/types/component.js.map +1 -0
  454. package/types/curve.d.ts +40 -0
  455. package/types/curve.js +46 -0
  456. package/types/curve.js.map +1 -0
  457. package/types/data.d.ts +7 -0
  458. package/types/direction.d.ts +6 -0
  459. package/types/direction.js +10 -0
  460. package/types/direction.js.map +1 -0
  461. package/types/graph.d.ts +35 -0
  462. package/types/map.d.ts +4 -0
  463. package/types/misc.d.ts +8 -0
  464. package/types/position.d.ts +20 -0
  465. package/types/position.js +27 -0
  466. package/types/position.js.map +1 -0
  467. package/types/scale.d.ts +23 -0
  468. package/types/scale.js +27 -0
  469. package/types/scale.js.map +1 -0
  470. package/types/shape.d.ts +7 -0
  471. package/types/shape.js +11 -0
  472. package/types/shape.js.map +1 -0
  473. package/types/spacing.d.ts +6 -0
  474. package/types/symbol.d.ts +18 -0
  475. package/types/symbol.js +24 -0
  476. package/types/symbol.js.map +1 -0
  477. package/types/text.d.ts +38 -0
  478. package/types/text.js +31 -0
  479. package/types/text.js.map +1 -0
  480. package/types.d.ts +28 -0
  481. package/utils/color.d.ts +9 -0
  482. package/utils/color.js +26 -0
  483. package/utils/color.js.map +1 -0
  484. package/utils/d3.d.ts +3 -0
  485. package/utils/d3.js +16 -0
  486. package/utils/d3.js.map +1 -0
  487. package/utils/data.d.ts +123 -0
  488. package/utils/data.js +193 -0
  489. package/utils/data.js.map +1 -0
  490. package/utils/html.d.ts +1 -0
  491. package/utils/html.js +15 -0
  492. package/utils/html.js.map +1 -0
  493. package/utils/map.d.ts +2 -0
  494. package/utils/map.js +20 -0
  495. package/utils/map.js.map +1 -0
  496. package/utils/misc.d.ts +16 -0
  497. package/utils/misc.js +42 -0
  498. package/utils/misc.js.map +1 -0
  499. package/utils/path.d.ts +21 -0
  500. package/utils/path.js +144 -0
  501. package/utils/path.js.map +1 -0
  502. package/utils/scale.d.ts +1 -0
  503. package/utils/text.d.ts +17 -0
  504. package/utils/text.js +196 -0
  505. package/utils/text.js.map +1 -0
@@ -0,0 +1,653 @@
1
+ import { extent, min } from 'd3-array';
2
+ import { select, pointer } from 'd3-selection';
3
+ import { zoom, zoomTransform, zoomIdentity } from 'd3-zoom';
4
+ import { drag } from 'd3-drag';
5
+ import { interval } from 'd3-timer';
6
+ import { ComponentCore } from '../../core/component/index.js';
7
+ import { GraphDataModel } from '../../data-models/graph.js';
8
+ import { isNumber, cloneDeep, find, clamp, getBoolean, isFunction, flatten, findIndex, shallowDiff, unique, clean } from '../../utils/data.js';
9
+ import { stringToHtmlId } from '../../utils/misc.js';
10
+ import { smartTransition } from '../../utils/d3.js';
11
+ import { GraphLayoutType, GraphLinkArrowStyle } from './types.js';
12
+ import { GraphConfig } from './config.js';
13
+ import { background, graphGroup, root } from './style.js';
14
+ import * as style from './modules/node/style.js';
15
+ import { nodes, gNode, gNodeExit, node, nodeGauge, sideLabelGroup, label } from './modules/node/style.js';
16
+ import { links, gLink, gLinkExit, link } from './modules/link/style.js';
17
+ import { panels, gPanel, panel, panelSelection, label as label$1, labelText, sideIconGroup, sideIconShape, sideIconSymbol } from './modules/panel/style.js';
18
+ import { createNodes, updateNodes, removeNodes, updateSelectedNodes, zoomNodesThrottled, zoomNodes } from './modules/node/index.js';
19
+ import { getMaxNodeSize, getX, getY } from './modules/node/helper.js';
20
+ import { createLinks, updateLinks, removeLinks, updateSelectedLinks, animateLinkFlow, zoomLinksThrottled, zoomLinks } from './modules/link/index.js';
21
+ import { getLinkColor, LINK_MARKER_WIDTH, LINK_MARKER_HEIGHT, getDoubleArrowPath, getArrowPath } from './modules/link/helper.js';
22
+ import { removePanels, createPanels, updatePanels } from './modules/panel/index.js';
23
+ import { getMaxPanelPadding, setPanelForNodes, updatePanelNumNodes, updatePanelBBoxSize } from './modules/panel/helper.js';
24
+ import { applyLayoutCircular, applyLayoutConcentric, applyLayoutForce, applyLayoutDagre, applyLayoutParallel } from './modules/layout.js';
25
+
26
+ class Graph extends ComponentCore {
27
+ constructor(config) {
28
+ super();
29
+ this.config = new GraphConfig();
30
+ this.datamodel = new GraphDataModel();
31
+ this._firstRender = true;
32
+ this._recalculateLayout = false;
33
+ this._setPanels = false;
34
+ this._disableAutoFit = false;
35
+ this._isDragging = false;
36
+ this.events = {
37
+ [Graph.selectors.background]: {
38
+ click: this._onBackgroundClick.bind(this),
39
+ },
40
+ [Graph.selectors.node]: {
41
+ click: this._onNodeClick.bind(this),
42
+ mouseover: this._onNodeMouseOver.bind(this),
43
+ mouseout: this._onNodeMouseOut.bind(this),
44
+ },
45
+ [Graph.selectors.link]: {
46
+ click: this._onLinkClick.bind(this),
47
+ mouseover: this._onLinkMouseOver.bind(this),
48
+ mouseout: this._onLinkMouseOut.bind(this),
49
+ },
50
+ };
51
+ if (config)
52
+ this.config.init(config);
53
+ this._backgroundRect = this.g.append('rect').attr('class', background);
54
+ this._graphGroup = this.g.append('g').attr('class', graphGroup);
55
+ this._zoomBehavior = zoom()
56
+ .scaleExtent(this.config.zoomScaleExtent)
57
+ .on('zoom', (e) => this._onZoom(e.transform, e));
58
+ this._panelsGroup = this._graphGroup.append('g').attr('class', panels);
59
+ this._linksGroup = this._graphGroup.append('g').attr('class', links);
60
+ this._nodesGroup = this._graphGroup.append('g').attr('class', nodes);
61
+ this._defs = this._graphGroup.append('defs');
62
+ }
63
+ get selectedNode() {
64
+ return this._selectedNode;
65
+ }
66
+ get selectedLink() {
67
+ return this._selectedLink;
68
+ }
69
+ setData(data) {
70
+ const { config } = this;
71
+ this.datamodel.nodeSort = config.nodeSort;
72
+ this.datamodel.data = data;
73
+ this._recalculateLayout = true;
74
+ if (config.layoutAutofit)
75
+ this._fitLayout = true;
76
+ this._setPanels = true;
77
+ this._addSVGDefs();
78
+ }
79
+ setConfig(config) {
80
+ this._fitLayout = this._fitLayout || this.config.layoutType !== config.layoutType;
81
+ this._recalculateLayout = this._recalculateLayout || this._shouldLayoutRecalculate(config);
82
+ super.setConfig(config);
83
+ this._setPanels = true;
84
+ }
85
+ get bleed() {
86
+ var _a;
87
+ const { datamodel: { nodes }, config: { nodeSize } } = this;
88
+ const maxPanelPadding = getMaxPanelPadding(this._panels);
89
+ const maxNodeSize = getMaxNodeSize(nodes, nodeSize);
90
+ const extra = 20; // Extra padding to take into account labels
91
+ const padding = maxNodeSize * 0.5 + maxPanelPadding + extra;
92
+ const panelLabelHeight = ((_a = this._panels) === null || _a === void 0 ? void 0 : _a.length) ? 50 : 0;
93
+ return { top: padding + panelLabelHeight, bottom: padding, left: padding, right: padding };
94
+ }
95
+ _render(customDuration) {
96
+ const { config: { disableZoom, duration, layoutAutofit, panels }, datamodel } = this;
97
+ if (!datamodel.nodes && !datamodel.links)
98
+ return;
99
+ const animDuration = isNumber(customDuration) ? customDuration : duration;
100
+ this._backgroundRect
101
+ .attr('width', this._width)
102
+ .attr('height', this._height)
103
+ .attr('opacity', 0);
104
+ if ((this._prevWidth !== this._width || this._prevHeight !== this._height) && layoutAutofit) {
105
+ // Fit layout on resize
106
+ this._fitLayout = true;
107
+ this._prevWidth = this._width;
108
+ this._prevHeight = this._height;
109
+ }
110
+ // Apply layout
111
+ if (this._recalculateLayout) {
112
+ this._calculateLayout();
113
+ this._recalculateLayout = false;
114
+ }
115
+ if (this._setPanels) {
116
+ smartTransition(this._panelsGroup, duration / 2)
117
+ .style('opacity', (panels === null || panels === void 0 ? void 0 : panels.length) ? 1 : 0);
118
+ this._panels = cloneDeep(panels);
119
+ setPanelForNodes(this._panels, datamodel.nodes, this.config);
120
+ this._setPanels = false;
121
+ }
122
+ if (this._firstRender) {
123
+ this._fit();
124
+ this._fitLayout = false;
125
+ }
126
+ else if (this._fitLayout && !this._disableAutoFit) {
127
+ this._fit(duration);
128
+ this._fitLayout = false;
129
+ }
130
+ // Draw
131
+ this._drawNodes(animDuration);
132
+ this._drawLinks(animDuration);
133
+ // Select Links / Nodes
134
+ this._resetSelection();
135
+ if (this.config.selectedNodeId) {
136
+ const selectedNode = find(datamodel.nodes, node => node.id === this.config.selectedNodeId);
137
+ this._selectNode(selectedNode);
138
+ }
139
+ if (this.config.selectedLinkId) {
140
+ const selectedLink = find(datamodel.links, link => link.id === this.config.selectedLinkId);
141
+ this._selectLink(selectedLink);
142
+ }
143
+ // Link flow animation timer
144
+ if (!this._timer) {
145
+ const refreshRateMs = 35;
146
+ this._timer = interval(this._onLinkFlowTimerFrame.bind(this), refreshRateMs);
147
+ }
148
+ // Zoom
149
+ if (disableZoom)
150
+ this.g.on('.zoom', null);
151
+ else
152
+ this.g.call(this._zoomBehavior).on('dblclick.zoom', null);
153
+ if (!this._firstRender && !disableZoom) {
154
+ const transform = zoomTransform(this.g.node());
155
+ this._onZoom(transform);
156
+ }
157
+ // While the graph is animating we disable pointer events on the graph group
158
+ if (animDuration) {
159
+ this._graphGroup.attr('pointer-events', 'none');
160
+ }
161
+ smartTransition(this._graphGroup, animDuration)
162
+ .on('end interrupt', () => {
163
+ this._graphGroup.attr('pointer-events', null);
164
+ });
165
+ this._firstRender = false;
166
+ }
167
+ _drawNodes(duration) {
168
+ const { config, datamodel } = this;
169
+ const nodes = datamodel.nodes;
170
+ const nodeGroups = this._nodesGroup
171
+ .selectAll(`.${gNode}:not(.${gNodeExit})`)
172
+ .data(nodes, d => String(d._id));
173
+ const nodeGroupsEnter = nodeGroups.enter().append('g')
174
+ .attr('class', gNode)
175
+ .call(createNodes, config, duration);
176
+ const nodeGroupsMerged = nodeGroups.merge(nodeGroupsEnter);
177
+ const nodeUpdateSelection = updateNodes(nodeGroupsMerged, config, duration, this._scale);
178
+ this._drawPanels(nodeUpdateSelection, duration);
179
+ const nodesGroupExit = nodeGroups.exit();
180
+ nodesGroupExit
181
+ .classed(gNodeExit, true)
182
+ .call(removeNodes, config, duration);
183
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
184
+ const thisRef = this;
185
+ if (!config.disableDrag) {
186
+ const dragBehaviour = drag()
187
+ .on('start', function (event, d) { thisRef._onDragStarted(d, event, select(this)); })
188
+ .on('drag', function (event, d) { thisRef._onDragged(d, event, nodeGroupsMerged); })
189
+ .on('end', function (event, d) { thisRef._onDragEnded(d, event, select(this)); });
190
+ nodeGroupsMerged.call(dragBehaviour);
191
+ }
192
+ else {
193
+ nodeGroupsMerged.on('.drag', null);
194
+ }
195
+ }
196
+ _drawLinks(duration) {
197
+ const { config, datamodel: { links } } = this;
198
+ const linkGroups = this._linksGroup
199
+ .selectAll(`.${gLink}`)
200
+ .data(links, (d) => String(d._id));
201
+ const linkGroupsEnter = linkGroups.enter().append('g')
202
+ .attr('class', gLink)
203
+ .call(createLinks, config, duration);
204
+ const linkGroupsMerged = linkGroups.merge(linkGroupsEnter);
205
+ linkGroupsMerged.call(updateLinks, config, duration, this._scale);
206
+ const linkGroupsExit = linkGroups.exit();
207
+ linkGroupsExit
208
+ .attr('class', gLinkExit)
209
+ .call(removeLinks, config, duration);
210
+ }
211
+ _drawPanels(nodeUpdateSelection, duration) {
212
+ const { config } = this;
213
+ if (!this._panels)
214
+ return;
215
+ const selection = (nodeUpdateSelection.duration)
216
+ ? nodeUpdateSelection.selection()
217
+ : nodeUpdateSelection;
218
+ updatePanelNumNodes(selection, this._panels, config);
219
+ updatePanelBBoxSize(selection, this._panels, config);
220
+ const panelData = this._panels.filter(p => p._numNodes);
221
+ const panelGroup = this._panelsGroup
222
+ .selectAll(`.${gPanel}`)
223
+ .data(panelData, p => p.label);
224
+ const panelGroupExit = panelGroup.exit();
225
+ panelGroupExit.call(removePanels, config, duration);
226
+ const panelGroupEnter = panelGroup.enter().append('g')
227
+ .attr('class', gPanel)
228
+ .call(createPanels, selection);
229
+ const panelGroupMerged = panelGroup.merge(panelGroupEnter);
230
+ this._updatePanels(panelGroupMerged, duration);
231
+ }
232
+ _updatePanels(panelToUpdate, duration) {
233
+ const { config } = this;
234
+ if (!this._panels)
235
+ return;
236
+ panelToUpdate.call(updatePanels, config, duration);
237
+ }
238
+ _calculateLayout() {
239
+ const { config, datamodel } = this;
240
+ switch (config.layoutType) {
241
+ case GraphLayoutType.Parallel:
242
+ applyLayoutParallel(datamodel, config, this._width, this._height);
243
+ break;
244
+ case GraphLayoutType.ParallelHorizontal:
245
+ applyLayoutParallel(datamodel, config, this._width, this._height, 'horizontal');
246
+ break;
247
+ case GraphLayoutType.Dagre:
248
+ applyLayoutDagre(datamodel, config, this._width);
249
+ break;
250
+ case GraphLayoutType.Force:
251
+ applyLayoutForce(datamodel, config, this._width);
252
+ break;
253
+ case GraphLayoutType.Concentric:
254
+ applyLayoutConcentric(datamodel, config, this._width, this._height);
255
+ break;
256
+ case GraphLayoutType.Circular:
257
+ default:
258
+ applyLayoutCircular(datamodel, config, this._width, this._height);
259
+ break;
260
+ }
261
+ }
262
+ _fit(duration = 0) {
263
+ var _a;
264
+ const { datamodel: { nodes } } = this;
265
+ if ((nodes === null || nodes === void 0 ? void 0 : nodes.length) && ((_a = this.g) === null || _a === void 0 ? void 0 : _a.size())) {
266
+ const transform = this._getTransform(nodes);
267
+ smartTransition(this.g, duration)
268
+ .call(this._zoomBehavior.transform, transform);
269
+ this._onZoom(transform);
270
+ }
271
+ else {
272
+ console.warn('Graph | Node data is not defined. Check if the component has been initialized.');
273
+ }
274
+ }
275
+ _getTransform(nodes) {
276
+ const { nodeSize, zoomScaleExtent } = this.config;
277
+ const { left, top, right, bottom } = this.bleed;
278
+ const maxNodeSize = getMaxNodeSize(nodes, nodeSize);
279
+ const w = this._width;
280
+ const h = this._height;
281
+ const xExtent = extent(nodes, d => getX(d));
282
+ const yExtent = extent(nodes, d => getY(d));
283
+ const xScale = w / (xExtent[1] - xExtent[0] + left + right);
284
+ const yScale = h / (yExtent[1] - yExtent[0] + maxNodeSize + top + bottom);
285
+ const clampedScale = clamp(min([xScale, yScale]), zoomScaleExtent[0], zoomScaleExtent[1]);
286
+ const xCenter = (xExtent[1] + xExtent[0]) / 2;
287
+ const yCenter = (yExtent[1] + yExtent[0] + maxNodeSize) / 2;
288
+ const translateX = this._width / 2 - xCenter * clampedScale;
289
+ const translateY = this._height / 2 - yCenter * clampedScale;
290
+ const transform = zoomIdentity
291
+ .translate(translateX, translateY)
292
+ .scale(clampedScale);
293
+ return transform;
294
+ }
295
+ _selectNode(node) {
296
+ const { datamodel: { nodes, links } } = this;
297
+ if (!node)
298
+ console.warn('Graph | Select Node: Not found');
299
+ this._selectedNode = node;
300
+ // Apply grey out
301
+ // Grey out all nodes
302
+ nodes.forEach(n => {
303
+ n._state.selected = false;
304
+ n._state.greyout = true;
305
+ });
306
+ // Grey out all links
307
+ links.forEach(l => {
308
+ l._state.greyout = true;
309
+ l._state.selected = false;
310
+ });
311
+ // Highlight selected
312
+ if (node) {
313
+ node._state.selected = true;
314
+ node._state.greyout = false;
315
+ const connectedLinks = links.filter(l => (l.source === node) || (l.target === node));
316
+ connectedLinks.forEach(l => {
317
+ const source = l.source;
318
+ const target = l.target;
319
+ source._state.greyout = false;
320
+ target._state.greyout = false;
321
+ l._state.greyout = false;
322
+ });
323
+ }
324
+ this._updateSelectedElements();
325
+ }
326
+ _selectLink(link) {
327
+ const { datamodel: { nodes, links } } = this;
328
+ if (!link)
329
+ console.warn('Graph | Select Link: Not found');
330
+ this._selectedLink = link;
331
+ const selectedLinkSource = link === null || link === void 0 ? void 0 : link.source;
332
+ const selectedLinkTarget = link === null || link === void 0 ? void 0 : link.target;
333
+ // Apply grey out
334
+ nodes.forEach(n => {
335
+ n._state.selected = false;
336
+ n._state.greyout = true;
337
+ if ((selectedLinkTarget === null || selectedLinkTarget === void 0 ? void 0 : selectedLinkTarget._id) === n._id || (selectedLinkSource === null || selectedLinkSource === void 0 ? void 0 : selectedLinkSource._id) === n._id) {
338
+ link._state.greyout = false;
339
+ }
340
+ });
341
+ links.forEach(l => {
342
+ l._state.greyout = true;
343
+ const source = l.source;
344
+ const target = l.target;
345
+ if ((source._id === (selectedLinkSource === null || selectedLinkSource === void 0 ? void 0 : selectedLinkSource._id)) && (target._id === (selectedLinkTarget === null || selectedLinkTarget === void 0 ? void 0 : selectedLinkTarget._id))) {
346
+ source._state.greyout = false;
347
+ target._state.greyout = false;
348
+ l._state.greyout = false;
349
+ }
350
+ });
351
+ links.forEach(l => {
352
+ delete l._state.selected;
353
+ });
354
+ if (link)
355
+ link._state.selected = true;
356
+ this._updateSelectedElements();
357
+ }
358
+ _resetSelection() {
359
+ const { datamodel: { nodes, links } } = this;
360
+ this._selectedNode = undefined;
361
+ this._selectedLink = undefined;
362
+ // Disable Grayout
363
+ nodes.forEach(n => {
364
+ delete n._state.selected;
365
+ delete n._state.greyout;
366
+ });
367
+ links.forEach(l => {
368
+ delete l._state.greyout;
369
+ delete l._state.selected;
370
+ });
371
+ this._updateSelectedElements();
372
+ }
373
+ _updateSelectedElements() {
374
+ const { config } = this;
375
+ const linkElements = this._linksGroup.selectAll(`.${gLink}`);
376
+ linkElements.call(updateSelectedLinks, config, this._scale);
377
+ const nodeElements = this._nodesGroup.selectAll(`.${gNode}`);
378
+ nodeElements.call(updateSelectedNodes, config);
379
+ // this._drawPanels(nodeElements, 0)
380
+ }
381
+ _onBackgroundClick() {
382
+ this._resetSelection();
383
+ }
384
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
385
+ _onNodeClick(d) {
386
+ }
387
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
388
+ _onNodeMouseOut(d) {
389
+ }
390
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
391
+ _onNodeMouseOver(d) {
392
+ }
393
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
394
+ _onLinkClick(d) {
395
+ }
396
+ _onLinkMouseOver(d) {
397
+ if (this._isDragging)
398
+ return;
399
+ d._state.hovered = true;
400
+ this._updateSelectedElements();
401
+ }
402
+ _onLinkMouseOut(d) {
403
+ if (this._isDragging)
404
+ return;
405
+ delete d._state.hovered;
406
+ this._updateSelectedElements();
407
+ }
408
+ _onLinkFlowTimerFrame(elapsed = 0) {
409
+ const { config: { linkFlow, linkFlowAnimDuration }, datamodel: { links } } = this;
410
+ const hasLinksWithFlow = links.some((d, i) => getBoolean(d, linkFlow, i));
411
+ if (!hasLinksWithFlow)
412
+ return;
413
+ const t = (elapsed % linkFlowAnimDuration) / linkFlowAnimDuration;
414
+ const linkElements = this._linksGroup.selectAll(`.${gLink}`);
415
+ const linksToAnimate = linkElements.filter(d => !d._state.greyout);
416
+ linksToAnimate.each(d => { d._state.flowAnimTime = t; });
417
+ animateLinkFlow(linksToAnimate, this.config, this._scale);
418
+ }
419
+ _onZoom(t, event) {
420
+ const { config, datamodel: { nodes } } = this;
421
+ const transform = t || event.transform;
422
+ this._scale = transform.k;
423
+ this._graphGroup.attr('transform', transform.toString());
424
+ if (isFunction(config.onZoom))
425
+ config.onZoom(this._scale, config.zoomScaleExtent);
426
+ if (!this._initialTransform)
427
+ this._initialTransform = transform;
428
+ // If the event was triggered by a mouse interaction (pan or zoom) we don't
429
+ // refit the layout after recalculation (eg. on container resize)
430
+ if (event === null || event === void 0 ? void 0 : event.sourceEvent) {
431
+ const diff = Object.keys(transform).reduce((acc, prop) => {
432
+ const val = transform[prop];
433
+ const dVal = Math.abs(val - this._initialTransform[prop]);
434
+ return prop === 'k' ? 2 * dVal : dVal / 50;
435
+ }, 0);
436
+ if (diff > config.layoutAutofitTolerance)
437
+ this._disableAutoFit = true;
438
+ else
439
+ this._disableAutoFit = false;
440
+ }
441
+ this._nodesGroup.selectAll(`.${gNode}`)
442
+ .call(nodes.length > config.zoomThrottledUpdateNodeThreshold ? zoomNodesThrottled : zoomNodes, config, this._scale);
443
+ this._linksGroup.selectAll(`.${gLink}`)
444
+ .call(nodes.length > config.zoomThrottledUpdateNodeThreshold ? zoomLinksThrottled : zoomLinks, config, this._scale);
445
+ }
446
+ _onDragStarted(d, event, nodeSelection) {
447
+ const { config } = this;
448
+ this._isDragging = true;
449
+ d._state.isDragged = true;
450
+ nodeSelection.call(updateNodes, config, 0, this._scale);
451
+ }
452
+ _onDragged(d, event, allNodesSelection) {
453
+ const { config } = this;
454
+ const transform = zoomTransform(this.g.node());
455
+ const scale = transform.k;
456
+ // Prevent from dragging outside
457
+ const maxY = (this._height - transform.y) / scale;
458
+ const maxX = (this._width - transform.x) / scale;
459
+ const minY = -transform.y / scale;
460
+ const minX = -transform.x / scale;
461
+ let [x, y] = pointer(event, this._graphGroup.node());
462
+ if (y < minY)
463
+ y = minY;
464
+ else if (y > maxY)
465
+ y = maxY;
466
+ if (x < minX)
467
+ x = minX;
468
+ else if (x > maxX)
469
+ x = maxX;
470
+ // Snap to Layout
471
+ if (Math.sqrt(Math.pow(x - d.x, 2) + Math.pow(y - d.y, 2)) < 15) {
472
+ x = d.x;
473
+ y = d.y;
474
+ }
475
+ const panelNeighbourNodes = flatten(d._panels);
476
+ if (panelNeighbourNodes.length > 0) {
477
+ const prevX = getX(d);
478
+ const prevY = getY(d);
479
+ panelNeighbourNodes.forEach(node => {
480
+ const dx = getX(node) - prevX;
481
+ const dy = getY(node) - prevY;
482
+ node._state.fx = x + dx;
483
+ node._state.fy = y + dy;
484
+ if (node._state.fx === node.x)
485
+ delete node._state.fx;
486
+ if (node._state.fy === node.y)
487
+ delete node._state.fy;
488
+ });
489
+ }
490
+ else {
491
+ d._state.fx = x;
492
+ d._state.fy = y;
493
+ if (d._state.fx === d.x)
494
+ delete d._state.fx;
495
+ if (d._state.fy === d.y)
496
+ delete d._state.fy;
497
+ }
498
+ const panelNodesToUpdate = allNodesSelection.filter((node) => {
499
+ return node._id === d._id || findIndex(panelNeighbourNodes, (n) => node._id === n._id) !== -1;
500
+ });
501
+ panelNodesToUpdate
502
+ .call(updateNodes, config, 0, scale)
503
+ .call(zoomNodes, config, scale);
504
+ const panelToUpdate = this._panelsGroup.selectAll(`.${gPanel}`);
505
+ updatePanelBBoxSize(panelNodesToUpdate, this._panels, config);
506
+ this._updatePanels(panelToUpdate, 0);
507
+ const nodeElements = this._nodesGroup.selectAll(`.${gNode}`);
508
+ const nodesToUpdate = nodeElements.filter((n) => n._id === d._id);
509
+ nodesToUpdate.call(updateNodes, config, 0, scale);
510
+ const linkElements = this._linksGroup.selectAll(`.${gLink}`);
511
+ const linksToUpdate = linkElements.filter((l) => {
512
+ const source = l.source;
513
+ const target = l.target;
514
+ return source._id === d._id || target._id === d._id || findIndex(panelNeighbourNodes, (n) => source._id === n._id) !== -1 || findIndex(panelNeighbourNodes, (n) => target._id === n._id) !== -1;
515
+ });
516
+ linksToUpdate.call(updateLinks, config, 0, scale);
517
+ const linksToAnimate = linksToUpdate.filter(d => d._state.greyout);
518
+ if (linksToAnimate.size())
519
+ animateLinkFlow(linksToAnimate, config, this._scale);
520
+ }
521
+ _onDragEnded(d, event, nodeSelection) {
522
+ const { config } = this;
523
+ this._isDragging = false;
524
+ d._state.isDragged = false;
525
+ nodeSelection.call(updateNodes, config, 0, this._scale);
526
+ }
527
+ _shouldLayoutRecalculate(nextConfig) {
528
+ const { config } = this;
529
+ if (config.layoutType !== nextConfig.layoutType)
530
+ return true;
531
+ if (config.layoutNonConnectedAside !== nextConfig.layoutNonConnectedAside)
532
+ return true;
533
+ if (config.layoutType === GraphLayoutType.Force) {
534
+ const forceSettingsDiff = shallowDiff(config.forceLayoutSettings, nextConfig.forceLayoutSettings);
535
+ if (Object.keys(forceSettingsDiff).length)
536
+ return true;
537
+ }
538
+ if (config.layoutType === GraphLayoutType.Dagre) {
539
+ const dagreSettingsDiff = shallowDiff(config.dagreLayoutSettings, nextConfig.dagreLayoutSettings);
540
+ if (Object.keys(dagreSettingsDiff).length)
541
+ return true;
542
+ }
543
+ if (config.layoutType === GraphLayoutType.Parallel ||
544
+ config.layoutType === GraphLayoutType.ParallelHorizontal ||
545
+ config.layoutType === GraphLayoutType.Concentric) {
546
+ if (config.layoutGroupOrder !== nextConfig.layoutGroupOrder)
547
+ return true;
548
+ if (config.layoutParallelNodesPerColumn !== nextConfig.layoutParallelNodesPerColumn)
549
+ return true;
550
+ if (config.layoutParallelSortConnectionsByGroup !== nextConfig.layoutParallelSortConnectionsByGroup)
551
+ return true;
552
+ }
553
+ return false;
554
+ }
555
+ _addSVGDefs() {
556
+ const { datamodel: { links } } = this;
557
+ // Clean up old defs
558
+ this._defs.selectAll('*').remove();
559
+ // Get all variations of link colors to create markers
560
+ const linkColors = unique(clean(links.map(d => getLinkColor(d, this.config))));
561
+ this._defs.selectAll('marker')
562
+ .data([
563
+ ...linkColors.map(d => ({ color: d, arrow: GraphLinkArrowStyle.Single })),
564
+ ...linkColors.map(d => ({ color: d, arrow: GraphLinkArrowStyle.Double })), // Double-sided arrows
565
+ ]).enter()
566
+ .append('marker')
567
+ .attr('id', d => `${stringToHtmlId(d.color)}-${d.arrow}`)
568
+ .attr('orient', 'auto')
569
+ .attr('markerWidth', d => d.arrow === GraphLinkArrowStyle.Double ? LINK_MARKER_WIDTH * 2 : LINK_MARKER_WIDTH)
570
+ .attr('markerHeight', d => d.arrow === GraphLinkArrowStyle.Double ? LINK_MARKER_HEIGHT * 2 : LINK_MARKER_HEIGHT)
571
+ .attr('markerUnits', 'userSpaceOnUse')
572
+ .attr('refX', LINK_MARKER_WIDTH - LINK_MARKER_HEIGHT / 2)
573
+ .attr('refY', LINK_MARKER_HEIGHT - LINK_MARKER_HEIGHT / 2)
574
+ .html(d => {
575
+ var _a;
576
+ return `
577
+ <path
578
+ d="${d.arrow === GraphLinkArrowStyle.Double ? getDoubleArrowPath() : getArrowPath()}"
579
+ fill="${(_a = d.color) !== null && _a !== void 0 ? _a : null}"
580
+ />
581
+ `;
582
+ });
583
+ }
584
+ zoomIn(increment = 0.3) {
585
+ const scaleBy = 1 + increment;
586
+ smartTransition(this.g, this.config.duration / 2)
587
+ .call(this._zoomBehavior.scaleBy, scaleBy);
588
+ }
589
+ zoomOut(increment = 0.3) {
590
+ const scaleBy = 1 - increment;
591
+ smartTransition(this.g, this.config.duration / 2)
592
+ .call(this._zoomBehavior.scaleBy, scaleBy);
593
+ }
594
+ setZoom(zoomLevel) {
595
+ smartTransition(this.g, this.config.duration / 2)
596
+ .call(this._zoomBehavior.scaleTo, zoomLevel);
597
+ }
598
+ fitView() {
599
+ this._fit(this.config.duration / 2);
600
+ }
601
+ /** Enable automatic fitting to container if it was disabled due to previous zoom / pan interactions */
602
+ resetAutofitState() {
603
+ this._disableAutoFit = false;
604
+ }
605
+ /** Get current coordinates of the nodes as an array of { id: string; x: number; y: number } objects */
606
+ getNodesCoordinates() {
607
+ const { datamodel: { nodes } } = this;
608
+ return nodes.map(n => ({
609
+ id: n._id,
610
+ x: n.x,
611
+ y: n.y,
612
+ }));
613
+ }
614
+ /** Get node coordinates by id as { id: string; x: number; y: number } */
615
+ getNodeCoordinatesById(id) {
616
+ const { datamodel: { nodes } } = this;
617
+ const node = nodes.find(n => n._id === id);
618
+ if (!node) {
619
+ console.warn(`Graph | Node ${id} not found`);
620
+ return undefined;
621
+ }
622
+ else {
623
+ return {
624
+ id: node._id,
625
+ x: node.x,
626
+ y: node.y,
627
+ };
628
+ }
629
+ }
630
+ }
631
+ Graph.selectors = {
632
+ root: root,
633
+ background: background,
634
+ node: gNode,
635
+ nodeShape: node,
636
+ nodeGauge: nodeGauge,
637
+ nodeSideLabel: sideLabelGroup,
638
+ nodeLabel: label,
639
+ link: gLink,
640
+ linkLine: link,
641
+ panel: gPanel,
642
+ panelRect: panel,
643
+ panelSelection: panelSelection,
644
+ panelLabel: label$1,
645
+ panelLabelText: labelText,
646
+ panelSideIcon: sideIconGroup,
647
+ panelSideIconShape: sideIconShape,
648
+ panelSideIconSymbol: sideIconSymbol,
649
+ };
650
+ Graph.nodeSelectors = style;
651
+
652
+ export { Graph };
653
+ //# sourceMappingURL=index.js.map