@unovis/ts 1.1.1-beta.6 → 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 -47
  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 -443
  709. package/utils/text.js.map +0 -1
  710. package/utils/type.d.ts +0 -5
@@ -0,0 +1,290 @@
1
+ import type L from 'leaflet'
2
+ import { min, max } from 'd3-array'
3
+ import Supercluster, { ClusterFeature, PointFeature } from 'supercluster'
4
+
5
+ // Utils
6
+ import { clamp, getString, getNumber } from 'utils/data'
7
+ import { getColor } from 'utils/color'
8
+ import { polygon, circlePath } from 'utils/path'
9
+ import { getHTMLTransform } from 'utils/html'
10
+
11
+ // Types
12
+ import { NumericAccessor, StringAccessor } from 'types/accessor'
13
+ import { GenericDataRecord } from 'types/data'
14
+
15
+ // Local Types
16
+ import {
17
+ LeafletMapPoint,
18
+ LeafletMapPointShape,
19
+ LeafletMapPieDatum,
20
+ LeafletMapPointStyles,
21
+ PointExpandedClusterProperties,
22
+ LeafletMapPointDatum,
23
+ LeafletMapClusterDatum,
24
+ } from '../types'
25
+
26
+ // Config
27
+ import { LeafletMapConfig } from '../config'
28
+
29
+ export function bBoxMerge (
30
+ bBoxArray: ({x1: number; x2: number; y1: number; y2: number})[]):
31
+ { x: number; y: number; width: number; height: number } {
32
+ let box = { x1: 0, x2: 0, y1: 0, y2: 0 }
33
+ bBoxArray.forEach(coords => {
34
+ if (!box) {
35
+ box = { ...coords }
36
+ } else {
37
+ if (box.x1 > coords.x1) box.x1 = coords.x1
38
+ if (box.y1 > coords.y1) box.y1 = coords.y1
39
+ if (box.x2 < coords.x2) box.x2 = coords.x2
40
+ if (box.y2 < coords.y2) box.y2 = coords.y2
41
+ }
42
+ })
43
+
44
+ return {
45
+ x: box.x1,
46
+ y: box.y1,
47
+ width: box.x2 - box.x1,
48
+ height: box.y2 - box.y1,
49
+ }
50
+ }
51
+
52
+ export const getNextZoomLevelOnClusterClick = (level: number): number => clamp(1 + level * 1.5, level, 12)
53
+
54
+ export function projectPoint<D extends GenericDataRecord> (
55
+ geoJSONPoint: LeafletMapPoint<D> | ClusterFeature<LeafletMapClusterDatum<D>> | PointFeature<LeafletMapPointDatum<D>>,
56
+ leafletMap: L.Map
57
+ ): { x: number; y: number } {
58
+ const lat = geoJSONPoint.geometry.coordinates[1]
59
+ const lon = geoJSONPoint.geometry.coordinates[0]
60
+ const projected = leafletMap.latLngToLayerPoint([lat, lon])
61
+ return projected
62
+ }
63
+
64
+ export function getPointRadius<D extends GenericDataRecord> (
65
+ geoPoint: ClusterFeature<LeafletMapClusterDatum<D>> | PointFeature<LeafletMapPointDatum<D>> | PointFeature<PointExpandedClusterProperties<D>>,
66
+ pointRadius: NumericAccessor<D>,
67
+ zoomLevel: number
68
+ ): number {
69
+ const isDynamic = !pointRadius
70
+ const radius = isDynamic ? 1 + 2 * Math.pow(zoomLevel, 0.80) : getNumber((geoPoint.properties as LeafletMapPointDatum<D>), pointRadius)
71
+
72
+ const isCluster = (geoPoint as ClusterFeature<D>).properties.cluster
73
+ return (isCluster && isDynamic)
74
+ ? clamp(Math.pow((geoPoint as ClusterFeature<D>).properties.point_count, 0.35) * radius, radius * 1.1, radius * 3)
75
+ : radius
76
+ }
77
+
78
+ export function getPointPos<D extends GenericDataRecord> (point: LeafletMapPoint<D> | ClusterFeature<LeafletMapClusterDatum<D>> | PointFeature<LeafletMapPointDatum<D>>, leafletMap: L.Map): { x: number; y: number } {
79
+ const properties = point.properties as LeafletMapPointDatum<D>
80
+ const isFromCluster = !!(properties).expandedClusterPoint
81
+
82
+ if (isFromCluster) {
83
+ const { x, y } = projectPoint(properties.expandedClusterPoint, leafletMap)
84
+ return {
85
+ x: x + properties.dx,
86
+ y: y + properties.dy,
87
+ }
88
+ } else {
89
+ return projectPoint(point, leafletMap)
90
+ }
91
+ }
92
+
93
+ export function getPointDisplayOrder<D extends GenericDataRecord> (
94
+ d: LeafletMapPoint<D>,
95
+ pointStatus: StringAccessor<LeafletMapPointDatum<D> | LeafletMapClusterDatum<D>>,
96
+ colorMap: LeafletMapPointStyles<D>
97
+ ): number {
98
+ const status = getString(d.properties, pointStatus)
99
+ const statusList = Object.keys(colorMap)
100
+ return Object.keys(statusList).indexOf(status)
101
+ }
102
+
103
+ export function toGeoJSONPoint<D extends GenericDataRecord> (d: D, pointLatitude: NumericAccessor<D>, pointLongitude: NumericAccessor<D>): PointFeature<D> {
104
+ const lat = getNumber(d, pointLatitude) as number
105
+ const lon = getNumber(d, pointLongitude) as number
106
+
107
+ return {
108
+ type: 'Feature',
109
+ properties: {
110
+ ...d,
111
+ },
112
+ geometry: {
113
+ type: 'Point',
114
+ coordinates: [lon, lat],
115
+ },
116
+ }
117
+ }
118
+
119
+ export function calculateClusterIndex<D extends GenericDataRecord> (data: D[], config: LeafletMapConfig<D>, maxClusterZoomLevel = 23): Supercluster<D> {
120
+ const { colorMap, pointShape, pointLatitude, pointLongitude, clusteringDistance } = config
121
+ return new Supercluster<D, Supercluster.AnyProps>({
122
+ radius: clusteringDistance,
123
+ maxZoom: maxClusterZoomLevel,
124
+ map: (d): Supercluster.AnyProps => {
125
+ const shape = getString(d, pointShape)
126
+
127
+ const clusterPoint = { shape }
128
+ for (const key of Object.keys(colorMap)) {
129
+ clusterPoint[key] = d[key] || 0
130
+ }
131
+
132
+ return clusterPoint
133
+ },
134
+ reduce: (acc, clusterPoint): void => {
135
+ acc.shape = acc.shape === clusterPoint.shape ? acc.shape : LeafletMapPointShape.Circle
136
+ acc.value = (acc.value ?? 0) + (clusterPoint.value ?? 0)
137
+
138
+ for (const key of Object.keys(colorMap)) {
139
+ acc[key] += clusterPoint[key]
140
+ }
141
+ },
142
+ }).load(data.map(d => toGeoJSONPoint(d, pointLatitude, pointLongitude)))
143
+ }
144
+
145
+ export function getNodePathData ({ x, y }: { x: number; y: number }, radius: number, shape: LeafletMapPointShape): string {
146
+ switch (shape) {
147
+ case LeafletMapPointShape.Triangle:
148
+ return polygon(radius * 2, 3)
149
+ case LeafletMapPointShape.Square:
150
+ return polygon(radius * 2, 4)
151
+ case LeafletMapPointShape.Circle:
152
+ case LeafletMapPointShape.Ring:
153
+ default:
154
+ return circlePath(x, y, radius)
155
+ }
156
+ }
157
+
158
+ export function getDonutData<D extends GenericDataRecord> (
159
+ d: LeafletMapClusterDatum<D> | LeafletMapPointDatum<D>,
160
+ colorMap: LeafletMapPointStyles<D>
161
+ ): LeafletMapPieDatum[] {
162
+ return Object.keys(colorMap).map(key => ({
163
+ name: key,
164
+ value: d[key] as number,
165
+ color: colorMap[key].color,
166
+ className: colorMap[key].className,
167
+ }))
168
+ }
169
+
170
+ export function geoJsonPointToScreenPoint<D extends GenericDataRecord> (
171
+ geoPoint: ClusterFeature<LeafletMapClusterDatum<D>> | PointFeature<LeafletMapPointDatum<D>>,
172
+ i: number,
173
+ leafletMap: L.Map,
174
+ config: LeafletMapConfig<D>
175
+ ): LeafletMapPoint<D> {
176
+ const zoomLevel = leafletMap.getZoom()
177
+ const isCluster = (geoPoint.properties as LeafletMapClusterDatum<D>).cluster
178
+ const clusterIndex = (geoPoint.properties as LeafletMapClusterDatum<D>).clusterIndex
179
+ const clusterPoints = isCluster ? clusterIndex.getLeaves((geoPoint.properties as LeafletMapClusterDatum<D>).cluster_id as number, Infinity).map(d => d.properties) : undefined
180
+ const { x, y } = getPointPos(geoPoint, leafletMap)
181
+
182
+ const id = isCluster ? `cluster-${geoPoint.id}` : (getString(geoPoint.properties as LeafletMapPointDatum<D>, config.pointId) ?? geoPoint.geometry.coordinates.join(''))
183
+ const pointColor = getColor(geoPoint.properties, isCluster ? config.clusterColor : config.pointColor)
184
+ const radius = getPointRadius(geoPoint, isCluster ? config.clusterRadius : config.pointRadius, zoomLevel)
185
+ const shape = isCluster ? LeafletMapPointShape.Circle : getString(geoPoint.properties as LeafletMapPointDatum<D>, config.pointShape) as LeafletMapPointShape
186
+ const isRing = shape === LeafletMapPointShape.Ring
187
+
188
+ const donutData = getDonutData(geoPoint.properties, config.colorMap)
189
+ const maxValue = max(donutData, d => d.value)
190
+ const maxValueIndex = donutData.map(d => d.value).indexOf(maxValue)
191
+ const biggestDatum = donutData[maxValueIndex ?? 0]
192
+
193
+ const color = isCluster ? pointColor
194
+ : (isRing ? null : (pointColor ?? biggestDatum?.color))
195
+ const bbox = { x1: x - radius, y1: y - radius, x2: x + radius, y2: y + radius }
196
+ const path = getNodePathData({ x: 0, y: 0 }, radius, shape)
197
+ const _zIndex = 0
198
+
199
+ const screenPoint: LeafletMapPoint<D> = {
200
+ ...geoPoint,
201
+ id,
202
+ bbox,
203
+ radius,
204
+ donutData,
205
+ path,
206
+ color,
207
+ isCluster,
208
+ clusterIndex,
209
+ clusterPoints,
210
+ _zIndex,
211
+ }
212
+
213
+ return screenPoint
214
+ }
215
+
216
+ export function shouldClusterExpand<D extends GenericDataRecord> (
217
+ cluster: LeafletMapPoint<D>,
218
+ zoomLevel: number,
219
+ midLevel = 4,
220
+ maxLevel = 8,
221
+ maxClusterZoomLevel = 23
222
+ ): boolean {
223
+ if (!cluster) return false
224
+
225
+ const clusterExpansionZoomLevel = cluster.clusterIndex.getClusterExpansionZoom(cluster.properties.cluster_id as number)
226
+ return zoomLevel >= maxLevel ||
227
+ (zoomLevel >= midLevel && (cluster.properties.point_count < 20 || clusterExpansionZoomLevel >= maxClusterZoomLevel))
228
+ }
229
+
230
+ export function findPointAndClusterByPointId<D extends GenericDataRecord> (
231
+ points: LeafletMapPoint<D>[],
232
+ id: string,
233
+ pointId: StringAccessor<D>
234
+ ): {
235
+ point: PointFeature<D> | undefined;
236
+ cluster: LeafletMapPoint<D> | undefined;
237
+ } {
238
+ let point
239
+ let cluster
240
+ points.forEach(p => {
241
+ if (p.isCluster) {
242
+ const leaves = p.clusterIndex.getLeaves((p.properties as LeafletMapClusterDatum<D>).cluster_id as number, Infinity) ?? []
243
+ const foundPoint = leaves.find(d => getString(d.properties, pointId) === id)
244
+ if (foundPoint) {
245
+ point = foundPoint
246
+ cluster = p
247
+ }
248
+ }
249
+ })
250
+ return { point, cluster }
251
+ }
252
+
253
+ export function getNodeRelativePosition<D extends GenericDataRecord> (d: LeafletMapPoint<D>, leafletMap: L.Map): { x: number; y: number } {
254
+ const paneTransform = getHTMLTransform(leafletMap.getPane('mapPane'))
255
+ const { x, y } = getPointPos(d, leafletMap)
256
+ return { x: x + paneTransform[0], y: y + paneTransform[1] }
257
+ }
258
+
259
+ export function getClusterRadius<D extends GenericDataRecord> (cluster: { points: PointFeature<PointExpandedClusterProperties<D>>[]; cluster: LeafletMapPoint<D> }): number {
260
+ const { points } = cluster
261
+ const minX = min<number>(points.map(d => d.properties.dx - d.properties.r))
262
+ const maxX = max<number>(points.map(d => d.properties.dx + d.properties.r))
263
+ const minY = min<number>(points.map(d => d.properties.dy - d.properties.r))
264
+ const maxY = max<number>(points.map(d => d.properties.dy + d.properties.r))
265
+ return Math.sqrt((maxX - minX) ** 2 + (maxY - minY) ** 2) * 0.5
266
+ }
267
+
268
+ export function getClustersAndPoints<D extends GenericDataRecord> (
269
+ clusterIndex: Supercluster<D>,
270
+ leafletMap: L.Map,
271
+ customBounds?: [number, number, number, number]
272
+ ): (ClusterFeature<LeafletMapClusterDatum<D>> | PointFeature<D>)[] {
273
+ const leafletBounds = leafletMap.getBounds()
274
+ const southWest = leafletBounds.getSouthWest()
275
+ const northEast = leafletBounds.getNorthEast()
276
+ const bounds = customBounds || [southWest.lng, southWest.lat, northEast.lng, northEast.lat]
277
+ const zoom = Math.round(leafletMap.getZoom())
278
+ const points = clusterIndex.getClusters(bounds, zoom) // as ClusterFeature<LeafletMapPointDatum<D>>[]
279
+
280
+ for (const p of points) {
281
+ const point = p as ClusterFeature<LeafletMapClusterDatum<D>>
282
+ const isCluster = point.properties.cluster
283
+ if (isCluster) {
284
+ point.properties.clusterIndex = clusterIndex
285
+ point.properties.clusterPoints = clusterIndex.getLeaves(point.properties.cluster_id, Infinity).map(d => d.properties)
286
+ }
287
+ }
288
+
289
+ return points as (ClusterFeature<LeafletMapClusterDatum<D>> | PointFeature<D>)[]
290
+ }
@@ -1,5 +1,5 @@
1
1
  // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
