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

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/declaration.d.ts +1 -0
  2. package/index.ts +1 -0
  3. package/licences.txt +43 -0
  4. package/maps.ts +1 -0
  5. package/package.json +1 -1
  6. package/rollup.config.js +71 -0
  7. package/rules/ts-getter-setter.js +35 -0
  8. package/src/components/area/config.ts +29 -0
  9. package/src/components/area/index.ts +133 -0
  10. package/{components/area/style.js → src/components/area/style.ts} +9 -10
  11. package/src/components/area/types.ts +2 -0
  12. package/src/components/axis/config.ts +76 -0
  13. package/src/components/axis/index.ts +363 -0
  14. package/{components/axis/style.js → src/components/axis/style.ts} +27 -22
  15. package/src/components/axis/types.ts +4 -0
  16. package/src/components/brush/config.ts +51 -0
  17. package/src/components/brush/index.ts +233 -0
  18. package/{components/brush/style.js → src/components/brush/style.ts} +15 -14
  19. package/src/components/brush/types.ts +8 -0
  20. package/src/components/bullet-legend/config.ts +38 -0
  21. package/src/components/bullet-legend/index.ts +104 -0
  22. package/{components/bullet-legend/style.js → src/components/bullet-legend/style.ts} +18 -16
  23. package/src/components/bullet-legend/types.ts +7 -0
  24. package/src/components/chord-diagram/config.ts +53 -0
  25. package/src/components/chord-diagram/index.ts +401 -0
  26. package/src/components/chord-diagram/modules/label.ts +155 -0
  27. package/src/components/chord-diagram/modules/link.ts +91 -0
  28. package/src/components/chord-diagram/modules/node.ts +80 -0
  29. package/{components/chord-diagram/style.js → src/components/chord-diagram/style.ts} +39 -30
  30. package/src/components/chord-diagram/types.ts +68 -0
  31. package/src/components/crosshair/config.ts +48 -0
  32. package/src/components/crosshair/index.ts +220 -0
  33. package/{components/crosshair/style.js → src/components/crosshair/style.ts} +12 -12
  34. package/src/components/crosshair/types.ts +15 -0
  35. package/src/components/donut/config.ts +65 -0
  36. package/src/components/donut/index.ts +148 -0
  37. package/src/components/donut/modules/arc.ts +86 -0
  38. package/{components/donut/style.js → src/components/donut/style.ts} +20 -18
  39. package/src/components/donut/types.ts +17 -0
  40. package/src/components/flow-legend/config.ts +31 -0
  41. package/src/components/flow-legend/index.ts +103 -0
  42. package/{components/flow-legend/style.js → src/components/flow-legend/style.ts} +25 -21
  43. package/src/components/flow-legend/types.ts +10 -0
  44. package/src/components/free-brush/config.ts +54 -0
  45. package/src/components/free-brush/index.ts +207 -0
  46. package/{components/free-brush/style.js → src/components/free-brush/style.ts} +12 -12
  47. package/src/components/free-brush/types.ts +8 -0
  48. package/src/components/graph/config.ts +280 -0
  49. package/src/components/graph/index.ts +809 -0
  50. package/src/components/graph/modules/layout-helpers.ts +96 -0
  51. package/src/components/graph/modules/layout.ts +502 -0
  52. package/src/components/graph/modules/link/helper.ts +105 -0
  53. package/src/components/graph/modules/link/index.ts +302 -0
  54. package/{components/graph/modules/link/style.js → src/components/graph/modules/link/style.ts} +45 -34
  55. package/src/components/graph/modules/node/helper.ts +162 -0
  56. package/src/components/graph/modules/node/index.ts +343 -0
  57. package/{components/graph/modules/node/style.js → src/components/graph/modules/node/style.ts} +72 -52
  58. package/src/components/graph/modules/panel/helper.ts +160 -0
  59. package/src/components/graph/modules/panel/index.ts +137 -0
  60. package/{components/graph/modules/panel/style.js → src/components/graph/modules/panel/style.ts} +42 -32
  61. package/src/components/graph/modules/shape.ts +108 -0
  62. package/src/components/graph/modules/zoom-levels.ts +6 -0
  63. package/src/components/graph/style.ts +72 -0
  64. package/src/components/graph/types.ts +152 -0
  65. package/src/components/grouped-bar/config.ts +40 -0
  66. package/src/components/grouped-bar/index.ts +325 -0
  67. package/{components/grouped-bar/style.js → src/components/grouped-bar/style.ts} +15 -14
  68. package/src/components/leaflet-flow-map/config.ts +60 -0
  69. package/src/components/leaflet-flow-map/index.ts +279 -0
  70. package/src/components/leaflet-flow-map/renderer-utils.ts +14 -0
  71. package/src/components/leaflet-flow-map/renderer.ts +146 -0
  72. package/{components/leaflet-flow-map/shaders.js → src/components/leaflet-flow-map/shaders.ts} +4 -7
  73. package/src/components/leaflet-flow-map/types.ts +18 -0
  74. package/src/components/leaflet-map/config.ts +234 -0
  75. package/src/components/leaflet-map/index.ts +808 -0
  76. package/src/components/leaflet-map/leaflet.css +625 -0
  77. package/src/components/leaflet-map/modules/clusterBackground.ts +34 -0
  78. package/src/components/leaflet-map/modules/donut.ts +37 -0
  79. package/src/components/leaflet-map/modules/map.ts +178 -0
  80. package/src/components/leaflet-map/modules/node.ts +208 -0
  81. package/src/components/leaflet-map/modules/selectionRing.ts +63 -0
  82. package/src/components/leaflet-map/modules/utils.ts +290 -0
  83. package/{components → src/components}/leaflet-map/renderer/leaflet-maplibre-gl.js +76 -78
  84. package/src/components/leaflet-map/renderer/map-style.ts +24 -0
  85. package/src/components/leaflet-map/renderer/mapboxgl/mapboxgl-dark-theme.json +35 -0
  86. package/src/components/leaflet-map/renderer/mapboxgl/mapboxgl-light-theme.json +35 -0
  87. package/src/components/leaflet-map/renderer/mapboxgl/mapboxgl-settings.json +2185 -0
  88. package/src/components/leaflet-map/renderer/mapboxgl-layer.ts +43 -0
  89. package/src/components/leaflet-map/renderer/mapboxgl-utils.ts +40 -0
  90. package/{components → src/components}/leaflet-map/renderer/maplibre-gl.css.js +2 -4
  91. package/src/components/leaflet-map/style.ts +217 -0
  92. package/src/components/leaflet-map/types.ts +75 -0
  93. package/src/components/line/config.ts +34 -0
  94. package/src/components/line/index.ts +188 -0
  95. package/{components/line/style.js → src/components/line/style.ts} +18 -16
  96. package/src/components/line/types.ts +3 -0
  97. package/src/components/nested-donut/config.ts +75 -0
  98. package/src/components/nested-donut/index.ts +176 -0
  99. package/src/components/nested-donut/modules/arc.ts +78 -0
  100. package/src/components/nested-donut/modules/label.ts +63 -0
  101. package/src/components/nested-donut/style.ts +82 -0
  102. package/src/components/nested-donut/types.ts +29 -0
  103. package/src/components/sankey/config.ts +195 -0
  104. package/src/components/sankey/index.ts +387 -0
  105. package/src/components/sankey/modules/label.ts +228 -0
  106. package/src/components/sankey/modules/link.ts +141 -0
  107. package/src/components/sankey/modules/node.ts +221 -0
  108. package/{components/sankey/style.js → src/components/sankey/style.ts} +60 -44
  109. package/src/components/sankey/types.ts +95 -0
  110. package/src/components/scatter/config.ts +49 -0
  111. package/src/components/scatter/index.ts +220 -0
  112. package/src/components/scatter/modules/point.ts +123 -0
  113. package/src/components/scatter/modules/utils.ts +150 -0
  114. package/{components/scatter/style.js → src/components/scatter/style.ts} +15 -14
  115. package/src/components/scatter/types.ts +21 -0
  116. package/src/components/stacked-bar/config.ts +42 -0
  117. package/src/components/stacked-bar/index.ts +267 -0
  118. package/{components/stacked-bar/style.js → src/components/stacked-bar/style.ts} +15 -14
  119. package/src/components/stacked-bar/types.ts +5 -0
  120. package/src/components/timeline/config.ts +49 -0
  121. package/src/components/timeline/index.ts +302 -0
  122. package/{components/timeline/style.js → src/components/timeline/style.ts} +39 -30
  123. package/src/components/tooltip/config.ts +69 -0
  124. package/src/components/tooltip/index.ts +220 -0
  125. package/{components → src/components}/tooltip/style.js +11 -14
  126. package/src/components/topojson-map/config.ts +124 -0
  127. package/src/components/topojson-map/index.ts +436 -0
  128. package/{components/topojson-map/style.js → src/components/topojson-map/style.ts} +33 -26
  129. package/src/components/topojson-map/types.ts +123 -0
  130. package/src/components/topojson-map/utils.ts +29 -0
  131. package/src/components/vis-controls/config.ts +16 -0
  132. package/src/components/vis-controls/index.ts +68 -0
  133. package/{components/vis-controls/style.js → src/components/vis-controls/style.ts} +34 -27
  134. package/src/components/vis-controls/types.ts +14 -0
  135. package/src/components/xy-labels/config.ts +56 -0
  136. package/src/components/xy-labels/index.ts +109 -0
  137. package/src/components/xy-labels/modules/label.ts +140 -0
  138. package/{components/xy-labels/style.js → src/components/xy-labels/style.ts} +15 -14
  139. package/src/components/xy-labels/types.ts +26 -0
  140. package/src/components.ts +56 -0
  141. package/src/containers/single-container/config.ts +15 -0
  142. package/src/containers/single-container/index.ts +150 -0
  143. package/src/containers/xy-container/config.ts +112 -0
  144. package/src/containers/xy-container/index.ts +407 -0
  145. package/src/containers.ts +6 -0
  146. package/src/core/component/config.ts +61 -0
  147. package/src/core/component/index.ts +154 -0
  148. package/src/core/component/types.ts +9 -0
  149. package/src/core/config/index.ts +12 -0
  150. package/src/core/container/config.ts +56 -0
  151. package/src/core/container/index.ts +136 -0
  152. package/src/core/xy-component/config.ts +46 -0
  153. package/src/core/xy-component/index.ts +90 -0
  154. package/src/data-models/core.ts +15 -0
  155. package/src/data-models/graph.ts +138 -0
  156. package/src/data-models/map-graph.ts +72 -0
  157. package/src/data-models/map.ts +18 -0
  158. package/src/data-models/series.ts +16 -0
  159. package/src/index.ts +7 -0
  160. package/src/maps/china-provinces.json +1 -0
  161. package/src/maps/fr-regions.json +1 -0
  162. package/src/maps/germany-regions.json +1 -0
  163. package/src/maps/ind-regions.json +1 -0
  164. package/src/maps/uk-regions.json +1 -0
  165. package/src/maps/us-counties.json +1 -0
  166. package/src/maps/us-states.json +1 -0
  167. package/src/maps/world-110m-alpha.json +1 -0
  168. package/src/maps/world-simple.json +1 -0
  169. package/src/maps/world-simplest.json +1 -0
  170. package/src/maps.ts +34 -0
  171. package/src/styles/colors.ts +28 -0
  172. package/src/styles/index.ts +38 -0
  173. package/{styles/sizes.js → src/styles/sizes.ts} +6 -8
  174. package/src/types/accessor.ts +5 -0
  175. package/src/types/component.ts +15 -0
  176. package/src/types/curve.ts +62 -0
  177. package/src/types/data.ts +5 -0
  178. package/src/types/direction.ts +6 -0
  179. package/src/types/graph.ts +40 -0
  180. package/src/types/map.ts +5 -0
  181. package/src/types/misc.ts +10 -0
  182. package/src/types/position.ts +23 -0
  183. package/src/types/scale.ts +47 -0
  184. package/src/types/shape.ts +7 -0
  185. package/src/types/spacing.ts +6 -0
  186. package/src/types/svg.ts +32 -0
  187. package/src/types/symbol.ts +21 -0
  188. package/src/types/text.ts +71 -0
  189. package/src/types.ts +31 -0
  190. package/src/utils/color.ts +41 -0
  191. package/src/utils/d3.ts +15 -0
  192. package/src/utils/data.ts +328 -0
  193. package/src/utils/html.ts +13 -0
  194. package/src/utils/map.ts +29 -0
  195. package/src/utils/misc.ts +54 -0
  196. package/src/utils/path.ts +196 -0
  197. package/src/utils/scale.ts +1 -0
  198. package/src/utils/style.ts +37 -0
  199. package/src/utils/svg.ts +49 -0
  200. package/src/utils/text.ts +529 -0
  201. package/src/utils/type.ts +9 -0
  202. package/tsconfig.json +29 -0
  203. package/components/area/config.d.ts +0 -25
  204. package/components/area/config.js +0 -16
  205. package/components/area/config.js.map +0 -1
  206. package/components/area/index.d.ts +0 -19
  207. package/components/area/index.js +0 -102
  208. package/components/area/index.js.map +0 -1
  209. package/components/area/style.d.ts +0 -3
  210. package/components/area/style.js.map +0 -1
  211. package/components/area/types.d.ts +0 -6
  212. package/components/axis/config.d.ts +0 -71
  213. package/components/axis/config.js +0 -32
  214. package/components/axis/config.js.map +0 -1
  215. package/components/axis/index.d.ts +0 -44
  216. package/components/axis/index.js +0 -305
  217. package/components/axis/index.js.map +0 -1
  218. package/components/axis/style.d.ts +0 -9
  219. package/components/axis/style.js.map +0 -1
  220. package/components/axis/types.d.ts +0 -4
  221. package/components/axis/types.js +0 -8
  222. package/components/axis/types.js.map +0 -1
  223. package/components/brush/config.d.ts +0 -42
  224. package/components/brush/config.js +0 -24
  225. package/components/brush/config.js.map +0 -1
  226. package/components/brush/index.d.ts +0 -28
  227. package/components/brush/index.js +0 -199
  228. package/components/brush/index.js.map +0 -1
  229. package/components/brush/style.d.ts +0 -5
  230. package/components/brush/style.js.map +0 -1
  231. package/components/brush/types.d.ts +0 -7
  232. package/components/brush/types.js +0 -8
  233. package/components/brush/types.js.map +0 -1
  234. package/components/bullet-legend/config.d.ts +0 -34
  235. package/components/bullet-legend/config.js +0 -16
  236. package/components/bullet-legend/config.js.map +0 -1
  237. package/components/bullet-legend/index.d.ts +0 -19
  238. package/components/bullet-legend/index.js +0 -79
  239. package/components/bullet-legend/index.js.map +0 -1
  240. package/components/bullet-legend/style.d.ts +0 -6
  241. package/components/bullet-legend/style.js.map +0 -1
  242. package/components/bullet-legend/types.d.ts +0 -7
  243. package/components/bullet-legend/types.js +0 -2
  244. package/components/bullet-legend/types.js.map +0 -1
  245. package/components/chord-diagram/config.d.ts +0 -44
  246. package/components/chord-diagram/config.js +0 -25
  247. package/components/chord-diagram/config.js.map +0 -1
  248. package/components/chord-diagram/index.d.ts +0 -42
  249. package/components/chord-diagram/index.js +0 -305
  250. package/components/chord-diagram/index.js.map +0 -1
  251. package/components/chord-diagram/modules/label.d.ts +0 -8
  252. package/components/chord-diagram/modules/label.js +0 -115
  253. package/components/chord-diagram/modules/label.js.map +0 -1
  254. package/components/chord-diagram/modules/link.d.ts +0 -21
  255. package/components/chord-diagram/modules/link.js +0 -63
  256. package/components/chord-diagram/modules/link.js.map +0 -1
  257. package/components/chord-diagram/modules/node.d.ts +0 -17
  258. package/components/chord-diagram/modules/node.js +0 -52
  259. package/components/chord-diagram/modules/node.js.map +0 -1
  260. package/components/chord-diagram/style.d.ts +0 -13
  261. package/components/chord-diagram/style.js.map +0 -1
  262. package/components/chord-diagram/types.d.ts +0 -58
  263. package/components/chord-diagram/types.js +0 -8
  264. package/components/chord-diagram/types.js.map +0 -1
  265. package/components/crosshair/config.d.ts +0 -43
  266. package/components/crosshair/config.js +0 -19
  267. package/components/crosshair/config.js.map +0 -1
  268. package/components/crosshair/index.d.ts +0 -35
  269. package/components/crosshair/index.js +0 -183
  270. package/components/crosshair/index.js.map +0 -1
  271. package/components/crosshair/style.d.ts +0 -4
  272. package/components/crosshair/style.js.map +0 -1
  273. package/components/crosshair/types.d.ts +0 -13
  274. package/components/crosshair/types.js +0 -2
  275. package/components/crosshair/types.js.map +0 -1
  276. package/components/donut/config.d.ts +0 -59
  277. package/components/donut/config.js +0 -28
  278. package/components/donut/config.js.map +0 -1
  279. package/components/donut/index.d.ts +0 -21
  280. package/components/donut/index.js +0 -107
  281. package/components/donut/index.js.map +0 -1
  282. package/components/donut/modules/arc.d.ts +0 -10
  283. package/components/donut/modules/arc.js +0 -59
  284. package/components/donut/modules/arc.js.map +0 -1
  285. package/components/donut/style.d.ts +0 -7
  286. package/components/donut/style.js.map +0 -1
  287. package/components/donut/types.d.ts +0 -20
  288. package/components/flow-legend/config.d.ts +0 -29
  289. package/components/flow-legend/config.js +0 -18
  290. package/components/flow-legend/config.js.map +0 -1
  291. package/components/flow-legend/index.d.ts +0 -16
  292. package/components/flow-legend/index.js +0 -75
  293. package/components/flow-legend/index.js.map +0 -1
  294. package/components/flow-legend/style.d.ts +0 -8
  295. package/components/flow-legend/style.js.map +0 -1
  296. package/components/flow-legend/types.d.ts +0 -9
  297. package/components/flow-legend/types.js +0 -8
  298. package/components/flow-legend/types.js.map +0 -1
  299. package/components/free-brush/config.d.ts +0 -45
  300. package/components/free-brush/config.js +0 -24
  301. package/components/free-brush/config.js.map +0 -1
  302. package/components/free-brush/index.d.ts +0 -20
  303. package/components/free-brush/index.js +0 -192
  304. package/components/free-brush/index.js.map +0 -1
  305. package/components/free-brush/style.d.ts +0 -4
  306. package/components/free-brush/style.js.map +0 -1
  307. package/components/free-brush/types.d.ts +0 -7
  308. package/components/free-brush/types.js +0 -9
  309. package/components/free-brush/types.js.map +0 -1
  310. package/components/graph/config.d.ts +0 -238
  311. package/components/graph/config.js +0 -84
  312. package/components/graph/config.js.map +0 -1
  313. package/components/graph/index.d.ts +0 -126
  314. package/components/graph/index.js +0 -656
  315. package/components/graph/index.js.map +0 -1
  316. package/components/graph/modules/layout-helpers.d.ts +0 -21
  317. package/components/graph/modules/layout-helpers.js +0 -69
  318. package/components/graph/modules/layout-helpers.js.map +0 -1
  319. package/components/graph/modules/layout.d.ts +0 -10
  320. package/components/graph/modules/layout.js +0 -399
  321. package/components/graph/modules/layout.js.map +0 -1
  322. package/components/graph/modules/link/helper.d.ts +0 -25
  323. package/components/graph/modules/link/helper.js +0 -74
  324. package/components/graph/modules/link/helper.js.map +0 -1
  325. package/components/graph/modules/link/index.d.ts +0 -11
  326. package/components/graph/modules/link/index.js +0 -212
  327. package/components/graph/modules/link/index.js.map +0 -1
  328. package/components/graph/modules/link/style.d.ts +0 -15
  329. package/components/graph/modules/link/style.js.map +0 -1
  330. package/components/graph/modules/node/helper.d.ts +0 -21
  331. package/components/graph/modules/node/helper.js +0 -126
  332. package/components/graph/modules/node/helper.js.map +0 -1
  333. package/components/graph/modules/node/index.d.ts +0 -11
  334. package/components/graph/modules/node/index.js +0 -252
  335. package/components/graph/modules/node/index.js.map +0 -1
  336. package/components/graph/modules/node/style.d.ts +0 -24
  337. package/components/graph/modules/node/style.js.map +0 -1
  338. package/components/graph/modules/panel/helper.d.ts +0 -18
  339. package/components/graph/modules/panel/helper.js +0 -111
  340. package/components/graph/modules/panel/helper.js.map +0 -1
  341. package/components/graph/modules/panel/index.d.ts +0 -7
  342. package/components/graph/modules/panel/index.js +0 -98
  343. package/components/graph/modules/panel/index.js.map +0 -1
  344. package/components/graph/modules/panel/style.d.ts +0 -14
  345. package/components/graph/modules/panel/style.js.map +0 -1
  346. package/components/graph/modules/shape.d.ts +0 -6
  347. package/components/graph/modules/shape.js +0 -80
  348. package/components/graph/modules/shape.js.map +0 -1
  349. package/components/graph/modules/zoom-levels.d.ts +0 -6
  350. package/components/graph/modules/zoom-levels.js +0 -10
  351. package/components/graph/modules/zoom-levels.js.map +0 -1
  352. package/components/graph/style.d.ts +0 -6
  353. package/components/graph/style.js +0 -66
  354. package/components/graph/style.js.map +0 -1
  355. package/components/graph/types.d.ts +0 -125
  356. package/components/graph/types.js +0 -30
  357. package/components/graph/types.js.map +0 -1
  358. package/components/grouped-bar/config.d.ts +0 -36
  359. package/components/grouped-bar/config.js +0 -20
  360. package/components/grouped-bar/config.js.map +0 -1
  361. package/components/grouped-bar/index.d.ts +0 -32
  362. package/components/grouped-bar/index.js +0 -249
  363. package/components/grouped-bar/index.js.map +0 -1
  364. package/components/grouped-bar/style.d.ts +0 -5
  365. package/components/grouped-bar/style.js.map +0 -1
  366. package/components/leaflet-flow-map/config.d.ts +0 -46
  367. package/components/leaflet-flow-map/config.js +0 -25
  368. package/components/leaflet-flow-map/config.js.map +0 -1
  369. package/components/leaflet-flow-map/index.d.ts +0 -52
  370. package/components/leaflet-flow-map/index.js +0 -220
  371. package/components/leaflet-flow-map/index.js.map +0 -1
  372. package/components/leaflet-flow-map/renderer-utils.d.ts +0 -5
  373. package/components/leaflet-flow-map/renderer-utils.js +0 -15
  374. package/components/leaflet-flow-map/renderer-utils.js.map +0 -1
  375. package/components/leaflet-flow-map/renderer.d.ts +0 -26
  376. package/components/leaflet-flow-map/renderer.js +0 -117
  377. package/components/leaflet-flow-map/renderer.js.map +0 -1
  378. package/components/leaflet-flow-map/shaders.d.ts +0 -2
  379. package/components/leaflet-flow-map/shaders.js.map +0 -1
  380. package/components/leaflet-flow-map/types.d.ts +0 -23
  381. package/components/leaflet-map/config.d.ts +0 -193
  382. package/components/leaflet-map/config.js +0 -71
  383. package/components/leaflet-map/config.js.map +0 -1
  384. package/components/leaflet-map/index.d.ts +0 -130
  385. package/components/leaflet-map/index.js +0 -690
  386. package/components/leaflet-map/index.js.map +0 -1
  387. package/components/leaflet-map/leaflet.css.js +0 -5
  388. package/components/leaflet-map/leaflet.css.js.map +0 -1
  389. package/components/leaflet-map/modules/clusterBackground.d.ts +0 -5
  390. package/components/leaflet-map/modules/clusterBackground.js +0 -27
  391. package/components/leaflet-map/modules/clusterBackground.js.map +0 -1
  392. package/components/leaflet-map/modules/donut.d.ts +0 -3
  393. package/components/leaflet-map/modules/donut.js +0 -25
  394. package/components/leaflet-map/modules/donut.js.map +0 -1
  395. package/components/leaflet-map/modules/map.d.ts +0 -14
  396. package/components/leaflet-map/modules/map.js +0 -154
  397. package/components/leaflet-map/modules/map.js.map +0 -1
  398. package/components/leaflet-map/modules/node.d.ts +0 -9
  399. package/components/leaflet-map/modules/node.js +0 -162
  400. package/components/leaflet-map/modules/node.js.map +0 -1
  401. package/components/leaflet-map/modules/selectionRing.d.ts +0 -7
  402. package/components/leaflet-map/modules/selectionRing.js +0 -41
  403. package/components/leaflet-map/modules/selectionRing.js.map +0 -1
  404. package/components/leaflet-map/modules/utils.d.ts +0 -50
  405. package/components/leaflet-map/modules/utils.js +0 -210
  406. package/components/leaflet-map/modules/utils.js.map +0 -1
  407. package/components/leaflet-map/renderer/leaflet-maplibre-gl.js.map +0 -1
  408. package/components/leaflet-map/renderer/map-style.d.ts +0 -4
  409. package/components/leaflet-map/renderer/map-style.js +0 -15
  410. package/components/leaflet-map/renderer/map-style.js.map +0 -1
  411. package/components/leaflet-map/renderer/mapboxgl/mapboxgl-dark-theme.json.js +0 -40
  412. package/components/leaflet-map/renderer/mapboxgl/mapboxgl-dark-theme.json.js.map +0 -1
  413. package/components/leaflet-map/renderer/mapboxgl/mapboxgl-light-theme.json.js +0 -40
  414. package/components/leaflet-map/renderer/mapboxgl/mapboxgl-light-theme.json.js.map +0 -1
  415. package/components/leaflet-map/renderer/mapboxgl/mapboxgl-settings.json.js +0 -4981
  416. package/components/leaflet-map/renderer/mapboxgl/mapboxgl-settings.json.js.map +0 -1
  417. package/components/leaflet-map/renderer/mapboxgl-layer.d.ts +0 -8
  418. package/components/leaflet-map/renderer/mapboxgl-layer.js +0 -27
  419. package/components/leaflet-map/renderer/mapboxgl-layer.js.map +0 -1
  420. package/components/leaflet-map/renderer/mapboxgl-utils.d.ts +0 -4
  421. package/components/leaflet-map/renderer/mapboxgl-utils.js +0 -39
  422. package/components/leaflet-map/renderer/mapboxgl-utils.js.map +0 -1
  423. package/components/leaflet-map/renderer/maplibre-gl.css.js.map +0 -1
  424. package/components/leaflet-map/style.d.ts +0 -52
  425. package/components/leaflet-map/style.js +0 -183
  426. package/components/leaflet-map/style.js.map +0 -1
  427. package/components/leaflet-map/types.d.ts +0 -75
  428. package/components/leaflet-map/types.js +0 -15
  429. package/components/leaflet-map/types.js.map +0 -1
  430. package/components/line/config.d.ts +0 -30
  431. package/components/line/config.js +0 -17
  432. package/components/line/config.js.map +0 -1
  433. package/components/line/index.d.ts +0 -27
  434. package/components/line/index.js +0 -152
  435. package/components/line/index.js.map +0 -1
  436. package/components/line/style.d.ts +0 -6
  437. package/components/line/style.js.map +0 -1
  438. package/components/line/types.d.ts +0 -12
  439. package/components/nested-donut/config.d.ts +0 -59
  440. package/components/nested-donut/config.js +0 -19
  441. package/components/nested-donut/config.js.map +0 -1
  442. package/components/nested-donut/index.d.ts +0 -38
  443. package/components/nested-donut/index.js +0 -133
  444. package/components/nested-donut/index.js.map +0 -1
  445. package/components/nested-donut/modules/arc.d.ts +0 -17
  446. package/components/nested-donut/modules/arc.js +0 -50
  447. package/components/nested-donut/modules/arc.js.map +0 -1
  448. package/components/nested-donut/modules/label.d.ts +0 -7
  449. package/components/nested-donut/modules/label.js +0 -34
  450. package/components/nested-donut/modules/label.js.map +0 -1
  451. package/components/nested-donut/style.d.ts +0 -26
  452. package/components/nested-donut/style.js +0 -70
  453. package/components/nested-donut/style.js.map +0 -1
  454. package/components/nested-donut/types.d.ts +0 -24
  455. package/components/nested-donut/types.js +0 -11
  456. package/components/nested-donut/types.js.map +0 -1
  457. package/components/sankey/config.d.ts +0 -162
  458. package/components/sankey/config.js +0 -65
  459. package/components/sankey/config.js.map +0 -1
  460. package/components/sankey/index.d.ts +0 -59
  461. package/components/sankey/index.js +0 -306
  462. package/components/sankey/index.js.map +0 -1
  463. package/components/sankey/modules/label.d.ts +0 -23
  464. package/components/sankey/modules/label.js +0 -168
  465. package/components/sankey/modules/label.js.map +0 -1
  466. package/components/sankey/modules/link.d.ts +0 -14
  467. package/components/sankey/modules/link.js +0 -108
  468. package/components/sankey/modules/link.js.map +0 -1
  469. package/components/sankey/modules/node.d.ts +0 -10
  470. package/components/sankey/modules/node.js +0 -156
  471. package/components/sankey/modules/node.js.map +0 -1
  472. package/components/sankey/style.d.ts +0 -20
  473. package/components/sankey/style.js.map +0 -1
  474. package/components/sankey/types.d.ts +0 -84
  475. package/components/sankey/types.js +0 -34
  476. package/components/sankey/types.js.map +0 -1
  477. package/components/scatter/config.d.ts +0 -44
  478. package/components/scatter/config.js +0 -23
  479. package/components/scatter/config.js.map +0 -1
  480. package/components/scatter/index.d.ts +0 -28
  481. package/components/scatter/index.js +0 -167
  482. package/components/scatter/index.js.map +0 -1
  483. package/components/scatter/modules/point.d.ts +0 -7
  484. package/components/scatter/modules/point.js +0 -86
  485. package/components/scatter/modules/point.js.map +0 -1
  486. package/components/scatter/modules/utils.d.ts +0 -11
  487. package/components/scatter/modules/utils.js +0 -112
  488. package/components/scatter/modules/utils.js.map +0 -1
  489. package/components/scatter/style.d.ts +0 -5
  490. package/components/scatter/style.js.map +0 -1
  491. package/components/scatter/types.d.ts +0 -19
  492. package/components/stacked-bar/config.d.ts +0 -38
  493. package/components/stacked-bar/config.js +0 -20
  494. package/components/stacked-bar/config.js.map +0 -1
  495. package/components/stacked-bar/index.d.ts +0 -28
  496. package/components/stacked-bar/index.js +0 -208
  497. package/components/stacked-bar/index.js.map +0 -1
  498. package/components/stacked-bar/style.d.ts +0 -5
  499. package/components/stacked-bar/style.js.map +0 -1
  500. package/components/stacked-bar/types.d.ts +0 -5
  501. package/components/timeline/config.d.ts +0 -43
  502. package/components/timeline/config.js +0 -24
  503. package/components/timeline/config.js.map +0 -1
  504. package/components/timeline/index.d.ts +0 -41
  505. package/components/timeline/index.js +0 -244
  506. package/components/timeline/index.js.map +0 -1
  507. package/components/timeline/style.d.ts +0 -13
  508. package/components/timeline/style.js.map +0 -1
  509. package/components/tooltip/config.d.ts +0 -68
  510. package/components/tooltip/config.js +0 -20
  511. package/components/tooltip/config.js.map +0 -1
  512. package/components/tooltip/index.d.ts +0 -36
  513. package/components/tooltip/index.js +0 -184
  514. package/components/tooltip/index.js.map +0 -1
  515. package/components/tooltip/style.js.map +0 -1
  516. package/components/topojson-map/config.d.ts +0 -99
  517. package/components/topojson-map/config.js +0 -42
  518. package/components/topojson-map/config.js.map +0 -1
  519. package/components/topojson-map/index.d.ts +0 -52
  520. package/components/topojson-map/index.js +0 -355
  521. package/components/topojson-map/index.js.map +0 -1
  522. package/components/topojson-map/style.d.ts +0 -11
  523. package/components/topojson-map/style.js.map +0 -1
  524. package/components/topojson-map/types.d.ts +0 -78
  525. package/components/topojson-map/types.js +0 -80
  526. package/components/topojson-map/types.js.map +0 -1
  527. package/components/topojson-map/utils.d.ts +0 -3
  528. package/components/topojson-map/utils.js +0 -30
  529. package/components/topojson-map/utils.js.map +0 -1
  530. package/components/vis-controls/config.d.ts +0 -12
  531. package/components/vis-controls/config.js +0 -13
  532. package/components/vis-controls/config.js.map +0 -1
  533. package/components/vis-controls/index.d.ts +0 -14
  534. package/components/vis-controls/index.js +0 -52
  535. package/components/vis-controls/index.js.map +0 -1
  536. package/components/vis-controls/style.d.ts +0 -11
  537. package/components/vis-controls/style.js.map +0 -1
  538. package/components/vis-controls/types.d.ts +0 -13
  539. package/components/vis-controls/types.js +0 -8
  540. package/components/vis-controls/types.js.map +0 -1
  541. package/components/xy-labels/config.d.ts +0 -48
  542. package/components/xy-labels/config.js +0 -25
  543. package/components/xy-labels/config.js.map +0 -1
  544. package/components/xy-labels/index.d.ts +0 -15
  545. package/components/xy-labels/index.js +0 -87
  546. package/components/xy-labels/index.js.map +0 -1
  547. package/components/xy-labels/modules/label.d.ts +0 -9
  548. package/components/xy-labels/modules/label.js +0 -107
  549. package/components/xy-labels/modules/label.js.map +0 -1
  550. package/components/xy-labels/style.d.ts +0 -5
  551. package/components/xy-labels/style.js.map +0 -1
  552. package/components/xy-labels/types.d.ts +0 -23
  553. package/components/xy-labels/types.js +0 -9
  554. package/components/xy-labels/types.js.map +0 -1
  555. package/components.d.ts +0 -51
  556. package/components.js +0 -29
  557. package/components.js.map +0 -1
  558. package/containers/single-container/config.d.ts +0 -12
  559. package/containers/single-container/config.js +0 -12
  560. package/containers/single-container/config.js.map +0 -1
  561. package/containers/single-container/index.d.ts +0 -19
  562. package/containers/single-container/index.js +0 -128
  563. package/containers/single-container/index.js.map +0 -1
  564. package/containers/xy-container/config.d.ts +0 -99
  565. package/containers/xy-container/config.js +0 -30
  566. package/containers/xy-container/config.js.map +0 -1
  567. package/containers/xy-container/index.d.ts +0 -34
  568. package/containers/xy-container/index.js +0 -330
  569. package/containers/xy-container/index.js.map +0 -1
  570. package/containers.d.ts +0 -6
  571. package/containers.js +0 -4
  572. package/containers.js.map +0 -1
  573. package/core/component/config.d.ts +0 -58
  574. package/core/component/config.js +0 -14
  575. package/core/component/config.js.map +0 -1
  576. package/core/component/index.d.ts +0 -43
  577. package/core/component/index.js +0 -118
  578. package/core/component/index.js.map +0 -1
  579. package/core/component/types.d.ts +0 -2
  580. package/core/component/types.js +0 -2
  581. package/core/component/types.js.map +0 -1
  582. package/core/config/index.d.ts +0 -3
  583. package/core/config/index.js +0 -16
  584. package/core/config/index.js.map +0 -1
  585. package/core/container/config.d.ts +0 -48
  586. package/core/container/config.js +0 -29
  587. package/core/container/config.js.map +0 -1
  588. package/core/container/index.d.ts +0 -26
  589. package/core/container/index.js +0 -105
  590. package/core/container/index.js.map +0 -1
  591. package/core/xy-component/config.d.ts +0 -38
  592. package/core/xy-component/config.js +0 -20
  593. package/core/xy-component/config.js.map +0 -1
  594. package/core/xy-component/index.d.ts +0 -27
  595. package/core/xy-component/index.js +0 -74
  596. package/core/xy-component/index.js.map +0 -1
  597. package/data-models/core.d.ts +0 -6
  598. package/data-models/core.js +0 -14
  599. package/data-models/core.js.map +0 -1
  600. package/data-models/graph.d.ts +0 -24
  601. package/data-models/graph.js +0 -107
  602. package/data-models/graph.js.map +0 -1
  603. package/data-models/map-graph.d.ts +0 -21
  604. package/data-models/map-graph.js +0 -62
  605. package/data-models/map-graph.js.map +0 -1
  606. package/data-models/map.d.ts +0 -5
  607. package/data-models/map.js +0 -12
  608. package/data-models/map.js.map +0 -1
  609. package/data-models/series.d.ts +0 -6
  610. package/data-models/series.js +0 -19
  611. package/data-models/series.js.map +0 -1
  612. package/index.d.ts +0 -7
  613. package/index.js +0 -55
  614. package/index.js.map +0 -1
  615. package/maps/china-provinces.json.js +0 -140373
  616. package/maps/fr-regions.json.js +0 -14162
  617. package/maps/germany-regions.json.js +0 -35760
  618. package/maps/ind-regions.json.js +0 -290584
  619. package/maps/uk-regions.json.js +0 -96233
  620. package/maps/us-counties.json.js +0 -206318
  621. package/maps/us-states.json.js +0 -16345
  622. package/maps/world-110m-alpha.json.js +0 -251366
  623. package/maps/world-simple.json.js +0 -89428
  624. package/maps/world-simplest.json.js +0 -28175
  625. package/maps.d.ts +0 -60
  626. package/maps.js +0 -23
  627. package/styles/colors.d.ts +0 -7
  628. package/styles/colors.js +0 -24
  629. package/styles/colors.js.map +0 -1
  630. package/styles/index.d.ts +0 -7
  631. package/styles/index.js +0 -38
  632. package/styles/index.js.map +0 -1
  633. package/styles/sizes.d.ts +0 -2
  634. package/styles/sizes.js.map +0 -1
  635. package/types/accessor.d.ts +0 -5
  636. package/types/accessor.js +0 -2
  637. package/types/accessor.js.map +0 -1
  638. package/types/component.d.ts +0 -13
  639. package/types/component.js +0 -14
  640. package/types/component.js.map +0 -1
  641. package/types/curve.d.ts +0 -40
  642. package/types/curve.js +0 -46
  643. package/types/curve.js.map +0 -1
  644. package/types/data.d.ts +0 -7
  645. package/types/data.js +0 -2
  646. package/types/data.js.map +0 -1
  647. package/types/direction.d.ts +0 -6
  648. package/types/direction.js +0 -10
  649. package/types/direction.js.map +0 -1
  650. package/types/graph.d.ts +0 -35
  651. package/types/graph.js +0 -2
  652. package/types/graph.js.map +0 -1
  653. package/types/map.d.ts +0 -4
  654. package/types/map.js +0 -2
  655. package/types/map.js.map +0 -1
  656. package/types/misc.d.ts +0 -8
  657. package/types/position.d.ts +0 -20
  658. package/types/position.js +0 -27
  659. package/types/position.js.map +0 -1
  660. package/types/scale.d.ts +0 -23
  661. package/types/scale.js +0 -27
  662. package/types/scale.js.map +0 -1
  663. package/types/shape.d.ts +0 -7
  664. package/types/shape.js +0 -11
  665. package/types/shape.js.map +0 -1
  666. package/types/spacing.d.ts +0 -6
  667. package/types/spacing.js +0 -2
  668. package/types/spacing.js.map +0 -1
  669. package/types/svg.d.ts +0 -18
  670. package/types/svg.js +0 -22
  671. package/types/svg.js.map +0 -1
  672. package/types/symbol.d.ts +0 -18
  673. package/types/symbol.js +0 -24
  674. package/types/symbol.js.map +0 -1
  675. package/types/text.d.ts +0 -46
  676. package/types/text.js +0 -26
  677. package/types/text.js.map +0 -1
  678. package/types.d.ts +0 -27
  679. package/types.js +0 -30
  680. package/types.js.map +0 -1
  681. package/utils/color.d.ts +0 -10
  682. package/utils/color.js +0 -32
  683. package/utils/color.js.map +0 -1
  684. package/utils/d3.d.ts +0 -3
  685. package/utils/d3.js +0 -16
  686. package/utils/d3.js.map +0 -1
  687. package/utils/data.d.ts +0 -45
  688. package/utils/data.js +0 -274
  689. package/utils/data.js.map +0 -1
  690. package/utils/html.d.ts +0 -1
  691. package/utils/html.js +0 -16
  692. package/utils/html.js.map +0 -1
  693. package/utils/map.d.ts +0 -2
  694. package/utils/map.js +0 -20
  695. package/utils/map.js.map +0 -1
  696. package/utils/misc.d.ts +0 -9
  697. package/utils/misc.js +0 -47
  698. package/utils/misc.js.map +0 -1
  699. package/utils/path.d.ts +0 -23
  700. package/utils/path.js +0 -144
  701. package/utils/path.js.map +0 -1
  702. package/utils/scale.d.ts +0 -1
  703. package/utils/style.d.ts +0 -6
  704. package/utils/style.js +0 -24
  705. package/utils/style.js.map +0 -1
  706. package/utils/svg.d.ts +0 -3
  707. package/utils/text.d.ts +0 -139
  708. package/utils/text.js +0 -417
  709. package/utils/text.js.map +0 -1
  710. package/utils/type.d.ts +0 -5
