@milaboratories/miplots4 1.0.172 → 1.0.174

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 (400) hide show
  1. package/dist/AbstractChart.d.ts +1 -0
  2. package/dist/AbstractChart.d.ts.map +1 -0
  3. package/dist/DataFrame.d.ts +1 -0
  4. package/dist/DataFrame.d.ts.map +1 -0
  5. package/dist/MiPlots.d.ts +1 -0
  6. package/dist/MiPlots.d.ts.map +1 -0
  7. package/dist/bubble/BubbleSettingsImpl.d.ts +1 -0
  8. package/dist/bubble/BubbleSettingsImpl.d.ts.map +1 -0
  9. package/dist/bubble/ChartRenderer.d.ts +1 -0
  10. package/dist/bubble/ChartRenderer.d.ts.map +1 -0
  11. package/dist/bubble/components/AxisCaptions.d.ts +1 -0
  12. package/dist/bubble/components/AxisCaptions.d.ts.map +1 -0
  13. package/dist/bubble/components/Chart.d.ts +1 -0
  14. package/dist/bubble/components/Chart.d.ts.map +1 -0
  15. package/dist/bubble/components/ChartsGroup.d.ts +1 -0
  16. package/dist/bubble/components/ChartsGroup.d.ts.map +1 -0
  17. package/dist/bubble/components/types.d.ts +1 -0
  18. package/dist/bubble/components/types.d.ts.map +1 -0
  19. package/dist/bubble/constants.d.ts +1 -0
  20. package/dist/bubble/constants.d.ts.map +1 -0
  21. package/dist/bubble/getCellTooltip.d.ts +1 -0
  22. package/dist/bubble/getCellTooltip.d.ts.map +1 -0
  23. package/dist/bubble/getGroupedCellsData.d.ts +1 -0
  24. package/dist/bubble/getGroupedCellsData.d.ts.map +1 -0
  25. package/dist/bubble/index.d.ts +1 -0
  26. package/dist/bubble/index.d.ts.map +1 -0
  27. package/dist/bubble/utils/calculateCaptionTails.d.ts +1 -0
  28. package/dist/bubble/utils/calculateCaptionTails.d.ts.map +1 -0
  29. package/dist/bubble/utils/calculateChartSideElementSizes.d.ts +1 -0
  30. package/dist/bubble/utils/calculateChartSideElementSizes.d.ts.map +1 -0
  31. package/dist/bubble/utils/calculateSideElementsBBoxes.d.ts +1 -0
  32. package/dist/bubble/utils/calculateSideElementsBBoxes.d.ts.map +1 -0
  33. package/dist/bubble/utils/index.d.ts +1 -0
  34. package/dist/bubble/utils/index.d.ts.map +1 -0
  35. package/dist/common/BandAxis.d.ts +1 -0
  36. package/dist/common/BandAxis.d.ts.map +1 -0
  37. package/dist/common/ChartsTitle.d.ts +1 -0
  38. package/dist/common/ChartsTitle.d.ts.map +1 -0
  39. package/dist/common/ContinuousAxis.d.ts +1 -0
  40. package/dist/common/ContinuousAxis.d.ts.map +1 -0
  41. package/dist/common/ContinuousGrid.d.ts +1 -0
  42. package/dist/common/ContinuousGrid.d.ts.map +1 -0
  43. package/dist/common/Error.d.ts +1 -0
  44. package/dist/common/Error.d.ts.map +1 -0
  45. package/dist/common/ErrorBoundary.d.ts +1 -0
  46. package/dist/common/ErrorBoundary.d.ts.map +1 -0
  47. package/dist/common/Legend.d.ts +1 -0
  48. package/dist/common/Legend.d.ts.map +1 -0
  49. package/dist/common/Tooltip.d.ts +1 -0
  50. package/dist/common/Tooltip.d.ts.map +1 -0
  51. package/dist/common/fonts.d.ts +1 -0
  52. package/dist/common/fonts.d.ts.map +1 -0
  53. package/dist/common/types.d.ts +1 -0
  54. package/dist/common/types.d.ts.map +1 -0
  55. package/dist/common/useDataFrame.d.ts +1 -0
  56. package/dist/common/useDataFrame.d.ts.map +1 -0
  57. package/dist/constants.d.ts +1 -0
  58. package/dist/constants.d.ts.map +1 -0
  59. package/dist/dendro/ChartRenderer.d.ts +1 -0
  60. package/dist/dendro/ChartRenderer.d.ts.map +1 -0
  61. package/dist/dendro/DendroSettingsImpl.d.ts +1 -0
  62. package/dist/dendro/DendroSettingsImpl.d.ts.map +1 -0
  63. package/dist/dendro/components/Chart.d.ts +1 -0
  64. package/dist/dendro/components/Chart.d.ts.map +1 -0
  65. package/dist/dendro/components/Heatmap.d.ts +1 -0
  66. package/dist/dendro/components/Heatmap.d.ts.map +1 -0
  67. package/dist/dendro/components/Legend.d.ts +1 -0
  68. package/dist/dendro/components/Legend.d.ts.map +1 -0
  69. package/dist/dendro/components/LinksGroup.d.ts +1 -0
  70. package/dist/dendro/components/LinksGroup.d.ts.map +1 -0
  71. package/dist/dendro/components/NodesGroup.d.ts +1 -0
  72. package/dist/dendro/components/NodesGroup.d.ts.map +1 -0
  73. package/dist/dendro/components/types.d.ts +1 -0
  74. package/dist/dendro/components/types.d.ts.map +1 -0
  75. package/dist/dendro/constants.d.ts +1 -0
  76. package/dist/dendro/constants.d.ts.map +1 -0
  77. package/dist/dendro/getHeatmapData.d.ts +1 -0
  78. package/dist/dendro/getHeatmapData.d.ts.map +1 -0
  79. package/dist/dendro/getHierarchyData.d.ts +1 -0
  80. package/dist/dendro/getHierarchyData.d.ts.map +1 -0
  81. package/dist/dendro/index.d.ts +1 -0
  82. package/dist/dendro/index.d.ts.map +1 -0
  83. package/dist/discrete/ChartRenderer.d.ts +1 -0
  84. package/dist/discrete/ChartRenderer.d.ts.map +1 -0
  85. package/dist/discrete/DiscreteSettingsImpl.d.ts +1 -0
  86. package/dist/discrete/DiscreteSettingsImpl.d.ts.map +1 -0
  87. package/dist/discrete/components/Chart.d.ts +1 -0
  88. package/dist/discrete/components/Chart.d.ts.map +1 -0
  89. package/dist/discrete/components/ChartsGroup.d.ts +1 -0
  90. package/dist/discrete/components/ChartsGroup.d.ts.map +1 -0
  91. package/dist/discrete/components/Grid.d.ts +1 -0
  92. package/dist/discrete/components/Grid.d.ts.map +1 -0
  93. package/dist/discrete/components/NumberAxis.d.ts +1 -0
  94. package/dist/discrete/components/NumberAxis.d.ts.map +1 -0
  95. package/dist/discrete/components/layers/BarElement.d.ts +1 -0
  96. package/dist/discrete/components/layers/BarElement.d.ts.map +1 -0
  97. package/dist/discrete/components/layers/BinnedDotsElement.d.ts +1 -0
  98. package/dist/discrete/components/layers/BinnedDotsElement.d.ts.map +1 -0
  99. package/dist/discrete/components/layers/BoxElement.d.ts +1 -0
  100. package/dist/discrete/components/layers/BoxElement.d.ts.map +1 -0
  101. package/dist/discrete/components/layers/DotsGroupElement.d.ts +1 -0
  102. package/dist/discrete/components/layers/DotsGroupElement.d.ts.map +1 -0
  103. package/dist/discrete/components/layers/ErrorBarElement.d.ts +1 -0
  104. package/dist/discrete/components/layers/ErrorBarElement.d.ts.map +1 -0
  105. package/dist/discrete/components/layers/LineElement.d.ts +1 -0
  106. package/dist/discrete/components/layers/LineElement.d.ts.map +1 -0
  107. package/dist/discrete/components/layers/LogoElement.d.ts +1 -0
  108. package/dist/discrete/components/layers/LogoElement.d.ts.map +1 -0
  109. package/dist/discrete/components/layers/PairedPointsElement.d.ts +1 -0
  110. package/dist/discrete/components/layers/PairedPointsElement.d.ts.map +1 -0
  111. package/dist/discrete/components/layers/SinaElement.d.ts +1 -0
  112. package/dist/discrete/components/layers/SinaElement.d.ts.map +1 -0
  113. package/dist/discrete/components/layers/StackedAreaElement.d.ts +1 -0
  114. package/dist/discrete/components/layers/StackedAreaElement.d.ts.map +1 -0
  115. package/dist/discrete/components/layers/StackedBarElement.d.ts +1 -0
  116. package/dist/discrete/components/layers/StackedBarElement.d.ts.map +1 -0
  117. package/dist/discrete/components/layers/StatsPValue.d.ts +1 -0
  118. package/dist/discrete/components/layers/StatsPValue.d.ts.map +1 -0
  119. package/dist/discrete/components/layers/ViolinElement.d.ts +1 -0
  120. package/dist/discrete/components/layers/ViolinElement.d.ts.map +1 -0
  121. package/dist/discrete/components/layers/seqAlphabet.d.ts +1 -0
  122. package/dist/discrete/components/layers/seqAlphabet.d.ts.map +1 -0
  123. package/dist/discrete/components/types.d.ts +1 -0
  124. package/dist/discrete/components/types.d.ts.map +1 -0
  125. package/dist/discrete/constants.d.ts +1 -0
  126. package/dist/discrete/constants.d.ts.map +1 -0
  127. package/dist/discrete/index.d.ts +1 -0
  128. package/dist/discrete/index.d.ts.map +1 -0
  129. package/dist/discrete/index.js +129 -123
  130. package/dist/discrete/index.js.map +1 -1
  131. package/dist/discrete/layers/bar.d.ts +1 -0
  132. package/dist/discrete/layers/bar.d.ts.map +1 -0
  133. package/dist/discrete/layers/binnedDots.d.ts +1 -0
  134. package/dist/discrete/layers/binnedDots.d.ts.map +1 -0
  135. package/dist/discrete/layers/boxes.d.ts +1 -0
  136. package/dist/discrete/layers/boxes.d.ts.map +1 -0
  137. package/dist/discrete/layers/dots.d.ts +1 -0
  138. package/dist/discrete/layers/dots.d.ts.map +1 -0
  139. package/dist/discrete/layers/errorbars.d.ts +1 -0
  140. package/dist/discrete/layers/errorbars.d.ts.map +1 -0
  141. package/dist/discrete/layers/index.d.ts +1 -0
  142. package/dist/discrete/layers/index.d.ts.map +1 -0
  143. package/dist/discrete/layers/lines.d.ts +1 -0
  144. package/dist/discrete/layers/lines.d.ts.map +1 -0
  145. package/dist/discrete/layers/logo.d.ts +1 -0
  146. package/dist/discrete/layers/logo.d.ts.map +1 -0
  147. package/dist/discrete/layers/pairedPoints.d.ts +1 -0
  148. package/dist/discrete/layers/pairedPoints.d.ts.map +1 -0
  149. package/dist/discrete/layers/sina.d.ts +1 -0
  150. package/dist/discrete/layers/sina.d.ts.map +1 -0
  151. package/dist/discrete/layers/stackedArea.d.ts +1 -0
  152. package/dist/discrete/layers/stackedArea.d.ts.map +1 -0
  153. package/dist/discrete/layers/stackedBar.d.ts +1 -0
  154. package/dist/discrete/layers/stackedBar.d.ts.map +1 -0
  155. package/dist/discrete/layers/stats/MannWhitneyU.d.ts +1 -0
  156. package/dist/discrete/layers/stats/MannWhitneyU.d.ts.map +1 -0
  157. package/dist/discrete/layers/stats/index.d.ts +1 -0
  158. package/dist/discrete/layers/stats/index.d.ts.map +1 -0
  159. package/dist/discrete/layers/stats/pValueCalculation.d.ts +1 -0
  160. package/dist/discrete/layers/stats/pValueCalculation.d.ts.map +1 -0
  161. package/dist/discrete/layers/stats/pValueCorrection.d.ts +1 -0
  162. package/dist/discrete/layers/stats/pValueCorrection.d.ts.map +1 -0
  163. package/dist/discrete/layers/types.d.ts +1 -0
  164. package/dist/discrete/layers/types.d.ts.map +1 -0
  165. package/dist/discrete/layers/violins.d.ts +1 -0
  166. package/dist/discrete/layers/violins.d.ts.map +1 -0
  167. package/dist/discrete/utils/getChartStatsPadding.d.ts +1 -0
  168. package/dist/discrete/utils/getChartStatsPadding.d.ts.map +1 -0
  169. package/dist/discrete/utils/getFacetLabels.d.ts +1 -0
  170. package/dist/discrete/utils/getFacetLabels.d.ts.map +1 -0
  171. package/dist/discrete/utils/getFacetStringKey.d.ts +1 -0
  172. package/dist/discrete/utils/getFacetStringKey.d.ts.map +1 -0
  173. package/dist/discrete/utils/getOutliersBounds.d.ts +1 -0
  174. package/dist/discrete/utils/getOutliersBounds.d.ts.map +1 -0
  175. package/dist/discrete/utils/index.d.ts +1 -0
  176. package/dist/discrete/utils/index.d.ts.map +1 -0
  177. package/dist/discrete/utils/statsPValue.d.ts +1 -0
  178. package/dist/discrete/utils/statsPValue.d.ts.map +1 -0
  179. package/dist/heatmap/ChartRenderer.d.ts +1 -0
  180. package/dist/heatmap/ChartRenderer.d.ts.map +1 -0
  181. package/dist/heatmap/HeatmapSettingsImpl.d.ts +1 -0
  182. package/dist/heatmap/HeatmapSettingsImpl.d.ts.map +1 -0
  183. package/dist/heatmap/components/Annotations/Annotation.d.ts +1 -0
  184. package/dist/heatmap/components/Annotations/Annotation.d.ts.map +1 -0
  185. package/dist/heatmap/components/Annotations/AnnotationCellsCanvas.d.ts +1 -0
  186. package/dist/heatmap/components/Annotations/AnnotationCellsCanvas.d.ts.map +1 -0
  187. package/dist/heatmap/components/Annotations/AnnotationCellsSvg.d.ts +1 -0
  188. package/dist/heatmap/components/Annotations/AnnotationCellsSvg.d.ts.map +1 -0
  189. package/dist/heatmap/components/Annotations/index.d.ts +1 -0
  190. package/dist/heatmap/components/Annotations/index.d.ts.map +1 -0
  191. package/dist/heatmap/components/CanvasCells.d.ts +1 -0
  192. package/dist/heatmap/components/CanvasCells.d.ts.map +1 -0
  193. package/dist/heatmap/components/Captions/AxisCaptions.d.ts +1 -0
  194. package/dist/heatmap/components/Captions/AxisCaptions.d.ts.map +1 -0
  195. package/dist/heatmap/components/Captions/GroupCaptions.d.ts +1 -0
  196. package/dist/heatmap/components/Captions/GroupCaptions.d.ts.map +1 -0
  197. package/dist/heatmap/components/Captions/index.d.ts +1 -0
  198. package/dist/heatmap/components/Captions/index.d.ts.map +1 -0
  199. package/dist/heatmap/components/Chart.d.ts +1 -0
  200. package/dist/heatmap/components/Chart.d.ts.map +1 -0
  201. package/dist/heatmap/components/ChartsGroup.d.ts +1 -0
  202. package/dist/heatmap/components/ChartsGroup.d.ts.map +1 -0
  203. package/dist/heatmap/components/Dendrograms.d.ts +1 -0
  204. package/dist/heatmap/components/Dendrograms.d.ts.map +1 -0
  205. package/dist/heatmap/components/Frames.d.ts +1 -0
  206. package/dist/heatmap/components/Frames.d.ts.map +1 -0
  207. package/dist/heatmap/components/SvgCells.d.ts +1 -0
  208. package/dist/heatmap/components/SvgCells.d.ts.map +1 -0
  209. package/dist/heatmap/components/tooltipUtils.d.ts +1 -0
  210. package/dist/heatmap/components/tooltipUtils.d.ts.map +1 -0
  211. package/dist/heatmap/components/types.d.ts +1 -0
  212. package/dist/heatmap/components/types.d.ts.map +1 -0
  213. package/dist/heatmap/constants.d.ts +1 -0
  214. package/dist/heatmap/constants.d.ts.map +1 -0
  215. package/dist/heatmap/fillCellsData.d.ts +1 -0
  216. package/dist/heatmap/fillCellsData.d.ts.map +1 -0
  217. package/dist/heatmap/fillCellsData.js +106 -106
  218. package/dist/heatmap/fillCellsData.js.map +1 -1
  219. package/dist/heatmap/getCells.d.ts +1 -0
  220. package/dist/heatmap/getCells.d.ts.map +1 -0
  221. package/dist/heatmap/getClusters.d.ts +1 -0
  222. package/dist/heatmap/getClusters.d.ts.map +1 -0
  223. package/dist/heatmap/getDendrograms.d.ts +1 -0
  224. package/dist/heatmap/getDendrograms.d.ts.map +1 -0
  225. package/dist/heatmap/index.d.ts +1 -0
  226. package/dist/heatmap/index.d.ts.map +1 -0
  227. package/dist/heatmap/utils/calculateAnnotationTitleSizes.d.ts +1 -0
  228. package/dist/heatmap/utils/calculateAnnotationTitleSizes.d.ts.map +1 -0
  229. package/dist/heatmap/utils/calculateCaptionTails.d.ts +1 -0
  230. package/dist/heatmap/utils/calculateCaptionTails.d.ts.map +1 -0
  231. package/dist/heatmap/utils/calculateChartSideElementSizes.d.ts +1 -0
  232. package/dist/heatmap/utils/calculateChartSideElementSizes.d.ts.map +1 -0
  233. package/dist/heatmap/utils/calculateSideElementsBBoxes.d.ts +1 -0
  234. package/dist/heatmap/utils/calculateSideElementsBBoxes.d.ts.map +1 -0
  235. package/dist/heatmap/utils/createColorScales.d.ts +1 -0
  236. package/dist/heatmap/utils/createColorScales.d.ts.map +1 -0
  237. package/dist/heatmap/utils/index.d.ts +1 -0
  238. package/dist/heatmap/utils/index.d.ts.map +1 -0
  239. package/dist/histogram/ChartRenderer.d.ts +1 -0
  240. package/dist/histogram/ChartRenderer.d.ts.map +1 -0
  241. package/dist/histogram/HistogramSettingsImpl.d.ts +1 -0
  242. package/dist/histogram/HistogramSettingsImpl.d.ts.map +1 -0
  243. package/dist/histogram/components/Chart.d.ts +1 -0
  244. package/dist/histogram/components/Chart.d.ts.map +1 -0
  245. package/dist/histogram/components/Chart.js +53 -53
  246. package/dist/histogram/components/Chart.js.map +1 -1
  247. package/dist/histogram/components/ChartsGroup.d.ts +1 -0
  248. package/dist/histogram/components/ChartsGroup.d.ts.map +1 -0
  249. package/dist/histogram/components/types.d.ts +1 -0
  250. package/dist/histogram/components/types.d.ts.map +1 -0
  251. package/dist/histogram/constants.d.ts +1 -0
  252. package/dist/histogram/constants.d.ts.map +1 -0
  253. package/dist/histogram/getHistogramData.d.ts +1 -0
  254. package/dist/histogram/getHistogramData.d.ts.map +1 -0
  255. package/dist/histogram/getHistogramData.js +46 -46
  256. package/dist/histogram/getHistogramData.js.map +1 -1
  257. package/dist/histogram/index.d.ts +1 -0
  258. package/dist/histogram/index.d.ts.map +1 -0
  259. package/dist/histogram/index.js +61 -61
  260. package/dist/histogram/index.js.map +1 -1
  261. package/dist/index.d.ts +1 -0
  262. package/dist/index.d.ts.map +1 -0
  263. package/dist/scatterplot/ChartRenderer.d.ts +1 -0
  264. package/dist/scatterplot/ChartRenderer.d.ts.map +1 -0
  265. package/dist/scatterplot/ScatterplotSettingsImpl.d.ts +1 -0
  266. package/dist/scatterplot/ScatterplotSettingsImpl.d.ts.map +1 -0
  267. package/dist/scatterplot/components/Chart.d.ts +1 -0
  268. package/dist/scatterplot/components/Chart.d.ts.map +1 -0
  269. package/dist/scatterplot/components/ChartAxis.d.ts +1 -0
  270. package/dist/scatterplot/components/ChartAxis.d.ts.map +1 -0
  271. package/dist/scatterplot/components/ChartAxisTitles.d.ts +1 -0
  272. package/dist/scatterplot/components/ChartAxisTitles.d.ts.map +1 -0
  273. package/dist/scatterplot/components/ChartFacetTitle.d.ts +1 -0
  274. package/dist/scatterplot/components/ChartFacetTitle.d.ts.map +1 -0
  275. package/dist/scatterplot/components/ChartLayersData.d.ts +1 -0
  276. package/dist/scatterplot/components/ChartLayersData.d.ts.map +1 -0
  277. package/dist/scatterplot/components/ChartTooltip.d.ts +1 -0
  278. package/dist/scatterplot/components/ChartTooltip.d.ts.map +1 -0
  279. package/dist/scatterplot/components/ChartTrendsData.d.ts +1 -0
  280. package/dist/scatterplot/components/ChartTrendsData.d.ts.map +1 -0
  281. package/dist/scatterplot/components/ChartsGroup.d.ts +1 -0
  282. package/dist/scatterplot/components/ChartsGroup.d.ts.map +1 -0
  283. package/dist/scatterplot/components/Grid.d.ts +1 -0
  284. package/dist/scatterplot/components/Grid.d.ts.map +1 -0
  285. package/dist/scatterplot/components/types.d.ts +1 -0
  286. package/dist/scatterplot/components/types.d.ts.map +1 -0
  287. package/dist/scatterplot/constants.d.ts +1 -0
  288. package/dist/scatterplot/constants.d.ts.map +1 -0
  289. package/dist/scatterplot/dots.d.ts +1 -0
  290. package/dist/scatterplot/dots.d.ts.map +1 -0
  291. package/dist/scatterplot/getLayersData.d.ts +1 -0
  292. package/dist/scatterplot/getLayersData.d.ts.map +1 -0
  293. package/dist/scatterplot/index.d.ts +1 -0
  294. package/dist/scatterplot/index.d.ts.map +1 -0
  295. package/dist/scatterplot/index.js +74 -71
  296. package/dist/scatterplot/index.js.map +1 -1
  297. package/dist/scatterplot/linearRegression.d.ts +1 -0
  298. package/dist/scatterplot/linearRegression.d.ts.map +1 -0
  299. package/dist/scatterplot/utils/createAesGetter.d.ts +1 -0
  300. package/dist/scatterplot/utils/createAesGetter.d.ts.map +1 -0
  301. package/dist/scatterplot/utils/createLegendInfo.d.ts +1 -0
  302. package/dist/scatterplot/utils/createLegendInfo.d.ts.map +1 -0
  303. package/dist/scatterplot/utils/createLegendInfo.js +41 -41
  304. package/dist/scatterplot/utils/createLegendInfo.js.map +1 -1
  305. package/dist/scatterplot/utils/formatColumnValue.d.ts +1 -0
  306. package/dist/scatterplot/utils/formatColumnValue.d.ts.map +1 -0
  307. package/dist/scatterplot/utils/formatColumnValue.js +7 -6
  308. package/dist/scatterplot/utils/formatColumnValue.js.map +1 -1
  309. package/dist/scatterplot/utils/getTicksAndFormat.d.ts +1 -0
  310. package/dist/scatterplot/utils/getTicksAndFormat.d.ts.map +1 -0
  311. package/dist/scatterplot/utils/getVisibleLabels.d.ts +1 -0
  312. package/dist/scatterplot/utils/getVisibleLabels.d.ts.map +1 -0
  313. package/dist/scatterplot/utils/isNumericScale.d.ts +1 -0
  314. package/dist/scatterplot/utils/isNumericScale.d.ts.map +1 -0
  315. package/dist/scatterplot/utils/sortDotsByGrouping.d.ts +1 -0
  316. package/dist/scatterplot/utils/sortDotsByGrouping.d.ts.map +1 -0
  317. package/dist/scatterplot-umap/ChartRenderer.d.ts +1 -0
  318. package/dist/scatterplot-umap/ChartRenderer.d.ts.map +1 -0
  319. package/dist/scatterplot-umap/SettingsImpl.d.ts +1 -0
  320. package/dist/scatterplot-umap/SettingsImpl.d.ts.map +1 -0
  321. package/dist/scatterplot-umap/colors.d.ts +1 -0
  322. package/dist/scatterplot-umap/colors.d.ts.map +1 -0
  323. package/dist/scatterplot-umap/components/Lasso.d.ts +1 -0
  324. package/dist/scatterplot-umap/components/Lasso.d.ts.map +1 -0
  325. package/dist/scatterplot-umap/components/LowerSVG.d.ts +1 -0
  326. package/dist/scatterplot-umap/components/LowerSVG.d.ts.map +1 -0
  327. package/dist/scatterplot-umap/components/LowerSVG.js.map +1 -1
  328. package/dist/scatterplot-umap/components/SVGLayer.d.ts +1 -0
  329. package/dist/scatterplot-umap/components/SVGLayer.d.ts.map +1 -0
  330. package/dist/scatterplot-umap/components/UpperSVG.d.ts +1 -0
  331. package/dist/scatterplot-umap/components/UpperSVG.d.ts.map +1 -0
  332. package/dist/scatterplot-umap/constants.d.ts +1 -0
  333. package/dist/scatterplot-umap/constants.d.ts.map +1 -0
  334. package/dist/scatterplot-umap/index.d.ts +1 -0
  335. package/dist/scatterplot-umap/index.d.ts.map +1 -0
  336. package/dist/scatterplot-umap/index.js +77 -74
  337. package/dist/scatterplot-umap/index.js.map +1 -1
  338. package/dist/scatterplot-umap/types.d.ts +1 -0
  339. package/dist/scatterplot-umap/types.d.ts.map +1 -0
  340. package/dist/types/bubble.d.ts +43 -0
  341. package/dist/types/bubble.d.ts.map +1 -0
  342. package/dist/types/common.d.ts +39 -0
  343. package/dist/types/common.d.ts.map +1 -0
  344. package/dist/types/common.js +31 -30
  345. package/dist/types/common.js.map +1 -1
  346. package/dist/types/dendro.d.ts +104 -0
  347. package/dist/types/dendro.d.ts.map +1 -0
  348. package/dist/types/discrete.d.ts +168 -0
  349. package/dist/types/discrete.d.ts.map +1 -0
  350. package/dist/types/heatmap.d.ts +160 -0
  351. package/dist/types/heatmap.d.ts.map +1 -0
  352. package/dist/types/histogram.d.ts +23 -0
  353. package/dist/types/histogram.d.ts.map +1 -0
  354. package/dist/types/index.d.ts +1 -0
  355. package/dist/types/index.d.ts.map +1 -0
  356. package/dist/types/scatterplot-umap.d.ts +141 -0
  357. package/dist/types/scatterplot-umap.d.ts.map +1 -0
  358. package/dist/types/scatterplot.d.ts +183 -0
  359. package/dist/types/scatterplot.d.ts.map +1 -0
  360. package/dist/utils/TextMeasurer/TextMeasurer.d.ts +1 -0
  361. package/dist/utils/TextMeasurer/TextMeasurer.d.ts.map +1 -0
  362. package/dist/utils/WorkerFactory.d.ts +1 -0
  363. package/dist/utils/WorkerFactory.d.ts.map +1 -0
  364. package/dist/utils/arrangeLegendParts.d.ts +1 -0
  365. package/dist/utils/arrangeLegendParts.d.ts.map +1 -0
  366. package/dist/utils/arraysAreDifferent.d.ts +1 -0
  367. package/dist/utils/arraysAreDifferent.d.ts.map +1 -0
  368. package/dist/utils/createMultilineDiscreteLabels.d.ts +1 -0
  369. package/dist/utils/createMultilineDiscreteLabels.d.ts.map +1 -0
  370. package/dist/utils/getChartEdgeSides.d.ts +1 -0
  371. package/dist/utils/getChartEdgeSides.d.ts.map +1 -0
  372. package/dist/utils/getContinuousColorScale.d.ts +1 -0
  373. package/dist/utils/getContinuousColorScale.d.ts.map +1 -0
  374. package/dist/utils/getContinuousLegendTicks.d.ts +1 -0
  375. package/dist/utils/getContinuousLegendTicks.d.ts.map +1 -0
  376. package/dist/utils/getFacetOrGroupKey.d.ts +1 -0
  377. package/dist/utils/getFacetOrGroupKey.d.ts.map +1 -0
  378. package/dist/utils/getFacetRowsColumns.d.ts +1 -0
  379. package/dist/utils/getFacetRowsColumns.d.ts.map +1 -0
  380. package/dist/utils/getKeysCombination.d.ts +1 -0
  381. package/dist/utils/getKeysCombination.d.ts.map +1 -0
  382. package/dist/utils/getLegendWidth.d.ts +1 -0
  383. package/dist/utils/getLegendWidth.d.ts.map +1 -0
  384. package/dist/utils/getLineShape.d.ts +1 -0
  385. package/dist/utils/getLineShape.d.ts.map +1 -0
  386. package/dist/utils/getPointShape.d.ts +1 -0
  387. package/dist/utils/getPointShape.d.ts.map +1 -0
  388. package/dist/utils/getSizeLegendItem.d.ts +1 -0
  389. package/dist/utils/getSizeLegendItem.d.ts.map +1 -0
  390. package/dist/utils/hooks/useFunction.d.ts +1 -0
  391. package/dist/utils/hooks/useFunction.d.ts.map +1 -0
  392. package/dist/utils/index.d.ts +1 -0
  393. package/dist/utils/index.d.ts.map +1 -0
  394. package/dist/utils/measureMultilineDiscreteLabels.d.ts +1 -0
  395. package/dist/utils/measureMultilineDiscreteLabels.d.ts.map +1 -0
  396. package/dist/utils/numberFormat.d.ts +1 -0
  397. package/dist/utils/numberFormat.d.ts.map +1 -0
  398. package/dist/utils/splitTextByWidth.d.ts +1 -0
  399. package/dist/utils/splitTextByWidth.d.ts.map +1 -0
  400. package/package.json +5 -5
