@milaboratories/miplots4 1.0.128 → 1.0.130

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 (365) hide show
  1. package/dist/DataFrame.d.ts +15 -9
  2. package/dist/DataFrame.d.ts.map +1 -1
  3. package/dist/DataFrame.js +105 -81
  4. package/dist/DataFrame.js.map +1 -1
  5. package/dist/bubble/ChartRenderer.d.ts +6 -5
  6. package/dist/bubble/ChartRenderer.d.ts.map +1 -1
  7. package/dist/bubble/ChartRenderer.js +123 -121
  8. package/dist/bubble/ChartRenderer.js.map +1 -1
  9. package/dist/bubble/components/Chart.d.ts +3 -2
  10. package/dist/bubble/components/Chart.d.ts.map +1 -1
  11. package/dist/bubble/components/Chart.js +78 -97
  12. package/dist/bubble/components/Chart.js.map +1 -1
  13. package/dist/bubble/components/ChartsGroup.d.ts +6 -5
  14. package/dist/bubble/components/ChartsGroup.d.ts.map +1 -1
  15. package/dist/bubble/components/ChartsGroup.js +39 -37
  16. package/dist/bubble/components/ChartsGroup.js.map +1 -1
  17. package/dist/bubble/getCellTooltip.d.ts +5 -0
  18. package/dist/bubble/getCellTooltip.d.ts.map +1 -0
  19. package/dist/bubble/getCellTooltip.js +28 -0
  20. package/dist/bubble/getCellTooltip.js.map +1 -0
  21. package/dist/bubble/{getCells.d.ts → getGroupedCellsData.d.ts} +4 -4
  22. package/dist/bubble/getGroupedCellsData.d.ts.map +1 -0
  23. package/dist/bubble/getGroupedCellsData.js +94 -0
  24. package/dist/bubble/getGroupedCellsData.js.map +1 -0
  25. package/dist/bubble/index.d.ts +4 -4
  26. package/dist/bubble/index.d.ts.map +1 -1
  27. package/dist/bubble/index.js +47 -42
  28. package/dist/bubble/index.js.map +1 -1
  29. package/dist/bubble/utils/calculateCaptionTails.d.ts +2 -2
  30. package/dist/bubble/utils/calculateCaptionTails.d.ts.map +1 -1
  31. package/dist/bubble/utils/calculateCaptionTails.js.map +1 -1
  32. package/dist/common/Legend.d.ts.map +1 -1
  33. package/dist/common/Legend.js.map +1 -1
  34. package/dist/common/Tooltip.js +1 -1
  35. package/dist/common/Tooltip.js.map +1 -1
  36. package/dist/common/types.d.ts +1 -1
  37. package/dist/common/types.d.ts.map +1 -1
  38. package/dist/common/useDataFrame.d.ts +11 -0
  39. package/dist/common/useDataFrame.d.ts.map +1 -0
  40. package/dist/common/useDataFrame.js +20 -0
  41. package/dist/common/useDataFrame.js.map +1 -0
  42. package/dist/dendro/ChartRenderer.d.ts +9 -8
  43. package/dist/dendro/ChartRenderer.d.ts.map +1 -1
  44. package/dist/dendro/ChartRenderer.js +187 -187
  45. package/dist/dendro/ChartRenderer.js.map +1 -1
  46. package/dist/dendro/components/Chart.d.ts +8 -8
  47. package/dist/dendro/components/Chart.d.ts.map +1 -1
  48. package/dist/dendro/components/Chart.js +35 -35
  49. package/dist/dendro/components/Chart.js.map +1 -1
  50. package/dist/dendro/components/Heatmap.d.ts +3 -3
  51. package/dist/dendro/components/Heatmap.d.ts.map +1 -1
  52. package/dist/dendro/components/Heatmap.js +23 -23
  53. package/dist/dendro/components/Heatmap.js.map +1 -1
  54. package/dist/dendro/components/Legend.d.ts.map +1 -1
  55. package/dist/dendro/components/Legend.js.map +1 -1
  56. package/dist/dendro/components/LinksGroup.d.ts +6 -6
  57. package/dist/dendro/components/LinksGroup.d.ts.map +1 -1
  58. package/dist/dendro/components/LinksGroup.js +17 -17
  59. package/dist/dendro/components/LinksGroup.js.map +1 -1
  60. package/dist/dendro/components/NodesGroup.d.ts +7 -7
  61. package/dist/dendro/components/NodesGroup.d.ts.map +1 -1
  62. package/dist/dendro/components/NodesGroup.js +29 -29
  63. package/dist/dendro/components/NodesGroup.js.map +1 -1
  64. package/dist/dendro/components/types.d.ts +2 -2
  65. package/dist/dendro/components/types.d.ts.map +1 -1
  66. package/dist/dendro/getHeatmapData.d.ts +2 -2
  67. package/dist/dendro/getHeatmapData.d.ts.map +1 -1
  68. package/dist/dendro/getHeatmapData.js +48 -44
  69. package/dist/dendro/getHeatmapData.js.map +1 -1
  70. package/dist/dendro/getHierarchyData.d.ts +3 -3
  71. package/dist/dendro/getHierarchyData.d.ts.map +1 -1
  72. package/dist/dendro/getHierarchyData.js +31 -31
  73. package/dist/dendro/getHierarchyData.js.map +1 -1
  74. package/dist/dendro/index.d.ts +5 -5
  75. package/dist/dendro/index.d.ts.map +1 -1
  76. package/dist/dendro/index.js +86 -89
  77. package/dist/dendro/index.js.map +1 -1
  78. package/dist/discrete/ChartRenderer.d.ts +6 -6
  79. package/dist/discrete/ChartRenderer.d.ts.map +1 -1
  80. package/dist/discrete/ChartRenderer.js +197 -196
  81. package/dist/discrete/ChartRenderer.js.map +1 -1
  82. package/dist/discrete/DiscreteSettingsImpl.d.ts +3 -3
  83. package/dist/discrete/DiscreteSettingsImpl.d.ts.map +1 -1
  84. package/dist/discrete/DiscreteSettingsImpl.js +8 -8
  85. package/dist/discrete/DiscreteSettingsImpl.js.map +1 -1
  86. package/dist/discrete/components/layers/BoxElement.js.map +1 -1
  87. package/dist/discrete/index.d.ts +1 -1
  88. package/dist/discrete/index.d.ts.map +1 -1
  89. package/dist/discrete/index.js +109 -106
  90. package/dist/discrete/index.js.map +1 -1
  91. package/dist/discrete/layers/bar.d.ts +2 -2
  92. package/dist/discrete/layers/bar.d.ts.map +1 -1
  93. package/dist/discrete/layers/bar.js +32 -37
  94. package/dist/discrete/layers/bar.js.map +1 -1
  95. package/dist/discrete/layers/binnedDots.d.ts +3 -3
  96. package/dist/discrete/layers/binnedDots.d.ts.map +1 -1
  97. package/dist/discrete/layers/binnedDots.js +66 -78
  98. package/dist/discrete/layers/binnedDots.js.map +1 -1
  99. package/dist/discrete/layers/boxes.d.ts +3 -4
  100. package/dist/discrete/layers/boxes.d.ts.map +1 -1
  101. package/dist/discrete/layers/boxes.js +59 -60
  102. package/dist/discrete/layers/boxes.js.map +1 -1
  103. package/dist/discrete/layers/dots.d.ts +2 -3
  104. package/dist/discrete/layers/dots.d.ts.map +1 -1
  105. package/dist/discrete/layers/dots.js +30 -30
  106. package/dist/discrete/layers/dots.js.map +1 -1
  107. package/dist/discrete/layers/lines.js +11 -10
  108. package/dist/discrete/layers/lines.js.map +1 -1
  109. package/dist/discrete/layers/logo.d.ts +2 -2
  110. package/dist/discrete/layers/logo.d.ts.map +1 -1
  111. package/dist/discrete/layers/logo.js +21 -21
  112. package/dist/discrete/layers/logo.js.map +1 -1
  113. package/dist/discrete/layers/pairedPoints.d.ts +2 -2
  114. package/dist/discrete/layers/pairedPoints.d.ts.map +1 -1
  115. package/dist/discrete/layers/pairedPoints.js +62 -62
  116. package/dist/discrete/layers/pairedPoints.js.map +1 -1
  117. package/dist/discrete/layers/sina.d.ts +3 -4
  118. package/dist/discrete/layers/sina.d.ts.map +1 -1
  119. package/dist/discrete/layers/sina.js +67 -71
  120. package/dist/discrete/layers/sina.js.map +1 -1
  121. package/dist/discrete/layers/stackedBar.d.ts +1 -1
  122. package/dist/discrete/layers/stackedBar.d.ts.map +1 -1
  123. package/dist/discrete/layers/stackedBar.js +25 -25
  124. package/dist/discrete/layers/stackedBar.js.map +1 -1
  125. package/dist/discrete/layers/violins.js +13 -13
  126. package/dist/discrete/utils/getOutliersBounds.d.ts +1 -1
  127. package/dist/discrete/utils/getOutliersBounds.d.ts.map +1 -1
  128. package/dist/discrete/utils/getOutliersBounds.js +5 -5
  129. package/dist/discrete/utils/getOutliersBounds.js.map +1 -1
  130. package/dist/discrete/utils/splitTextByWidth.js +1 -1
  131. package/dist/discrete/utils/splitTextByWidth.js.map +1 -1
  132. package/dist/heatmap/ChartRenderer.d.ts +7 -6
  133. package/dist/heatmap/ChartRenderer.d.ts.map +1 -1
  134. package/dist/heatmap/ChartRenderer.js +286 -266
  135. package/dist/heatmap/ChartRenderer.js.map +1 -1
  136. package/dist/heatmap/HeatmapSettingsImpl.d.ts +2 -2
  137. package/dist/heatmap/HeatmapSettingsImpl.d.ts.map +1 -1
  138. package/dist/heatmap/HeatmapSettingsImpl.js +1 -1
  139. package/dist/heatmap/HeatmapSettingsImpl.js.map +1 -1
  140. package/dist/heatmap/components/Annotations/Annotation.d.ts.map +1 -1
  141. package/dist/heatmap/components/Annotations/Annotation.js +40 -39
  142. package/dist/heatmap/components/Annotations/Annotation.js.map +1 -1
  143. package/dist/heatmap/components/Captions/GroupCaptions.d.ts.map +1 -1
  144. package/dist/heatmap/components/Captions/GroupCaptions.js +45 -36
  145. package/dist/heatmap/components/Captions/GroupCaptions.js.map +1 -1
  146. package/dist/heatmap/components/Chart.d.ts.map +1 -1
  147. package/dist/heatmap/components/Chart.js +104 -101
  148. package/dist/heatmap/components/Chart.js.map +1 -1
  149. package/dist/heatmap/components/ChartsGroup.d.ts +2 -2
  150. package/dist/heatmap/components/ChartsGroup.d.ts.map +1 -1
  151. package/dist/heatmap/components/ChartsGroup.js +14 -14
  152. package/dist/heatmap/components/ChartsGroup.js.map +1 -1
  153. package/dist/heatmap/components/Dendrograms.d.ts +3 -1
  154. package/dist/heatmap/components/Dendrograms.d.ts.map +1 -1
  155. package/dist/heatmap/components/Dendrograms.js +54 -48
  156. package/dist/heatmap/components/Dendrograms.js.map +1 -1
  157. package/dist/heatmap/components/types.d.ts +5 -4
  158. package/dist/heatmap/components/types.d.ts.map +1 -1
  159. package/dist/heatmap/getCells.d.ts +3 -2
  160. package/dist/heatmap/getCells.d.ts.map +1 -1
  161. package/dist/heatmap/getCells.js +97 -93
  162. package/dist/heatmap/getCells.js.map +1 -1
  163. package/dist/heatmap/getDendrograms.d.ts +2 -2
  164. package/dist/heatmap/getDendrograms.d.ts.map +1 -1
  165. package/dist/heatmap/getDendrograms.js +36 -36
  166. package/dist/heatmap/getDendrograms.js.map +1 -1
  167. package/dist/heatmap/index.d.ts +3 -3
  168. package/dist/heatmap/index.d.ts.map +1 -1
  169. package/dist/heatmap/index.js +13 -12
  170. package/dist/heatmap/index.js.map +1 -1
  171. package/dist/heatmap/utils/calculateAnnotationTitleSizes.d.ts.map +1 -1
  172. package/dist/heatmap/utils/calculateAnnotationTitleSizes.js +1 -1
  173. package/dist/heatmap/utils/calculateAnnotationTitleSizes.js.map +1 -1
  174. package/dist/heatmap/utils/calculateCaptionTails.d.ts +3 -3
  175. package/dist/heatmap/utils/calculateCaptionTails.d.ts.map +1 -1
  176. package/dist/heatmap/utils/calculateCaptionTails.js +89 -54
  177. package/dist/heatmap/utils/calculateCaptionTails.js.map +1 -1
  178. package/dist/heatmap/utils/calculateChartSideElementSizes.js +19 -19
  179. package/dist/heatmap/utils/calculateChartSideElementSizes.js.map +1 -1
  180. package/dist/histogram/ChartRenderer.d.ts +6 -5
  181. package/dist/histogram/ChartRenderer.d.ts.map +1 -1
  182. package/dist/histogram/ChartRenderer.js +154 -153
  183. package/dist/histogram/ChartRenderer.js.map +1 -1
  184. package/dist/histogram/HistogramSettingsImpl.d.ts +2 -2
  185. package/dist/histogram/HistogramSettingsImpl.d.ts.map +1 -1
  186. package/dist/histogram/HistogramSettingsImpl.js.map +1 -1
  187. package/dist/histogram/components/Chart.js +48 -48
  188. package/dist/histogram/components/Chart.js.map +1 -1
  189. package/dist/histogram/components/types.d.ts +4 -3
  190. package/dist/histogram/components/types.d.ts.map +1 -1
  191. package/dist/histogram/getHistogramData.d.ts +7 -7
  192. package/dist/histogram/getHistogramData.d.ts.map +1 -1
  193. package/dist/histogram/getHistogramData.js +52 -53
  194. package/dist/histogram/getHistogramData.js.map +1 -1
  195. package/dist/histogram/index.d.ts +3 -3
  196. package/dist/histogram/index.d.ts.map +1 -1
  197. package/dist/histogram/index.js +49 -45
  198. package/dist/histogram/index.js.map +1 -1
  199. package/dist/node_modules/@d3fc/d3fc-axis/src/axisBase.js +10 -10
  200. package/dist/node_modules/d3-array/src/min.js +5 -11
  201. package/dist/node_modules/d3-array/src/min.js.map +1 -1
  202. package/dist/node_modules/d3-shape/src/area.js +30 -30
  203. package/dist/node_modules/d3-shape/src/line.js +6 -6
  204. package/dist/node_modules/d3-shape/src/line.js.map +1 -1
  205. package/dist/node_modules/kdbush/index.js +148 -0
  206. package/dist/node_modules/kdbush/index.js.map +1 -0
  207. package/dist/scatterplot/ChartRenderer.d.ts +7 -6
  208. package/dist/scatterplot/ChartRenderer.d.ts.map +1 -1
  209. package/dist/scatterplot/ChartRenderer.js +212 -195
  210. package/dist/scatterplot/ChartRenderer.js.map +1 -1
  211. package/dist/scatterplot/ScatterplotSettingsImpl.d.ts +2 -2
  212. package/dist/scatterplot/ScatterplotSettingsImpl.d.ts.map +1 -1
  213. package/dist/scatterplot/ScatterplotSettingsImpl.js +8 -8
  214. package/dist/scatterplot/ScatterplotSettingsImpl.js.map +1 -1
  215. package/dist/scatterplot/components/ChartAxisTitles.d.ts.map +1 -1
  216. package/dist/scatterplot/components/ChartAxisTitles.js +31 -30
  217. package/dist/scatterplot/components/ChartAxisTitles.js.map +1 -1
  218. package/dist/scatterplot/components/ChartLayersData.d.ts.map +1 -1
  219. package/dist/scatterplot/components/ChartLayersData.js +138 -156
  220. package/dist/scatterplot/components/ChartLayersData.js.map +1 -1
  221. package/dist/scatterplot/components/ChartTooltip.d.ts.map +1 -1
  222. package/dist/scatterplot/components/ChartTooltip.js +28 -27
  223. package/dist/scatterplot/components/ChartTooltip.js.map +1 -1
  224. package/dist/scatterplot/components/ChartTrendsData.js +21 -21
  225. package/dist/scatterplot/components/ChartTrendsData.js.map +1 -1
  226. package/dist/scatterplot/components/ChartsGroup.js +3 -3
  227. package/dist/scatterplot/components/ChartsGroup.js.map +1 -1
  228. package/dist/scatterplot/components/types.d.ts +7 -7
  229. package/dist/scatterplot/components/types.d.ts.map +1 -1
  230. package/dist/scatterplot/constants.d.ts +1 -1
  231. package/dist/scatterplot/constants.d.ts.map +1 -1
  232. package/dist/scatterplot/constants.js.map +1 -1
  233. package/dist/scatterplot/dots.d.ts +2 -2
  234. package/dist/scatterplot/dots.d.ts.map +1 -1
  235. package/dist/scatterplot/dots.js +21 -21
  236. package/dist/scatterplot/dots.js.map +1 -1
  237. package/dist/scatterplot/getLayersData.d.ts +3 -3
  238. package/dist/scatterplot/getLayersData.d.ts.map +1 -1
  239. package/dist/scatterplot/getLayersData.js +12 -15
  240. package/dist/scatterplot/getLayersData.js.map +1 -1
  241. package/dist/scatterplot/index.d.ts +4 -4
  242. package/dist/scatterplot/index.d.ts.map +1 -1
  243. package/dist/scatterplot/index.js +71 -72
  244. package/dist/scatterplot/index.js.map +1 -1
  245. package/dist/scatterplot/linearRegression.d.ts +5 -4
  246. package/dist/scatterplot/linearRegression.d.ts.map +1 -1
  247. package/dist/scatterplot/linearRegression.js +88 -86
  248. package/dist/scatterplot/linearRegression.js.map +1 -1
  249. package/dist/scatterplot/utils/createAesGetter.d.ts +3 -2
  250. package/dist/scatterplot/utils/createAesGetter.d.ts.map +1 -1
  251. package/dist/scatterplot/utils/createAesGetter.js +21 -21
  252. package/dist/scatterplot/utils/createAesGetter.js.map +1 -1
  253. package/dist/scatterplot/utils/createLegendInfo.d.ts +2 -10
  254. package/dist/scatterplot/utils/createLegendInfo.d.ts.map +1 -1
  255. package/dist/scatterplot/utils/createLegendInfo.js +44 -37
  256. package/dist/scatterplot/utils/createLegendInfo.js.map +1 -1
  257. package/dist/scatterplot/utils/getVisibleLabels.d.ts +6 -9
  258. package/dist/scatterplot/utils/getVisibleLabels.d.ts.map +1 -1
  259. package/dist/scatterplot/utils/getVisibleLabels.js +46 -56
  260. package/dist/scatterplot/utils/getVisibleLabels.js.map +1 -1
  261. package/dist/scatterplot-umap/ChartRenderer.d.ts +18 -15
  262. package/dist/scatterplot-umap/ChartRenderer.d.ts.map +1 -1
  263. package/dist/scatterplot-umap/ChartRenderer.js +231 -214
  264. package/dist/scatterplot-umap/ChartRenderer.js.map +1 -1
  265. package/dist/scatterplot-umap/SettingsImpl.d.ts +2 -2
  266. package/dist/scatterplot-umap/SettingsImpl.d.ts.map +1 -1
  267. package/dist/scatterplot-umap/SettingsImpl.js +6 -6
  268. package/dist/scatterplot-umap/SettingsImpl.js.map +1 -1
  269. package/dist/scatterplot-umap/colors.d.ts +6 -0
  270. package/dist/scatterplot-umap/colors.d.ts.map +1 -0
  271. package/dist/scatterplot-umap/colors.js +42 -0
  272. package/dist/scatterplot-umap/colors.js.map +1 -0
  273. package/dist/scatterplot-umap/components/Lasso.d.ts.map +1 -1
  274. package/dist/scatterplot-umap/components/Lasso.js +148 -124
  275. package/dist/scatterplot-umap/components/Lasso.js.map +1 -1
  276. package/dist/scatterplot-umap/components/LowerSVG.d.ts +2 -2
  277. package/dist/scatterplot-umap/components/LowerSVG.d.ts.map +1 -1
  278. package/dist/scatterplot-umap/components/LowerSVG.js +88 -87
  279. package/dist/scatterplot-umap/components/LowerSVG.js.map +1 -1
  280. package/dist/scatterplot-umap/components/UpperSVG.d.ts.map +1 -1
  281. package/dist/scatterplot-umap/components/UpperSVG.js +20 -19
  282. package/dist/scatterplot-umap/components/UpperSVG.js.map +1 -1
  283. package/dist/scatterplot-umap/index.d.ts +0 -2
  284. package/dist/scatterplot-umap/index.d.ts.map +1 -1
  285. package/dist/scatterplot-umap/index.js +77 -104
  286. package/dist/scatterplot-umap/index.js.map +1 -1
  287. package/dist/scatterplot-umap/types.d.ts +7 -10
  288. package/dist/scatterplot-umap/types.d.ts.map +1 -1
  289. package/dist/types/bubble.d.ts +12 -12
  290. package/dist/types/common.d.ts +4 -3
  291. package/dist/types/common.d.ts.map +1 -1
  292. package/dist/types/common.js +1 -1
  293. package/dist/types/common.js.map +1 -1
  294. package/dist/types/dendro.d.ts +10 -10
  295. package/dist/types/dendro.d.ts.map +1 -1
  296. package/dist/types/dendro.js +1 -1
  297. package/dist/types/dendro.js.map +1 -1
  298. package/dist/types/discrete.d.ts +14 -14
  299. package/dist/types/discrete.d.ts.map +1 -1
  300. package/dist/types/discrete.js +3 -3
  301. package/dist/types/discrete.js.map +1 -1
  302. package/dist/types/heatmap.d.ts +28 -28
  303. package/dist/types/heatmap.d.ts.map +1 -1
  304. package/dist/types/heatmap.js +1 -1
  305. package/dist/types/heatmap.js.map +1 -1
  306. package/dist/types/histogram.d.ts +8 -8
  307. package/dist/types/histogram.d.ts.map +1 -1
  308. package/dist/types/histogram.js +1 -1
  309. package/dist/types/histogram.js.map +1 -1
  310. package/dist/types/scatterplot-umap.d.ts +11 -15
  311. package/dist/types/scatterplot-umap.d.ts.map +1 -1
  312. package/dist/types/scatterplot-umap.js +9 -9
  313. package/dist/types/scatterplot-umap.js.map +1 -1
  314. package/dist/types/scatterplot.d.ts +12 -12
  315. package/dist/types/scatterplot.d.ts.map +1 -1
  316. package/dist/types/scatterplot.js +1 -1
  317. package/dist/types/scatterplot.js.map +1 -1
  318. package/dist/utils/TextMeasurer/TextMeasurer.d.ts +7 -0
  319. package/dist/utils/TextMeasurer/TextMeasurer.d.ts.map +1 -0
  320. package/dist/utils/TextMeasurer/TextMeasurer.js +42 -0
  321. package/dist/utils/TextMeasurer/TextMeasurer.js.map +1 -0
  322. package/dist/utils/TextMeasurer/charToWidth.json.js +155 -0
  323. package/dist/utils/TextMeasurer/charToWidth.json.js.map +1 -0
  324. package/dist/utils/arrangeLegendParts.js +1 -1
  325. package/dist/utils/arrangeLegendParts.js.map +1 -1
  326. package/dist/utils/getChartEdgeSides.d.ts +1 -1
  327. package/dist/utils/getLegendWidth.d.ts.map +1 -1
  328. package/dist/utils/getLegendWidth.js +1 -1
  329. package/dist/utils/getLegendWidth.js.map +1 -1
  330. package/package.json +5 -3
  331. package/dist/bubble/getCells.d.ts.map +0 -1
  332. package/dist/bubble/getCells.js +0 -91
  333. package/dist/bubble/getCells.js.map +0 -1
  334. package/dist/node_modules/d3-quadtree/src/add.js +0 -30
  335. package/dist/node_modules/d3-quadtree/src/add.js.map +0 -1
  336. package/dist/node_modules/d3-quadtree/src/cover.js +0 -29
  337. package/dist/node_modules/d3-quadtree/src/cover.js.map +0 -1
  338. package/dist/node_modules/d3-quadtree/src/data.js +0 -12
  339. package/dist/node_modules/d3-quadtree/src/data.js.map +0 -1
  340. package/dist/node_modules/d3-quadtree/src/extent.js +0 -7
  341. package/dist/node_modules/d3-quadtree/src/extent.js.map +0 -1
  342. package/dist/node_modules/d3-quadtree/src/find.js +0 -26
  343. package/dist/node_modules/d3-quadtree/src/find.js.map +0 -1
  344. package/dist/node_modules/d3-quadtree/src/quad.js +0 -7
  345. package/dist/node_modules/d3-quadtree/src/quad.js.map +0 -1
  346. package/dist/node_modules/d3-quadtree/src/quadtree.js +0 -51
  347. package/dist/node_modules/d3-quadtree/src/quadtree.js.map +0 -1
  348. package/dist/node_modules/d3-quadtree/src/remove.js +0 -21
  349. package/dist/node_modules/d3-quadtree/src/remove.js.map +0 -1
  350. package/dist/node_modules/d3-quadtree/src/root.js +0 -7
  351. package/dist/node_modules/d3-quadtree/src/root.js.map +0 -1
  352. package/dist/node_modules/d3-quadtree/src/size.js +0 -12
  353. package/dist/node_modules/d3-quadtree/src/size.js.map +0 -1
  354. package/dist/node_modules/d3-quadtree/src/visit.js +0 -14
  355. package/dist/node_modules/d3-quadtree/src/visit.js.map +0 -1
  356. package/dist/node_modules/d3-quadtree/src/visitAfter.js +0 -19
  357. package/dist/node_modules/d3-quadtree/src/visitAfter.js.map +0 -1
  358. package/dist/node_modules/d3-quadtree/src/x.js +0 -11
  359. package/dist/node_modules/d3-quadtree/src/x.js.map +0 -1
  360. package/dist/node_modules/d3-quadtree/src/y.js +0 -11
  361. package/dist/node_modules/d3-quadtree/src/y.js.map +0 -1
  362. package/dist/utils/TextMeasurer.d.ts +0 -8
  363. package/dist/utils/TextMeasurer.d.ts.map +0 -1
  364. package/dist/utils/TextMeasurer.js +0 -27
  365. package/dist/utils/TextMeasurer.js.map +0 -1
