@unovis/ts 1.1.1-beta.7 → 1.1.1-beta.8

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 (710) hide show
  1. package/components/area/config.d.ts +25 -0
  2. package/components/area/config.js +16 -0
  3. package/components/area/config.js.map +1 -0
  4. package/components/area/index.d.ts +19 -0
  5. package/components/area/index.js +102 -0
  6. package/components/area/index.js.map +1 -0
  7. package/components/area/style.d.ts +3 -0
  8. package/{src/components/area/style.ts → components/area/style.js} +10 -9
  9. package/components/area/style.js.map +1 -0
  10. package/components/area/types.d.ts +6 -0
  11. package/components/axis/config.d.ts +71 -0
  12. package/components/axis/config.js +32 -0
  13. package/components/axis/config.js.map +1 -0
  14. package/components/axis/index.d.ts +44 -0
  15. package/components/axis/index.js +305 -0
  16. package/components/axis/index.js.map +1 -0
  17. package/components/axis/style.d.ts +9 -0
  18. package/{src/components/axis/style.ts → components/axis/style.js} +22 -27
  19. package/components/axis/style.js.map +1 -0
  20. package/components/axis/types.d.ts +4 -0
  21. package/components/axis/types.js +8 -0
  22. package/components/axis/types.js.map +1 -0
  23. package/components/brush/config.d.ts +42 -0
  24. package/components/brush/config.js +24 -0
  25. package/components/brush/config.js.map +1 -0
  26. package/components/brush/index.d.ts +28 -0
  27. package/components/brush/index.js +199 -0
  28. package/components/brush/index.js.map +1 -0
  29. package/components/brush/style.d.ts +5 -0
  30. package/{src/components/brush/style.ts → components/brush/style.js} +14 -15
  31. package/components/brush/style.js.map +1 -0
  32. package/components/brush/types.d.ts +7 -0
  33. package/components/brush/types.js +8 -0
  34. package/components/brush/types.js.map +1 -0
  35. package/components/bullet-legend/config.d.ts +34 -0
  36. package/components/bullet-legend/config.js +16 -0
  37. package/components/bullet-legend/config.js.map +1 -0
  38. package/components/bullet-legend/index.d.ts +19 -0
  39. package/components/bullet-legend/index.js +79 -0
  40. package/components/bullet-legend/index.js.map +1 -0
  41. package/components/bullet-legend/style.d.ts +6 -0
  42. package/{src/components/bullet-legend/style.ts → components/bullet-legend/style.js} +16 -18
  43. package/components/bullet-legend/style.js.map +1 -0
  44. package/components/bullet-legend/types.d.ts +7 -0
  45. package/components/bullet-legend/types.js +2 -0
  46. package/components/bullet-legend/types.js.map +1 -0
  47. package/components/chord-diagram/config.d.ts +44 -0
  48. package/components/chord-diagram/config.js +25 -0
  49. package/components/chord-diagram/config.js.map +1 -0
  50. package/components/chord-diagram/index.d.ts +42 -0
  51. package/components/chord-diagram/index.js +305 -0
  52. package/components/chord-diagram/index.js.map +1 -0
  53. package/components/chord-diagram/modules/label.d.ts +8 -0
  54. package/components/chord-diagram/modules/label.js +115 -0
  55. package/components/chord-diagram/modules/label.js.map +1 -0
  56. package/components/chord-diagram/modules/link.d.ts +21 -0
  57. package/components/chord-diagram/modules/link.js +63 -0
  58. package/components/chord-diagram/modules/link.js.map +1 -0
  59. package/components/chord-diagram/modules/node.d.ts +17 -0
  60. package/components/chord-diagram/modules/node.js +52 -0
  61. package/components/chord-diagram/modules/node.js.map +1 -0
  62. package/components/chord-diagram/style.d.ts +13 -0
  63. package/{src/components/chord-diagram/style.ts → components/chord-diagram/style.js} +30 -39
  64. package/components/chord-diagram/style.js.map +1 -0
  65. package/components/chord-diagram/types.d.ts +58 -0
  66. package/components/chord-diagram/types.js +8 -0
  67. package/components/chord-diagram/types.js.map +1 -0
  68. package/components/crosshair/config.d.ts +43 -0
  69. package/components/crosshair/config.js +19 -0
  70. package/components/crosshair/config.js.map +1 -0
  71. package/components/crosshair/index.d.ts +35 -0
  72. package/components/crosshair/index.js +183 -0
  73. package/components/crosshair/index.js.map +1 -0
  74. package/components/crosshair/style.d.ts +4 -0
  75. package/{src/components/crosshair/style.ts → components/crosshair/style.js} +12 -12
  76. package/components/crosshair/style.js.map +1 -0
  77. package/components/crosshair/types.d.ts +13 -0
  78. package/components/crosshair/types.js +2 -0
  79. package/components/crosshair/types.js.map +1 -0
  80. package/components/donut/config.d.ts +59 -0
  81. package/components/donut/config.js +28 -0
  82. package/components/donut/config.js.map +1 -0
  83. package/components/donut/index.d.ts +21 -0
  84. package/components/donut/index.js +107 -0
  85. package/components/donut/index.js.map +1 -0
  86. package/components/donut/modules/arc.d.ts +10 -0
  87. package/components/donut/modules/arc.js +59 -0
  88. package/components/donut/modules/arc.js.map +1 -0
  89. package/components/donut/style.d.ts +7 -0
  90. package/{src/components/donut/style.ts → components/donut/style.js} +18 -20
  91. package/components/donut/style.js.map +1 -0
  92. package/components/donut/types.d.ts +20 -0
  93. package/components/flow-legend/config.d.ts +29 -0
  94. package/components/flow-legend/config.js +18 -0
  95. package/components/flow-legend/config.js.map +1 -0
  96. package/components/flow-legend/index.d.ts +16 -0
  97. package/components/flow-legend/index.js +75 -0
  98. package/components/flow-legend/index.js.map +1 -0
  99. package/components/flow-legend/style.d.ts +8 -0
  100. package/{src/components/flow-legend/style.ts → components/flow-legend/style.js} +21 -25
  101. package/components/flow-legend/style.js.map +1 -0
  102. package/components/flow-legend/types.d.ts +9 -0
  103. package/components/flow-legend/types.js +8 -0
  104. package/components/flow-legend/types.js.map +1 -0
  105. package/components/free-brush/config.d.ts +45 -0
  106. package/components/free-brush/config.js +24 -0
  107. package/components/free-brush/config.js.map +1 -0
  108. package/components/free-brush/index.d.ts +20 -0
  109. package/components/free-brush/index.js +192 -0
  110. package/components/free-brush/index.js.map +1 -0
  111. package/components/free-brush/style.d.ts +4 -0
  112. package/{src/components/free-brush/style.ts → components/free-brush/style.js} +12 -12
  113. package/components/free-brush/style.js.map +1 -0
  114. package/components/free-brush/types.d.ts +7 -0
  115. package/components/free-brush/types.js +9 -0
  116. package/components/free-brush/types.js.map +1 -0
  117. package/components/graph/config.d.ts +238 -0
  118. package/components/graph/config.js +84 -0
  119. package/components/graph/config.js.map +1 -0
  120. package/components/graph/index.d.ts +126 -0
  121. package/components/graph/index.js +656 -0
  122. package/components/graph/index.js.map +1 -0
  123. package/components/graph/modules/layout-helpers.d.ts +21 -0
  124. package/components/graph/modules/layout-helpers.js +69 -0
  125. package/components/graph/modules/layout-helpers.js.map +1 -0
  126. package/components/graph/modules/layout.d.ts +10 -0
  127. package/components/graph/modules/layout.js +399 -0
  128. package/components/graph/modules/layout.js.map +1 -0
  129. package/components/graph/modules/link/helper.d.ts +25 -0
  130. package/components/graph/modules/link/helper.js +74 -0
  131. package/components/graph/modules/link/helper.js.map +1 -0
  132. package/components/graph/modules/link/index.d.ts +11 -0
  133. package/components/graph/modules/link/index.js +212 -0
  134. package/components/graph/modules/link/index.js.map +1 -0
  135. package/components/graph/modules/link/style.d.ts +15 -0
  136. package/{src/components/graph/modules/link/style.ts → components/graph/modules/link/style.js} +34 -45
  137. package/components/graph/modules/link/style.js.map +1 -0
  138. package/components/graph/modules/node/helper.d.ts +21 -0
  139. package/components/graph/modules/node/helper.js +126 -0
  140. package/components/graph/modules/node/helper.js.map +1 -0
  141. package/components/graph/modules/node/index.d.ts +11 -0
  142. package/components/graph/modules/node/index.js +252 -0
  143. package/components/graph/modules/node/index.js.map +1 -0
  144. package/components/graph/modules/node/style.d.ts +24 -0
  145. package/{src/components/graph/modules/node/style.ts → components/graph/modules/node/style.js} +52 -72
  146. package/components/graph/modules/node/style.js.map +1 -0
  147. package/components/graph/modules/panel/helper.d.ts +18 -0
  148. package/components/graph/modules/panel/helper.js +111 -0
  149. package/components/graph/modules/panel/helper.js.map +1 -0
  150. package/components/graph/modules/panel/index.d.ts +7 -0
  151. package/components/graph/modules/panel/index.js +98 -0
  152. package/components/graph/modules/panel/index.js.map +1 -0
  153. package/components/graph/modules/panel/style.d.ts +14 -0
  154. package/{src/components/graph/modules/panel/style.ts → components/graph/modules/panel/style.js} +32 -42
  155. package/components/graph/modules/panel/style.js.map +1 -0
  156. package/components/graph/modules/shape.d.ts +6 -0
  157. package/components/graph/modules/shape.js +80 -0
  158. package/components/graph/modules/shape.js.map +1 -0
  159. package/components/graph/modules/zoom-levels.d.ts +6 -0
  160. package/components/graph/modules/zoom-levels.js +10 -0
  161. package/components/graph/modules/zoom-levels.js.map +1 -0
  162. package/components/graph/style.d.ts +6 -0
  163. package/components/graph/style.js +66 -0
  164. package/components/graph/style.js.map +1 -0
  165. package/components/graph/types.d.ts +125 -0
  166. package/components/graph/types.js +30 -0
  167. package/components/graph/types.js.map +1 -0
  168. package/components/grouped-bar/config.d.ts +36 -0
  169. package/components/grouped-bar/config.js +20 -0
  170. package/components/grouped-bar/config.js.map +1 -0
  171. package/components/grouped-bar/index.d.ts +32 -0
  172. package/components/grouped-bar/index.js +249 -0
  173. package/components/grouped-bar/index.js.map +1 -0
  174. package/components/grouped-bar/style.d.ts +5 -0
  175. package/{src/components/grouped-bar/style.ts → components/grouped-bar/style.js} +14 -15
  176. package/components/grouped-bar/style.js.map +1 -0
  177. package/components/leaflet-flow-map/config.d.ts +46 -0
  178. package/components/leaflet-flow-map/config.js +25 -0
  179. package/components/leaflet-flow-map/config.js.map +1 -0
  180. package/components/leaflet-flow-map/index.d.ts +52 -0
  181. package/components/leaflet-flow-map/index.js +220 -0
  182. package/components/leaflet-flow-map/index.js.map +1 -0
  183. package/components/leaflet-flow-map/renderer-utils.d.ts +5 -0
  184. package/components/leaflet-flow-map/renderer-utils.js +15 -0
  185. package/components/leaflet-flow-map/renderer-utils.js.map +1 -0
  186. package/components/leaflet-flow-map/renderer.d.ts +26 -0
  187. package/components/leaflet-flow-map/renderer.js +117 -0
  188. package/components/leaflet-flow-map/renderer.js.map +1 -0
  189. package/components/leaflet-flow-map/shaders.d.ts +2 -0
  190. package/{src/components/leaflet-flow-map/shaders.ts → components/leaflet-flow-map/shaders.js} +7 -4
  191. package/components/leaflet-flow-map/shaders.js.map +1 -0
  192. package/components/leaflet-flow-map/types.d.ts +23 -0
  193. package/components/leaflet-map/config.d.ts +193 -0
  194. package/components/leaflet-map/config.js +71 -0
  195. package/components/leaflet-map/config.js.map +1 -0
  196. package/components/leaflet-map/index.d.ts +130 -0
  197. package/components/leaflet-map/index.js +690 -0
  198. package/components/leaflet-map/index.js.map +1 -0
  199. package/components/leaflet-map/leaflet.css.js +5 -0
  200. package/components/leaflet-map/leaflet.css.js.map +1 -0
  201. package/components/leaflet-map/modules/clusterBackground.d.ts +5 -0
  202. package/components/leaflet-map/modules/clusterBackground.js +27 -0
  203. package/components/leaflet-map/modules/clusterBackground.js.map +1 -0
  204. package/components/leaflet-map/modules/donut.d.ts +3 -0
  205. package/components/leaflet-map/modules/donut.js +25 -0
  206. package/components/leaflet-map/modules/donut.js.map +1 -0
  207. package/components/leaflet-map/modules/map.d.ts +14 -0
  208. package/components/leaflet-map/modules/map.js +154 -0
  209. package/components/leaflet-map/modules/map.js.map +1 -0
  210. package/components/leaflet-map/modules/node.d.ts +9 -0
  211. package/components/leaflet-map/modules/node.js +162 -0
  212. package/components/leaflet-map/modules/node.js.map +1 -0
  213. package/components/leaflet-map/modules/selectionRing.d.ts +7 -0
  214. package/components/leaflet-map/modules/selectionRing.js +41 -0
  215. package/components/leaflet-map/modules/selectionRing.js.map +1 -0
  216. package/components/leaflet-map/modules/utils.d.ts +50 -0
  217. package/components/leaflet-map/modules/utils.js +210 -0
  218. package/components/leaflet-map/modules/utils.js.map +1 -0
  219. package/{src/components → components}/leaflet-map/renderer/leaflet-maplibre-gl.js +78 -76
  220. package/components/leaflet-map/renderer/leaflet-maplibre-gl.js.map +1 -0
  221. package/components/leaflet-map/renderer/map-style.d.ts +4 -0
  222. package/components/leaflet-map/renderer/map-style.js +15 -0
  223. package/components/leaflet-map/renderer/map-style.js.map +1 -0
  224. package/components/leaflet-map/renderer/mapboxgl/mapboxgl-dark-theme.json.js +40 -0
  225. package/components/leaflet-map/renderer/mapboxgl/mapboxgl-dark-theme.json.js.map +1 -0
  226. package/components/leaflet-map/renderer/mapboxgl/mapboxgl-light-theme.json.js +40 -0
  227. package/components/leaflet-map/renderer/mapboxgl/mapboxgl-light-theme.json.js.map +1 -0
  228. package/components/leaflet-map/renderer/mapboxgl/mapboxgl-settings.json.js +4981 -0
  229. package/components/leaflet-map/renderer/mapboxgl/mapboxgl-settings.json.js.map +1 -0
  230. package/components/leaflet-map/renderer/mapboxgl-layer.d.ts +8 -0
  231. package/components/leaflet-map/renderer/mapboxgl-layer.js +27 -0
  232. package/components/leaflet-map/renderer/mapboxgl-layer.js.map +1 -0
  233. package/components/leaflet-map/renderer/mapboxgl-utils.d.ts +4 -0
  234. package/components/leaflet-map/renderer/mapboxgl-utils.js +39 -0
  235. package/components/leaflet-map/renderer/mapboxgl-utils.js.map +1 -0
  236. package/{src/components → components}/leaflet-map/renderer/maplibre-gl.css.js +4 -2
  237. package/components/leaflet-map/renderer/maplibre-gl.css.js.map +1 -0
  238. package/components/leaflet-map/style.d.ts +52 -0
  239. package/components/leaflet-map/style.js +183 -0
  240. package/components/leaflet-map/style.js.map +1 -0
  241. package/components/leaflet-map/types.d.ts +75 -0
  242. package/components/leaflet-map/types.js +15 -0
  243. package/components/leaflet-map/types.js.map +1 -0
  244. package/components/line/config.d.ts +30 -0
  245. package/components/line/config.js +17 -0
  246. package/components/line/config.js.map +1 -0
  247. package/components/line/index.d.ts +27 -0
  248. package/components/line/index.js +152 -0
  249. package/components/line/index.js.map +1 -0
  250. package/components/line/style.d.ts +6 -0
  251. package/{src/components/line/style.ts → components/line/style.js} +16 -18
  252. package/components/line/style.js.map +1 -0
  253. package/components/line/types.d.ts +12 -0
  254. package/components/nested-donut/config.d.ts +59 -0
  255. package/components/nested-donut/config.js +19 -0
  256. package/components/nested-donut/config.js.map +1 -0
  257. package/components/nested-donut/index.d.ts +38 -0
  258. package/components/nested-donut/index.js +133 -0
  259. package/components/nested-donut/index.js.map +1 -0
  260. package/components/nested-donut/modules/arc.d.ts +17 -0
  261. package/components/nested-donut/modules/arc.js +50 -0
  262. package/components/nested-donut/modules/arc.js.map +1 -0
  263. package/components/nested-donut/modules/label.d.ts +7 -0
  264. package/components/nested-donut/modules/label.js +34 -0
  265. package/components/nested-donut/modules/label.js.map +1 -0
  266. package/components/nested-donut/style.d.ts +26 -0
  267. package/components/nested-donut/style.js +70 -0
  268. package/components/nested-donut/style.js.map +1 -0
  269. package/components/nested-donut/types.d.ts +24 -0
  270. package/components/nested-donut/types.js +11 -0
  271. package/components/nested-donut/types.js.map +1 -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 +59 -0
  276. package/components/sankey/index.js +306 -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 +168 -0
  280. package/components/sankey/modules/label.js.map +1 -0
  281. package/components/sankey/modules/link.d.ts +14 -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/{src/components/sankey/style.ts → components/sankey/style.js} +44 -60
  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 +28 -0
  297. package/components/scatter/index.js +167 -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 +86 -0
  301. package/components/scatter/modules/point.js.map +1 -0
  302. package/components/scatter/modules/utils.d.ts +11 -0
  303. package/components/scatter/modules/utils.js +112 -0
  304. package/components/scatter/modules/utils.js.map +1 -0
  305. package/components/scatter/style.d.ts +5 -0
  306. package/{src/components/scatter/style.ts → components/scatter/style.js} +14 -15
  307. package/components/scatter/style.js.map +1 -0
  308. package/components/scatter/types.d.ts +19 -0
  309. package/components/stacked-bar/config.d.ts +38 -0
  310. package/components/stacked-bar/config.js +20 -0
  311. package/components/stacked-bar/config.js.map +1 -0
  312. package/components/stacked-bar/index.d.ts +28 -0
  313. package/components/stacked-bar/index.js +208 -0
  314. package/components/stacked-bar/index.js.map +1 -0
  315. package/components/stacked-bar/style.d.ts +5 -0
  316. package/{src/components/stacked-bar/style.ts → components/stacked-bar/style.js} +14 -15
  317. package/components/stacked-bar/style.js.map +1 -0
  318. package/components/stacked-bar/types.d.ts +5 -0
  319. package/components/timeline/config.d.ts +43 -0
  320. package/components/timeline/config.js +24 -0
  321. package/components/timeline/config.js.map +1 -0
  322. package/components/timeline/index.d.ts +41 -0
  323. package/components/timeline/index.js +244 -0
  324. package/components/timeline/index.js.map +1 -0
  325. package/components/timeline/style.d.ts +13 -0
  326. package/{src/components/timeline/style.ts → components/timeline/style.js} +30 -39
  327. package/components/timeline/style.js.map +1 -0
  328. package/components/tooltip/config.d.ts +68 -0
  329. package/components/tooltip/config.js +20 -0
  330. package/components/tooltip/config.js.map +1 -0
  331. package/components/tooltip/index.d.ts +36 -0
  332. package/components/tooltip/index.js +184 -0
  333. package/components/tooltip/index.js.map +1 -0
  334. package/{src/components → components}/tooltip/style.js +14 -11
  335. package/components/tooltip/style.js.map +1 -0
  336. package/components/topojson-map/config.d.ts +99 -0
  337. package/components/topojson-map/config.js +42 -0
  338. package/components/topojson-map/config.js.map +1 -0
  339. package/components/topojson-map/index.d.ts +52 -0
  340. package/components/topojson-map/index.js +355 -0
  341. package/components/topojson-map/index.js.map +1 -0
  342. package/components/topojson-map/style.d.ts +11 -0
  343. package/{src/components/topojson-map/style.ts → components/topojson-map/style.js} +26 -33
  344. package/components/topojson-map/style.js.map +1 -0
  345. package/components/topojson-map/types.d.ts +78 -0
  346. package/components/topojson-map/types.js +80 -0
  347. package/components/topojson-map/types.js.map +1 -0
  348. package/components/topojson-map/utils.d.ts +3 -0
  349. package/components/topojson-map/utils.js +30 -0
  350. package/components/topojson-map/utils.js.map +1 -0
  351. package/components/vis-controls/config.d.ts +12 -0
  352. package/components/vis-controls/config.js +13 -0
  353. package/components/vis-controls/config.js.map +1 -0
  354. package/components/vis-controls/index.d.ts +14 -0
  355. package/components/vis-controls/index.js +52 -0
  356. package/components/vis-controls/index.js.map +1 -0
  357. package/components/vis-controls/style.d.ts +11 -0
  358. package/{src/components/vis-controls/style.ts → components/vis-controls/style.js} +27 -34
  359. package/components/vis-controls/style.js.map +1 -0
  360. package/components/vis-controls/types.d.ts +13 -0
  361. package/components/vis-controls/types.js +8 -0
  362. package/components/vis-controls/types.js.map +1 -0
  363. package/components/xy-labels/config.d.ts +48 -0
  364. package/components/xy-labels/config.js +25 -0
  365. package/components/xy-labels/config.js.map +1 -0
  366. package/components/xy-labels/index.d.ts +15 -0
  367. package/components/xy-labels/index.js +87 -0
  368. package/components/xy-labels/index.js.map +1 -0
  369. package/components/xy-labels/modules/label.d.ts +9 -0
  370. package/components/xy-labels/modules/label.js +107 -0
  371. package/components/xy-labels/modules/label.js.map +1 -0
  372. package/components/xy-labels/style.d.ts +5 -0
  373. package/{src/components/xy-labels/style.ts → components/xy-labels/style.js} +14 -15
  374. package/components/xy-labels/style.js.map +1 -0
  375. package/components/xy-labels/types.d.ts +23 -0
  376. package/components/xy-labels/types.js +9 -0
  377. package/components/xy-labels/types.js.map +1 -0
  378. package/components.d.ts +51 -0
  379. package/components.js +29 -0
  380. package/components.js.map +1 -0
  381. package/containers/single-container/config.d.ts +12 -0
  382. package/containers/single-container/config.js +12 -0
  383. package/containers/single-container/config.js.map +1 -0
  384. package/containers/single-container/index.d.ts +19 -0
  385. package/containers/single-container/index.js +128 -0
  386. package/containers/single-container/index.js.map +1 -0
  387. package/containers/xy-container/config.d.ts +99 -0
  388. package/containers/xy-container/config.js +30 -0
  389. package/containers/xy-container/config.js.map +1 -0
  390. package/containers/xy-container/index.d.ts +34 -0
  391. package/containers/xy-container/index.js +330 -0
  392. package/containers/xy-container/index.js.map +1 -0
  393. package/containers.d.ts +6 -0
  394. package/containers.js +4 -0
  395. package/containers.js.map +1 -0
  396. package/core/component/config.d.ts +58 -0
  397. package/core/component/config.js +14 -0
  398. package/core/component/config.js.map +1 -0
  399. package/core/component/index.d.ts +43 -0
  400. package/core/component/index.js +118 -0
  401. package/core/component/index.js.map +1 -0
  402. package/core/component/types.d.ts +2 -0
  403. package/core/component/types.js +2 -0
  404. package/core/component/types.js.map +1 -0
  405. package/core/config/index.d.ts +3 -0
  406. package/core/config/index.js +16 -0
  407. package/core/config/index.js.map +1 -0
  408. package/core/container/config.d.ts +48 -0
  409. package/core/container/config.js +29 -0
  410. package/core/container/config.js.map +1 -0
  411. package/core/container/index.d.ts +26 -0
  412. package/core/container/index.js +106 -0
  413. package/core/container/index.js.map +1 -0
  414. package/core/xy-component/config.d.ts +38 -0
  415. package/core/xy-component/config.js +20 -0
  416. package/core/xy-component/config.js.map +1 -0
  417. package/core/xy-component/index.d.ts +27 -0
  418. package/core/xy-component/index.js +74 -0
  419. package/core/xy-component/index.js.map +1 -0
  420. package/data-models/core.d.ts +6 -0
  421. package/data-models/core.js +14 -0
  422. package/data-models/core.js.map +1 -0
  423. package/data-models/graph.d.ts +24 -0
  424. package/data-models/graph.js +107 -0
  425. package/data-models/graph.js.map +1 -0
  426. package/data-models/map-graph.d.ts +21 -0
  427. package/data-models/map-graph.js +62 -0
  428. package/data-models/map-graph.js.map +1 -0
  429. package/data-models/map.d.ts +5 -0
  430. package/data-models/map.js +12 -0
  431. package/data-models/map.js.map +1 -0
  432. package/data-models/series.d.ts +6 -0
  433. package/data-models/series.js +19 -0
  434. package/data-models/series.js.map +1 -0
  435. package/index.d.ts +7 -0
  436. package/index.js +55 -0
  437. package/index.js.map +1 -0
  438. package/maps/china-provinces.json.js +140373 -0
  439. package/maps/fr-regions.json.js +14162 -0
  440. package/maps/germany-regions.json.js +35760 -0
  441. package/maps/ind-regions.json.js +290584 -0
  442. package/maps/uk-regions.json.js +96233 -0
  443. package/maps/us-counties.json.js +206318 -0
  444. package/maps/us-states.json.js +16345 -0
  445. package/maps/world-110m-alpha.json.js +251366 -0
  446. package/maps/world-simple.json.js +89428 -0
  447. package/maps/world-simplest.json.js +28175 -0
  448. package/maps.d.ts +60 -0
  449. package/maps.js +23 -0
  450. package/package.json +1 -1
  451. package/styles/colors.d.ts +7 -0
  452. package/styles/colors.js +24 -0
  453. package/styles/colors.js.map +1 -0
  454. package/styles/index.d.ts +7 -0
  455. package/styles/index.js +38 -0
  456. package/styles/index.js.map +1 -0
  457. package/styles/sizes.d.ts +2 -0
  458. package/{src/styles/sizes.ts → styles/sizes.js} +8 -6
  459. package/styles/sizes.js.map +1 -0
  460. package/types/accessor.d.ts +5 -0
  461. package/types/accessor.js +2 -0
  462. package/types/accessor.js.map +1 -0
  463. package/types/component.d.ts +13 -0
  464. package/types/component.js +14 -0
  465. package/types/component.js.map +1 -0
  466. package/types/curve.d.ts +40 -0
  467. package/types/curve.js +46 -0
  468. package/types/curve.js.map +1 -0
  469. package/types/data.d.ts +7 -0
  470. package/types/data.js +2 -0
  471. package/types/data.js.map +1 -0
  472. package/types/direction.d.ts +6 -0
  473. package/types/direction.js +10 -0
  474. package/types/direction.js.map +1 -0
  475. package/types/graph.d.ts +35 -0
  476. package/types/graph.js +2 -0
  477. package/types/graph.js.map +1 -0
  478. package/types/map.d.ts +4 -0
  479. package/types/map.js +2 -0
  480. package/types/map.js.map +1 -0
  481. package/types/misc.d.ts +8 -0
  482. package/types/position.d.ts +20 -0
  483. package/types/position.js +27 -0
  484. package/types/position.js.map +1 -0
  485. package/types/scale.d.ts +23 -0
  486. package/types/scale.js +27 -0
  487. package/types/scale.js.map +1 -0
  488. package/types/shape.d.ts +7 -0
  489. package/types/shape.js +11 -0
  490. package/types/shape.js.map +1 -0
  491. package/types/spacing.d.ts +6 -0
  492. package/types/spacing.js +2 -0
  493. package/types/spacing.js.map +1 -0
  494. package/types/svg.d.ts +18 -0
  495. package/types/svg.js +22 -0
  496. package/types/svg.js.map +1 -0
  497. package/types/symbol.d.ts +18 -0
  498. package/types/symbol.js +24 -0
  499. package/types/symbol.js.map +1 -0
  500. package/types/text.d.ts +47 -0
  501. package/types/text.js +26 -0
  502. package/types/text.js.map +1 -0
  503. package/types.d.ts +27 -0
  504. package/types.js +30 -0
  505. package/types.js.map +1 -0
  506. package/utils/color.d.ts +10 -0
  507. package/utils/color.js +32 -0
  508. package/utils/color.js.map +1 -0
  509. package/utils/d3.d.ts +3 -0
  510. package/utils/d3.js +16 -0
  511. package/utils/d3.js.map +1 -0
  512. package/utils/data.d.ts +45 -0
  513. package/utils/data.js +274 -0
  514. package/utils/data.js.map +1 -0
  515. package/utils/html.d.ts +1 -0
  516. package/utils/html.js +16 -0
  517. package/utils/html.js.map +1 -0
  518. package/utils/map.d.ts +2 -0
  519. package/utils/map.js +20 -0
  520. package/utils/map.js.map +1 -0
  521. package/utils/misc.d.ts +9 -0
  522. package/utils/misc.js +47 -0
  523. package/utils/misc.js.map +1 -0
  524. package/utils/path.d.ts +23 -0
  525. package/utils/path.js +144 -0
  526. package/utils/path.js.map +1 -0
  527. package/utils/scale.d.ts +1 -0
  528. package/utils/style.d.ts +6 -0
  529. package/utils/style.js +24 -0
  530. package/utils/style.js.map +1 -0
  531. package/utils/svg.d.ts +3 -0
  532. package/utils/text.d.ts +139 -0
  533. package/utils/text.js +443 -0
  534. package/utils/text.js.map +1 -0
  535. package/utils/type.d.ts +5 -0
  536. package/declaration.d.ts +0 -1
  537. package/index.ts +0 -1
  538. package/licences.txt +0 -43
  539. package/maps.ts +0 -1
  540. package/rollup.config.js +0 -71
  541. package/rules/ts-getter-setter.js +0 -35
  542. package/src/components/area/config.ts +0 -29
  543. package/src/components/area/index.ts +0 -133
  544. package/src/components/area/types.ts +0 -2
  545. package/src/components/axis/config.ts +0 -76
  546. package/src/components/axis/index.ts +0 -363
  547. package/src/components/axis/types.ts +0 -4
  548. package/src/components/brush/config.ts +0 -51
  549. package/src/components/brush/index.ts +0 -233
  550. package/src/components/brush/types.ts +0 -8
  551. package/src/components/bullet-legend/config.ts +0 -38
  552. package/src/components/bullet-legend/index.ts +0 -104
  553. package/src/components/bullet-legend/types.ts +0 -7
  554. package/src/components/chord-diagram/config.ts +0 -53
  555. package/src/components/chord-diagram/index.ts +0 -401
  556. package/src/components/chord-diagram/modules/label.ts +0 -155
  557. package/src/components/chord-diagram/modules/link.ts +0 -91
  558. package/src/components/chord-diagram/modules/node.ts +0 -80
  559. package/src/components/chord-diagram/types.ts +0 -68
  560. package/src/components/crosshair/config.ts +0 -48
  561. package/src/components/crosshair/index.ts +0 -220
  562. package/src/components/crosshair/types.ts +0 -15
  563. package/src/components/donut/config.ts +0 -65
  564. package/src/components/donut/index.ts +0 -148
  565. package/src/components/donut/modules/arc.ts +0 -86
  566. package/src/components/donut/types.ts +0 -17
  567. package/src/components/flow-legend/config.ts +0 -31
  568. package/src/components/flow-legend/index.ts +0 -103
  569. package/src/components/flow-legend/types.ts +0 -10
  570. package/src/components/free-brush/config.ts +0 -54
  571. package/src/components/free-brush/index.ts +0 -207
  572. package/src/components/free-brush/types.ts +0 -8
  573. package/src/components/graph/config.ts +0 -280
  574. package/src/components/graph/index.ts +0 -809
  575. package/src/components/graph/modules/layout-helpers.ts +0 -96
  576. package/src/components/graph/modules/layout.ts +0 -502
  577. package/src/components/graph/modules/link/helper.ts +0 -105
  578. package/src/components/graph/modules/link/index.ts +0 -302
  579. package/src/components/graph/modules/node/helper.ts +0 -162
  580. package/src/components/graph/modules/node/index.ts +0 -343
  581. package/src/components/graph/modules/panel/helper.ts +0 -160
  582. package/src/components/graph/modules/panel/index.ts +0 -137
  583. package/src/components/graph/modules/shape.ts +0 -108
  584. package/src/components/graph/modules/zoom-levels.ts +0 -6
  585. package/src/components/graph/style.ts +0 -72
  586. package/src/components/graph/types.ts +0 -152
  587. package/src/components/grouped-bar/config.ts +0 -40
  588. package/src/components/grouped-bar/index.ts +0 -325
  589. package/src/components/leaflet-flow-map/config.ts +0 -60
  590. package/src/components/leaflet-flow-map/index.ts +0 -279
  591. package/src/components/leaflet-flow-map/renderer-utils.ts +0 -14
  592. package/src/components/leaflet-flow-map/renderer.ts +0 -146
  593. package/src/components/leaflet-flow-map/types.ts +0 -18
  594. package/src/components/leaflet-map/config.ts +0 -234
  595. package/src/components/leaflet-map/index.ts +0 -808
  596. package/src/components/leaflet-map/leaflet.css +0 -625
  597. package/src/components/leaflet-map/modules/clusterBackground.ts +0 -34
  598. package/src/components/leaflet-map/modules/donut.ts +0 -37
  599. package/src/components/leaflet-map/modules/map.ts +0 -178
  600. package/src/components/leaflet-map/modules/node.ts +0 -208
  601. package/src/components/leaflet-map/modules/selectionRing.ts +0 -63
  602. package/src/components/leaflet-map/modules/utils.ts +0 -290
  603. package/src/components/leaflet-map/renderer/map-style.ts +0 -24
  604. package/src/components/leaflet-map/renderer/mapboxgl/mapboxgl-dark-theme.json +0 -35
  605. package/src/components/leaflet-map/renderer/mapboxgl/mapboxgl-light-theme.json +0 -35
  606. package/src/components/leaflet-map/renderer/mapboxgl/mapboxgl-settings.json +0 -2185
  607. package/src/components/leaflet-map/renderer/mapboxgl-layer.ts +0 -43
  608. package/src/components/leaflet-map/renderer/mapboxgl-utils.ts +0 -40
  609. package/src/components/leaflet-map/style.ts +0 -217
  610. package/src/components/leaflet-map/types.ts +0 -75
  611. package/src/components/line/config.ts +0 -34
  612. package/src/components/line/index.ts +0 -188
  613. package/src/components/line/types.ts +0 -3
  614. package/src/components/nested-donut/config.ts +0 -75
  615. package/src/components/nested-donut/index.ts +0 -176
  616. package/src/components/nested-donut/modules/arc.ts +0 -78
  617. package/src/components/nested-donut/modules/label.ts +0 -63
  618. package/src/components/nested-donut/style.ts +0 -82
  619. package/src/components/nested-donut/types.ts +0 -29
  620. package/src/components/sankey/config.ts +0 -195
  621. package/src/components/sankey/index.ts +0 -387
  622. package/src/components/sankey/modules/label.ts +0 -228
  623. package/src/components/sankey/modules/link.ts +0 -141
  624. package/src/components/sankey/modules/node.ts +0 -221
  625. package/src/components/sankey/types.ts +0 -95
  626. package/src/components/scatter/config.ts +0 -49
  627. package/src/components/scatter/index.ts +0 -220
  628. package/src/components/scatter/modules/point.ts +0 -123
  629. package/src/components/scatter/modules/utils.ts +0 -150
  630. package/src/components/scatter/types.ts +0 -21
  631. package/src/components/stacked-bar/config.ts +0 -42
  632. package/src/components/stacked-bar/index.ts +0 -267
  633. package/src/components/stacked-bar/types.ts +0 -5
  634. package/src/components/timeline/config.ts +0 -49
  635. package/src/components/timeline/index.ts +0 -302
  636. package/src/components/tooltip/config.ts +0 -69
  637. package/src/components/tooltip/index.ts +0 -220
  638. package/src/components/topojson-map/config.ts +0 -124
  639. package/src/components/topojson-map/index.ts +0 -436
  640. package/src/components/topojson-map/types.ts +0 -123
  641. package/src/components/topojson-map/utils.ts +0 -29
  642. package/src/components/vis-controls/config.ts +0 -16
  643. package/src/components/vis-controls/index.ts +0 -68
  644. package/src/components/vis-controls/types.ts +0 -14
  645. package/src/components/xy-labels/config.ts +0 -56
  646. package/src/components/xy-labels/index.ts +0 -109
  647. package/src/components/xy-labels/modules/label.ts +0 -140
  648. package/src/components/xy-labels/types.ts +0 -26
  649. package/src/components.ts +0 -56
  650. package/src/containers/single-container/config.ts +0 -15
  651. package/src/containers/single-container/index.ts +0 -150
  652. package/src/containers/xy-container/config.ts +0 -112
  653. package/src/containers/xy-container/index.ts +0 -407
  654. package/src/containers.ts +0 -6
  655. package/src/core/component/config.ts +0 -61
  656. package/src/core/component/index.ts +0 -154
  657. package/src/core/component/types.ts +0 -9
  658. package/src/core/config/index.ts +0 -12
  659. package/src/core/container/config.ts +0 -56
  660. package/src/core/container/index.ts +0 -136
  661. package/src/core/xy-component/config.ts +0 -46
  662. package/src/core/xy-component/index.ts +0 -90
  663. package/src/data-models/core.ts +0 -15
  664. package/src/data-models/graph.ts +0 -138
  665. package/src/data-models/map-graph.ts +0 -72
  666. package/src/data-models/map.ts +0 -18
  667. package/src/data-models/series.ts +0 -16
  668. package/src/index.ts +0 -7
  669. package/src/maps/china-provinces.json +0 -1
  670. package/src/maps/fr-regions.json +0 -1
  671. package/src/maps/germany-regions.json +0 -1
  672. package/src/maps/ind-regions.json +0 -1
  673. package/src/maps/uk-regions.json +0 -1
  674. package/src/maps/us-counties.json +0 -1
  675. package/src/maps/us-states.json +0 -1
  676. package/src/maps/world-110m-alpha.json +0 -1
  677. package/src/maps/world-simple.json +0 -1
  678. package/src/maps/world-simplest.json +0 -1
  679. package/src/maps.ts +0 -34
  680. package/src/styles/colors.ts +0 -28
  681. package/src/styles/index.ts +0 -38
  682. package/src/types/accessor.ts +0 -5
  683. package/src/types/component.ts +0 -15
  684. package/src/types/curve.ts +0 -62
  685. package/src/types/data.ts +0 -5
  686. package/src/types/direction.ts +0 -6
  687. package/src/types/graph.ts +0 -40
  688. package/src/types/map.ts +0 -5
  689. package/src/types/misc.ts +0 -10
  690. package/src/types/position.ts +0 -23
  691. package/src/types/scale.ts +0 -47
  692. package/src/types/shape.ts +0 -7
  693. package/src/types/spacing.ts +0 -6
  694. package/src/types/svg.ts +0 -32
  695. package/src/types/symbol.ts +0 -21
  696. package/src/types/text.ts +0 -71
  697. package/src/types.ts +0 -31
  698. package/src/utils/color.ts +0 -41
  699. package/src/utils/d3.ts +0 -15
  700. package/src/utils/data.ts +0 -328
  701. package/src/utils/html.ts +0 -13
  702. package/src/utils/map.ts +0 -29
  703. package/src/utils/misc.ts +0 -54
  704. package/src/utils/path.ts +0 -196
  705. package/src/utils/scale.ts +0 -1
  706. package/src/utils/style.ts +0 -37
  707. package/src/utils/svg.ts +0 -49
  708. package/src/utils/text.ts +0 -529
  709. package/src/utils/type.ts +0 -9
  710. package/tsconfig.json +0 -29
