@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,207 @@
1
+ import { Selection } from 'd3-selection'
2
+ import { brush, BrushBehavior, brushX, brushY, D3BrushEvent } from 'd3-brush'
3
+ import { XYComponentCore } from 'core/xy-component'
4
+ import { clamp, isNumber } from 'utils/data'
5
+ import { smartTransition } from 'utils/d3'
6
+
7
+ // Types
8
+ import { ContinuousScale } from 'types/scale'
9
+ import { FreeBrushMode, FreeBrushSelection, FreeBrushSelectionInPixels } from './types'
10
+
11
+ // Config
12
+ import { FreeBrushConfig, FreeBrushConfigInterface } from './config'
13
+
14
+ // Styles
15
+ import * as s from './style'
16
+
17
+ export class FreeBrush<Datum> extends XYComponentCore<Datum, FreeBrushConfig<Datum>, FreeBrushConfigInterface<Datum>> {
18
+ static selectors = s
19
+ config: FreeBrushConfig<Datum> = new FreeBrushConfig()
20
+ private brush: Selection<SVGGElement, unknown, SVGGElement, unknown>
21
+ private brushBehaviour: BrushBehavior<unknown>
22
+ private _firstRender = true
23
+
24
+ constructor (config: FreeBrushConfigInterface<Datum>) {
25
+ super()
26
+ if (config) this.config.init(config)
27
+
28
+ this.brush = this.g
29
+ .append('g')
30
+ .attr('class', s.brush)
31
+ }
32
+
33
+ _render (customDuration?: number): void {
34
+ const { config } = this
35
+ const xScale = this.xScale
36
+ const yScale = this.yScale
37
+ const duration = isNumber(customDuration) ? customDuration : config.duration
38
+
39
+ if (this._firstRender) this.brush.classed(s.hide, this._firstRender && config.autoHide)
40
+
41
+ // Sometimes Brush stops emitting 'start' and 'end' events. Possible explanation:
42
+ // "... mouseup will only fire when performed within the browser, which can lead to losing track of the button state."
43
+ // https://stackoverflow.com/a/48970682
44
+ //
45
+ // D3 code related to the problem:
46
+ // https://github.com/d3/d3-brush/blob/ec2bce6f15074a9ead7f9a84c61335be51c123a3/src/brush.js#L301
47
+ //
48
+ // We're clearing brush's event emitter state to force it to get re-initialized
49
+ // Caveat of this solution: If you're doing a brush selection and a render happens
50
+ // (e.g. due to a data or config update), it'll reset the brush.
51
+ //
52
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
53
+ // @ts-ignore
54
+ if (this.brush.node().__brush) this.brush.node().__brush.emitter = undefined
55
+
56
+ this.brushBehaviour = this._getBrushBehaviour(config.mode)
57
+
58
+ this.brushBehaviour
59
+ .handleSize(config.handleWidth)
60
+ .extent([[0, 0], [this._width, this._height]])
61
+ .on('start', this._onBrushStart.bind(this))
62
+ .on('brush', this._onBrushMove.bind(this))
63
+ .on('end', this._onBrushEnd.bind(this))
64
+
65
+ this.brush
66
+ .call(this.brushBehaviour)
67
+
68
+ // Calculate the brush range from configured selection and apply it
69
+ let brushRange: FreeBrushSelectionInPixels
70
+ switch (config.mode) {
71
+ case FreeBrushMode.XY: {
72
+ const xSelectionRange = this._dataRangeToPixelRange([config.selection?.[0][0], config.selection?.[0][1]], xScale)
73
+ const ySelectionRange = this._dataRangeToPixelRange([config.selection?.[1][0], config.selection?.[1][1]], yScale, true)
74
+ brushRange = (xSelectionRange && ySelectionRange) ? [[xSelectionRange[0], ySelectionRange[0]], [xSelectionRange[1], ySelectionRange[1]]] : null
75
+ break
76
+ }
77
+ case FreeBrushMode.X:
78
+ case FreeBrushMode.Y:
79
+ default: {
80
+ const scale = config.mode === FreeBrushMode.Y ? yScale : xScale
81
+ brushRange = this._dataRangeToPixelRange(config.selection as [number, number], scale, config.mode === FreeBrushMode.Y)
82
+ }
83
+ }
84
+
85
+ smartTransition(this.brush, duration)
86
+ .call(this.brushBehaviour.move, brushRange) // Sets up the brush and calls brush events
87
+ .on('end interrupt', () => { this._firstRender = false })
88
+
89
+ if (!duration) this._firstRender = false
90
+ }
91
+
92
+ private _onBrush (event: D3BrushEvent<unknown>): void {
93
+ const { config } = this
94
+ const userDriven = !!event?.sourceEvent
95
+
96
+ // Selection from the brush events is in Screen Space (pixels)
97
+ // In case of two dimensional brush is comes as [ [xMinPx, yMinPx], [xMaxPx, yMaxPx] ],
98
+ // while in the config we'll be storing it as [ [xMin, xMax], [yMin, yMax] ]
99
+ const s = (event?.selection) as FreeBrushSelectionInPixels
100
+ if (!this._isSelectionValid(s)) {
101
+ config.selection = null
102
+ return
103
+ }
104
+
105
+ // Convert the raw brush selection from pixels to data units, store it in the config and trigger the onBrush callback
106
+ let selectedDomain: FreeBrushSelection
107
+ switch (config.mode) {
108
+ case FreeBrushMode.XY: {
109
+ const xSelection = this._pixelRangeToDataRange([s[0][0], s[1][0]], this.xScale, config.selectionMinLength?.[0] ?? config.selectionMinLength)
110
+ const ySelection = this._pixelRangeToDataRange([s[0][1], s[1][1]], this.yScale, config.selectionMinLength?.[1] ?? config.selectionMinLength, true)
111
+ selectedDomain = (xSelection && ySelection) ? [
112
+ [xSelection?.[0], xSelection?.[1]],
113
+ [ySelection?.[0], ySelection?.[1]],
114
+ ] : null
115
+ break
116
+ }
117
+ case FreeBrushMode.Y: {
118
+ selectedDomain = this._pixelRangeToDataRange(s as [number, number], this.yScale, config.selectionMinLength, true)
119
+ break
120
+ }
121
+ case FreeBrushMode.X:
122
+ default: {
123
+ selectedDomain = this._pixelRangeToDataRange(s as [number, number], this.xScale, config.selectionMinLength)
124
+ break
125
+ }
126
+ }
127
+
128
+ if (selectedDomain === null || selectedDomain[0] === null || selectedDomain[1] === null) {
129
+ this.brush.call(this.brushBehaviour.move, null)
130
+ return
131
+ }
132
+
133
+ config.selection = selectedDomain
134
+ if (!this._firstRender) config.onBrush(selectedDomain, event, userDriven)
135
+ }
136
+
137
+ private _pixelRangeToDataRange (selectionInPixels: [number, number], scale: ContinuousScale, constraint: number, reversed?: boolean): [number, number] | null {
138
+ const selectedDomain = selectionInPixels.map(n => scale.invert(n)) as [number, number]
139
+ if (reversed) selectedDomain.reverse()
140
+
141
+ const domain = scale.domain() as [number, number]
142
+ const domainLength = Math.abs(domain[1] - domain[0])
143
+ const selectionLength = Math.abs(selectedDomain[1] - selectedDomain[0])
144
+
145
+ if (constraint >= domainLength) {
146
+ console.warn('Unovis | FreeBrush: Configured domain constraint is bigger than the brush domain')
147
+ }
148
+
149
+ if ((selectionLength < constraint) && (constraint < domainLength)) return null
150
+ else return selectedDomain
151
+ }
152
+
153
+ private _dataRangeToPixelRange (selectionInDataUnits: [number, number], scale: ContinuousScale, reversed?: boolean): [number, number] | null {
154
+ if (!selectionInDataUnits) return null
155
+
156
+ const range = scale.range()
157
+ const s = [...selectionInDataUnits]
158
+ if (reversed) {
159
+ range.reverse()
160
+ s.reverse()
161
+ }
162
+ const selectionMin = clamp(scale(s[0]) ?? 0, range[0], range[1])
163
+ const selectionMax = clamp(scale(s[1]) ?? 0, range[0], range[1])
164
+ return (selectionMax - selectionMin) ? [selectionMin, selectionMax] : null
165
+ }
166
+
167
+ private _isSelectionValid (s: FreeBrushSelection | FreeBrushSelectionInPixels): boolean {
168
+ const { config } = this
169
+
170
+ if (config.mode === FreeBrushMode.XY) {
171
+ return s && Array.isArray(s[0]) && Array.isArray(s[1])
172
+ } else {
173
+ return s && isNumber(s[0]) && isNumber(s[1])
174
+ }
175
+ }
176
+
177
+ private _getBrushBehaviour (mode: FreeBrushMode): BrushBehavior<unknown> {
178
+ switch (mode) {
179
+ case FreeBrushMode.X: return brushX()
180
+ case FreeBrushMode.Y: return brushY()
181
+ default: return brush()
182
+ }
183
+ }
184
+
185
+ private _onBrushStart (event: D3BrushEvent<unknown>): void {
186
+ const { config } = this
187
+ const userDriven = !!event?.sourceEvent
188
+ this._onBrush(event)
189
+ if (config.autoHide && userDriven) this.brush.classed(s.hide, false)
190
+ if (!this._firstRender) config.onBrushStart?.(config.selection, event, userDriven)
191
+ }
192
+
193
+ private _onBrushMove (event: D3BrushEvent<unknown>): void {
194
+ const { config } = this
195
+
196
+ this._onBrush(event)
197
+ if (!this._firstRender) config.onBrushMove?.(config.selection, event, !!event?.sourceEvent)
198
+ }
199
+
200
+ private _onBrushEnd (event: D3BrushEvent<unknown>): void {
201
+ const { config } = this
202
+
203
+ this._onBrush(event)
204
+ if (config.autoHide) this.brush.classed(s.hide, true)
205
+ if (!this._firstRender) config.onBrushEnd?.(config.selection, event, !!event?.sourceEvent)
206
+ }
207
+ }
@@ -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: free-brush-component;
5
- `;
6
- const variables = injectGlobal `
5
+ `
6
+
7
+ export const variables = injectGlobal`
7
8
  :root {
8
9
  --vis-free-brush-selection-fill-color: #0b1640;
9
10
  --vis-free-brush-selection-fill-opacity: 0.4;
@@ -21,8 +22,9 @@ const variables = injectGlobal `
21
22
  --vis-free-brush-selection-stroke-color: var(--vis-dark-free-brush-selection-stroke-color);
22
23
  --vis-free-brush-handle-fill-color: var(--vis-dark-free-brush-selection-fill-color);
23
24
  }
24
- `;
25
- const brush = css `
25
+ `
26
+
27
+ export const brush = css`
26
28
  label: brush;
27
29
  fill: none;
28
30
  stroke: none;
@@ -39,12 +41,10 @@ const brush = css `
39
41
  fill: var(--vis-free-brush-handle-fill-color);
40
42
  stroke: var(--vis-free-brush-handle-stroke-color);
41
43
  }