@@ -1,59 +1,34 @@
1
1
  var U = Object.defineProperty;
2
- var B = (d, l, e) => l in d ? U(d, l, { enumerable: !0, configurable: !0, writable: !0, value: e }) : d[l] = e;
3
- var y = (d, l, e) => B(d, typeof l != "symbol" ? l + "" : l, e);
4
- import { AbstractChart as P } from "../AbstractChart.js";
5
- import { createLegendInfo as w, addPalettesToAesMapping as T } from "../scatterplot/utils/createLegendInfo.js";
6
- import { TextMeasurer as R } from "../utils/TextMeasurer.js";
7
- import X from "./ChartRenderer.js";
8
- import { SCATTERPLOT_LASSO_EVENTS as p } from "./constants.js";
9
- import { ScatterplotUmapSettingsImpl as L } from "./SettingsImpl.js";
10
- function Y(d) {
11
- return typeof d == "object" && "type" in d && d.type === "grouping";
2
+ var A = (c, u, e) => u in c ? U(c, u, { enumerable: !0, configurable: !0, writable: !0, value: e }) : c[u] = e;
3
+ var f = (c, u, e) => A(c, typeof u != "symbol" ? u + "" : u, e);
4
+ import { AbstractChart as R } from "../AbstractChart.js";
5
+ import { createLegendInfo as I, addPalettesToAesMapping as T } from "../scatterplot/utils/createLegendInfo.js";
6
+ import P from "./ChartRenderer.js";
7
+ import { SCATTERPLOT_LASSO_EVENTS as m } from "./constants.js";
8
+ import { ScatterplotUmapSettingsImpl as D } from "./SettingsImpl.js";
9
+ function B(c) {
10
+ return typeof c == "object" && "type" in c && c.type === "grouping";
12
11
  }
13
- const I = 10;
14
- function M(d) {
15
- const l = [], e = new R("16px Manrope");
16
- for (const a of d) {
17
- const t = a.label;
18
- if (!t)
19
- continue;
20
- const n = e.getTextMetrics(String(t));
21
- l.push({
22
- name: String(t),
23
- width: (n == null ? void 0 : n.width) ?? 0,
24
- height: ((n == null ? void 0 : n.actualBoundingBoxAscent) ?? 0) + ((n == null ? void 0 : n.actualBoundingBoxDescent) ?? 0),
25
- x: 0,
26
- y: 0,
27
- xPosition: "right",
28
- yPosition: "middle",
29
- dot: a,
30
- padding: I,
31
- bbox: { minX: 0, maxX: 0, minY: 0, maxY: 0 },
32
- outerBBox: { minX: 0, maxX: 0, minY: 0, maxY: 0 }
33
- });
34
- }
35
- return l;
36
- }
37
- class G extends P {
12
+ class M extends R {
38
13
  constructor(e, a, t) {
39
14
  super(e, a);
40
- y(this, "settings");
41
- y(this, "chartRenderer", new X());
42
- y(this, "onPolygonUpdate", () => {
15
+ f(this, "settings");
16
+ f(this, "chartRenderer");
17
+ f(this, "onPolygonUpdate", () => {
43
18
  });
44
19
  // dots indexes from input data
45
- y(this, "onTooltipHintSwitch", () => {
20
+ f(this, "onTooltipHintSwitch", () => {
46
21
  });
47
- y(this, "onLassoControlsStateUpdate", () => {
22
+ f(this, "onLassoControlsStateUpdate", () => {
48
23
  });
49
- y(this, "calculatedData", null);
50
- this.settings = new L(a), t && (this.onPolygonUpdate = t.onPolygonUpdate, this.onTooltipHintSwitch = t.onTooltipHintSwitch, this.onLassoControlsStateUpdate = t.onLassoControlsStateUpdate);
24
+ f(this, "calculatedData", null);
25
+ this.settings = new D(a), this.chartRenderer = new P(), t && (this.onPolygonUpdate = t.onPolygonUpdate, this.onTooltipHintSwitch = t.onTooltipHintSwitch, this.onLassoControlsStateUpdate = t.onLassoControlsStateUpdate);
51
26
  }
52
27
  mount(e) {
53
28
  try {
54
29
  this.chartRenderer.init(e), this._updateData(), this._updateChart();
55
30
  } catch (a) {
56
- a instanceof Error && this.chartRenderer.renderError(a.message);
31
+ console.error(a), a instanceof Error && (this.chartRenderer.renderError(a.message), console.error(a));
57
32
  }
58
33
  }
59
34
  unmount() {
@@ -61,29 +36,29 @@ class G extends P {
61
36
  }
62
37
  updateSettingsAndData(e, a) {
63
38
  try {
64
- const t = this.settings, n = this.data;
65
- this.settings = new L(a), this.data = e, this._needUpdateCalculatedDataBySettings(t, this.settings) || this._needUpdateCalculatedDataByData(n, this.data) ? this._updateData() : this._updateAesInData();
66
- const s = t.layers.find((u) => u.type === "dots"), i = this.settings.layers.find((u) => u.type === "dots");
67
- s && i && s.aes.dotSize !== i.aes.dotSize && typeof s.aes.dotSize == "number" && typeof i.aes.dotSize == "number" && this.chartRenderer.updatePointSize(), this._updateChart();
39
+ const t = this.settings, i = this.data;
40
+ this.settings = new D(a), this.data = e, this._needUpdateCalculatedDataBySettings(t, this.settings) || this._needUpdateCalculatedDataByData(i, this.data) ? this._updateData() : this._updateAesInData();
41
+ const n = t.layers.find((d) => d.type === "dots"), o = this.settings.layers.find((d) => d.type === "dots");
42
+ n && o && n.aes.dotSize !== o.aes.dotSize && typeof n.aes.dotSize == "number" && typeof o.aes.dotSize == "number" && this.chartRenderer.updatePointSize(), this._updateChart();
68
43
  } catch (t) {
69
- t instanceof Error && this.chartRenderer.renderError(t.message);
44
+ t instanceof Error && (this.chartRenderer.renderError(t.message), console.error(t));
70
45
  }
71
46
  }
72
47
  updateChartState(e, a) {
73
- if (e === "polygon" && (this.chartRenderer.polygons = a, this._updateChart()), e === p.delete && document) {
74
- const t = new CustomEvent(p.delete);
48
+ if (e === "polygon" && (this.chartRenderer.polygons = a, this._updateChart()), e === m.delete && document) {
49
+ const t = new CustomEvent(m.delete);
75
50
  document.dispatchEvent(t);
76
51
  }
77
- if (e === p.selectMode && document) {
78
- const t = new CustomEvent(p.selectMode, { detail: a });
52
+ if (e === m.selectMode && document) {
53
+ const t = new CustomEvent(m.selectMode, { detail: a });
79
54
  document.dispatchEvent(t);
80
55
  }
81
- if (e === p.forward && document) {
82
- const t = new CustomEvent(p.forward);
56
+ if (e === m.forward && document) {
57
+ const t = new CustomEvent(m.forward);
83
58
  document.dispatchEvent(t);
84
59
  }
85
- if (e === p.back && document) {
86
- const t = new CustomEvent(p.back);
60
+ if (e === m.back && document) {
61
+ const t = new CustomEvent(m.back);
87
62
  document.dispatchEvent(t);
88
63
  }
89
64
  }
@@ -91,89 +66,87 @@ class G extends P {
91
66
  return console.warn("export not implemented"), "";
92
67
  }
93
68
  _needUpdateCalculatedDataBySettings(e, a) {
94
- var t, n, s, i;
95
- return e.grouping.length !== a.grouping.length || e.grouping.some((u, o) => {
69
+ var t, i, n, o;
70
+ return e.grouping.length !== a.grouping.length || e.grouping.some((d, s) => {
96
71
  var h;
97
- return u.value !== ((h = a.grouping[o]) == null ? void 0 : h.value);
98
- }) || (((t = e.label) == null ? void 0 : t.value) || ((n = a.label) == null ? void 0 : n.value)) && ((s = e.label) == null ? void 0 : s.value) !== ((i = a.label) == null ? void 0 : i.value);
72
+ return d.value !== ((h = a.grouping[s]) == null ? void 0 : h.value);
73
+ }) || e.layers.length !== a.layers.length || e.layers.some((d, s) => d.type !== a.layers[s].type) || (((t = e.label) == null ? void 0 : t.value) || ((i = a.label) == null ? void 0 : i.value)) && ((n = e.label) == null ? void 0 : n.value) !== ((o = a.label) == null ? void 0 : o.value);
99
74
  }
100
75
  _needUpdateCalculatedDataByData(e, a) {
101
- const t = Object.keys(e.data), n = Object.keys(a.data);
102
- return e.id !== a.id || t.length !== n.length || t.some((s) => {
103
- var i;
104
- return e.data[s].length !== ((i = a.data[s]) == null ? void 0 : i.length);
76
+ const t = Object.keys(e.data), i = Object.keys(a.data);
77
+ return e.id !== a.id || t.length !== i.length || t.some((n) => {
78
+ var o;
79
+ return e.data[n].length !== ((o = a.data[n]) == null ? void 0 : o.length);
105
80
  });
106
81
  }
107
82
  _updateData() {
108
- const { x: e, y: a, label: t, highlight: n, grouping: s, layers: i, inheritedAes: u } = this.settings, o = {
83
+ const { x: e, y: a, label: t, highlight: i, grouping: n, layers: o, inheritedAes: d } = this.settings, s = {
109
84
  minX: 1 / 0,
110
85
  maxX: -1 / 0,
111
86
  minY: 1 / 0,
112
87
  maxY: -1 / 0
113
- }, h = i.some((c) => c.type === "curve"), g = /* @__PURE__ */ new Set(), b = {}, x = this.data.rows.reduce((c, r, S) => {
114
- if (r[e.value] === null || r[a.value] === null)
115
- return c;
116
- const m = Number(r[e.value]), f = Number(r[a.value]);
117
- m !== null && m < o.minX && (o.minX = m), m !== null && m > o.maxX && (o.maxX = m), f !== null && f < o.minY && (o.minY = f), f !== null && f > o.maxY && (o.maxY = f);
118
- const C = (t == null ? void 0 : t.valueLabels) ?? (t == null ? void 0 : t.value), D = {
119
- x: m,
120
- y: f,
121
- id: String(S),
122
- idx: S,
123
- dimmed: n ? !r[n.value] : !1,
124
- label: C && r[C] ? String(r[C]) : null,
125
- data: r
88
+ }, h = o.some((r) => r.type === "curve"), g = /* @__PURE__ */ new Set(), y = {}, S = (t == null ? void 0 : t.valueLabels) ?? (t == null ? void 0 : t.value), v = [];
89
+ for (let r = 0; r < this.data.rowsCount; r++) {
90
+ const l = this.data.getColumnValue(e.value, r), p = this.data.getColumnValue(a.value, r);
91
+ if (typeof l != "number" || typeof p != "number")
92
+ continue;
93
+ l < s.minX && (s.minX = l), l > s.maxX && (s.maxX = l), p < s.minY && (s.minY = p), p > s.maxY && (s.maxY = p);
94
+ const w = typeof S == "string" ? this.data.getColumnValue(S, r) : null, _ = i ? !this.data.getColumnValue(i.value, r) : !1, b = {
95
+ x: l,
96
+ y: p,
97
+ idx: r,
98
+ label: w,
99
+ dimmed: _
126
100
  };
127
101
  if (h) {
128
- const v = s.map((A) => r[A.value]).join("_");
129
- g.add(v), b[v] || (b[v] = []), b[v].push(D);
102
+ const C = n.map((L) => this.data.getColumnValue(L.value, r)).join("_");
103
+ g.add(C), y[C] || (y[C] = []), y[C].push(b);
130
104
  }
131
- return c.push(D), c;
132
- }, []);
133
- n && x.sort((c, r) => Number(r.dimmed) - Number(c.dimmed));
105
+ v.push(b);
106
+ }
107
+ i && v.sort((r, l) => l.dimmed === r.dimmed ? 0 : l.dimmed ? 1 : -1);
134
108
  const E = [...g];
135
- h && E.forEach((c) => {
136
- b[c].sort((r, S) => r.x - S.x);
109
+ h && E.forEach((r) => {
110
+ y[r].sort((l, p) => l.x - p.x);
137
111
  });
138
- const _ = w(this.data, s, i, u);
112
+ const x = I(this.data, n, o, d);
139
113
  this.calculatedData = {
140
- dots: x,
141
- dotsByGrouping: b,
114
+ dots: v,
115
+ dotsByGrouping: y,
142
116
  groupingKeys: E,
143
- allPossibleLabels: M(x),
144
- dotsExtents: o,
145
- legendLabels: _
146
- }, this.chartRenderer.updateData(x);
117
+ dotsExtents: s,
118
+ legendLabels: x
119
+ };
147
120
  }
148
121
  _updateAesInData() {
149
122
  const e = this.calculatedData;
150
123
  if (!e)
151
124
  return;
152
- const { layers: a, inheritedAes: t, grouping: n } = this.settings;
153
- n.forEach((s) => {
154
- const i = /* @__PURE__ */ new Set(), u = {};
155
- a.forEach((o) => {
156
- o.aes && Object.entries(o.aes).forEach(([h, g]) => {
157
- Y(g) && g.value === s.value && (i.add(h), g.palette && (u[h] = g.palette));
125
+ const { layers: a, inheritedAes: t, grouping: i } = this.settings;
126
+ i.forEach((n) => {
127
+ const o = /* @__PURE__ */ new Set(), d = {};
128
+ a.forEach((s) => {
129
+ s.aes && Object.entries(s.aes).forEach(([h, g]) => {
130
+ B(g) && g.value === n.value && (o.add(h), g.palette && (d[h] = g.palette));
158
131
  });
159
- }), e.legendLabels[s.value].usedAes = [...i], e.legendLabels[s.value].aesMap = T(e.legendLabels[s.value].values, u, t[s.value]);
132
+ }), e.legendLabels[n.value].usedAes = [...o], e.legendLabels[n.value].aesMap = T(n, d, t[n.value]);
160
133
  });
161
134
  }
162
135
  _updateChart() {
163
136
  if (!this.calculatedData)
164
137
  return;
165
- const { id: e, chartSettings: a, keyColumn: t, layers: n, grouping: s } = this.settings;
138
+ const { id: e, chartSettings: a, keyColumn: t, layers: i, grouping: n } = this.settings;
166
139
  this.chartRenderer.render(
140
+ this.data,
167
141
  e,
168
142
  a,
169
143
  t,
170
144
  this.calculatedData.dots,
171
145
  this.calculatedData.dotsExtents,
172
146
  this.calculatedData.dotsByGrouping,
173
- n,
147
+ i,
174
148
  this.calculatedData.legendLabels,
175
- s,
176
- this.calculatedData.allPossibleLabels,
149
+ n,
177
150
  this.onPolygonUpdate,
178
151
  this.onTooltipHintSwitch,
179
152
  this.onLassoControlsStateUpdate
@@ -181,6 +154,6 @@ class G extends P {
181
154
  }
182
155
  }
183
156
  export {
184
- G as ChartScatterplotUmap
157
+ M as ChartScatterplotUmap
185
158
  };
186
159
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/scatterplot-umap/index.ts"],"sourcesContent":["import { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport { addPalettesToAesMapping, createLegendInfo } from '../scatterplot/utils/createLegendInfo';\nimport type { Label } from '../scatterplot/utils/getVisibleLabels';\nimport type { AesItem, ContinuousAesFromColumn, InheritAesScatterplot, ScatterplotEventHandlers } from '../types';\nimport type { ScatterplotUmapLegendInfo, ScatterplotUmapSettings } from '../types/scatterplot-umap';\nimport { TextMeasurer } from '../utils/TextMeasurer';\nimport ChartRenderer from './ChartRenderer';\nimport { SCATTERPLOT_LASSO_EVENTS } from './constants';\nimport type { DotsLayer } from './SettingsImpl';\nimport { ScatterplotUmapSettingsImpl } from './SettingsImpl';\nimport type { Dot, DotsExtents, LassoControlsState, LassoMode, Polygon } from './types';\n\nfunction isInheritMapping<T extends (string | number)>(value:T | InheritAesScatterplot | ContinuousAesFromColumn<T>):value is InheritAesScatterplot {\n return typeof value === 'object' && 'type' in value && value.type === 'grouping';\n}\n\nconst LABEL_OFFSET = 10;\nfunction getAllPossibleLabels(dots: Dot[]) {\n const labels: Label[] = [];\n const textMeasurer = new TextMeasurer('16px Manrope');\n for (const dot of dots) {\n const text = dot.label;\n if (!text) {\n continue;\n }\n const metrics = textMeasurer.getTextMetrics(String(text));\n labels.push({\n name: String(text),\n width: metrics?.width ?? 0,\n height: (metrics?.actualBoundingBoxAscent ?? 0) + (metrics?.actualBoundingBoxDescent ?? 0),\n x: 0,\n y: 0,\n xPosition: 'right',\n yPosition: 'middle',\n dot,\n padding: LABEL_OFFSET,\n bbox: {minX: 0, maxX: 0, minY: 0, maxY: 0},\n outerBBox: {minX: 0, maxX: 0, minY: 0, maxY: 0},\n } as Label);\n }\n return labels;\n}\n\nexport class ChartScatterplotUmap extends AbstractChart {\n settings: ScatterplotUmapSettingsImpl;\n chartRenderer = new ChartRenderer();\n\n onPolygonUpdate: (data: number[], polygons: Polygon[]) => void = () => undefined; // dots indexes from input data\n onTooltipHintSwitch: (v:boolean) => void = () => undefined;\n onLassoControlsStateUpdate: (v: LassoControlsState) => void = () => undefined;\n\n calculatedData: {\n dots: Dot[],\n groupingKeys: string[],\n dotsByGrouping: Record<string, Dot[]>,\n allPossibleLabels: Label[],\n dotsExtents: DotsExtents,\n legendLabels: ScatterplotUmapLegendInfo\n } | null = null;\n\n constructor(data: DataFrame, settings: ScatterplotUmapSettings, eventHandlers?: ScatterplotEventHandlers) {\n super(data, settings);\n\n this.settings = new ScatterplotUmapSettingsImpl(settings);\n if (eventHandlers) {\n this.onPolygonUpdate = eventHandlers.onPolygonUpdate;\n this.onTooltipHintSwitch = eventHandlers.onTooltipHintSwitch;\n this.onLassoControlsStateUpdate = eventHandlers.onLassoControlsStateUpdate;\n }\n }\n\n mount(node: HTMLElement) {\n try {\n this.chartRenderer.init(node);\n this._updateData();\n this._updateChart();\n } catch (err) {\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n }\n }\n }\n\n unmount() {\n this.chartRenderer.clear();\n }\n\n updateSettingsAndData(data: DataFrame, settings: ScatterplotUmapSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new ScatterplotUmapSettingsImpl(settings);\n this.data = data;\n if (\n this._needUpdateCalculatedDataBySettings(previousSettings, this.settings) ||\n this._needUpdateCalculatedDataByData(previousData, this.data)\n ) {\n this._updateData();\n } else {\n this._updateAesInData();\n }\n\n // for some reason it's not enough for size updating to do like with fillColor\n const prevLayer = previousSettings.layers.find(l => l.type === 'dots') as DotsLayer;\n const currentLayer = this.settings.layers.find(l => l.type === 'dots') as DotsLayer;\n if (prevLayer && currentLayer && prevLayer.aes.dotSize !== currentLayer.aes.dotSize\n && typeof prevLayer.aes.dotSize === 'number' && typeof currentLayer.aes.dotSize === 'number') {\n this.chartRenderer.updatePointSize();\n }\n this._updateChart();\n } catch (err) {\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n }\n }\n }\n\n updateChartState(field: string, value: unknown) {\n if (field === 'polygon') {\n this.chartRenderer.polygons = value as Polygon[];\n this._updateChart();\n }\n if (field === SCATTERPLOT_LASSO_EVENTS.delete) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_LASSO_EVENTS.delete);\n document.dispatchEvent(event);\n }}\n if (field === SCATTERPLOT_LASSO_EVENTS.selectMode) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_LASSO_EVENTS.selectMode, {detail: value as LassoMode});\n document.dispatchEvent(event);\n }\n }\n if (field === SCATTERPLOT_LASSO_EVENTS.forward) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_LASSO_EVENTS.forward);\n document.dispatchEvent(event);\n }\n }\n if (field === SCATTERPLOT_LASSO_EVENTS.back) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_LASSO_EVENTS.back);\n document.dispatchEvent(event);\n }\n }\n }\n\n export(): string {\n console.warn('export not implemented');\n return '';\n // this._updateChart();\n // return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: ScatterplotUmapSettingsImpl, settings: ScatterplotUmapSettingsImpl) {\n return (\n prevSettings.grouping.length !== settings.grouping.length ||\n prevSettings.grouping.some((el, idx) => el.value !== settings.grouping[idx]?.value) ||\n (prevSettings.label?.value || settings.label?.value) && prevSettings.label?.value !== settings.label?.value\n );\n }\n\n _needUpdateCalculatedDataByData(prevData: DataFrame, data: DataFrame) {\n const prevKeys = Object.keys(prevData.data);\n const keys = Object.keys(data.data);\n return (\n prevData.id !== data.id ||\n prevKeys.length !== keys.length ||\n prevKeys.some(key => prevData.data[key].length !== data.data[key]?.length)\n );\n }\n\n _updateData() {\n const {x, y, label, highlight, grouping, layers, inheritedAes} = this.settings;\n\n const dotsExtents = {\n minX: Infinity,\n maxX: -Infinity,\n minY: Infinity,\n maxY: -Infinity,\n };\n\n const hasCurve = layers.some(layer => layer.type === 'curve');\n const groupingKeysSet = new Set<string>();\n const dotsByGrouping:Record<string, Dot[]> = {};\n\n const dots = this.data.rows.reduce((res:Dot[], row, idx) => {\n if (row[x.value] === null || row[y.value] === null) {\n return res;\n }\n const xv = Number(row[x.value]);\n const yv = Number(row[y.value]);\n\n if (xv !== null && xv < dotsExtents.minX) {\n dotsExtents.minX = xv;\n }\n if (xv !== null && xv > dotsExtents.maxX) {\n dotsExtents.maxX = xv;\n }\n if (yv !== null && yv < dotsExtents.minY) {\n dotsExtents.minY = yv;\n }\n if (yv !== null && yv > dotsExtents.maxY) {\n dotsExtents.maxY = yv;\n }\n const labelKey = label?.valueLabels ?? label?.value;\n const dot = {\n x: xv,\n y: yv,\n id: String(idx),\n idx: idx,\n dimmed: highlight ? !row[highlight.value] : false,\n label: labelKey && row[labelKey] ? String(row[labelKey]) : null,\n data: row\n };\n if (hasCurve) {\n const groupingKey = grouping.map(column => row[column.value]).join('_');\n groupingKeysSet.add(groupingKey);\n if (!dotsByGrouping[groupingKey]) {\n dotsByGrouping[groupingKey] = [];\n }\n dotsByGrouping[groupingKey].push(dot);\n\n }\n res.push(dot);\n return res;\n }, []);\n\n if (highlight) {\n dots.sort((d1, d2) => {\n return Number(d2.dimmed) - Number(d1.dimmed);\n });\n }\n\n const groupingKeys = [...groupingKeysSet];\n if (hasCurve) {\n groupingKeys.forEach(key => {\n dotsByGrouping[key].sort((a, b) => a.x - b.x);\n });\n }\n const legendLabels = createLegendInfo(this.data, grouping, layers, inheritedAes);\n\n this.calculatedData = {\n dots,\n dotsByGrouping,\n groupingKeys,\n allPossibleLabels: getAllPossibleLabels(dots),\n dotsExtents,\n legendLabels,\n };\n\n this.chartRenderer.updateData(dots);\n }\n\n _updateAesInData() {\n const calculated = this.calculatedData;\n if (!calculated) {\n return;\n }\n const {layers, inheritedAes, grouping} = this.settings;\n grouping.forEach(column => {\n const usedAes = new Set<keyof AesItem>();\n const usedAesFromPalettes:Partial<Record<keyof AesItem, string[]>> = {}; // if there is palette in mapping then\n layers.forEach(layer => {\n if (layer.aes) {\n Object.entries(layer.aes).forEach(([key, value]) => {\n if (isInheritMapping(value) && value.value === column.value) {\n usedAes.add(key as keyof AesItem);\n if (value.palette) {\n usedAesFromPalettes[key as keyof AesItem] = value.palette;\n }\n }\n });\n }\n });\n calculated.legendLabels[column.value].usedAes = [...usedAes];\n calculated.legendLabels[column.value].aesMap = addPalettesToAesMapping(calculated.legendLabels[column.value].values, usedAesFromPalettes, inheritedAes[column.value]);\n });\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {id, chartSettings, keyColumn, layers, grouping} = this.settings;\n this.chartRenderer.render(\n id,\n chartSettings,\n keyColumn,\n this.calculatedData.dots,\n this.calculatedData.dotsExtents,\n this.calculatedData.dotsByGrouping,\n layers,\n this.calculatedData.legendLabels,\n grouping,\n this.calculatedData.allPossibleLabels,\n this.onPolygonUpdate,\n this.onTooltipHintSwitch,\n this.onLassoControlsStateUpdate\n );\n }\n}\n"],"names":["isInheritMapping","value","LABEL_OFFSET","getAllPossibleLabels","dots","labels","textMeasurer","TextMeasurer","dot","text","metrics","ChartScatterplotUmap","AbstractChart","data","settings","eventHandlers","__publicField","ChartRenderer","ScatterplotUmapSettingsImpl","node","err","previousSettings","previousData","prevLayer","l","currentLayer","field","SCATTERPLOT_LASSO_EVENTS","event","prevSettings","el","idx","_a","_b","_c","_d","prevData","prevKeys","keys","key","x","y","label","highlight","grouping","layers","inheritedAes","dotsExtents","hasCurve","layer","groupingKeysSet","dotsByGrouping","res","row","xv","yv","labelKey","groupingKey","column","d1","d2","groupingKeys","a","b","legendLabels","createLegendInfo","calculated","usedAes","usedAesFromPalettes","addPalettesToAesMapping","id","chartSettings","keyColumn"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/scatterplot-umap/index.ts"],"sourcesContent":["import { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport { addPalettesToAesMapping, createLegendInfo } from '../scatterplot/utils/createLegendInfo';\nimport type { AesItem, ContinuousAesFromColumn, InheritAesScatterplot, ScatterplotEventHandlers } from '../types';\nimport type { ScatterplotUmapLegendInfo, ScatterplotUmapSettings } from '../types/scatterplot-umap';\nimport ChartRenderer from './ChartRenderer';\nimport { SCATTERPLOT_LASSO_EVENTS } from './constants';\nimport type { DotsLayer } from './SettingsImpl';\nimport { ScatterplotUmapSettingsImpl } from './SettingsImpl';\nimport type { Dot, DotsExtents, LassoControlsState, LassoMode, Polygon } from './types';\n\nfunction isInheritMapping<T extends (string | number)>(value:T | InheritAesScatterplot | ContinuousAesFromColumn<T>):value is InheritAesScatterplot {\n return typeof value === 'object' && 'type' in value && value.type === 'grouping';\n}\n\nexport class ChartScatterplotUmap extends AbstractChart {\n settings: ScatterplotUmapSettingsImpl;\n chartRenderer: ChartRenderer;\n\n onPolygonUpdate: (data: number[], polygons: Polygon[]) => void = () => undefined; // dots indexes from input data\n onTooltipHintSwitch: (v:boolean) => void = () => undefined;\n onLassoControlsStateUpdate: (v: LassoControlsState) => void = () => undefined;\n\n calculatedData: {\n dots: Dot[],\n groupingKeys: string[],\n dotsByGrouping: Record<string, Dot[]>,\n dotsExtents: DotsExtents,\n legendLabels: ScatterplotUmapLegendInfo\n } | null = null;\n\n constructor(data: DataFrame, settings: ScatterplotUmapSettings, eventHandlers?: ScatterplotEventHandlers) {\n super(data, settings);\n\n this.settings = new ScatterplotUmapSettingsImpl(settings);\n this.chartRenderer = new ChartRenderer();\n\n if (eventHandlers) {\n this.onPolygonUpdate = eventHandlers.onPolygonUpdate;\n this.onTooltipHintSwitch = eventHandlers.onTooltipHintSwitch;\n this.onLassoControlsStateUpdate = eventHandlers.onLassoControlsStateUpdate;\n }\n }\n\n mount(node: HTMLElement) {\n try {\n this.chartRenderer.init(node);\n this._updateData();\n this._updateChart();\n } catch (err) {\n console.error(err);\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n unmount() {\n this.chartRenderer.clear();\n }\n\n updateSettingsAndData(data: DataFrame, settings: ScatterplotUmapSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new ScatterplotUmapSettingsImpl(settings);\n this.data = data;\n if (\n this._needUpdateCalculatedDataBySettings(previousSettings, this.settings) ||\n this._needUpdateCalculatedDataByData(previousData, this.data)\n ) {\n this._updateData();\n } else {\n this._updateAesInData();\n }\n\n // for some reason it's not enough for size updating to do like with fillColor\n const prevLayer = previousSettings.layers.find(l => l.type === 'dots') as DotsLayer;\n const currentLayer = this.settings.layers.find(l => l.type === 'dots') as DotsLayer;\n if (prevLayer && currentLayer && prevLayer.aes.dotSize !== currentLayer.aes.dotSize\n && typeof prevLayer.aes.dotSize === 'number' && typeof currentLayer.aes.dotSize === 'number') {\n this.chartRenderer.updatePointSize();\n }\n this._updateChart();\n } catch (err) {\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n updateChartState(field: string, value: unknown) {\n if (field === 'polygon') {\n this.chartRenderer.polygons = value as Polygon[];\n this._updateChart();\n }\n if (field === SCATTERPLOT_LASSO_EVENTS.delete) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_LASSO_EVENTS.delete);\n document.dispatchEvent(event);\n }}\n if (field === SCATTERPLOT_LASSO_EVENTS.selectMode) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_LASSO_EVENTS.selectMode, {detail: value as LassoMode});\n document.dispatchEvent(event);\n }\n }\n if (field === SCATTERPLOT_LASSO_EVENTS.forward) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_LASSO_EVENTS.forward);\n document.dispatchEvent(event);\n }\n }\n if (field === SCATTERPLOT_LASSO_EVENTS.back) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_LASSO_EVENTS.back);\n document.dispatchEvent(event);\n }\n }\n }\n\n export(): string {\n console.warn('export not implemented');\n return '';\n // this._updateChart();\n // return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: ScatterplotUmapSettingsImpl, settings: ScatterplotUmapSettingsImpl) {\n return (\n prevSettings.grouping.length !== settings.grouping.length ||\n prevSettings.grouping.some((el, idx) => el.value !== settings.grouping[idx]?.value) ||\n prevSettings.layers.length !== settings.layers.length ||\n prevSettings.layers.some((l, idx) => l.type !== settings.layers[idx].type) ||\n (prevSettings.label?.value || settings.label?.value) && prevSettings.label?.value !== settings.label?.value\n );\n }\n\n _needUpdateCalculatedDataByData(prevData: DataFrame, data: DataFrame) {\n const prevKeys = Object.keys(prevData.data);\n const keys = Object.keys(data.data);\n return (\n prevData.id !== data.id ||\n prevKeys.length !== keys.length ||\n prevKeys.some(key => prevData.data[key].length !== data.data[key]?.length)\n );\n }\n\n _updateData() {\n const {x, y, label, highlight, grouping, layers, inheritedAes} = this.settings;\n\n const dotsExtents = {\n minX: Infinity,\n maxX: -Infinity,\n minY: Infinity,\n maxY: -Infinity,\n };\n\n const hasCurve = layers.some(layer => layer.type === 'curve');\n const groupingKeysSet = new Set<string>();\n const dotsByGrouping:Record<string, Dot[]> = {};\n const labelKey = label?.valueLabels ?? label?.value;\n\n const dots: Dot[] = [];\n\n for (let idx = 0; idx < this.data.rowsCount; idx++) {\n const xv = this.data.getColumnValue(x.value, idx);\n const yv = this.data.getColumnValue(y.value, idx);\n\n if (typeof xv !== 'number' || typeof yv !== 'number') {\n continue;\n }\n\n if (xv < dotsExtents.minX) {\n dotsExtents.minX = xv;\n }\n if (xv > dotsExtents.maxX) {\n dotsExtents.maxX = xv;\n }\n if (yv < dotsExtents.minY) {\n dotsExtents.minY = yv;\n }\n if (yv > dotsExtents.maxY) {\n dotsExtents.maxY = yv;\n }\n\n const label = typeof labelKey === 'string'\n ? this.data.getColumnValue(labelKey, idx)\n : null;\n const dimmed = highlight ? !this.data.getColumnValue(highlight.value, idx) : false;\n const dot: Dot = {\n x: xv,\n y: yv,\n idx,\n label,\n dimmed\n };\n if (hasCurve) {\n const groupingKey = grouping.map(column => this.data.getColumnValue(column.value, idx)).join('_');\n groupingKeysSet.add(groupingKey);\n if (!dotsByGrouping[groupingKey]) {\n dotsByGrouping[groupingKey] = [];\n }\n dotsByGrouping[groupingKey].push(dot);\n\n }\n dots.push(dot);\n }\n\n if (highlight) {\n dots.sort((d1, d2) => {\n if (d2.dimmed === d1.dimmed) return 0;\n if (d2.dimmed) return 1;\n return -1;\n });\n }\n\n const groupingKeys = [...groupingKeysSet];\n if (hasCurve) {\n groupingKeys.forEach(key => {\n dotsByGrouping[key].sort((a, b) => a.x - b.x);\n });\n }\n const legendLabels = createLegendInfo(this.data, grouping, layers, inheritedAes);\n\n this.calculatedData = {\n dots,\n dotsByGrouping,\n groupingKeys,\n dotsExtents,\n legendLabels,\n };\n }\n\n _updateAesInData() {\n const calculated = this.calculatedData;\n if (!calculated) {\n return;\n }\n const {layers, inheritedAes, grouping} = this.settings;\n grouping.forEach(column => {\n const usedAes = new Set<keyof AesItem>();\n const usedAesFromPalettes:Partial<Record<keyof AesItem, string[]>> = {}; // if there is palette in mapping then\n layers.forEach(layer => {\n if (!layer.aes) return;\n \n Object.entries(layer.aes).forEach(([key, value]) => {\n if (!(isInheritMapping(value) && value.value === column.value)) return;\n usedAes.add(key as keyof AesItem);\n if (value.palette) {\n usedAesFromPalettes[key as keyof AesItem] = value.palette;\n }\n });\n });\n\n calculated.legendLabels[column.value].usedAes = [...usedAes];\n calculated.legendLabels[column.value].aesMap = addPalettesToAesMapping(column, usedAesFromPalettes, inheritedAes[column.value]);\n });\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {id, chartSettings, keyColumn, layers, grouping} = this.settings;\n this.chartRenderer.render(\n this.data,\n id,\n chartSettings,\n keyColumn,\n this.calculatedData.dots,\n this.calculatedData.dotsExtents,\n this.calculatedData.dotsByGrouping,\n layers,\n this.calculatedData.legendLabels,\n grouping,\n this.onPolygonUpdate,\n this.onTooltipHintSwitch,\n this.onLassoControlsStateUpdate\n );\n }\n}\n"],"names":["isInheritMapping","value","ChartScatterplotUmap","AbstractChart","data","settings","eventHandlers","__publicField","ScatterplotUmapSettingsImpl","ChartRenderer","node","err","previousSettings","previousData","prevLayer","l","currentLayer","field","SCATTERPLOT_LASSO_EVENTS","event","prevSettings","el","idx","_a","_b","_c","_d","prevData","prevKeys","keys","key","x","y","label","highlight","grouping","layers","inheritedAes","dotsExtents","hasCurve","layer","groupingKeysSet","dotsByGrouping","labelKey","dots","xv","yv","dimmed","dot","groupingKey","column","d1","d2","groupingKeys","a","b","legendLabels","createLegendInfo","calculated","usedAes","usedAesFromPalettes","addPalettesToAesMapping","id","chartSettings","keyColumn"],"mappings":"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"}
@@ -1,22 +1,19 @@
1
+ import { ScaleLinear, ScaleLogarithmic } from 'd3-scale';
1
2
  import { LegendData } from '../common/types';
2
- import { ScatterplotUmapSettingsImpl } from './SettingsImpl';
3
3
  import { Label } from '../scatterplot/utils/getVisibleLabels';
4
- import { DataValue, LineShape, ColumnName, Row } from '../types';
5
- import { ScaleLinear, ScaleLogarithmic } from 'd3-scale';
4
+ import { ColumnName, DataValue, LineShape } from '../types';
5
+ import { ScatterplotUmapSettingsImpl } from './SettingsImpl';
6
6
  export type DotInfo = {
7
+ idx: number;
7
8
  x: number;
8
9
  y: number;
9
- key: string;
10
- data: Row;
11
10
  };
12
11
  export type Dot = {
13
- id: string;
14
12
  idx: number;
15
13
  x: number;
16
14
  y: number;
17
15
  label: DataValue | null;
18
16
  dimmed: boolean;
19
- data: Row;
20
17
  };
21
18
  export type DotsExtents = {
22
19
  minX: number;
@@ -76,9 +73,9 @@ export type Polygon = {
76
73
  };
77
74
  export type LassoMode = 'pen' | 'selection';
78
75
  export type AesGetters = {
79
- dotFill: (r: Row) => string;
80
- dotSize: (r: Row) => number;
81
- lineType: (r: Row) => LineShape;
76
+ dotFill: (idx: number) => string;
77
+ dotSize: (idx: number) => number;
78
+ lineType: (idx: number) => LineShape;
82
79
  };
83
80
  export type LassoControlsState = {
84
81
  mode: LassoMode;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/scatterplot-umap/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/scatterplot-umap/types.ts"],"names":[],"mappings":"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"}
@@ -8,11 +8,11 @@ export declare const BubblesSettingsSchema: z.ZodObject<{
8
8
  }, "strip", z.ZodTypeAny, {
9
9
  name: string;
10
10
  show?: boolean | undefined;
11
- position?: "left" | "center" | "right" | undefined;
11
+ position?: "right" | "left" | "center" | undefined;
12
12
  }, {
13
13
  name: string;
14
14
  show?: boolean | undefined;
15
- position?: "left" | "center" | "right" | undefined;
15
+ position?: "right" | "left" | "center" | undefined;
16
16
  }>;
17
17
  size: z.ZodOptional<z.ZodObject<{
18
18
  width: z.ZodOptional<z.ZodNumber>;
@@ -32,10 +32,10 @@ export declare const BubblesSettingsSchema: z.ZodObject<{
32
32
  position: z.ZodOptional<z.ZodEnum<["inside", "right", "top", "bottom"]>>;
33
33
  }, "strip", z.ZodTypeAny, {
34
34
  show?: boolean | undefined;
35
- position?: "right" | "inside" | "top" | "bottom" | undefined;
35
+ position?: "right" | "top" | "bottom" | "inside" | undefined;
36
36
  }, {
37
37
  show?: boolean | undefined;
38
- position?: "right" | "inside" | "top" | "bottom" | undefined;
38
+ position?: "right" | "top" | "bottom" | "inside" | undefined;
39
39
  }>>;
40
40
  frame: z.ZodOptional<z.ZodObject<{
41
41
  type: z.ZodOptional<z.ZodEnum<["left", "bottom", "left-bottom", "full", "empty"]>>;
@@ -169,7 +169,7 @@ export declare const BubblesSettingsSchema: z.ZodObject<{
169
169
  axisLabelsAngle: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<0>, z.ZodLiteral<45>, z.ZodLiteral<90>]>>;
170
170
  }, "strip", z.ZodTypeAny, {
171
171
  title?: string | undefined;
172
- position?: "left" | "right" | undefined;
172
+ position?: "right" | "left" | undefined;
173
173
  showTicks?: boolean | undefined;
174
174
  sorting?: "asc" | "desc" | undefined;
175
175
  showTitle?: boolean | undefined;
@@ -177,7 +177,7 @@ export declare const BubblesSettingsSchema: z.ZodObject<{
177
177
  axisLabelsAngle?: 0 | 45 | 90 | undefined;
178
178
  }, {
179
179
  title?: string | undefined;
180
- position?: "left" | "right" | undefined;
180
+ position?: "right" | "left" | undefined;
181
181
  showTicks?: boolean | undefined;
182
182
  sorting?: "asc" | "desc" | undefined;
183
183
  showTitle?: boolean | undefined;
@@ -260,7 +260,7 @@ export declare const BubblesSettingsSchema: z.ZodObject<{
260
260
  title: {
261
261
  name: string;
262
262
  show?: boolean | undefined;
263
- position?: "left" | "center" | "right" | undefined;
263
+ position?: "right" | "left" | "center" | undefined;
264
264
  };
265
265
  valueSize: {
266
266
  type: "column";
@@ -300,7 +300,7 @@ export declare const BubblesSettingsSchema: z.ZodObject<{
300
300
  } | undefined;
301
301
  legend?: {
302
302
  show?: boolean | undefined;
303
- position?: "right" | "inside" | "top" | "bottom" | undefined;
303
+ position?: "right" | "top" | "bottom" | "inside" | undefined;
304
304
  } | undefined;
305
305
  tooltips?: {
306
306
  show?: boolean | undefined;
@@ -329,7 +329,7 @@ export declare const BubblesSettingsSchema: z.ZodObject<{
329
329
  } | undefined;
330
330
  yAxis?: {
331
331
  title?: string | undefined;
332
- position?: "left" | "right" | undefined;
332
+ position?: "right" | "left" | undefined;
333
333
  showTicks?: boolean | undefined;
334
334
  sorting?: "asc" | "desc" | undefined;
335
335
  showTitle?: boolean | undefined;
@@ -354,7 +354,7 @@ export declare const BubblesSettingsSchema: z.ZodObject<{
354
354
  title: {
355
355
  name: string;
356
356
  show?: boolean | undefined;
357
- position?: "left" | "center" | "right" | undefined;
357
+ position?: "right" | "left" | "center" | undefined;
358
358
  };
359
359
  valueSize: {
360
360
  type: "column";
@@ -394,7 +394,7 @@ export declare const BubblesSettingsSchema: z.ZodObject<{
394
394
  } | undefined;
395
395
  legend?: {
396
396
  show?: boolean | undefined;
397
- position?: "right" | "inside" | "top" | "bottom" | undefined;
397
+ position?: "right" | "top" | "bottom" | "inside" | undefined;
398
398
  } | undefined;
399
399
  tooltips?: {
400
400
  show?: boolean | undefined;
@@ -423,7 +423,7 @@ export declare const BubblesSettingsSchema: z.ZodObject<{
423
423
  } | undefined;
424
424
  yAxis?: {
425
425
  title?: string | undefined;
426
- position?: "left" | "right" | undefined;
426
+ position?: "right" | "left" | undefined;
427
427
  showTicks?: boolean | undefined;
428
428
  sorting?: "asc" | "desc" | undefined;
429
429
  showTitle?: boolean | undefined;
@@ -1,7 +1,8 @@
1
+ import { z } from 'zod';
1
2
  import { LassoControlsState, Polygon } from '../scatterplot-umap/types';
2
3
  import { CategoricalAesFromColumn, ContinuousAesFromColumn } from './scatterplot';
3
- import { z } from 'zod';
4
4
  export type DataValue = string | number | null;
5
+ export type Category = string;
5
6
  export declare const DataValueSchema: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodNull]>;
6
7
  export type Row = Record<string, DataValue>;
7
8
  export type Color = string;
@@ -68,7 +69,7 @@ export declare const AesItemSchema: z.ZodObject<{
68
69
  lineColor?: string | undefined;
69
70
  fillColor?: string | undefined;
70
71
  }>;
71
- export declare const AesMapSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
72
+ export declare const AesRecordSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
72
73
  fillColor: z.ZodOptional<z.ZodString>;
73
74
  lineColor: z.ZodOptional<z.ZodString>;
74
75
  lineWidth: z.ZodOptional<z.ZodNumber>;
@@ -93,7 +94,7 @@ export declare const AesMapSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
93
94
  lineColor?: string | undefined;
94
95
  fillColor?: string | undefined;
95
96
  }>>;
96
- export type AesMap = z.infer<typeof AesMapSchema>;
97
+ export type AesRecord = z.infer<typeof AesRecordSchema>;
97
98
  export declare function categoricalAesMappingFromValueSchema<ValueType extends z.ZodTypeAny>(valueSchema: ValueType): z.ZodObject<{
98
99
  columnName: z.ZodObject<{
99
100
  type: z.ZodLiteral<"column">;
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"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"}
@@ -75,7 +75,7 @@ const P = o.object({
75
75
  });
76
76
  export {
77
77
  u as AesItemSchema,
78
- d as AesMapSchema,
78
+ d as AesRecordSchema,
79
79
  P as AxisSettingsSchema,
80
80
  e as ColumnNameSchema,
81
81
  m as DataValueSchema,
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sources":["../../src/types/common.ts"],"sourcesContent":["import type {LassoControlsState, Polygon} from '../scatterplot-umap/types';\nimport type {CategoricalAesFromColumn, ContinuousAesFromColumn} from './scatterplot';\nimport {z} from 'zod';\n\nexport type DataValue = string | number | null;\nexport const DataValueSchema = z.union([z.string(), z.number(), z.null()]);\n\nexport type Row = Record<string, DataValue>\n\nexport type Color = string;\n\n// numbered according ggplot2 symbols, 19 (third size of black circle) is missed\nexport const POINT_SHAPE = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n '10',\n '11',\n '12',\n '13',\n '14',\n '15',\n '16',\n '17',\n '18',\n '20',\n '21',\n '22',\n '23',\n '24',\n '25',\n] as const;\nexport const PointShapeSchema = z.enum(POINT_SHAPE);\nexport type PointShape = z.infer<typeof PointShapeSchema>;\n\nconst LINE_SHAPE = ['solid', 'dashed', 'dotted', 'dotdash', 'longdash', 'twodash'] as const;\nexport const LineShapeSchema = z.enum(LINE_SHAPE);\nexport type LineShape = z.infer<typeof LineShapeSchema>;\n\nconst FRAME_TYPE = ['left', 'bottom', 'left-bottom', 'full', 'empty'] as const;\nexport const FrameTypeSchema = z.enum(FRAME_TYPE);\nexport type FrameType = z.infer<typeof FrameTypeSchema>;\n\nconst LEGEND_POSITION = ['inside', 'right', 'top', 'bottom'] as const;\nexport const LegendPositionSchema = z.enum(LEGEND_POSITION);\nexport type LegendPosition = z.infer<typeof LegendPositionSchema>;\n\nexport const TITLE_POSITION = ['left', 'center', 'right'] as const;\nexport const TitlePositionSchema = z.enum(TITLE_POSITION);\nexport type TitlePosition = z.infer<typeof TitlePositionSchema>;\n\nexport const ColumnNameSchema = z.object({\n type: z.literal('column'),\n value: z.string(),\n label: z.optional(z.string()),\n valueLabels: z.optional(z.string())\n});\nexport type ColumnName = z.infer<typeof ColumnNameSchema>\n\nexport type AesItem = {\n fillColor?: Color;\n lineColor?: Color;\n lineWidth?: number;\n lineShape?: LineShape;\n dotShape?: PointShape;\n dotSize?: number;\n dotFill?: Color;\n};\nexport const AesItemSchema = z.object({\n fillColor: z.optional(z.string()),\n lineColor: z.optional(z.string()),\n lineWidth: z.optional(z.number()),\n lineShape: z.optional(LineShapeSchema),\n dotShape: z.optional(PointShapeSchema),\n dotSize: z.optional(z.number()),\n dotFill: z.optional(z.string()),\n});\n\nexport const AesMapSchema = z.record(AesItemSchema);\nexport type AesMap = z.infer<typeof AesMapSchema>;\n\nexport function categoricalAesMappingFromValueSchema<ValueType extends z.ZodTypeAny>(\n valueSchema: ValueType,\n) {\n return z.object({\n columnName: ColumnNameSchema,\n valuesMap: z.record(valueSchema),\n });\n}\nexport function continuousAesMappingFromValueSchema<ValueType extends z.ZodTypeAny>(\n valueSchema: ValueType,\n) {\n return z.object({\n columnName: ColumnNameSchema,\n domain: z.array(z.number()),\n range: z.array(valueSchema),\n type: z.optional(z.union([z.literal('linear'), z.literal('log')]))\n });\n}\n\nexport function isCategoricalAes<InputType extends string | number | PointShape | LineShape>(\n item: InputType | CategoricalAesFromColumn<InputType> | ContinuousAesFromColumn<InputType> | unknown\n): item is CategoricalAesFromColumn<InputType> {\n if (typeof item !== 'object') {\n return false;\n }\n return item !== null && 'valuesMap' in item;\n}\n\nexport function isContinuousAes<InputType extends string | number | PointShape | LineShape>(\n item: InputType | CategoricalAesFromColumn<InputType> | ContinuousAesFromColumn<InputType> | unknown\n): item is ContinuousAesFromColumn<InputType> {\n if (typeof item !== 'object') {\n return false;\n }\n return item !== null && 'domain' in item && 'range' in item;\n}\n\nexport type AxisSettings = {\n title?: string | ColumnName;\n scale?: 'linear' | 'log';\n showGrid?: boolean;\n // for discrete X axis - lines between groups, to improve groups recognizing\n linesBetweenCategories?: boolean;\n showTicks?: boolean;\n labelsPosition?: 'center' | '45deg' | '90deg';\n significantLines?: number[],\n significantLinesStyle?: LineShape,\n symmetricRange?: number // to get some value perfectly in the middle of axis\n upperValue?: number // limits\n lowerValue?: number\n};\n\nexport const AxisSettingsSchema = z.object({\n title: z.optional(z.union([z.string(), ColumnNameSchema])),\n scale: z.optional(z.union([z.literal('linear'), z.literal('log')])),\n showGrid: z.optional(z.boolean()),\n linesBetweenCategories: z.optional(z.boolean()),\n showTicks: z.optional(z.boolean()),\n labelsPosition: z.optional(z.union([z.literal('center'), z.literal('45deg'), z.literal('90deg')])),\n significantLines: z.optional(z.array(z.number())),\n significantLinesStyle: z.optional(LineShapeSchema),\n symmetricRange: z.optional(z.number()),\n upperValue: z.optional(z.number()),\n lowerValue: z.optional(z.number()),\n hiddenLabels: z.optional(z.boolean())\n});\n\nexport interface SettingsInterface {\n type: string;\n}\n\nexport type ClickEventData = {\n x: number;\n y: number;\n info: unknown;\n}\n\nexport type PolygonData = [number, number][];\n\nexport type ChartEventHandlers<T> = T;\nexport type DendroEventHandlers = ChartEventHandlers<[(d:ClickEventData) => void]>\nexport type ScatterplotEventHandlers = ChartEventHandlers<{\n onPolygonUpdate: (d:number[], p: Polygon[]) => void;\n onTooltipHintSwitch: (d:boolean) => void;\n onLassoStateChange: () => void;\n onLassoControlsStateUpdate: (v:LassoControlsState) => void;\n}>\nexport type BubbleEventHandlers = ChartEventHandlers<[(d:boolean) => void]>\nexport type DiscreteEventHandlers = ChartEventHandlers<[(d:boolean) => void]>\nexport type HeatmapEventHandlers = ChartEventHandlers<[(d:boolean) => void]>\nexport type HistogramEventHandlers = ChartEventHandlers<[(d:boolean) => void]>"],"names":["DataValueSchema","z","POINT_SHAPE","PointShapeSchema","LINE_SHAPE","LineShapeSchema","FRAME_TYPE","FrameTypeSchema","LEGEND_POSITION","LegendPositionSchema","TITLE_POSITION","TitlePositionSchema","ColumnNameSchema","AesItemSchema","AesMapSchema","categoricalAesMappingFromValueSchema","valueSchema","continuousAesMappingFromValueSchema","isCategoricalAes","item","isContinuousAes","AxisSettingsSchema"],"mappings":";AAKO,MAAMA,IAAkBC,EAAE,MAAM,CAACA,EAAE,UAAUA,EAAE,OAAA,GAAUA,EAAE,KAAA,CAAM,CAAC,GAO5DC,IAAc;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GACaC,IAAmBF,EAAE,KAAKC,CAAW,GAG5CE,IAAa,CAAC,SAAS,UAAU,UAAU,WAAW,YAAY,SAAS,GACpEC,IAAkBJ,EAAE,KAAKG,CAAU,GAG1CE,IAAa,CAAC,QAAQ,UAAU,eAAe,QAAQ,OAAO,GACvDC,IAAkBN,EAAE,KAAKK,CAAU,GAG1CE,IAAkB,CAAC,UAAU,SAAS,OAAO,QAAQ,GAC9CC,IAAuBR,EAAE,KAAKO,CAAe,GAG7CE,IAAiB,CAAC,QAAQ,UAAU,OAAO,GAC3CC,IAAsBV,EAAE,KAAKS,CAAc,GAG3CE,IAAmBX,EAAE,OAAO;AAAA,EACrC,MAAMA,EAAE,QAAQ,QAAQ;AAAA,EACxB,OAAOA,EAAE,OAAA;AAAA,EACT,OAAOA,EAAE,SAASA,EAAE,QAAQ;AAAA,EAC5B,aAAaA,EAAE,SAASA,EAAE,QAAQ;AACtC,CAAC,GAYYY,IAAgBZ,EAAE,OAAO;AAAA,EAClC,WAAWA,EAAE,SAASA,EAAE,QAAQ;AAAA,EAChC,WAAWA,EAAE,SAASA,EAAE,QAAQ;AAAA,EAChC,WAAWA,EAAE,SAASA,EAAE,QAAQ;AAAA,EAChC,WAAWA,EAAE,SAASI,CAAe;AAAA,EACrC,UAAUJ,EAAE,SAASE,CAAgB;AAAA,EACrC,SAASF,EAAE,SAASA,EAAE,QAAQ;AAAA,EAC9B,SAASA,EAAE,SAASA,EAAE,QAAQ;AAClC,CAAC,GAEYa,IAAeb,EAAE,OAAOY,CAAa;AAG3C,SAASE,EACZC,GACF;AACE,SAAOf,EAAE,OAAO;AAAA,IACZ,YAAYW;AAAA,IACZ,WAAWX,EAAE,OAAOe,CAAW;AAAA,EAAA,CAClC;AACL;AACO,SAASC,EACZD,GACF;AACE,SAAOf,EAAE,OAAO;AAAA,IACZ,YAAYW;AAAA,IACZ,QAAQX,EAAE,MAAMA,EAAE,QAAQ;AAAA,IAC1B,OAAOA,EAAE,MAAMe,CAAW;AAAA,IAC1B,MAAMf,EAAE,SAASA,EAAE,MAAM,CAACA,EAAE,QAAQ,QAAQ,GAAGA,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC;AAAA,EAAA,CACpE;AACL;AAEO,SAASiB,EACZC,GAC2C;AAC3C,SAAI,OAAOA,KAAS,WACT,KAEJA,MAAS,QAAQ,eAAeA;AAC3C;AAEO,SAASC,EACZD,GAC0C;AAC1C,SAAI,OAAOA,KAAS,WACT,KAEJA,MAAS,QAAQ,YAAYA,KAAQ,WAAWA;AAC3D;AAiBO,MAAME,IAAqBpB,EAAE,OAAO;AAAA,EACvC,OAAOA,EAAE,SAASA,EAAE,MAAM,CAACA,EAAE,OAAA,GAAUW,CAAgB,CAAC,CAAC;AAAA,EACzD,OAAOX,EAAE,SAASA,EAAE,MAAM,CAACA,EAAE,QAAQ,QAAQ,GAAGA,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC;AAAA,EAClE,UAAUA,EAAE,SAASA,EAAE,SAAS;AAAA,EAChC,wBAAwBA,EAAE,SAASA,EAAE,SAAS;AAAA,EAC9C,WAAWA,EAAE,SAASA,EAAE,SAAS;AAAA,EACjC,gBAAgBA,EAAE,SAASA,EAAE,MAAM,CAACA,EAAE,QAAQ,QAAQ,GAAGA,EAAE,QAAQ,OAAO,GAAGA,EAAE,QAAQ,OAAO,CAAC,CAAC,CAAC;AAAA,EACjG,kBAAkBA,EAAE,SAASA,EAAE,MAAMA,EAAE,OAAA,CAAQ,CAAC;AAAA,EAChD,uBAAuBA,EAAE,SAASI,CAAe;AAAA,EACjD,gBAAgBJ,EAAE,SAASA,EAAE,QAAQ;AAAA,EACrC,YAAYA,EAAE,SAASA,EAAE,QAAQ;AAAA,EACjC,YAAYA,EAAE,SAASA,EAAE,QAAQ;AAAA,EACjC,cAAcA,EAAE,SAASA,EAAE,SAAS;AACxC,CAAC;"}
1
+ {"version":3,"file":"common.js","sources":["../../src/types/common.ts"],"sourcesContent":["import { z } from 'zod';\nimport type { LassoControlsState, Polygon } from '../scatterplot-umap/types';\nimport type { CategoricalAesFromColumn, ContinuousAesFromColumn } from './scatterplot';\n\nexport type DataValue = string | number | null;\nexport type Category = string;\nexport const DataValueSchema = z.union([z.string(), z.number(), z.null()]);\n\nexport type Row = Record<string, DataValue>\n\nexport type Color = string;\n\n// numbered according ggplot2 symbols, 19 (third size of black circle) is missed\nexport const POINT_SHAPE = [\n '0',\n '1',\n '2',\n '3',\n '4',\n '5',\n '6',\n '7',\n '8',\n '9',\n '10',\n '11',\n '12',\n '13',\n '14',\n '15',\n '16',\n '17',\n '18',\n '20',\n '21',\n '22',\n '23',\n '24',\n '25',\n] as const;\nexport const PointShapeSchema = z.enum(POINT_SHAPE);\nexport type PointShape = z.infer<typeof PointShapeSchema>;\n\nconst LINE_SHAPE = ['solid', 'dashed', 'dotted', 'dotdash', 'longdash', 'twodash'] as const;\nexport const LineShapeSchema = z.enum(LINE_SHAPE);\nexport type LineShape = z.infer<typeof LineShapeSchema>;\n\nconst FRAME_TYPE = ['left', 'bottom', 'left-bottom', 'full', 'empty'] as const;\nexport const FrameTypeSchema = z.enum(FRAME_TYPE);\nexport type FrameType = z.infer<typeof FrameTypeSchema>;\n\nconst LEGEND_POSITION = ['inside', 'right', 'top', 'bottom'] as const;\nexport const LegendPositionSchema = z.enum(LEGEND_POSITION);\nexport type LegendPosition = z.infer<typeof LegendPositionSchema>;\n\nexport const TITLE_POSITION = ['left', 'center', 'right'] as const;\nexport const TitlePositionSchema = z.enum(TITLE_POSITION);\nexport type TitlePosition = z.infer<typeof TitlePositionSchema>;\n\nexport const ColumnNameSchema = z.object({\n type: z.literal('column'),\n value: z.string(),\n label: z.optional(z.string()),\n valueLabels: z.optional(z.string())\n});\nexport type ColumnName = z.infer<typeof ColumnNameSchema>\n\nexport type AesItem = {\n fillColor?: Color;\n lineColor?: Color;\n lineWidth?: number;\n lineShape?: LineShape;\n dotShape?: PointShape;\n dotSize?: number;\n dotFill?: Color;\n};\nexport const AesItemSchema = z.object({\n fillColor: z.optional(z.string()),\n lineColor: z.optional(z.string()),\n lineWidth: z.optional(z.number()),\n lineShape: z.optional(LineShapeSchema),\n dotShape: z.optional(PointShapeSchema),\n dotSize: z.optional(z.number()),\n dotFill: z.optional(z.string()),\n});\n\nexport const AesRecordSchema = z.record(AesItemSchema);\nexport type AesRecord = z.infer<typeof AesRecordSchema>;\n\nexport function categoricalAesMappingFromValueSchema<ValueType extends z.ZodTypeAny>(\n valueSchema: ValueType,\n) {\n return z.object({\n columnName: ColumnNameSchema,\n valuesMap: z.record(valueSchema),\n });\n}\nexport function continuousAesMappingFromValueSchema<ValueType extends z.ZodTypeAny>(\n valueSchema: ValueType,\n) {\n return z.object({\n columnName: ColumnNameSchema,\n domain: z.array(z.number()),\n range: z.array(valueSchema),\n type: z.optional(z.union([z.literal('linear'), z.literal('log')]))\n });\n}\n\nexport function isCategoricalAes<InputType extends string | number | PointShape | LineShape>(\n item: InputType | CategoricalAesFromColumn<InputType> | ContinuousAesFromColumn<InputType> | unknown\n): item is CategoricalAesFromColumn<InputType> {\n if (typeof item !== 'object') {\n return false;\n }\n return item !== null && 'valuesMap' in item;\n}\n\nexport function isContinuousAes<InputType extends string | number | PointShape | LineShape>(\n item: InputType | CategoricalAesFromColumn<InputType> | ContinuousAesFromColumn<InputType> | unknown\n): item is ContinuousAesFromColumn<InputType> {\n if (typeof item !== 'object') {\n return false;\n }\n return item !== null && 'domain' in item && 'range' in item;\n}\n\nexport type AxisSettings = {\n title?: string | ColumnName;\n scale?: 'linear' | 'log';\n showGrid?: boolean;\n // for discrete X axis - lines between groups, to improve groups recognizing\n linesBetweenCategories?: boolean;\n showTicks?: boolean;\n labelsPosition?: 'center' | '45deg' | '90deg';\n significantLines?: number[],\n significantLinesStyle?: LineShape,\n symmetricRange?: number // to get some value perfectly in the middle of axis\n upperValue?: number // limits\n lowerValue?: number\n};\n\nexport const AxisSettingsSchema = z.object({\n title: z.optional(z.union([z.string(), ColumnNameSchema])),\n scale: z.optional(z.union([z.literal('linear'), z.literal('log')])),\n showGrid: z.optional(z.boolean()),\n linesBetweenCategories: z.optional(z.boolean()),\n showTicks: z.optional(z.boolean()),\n labelsPosition: z.optional(z.union([z.literal('center'), z.literal('45deg'), z.literal('90deg')])),\n significantLines: z.optional(z.array(z.number())),\n significantLinesStyle: z.optional(LineShapeSchema),\n symmetricRange: z.optional(z.number()),\n upperValue: z.optional(z.number()),\n lowerValue: z.optional(z.number()),\n hiddenLabels: z.optional(z.boolean())\n});\n\nexport interface SettingsInterface {\n type: string;\n}\n\nexport type ClickEventData = {\n x: number;\n y: number;\n info: unknown;\n}\n\nexport type PolygonData = [number, number][];\n\nexport type ChartEventHandlers<T> = T;\nexport type DendroEventHandlers = ChartEventHandlers<[(d:ClickEventData) => void]>\nexport type ScatterplotEventHandlers = ChartEventHandlers<{\n onPolygonUpdate: (d:number[], p: Polygon[]) => void;\n onTooltipHintSwitch: (d:boolean) => void;\n onLassoStateChange: () => void;\n onLassoControlsStateUpdate: (v:LassoControlsState) => void;\n}>\nexport type BubbleEventHandlers = ChartEventHandlers<[(d:boolean) => void]>\nexport type DiscreteEventHandlers = ChartEventHandlers<[(d:boolean) => void]>\nexport type HeatmapEventHandlers = ChartEventHandlers<[(d:boolean) => void]>\nexport type HistogramEventHandlers = ChartEventHandlers<[(d:boolean) => void]>"],"names":["DataValueSchema","z","POINT_SHAPE","PointShapeSchema","LINE_SHAPE","LineShapeSchema","FRAME_TYPE","FrameTypeSchema","LEGEND_POSITION","LegendPositionSchema","TITLE_POSITION","TitlePositionSchema","ColumnNameSchema","AesItemSchema","AesRecordSchema","categoricalAesMappingFromValueSchema","valueSchema","continuousAesMappingFromValueSchema","isCategoricalAes","item","isContinuousAes","AxisSettingsSchema"],"mappings":"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"}