@@ -0,0 +1,152 @@
1
+ // Types
2
+ import { Position } from 'types/position'
3
+ import { GraphInputLink, GraphInputNode, GraphNodeCore, GraphLinkCore } from 'types/graph'
4
+ import { Spacing } from 'types/spacing'
5
+
6
+ export type GraphNode<
7
+ N extends GraphInputNode = GraphInputNode,
8
+ L extends GraphInputLink = GraphInputLink,
9
+ > = GraphNodeCore<N, L> & {
10
+ x?: number;
11
+ y?: number;
12
+
13
+ _id?: number | string;
14
+ _index?: number;
15
+ _state?: {
16
+ isDragged?: boolean;
17
+ fx?: number;
18
+ fy?: number;
19
+ selected?: boolean;
20
+ greyout?: boolean;
21
+ };
22
+
23
+ _panels?: GraphPanel<N, L>[];
24
+ _isConnected?: boolean;
25
+ }
26
+
27
+ export type GraphLink<
28
+ N extends GraphInputNode = GraphInputNode,
29
+ L extends GraphInputLink = GraphInputLink,
30
+ > = GraphLinkCore<N, L> & {
31
+ id?: number | string;
32
+ source: number | string | GraphNode<N>;
33
+ target: number | string | GraphNode<N>;
34
+
35
+ _id?: number | string;
36
+ _direction?: number;
37
+ _index?: number;
38
+ _neighbours?: number;
39
+
40
+ _state?: {
41
+ flowAnimTime?: number;
42
+ hovered?: boolean;
43
+ selected?: boolean;
44
+ greyout?: boolean;
45
+ };
46
+ }
47
+
48
+ export enum GraphLayoutType {
49
+ Circular = 'circular',
50
+ Concentric = 'concentric',
51
+ Parallel = 'parallel',
52
+ ParallelHorizontal = 'parallel horizontal',
53
+ Dagre = 'dagre',
54
+ Force = 'force',
55
+ Elk = 'elk',
56
+ }
57
+
58
+ export type GraphCircleLabel = {
59
+ text: string;
60
+ textColor?: string | null;
61
+ color?: string | null;
62
+ cursor?: string | null;
63
+ fontSize?: string | null;
64
+ radius?: number;
65
+ }
66
+
67
+ export enum GraphLinkStyle {
68
+ Dashed = 'dashed',
69
+ Solid = 'solid',
70
+ }
71
+
72
+ export enum GraphLinkArrowStyle {
73
+ Single = 'single',
74
+ Double = 'double',
75
+ }
76
+
77
+ export enum GraphNodeShape {
78
+ Circle = 'circle',
79
+ Square = 'square',
80
+ Hexagon = 'hexagon',
81
+ Triangle = 'triangle',
82
+ }
83
+
84
+ export type GraphPanelConfig = {
85
+ /** Panel nodes references by unique ids */
86
+ nodes: (string|number)[];
87
+ /** Panel label */
88
+ label?: string;
89
+ /** Position of the label */
90
+ labelPosition?: Position.Top | Position.Bottom | string;
91
+ /** Color of the panel's border */
92
+ borderColor?: string;
93
+ /** Border width of the panel in pixels */
94
+ borderWidth?: number;
95
+ /** Inner padding */
96
+ padding?: number | Spacing;
97
+ /** Dashed outline showing that the panel is selected */
98
+ dashedOutline?: boolean;
99
+ /** Side icon symbol */
100
+ sideIconSymbol?: string;
101
+ /** Size of the icon as a CSS string. e.g.: `12pt` or `12px` */
102
+ sideIconFontSize?: string;
103
+ /** Color of the icon */
104
+ sideIconSymbolColor?: string;
105
+ /** Shape of the icon's background */
106
+ sideIconShape?: GraphNodeShape | string;
107
+ /** Size of the icon's background shape */
108
+ sideIconShapeSize?: number;
109
+ /** Stroke color of the icon's background shape */
110
+ sideIconShapeStroke?: string;
111
+ /** Cursor, when hovering over the icon */
112
+ sideIconCursor?: string;
113
+ }
114
+
115
+ export type GraphPanel<
116
+ N extends GraphInputNode = GraphInputNode,
117
+ L extends GraphInputLink = GraphInputLink,
118
+ > = GraphPanelConfig & {
119
+ _numNodes?: number;
120
+ _x?: number;
121
+ _y?: number;
122
+ _width?: number;
123
+ _height?: number;
124
+ _disabled?: boolean;
125
+ _padding?: Spacing;
126
+ }
127
+
128
+ export type GraphNodeAnimationState = {
129
+ endAngle: number;
130
+ nodeIndex: number;
131
+ nodeSize?: number;
132
+ borderWidth?: number;
133
+ }
134
+
135
+ export type GraphNodeAnimatedElement<T = SVGElement> = T & {
136
+ _animState: GraphNodeAnimationState;
137
+ }
138
+
139
+ export type GraphForceLayoutSettings = {
140
+ /** Preferred Link Distance. Default: `60` */
141
+ linkDistance?: number;
142
+ /** Link Strength [0:1]. Default: `0.45` */
143
+ linkStrength?: number;
144
+ /** Charge Force (<0 repulsion, >0 attraction). Default: `-500` */
145
+ charge?: number;
146
+ /** X-centring force. Default: `0.15` */
147
+ forceXStrength?: number;
148
+ /** Y-centring force. Default: `0.25` */
149
+ forceYStrength?: number;
150
+ }
151
+
152
+ export type GraphElkLayoutSettings = Record<string, string>
@@ -0,0 +1,40 @@
1
+ import { XYComponentConfigInterface, XYComponentConfig } from 'core/xy-component/config'
2
+
3
+ // Types
4
+ import { StringAccessor } from 'types/accessor'
5
+ import { Orientation } from 'types/position'
6
+
7
+ export interface GroupedBarConfigInterface<Datum> extends XYComponentConfigInterface<Datum> {
8
+ /** Force set the group width in pixels. Default: `undefined` */
9
+ groupWidth?: number;
10
+ /** Maximum group width for dynamic sizing. Limits the groupWidth property from the top. Default: `undefined` */
11
+ groupMaxWidth?: number;
12
+ /** Expected step between the bar groups in the X axis units.
13
+ * Needed to correctly calculate the width of the bar groups when there are gaps in the data.
14
+ * Default: `undefined` */
15
+ dataStep?: number;
16
+ /** Fractional padding between the groups in the range of [0,1). Default: `0.05` */
17
+ groupPadding?: number;
18
+ /** Fractional padding between the bars in the range of [0,1). Default: `0` */
19
+ barPadding?: number;
20
+ /** Rounded bar corners. Boolean or number (to set the radius in pixels explicitly). Default: `2` */
21
+ roundedCorners?: number | boolean;
22
+ /** Sets the minimum bar height for better visibility of small values. Default: `1` */
23
+ barMinHeight?: number;
24
+ /** Configurable bar cursor when hovering over. Default: `null` */
25
+ cursor?: StringAccessor<Datum>;
26
+ /** Chart orientation: `Orientation.Vertical` or `Orientation.Horizontal`. Default `Orientation.Vertical` */
27
+ orientation?: Orientation | string;
28
+ }
29
+
30
+ export class GroupedBarConfig<Datum> extends XYComponentConfig<Datum> implements GroupedBarConfigInterface<Datum> {
31
+ groupMaxWidth = undefined
32
+ groupWidth = undefined
33
+ dataStep = undefined
34
+ groupPadding = 0.05
35
+ barPadding = 0.0
36
+ roundedCorners = 2
37
+ barMinHeight = 2
38
+ cursor = null
39
+ orientation = Orientation.Vertical
40
+ }
@@ -0,0 +1,325 @@
1
+ import { scaleBand } from 'd3-scale'
2
+ import { min, max, range } from 'd3-array'
3
+ import { select } from 'd3'
4
+
5
+ // Core
6
+ import { XYComponentCore } from 'core/xy-component'
7
+
8
+ // Utils
9
+ import { clamp, getExtent, getMax, getMin, getNumber, getString, isArray, isEmpty, isNumber } from 'utils/data'
10
+ import { roundedRectPath } from 'utils/path'
11
+ import { smartTransition } from 'utils/d3'
12
+ import { getColor } from 'utils/color'
13
+
14
+ // Types
15
+ import { NumericAccessor } from 'types/accessor'
16
+ import { Spacing } from 'types/spacing'
17
+ import { Direction } from 'types/direction'
18
+ import { Orientation } from 'types/position'
19
+ import { ContinuousScale } from 'types/scale'
20
+
21
+ // Config
22
+ import { GroupedBarConfig, GroupedBarConfigInterface } from './config'
23
+
24
+ // Styles
25
+ import * as s from './style'
26
+
27
+ export class GroupedBar<Datum> extends XYComponentCore<Datum, GroupedBarConfig<Datum>, GroupedBarConfigInterface<Datum>> {
28
+ static selectors = s
29
+ config: GroupedBarConfig<Datum> = new GroupedBarConfig()
30
+ getAccessors = (): NumericAccessor<Datum>[] =>
31
+ isArray(this.config.y) ? this.config.y : [this.config.y]
32
+
33
+ events = {
34
+ [GroupedBar.selectors.barGroup]: {
35
+ mouseover: this._raiseSelection,
36
+ },
37
+ [GroupedBar.selectors.bar]: {
38
+ mouseover: this._raiseSelection,
39
+ },
40
+ }
41
+
42
+ private _barData: Datum[] = []
43
+
44
+ constructor (config?: GroupedBarConfigInterface<Datum>) {
45
+ super()
46
+ if (config) this.config.init(config)
47
+ }
48
+
49
+ get bleed (): Spacing {
50
+ this._barData = this._getVisibleData()
51
+ if (this._barData.length === 0) return { top: 0, bottom: 0, left: 0, right: 0 }
52
+
53
+ // By default, horizontal orientation is "flipped", i.e. the `yDirection` of `XYContainer` is set to `Direction.North`
54
+ const isHorizontalAndFlipped = !this.isVertical() && (this.dataScale.range()[0] > this.dataScale.range()[1])
55
+ const dataDomain = this.dataScale.domain()
56
+ const halfGroupWidth = this._getGroupWidth() / 2
57
+
58
+ const dataScaleValues = this._barData.map((d, i) => getNumber(d, this.config.x, i))
59
+ const firstDataValue = min(dataScaleValues)
60
+ const lastDataValue = max(dataScaleValues)
61
+ const firstValuePx = this.dataScale(firstDataValue)
62
+ const lastValuePx = this.dataScale(lastDataValue)
63
+
64
+ const dataDomainRequiredStart = this.dataScale.invert(firstValuePx + (isHorizontalAndFlipped ? halfGroupWidth : -halfGroupWidth))
65
+ const dataDomainRequiredEnd = this.dataScale.invert(lastValuePx + (isHorizontalAndFlipped ? -halfGroupWidth : halfGroupWidth))
66
+ const bleedPxStart = dataDomainRequiredStart <= dataDomain[0] ? this.dataScale(dataDomain[0]) - this.dataScale(dataDomainRequiredStart) : 0
67
+ const bleedPxEnd = dataDomainRequiredEnd > dataDomain[1] ? this.dataScale(dataDomainRequiredEnd) - this.dataScale(dataDomain[1]) : 0
68
+
69
+ return {
70
+ top: this.isVertical() ? 0 : (isHorizontalAndFlipped ? -bleedPxEnd : bleedPxStart),
71
+ bottom: this.isVertical() ? 0 : (isHorizontalAndFlipped ? -bleedPxStart : bleedPxEnd),
72
+ left: this.isVertical() ? bleedPxStart : 0,
73
+ right: this.isVertical() ? bleedPxEnd : 0,
74
+ }
75
+ }
76
+
77
+ private get dataScale (): ContinuousScale {
78
+ return this.isVertical() ? this.xScale : this.yScale
79
+ }
80
+
81
+ private get valueScale (): ContinuousScale {
82
+ return this.isVertical() ? this.yScale : this.xScale
83
+ }
84
+
85
+ private isVertical (): boolean {
86
+ return this.config.orientation === Orientation.Vertical
87
+ }
88
+
89
+ _render (customDuration?: number): void {
90
+ const { config } = this
91
+ const duration = isNumber(customDuration)
92
+ ? customDuration
93
+ : config.duration
94
+ const groupWidth = this._getGroupWidth()
95
+
96
+ const yAccessors = this.getAccessors()
97
+ const innerBandScaleRange = [-groupWidth / 2, groupWidth / 2] as [
98
+ number,
99
+ number,
100
+ ]
101
+ const innerBandScale = scaleBand<number>()
102
+ .domain(range(yAccessors.length))
103
+ .range(innerBandScaleRange)
104
+ .paddingInner(config.barPadding)
105
+ .paddingOuter(config.barPadding)
106
+
107
+ const barGroups = this.g
108
+ .selectAll<SVGGElement, Datum>(`.${s.barGroup}`)
109
+ .data(this._barData, (d, i) => `${getString(d, config.id, i) ?? i}`)
110
+
111
+ const getBarGroupsTransform = (d: Datum, i: number): string => {
112
+ const v = this.dataScale(getNumber(d, config.x, i))
113
+ const x = this.isVertical() ? v : 0
114
+ const y = this.isVertical() ? 0 : v
115
+ return `translate(${x},${y})`
116
+ }
117
+
118
+ const barGroupsEnter = barGroups
119
+ .enter()
120
+ .append('g')
121
+ .attr('class', s.barGroup)
122
+ .attr('transform', getBarGroupsTransform)
123
+ .style('opacity', 1)
124
+
125
+ const barGroupsMerged = barGroupsEnter.merge(barGroups)
126
+ smartTransition(barGroupsMerged, duration)
127
+ .attr('transform', getBarGroupsTransform)
128
+ .style('opacity', 1)
129
+
130
+ const barGroupExit = barGroups.exit().attr('class', s.barGroupExit)
131
+ smartTransition(barGroupExit, duration).style('opacity', 0).remove()
132
+
133
+ // Animate exiting bars going down
134
+ smartTransition(barGroupExit.selectAll<SVGPathElement, Datum>(`.${s.bar}`), duration)
135
+ .attr('transform', (d, i, e) => {
136
+ return this.isVertical()
137
+ ? `translate(0,${this.yScale(0)}) scale(1,0)`
138
+ : `translate(${this.xScale(0)},0) scale(0,1)`
139
+ })
140
+
141
+ const barWidth = innerBandScale.bandwidth()
142
+ const bars = barGroupsMerged
143
+ .selectAll<SVGPathElement, Datum>(`.${s.bar}`)
144
+ .data((d) => yAccessors.map(() => d))
145
+
146
+ const valueAxisDirection = this._getValueAxisDirection()
147
+ const barsEnter = bars
148
+ .enter()
149
+ .append('path')
150
+ .attr('class', s.bar)
151
+ .attr('d', (d, i) => {
152
+ const x = innerBandScale(i)
153
+ const y = this.valueScale(0)
154
+ const width = barWidth
155
+ const height = 0
156
+ return this._getBarPath(x, y, width, height, false, valueAxisDirection)
157
+ })
158
+ .style('fill', (d, i) => getColor(d, config.color, i))
159
+
160
+ const barsMerged = barsEnter.merge(bars)
161
+ smartTransition(barsMerged, duration)
162
+ .attr('d', (d, j) => {
163
+ const x = innerBandScale(j)
164
+ const width = barWidth
165
+
166
+ // Todo: Find a way to pass the datum index to `getNumber` below
167
+ const value = getNumber(d, yAccessors[j])
168
+ const isNegative = value < 0
169
+ let y = isNegative ? this.valueScale(0) : this.valueScale(value || 0)
170
+ let height = Math.abs(this.valueScale(0) - this.valueScale(value)) || 0
171
+
172
+ // Optionally set minimum bar height
173
+ if (height < config.barMinHeight) {
174
+ const dir = valueAxisDirection === Direction.North ? -1 : 1
175
+ y = this.valueScale(0) + dir * config.barMinHeight
176
+ height = config.barMinHeight
177
+ }
178
+ return this._getBarPath(x, y, width, height, isNegative, valueAxisDirection)
179
+ })
180
+ .style('fill', (d, i) => getColor(d, config.color, i))
181
+ .style('cursor', (d, i) => getString(d, config.cursor, i))
182
+
183
+ smartTransition(bars.exit(), duration).remove()
184
+ }
185
+
186
+ _getValueAxisDirection (): Direction.North | Direction.South {
187
+ return this.valueScale.range()[0] > this.valueScale.range()[1]
188
+ ? Direction.North
189
+ : Direction.South
190
+ }
191
+
192
+ _getVisibleData (): Datum[] {
193
+ const {
194
+ config,
195
+ datamodel: { data },
196
+ } = this
197
+ const groupWidth = this._getGroupWidth()
198
+ const halfGroupWidth = data.length < 2 ? 0 : groupWidth / 2
199
+
200
+ const dataScale = this.dataScale
201
+ const xHalfGroupWidth = Math.abs(
202
+ (dataScale.invert(halfGroupWidth) as number) -
203
+ (dataScale.invert(0) as number)
204
+ )
205
+ const filtered = data?.filter((d, i) => {
206
+ const v = getNumber(d, config.x, i)
207
+ const domain: number[] | Date[] = dataScale.domain()
208
+ const domainMin = +domain[0]
209
+ const domainMax = +domain[1]
210
+ return (
211
+ v >= domainMin - xHalfGroupWidth && v <= domainMax + xHalfGroupWidth
212
+ )
213
+ })
214
+
215
+ return filtered
216
+ }
217
+
218
+ _getBarPath (
219
+ x: number,
220
+ y: number,
221
+ width: number,
222
+ height: number,
223
+ isNegative: boolean,
224
+ direction: Direction.North | Direction.South
225
+ ): string {
226
+ const { config } = this
227
+
228
+ const cornerRadius = config.roundedCorners
229
+ ? isNumber(config.roundedCorners)
230
+ ? +config.roundedCorners
231
+ : width / 2
232
+ : 0
233
+ const cornerRadiusClamped = clamp(
234
+ cornerRadius,
235
+ 0,
236
+ Math.min(height, width) / 2
237
+ )
238
+
239
+ const isNorthDirected = direction === Direction.North
240
+ const roundedTop = this.isVertical() && isNegative !== isNorthDirected
241
+ const roundedBottom = this.isVertical() && isNegative === isNorthDirected
242
+ const roundedLeft = !this.isVertical() && isNegative
243
+ const roundedRight = !this.isVertical() && !isNegative
244
+
245
+ return roundedRectPath({
246
+ x: this.isVertical() ? x : y + (isNorthDirected ? 0 : -height),
247
+ y: this.isVertical() ? y + (isNorthDirected ? 0 : -height) : x,
248
+ w: this.isVertical() ? width : height,
249
+ h: this.isVertical() ? height : width,
250
+ tl: roundedTop || roundedLeft,
251
+ tr: roundedTop || roundedRight,
252
+ bl: roundedBottom || roundedLeft,
253
+ br: roundedBottom || roundedRight,
254
+ r: cornerRadiusClamped,
255
+ })
256
+ }
257
+
258
+ _getGroupWidth (): number {
259
+ const {
260
+ config,
261
+ datamodel: { data },
262
+ } = this
263
+ if (isEmpty(data)) return 0
264
+ if (config.groupWidth) { return min([config.groupWidth, config.groupMaxWidth]) }
265
+
266
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
267
+ // @ts-ignore
268
+ const isOrdinal = this.dataScale.bandwidth
269
+ const domain = (
270
+ this.dataScale.domain ? this.dataScale.domain() : []
271
+ ) as number[]
272
+ const domainLength = isOrdinal ? domain.length : domain[1] - domain[0]
273
+
274
+ // If the dataStep property is provided the amount of data elements is calculates as domainLength / dataStep
275
+ // otherwise we get the number of data elements within the domain range
276
+ // Or if the scale is ordinal we use data.length
277
+ let dataSize =
278
+ 1 + domainLength / config.dataStep ||
279
+ (!isOrdinal &&
280
+ data.filter((d, i) => {
281
+ const value = getNumber(d, config.x, i)
282
+ return value >= domain[0] && value <= domain[1]
283
+ }).length) ||
284
+ data.length
285
+
286
+ // We increase the dataSize by 1 to take into account possible additional domain space
287
+ if (!isOrdinal && dataSize >= 2) dataSize += 1
288
+
289
+ const c = dataSize < 2 ? 1 : 1 - config.groupPadding
290
+ const groupWidth =
291
+ (c * (this.isVertical() ? this._width : this._height)) / dataSize
292
+ return min([groupWidth, config.groupMaxWidth])
293
+ }
294
+
295
+ getValueScaleExtent (scaleByVisibleData: boolean): number[] {
296
+ const { datamodel } = this
297
+ const yAccessors = this.getAccessors()
298
+
299
+ const data = scaleByVisibleData ? this._getVisibleData() : datamodel.data
300
+ const min = getMin(data, ...yAccessors)
301
+ const max = getMax(data, ...yAccessors)
302
+ return [min > 0 ? 0 : min, max < 0 ? 0 : max]
303
+ }
304
+
305
+ _raiseSelection (d, i, els): void {
306
+ select(els[i]).raise()
307
+ }
308
+
309
+ getDataScaleExtent (): number[] {
310
+ const { config, datamodel } = this
311
+ return getExtent(datamodel.data, config.x)
312
+ }
313
+
314
+ getYDataExtent (scaleByVisibleData: boolean): number[] {
315
+ return this.isVertical()
316
+ ? this.getValueScaleExtent(scaleByVisibleData)
317
+ : this.getDataScaleExtent()
318
+ }
319
+
320
+ getXDataExtent (): number[] {
321
+ return this.isVertical()
322
+ ? this.getDataScaleExtent()
323
+ : this.getValueScaleExtent(false)
324
+ }
325
+ }
@@ -1,9 +1,10 @@
1
- import { css, injectGlobal } from '@emotion/css';
1
+ import { css, injectGlobal } from '@emotion/css'
2
2
 