42
- `;
43
- const hide = css `
44
+ `
45
+
46
+ export const hide = css`
44
47
  .selection, .handle {
45
48
  display: none;
46
49
  }
47
- `;
48
-
49
- export { brush, hide, root, variables };
50
- //# sourceMappingURL=style.js.map
50
+ `
@@ -0,0 +1,8 @@
1
+ export type FreeBrushSelection = [number, number] | [[number, number], [number, number]];
2
+ export type FreeBrushSelectionInPixels = FreeBrushSelection
3
+
4
+ export enum FreeBrushMode {
5
+ X = 'x',
6
+ Y = 'y',
7
+ XY = 'xy',
8
+ }
@@ -0,0 +1,280 @@
1
+ /* eslint-disable dot-notation */
2
+ // Config
3
+ import { ComponentConfigInterface, ComponentConfig } from 'core/component/config'
4
+
5
+ // Types
6
+ import { TrimMode } from 'types/text'
7
+ import { GraphInputLink, GraphInputNode } from 'types/graph'
8
+ import { BooleanAccessor, ColorAccessor, NumericAccessor, StringAccessor, GenericAccessor } from 'types/accessor'
9
+
10
+ // Local Types
11
+ import {
12
+ GraphLayoutType,
13
+ GraphCircleLabel,
14
+ GraphLinkStyle,
15
+ GraphLinkArrowStyle,
16
+ GraphPanelConfig,
17
+ GraphForceLayoutSettings,
18
+ GraphElkLayoutSettings,
19
+ GraphNodeShape,
20
+ } from './types'
21
+
22
+ export interface GraphConfigInterface<N extends GraphInputNode, L extends GraphInputLink> extends ComponentConfigInterface {
23
+ // Zoom and drag
24
+ /** Zoom level constraints. Default: [0.35, 1.25] */
25
+ zoomScaleExtent?: [number, number];
26
+ /** Disable zooming. Default: `false` */
27
+ disableZoom?: boolean;
28
+ /** Disable node dragging. Default: `false` */
29
+ disableDrag?: boolean;
30
+ /** Interval to re-render the graph when zooming. Default: `100` */
31
+ zoomThrottledUpdateNodeThreshold?: number;
32
+ /** Zoom event callback. Default: `undefined` */
33
+ onZoom?: (zoomScale: number, zoomScaleExtent: number) => void;
34
+
35
+ // Layout general settings
36
+ /** Type of the graph layout. Default: `GraphLayoutType.Force` */
37
+ layoutType?: GraphLayoutType | string;
38
+ /** Fit the graph to container on data or config updates, or on container resize. Default: `true` */
39
+ layoutAutofit?: boolean;
40
+ /** Tolerance constant defining whether the graph should be fitted to container
41
+ * (on data or config update, or container resize) after a zoom / pan interaction or not.
42
+ * `0` — Stop fitting after any pan or zoom
43
+ * `Number.POSITIVE_INFINITY` — Always fit
44
+ * Default: `8.0` */
45
+ layoutAutofitTolerance?: number;
46
+ /** Place non-connected nodes at the bottom of the graph. Default: `false` */
47
+ layoutNonConnectedAside?: boolean;
48
+
49
+ // Settings for Parallel and Concentric layouts
50
+ /** Node group accessor function.
51
+ * Only for `GraphLayoutType.Parallel`, `GraphLayoutType.ParallelHorizontal` and `GraphLayoutType.Concentric` layouts.
52
+ * Default: `node => node.group` */
53
+ layoutNodeGroup?: StringAccessor<N>;
54
+ /** Order of the layout groups.
55
+ * Only for `GraphLayoutType.Parallel`, `GraphLayoutType.ParallelHorizontal` and `GraphLayoutType.Concentric` layouts.
56
+ * Default: `[]` */
57
+ layoutGroupOrder?: string[];
58
+
59
+ // Setting for Parallel layouts only
60
+ /** Sets the number of nodes in a sub-group after which they'll continue on the next column (or row if `layoutType` is
61
+ * `GraphLayoutType.ParallelHorizontal`).
62
+ * Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.
63
+ * Default: `6` */
64
+ layoutParallelNodesPerColumn?: number;
65
+ /** Node sub-group accessor function.
66
+ * Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.
67
+ * Default: `node => node.subgroup` */
68
+ layoutParallelNodeSubGroup?: StringAccessor<N>;
69
+ /** Number of sub-groups per row (or column if `layoutType` is `GraphLayoutType.ParallelHorizontal`) in a group.
70
+ * Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.
71
+ * Default: `1` */
72
+ layoutParallelSubGroupsPerRow?: number;
73
+ /** Spacing between groups.
74
+ * Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.
75
+ * Default: `undefined` */
76
+ layoutParallelGroupSpacing?: number;
77
+ /** Set a group by name to have priority in sorting the graph links.
78
+ * Only for `GraphLayoutType.Parallel` and `GraphLayoutType.ParallelHorizontal` layouts.
79
+ * Default: `undefined` */
80
+ layoutParallelSortConnectionsByGroup?: string;
81
+
82
+ // Force layout
83
+ /** Force Layout settings, see the `d3-force` package for more details */
84
+ forceLayoutSettings?: GraphForceLayoutSettings;
85
+
86
+ // Dagre layout
87
+ /** Darge Layout settings, see the `dagrejs` package
88
+ * for more details: https://github.com/dagrejs/dagre/wiki#configuring-the-layout
89
+ */
90
+ dagreLayoutSettings?: {
91
+ /** Direction for rank node. `TB`, `BT`, `LR`, or `RL`. Default: `BT` */
92
+ rankdir: string;
93
+ /** Type of algorithm to assigns a rank to each node in the input graph.
94
+ * `network-simplex`, `tight-tree` or `longest-path`.
95
+ * Default: `longest-path` */
96
+ ranker: string;
97
+ /** Other configurable Dagre settings. https://github.com/dagrejs/dagre/wiki */
98
+ [key: string]: any;
99
+ };
100
+
101
+ // ELK layout
102
+ /** ELK layout options, see the `elkjs` package for more details: https://github.com/kieler/elkjs.
103
+ * If you want to specify custom layout option for each node group, you can provide an accessor function that
104
+ * receives group name ('root' for the top-level configuration) as the first argument and returns an object containing
105
+ * layout options. Default: `undefined`
106
+ */
107
+ layoutElkSettings?: GenericAccessor<GraphElkLayoutSettings, string> | undefined;
108
+ /** Array of accessor functions to define nested node groups for the ELK Layered layout.
109
+ * E.g.: `[n => n.group, n => n.subGroup]`.
110
+ * Default: `undefined` */
111
+ layoutElkNodeGroups?: StringAccessor<N>[];
112
+
113
+ // Links
114
+ /** Link width accessor function ot constant value. Default: `1` */
115
+ linkWidth?: NumericAccessor<L>;
116
+ /** Link style accessor function or constant value. Default: `GraphLinkStyle.Solid` */
117
+ linkStyle?: GenericAccessor<GraphLinkStyle, L>;
118
+ /** Link band width accessor function or constant value. Default: `0` */
119
+ linkBandWidth?: NumericAccessor<L>;
120
+ /** Link arrow accessor function or constant value. Default: `undefined` */
121
+ linkArrow?: GenericAccessor<GraphLinkArrowStyle, L> | undefined;
122
+ /** Link stroke color accessor function or constant value. Default: `undefined` */
123
+ linkStroke?: ColorAccessor<L>;
124
+ /** Link disabled state accessor function or constant value. Default: `false` */
125
+ linkDisabled?: BooleanAccessor<L>;
126
+ /** Link flow animation accessor function or constant value. Default: `false` */
127
+ linkFlow?: BooleanAccessor<L>;
128
+ /** Animation duration of the flow (traffic) circles. Default: `20000` */
129
+ linkFlowAnimDuration?: number;
130
+ /** Size of the moving particles that represent traffic flow. Default: `2` */
131
+ linkFlowParticleSize?: number;
132
+ /** Link label accessor function or constant value. Default: `undefined` */
133
+ linkLabel?: GenericAccessor<GraphCircleLabel, L> | undefined;
134
+ /** Shift label along the link center a little bit to avoid overlap with the link arrow. Default: `true` */
135
+ linkLabelShiftFromCenter?: BooleanAccessor<L>;
136
+ /** Spacing between neighboring links. Default: `8` */
137
+ linkNeighborSpacing?: number;
138
+ /** Set selected link by its unique id. Default: `undefined` */
139
+ selectedLinkId?: number | string;
140
+
141
+ // Nodes
142
+ /** Node size accessor function or constant value. Default: `30` */
143
+ nodeSize?: NumericAccessor<N>;
144
+ /** Node stroke width accessor function or constant value. Default: `3` */
145
+ nodeStrokeWidth?: NumericAccessor<N>;
146
+ /** Node shape accessor function or constant value. Default: `GraphNodeShape.Circle` */
147
+ nodeShape?: GenericAccessor<GraphNodeShape | string, N>;
148
+ /** Node gauge outline accessor function or constant value in the range [0,100]. Default: `0` */
149
+ nodeGaugeValue?: NumericAccessor<N>;
150
+ /** Node gauge outline fill color accessor function or constant value. Default: `undefined` */
151
+ nodeGaugeFill?: ColorAccessor<N>;
152
+ /** Animation duration of the node gauge outline. Default: `1500` */
153
+ nodeGaugeAnimDuration?: number;
154
+ /** Node central icon accessor function or constant value. Default: `node => node.icon` */
155
+ nodeIcon?: StringAccessor<N>;
156
+ /** Node central icon size accessor function or constant value. Default: `undefined` */
157
+ nodeIconSize?: NumericAccessor<N>;
158
+ /** Node label accessor function or constant value. Default: `node => node.label` */
159
+ nodeLabel?: StringAccessor<N>;
160
+ /** Defines whether to trim the node labels or not. Default: `true` */
161
+ nodeLabelTrim?: BooleanAccessor<N>;
162
+ /** Node label trimming mode. Default: `TrimMode.Middle` */
163
+ nodeLabelTrimMode?: GenericAccessor<TrimMode | string, N>;
164
+ /** Node label maximum allowed text length above which the label will be trimmed. Default: `15` */
165
+ nodeLabelTrimLength?: NumericAccessor<N>;
166
+ /** Node sub-label accessor function or constant value: Default: `''` */
167
+ nodeSubLabel?: StringAccessor<N>;
168
+ /** Defines whether to trim the node sub-labels or not. Default: `true` */
169
+ nodeSubLabelTrim?: BooleanAccessor<N>;
170
+ /** Node sub-label trimming mode. Default: `TrimMode.Middle` */
171
+ nodeSubLabelTrimMode?: GenericAccessor<TrimMode | string, N>;
172
+ /** Node sub-label maximum allowed text length above which the label will be trimmed. Default: `15` */
173
+ nodeSubLabelTrimLength?: NumericAccessor<N>;
174
+ /** Node circular side labels accessor function. The function should return an array of GraphCircleLabel objects. Default: `undefined` */
175
+ nodeSideLabels?: GenericAccessor<GraphCircleLabel[], N>;
176
+ /** Node bottom icon accessor function. Default: `undefined` */
177
+ nodeBottomIcon?: StringAccessor<N>;
178
+ /** Node disabled state accessor function or constant value. Default: `false` */
179
+ nodeDisabled?: BooleanAccessor<N>;
180
+ /** Node fill color accessor function or constant value. Default: `node => node.fill` */
181
+ nodeFill?: ColorAccessor<N>;
182
+ /** Node stroke color accessor function or constant value. Default: `node => node.stroke` */
183
+ nodeStroke?: ColorAccessor<N>;
184
+ /** Sorting function to determine node placement. Default: `undefined` */
185
+ nodeSort?: ((a: N, b: N) => number);
186
+ /** Specify the initial position for entering nodes as [x, y]. Default: `undefined` */
187
+ nodeEnterPosition?: GenericAccessor<[number, number], N> | undefined;
188
+ /** Specify the initial scale for entering nodes in the range [0,1]. Default: `0.75` */
189
+ nodeEnterScale?: NumericAccessor<N> | undefined;
190
+ /** Specify the destination position for exiting nodes as [x, y]. Default: `undefined` */
191
+ nodeExitPosition?: GenericAccessor<[number, number], N> | undefined;
192
+ /** Specify the destination scale for exiting nodes in the range [0,1]. Default: `0.75` */
193
+ nodeExitScale?: NumericAccessor<N> | undefined;
194
+ /** Set selected node by unique id. Default: `undefined` */
195
+ selectedNodeId?: number | string;
196
+
197
+ /** Panels configuration. An array of `GraphPanelConfig` objects. Default: `[]` */
198
+ panels?: GraphPanelConfig[] | undefined;
199
+ }
200
+
201
+ export class GraphConfig<N extends GraphInputNode, L extends GraphInputLink> extends ComponentConfig implements GraphConfigInterface<N, L> {
202
+ duration = 1000
203
+ zoomScaleExtent: [number, number] = [0.35, 1.25]
204
+ disableZoom = false
205
+ disableDrag = false
206
+ zoomThrottledUpdateNodeThreshold = 100
207
+ onZoom = undefined
208
+ layoutType = GraphLayoutType.Force
209
+ layoutAutofit = true
210
+ layoutAutofitTolerance = 8.0
211
+ layoutNonConnectedAside = false
212
+
213
+ layoutGroupOrder = []
214
+ layoutParallelSubGroupsPerRow = 1
215
+ layoutParallelNodesPerColumn = 6
216
+ layoutParallelGroupSpacing = undefined
217
+ layoutParallelSortConnectionsByGroup = undefined
218
+ layoutNodeGroup = (n: N): string => n['group']
219
+ layoutParallelNodeSubGroup = (n: N): string => n['subgroup']
220
+
221
+ forceLayoutSettings = {
222
+ linkDistance: 60,
223
+ linkStrength: 0.45,
224
+ charge: -500,
225
+ forceXStrength: 0.15,
226
+ forceYStrength: 0.25,
227
+ }
228
+
229
+ dagreLayoutSettings = {
230
+ rankdir: 'BT',
231
+ ranker: 'longest-path',
232
+ }
233
+
234
+ layoutElkSettings: GenericAccessor<GraphElkLayoutSettings, string> | undefined = undefined
235
+ layoutElkNodeGroups: StringAccessor<N>[] | undefined = undefined
236
+
237
+ linkFlowAnimDuration = 20000
238
+ linkFlowParticleSize = 2
239
+ linkWidth = 1
240
+ linkStyle = GraphLinkStyle.Solid
241
+ linkBandWidth = 0
242
+ linkArrow = undefined
243
+ linkStroke = undefined
244
+ linkFlow = false
245
+ linkLabel = undefined
246
+ linkLabelShiftFromCenter = true
247
+ linkNeighborSpacing = 8
248
+ linkDisabled = false
249
+ selectedLinkId = undefined
250
+ nodeGaugeAnimDuration = 1500
251
+
252
+ nodeSize = 30
253
+ nodeStrokeWidth = 3
254
+ nodeShape = GraphNodeShape.Circle
255
+ nodeGaugeValue = 0
256
+ nodeIcon = (n: N): string => n['icon']
257
+ nodeIconSize = undefined
258
+ nodeLabel = (n: N): string => n['label']
259
+ nodeLabelTrim = true
260
+ nodeLabelTrimLength = 15
261
+ nodeLabelTrimMode = TrimMode.Middle
262
+ nodeSubLabel = ''
263
+ nodeSubLabelTrim = true
264
+ nodeSubLabelTrimLength = 15
265
+ nodeSubLabelTrimMode = TrimMode.Middle
266
+ nodeSideLabels = undefined
267
+ nodeBottomIcon = undefined
268
+ nodeDisabled = false
269
+ nodeFill = (n: N): string => n['fill']
270
+ nodeGaugeFill = undefined
271
+ nodeStroke = (n: N): string => n['stroke']
272
+ nodeEnterPosition = undefined
273
+ nodeEnterScale = 0.75
274
+ nodeExitPosition = undefined
275
+ nodeExitScale = 0.75
276
+ nodeSort = undefined
277
+
278
+ selectedNodeId = undefined
279
+ panels: GraphPanelConfig[] | undefined = undefined
280
+ }