@@ -1,96 +0,0 @@
1
- // Types
2
- import type { ElkNode } from 'elkjs/lib/elk.bundled.js'
3
- import { GraphInputLink, GraphInputNode } from 'types/graph'
4
- import { GenericAccessor } from 'types/accessor'
5
-
6
- // Utils
7
- import { getValue, isPlainObject, merge } from 'utils/data'
8
-
9
- // Local Types
10
- import { GraphNode, GraphElkLayoutSettings } from '../types'
11
-
12
- export const DEFAULT_ELK_SETTINGS = {
13
- hierarchyHandling: 'INCLUDE_CHILDREN',
14
- 'nodePlacement.strategy': 'NETWORK_SIMPLEX',
15
- 'elk.padding': '[top=15.0,left=15.0,bottom=15.0,right=15.0]',
16
- 'spacing.nodeNodeBetweenLayers': '50',
17
- 'spacing.edgeNodeBetweenLayers': '50',
18
- 'spacing.nodeNode': '10',
19
- }
20
-
21
- export function positionNonConnectedNodes<N extends GraphInputNode, L extends GraphInputLink> (
22
- nodes: GraphNode<N, L>[],
23
- y: number,
24
- spacing: number,
25
- width: number,
26
- xStart = 0
27
- ): void {
28
- nodes.forEach((d, i) => {
29
- const x = spacing / 2 + i * spacing
30
- const rowIdx = width ? Math.floor(x / width) : 0
31
- d.y = (y + rowIdx * spacing) || 0
32
- d.x = width ? x % width + xStart : x + xStart
33
- })
34
- }
35
-
36
- export type GraphElkHierarchyNode<N extends GraphInputNode, L extends GraphInputLink> = {
37
- id: string;
38
- children: GraphNode<N, L>[] | GraphElkHierarchyNode<N, L>;
39
- layoutOptions: GraphElkLayoutSettings;
40
- }
41
-
42
- export type GraphElkHierarchyNodeMap<N extends GraphInputNode, L extends GraphInputLink>
43
- = Map<string | undefined | null, GraphNode<N, L>[] | GraphElkHierarchyNodeMap<N, L>>
44
-
45
-
46
- export function toElkHierarchy<N extends GraphInputNode, L extends GraphInputLink> (
47
- d: GraphElkHierarchyNodeMap<N, L> | GraphNode<N, L>[],
48
- layoutOptions: GenericAccessor<GraphElkLayoutSettings, string> | undefined
49
- ): (GraphElkHierarchyNode<N, L> | GraphNode<N, L>)[] {
50
- if (!(d instanceof Map)) return d
51
-
52
- const hierarchyNode = Array.from(d.entries()).map(([key, value]) => {
53
- const children = toElkHierarchy(value, layoutOptions)
54
- if (key) {
55
- const layoutOps = isPlainObject(layoutOptions) ? DEFAULT_ELK_SETTINGS : merge(DEFAULT_ELK_SETTINGS, getValue(key, layoutOptions))
56
- return {
57
- id: key,
58
- layoutOptions: layoutOps,
59
- children,
60
- } as GraphElkHierarchyNode<N, L>
61
- } else {
62
- return children
63
- }
64
- }).flat()
65
-
66
- return hierarchyNode
67
- }
68
-
69
- export function adjustElkHierarchyCoordinates (node: ElkNode): void {
70
- const parentX = node.x
71
- const parentY = node.y
72
-
73
- node.edges?.forEach(edge => {
74
- edge.sections?.forEach(section => {
75
- section.startPoint.x += parentX
76
- section.startPoint.y += parentY
77
- section.endPoint.x += parentX
78
- section.endPoint.y += parentY
79
- section.bendPoints?.forEach(bendPoint => {
80
- bendPoint.x += parentX
81
- bendPoint.y += parentY
82
- })
83
- })
84
-
85
- edge.labels?.forEach(label => {
86
- label.x += parentX
87
- label.y += parentY
88
- })
89
- })
90
-
91
- node.children?.forEach(child => {
92
- child.x += parentX
93
- child.y += parentY
94
- adjustElkHierarchyCoordinates(child)
95
- })
96
- }
@@ -1,502 +0,0 @@
1
- import { min, max, group } from 'd3-array'
2
- import type { ElkNode } from 'elkjs/lib/elk.bundled.js'
3
-
4
- // Core
5
- import { GraphDataModel } from 'data-models/graph'
6
-
7
- // Utils
8
- import { without, clamp, groupBy, unique, sortBy, getString, getNumber, getValue, merge } from 'utils/data'
9
-
10
- // Types
11
- import { GraphInputLink, GraphInputNode } from 'types/graph'
12
-
13
- // Local Types
14
- import { GraphNode, GraphLink } from '../types'
15
-
16
- // Config
17
- import { GraphConfig } from '../config'
18
-
19
- // Helpers
20
- import { getMaxNodeSize, configuredNodeSize, getNodeSize, getAverageNodeSize } from './node/helper'
21
- import {
22
- DEFAULT_ELK_SETTINGS,
23
- adjustElkHierarchyCoordinates,
24
- positionNonConnectedNodes,
25
- toElkHierarchy,
26
- GraphElkHierarchyNode,
27
- } from './layout-helpers'
28
-
29
- export function applyLayoutCircular<N extends GraphInputNode, L extends GraphInputLink> (
30
- datamodel: GraphDataModel<N, L, GraphNode<N, L>, GraphLink<N, L>>,
31
- config: GraphConfig<N, L>,
32
- width: number,
33
- height: number
34
- ): void {
35
- const { nonConnectedNodes, connectedNodes, nodes } = datamodel
36
- const { layoutNonConnectedAside, nodeSize } = config
37
-
38
- const activeWidth = width
39
- const activeHeight = height
40
-
41
- // Handle layout nodes
42
- const layoutNodes = layoutNonConnectedAside ? connectedNodes : nodes
43
- const maxNodeSize = getMaxNodeSize(layoutNodes, nodeSize)
44
- const yRatio = activeHeight / maxNodeSize
45
- const yScaling = yRatio < layoutNodes.length / 2 ? layoutNodes.length / 2 / yRatio : 1
46
- const xRatio = activeWidth / maxNodeSize
47
- const xScaling = xRatio < layoutNodes.length / 2 ? layoutNodes.length / 2 / xRatio : 1
48
- const scaling = Math.max(xScaling, yScaling)
49
-
50
- layoutNodes.forEach((d, i) => {
51
- const rX = scaling * activeWidth / 2
52
- const rY = scaling * activeHeight / 2 // maxNodeSize * layoutNodes.length / 4
53
- const angle = 2 * i * Math.PI / layoutNodes.length
54
- d.x = activeWidth / 2 + rX * Math.cos(angle)
55
- d.y = activeHeight / 2 + rY * Math.sin(angle)
56
- })
57
-
58
- // Handle non-connected nodes
59
- if (layoutNonConnectedAside) {
60
- const maxSize = getMaxNodeSize(nonConnectedNodes, nodeSize)
61
- const maxY = max<number>(connectedNodes.map(d => d.y))
62
- const maxX = max<number>(connectedNodes.map(d => d.x))
63
- const minX = min<number>(connectedNodes.map(d => d.x))
64
- const graphWidth = maxX - minX
65
- positionNonConnectedNodes(nonConnectedNodes, maxY + maxSize * 3, maxSize * 2.25, Math.max(graphWidth, width), minX)
66
- }
67
- }
68
-
69
- export function applyLayoutParallel<N extends GraphInputNode, L extends GraphInputLink> (
70
- datamodel: GraphDataModel<N, L, GraphNode<N, L>, GraphLink<N, L>>,
71
- config: GraphConfig<N, L>,
72
- width: number,
73
- height: number,
74
- orientation?: string
75
- ): void {
76
- const { nonConnectedNodes, connectedNodes, nodes } = datamodel
77
- const {
78
- layoutNonConnectedAside, layoutGroupOrder, layoutParallelSortConnectionsByGroup, layoutParallelNodesPerColumn,
79
- layoutParallelSubGroupsPerRow, nodeSize, layoutNodeGroup, layoutParallelNodeSubGroup, layoutParallelGroupSpacing,
80
- } = config
81
-
82
- const activeWidth = width - configuredNodeSize(nodeSize)
83
- const activeHeight = height - configuredNodeSize(nodeSize) - (nonConnectedNodes.length ? configuredNodeSize(nodeSize) * 5 : 0)
84
-
85
- // Handle connected nodes
86
- const layoutNodes = layoutNonConnectedAside ? connectedNodes : nodes
87
- const groupNames = unique(layoutNodes.map(d => getString(d, layoutNodeGroup, d._index)))
88
- const groupNamesSorted: string[] = sortBy(groupNames, d => layoutGroupOrder.indexOf(d))
89
-
90
- const groups = groupNamesSorted.map(groupName => {
91
- const groupNodes = layoutNodes.filter(d => getString(d, layoutNodeGroup, d._index) === groupName)
92
- const groupedBySubgroup = groupBy(groupNodes, d => getString(d, layoutParallelNodeSubGroup, d._index))
93
- const subgroups = Object.keys(groupedBySubgroup).map(name => ({
94
- nodes: groupedBySubgroup[name],
95
- name,
96
- }))
97
-
98
- return {
99
- name: groupName,
100
- nodes: groupNodes,
101
- subgroups,
102
- }
103
- })
104
-
105
- // Sort
106
- const group = groups.find(g => g.name === layoutParallelSortConnectionsByGroup)
107
- if (group) {
108
- const sortMap = {}
109
- let idx = 0
110
- group.subgroups.forEach(subgroup => {
111
- subgroup.nodes.forEach(node => {
112
- node.links.forEach(link => {
113
- const linkTargetId = link?.target._id
114
- sortMap[linkTargetId] = idx
115
- idx = idx + 1
116
- })
117
- })
118
- })
119
-
120
- without(groups, group).forEach(g => {
121
- g.subgroups.forEach(subgroup => {
122
- subgroup.nodes.sort((a, b) => {
123
- return (sortMap[a._id] || 0) - (sortMap[b._id] || 0)
124
- })
125
- })
126
- })
127
- }
128
-
129
- const maxN = max(groups, d => d.nodes?.length)
130
- const labelApprxHeight = 40
131
- const labelMargin = 10
132
- const subgroupMargin = 40
133
- const maxNodeSize = getMaxNodeSize(layoutNodes, nodeSize)
134
-
135
- if (orientation === 'horizontal') {
136
- const minHorizontalStep = 2 * maxNodeSize + labelMargin
137
- const maxHorizontalStep = 3.5 * maxNodeSize + labelMargin
138
- const horizontalStep = clamp(activeWidth / (maxN - 1), minHorizontalStep, maxHorizontalStep)
139
-
140
- const maxVerticalStep = maxNodeSize * 4 + labelApprxHeight
141
- const minVerticalStep = maxNodeSize * 1.5 + labelApprxHeight
142
- const verticalStep = (maxNodeSize + layoutParallelGroupSpacing) || clamp(activeHeight / (groups.length - 1), minVerticalStep, maxVerticalStep)
143
- const subgroupNodeStep = maxNodeSize + labelApprxHeight + labelMargin
144
-
145
- let y0 = (groups.length < 2) ? height / 2 : 0
146
- groups.forEach(group => {
147
- let x0 = 0
148
- let dy = 0
149
- let subgroupMaxWidth = 0
150
- let groupWidth = 0
151
- let groupHeight = 0
152
- let k = 0
153
- group.subgroups.forEach(subgroup => {
154
- const subgroupRows = Math.ceil(subgroup.nodes.length / layoutParallelNodesPerColumn)
155
- let n = 0
156
- let x = x0
157
- let y = y0 + dy
158
- subgroup.nodes.forEach(d => {
159
- x = x + horizontalStep
160
- d.x = x
161
- d.y = y
162
- groupWidth = Math.max(groupWidth, x)
163
-
164
- n = n + 1
165
- if (n >= layoutParallelNodesPerColumn) {
166
- n = 0
167
- y += subgroupNodeStep
168
- x = x0
169
- }
170
- })
171
-
172
- const subgroupWidth = Math.min(subgroup.nodes.length, layoutParallelNodesPerColumn) * horizontalStep
173
- const subgroupHeight = subgroupRows * subgroupNodeStep
174
- subgroupMaxWidth = Math.max(subgroupMaxWidth, subgroupWidth)
175
- dy = dy + subgroupHeight + subgroupMargin
176
- k = k + 1
177
- if (k >= layoutParallelSubGroupsPerRow) {
178
- k = 0
179
- dy = 0
180
- x0 = x0 + subgroupMaxWidth + subgroupMargin
181
- subgroupMaxWidth = 0
182
- }
183
-
184
- groupHeight = Math.max(groupHeight, y)
185
- // x0 += Math.min(subgroup.nodes.length, layoutParallelNodesPerColumn) * horizontalStep + subgroupMargin
186
- })
187
-
188
- // Center group horizontally
189
- group.subgroups.forEach(subgroup => {
190
- subgroup.nodes.forEach(d => {
191
- d.x -= groupWidth / 2
192
- })
193
- })
194
- groupWidth = 0
195
-
196
- // Update y0 for the next group
197
- y0 = groupHeight + verticalStep
198
- })
199
- } else {
200
- const minHorizontalStep = 6 * maxNodeSize + labelMargin
201
- const maxHorizontalStep = 10 * maxNodeSize + labelMargin
202
- const horizontalStep = (maxNodeSize + layoutParallelGroupSpacing) || clamp(activeWidth / (maxN - 1), minHorizontalStep, maxHorizontalStep)
203
-
204
- const maxVerticalStep = maxNodeSize * 2.0 + labelApprxHeight
205
- const minVerticalStep = maxNodeSize * 1.5 + labelApprxHeight
206
- const verticalStep = clamp(activeHeight / (groups.length - 1), minVerticalStep, maxVerticalStep)
207
- const subgroupNodeStep = maxNodeSize * 2.0
208
-
209
- let x0 = (groups.length < 2) ? width / 2 : 0
210
- groups.forEach(group => {
211
- let y0 = 0
212
- let dx = 0 // Horizontal shift inside the group (column)
213
- let subgroupMaxHeight = 0
214
- let groupWidth = 0
215
- let groupHeight = 0
216
-
217
- let k = 0
218
- group.subgroups.forEach(subgroup => {
219
- const subgroupColumns = Math.ceil(subgroup.nodes.length / layoutParallelNodesPerColumn)
220
- let n = 0
221
- let y = y0
222
- let x = x0 + dx
223
- subgroup.nodes.forEach(d => {
224
- y = y + verticalStep
225
- d.x = x
226
- d.y = y
227
- groupHeight = Math.max(groupHeight, y)
228
-
229
- n = n + 1
230
- if (n >= layoutParallelNodesPerColumn) {
231
- n = 0
232
- x += subgroupNodeStep
233
- y = y0
234
- }
235
- })
236
-
237
- const subgroupHeight = Math.min(subgroup.nodes.length, layoutParallelNodesPerColumn) * verticalStep
238
- const subgroupWidth = subgroupColumns * subgroupNodeStep
239
- subgroupMaxHeight = Math.max(subgroupMaxHeight, subgroupHeight)
240
- dx = dx + subgroupWidth + subgroupMargin
241
- k = k + 1
242
- if (k >= layoutParallelSubGroupsPerRow) {
243
- k = 0
244
- dx = 0
245
- y0 = y0 + subgroupMaxHeight + subgroupMargin
246
- subgroupMaxHeight = 0
247
- }
248
-
249
- groupWidth = Math.max(groupWidth, x)
250
- })
251
-
252
- // Center group vertically
253
- group.subgroups.forEach(subgroup => {
254
- subgroup.nodes.forEach(d => {
255
- d.y -= groupHeight / 2
256
- })
257
- })
258
- groupHeight = 0
259
-
260
- // Update x0 for the next group
261
- x0 = groupWidth + horizontalStep
262
- })
263
- }
264
-
265
- // Handle non-connected nodes
266
- if (layoutNonConnectedAside) {
267
- const maxSize = getMaxNodeSize(nonConnectedNodes, nodeSize)
268
- const maxY = max<number>(connectedNodes.map(d => d.y)) || 0
269
- const maxX = max<number>(connectedNodes.map(d => d.x)) || 0
270
- const minX = min<number>(connectedNodes.map(d => d.x)) || 0
271
- const graphWidth = (maxX - minX) || width
272
- positionNonConnectedNodes(nonConnectedNodes, maxY + maxSize * 3, maxSize * 2.25, Math.max(graphWidth, width))
273
- }
274
- }
275
-
276
- export async function applyLayoutDagre<N extends GraphInputNode, L extends GraphInputLink> (
277
- datamodel: GraphDataModel<N, L, GraphNode<N, L>, GraphLink<N, L>>,
278
- config: GraphConfig<N, L>,
279
- width: number
280
- ): Promise<void> {
281
- const { nonConnectedNodes, connectedNodes, nodes, links } = datamodel
282
- const { nodeSize, layoutNonConnectedAside, dagreLayoutSettings, nodeStrokeWidth, nodeLabel } = config
283
-
284
- // eslint-disable-next-line @typescript-eslint/naming-convention
285
- const { Graph } = await import('@unovis/graphlibrary')
286
- const { layout } = await import('@unovis/dagre-layout')
287
-
288
- // https://github.com/dagrejs/dagre/wiki
289
- const dagreGraph = new Graph()
290
-
291
- // Set an object for the graph label
292
- dagreGraph.setGraph(dagreLayoutSettings)
293
-
294
- // Default to assigning a new object as a label for each new edge.
295
- dagreGraph.setDefaultEdgeLabel(() => ({}))
296
-
297
- // Add nodes to the graph. The first argument is the node id. The second is
298
- // metadata about the node. In this case we're going to add labels to each of
299
- // our nodes.
300
- const labelApprxHeight = 40
301
- const nds = (layoutNonConnectedAside ? connectedNodes : nodes)
302
- nds.forEach(node => {
303
- dagreGraph.setNode(node._index, {
304
- label: getString(node, nodeLabel, node._index),
305
- width: getNumber(node, nodeSize, node._index) * 1.5 + getNumber(node, nodeStrokeWidth, node._index),
306
- height: labelApprxHeight + getNumber(node, nodeSize, node._index) * 1.5,
307
- originalNode: node,
308
- })
309
- })
310
-
311
- // Add edges to the graph.
312
- links.forEach(link => {
313
- dagreGraph.setEdge((link.source as GraphNode)._index, (link.target as GraphNode)._index)
314
- })
315
-
316
- // Calculate the layout
317
- layout(dagreGraph)
318
-
319
- // Apply coordinates to the graph
320
- dagreGraph.nodes().forEach(d => {
321
- const node = dagreGraph.node(d)
322
- node.originalNode.x = node.x // width * d.x / dagreGraph._label.width
323
- node.originalNode.y = node.y // height * d.y / dagreGraph._label.height
324
- })
325
-
326
- // Handle non-connected nodes
327
- if (layoutNonConnectedAside) {
328
- const maxNodeSize = getMaxNodeSize(nonConnectedNodes, nodeSize)
329
- const maxY = max<number>(connectedNodes.map(d => d.y))
330
- const maxX = max<number>(connectedNodes.map(d => d.x))
331
- const minX = min<number>(connectedNodes.map(d => d.x))
332
- const graphWidth = maxX - minX
333
- positionNonConnectedNodes(nonConnectedNodes, maxY + maxNodeSize * 3, maxNodeSize * 2.25, Math.max(graphWidth, width), 0)
334
- }
335
- }
336
-
337
- export function applyLayoutConcentric<N extends GraphInputNode, L extends GraphInputLink> (
338
- datamodel: GraphDataModel<N, L, GraphNode<N, L>, GraphLink<N, L>>,
339
- config: GraphConfig<N, L>,
340
- width: number,
341
- height: number
342
- ): void {
343
- const { nonConnectedNodes, connectedNodes, nodes } = datamodel
344
- const { layoutNonConnectedAside, layoutGroupOrder, nodeSize, layoutNodeGroup } = config
345
-
346
- const layoutNodes = layoutNonConnectedAside ? connectedNodes : nodes
347
-
348
- const groupNames: string[] = unique(layoutNodes.map(d => getString(d, layoutNodeGroup, d._index)))
349
- const groupNamesSorted: string[] = sortBy(groupNames, d => layoutGroupOrder.indexOf(d))
350
-
351
- const groups = groupNamesSorted.map(groupName => ({
352
- name: groupName,
353
- nodes: layoutNodes.filter(d => getString(d, layoutNodeGroup, d._index) === groupName),
354
- }))
355
-
356
- // Handle connected nodes
357
- let r = 2 * getAverageNodeSize(groups[0]?.nodes ?? [], nodeSize)
358
- const widthToHeightRatio = width / height
359
-
360
- groups.forEach((group, i) => {
361
- const avgNodeSize = getAverageNodeSize(group.nodes, nodeSize)
362
- const requiredRadius = 1.1 * avgNodeSize * group.nodes.length / Math.PI
363
- if (r < requiredRadius) r = requiredRadius
364
-
365
- group.nodes.forEach((node, j) => {
366
- // If the first (central) group has only one node
367
- if (i === 0 && group.nodes.length === 1) {
368
- node.x = width / 2
369
- node.y = height / 2
370
- } else {
371
- let dAngle = 0
372
- if (i === 0 && group.nodes.length === 3) dAngle = Math.PI / 6
373
- if (i === 0 && group.nodes.length === 4) dAngle = Math.PI / 4
374
- const angle = 2 * j * Math.PI / group.nodes.length + i * Math.PI / 12 + dAngle
375
- node.x = width / 2 + r * Math.cos(angle) * widthToHeightRatio
376
- node.y = height / 2 + r * Math.sin(angle)
377
- }
378
- })
379
-
380
- const groupSpacing = avgNodeSize * 3
381
- r += groupSpacing
382
- })
383
-
384
- // Handle non-connected nodes
385
- if (layoutNonConnectedAside) {
386
- const maxSize = getMaxNodeSize(nonConnectedNodes, nodeSize)
387
- const maxY = max<number>(connectedNodes.map(d => d.y))
388
- const maxX = max<number>(connectedNodes.map(d => d.x))
389
- const minX = min<number>(connectedNodes.map(d => d.x))
390
- const graphWidth = maxX - minX
391
- positionNonConnectedNodes(nonConnectedNodes, maxY + maxSize * 3, maxSize * 2.25, graphWidth, minX)
392
- }
393
- }
394
-
395
- export async function applyLayoutForce<N extends GraphInputNode, L extends GraphInputLink> (
396
- datamodel: GraphDataModel<N, L, GraphNode<N, L>, GraphLink<N, L>>,
397
- config: GraphConfig<N, L>,
398
- width: number
399
- ): Promise<void> {
400
- const { layoutNonConnectedAside, forceLayoutSettings: { linkDistance, linkStrength, charge, forceXStrength, forceYStrength }, nodeSize } = config
401
-
402
- const { forceSimulation, forceLink, forceManyBody, forceX, forceY, forceCollide } = await import('d3-force')
403
-
404
- const { nonConnectedNodes, connectedNodes, nodes, links } = datamodel
405
- const simulation = forceSimulation(layoutNonConnectedAside ? connectedNodes : nodes)
406
- .force('link', forceLink(links)
407
- .id((d) => String((d as GraphNode<N, L>)._id))
408
- .distance(linkDistance)
409
- .strength(linkStrength)
410
- )
411
- .force('charge', forceManyBody().strength(d => {
412
- const linkCount = links.reduce((count, l) => count + Number((l.source === d) || (l.target === d)), 0)
413
- return charge * Math.sqrt(linkCount)
414
- }))
415
- .force('x', forceX().strength(forceXStrength))
416
- .force('y', forceY().strength(forceYStrength))
417
- .force('collide', forceCollide().radius((d, i) => getNodeSize(d, nodeSize, i)).iterations(1))
418
- .stop()
419
-
420
- // See https://bl.ocks.org/mbostock/1667139, https://github.com/d3/d3-force/blob/master/README.md#simulation_tick
421
- for (let i = 0, n = Math.ceil(Math.log(simulation.alphaMin()) / Math.log(1 - simulation.alphaDecay())); i < n; ++i) {
422
- simulation.tick()
423
- }
424
-
425
- // Translate coordinates to values > 0 for better animated transition between layout
426
- const yMin = min<number>(connectedNodes.map(d => d.y)) ?? 0
427
- const xMin = min<number>(connectedNodes.map(d => d.x)) ?? 0
428
- nodes.forEach(d => {
429
- d.x -= xMin
430
- d.y -= yMin
431
- })
432
-
433
- // Handle non-connected nodes
434
- if (layoutNonConnectedAside) {
435
- const maxSize = getMaxNodeSize(nonConnectedNodes, nodeSize)
436
- const maxY = max<number>(connectedNodes.map(d => d.y))
437
- const maxX = max<number>(connectedNodes.map(d => d.x))
438
- const minX = min<number>(connectedNodes.map(d => d.x))
439
- const graphWidth = maxX - minX
440
- positionNonConnectedNodes(nonConnectedNodes, maxY + maxSize * 6, maxSize * 2.25, Math.max(graphWidth, width), minX)
441
- }
442
- }
443
-
444
- export async function applyELKLayout<N extends GraphInputNode, L extends GraphInputLink> (
445
- datamodel: GraphDataModel<N, L, GraphNode<N, L>, GraphLink<N, L>>,
446
- config: GraphConfig<N, L>,
447
- width: number
448
- ): Promise<void> {
449
- const ELK = (await import('elkjs/lib/elk.bundled.js')).default
450
- const elk = new ELK()
451
-
452
- const labelApprxHeight = 30
453
- const nodes = datamodel.nodes.map(n => ({
454
- ...n,
455
- id: n._id,
456
- width: getNumber(n, config.nodeSize, n._index) + getNumber(n, config.nodeStrokeWidth, n._index),
457
- height: getNumber(n, config.nodeSize, n._index) + labelApprxHeight,
458
- }))
459
-
460
- let elkNodes: (GraphNode<N, L> | GraphElkHierarchyNode<N, L>)[]
461
- if (config.layoutElkNodeGroups) {
462
- const groupingFunctions = config.layoutElkNodeGroups
463
- .map(accessor => (d: GraphNode<N, L>) => getString(d, accessor, d._index)) as [(d: GraphNode<N, L>) => string]
464
- const grouped = group(nodes, ...groupingFunctions)
465
- elkNodes = toElkHierarchy(grouped, config.layoutElkSettings)
466
- } else {
467
- elkNodes = nodes
468
- }
469
-
470
- const rootNodeId = 'root'
471
- const elkGraph: ElkNode = {
472
- id: rootNodeId,
473
- layoutOptions: merge(DEFAULT_ELK_SETTINGS, getValue(rootNodeId, config.layoutElkSettings)),
474
- children: elkNodes as ElkNode[],
475
- edges: datamodel.links.map(l => ({
476
- id: l._id,
477
- sources: [l.source._id],
478
- targets: [l.target._id],
479
- })),
480
- }
481
-
482
- const layout = await elk.layout(elkGraph)
483
- adjustElkHierarchyCoordinates(layout)
484
-
485
- nodes.forEach((node, i) => {
486
- const found = datamodel.nodes.find(n => n._id === node.id)
487
- if (!found) return
488
-
489
- found.x = node.x
490
- found.y = node.y
491
- })
492
-
493
- // Handle non-connected nodes
494
- if (config.layoutNonConnectedAside) {
495
- const maxSize = getMaxNodeSize(datamodel.nonConnectedNodes, config.nodeSize)
496
- const maxY = max<number>(datamodel.connectedNodes.map(d => d.y)) || 0
497
- const maxX = max<number>(datamodel.connectedNodes.map(d => d.x)) || 0
498
- const minX = min<number>(datamodel.connectedNodes.map(d => d.x)) || 0
499
- const graphWidth = (maxX - minX) || width
500
- positionNonConnectedNodes(datamodel.nonConnectedNodes, maxY + maxSize * 3, maxSize * 2.25, Math.max(graphWidth, width))
501
- }
502
- }
@@ -1,105 +0,0 @@
1
- // Utils
2
- import { getNumber, getString, getValue } from 'utils/data'
3
- import { getColor, hexToBrightness } from 'utils/color'
4
- import { color } from 'd3-color'
5
-
6
- // Types
7
- import { GraphInputLink, GraphInputNode } from 'types/graph'
8
-
9
- // Local Types
10
- import { GraphLink, GraphLinkArrowStyle, GraphCircleLabel } from '../../types'
11
-
12
- // Config
13
- import { GraphConfig } from '../../config'
14
-
15
- // Helpers
16
- import { getX, getY } from '../node/helper'
17
- import { ZoomLevel } from '../zoom-levels'
18
-
19
- export const getPolylineData = (d: { x1: number; x2: number; y1: number; y2: number}): string => `${d.x1},${d.y1} ${(d.x1 + d.x2) / 2},${(d.y1 + d.y2) / 2} ${d.x2},${d.y2}`
20
-
21
- export const LINK_LABEL_RADIUS = 8
22
- export const LINK_MARKER_WIDTH = 12
23
- export const LINK_MARKER_HEIGHT = 8
24
-
25
- export function getLinkShift (link: GraphLink, spacing: number): { dx: number; dy: number } {
26
- const sourceNode = link.source
27
- const targetNode = link.target
28
- const angle = Math.atan2(getY(targetNode) - getY(sourceNode), getX(targetNode) - getX(sourceNode)) - Math.PI / 2
29
- const dx = Math.cos(angle) * spacing * link._direction * (link._index - (link._neighbours - 1) / 2)
30
- const dy = Math.sin(angle) * spacing * link._direction * (link._index - (link._neighbours - 1) / 2)
31
- return { dx, dy }
32
- }
33
-
34
- export function getLinkShiftTransform (link: GraphLink, spacing: number): string {
35
- const { dx, dy } = getLinkShift(link, spacing)
36
- return `translate(${dx}, ${dy})`
37
- }
38
-
39
- export function getLinkLabelShift (link: GraphLink, linkSpacing: number, shiftFromCenter = 0): string {
40
- const x1 = getX(link.source)
41
- const y1 = getY(link.source)
42
- const x2 = getX(link.target)
43
- const y2 = getY(link.target)
44
- const angle = Math.atan2(y2 - y1, x2 - x1)
45
- const perpendicularShift = getLinkShift(link, linkSpacing)
46
-
47
- const x = x1 + 0.5 * (x2 - x1) + shiftFromCenter * Math.cos(angle) + perpendicularShift.dx
48
- const y = y1 + 0.5 * (y2 - y1) + shiftFromCenter * Math.sin(angle) + perpendicularShift.dy
49
- return `translate(${x}, ${y})`
50
- }
51
-
52
- export function getLinkStrokeWidth<N extends GraphInputNode, L extends GraphInputLink> (
53
- d: GraphLink,
54
- scale: number,
55
- config: GraphConfig<N, L>
56
- ): number {
57
- const m = getNumber(d, config.linkWidth, d._indexGlobal)
58
- return m / Math.pow(scale, 0.5)
59
- }
60
-
61
- export function getLinkBandWidth<N extends GraphInputNode, L extends GraphInputLink> (
62
- d: GraphLink,
63
- scale: number,
64
- config: GraphConfig<N, L>
65
- ): number {
66
- const { nodeSize, linkBandWidth } = config
67
- const sourceNodeSize = getNumber(d.source, nodeSize, d.source._index)
68
- const targetNodeSize = getNumber(d.target, nodeSize, d.target._index)
69
- const minNodeSize = Math.min(sourceNodeSize, targetNodeSize)
70
- return Math.min(minNodeSize, getNumber(d, linkBandWidth, d._indexGlobal) / Math.pow(scale || 1, 0.5)) || 0
71
- }
72
-
73
- export function getLinkColor<N extends GraphInputNode, L extends GraphInputLink> (link: GraphLink, config: GraphConfig<N, L>): string {
74
- const { linkStroke } = config
75
- const c = getColor(link, linkStroke, link._indexGlobal, true) ?? 'var(--vis-graph-link-stroke-color)'
76
- return c || null
77
- }
78
-
79
- export function getLinkArrow<N extends GraphInputNode, L extends GraphInputLink> (
80
- d: GraphLink,
81
- scale: number,
82
- config: GraphConfig<N, L>
83
- ): string {
84
- const { linkArrow } = config
85
- if (scale > ZoomLevel.Level2 && getString(d, linkArrow, d._indexGlobal)) {
86
- return getValue<GraphLink, GraphLinkArrowStyle>(d, linkArrow, d._indexGlobal)
87
- }
88
- return null
89
- }
90
-
91
- export function getArrowPath (): string {
92
- return `M0,0 V${LINK_MARKER_HEIGHT} L${LINK_MARKER_WIDTH},${LINK_MARKER_HEIGHT / 2} Z`
93
- }
94
-
95
- export function getDoubleArrowPath (): string {
96
- return `M0,${LINK_MARKER_HEIGHT / 2} L${LINK_MARKER_WIDTH},0 L${LINK_MARKER_WIDTH * 2},${LINK_MARKER_HEIGHT / 2} L${LINK_MARKER_WIDTH},${LINK_MARKER_HEIGHT} Z`
97
- }
98
-
99
- export function getLinkLabelTextColor (label: GraphCircleLabel): string {
100
- if (!label.color) return null
101
-
102
- const hex = color(label.color).hex()
103
- const brightness = hexToBrightness(hex)
104
- return brightness > 0.65 ? 'var(--vis-graph-link-label-text-color-dark)' : 'var(--vis-graph-link-label-text-color-bright)'
105
- }