2
- function MaplibreGLLayer (leaflet, maplibre, options) {
2
+ export function MaplibreGLLayer (leaflet, maplibre, options) {
3
3
  // eslint-disable-next-line @typescript-eslint/naming-convention
4
4
  const Layer = leaflet.Layer.extend({
5
5
  options: {
@@ -15,39 +15,39 @@ function MaplibreGLLayer (leaflet, maplibre, options) {
15
15
  },
16
16
 
17
17
  initialize: function (options) {
18
- leaflet.setOptions(this, options);
18
+ leaflet.setOptions(this, options)
19
19
 
20
20
  // setup throttling the update event when panning
21
- this._throttledUpdate = leaflet.Util.throttle(this._update, this.options.updateInterval, this);
21
+ this._throttledUpdate = leaflet.Util.throttle(this._update, this.options.updateInterval, this)
22
22
  },
23
23
 
24
24
  onAdd: function (map) {
25
25
  if (!this._container) {
26
- this._initContainer();
26
+ this._initContainer()
27
27
  }
28
28
 
29
- const paneName = this.getPaneName();
30
- map.getPane(paneName).appendChild(this._container);
29
+ const paneName = this.getPaneName()
30
+ map.getPane(paneName).appendChild(this._container)
31
31
 
32
- this._initGL();
32
+ this._initGL()
33
33
 
34
- this._offset = this._map.containerPointToLayerPoint([0, 0]);
34
+ this._offset = this._map.containerPointToLayerPoint([0, 0])
35
35
 
36
36
  // work around https://github.com/mapbox/mapbox-gl-leaflet/issues/47
37
37
  if (map.options.zoomAnimation) {
38
- leaflet.DomEvent.on(map._proxy, leaflet.DomUtil.TRANSITION_END, this._transitionEnd, this);
38
+ leaflet.DomEvent.on(map._proxy, leaflet.DomUtil.TRANSITION_END, this._transitionEnd, this)
39
39
  }
40
40
  },
41
41
 
42
42
  onRemove: function (map) {
43
43
  if (this._map._proxy && this._map.options.zoomAnimation) {
44
- leaflet.DomEvent.off(this._map._proxy, leaflet.DomUtil.TRANSITION_END, this._transitionEnd, this);
44
+ leaflet.DomEvent.off(this._map._proxy, leaflet.DomUtil.TRANSITION_END, this._transitionEnd, this)
45
45
  }
46
- const paneName = this.getPaneName();
47
- map.getPane(paneName).removeChild(this._container);
46
+ const paneName = this.getPaneName()
47
+ map.getPane(paneName).removeChild(this._container)
48
48
 
49
- this._glMap.remove();
50
- this._glMap = null;
49
+ this._glMap.remove()
50
+ this._glMap = null
51
51
  },
52
52
 
53
53
  getEvents: function () {
@@ -74,8 +74,8 @@ function MaplibreGLLayer (leaflet, maplibre, options) {
74
74
  },
75
75
 
76
76
  getBounds: function () {
77
- const halfSize = this.getSize().multiplyBy(0.5);
78
- const center = this._map.latLngToContainerPoint(this._map.getCenter());
77
+ const halfSize = this.getSize().multiplyBy(0.5)
78
+ const center = this._map.latLngToContainerPoint(this._map.getCenter())
79
79
  return leaflet.latLngBounds(
80
80
  this._map.containerPointToLatLng(center.subtract(halfSize)),
81
81
  this._map.containerPointToLatLng(center.add(halfSize))
@@ -92,100 +92,100 @@ function MaplibreGLLayer (leaflet, maplibre, options) {
92
92
  },
93
93
 
94
94
  _initContainer: function () {
95
- const container = this._container = leaflet.DomUtil.create('div', 'leaflet-gl-layer');
95
+ const container = this._container = leaflet.DomUtil.create('div', 'leaflet-gl-layer')
96
96
 
97
- const size = this.getSize();
98
- const offset = this._map.getSize().multiplyBy(this.options.padding);
99
- container.style.width = `${size.x}px`;
100
- container.style.height = `${size.y}px`;
97
+ const size = this.getSize()
98
+ const offset = this._map.getSize().multiplyBy(this.options.padding)
99
+ container.style.width = `${size.x}px`
100
+ container.style.height = `${size.y}px`
101
101
 
102
- const topLeft = this._map.containerPointToLayerPoint([0, 0]).subtract(offset);
102
+ const topLeft = this._map.containerPointToLayerPoint([0, 0]).subtract(offset)
103
103
 
104
- leaflet.DomUtil.setPosition(container, topLeft);
104
+ leaflet.DomUtil.setPosition(container, topLeft)
105
105
  },
106
106
 
107
107
  _initGL: function () {
108
- const center = this._map.getCenter();
108
+ const center = this._map.getCenter()
109
109
 
110
110
  const options = leaflet.extend({}, this.options, {
111
111
  container: this._container,
112
112
  center: [center.lng, center.lat],
113
113
  zoom: this._map.getZoom() - 1,
114
114
  attributionControl: false,
115
- });
115
+ })
116
116
 
117
- this._glMap = new maplibre.Map(options);
117
+ this._glMap = new maplibre.Map(options)
118
118
 
119
119
  // allow GL base map to pan beyond min/max latitudes
120
- this._glMap.transform.latRange = null;
121
- this._glMap.transform.maxValidLatitude = Infinity;
120
+ this._glMap.transform.latRange = null
121
+ this._glMap.transform.maxValidLatitude = Infinity
122
122
 
123
- this._transformGL(this._glMap);
123
+ this._transformGL(this._glMap)
124
124
 
125
125
  if (this._glMap._canvas.canvas) {
126
126
  // older versions of mapbox-gl surfaced the canvas differently
127
- this._glMap._actualCanvas = this._glMap._canvas.canvas;
127
+ this._glMap._actualCanvas = this._glMap._canvas.canvas
128
128
  } else {
129
- this._glMap._actualCanvas = this._glMap._canvas;
129
+ this._glMap._actualCanvas = this._glMap._canvas
130
130
  }
131
131
 
132
132
  // treat child <canvas> element like leaflet.ImageOverlay
133
- const canvas = this._glMap._actualCanvas;
134
- leaflet.DomUtil.addClass(canvas, 'leaflet-image-layer');
135
- leaflet.DomUtil.addClass(canvas, 'leaflet-zoom-animated');
133
+ const canvas = this._glMap._actualCanvas
134
+ leaflet.DomUtil.addClass(canvas, 'leaflet-image-layer')
135
+ leaflet.DomUtil.addClass(canvas, 'leaflet-zoom-animated')
136
136
  if (this.options.interactive) {
137
- leaflet.DomUtil.addClass(canvas, 'leaflet-interactive');
137
+ leaflet.DomUtil.addClass(canvas, 'leaflet-interactive')
138
138
  }
139
139
  if (this.options.className) {
140
- leaflet.DomUtil.addClass(canvas, this.options.className);
140
+ leaflet.DomUtil.addClass(canvas, this.options.className)
141
141
  }
142
142
  },
143
143
 
144
144
  _update: function (e) {
145
145
  // update the offset so we can correct for it later when we zoom
146
- this._offset = this._map.containerPointToLayerPoint([0, 0]);
146
+ this._offset = this._map.containerPointToLayerPoint([0, 0])
147
147
 
148
148
  if (this._zooming) {
149
149
  return
150
150
  }
151
151
 
152
- const size = this.getSize();
153
- const container = this._container;
154
- const gl = this._glMap;
155
- const offset = this._map.getSize().multiplyBy(this.options.padding);
156
- const topLeft = this._map.containerPointToLayerPoint([0, 0]).subtract(offset);
152
+ const size = this.getSize()
153
+ const container = this._container
154
+ const gl = this._glMap
155
+ const offset = this._map.getSize().multiplyBy(this.options.padding)
156
+ const topLeft = this._map.containerPointToLayerPoint([0, 0]).subtract(offset)
157
157
 
158
- leaflet.DomUtil.setPosition(container, topLeft);
158
+ leaflet.DomUtil.setPosition(container, topLeft)
159
159
 
160
- this._transformGL(gl);
160
+ this._transformGL(gl)
161
161
 
162
162
  if (gl.transform.width !== size.x || gl.transform.height !== size.y) {
163
- container.style.width = `${size.x}px`;
164
- container.style.height = `${size.y}px`;
163
+ container.style.width = `${size.x}px`
164
+ container.style.height = `${size.y}px`
165
165
  if (gl._resize !== null && gl._resize !== undefined) {
166
- gl._resize();
166
+ gl._resize()
167
167
  } else {
168
- gl.resize();
168
+ gl.resize()
169
169
  }
170
170
  } else {
171
171
  // older versions of mapbox-gl surfaced update publicly
172
172
  if (gl._update !== null && gl._update !== undefined) {
173
- gl._update();
173
+ gl._update()
174
174
  } else {
175
- gl.update();
175
+ gl.update()
176
176
  }
177
177
  }
178
178
  },
179
179
 
180
180
  _transformGL: function (gl) {
181
- const center = this._map.getCenter();
181
+ const center = this._map.getCenter()
182
182
 
183
183
  // gl.setView([center.lat, center.lng], this._map.getZoom() - 1, 0);
184
184
  // calling setView directly causes sync issues because it uses requestAnimFrame
185
185
 
186
- const tr = gl.transform;
187
- tr.center = maplibre.LngLat.convert([center.lng, center.lat]);
188
- tr.zoom = this._map.getZoom() - 1;
186
+ const tr = gl.transform
187
+ tr.center = maplibre.LngLat.convert([center.lng, center.lat])
188
+ tr.zoom = this._map.getZoom() - 1
189
189
  },
190
190
 
191
191
  // update the map constantly during a pinch zoom
@@ -193,81 +193,79 @@ function MaplibreGLLayer (leaflet, maplibre, options) {
193
193
  this._glMap.jumpTo({
194
194
  zoom: this._map.getZoom() - 1,
195
195
  center: this._map.getCenter(),
196
- });
196
+ })
197
197
  },
198
198
 
199
199
  // borrowed from leaflet.ImageOverlay
200
200
  // https://github.com/Leaflet/Leaflet/blob/master/src/layer/ImageOverlay.js#L139-L144
201
201
  _animateZoom: function (e) {
202
- const scale = this._map.getZoomScale(e.zoom);
203
- const padding = this._map.getSize().multiplyBy(this.options.padding * scale);
204
- const viewHalf = this.getSize()._divideBy(2);
202
+ const scale = this._map.getZoomScale(e.zoom)
203
+ const padding = this._map.getSize().multiplyBy(this.options.padding * scale)
204
+ const viewHalf = this.getSize()._divideBy(2)
205
205
  // corrections for padding (scaled), adapted from
206
206
  // https://github.com/Leaflet/Leaflet/blob/master/src/map/Map.js#L1490-L1508
207
207
  const topLeft = this._map.project(e.center, e.zoom)
208
208
  ._subtract(viewHalf)
209
209
  ._add(this._map._getMapPanePos()
210
- .add(padding))._round();
210
+ .add(padding))._round()
211
211
  const offset = this._map.project(this._map.getBounds().getNorthWest(), e.zoom)
212
- ._subtract(topLeft);
212
+ ._subtract(topLeft)
213
213
 
214
214
  leaflet.DomUtil.setTransform(
215
215
  this._glMap._actualCanvas,
216
216
  offset.subtract(this._offset),
217
217
  scale
218
- );
218
+ )
219
219
  },
220
220
 
221
221
  _zoomStart: function (e) {
222
- this._zooming = true;
222
+ this._zooming = true
223
223
  },
224
224
 
225
225
  _zoomEnd: function () {
226
- const scale = this._map.getZoomScale(this._map.getZoom());
226
+ const scale = this._map.getZoomScale(this._map.getZoom())
227
227
 
228
228
  leaflet.DomUtil.setTransform(
229
229
  this._glMap._actualCanvas,
230
230
  // https://github.com/mapbox/mapbox-gl-leaflet/pull/130
231
231
  null,
232
232
  scale
233
- );
233
+ )
234
234
 
235
- this._zooming = false;
235
+ this._zooming = false
236
236
 
237
- this._update();
237
+ this._update()
238
238
  },
239
239
 
240
240
  _transitionEnd: function (e) {
241
241
  leaflet.Util.requestAnimFrame(function () {
242
- const zoom = this._map.getZoom();
243
- const center = this._map.getCenter();
242
+ const zoom = this._map.getZoom()
243
+ const center = this._map.getCenter()
244
244
  const offset = this._map.latLngToContainerPoint(
245
245
  this._map.getBounds().getNorthWest()
246
- );
246
+ )
247
247
 
248
248
  // reset the scale and offset
249
- leaflet.DomUtil.setTransform(this._glMap._actualCanvas, offset, 1);
249
+ leaflet.DomUtil.setTransform(this._glMap._actualCanvas, offset, 1)
250
250
 
251
251
  // enable panning once the gl map is ready again
252
252
  this._glMap.once('moveend', leaflet.Util.bind(function () {
253
- this._zoomEnd();
254
- }, this));
253
+ this._zoomEnd()
254
+ }, this))
255
255
 