3
- const root = css `
3
+ export const root = css`
4
4
  label: grouped-bar-component;
5
- `;
6
- const globalStyles = injectGlobal `
5
+ `
6
+
7
+ export const globalStyles = injectGlobal`
7
8
  :root {
8
9
  --vis-grouped-bar-cursor: default;
9
10
  --vis-grouped-bar-fill-color: var(--vis-color-main);
@@ -20,8 +21,9 @@ const globalStyles = injectGlobal `
20
21
  body.theme-dark ${`.${root}`} {
21
22
  --vis-grouped-bar-stroke-color: var(--vis-dark-grouped-bar-stroke-color);
22
23
  }
23
- `;
24
- const bar = css `
24
+ `
25
+
26
+ export const bar = css`
25
27
  label: bar;
26
28
  fill: var(--vis-grouped-bar-fill-color);
27
29
  stroke: var(--vis-grouped-bar-stroke-color);
@@ -32,13 +34,12 @@ const bar = css `
32
34
  stroke-width: var(--vis-grouped-bar-hover-stroke-width);
33
35
  stroke: var(--vis-grouped-bar-hover-stroke-color);
34
36
  }
35
- `;
36
- const barGroup = css `
37
+ `
38
+
39
+ export const barGroup = css`
37
40
  label: barGroup;