@@ -1,31 +1,31 @@
1
- var R = Object.defineProperty;
2
- var T = (n, i, t) => i in n ? R(n, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[i] = t;
1
+ var S = Object.defineProperty;
2
+ var T = (n, i, t) => i in n ? S(n, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[i] = t;
3
3
  var f = (n, i, t) => T(n, typeof i != "symbol" ? i + "" : i, t);
4
4
  import { AbstractChart as X } from "../AbstractChart.js";
5
5
  import { createLegendInfo as Y, addPalettesToAesMapping as B } from "../scatterplot/utils/createLegendInfo.js";
6
6
  import { formatColumnValue as I } from "../scatterplot/utils/formatColumnValue.js";
7
- import { sortDotsByGrouping as P } from "../scatterplot/utils/sortDotsByGrouping.js";
8
- import { isContinuousAes as D } from "../types/common.js";
7
+ import { sortDotsByGrouping as V } from "../scatterplot/utils/sortDotsByGrouping.js";
8
+ import { isContinuousAes as L } from "../types/common.js";
9
9
  import "../types/discrete.js";
10
10
  import "../types/scatterplot.js";
11
11
  import "../types/heatmap.js";
12
12
  import "../types/dendro.js";
13
13
  import "../types/histogram.js";
14
14
  import "../types/bubble.js";
15
- import { arraysAreDifferent as _ } from "../utils/arraysAreDifferent.js";
16
- import V from "./ChartRenderer.js";
15
+ import { arraysAreDifferent as E } from "../utils/arraysAreDifferent.js";
16
+ import P from "./ChartRenderer.js";
17
17
  import { SCATTERPLOT_CONTROLS_EVENTS as p } from "./constants.js";
18
- import { ScatterplotUmapSettingsImpl as L } from "./SettingsImpl.js";
18
+ import { ScatterplotUmapSettingsImpl as _ } from "./SettingsImpl.js";
19
19
  import { format as Z } from "../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/defaultLocale.js";
20
20
  function F(n) {
21
21
  return typeof n == "object" && "type" in n && n.type === "grouping";
22
22
  }
23
23
  function O(n, i) {
24
- return typeof n == "number" && typeof i == "number" ? n !== i : !n && i || !i && n ? !0 : D(n) && D(i) ? n.range[0] !== i.range[0] || n.range[1] !== i.range[1] : !1;
24
+ return typeof n == "number" && typeof i == "number" ? n !== i : !n && i || !i && n ? !0 : L(n) && L(i) ? n.range[0] !== i.range[0] || n.range[1] !== i.range[1] : !1;
25
25
  }
26
- class ot extends X {
27
- constructor(t, a, e) {
28
- super(t, a);
26
+ class st extends X {
27
+ constructor(t, o, a) {
28
+ super(t, o);
29
29
  f(this, "settings");
30
30
  f(this, "chartRenderer");
31
31
  f(this, "onPolygonUpdate", () => {
@@ -38,138 +38,141 @@ class ot extends X {
38
38
  f(this, "onZoomChange", () => {
39
39
  });
40
40
  f(this, "calculatedData", null);
41
- this.settings = new L(a), this.chartRenderer = new V(), e && (this.onPolygonUpdate = e.onPolygonUpdate, this.onTooltipHintSwitch = e.onTooltipHintSwitch, this.onLassoControlsStateUpdate = e.onLassoControlsStateUpdate, this.onZoomChange = e.onZoomChange);
41
+ this.settings = new _(o), this.chartRenderer = new P(), a && (this.onPolygonUpdate = a.onPolygonUpdate, this.onTooltipHintSwitch = a.onTooltipHintSwitch, this.onLassoControlsStateUpdate = a.onLassoControlsStateUpdate, this.onZoomChange = a.onZoomChange);
42
42
  }
43
43
  mount(t) {
44
44
  try {
45
45
  this.chartRenderer.init(t), this._updateData(), this._updateChart(), this.hasError = !1;
46
- } catch (a) {
47
- this.hasError = !0, console.error(a), a instanceof Error && (this.chartRenderer.renderError(a.message), console.error(a));
46
+ } catch (o) {
47
+ this.hasError = !0, console.error(o), o instanceof Error && (this.chartRenderer.renderError(o.message), console.error(o));
48
48
  }
49
49
  }
50
50
  unmount() {
51
51
  this.chartRenderer.clear();
52
52
  }
53
- updateSettingsAndData(t, a) {
53
+ updateSettingsAndData(t, o) {
54
54
  try {
55
- const e = this.settings, o = this.data;
56
- this.settings = new L(a), this.data = t, this._needUpdateCalculatedDataBySettings(e, this.settings) || this._needUpdateCalculatedDataByData(o, this.data) ? this._updateData() : this._updateAesInData();
57
- const d = e.layers.find((s) => s.type === "dots"), r = this.settings.layers.find((s) => s.type === "dots");
55
+ const a = this.settings, s = this.data;
56
+ this.settings = new _(o), this.data = t, this._needUpdateCalculatedDataBySettings(a, this.settings) || this._needUpdateCalculatedDataByData(s, this.data) ? this._updateData() : this._updateAesInData();
57
+ const d = a.layers.find((e) => e.type === "dots"), r = this.settings.layers.find((e) => e.type === "dots");
58
58
  O(d.aes.dotSize, r.aes.dotSize) && this.calculatedData && this.chartRenderer.updatePointSize(this.calculatedData.legendLabels, this.settings.layers), this._updateChart(), this.hasError = !1;
59
- } catch (e) {
60
- this.hasError = !0, e instanceof Error && (this.chartRenderer.renderError(e.message), console.error(e));
59
+ } catch (a) {
60
+ this.hasError = !0, a instanceof Error && (this.chartRenderer.renderError(a.message), console.error(a));
61
61
  }
62
62
  }
63
- updateChartState(t, a) {
64
- var e;
65
- if (t === "polygon" && (this.chartRenderer.polygons = a, this._updateChart()), t === p.lassoDelete && document) {
66
- const o = new CustomEvent(p.lassoDelete);
67
- document.dispatchEvent(o);
63
+ updateChartState(t, o) {
64
+ var a;
65
+ if (t === "polygon" && (this.chartRenderer.polygons = o, this._updateChart()), t === p.lassoDelete && document) {
66
+ const s = new CustomEvent(p.lassoDelete);
67
+ document.dispatchEvent(s);
68
68
  }
69
69
  if (t === p.lassoSelectMode && document) {
70
- const o = new CustomEvent(p.lassoSelectMode, { detail: a });
71
- document.dispatchEvent(o);
70
+ const s = new CustomEvent(p.lassoSelectMode, { detail: o });
71
+ document.dispatchEvent(s);
72
72
  }
73
73
  if (t === p.lassoForward && document) {
74
- const o = new CustomEvent(p.lassoForward);
75
- document.dispatchEvent(o);
74
+ const s = new CustomEvent(p.lassoForward);
75
+ document.dispatchEvent(s);
76
76
  }
77
77
  if (t === p.lassoBack && document) {
78
- const o = new CustomEvent(p.lassoBack);
79
- document.dispatchEvent(o);
78
+ const s = new CustomEvent(p.lassoBack);
79
+ document.dispatchEvent(s);
80
80
  }
81
- t === p.resetViewport && (this.chartRenderer.resetZoom(this.settings.chartSettings.xAxis, this.settings.chartSettings.yAxis, (e = this.calculatedData) == null ? void 0 : e.dotsExtents), this.onZoomChange(!1));
81
+ t === p.resetViewport && (this.chartRenderer.resetZoom(this.settings.chartSettings.xAxis, this.settings.chartSettings.yAxis, (a = this.calculatedData) == null ? void 0 : a.dotsExtents), this.onZoomChange(!1));
82
82
  }
83
83
  export() {
84
84
  return console.warn("export not implemented"), "";
85
85
  }
86
- _needUpdateCalculatedDataBySettings(t, a) {
87
- var e, o, d, r;
88
- return _(
89
- t.grouping.map((s) => s.columnName.value),
90
- a.grouping.map((s) => s.columnName.value)
91
- ) || t.grouping.some((s, m) => {
86
+ _needUpdateCalculatedDataBySettings(t, o) {
87
+ var a, s, d, r;
88
+ return E(
89
+ t.grouping.map((e) => e.columnName.value),
90
+ o.grouping.map((e) => e.columnName.value)
91
+ ) || E(
92
+ t.grouping.map((e) => e.columnName.nullValueLabel),
93
+ o.grouping.map((e) => e.columnName.nullValueLabel)
94
+ ) || t.grouping.some((e, m) => {
92
95
  var g;
93
- return _(s.order, (g = a.grouping) == null ? void 0 : g[m].order);
94
- }) || t.layers.length !== a.layers.length || t.layers.some((s, m) => s.type !== a.layers[m].type) || (((e = t.label) == null ? void 0 : e.value) || ((o = a.label) == null ? void 0 : o.value)) && ((d = t.label) == null ? void 0 : d.value) !== ((r = a.label) == null ? void 0 : r.value);
96
+ return E(e.order, (g = o.grouping) == null ? void 0 : g[m].order);
97
+ }) || t.layers.length !== o.layers.length || t.layers.some((e, m) => e.type !== o.layers[m].type) || (((a = t.label) == null ? void 0 : a.value) || ((s = o.label) == null ? void 0 : s.value)) && ((d = t.label) == null ? void 0 : d.value) !== ((r = o.label) == null ? void 0 : r.value);
95
98
  }
96
- _needUpdateCalculatedDataByData(t, a) {
97
- const e = Object.keys(t.data), o = Object.keys(a.data);
98
- return t.id !== a.id || e.length !== o.length || e.some((d) => {
99
+ _needUpdateCalculatedDataByData(t, o) {
100
+ const a = Object.keys(t.data), s = Object.keys(o.data);
101
+ return t.id !== o.id || a.length !== s.length || a.some((d) => {
99
102
  var r;
100
- return t.data[d].length !== ((r = a.data[d]) == null ? void 0 : r.length);
103
+ return t.data[d].length !== ((r = o.data[d]) == null ? void 0 : r.length);
101
104
  });
102
105
  }
103
106
  _updateData() {
104
- var w;
105
- const { x: t, y: a, label: e, highlight: o, grouping: d, layers: r } = this.settings, s = {
107
+ var v;
108
+ const { x: t, y: o, label: a, highlight: s, grouping: d, layers: r } = this.settings, e = {
106
109
  minX: 1 / 0,
107
110
  maxX: -1 / 0,
108
111
  minY: 1 / 0,
109
112
  maxY: -1 / 0
110
- }, m = r.some((l) => l.type === "curve"), g = /* @__PURE__ */ new Set(), u = {}, C = [], S = e != null && e.format ? Z(e.format) : void 0;
113
+ }, m = r.some((l) => l.type === "curve"), g = /* @__PURE__ */ new Set(), u = {}, C = [], U = a != null && a.format ? Z(a.format) : void 0;
111
114
  for (let l = 0; l < this.data.rowsCount; l++) {
112
- const h = this.data.getColumnValue(t.value, l), c = this.data.getColumnValue(a.value, l);
115
+ const h = this.data.getColumnValue(t.value, l), c = this.data.getColumnValue(o.value, l);
113
116
  if (typeof h != "number" || typeof c != "number" || !isFinite(h) || !isFinite(c))
114
117
  continue;
115
- h < s.minX && (s.minX = h), h > s.maxX && (s.maxX = h), c < s.minY && (s.minY = c), c > s.maxY && (s.maxY = c);
116
- const x = o ? !this.data.getColumnValue(o.value, l) : !1, v = {
118
+ h < e.minX && (e.minX = h), h > e.maxX && (e.maxX = h), c < e.minY && (e.minY = c), c > e.maxY && (e.maxY = c);
119
+ const x = s ? !this.data.getColumnValue(s.value, l) : !1, D = {
117
120
  x: h,
118
121
  y: c,
119
122
  idx: l,
120
- label: I(this.data, l, e, S),
123
+ label: I(this.data, l, a, U),
121
124
  dimmed: x
122
125
  };
123
126
  if (m) {
124
- const y = d.map(({ columnName: A }) => this.data.getColumnValue(A.value, l)).join("_");
125
- g.add(y), u[y] || (u[y] = []), u[y].push(v);
127
+ const y = d.map(({ columnName: R }) => this.data.getColumnValue(R.value, l)).join("_");
128
+ g.add(y), u[y] || (u[y] = []), u[y].push(D);
126
129
  }
127
- C.push(v);
130
+ C.push(D);
128
131
  }
129
- const E = [...g];
130
- m && E.forEach((l) => {
132
+ const b = [...g];
133
+ m && b.forEach((l) => {
131
134
  u[l].sort((h, c) => h.x - c.x);
132
- }), P(this.data, C, d, o, r.find((l) => l.type === "dots"));
133
- const U = Y(this.data, d, r), b = ((w = this.calculatedData) == null ? void 0 : w.dotsExtents) ?? null;
134
- if (b) {
135
- const { minX: l, maxX: h, minY: c, maxY: x } = b;
136
- (l !== s.minX || h !== s.maxX || c !== s.minY || x !== s.maxY) && this.onZoomChange(!0);
135
+ }), V(this.data, C, d, s, r.find((l) => l.type === "dots"));
136
+ const A = Y(this.data, d, r), w = ((v = this.calculatedData) == null ? void 0 : v.dotsExtents) ?? null;
137
+ if (w) {
138
+ const { minX: l, maxX: h, minY: c, maxY: x } = w;
139
+ (l !== e.minX || h !== e.maxX || c !== e.minY || x !== e.maxY) && this.onZoomChange(!0);
137
140
  }
138
141
  this.calculatedData = {
139
142
  dots: C,
140
143
  dotsByGrouping: u,
141
- groupingKeys: E,
142
- dotsExtents: s,
143
- legendLabels: U
144
+ groupingKeys: b,
145
+ dotsExtents: e,
146
+ legendLabels: A
144
147
  };
145
148
  }
146
149
  _updateAesInData() {
147
150
  const t = this.calculatedData;
148
151
  if (!t)
149
152
  return;
150
- const { layers: a, grouping: e } = this.settings;
151
- e.forEach(({ columnName: o, inheritedAes: d }) => {
152
- const r = /* @__PURE__ */ new Set(), s = {};
153
- a.forEach((m) => {
153
+ const { layers: o, grouping: a } = this.settings;
154
+ a.forEach(({ columnName: s, inheritedAes: d }) => {
155
+ const r = /* @__PURE__ */ new Set(), e = {};
156
+ o.forEach((m) => {
154
157
  m.aes && Object.entries(m.aes).forEach(([g, u]) => {
155
- F(u) && u.value === o.value && (r.add(g), u.palette && (s[g] = u.palette));
158
+ F(u) && u.value === s.value && (r.add(g), u.palette && (e[g] = u.palette));
156
159
  });
157
- }), t.legendLabels[o.value].usedAes = [...r], t.legendLabels[o.value].aesMap = B(o, s, d);
160
+ }), t.legendLabels[s.value].usedAes = [...r], t.legendLabels[s.value].aesMap = B(s, e, d);
158
161
  });
159
162
  }
160
163
  _updateChart() {
161
164
  if (!this.calculatedData)
162
165
  return;
163
- const { id: t, chartSettings: a, keyColumn: e, layers: o, grouping: d } = this.settings;
166
+ const { id: t, chartSettings: o, keyColumn: a, layers: s, grouping: d } = this.settings;
164
167
  this.chartRenderer.render(
165
168
  this.data,
166
169
  t,
170
+ o,
167
171
  a,
168
- e,
169
172
  this.calculatedData.dots,
170
173
  this.calculatedData.dotsExtents,
171
174
  this.calculatedData.dotsByGrouping,
172
- o,
175
+ s,
173
176
  this.calculatedData.legendLabels,
174
177
  d.map((r) => r.columnName),
175
178
  this.onPolygonUpdate,
@@ -180,6 +183,6 @@ class ot extends X {
180
183
  }
181
184
  }
182
185
  export {
183
- ot as ChartScatterplotUmap
186
+ st as ChartScatterplotUmap
184
187
  };
185
188
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/scatterplot-umap/index.ts"],"sourcesContent":["import {format} from 'd3-format';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport { addPalettesToAesMapping, createLegendInfo } from '../scatterplot/utils/createLegendInfo';\nimport {formatColumnValue} from '../scatterplot/utils/formatColumnValue';\nimport {sortDotsByGrouping} from '../scatterplot/utils/sortDotsByGrouping';\nimport { type AesItem, type ContinuousAesFromColumn, type InheritAesScatterplot, isContinuousAes, type ScatterplotEventHandlers } from '../types';\nimport type { ScatterplotUmapLegendInfo, ScatterplotUmapSettings } from '../types/scatterplot-umap';\nimport {arraysAreDifferent} from '../utils/arraysAreDifferent';\nimport ChartRenderer from './ChartRenderer';\nimport { SCATTERPLOT_CONTROLS_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\nfunction dotSizeChanged(prevDotSize?: number | ContinuousAesFromColumn<number>, currentDotSize?: number | ContinuousAesFromColumn<number> ) {\n if (typeof prevDotSize === 'number' && typeof currentDotSize === 'number') {\n return prevDotSize !== currentDotSize;\n }\n if ((!prevDotSize && currentDotSize) || (!currentDotSize && prevDotSize)) {\n return true;\n }\n if (isContinuousAes(prevDotSize) && isContinuousAes(currentDotSize)) {\n return prevDotSize.range[0] !== currentDotSize.range[0] || prevDotSize.range[1] !== currentDotSize.range[1];\n }\n return false;\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 onZoomChange: (isZoomChanged: boolean) => 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 this.onZoomChange = eventHandlers.onZoomChange;\n }\n }\n\n mount(node: HTMLElement) {\n try {\n this.chartRenderer.init(node);\n this._updateData();\n this._updateChart();\n this.hasError = false;\n } catch (err) {\n this.hasError = true;\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 (dotSizeChanged(prevLayer.aes.dotSize, currentLayer.aes.dotSize) && this.calculatedData) {\n this.chartRenderer.updatePointSize(this.calculatedData.legendLabels, this.settings.layers);\n }\n this._updateChart();\n this.hasError = false;\n } catch (err) {\n this.hasError = true;\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_CONTROLS_EVENTS.lassoDelete) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_CONTROLS_EVENTS.lassoDelete);\n document.dispatchEvent(event);\n }}\n if (field === SCATTERPLOT_CONTROLS_EVENTS.lassoSelectMode) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_CONTROLS_EVENTS.lassoSelectMode, {detail: value as LassoMode});\n document.dispatchEvent(event);\n }\n }\n if (field === SCATTERPLOT_CONTROLS_EVENTS.lassoForward) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_CONTROLS_EVENTS.lassoForward);\n document.dispatchEvent(event);\n }\n }\n if (field === SCATTERPLOT_CONTROLS_EVENTS.lassoBack) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_CONTROLS_EVENTS.lassoBack);\n document.dispatchEvent(event);\n }\n }\n if (field === SCATTERPLOT_CONTROLS_EVENTS.resetViewport) {\n this.chartRenderer.resetZoom(this.settings.chartSettings.xAxis, this.settings.chartSettings.yAxis, this.calculatedData?.dotsExtents);\n this.onZoomChange(false);\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 arraysAreDifferent(\n prevSettings.grouping.map(v => v.columnName.value),\n settings.grouping.map(v => v.columnName.value),\n ) ||\n prevSettings.grouping.some((v, idx) => arraysAreDifferent(v.order, settings.grouping?.[idx].order)) ||\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} = 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: Dot[] = [];\n const labelFormatter = label?.format ? format(label.format) : undefined;\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 if (!isFinite(xv) || !isFinite(yv)) {\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 dimmed = highlight ? !this.data.getColumnValue(highlight.value, idx) : false;\n const dot: Dot = {\n x: xv,\n y: yv,\n idx,\n label: formatColumnValue(this.data, idx, label, labelFormatter),\n dimmed\n };\n if (hasCurve) {\n const groupingKey = grouping.map(({columnName}) => this.data.getColumnValue(columnName.value, idx)).join('_');\n groupingKeysSet.add(groupingKey);\n if (!dotsByGrouping[groupingKey]) {\n dotsByGrouping[groupingKey] = [];\n }\n dotsByGrouping[groupingKey].push(dot);\n }\n dots.push(dot);\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 sortDotsByGrouping(this.data, dots, grouping, highlight, layers.find(l => l.type === 'dots'));\n const legendLabels = createLegendInfo(this.data, grouping, layers);\n\n const prevDotExtents = this.calculatedData?.dotsExtents ?? null;\n if (prevDotExtents) {\n const {minX, maxX, minY, maxY} = prevDotExtents;\n if (minX !== dotsExtents.minX || maxX !== dotsExtents.maxX \n || minY !== dotsExtents.minY || maxY !== dotsExtents.maxY) {\n this.onZoomChange(true); // dots viewport is changed but it will not be changed automatically; this call is to undisable reset button\n }\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, grouping} = this.settings;\n grouping.forEach(({columnName, inheritedAes}) => {\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 === columnName.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[columnName.value].usedAes = [...usedAes];\n calculated.legendLabels[columnName.value].aesMap = addPalettesToAesMapping(columnName, usedAesFromPalettes, inheritedAes);\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.map(v => v.columnName),\n this.onPolygonUpdate,\n this.onTooltipHintSwitch,\n this.onLassoControlsStateUpdate,\n this.onZoomChange\n );\n }\n}\n"],"names":["isInheritMapping","value","dotSizeChanged","prevDotSize","currentDotSize","isContinuousAes","ChartScatterplotUmap","AbstractChart","data","settings","eventHandlers","__publicField","ScatterplotUmapSettingsImpl","ChartRenderer","node","err","previousSettings","previousData","prevLayer","l","currentLayer","field","SCATTERPLOT_CONTROLS_EVENTS","event","_a","prevSettings","arraysAreDifferent","v","idx","_b","_c","_d","prevData","prevKeys","keys","key","x","y","label","highlight","grouping","layers","dotsExtents","hasCurve","layer","groupingKeysSet","dotsByGrouping","dots","labelFormatter","format","xv","yv","dimmed","dot","formatColumnValue","groupingKey","columnName","groupingKeys","a","b","sortDotsByGrouping","legendLabels","createLegendInfo","prevDotExtents","minX","maxX","minY","maxY","calculated","inheritedAes","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 {format} from 'd3-format';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport { addPalettesToAesMapping, createLegendInfo } from '../scatterplot/utils/createLegendInfo';\nimport {formatColumnValue} from '../scatterplot/utils/formatColumnValue';\nimport {sortDotsByGrouping} from '../scatterplot/utils/sortDotsByGrouping';\nimport { type AesItem, type ContinuousAesFromColumn, type InheritAesScatterplot, isContinuousAes, type ScatterplotEventHandlers } from '../types';\nimport type { ScatterplotUmapLegendInfo, ScatterplotUmapSettings } from '../types/scatterplot-umap';\nimport {arraysAreDifferent} from '../utils/arraysAreDifferent';\nimport ChartRenderer from './ChartRenderer';\nimport { SCATTERPLOT_CONTROLS_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\nfunction dotSizeChanged(prevDotSize?: number | ContinuousAesFromColumn<number>, currentDotSize?: number | ContinuousAesFromColumn<number> ) {\n if (typeof prevDotSize === 'number' && typeof currentDotSize === 'number') {\n return prevDotSize !== currentDotSize;\n }\n if ((!prevDotSize && currentDotSize) || (!currentDotSize && prevDotSize)) {\n return true;\n }\n if (isContinuousAes(prevDotSize) && isContinuousAes(currentDotSize)) {\n return prevDotSize.range[0] !== currentDotSize.range[0] || prevDotSize.range[1] !== currentDotSize.range[1];\n }\n return false;\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 onZoomChange: (isZoomChanged: boolean) => 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 this.onZoomChange = eventHandlers.onZoomChange;\n }\n }\n\n mount(node: HTMLElement) {\n try {\n this.chartRenderer.init(node);\n this._updateData();\n this._updateChart();\n this.hasError = false;\n } catch (err) {\n this.hasError = true;\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 (dotSizeChanged(prevLayer.aes.dotSize, currentLayer.aes.dotSize) && this.calculatedData) {\n this.chartRenderer.updatePointSize(this.calculatedData.legendLabels, this.settings.layers);\n }\n this._updateChart();\n this.hasError = false;\n } catch (err) {\n this.hasError = true;\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_CONTROLS_EVENTS.lassoDelete) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_CONTROLS_EVENTS.lassoDelete);\n document.dispatchEvent(event);\n }}\n if (field === SCATTERPLOT_CONTROLS_EVENTS.lassoSelectMode) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_CONTROLS_EVENTS.lassoSelectMode, {detail: value as LassoMode});\n document.dispatchEvent(event);\n }\n }\n if (field === SCATTERPLOT_CONTROLS_EVENTS.lassoForward) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_CONTROLS_EVENTS.lassoForward);\n document.dispatchEvent(event);\n }\n }\n if (field === SCATTERPLOT_CONTROLS_EVENTS.lassoBack) {\n if (document) {\n const event = new CustomEvent(SCATTERPLOT_CONTROLS_EVENTS.lassoBack);\n document.dispatchEvent(event);\n }\n }\n if (field === SCATTERPLOT_CONTROLS_EVENTS.resetViewport) {\n this.chartRenderer.resetZoom(this.settings.chartSettings.xAxis, this.settings.chartSettings.yAxis, this.calculatedData?.dotsExtents);\n this.onZoomChange(false);\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 arraysAreDifferent(\n prevSettings.grouping.map(v => v.columnName.value),\n settings.grouping.map(v => v.columnName.value),\n ) ||\n arraysAreDifferent(\n prevSettings.grouping.map(v => v.columnName.nullValueLabel),\n settings.grouping.map(v => v.columnName.nullValueLabel),\n ) ||\n prevSettings.grouping.some((v, idx) => arraysAreDifferent(v.order, settings.grouping?.[idx].order)) ||\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} = 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: Dot[] = [];\n const labelFormatter = label?.format ? format(label.format) : undefined;\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 if (!isFinite(xv) || !isFinite(yv)) {\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 dimmed = highlight ? !this.data.getColumnValue(highlight.value, idx) : false;\n const dot: Dot = {\n x: xv,\n y: yv,\n idx,\n label: formatColumnValue(this.data, idx, label, labelFormatter),\n dimmed\n };\n if (hasCurve) {\n const groupingKey = grouping.map(({columnName}) => this.data.getColumnValue(columnName.value, idx)).join('_');\n groupingKeysSet.add(groupingKey);\n if (!dotsByGrouping[groupingKey]) {\n dotsByGrouping[groupingKey] = [];\n }\n dotsByGrouping[groupingKey].push(dot);\n }\n dots.push(dot);\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 sortDotsByGrouping(this.data, dots, grouping, highlight, layers.find(l => l.type === 'dots'));\n const legendLabels = createLegendInfo(this.data, grouping, layers);\n\n const prevDotExtents = this.calculatedData?.dotsExtents ?? null;\n if (prevDotExtents) {\n const {minX, maxX, minY, maxY} = prevDotExtents;\n if (minX !== dotsExtents.minX || maxX !== dotsExtents.maxX \n || minY !== dotsExtents.minY || maxY !== dotsExtents.maxY) {\n this.onZoomChange(true); // dots viewport is changed but it will not be changed automatically; this call is to undisable reset button\n }\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, grouping} = this.settings;\n grouping.forEach(({columnName, inheritedAes}) => {\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 === columnName.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[columnName.value].usedAes = [...usedAes];\n calculated.legendLabels[columnName.value].aesMap = addPalettesToAesMapping(columnName, usedAesFromPalettes, inheritedAes);\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.map(v => v.columnName),\n this.onPolygonUpdate,\n this.onTooltipHintSwitch,\n this.onLassoControlsStateUpdate,\n this.onZoomChange\n );\n }\n}\n"],"names":["isInheritMapping","value","dotSizeChanged","prevDotSize","currentDotSize","isContinuousAes","ChartScatterplotUmap","AbstractChart","data","settings","eventHandlers","__publicField","ScatterplotUmapSettingsImpl","ChartRenderer","node","err","previousSettings","previousData","prevLayer","l","currentLayer","field","SCATTERPLOT_CONTROLS_EVENTS","event","_a","prevSettings","arraysAreDifferent","v","idx","_b","_c","_d","prevData","prevKeys","keys","key","x","y","label","highlight","grouping","layers","dotsExtents","hasCurve","layer","groupingKeysSet","dotsByGrouping","dots","labelFormatter","format","xv","yv","dimmed","dot","formatColumnValue","groupingKey","columnName","groupingKeys","a","b","sortDotsByGrouping","legendLabels","createLegendInfo","prevDotExtents","minX","maxX","minY","maxY","calculated","inheritedAes","usedAes","usedAesFromPalettes","addPalettesToAesMapping","id","chartSettings","keyColumn"],"mappings":"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"}
@@ -83,3 +83,4 @@ export type LassoControlsState = {
83
83
  backEnabled: boolean;
84
84
  forwardEnabled: boolean;
85
85
  };
86
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/scatterplot-umap/types.ts"],"names":[],"mappings":"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"}