256
256
  // update the map position
257
257
  this._glMap.jumpTo({
258
258
  center: center,
259
259
  zoom: zoom - 1,
260
- });
261
- }, this);
260
+ })
261
+ }, this)
262
262
  },
263
263
 
264
264
  _resize: function (e) {
265
- this._transitionEnd(e);
265
+ this._transitionEnd(e)
266
266
  },
267
- });
267
+ })
268
268
 
269
269
  return new Layer(options)
270
270
  }
271
271
 
272
- export { MaplibreGLLayer };
273
- //# sourceMappingURL=leaflet-maplibre-gl.js.map
@@ -0,0 +1,24 @@
1
+ import { StyleSpecification, LayerSpecification } from 'maplibre-gl'
2
+
3
+ import mapLibreBaseSettings from './mapboxgl/mapboxgl-settings.json'
4
+ import mapLibreDarkTheme from './mapboxgl/mapboxgl-dark-theme.json'
5
+ import mapLibreLightTheme from './mapboxgl/mapboxgl-light-theme.json'
6
+
7
+
8
+ export type MapLibreStyleSpecs = StyleSpecification
9
+
10
+ export const MapLibreArcticDark: MapLibreStyleSpecs = {
11
+ ...(mapLibreBaseSettings as StyleSpecification),
12
+ layers: [
13
+ ...mapLibreDarkTheme.layers,
14
+ ...mapLibreBaseSettings.layers,
15
+ ] as Array<LayerSpecification>,
16
+ }
17
+
18
+ export const MapLibreArcticLight: MapLibreStyleSpecs = {
19
+ ...(mapLibreBaseSettings as StyleSpecification),
20
+ layers: [
21
+ ...mapLibreLightTheme.layers,
22
+ ...mapLibreBaseSettings.layers,
23
+ ] as Array<LayerSpecification>,
24
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "layers": [
3
+ {
4
+ "id": "background",
5
+ "layout": {
6
+ "visibility": "visible"
7
+ },
8
+ "paint": {
9
+ "background-color": "#5C627A"
10
+ },
11
+ "type": "background"
12
+ },
13
+ {
14
+ "filter": [
15
+ "all",
16
+ [
17
+ "!=",
18
+ "intermittent",
19
+ 1
20
+ ]
21
+ ],
22
+ "id": "water",
23
+ "layout": {
24
+ "visibility": "visible"
25
+ },
26
+ "metadata": {},
27
+ "paint": {
28
+ "fill-color": "#2A2D39"
29
+ },
30
+ "source": "openmaptiles",
31
+ "source-layer": "water",
32
+ "type": "fill"
33
+ }
34
+ ]
35
+ }