38
- `;
39
- const barGroupExit = css `
40
- label: barGroupExit;
41
- `;
41
+ `
42
42
 
43
- export { bar, barGroup, barGroupExit, globalStyles, root };
44
- //# sourceMappingURL=style.js.map
43
+ export const barGroupExit = css`
44
+ label: barGroupExit;
45
+ `
@@ -0,0 +1,60 @@
1
+ /* eslint-disable dot-notation */
2
+
3
+ // Config
4
+ import { LeafletMapConfig, LeafletMapConfigInterface } from 'components/leaflet-map/config'
5
+
6
+ // Types
7
+ import { ColorAccessor, NumericAccessor } from 'types/accessor'
8
+ import { GenericDataRecord } from 'types/data'
9
+
10
+ export interface LeafletFlowMapConfigInterface<PointDatum extends GenericDataRecord, FlowDatum extends GenericDataRecord> extends LeafletMapConfigInterface<PointDatum> {
11
+ /** Flow source point longitude accessor function or value. Default:.`f => f.sourceLongitude` */
12
+ sourceLongitude?: NumericAccessor<FlowDatum>;
13
+ /** Flow source point latitude accessor function or value. Default: `f => f.sourceLatitude` */
14
+ sourceLatitude?: NumericAccessor<FlowDatum>;
15
+ /** Flow target point longitude accessor function or value. Default: `f => f.targetLongitude` */
16
+ targetLongitude?: NumericAccessor<FlowDatum>;
17
+ /** Flow target point latitude accessor function or value. Default: `f => f.targetLatitude` */
18
+ targetLatitude?: NumericAccessor<FlowDatum>;
19
+ /** Flow source point radius accessor function or value. Default: `3` */
20
+ sourcePointRadius?: NumericAccessor<FlowDatum>;
21
+ /** Source point color accessor function or value. Default: `'#88919f'` */
22
+ sourcePointColor?: ColorAccessor<FlowDatum>;
23
+ /** Flow particle color accessor function or value. Default: `'#949dad'` */
24
+ flowParticleColor?: ColorAccessor<FlowDatum>;
25
+ /** Flow particle radius accessor function or value. Default: `1.1` */
26
+ flowParticleRadius?: NumericAccessor<FlowDatum>;
27
+ /** Flow particle speed accessor function or value. The unit is arbitrary, recommended range is 0 – 0.2. Default: `0.07` */
28
+ flowParticleSpeed?: NumericAccessor<FlowDatum>;
29
+ /** Flow particle density accessor function or value on the range of [0, 1]. Default: `0.6` */
30
+ flowParticleDensity?: NumericAccessor<FlowDatum>;
31
+
32
+ // Events
33
+ /** Flow source point click callback function. Default: `undefined` */
34
+ onSourcePointClick?: (f: FlowDatum, x: number, y: number, event: MouseEvent) => void;
35
+ /** Flow source point mouse over callback function. Default: `undefined` */
36
+ onSourcePointMouseEnter?: (f: FlowDatum, x: number, y: number, event: MouseEvent) => void;
37
+ /** Flow source point mouse leave callback function. Default: `undefined` */
38
+ onSourcePointMouseLeave?: (f: FlowDatum, event: MouseEvent) => void;
39
+ }
40
+
41
+ export class LeafletFlowMapConfig<
42
+ PointDatum extends GenericDataRecord = GenericDataRecord,
43
+ FlowDatum extends GenericDataRecord = GenericDataRecord,
44
+ > extends LeafletMapConfig<PointDatum> implements LeafletFlowMapConfigInterface<PointDatum, FlowDatum> {
45
+ sourceLongitude = (f: FlowDatum): number => f['sourceLongitude'] as number
46
+ sourceLatitude = (f: FlowDatum): number => f['sourceLatitude'] as number
47
+ targetLongitude = (f: FlowDatum): number => f['targetLongitude'] as number
48
+ targetLatitude = (f: FlowDatum): number => f['targetLatitude'] as number
49
+ sourcePointRadius = 3
50
+ sourcePointColor = '#88919f'
51
+ flowParticleColor = '#949dad'
52
+ flowParticleRadius = 1.1
53
+ flowParticleSpeed = 0.07
54
+ flowParticleDensity = 0.6
55
+
56
+ // Events
57
+ onSourcePointClick = undefined
58
+ onSourcePointMouseEnter = undefined
59
+ onSourcePointMouseLeave = undefined
60
+ }