@milaboratories/miplots4 1.0.173 → 1.0.175

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 (440) 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 +2 -1
  4. package/dist/DataFrame.d.ts.map +1 -0
  5. package/dist/DataFrame.js +52 -51
  6. package/dist/DataFrame.js.map +1 -1
  7. package/dist/MiPlots.d.ts +1 -0
  8. package/dist/MiPlots.d.ts.map +1 -0
  9. package/dist/bubble/BubbleSettingsImpl.d.ts +4 -0
  10. package/dist/bubble/BubbleSettingsImpl.d.ts.map +1 -0
  11. package/dist/bubble/BubbleSettingsImpl.js +16 -16
  12. package/dist/bubble/BubbleSettingsImpl.js.map +1 -1
  13. package/dist/bubble/ChartRenderer.d.ts +1 -0
  14. package/dist/bubble/ChartRenderer.d.ts.map +1 -0
  15. package/dist/bubble/components/AxisCaptions.d.ts +1 -0
  16. package/dist/bubble/components/AxisCaptions.d.ts.map +1 -0
  17. package/dist/bubble/components/Chart.d.ts +1 -0
  18. package/dist/bubble/components/Chart.d.ts.map +1 -0
  19. package/dist/bubble/components/ChartsGroup.d.ts +1 -0
  20. package/dist/bubble/components/ChartsGroup.d.ts.map +1 -0
  21. package/dist/bubble/components/types.d.ts +1 -0
  22. package/dist/bubble/components/types.d.ts.map +1 -0
  23. package/dist/bubble/constants.d.ts +1 -0
  24. package/dist/bubble/constants.d.ts.map +1 -0
  25. package/dist/bubble/getCellTooltip.d.ts +1 -0
  26. package/dist/bubble/getCellTooltip.d.ts.map +1 -0
  27. package/dist/bubble/getGroupedCellsData.d.ts +2 -1
  28. package/dist/bubble/getGroupedCellsData.d.ts.map +1 -0
  29. package/dist/bubble/getGroupedCellsData.js +12 -11
  30. package/dist/bubble/getGroupedCellsData.js.map +1 -1
  31. package/dist/bubble/index.d.ts +1 -0
  32. package/dist/bubble/index.d.ts.map +1 -0
  33. package/dist/bubble/index.js +61 -69
  34. package/dist/bubble/index.js.map +1 -1
  35. package/dist/bubble/utils/calculateCaptionTails.d.ts +1 -0
  36. package/dist/bubble/utils/calculateCaptionTails.d.ts.map +1 -0
  37. package/dist/bubble/utils/calculateChartSideElementSizes.d.ts +1 -0
  38. package/dist/bubble/utils/calculateChartSideElementSizes.d.ts.map +1 -0
  39. package/dist/bubble/utils/calculateSideElementsBBoxes.d.ts +1 -0
  40. package/dist/bubble/utils/calculateSideElementsBBoxes.d.ts.map +1 -0
  41. package/dist/bubble/utils/index.d.ts +1 -0
  42. package/dist/bubble/utils/index.d.ts.map +1 -0
  43. package/dist/common/BandAxis.d.ts +1 -0
  44. package/dist/common/BandAxis.d.ts.map +1 -0
  45. package/dist/common/ChartsTitle.d.ts +1 -0
  46. package/dist/common/ChartsTitle.d.ts.map +1 -0
  47. package/dist/common/ContinuousAxis.d.ts +1 -0
  48. package/dist/common/ContinuousAxis.d.ts.map +1 -0
  49. package/dist/common/ContinuousGrid.d.ts +1 -0
  50. package/dist/common/ContinuousGrid.d.ts.map +1 -0
  51. package/dist/common/Error.d.ts +1 -0
  52. package/dist/common/Error.d.ts.map +1 -0
  53. package/dist/common/ErrorBoundary.d.ts +1 -0
  54. package/dist/common/ErrorBoundary.d.ts.map +1 -0
  55. package/dist/common/Legend.d.ts +1 -0
  56. package/dist/common/Legend.d.ts.map +1 -0
  57. package/dist/common/Tooltip.d.ts +1 -0
  58. package/dist/common/Tooltip.d.ts.map +1 -0
  59. package/dist/common/fonts.d.ts +1 -0
  60. package/dist/common/fonts.d.ts.map +1 -0
  61. package/dist/common/types.d.ts +1 -0
  62. package/dist/common/types.d.ts.map +1 -0
  63. package/dist/common/useDataFrame.d.ts +1 -0
  64. package/dist/common/useDataFrame.d.ts.map +1 -0
  65. package/dist/constants.d.ts +1 -0
  66. package/dist/constants.d.ts.map +1 -0
  67. package/dist/constants.js +9 -11
  68. package/dist/constants.js.map +1 -1
  69. package/dist/dendro/ChartRenderer.d.ts +1 -0
  70. package/dist/dendro/ChartRenderer.d.ts.map +1 -0
  71. package/dist/dendro/DendroSettingsImpl.d.ts +1 -0
  72. package/dist/dendro/DendroSettingsImpl.d.ts.map +1 -0
  73. package/dist/dendro/components/Chart.d.ts +1 -0
  74. package/dist/dendro/components/Chart.d.ts.map +1 -0
  75. package/dist/dendro/components/Heatmap.d.ts +1 -0
  76. package/dist/dendro/components/Heatmap.d.ts.map +1 -0
  77. package/dist/dendro/components/Legend.d.ts +1 -0
  78. package/dist/dendro/components/Legend.d.ts.map +1 -0
  79. package/dist/dendro/components/LinksGroup.d.ts +1 -0
  80. package/dist/dendro/components/LinksGroup.d.ts.map +1 -0
  81. package/dist/dendro/components/NodesGroup.d.ts +1 -0
  82. package/dist/dendro/components/NodesGroup.d.ts.map +1 -0
  83. package/dist/dendro/components/types.d.ts +1 -0
  84. package/dist/dendro/components/types.d.ts.map +1 -0
  85. package/dist/dendro/constants.d.ts +1 -0
  86. package/dist/dendro/constants.d.ts.map +1 -0
  87. package/dist/dendro/getHeatmapData.d.ts +1 -0
  88. package/dist/dendro/getHeatmapData.d.ts.map +1 -0
  89. package/dist/dendro/getHierarchyData.d.ts +1 -0
  90. package/dist/dendro/getHierarchyData.d.ts.map +1 -0
  91. package/dist/dendro/index.d.ts +1 -0
  92. package/dist/dendro/index.d.ts.map +1 -0
  93. package/dist/discrete/ChartRenderer.d.ts +1 -0
  94. package/dist/discrete/ChartRenderer.d.ts.map +1 -0
  95. package/dist/discrete/DiscreteSettingsImpl.d.ts +3 -1
  96. package/dist/discrete/DiscreteSettingsImpl.d.ts.map +1 -0
  97. package/dist/discrete/DiscreteSettingsImpl.js.map +1 -1
  98. package/dist/discrete/components/Chart.d.ts +1 -0
  99. package/dist/discrete/components/Chart.d.ts.map +1 -0
  100. package/dist/discrete/components/ChartsGroup.d.ts +1 -0
  101. package/dist/discrete/components/ChartsGroup.d.ts.map +1 -0
  102. package/dist/discrete/components/Grid.d.ts +1 -0
  103. package/dist/discrete/components/Grid.d.ts.map +1 -0
  104. package/dist/discrete/components/NumberAxis.d.ts +1 -0
  105. package/dist/discrete/components/NumberAxis.d.ts.map +1 -0
  106. package/dist/discrete/components/layers/BarElement.d.ts +1 -0
  107. package/dist/discrete/components/layers/BarElement.d.ts.map +1 -0
  108. package/dist/discrete/components/layers/BinnedDotsElement.d.ts +1 -0
  109. package/dist/discrete/components/layers/BinnedDotsElement.d.ts.map +1 -0
  110. package/dist/discrete/components/layers/BoxElement.d.ts +1 -0
  111. package/dist/discrete/components/layers/BoxElement.d.ts.map +1 -0
  112. package/dist/discrete/components/layers/DotsGroupElement.d.ts +1 -0
  113. package/dist/discrete/components/layers/DotsGroupElement.d.ts.map +1 -0
  114. package/dist/discrete/components/layers/ErrorBarElement.d.ts +1 -0
  115. package/dist/discrete/components/layers/ErrorBarElement.d.ts.map +1 -0
  116. package/dist/discrete/components/layers/LineElement.d.ts +1 -0
  117. package/dist/discrete/components/layers/LineElement.d.ts.map +1 -0
  118. package/dist/discrete/components/layers/LogoElement.d.ts +1 -0
  119. package/dist/discrete/components/layers/LogoElement.d.ts.map +1 -0
  120. package/dist/discrete/components/layers/PairedPointsElement.d.ts +1 -0
  121. package/dist/discrete/components/layers/PairedPointsElement.d.ts.map +1 -0
  122. package/dist/discrete/components/layers/SinaElement.d.ts +1 -0
  123. package/dist/discrete/components/layers/SinaElement.d.ts.map +1 -0
  124. package/dist/discrete/components/layers/StackedAreaElement.d.ts +1 -0
  125. package/dist/discrete/components/layers/StackedAreaElement.d.ts.map +1 -0
  126. package/dist/discrete/components/layers/StackedBarElement.d.ts +1 -0
  127. package/dist/discrete/components/layers/StackedBarElement.d.ts.map +1 -0
  128. package/dist/discrete/components/layers/StatsPValue.d.ts +1 -0
  129. package/dist/discrete/components/layers/StatsPValue.d.ts.map +1 -0
  130. package/dist/discrete/components/layers/ViolinElement.d.ts +1 -0
  131. package/dist/discrete/components/layers/ViolinElement.d.ts.map +1 -0
  132. package/dist/discrete/components/layers/seqAlphabet.d.ts +1 -0
  133. package/dist/discrete/components/layers/seqAlphabet.d.ts.map +1 -0
  134. package/dist/discrete/components/types.d.ts +1 -0
  135. package/dist/discrete/components/types.d.ts.map +1 -0
  136. package/dist/discrete/constants.d.ts +1 -0
  137. package/dist/discrete/constants.d.ts.map +1 -0
  138. package/dist/discrete/index.d.ts +1 -0
  139. package/dist/discrete/index.d.ts.map +1 -0
  140. package/dist/discrete/index.js +151 -165
  141. package/dist/discrete/index.js.map +1 -1
  142. package/dist/discrete/layers/bar.d.ts +1 -0
  143. package/dist/discrete/layers/bar.d.ts.map +1 -0
  144. package/dist/discrete/layers/binnedDots.d.ts +1 -0
  145. package/dist/discrete/layers/binnedDots.d.ts.map +1 -0
  146. package/dist/discrete/layers/boxes.d.ts +1 -0
  147. package/dist/discrete/layers/boxes.d.ts.map +1 -0
  148. package/dist/discrete/layers/dots.d.ts +1 -0
  149. package/dist/discrete/layers/dots.d.ts.map +1 -0
  150. package/dist/discrete/layers/errorbars.d.ts +1 -0
  151. package/dist/discrete/layers/errorbars.d.ts.map +1 -0
  152. package/dist/discrete/layers/index.d.ts +1 -0
  153. package/dist/discrete/layers/index.d.ts.map +1 -0
  154. package/dist/discrete/layers/lines.d.ts +1 -0
  155. package/dist/discrete/layers/lines.d.ts.map +1 -0
  156. package/dist/discrete/layers/logo.d.ts +1 -0
  157. package/dist/discrete/layers/logo.d.ts.map +1 -0
  158. package/dist/discrete/layers/pairedPoints.d.ts +1 -0
  159. package/dist/discrete/layers/pairedPoints.d.ts.map +1 -0
  160. package/dist/discrete/layers/sina.d.ts +1 -0
  161. package/dist/discrete/layers/sina.d.ts.map +1 -0
  162. package/dist/discrete/layers/stackedArea.d.ts +1 -0
  163. package/dist/discrete/layers/stackedArea.d.ts.map +1 -0
  164. package/dist/discrete/layers/stackedBar.d.ts +1 -0
  165. package/dist/discrete/layers/stackedBar.d.ts.map +1 -0
  166. package/dist/discrete/layers/stats/MannWhitneyU.d.ts +1 -0
  167. package/dist/discrete/layers/stats/MannWhitneyU.d.ts.map +1 -0
  168. package/dist/discrete/layers/stats/index.d.ts +1 -0
  169. package/dist/discrete/layers/stats/index.d.ts.map +1 -0
  170. package/dist/discrete/layers/stats/pValueCalculation.d.ts +1 -0
  171. package/dist/discrete/layers/stats/pValueCalculation.d.ts.map +1 -0
  172. package/dist/discrete/layers/stats/pValueCorrection.d.ts +1 -0
  173. package/dist/discrete/layers/stats/pValueCorrection.d.ts.map +1 -0
  174. package/dist/discrete/layers/types.d.ts +1 -0
  175. package/dist/discrete/layers/types.d.ts.map +1 -0
  176. package/dist/discrete/layers/violins.d.ts +1 -0
  177. package/dist/discrete/layers/violins.d.ts.map +1 -0
  178. package/dist/discrete/utils/getChartStatsPadding.d.ts +1 -0
  179. package/dist/discrete/utils/getChartStatsPadding.d.ts.map +1 -0
  180. package/dist/discrete/utils/getFacetLabels.d.ts +1 -0
  181. package/dist/discrete/utils/getFacetLabels.d.ts.map +1 -0
  182. package/dist/discrete/utils/getFacetStringKey.d.ts +1 -0
  183. package/dist/discrete/utils/getFacetStringKey.d.ts.map +1 -0
  184. package/dist/discrete/utils/getOutliersBounds.d.ts +1 -0
  185. package/dist/discrete/utils/getOutliersBounds.d.ts.map +1 -0
  186. package/dist/discrete/utils/index.d.ts +1 -0
  187. package/dist/discrete/utils/index.d.ts.map +1 -0
  188. package/dist/discrete/utils/statsPValue.d.ts +1 -0
  189. package/dist/discrete/utils/statsPValue.d.ts.map +1 -0
  190. package/dist/heatmap/ChartRenderer.d.ts +1 -0
  191. package/dist/heatmap/ChartRenderer.d.ts.map +1 -0
  192. package/dist/heatmap/HeatmapSettingsImpl.d.ts +2 -0
  193. package/dist/heatmap/HeatmapSettingsImpl.d.ts.map +1 -0
  194. package/dist/heatmap/HeatmapSettingsImpl.js +29 -28
  195. package/dist/heatmap/HeatmapSettingsImpl.js.map +1 -1
  196. package/dist/heatmap/components/Annotations/Annotation.d.ts +1 -0
  197. package/dist/heatmap/components/Annotations/Annotation.d.ts.map +1 -0
  198. package/dist/heatmap/components/Annotations/AnnotationCellsCanvas.d.ts +1 -0
  199. package/dist/heatmap/components/Annotations/AnnotationCellsCanvas.d.ts.map +1 -0
  200. package/dist/heatmap/components/Annotations/AnnotationCellsSvg.d.ts +1 -0
  201. package/dist/heatmap/components/Annotations/AnnotationCellsSvg.d.ts.map +1 -0
  202. package/dist/heatmap/components/Annotations/index.d.ts +1 -0
  203. package/dist/heatmap/components/Annotations/index.d.ts.map +1 -0
  204. package/dist/heatmap/components/CanvasCells.d.ts +1 -0
  205. package/dist/heatmap/components/CanvasCells.d.ts.map +1 -0
  206. package/dist/heatmap/components/Captions/AxisCaptions.d.ts +1 -0
  207. package/dist/heatmap/components/Captions/AxisCaptions.d.ts.map +1 -0
  208. package/dist/heatmap/components/Captions/GroupCaptions.d.ts +1 -0
  209. package/dist/heatmap/components/Captions/GroupCaptions.d.ts.map +1 -0
  210. package/dist/heatmap/components/Captions/index.d.ts +1 -0
  211. package/dist/heatmap/components/Captions/index.d.ts.map +1 -0
  212. package/dist/heatmap/components/Chart.d.ts +1 -0
  213. package/dist/heatmap/components/Chart.d.ts.map +1 -0
  214. package/dist/heatmap/components/ChartsGroup.d.ts +1 -0
  215. package/dist/heatmap/components/ChartsGroup.d.ts.map +1 -0
  216. package/dist/heatmap/components/Dendrograms.d.ts +1 -0
  217. package/dist/heatmap/components/Dendrograms.d.ts.map +1 -0
  218. package/dist/heatmap/components/Frames.d.ts +1 -0
  219. package/dist/heatmap/components/Frames.d.ts.map +1 -0
  220. package/dist/heatmap/components/SvgCells.d.ts +1 -0
  221. package/dist/heatmap/components/SvgCells.d.ts.map +1 -0
  222. package/dist/heatmap/components/tooltipUtils.d.ts +1 -0
  223. package/dist/heatmap/components/tooltipUtils.d.ts.map +1 -0
  224. package/dist/heatmap/components/types.d.ts +1 -0
  225. package/dist/heatmap/components/types.d.ts.map +1 -0
  226. package/dist/heatmap/constants.d.ts +1 -0
  227. package/dist/heatmap/constants.d.ts.map +1 -0
  228. package/dist/heatmap/fillCellsData.d.ts +2 -1
  229. package/dist/heatmap/fillCellsData.d.ts.map +1 -0
  230. package/dist/heatmap/fillCellsData.js +185 -173
  231. package/dist/heatmap/fillCellsData.js.map +1 -1
  232. package/dist/heatmap/getCells.d.ts +2 -1
  233. package/dist/heatmap/getCells.d.ts.map +1 -0
  234. package/dist/heatmap/getCells.js +10 -9
  235. package/dist/heatmap/getCells.js.map +1 -1
  236. package/dist/heatmap/getClusters.d.ts +1 -0
  237. package/dist/heatmap/getClusters.d.ts.map +1 -0
  238. package/dist/heatmap/getDendrograms.d.ts +1 -0
  239. package/dist/heatmap/getDendrograms.d.ts.map +1 -0
  240. package/dist/heatmap/index.d.ts +1 -0
  241. package/dist/heatmap/index.d.ts.map +1 -0
  242. package/dist/heatmap/index.js +95 -102
  243. package/dist/heatmap/index.js.map +1 -1
  244. package/dist/heatmap/utils/calculateAnnotationTitleSizes.d.ts +1 -0
  245. package/dist/heatmap/utils/calculateAnnotationTitleSizes.d.ts.map +1 -0
  246. package/dist/heatmap/utils/calculateCaptionTails.d.ts +1 -0
  247. package/dist/heatmap/utils/calculateCaptionTails.d.ts.map +1 -0
  248. package/dist/heatmap/utils/calculateChartSideElementSizes.d.ts +1 -0
  249. package/dist/heatmap/utils/calculateChartSideElementSizes.d.ts.map +1 -0
  250. package/dist/heatmap/utils/calculateSideElementsBBoxes.d.ts +1 -0
  251. package/dist/heatmap/utils/calculateSideElementsBBoxes.d.ts.map +1 -0
  252. package/dist/heatmap/utils/createColorScales.d.ts +1 -0
  253. package/dist/heatmap/utils/createColorScales.d.ts.map +1 -0
  254. package/dist/heatmap/utils/index.d.ts +1 -0
  255. package/dist/heatmap/utils/index.d.ts.map +1 -0
  256. package/dist/histogram/ChartRenderer.d.ts +1 -0
  257. package/dist/histogram/ChartRenderer.d.ts.map +1 -0
  258. package/dist/histogram/HistogramSettingsImpl.d.ts +2 -0
  259. package/dist/histogram/HistogramSettingsImpl.d.ts.map +1 -0
  260. package/dist/histogram/HistogramSettingsImpl.js +43 -43
  261. package/dist/histogram/HistogramSettingsImpl.js.map +1 -1
  262. package/dist/histogram/components/Chart.d.ts +1 -0
  263. package/dist/histogram/components/Chart.d.ts.map +1 -0
  264. package/dist/histogram/components/Chart.js +53 -53
  265. package/dist/histogram/components/Chart.js.map +1 -1
  266. package/dist/histogram/components/ChartsGroup.d.ts +1 -0
  267. package/dist/histogram/components/ChartsGroup.d.ts.map +1 -0
  268. package/dist/histogram/components/types.d.ts +1 -0
  269. package/dist/histogram/components/types.d.ts.map +1 -0
  270. package/dist/histogram/constants.d.ts +1 -0
  271. package/dist/histogram/constants.d.ts.map +1 -0
  272. package/dist/histogram/getHistogramData.d.ts +3 -2
  273. package/dist/histogram/getHistogramData.d.ts.map +1 -0
  274. package/dist/histogram/getHistogramData.js +51 -50
  275. package/dist/histogram/getHistogramData.js.map +1 -1
  276. package/dist/histogram/index.d.ts +1 -1
  277. package/dist/histogram/index.d.ts.map +1 -0
  278. package/dist/histogram/index.js +89 -90
  279. package/dist/histogram/index.js.map +1 -1
  280. package/dist/index.d.ts +4 -1
  281. package/dist/index.d.ts.map +1 -0
  282. package/dist/index.js +8 -4
  283. package/dist/index.js.map +1 -1
  284. package/dist/scatterplot/ChartRenderer.d.ts +1 -0
  285. package/dist/scatterplot/ChartRenderer.d.ts.map +1 -0
  286. package/dist/scatterplot/ScatterplotSettingsImpl.d.ts +3 -0
  287. package/dist/scatterplot/ScatterplotSettingsImpl.d.ts.map +1 -0
  288. package/dist/scatterplot/ScatterplotSettingsImpl.js.map +1 -1
  289. package/dist/scatterplot/components/Chart.d.ts +1 -0
  290. package/dist/scatterplot/components/Chart.d.ts.map +1 -0
  291. package/dist/scatterplot/components/ChartAxis.d.ts +1 -0
  292. package/dist/scatterplot/components/ChartAxis.d.ts.map +1 -0
  293. package/dist/scatterplot/components/ChartAxisTitles.d.ts +1 -0
  294. package/dist/scatterplot/components/ChartAxisTitles.d.ts.map +1 -0
  295. package/dist/scatterplot/components/ChartFacetTitle.d.ts +1 -0
  296. package/dist/scatterplot/components/ChartFacetTitle.d.ts.map +1 -0
  297. package/dist/scatterplot/components/ChartLayersData.d.ts +1 -0
  298. package/dist/scatterplot/components/ChartLayersData.d.ts.map +1 -0
  299. package/dist/scatterplot/components/ChartTooltip.d.ts +1 -0
  300. package/dist/scatterplot/components/ChartTooltip.d.ts.map +1 -0
  301. package/dist/scatterplot/components/ChartTrendsData.d.ts +1 -0
  302. package/dist/scatterplot/components/ChartTrendsData.d.ts.map +1 -0
  303. package/dist/scatterplot/components/ChartsGroup.d.ts +1 -0
  304. package/dist/scatterplot/components/ChartsGroup.d.ts.map +1 -0
  305. package/dist/scatterplot/components/Grid.d.ts +1 -0
  306. package/dist/scatterplot/components/Grid.d.ts.map +1 -0
  307. package/dist/scatterplot/components/types.d.ts +1 -0
  308. package/dist/scatterplot/components/types.d.ts.map +1 -0
  309. package/dist/scatterplot/constants.d.ts +1 -0
  310. package/dist/scatterplot/constants.d.ts.map +1 -0
  311. package/dist/scatterplot/dots.d.ts +3 -2
  312. package/dist/scatterplot/dots.d.ts.map +1 -0
  313. package/dist/scatterplot/dots.js +17 -16
  314. package/dist/scatterplot/dots.js.map +1 -1
  315. package/dist/scatterplot/getLayersData.d.ts +1 -0
  316. package/dist/scatterplot/getLayersData.d.ts.map +1 -0
  317. package/dist/scatterplot/index.d.ts +1 -1
  318. package/dist/scatterplot/index.d.ts.map +1 -0
  319. package/dist/scatterplot/index.js +100 -106
  320. package/dist/scatterplot/index.js.map +1 -1
  321. package/dist/scatterplot/linearRegression.d.ts +1 -0
  322. package/dist/scatterplot/linearRegression.d.ts.map +1 -0
  323. package/dist/scatterplot/utils/createAesGetter.d.ts +1 -0
  324. package/dist/scatterplot/utils/createAesGetter.d.ts.map +1 -0
  325. package/dist/scatterplot/utils/createLegendInfo.d.ts +1 -0
  326. package/dist/scatterplot/utils/createLegendInfo.d.ts.map +1 -0
  327. package/dist/scatterplot/utils/createLegendInfo.js +41 -41
  328. package/dist/scatterplot/utils/createLegendInfo.js.map +1 -1
  329. package/dist/scatterplot/utils/formatColumnValue.d.ts +1 -0
  330. package/dist/scatterplot/utils/formatColumnValue.d.ts.map +1 -0
  331. package/dist/scatterplot/utils/formatColumnValue.js +7 -6
  332. package/dist/scatterplot/utils/formatColumnValue.js.map +1 -1
  333. package/dist/scatterplot/utils/getTicksAndFormat.d.ts +1 -0
  334. package/dist/scatterplot/utils/getTicksAndFormat.d.ts.map +1 -0
  335. package/dist/scatterplot/utils/getVisibleLabels.d.ts +1 -0
  336. package/dist/scatterplot/utils/getVisibleLabels.d.ts.map +1 -0
  337. package/dist/scatterplot/utils/isNumericScale.d.ts +1 -0
  338. package/dist/scatterplot/utils/isNumericScale.d.ts.map +1 -0
  339. package/dist/scatterplot/utils/sortDotsByGrouping.d.ts +1 -0
  340. package/dist/scatterplot/utils/sortDotsByGrouping.d.ts.map +1 -0
  341. package/dist/scatterplot-umap/ChartRenderer.d.ts +1 -0
  342. package/dist/scatterplot-umap/ChartRenderer.d.ts.map +1 -0
  343. package/dist/scatterplot-umap/SettingsImpl.d.ts +1 -0
  344. package/dist/scatterplot-umap/SettingsImpl.d.ts.map +1 -0
  345. package/dist/scatterplot-umap/colors.d.ts +1 -0
  346. package/dist/scatterplot-umap/colors.d.ts.map +1 -0
  347. package/dist/scatterplot-umap/components/Lasso.d.ts +1 -0
  348. package/dist/scatterplot-umap/components/Lasso.d.ts.map +1 -0
  349. package/dist/scatterplot-umap/components/LowerSVG.d.ts +1 -0
  350. package/dist/scatterplot-umap/components/LowerSVG.d.ts.map +1 -0
  351. package/dist/scatterplot-umap/components/LowerSVG.js.map +1 -1
  352. package/dist/scatterplot-umap/components/SVGLayer.d.ts +1 -0
  353. package/dist/scatterplot-umap/components/SVGLayer.d.ts.map +1 -0
  354. package/dist/scatterplot-umap/components/UpperSVG.d.ts +1 -0
  355. package/dist/scatterplot-umap/components/UpperSVG.d.ts.map +1 -0
  356. package/dist/scatterplot-umap/constants.d.ts +1 -0
  357. package/dist/scatterplot-umap/constants.d.ts.map +1 -0
  358. package/dist/scatterplot-umap/index.d.ts +1 -0
  359. package/dist/scatterplot-umap/index.d.ts.map +1 -0
  360. package/dist/scatterplot-umap/index.js +77 -74
  361. package/dist/scatterplot-umap/index.js.map +1 -1
  362. package/dist/scatterplot-umap/types.d.ts +1 -0
  363. package/dist/scatterplot-umap/types.d.ts.map +1 -0
  364. package/dist/types/bubble.d.ts +48 -0
  365. package/dist/types/bubble.d.ts.map +1 -0
  366. package/dist/types/bubble.js +19 -18
  367. package/dist/types/bubble.js.map +1 -1
  368. package/dist/types/common.d.ts +39 -0
  369. package/dist/types/common.d.ts.map +1 -0
  370. package/dist/types/common.js +31 -30
  371. package/dist/types/common.js.map +1 -1
  372. package/dist/types/dendro.d.ts +109 -0
  373. package/dist/types/dendro.d.ts.map +1 -0
  374. package/dist/types/dendro.js +10 -9
  375. package/dist/types/dendro.js.map +1 -1
  376. package/dist/types/discrete.d.ts +176 -5
  377. package/dist/types/discrete.d.ts.map +1 -0
  378. package/dist/types/discrete.js +12 -11
  379. package/dist/types/discrete.js.map +1 -1
  380. package/dist/types/heatmap.d.ts +165 -0
  381. package/dist/types/heatmap.d.ts.map +1 -0
  382. package/dist/types/heatmap.js +2 -1
  383. package/dist/types/heatmap.js.map +1 -1
  384. package/dist/types/histogram.d.ts +28 -0
  385. package/dist/types/histogram.d.ts.map +1 -0
  386. package/dist/types/histogram.js +43 -42
  387. package/dist/types/histogram.js.map +1 -1
  388. package/dist/types/index.d.ts +1 -0
  389. package/dist/types/index.d.ts.map +1 -0
  390. package/dist/types/scatterplot-umap.d.ts +141 -0
  391. package/dist/types/scatterplot-umap.d.ts.map +1 -0
  392. package/dist/types/scatterplot.d.ts +189 -0
  393. package/dist/types/scatterplot.d.ts.map +1 -0
  394. package/dist/types/scatterplot.js +21 -19
  395. package/dist/types/scatterplot.js.map +1 -1
  396. package/dist/utils/TextMeasurer/TextMeasurer.d.ts +1 -0
  397. package/dist/utils/TextMeasurer/TextMeasurer.d.ts.map +1 -0
  398. package/dist/utils/WorkerFactory.d.ts +1 -0
  399. package/dist/utils/WorkerFactory.d.ts.map +1 -0
  400. package/dist/utils/arrangeLegendParts.d.ts +1 -0
  401. package/dist/utils/arrangeLegendParts.d.ts.map +1 -0
  402. package/dist/utils/arraysAreDifferent.d.ts +1 -0
  403. package/dist/utils/arraysAreDifferent.d.ts.map +1 -0
  404. package/dist/utils/createMultilineDiscreteLabels.d.ts +1 -0
  405. package/dist/utils/createMultilineDiscreteLabels.d.ts.map +1 -0
  406. package/dist/utils/getChartEdgeSides.d.ts +1 -0
  407. package/dist/utils/getChartEdgeSides.d.ts.map +1 -0
  408. package/dist/utils/getContinuousColorScale.d.ts +1 -0
  409. package/dist/utils/getContinuousColorScale.d.ts.map +1 -0
  410. package/dist/utils/getContinuousLegendTicks.d.ts +1 -0
  411. package/dist/utils/getContinuousLegendTicks.d.ts.map +1 -0
  412. package/dist/utils/getFacetKeysFromValueLists.d.ts +6 -0
  413. package/dist/utils/getFacetKeysFromValueLists.d.ts.map +1 -0
  414. package/dist/utils/getFacetKeysFromValueLists.js +9 -0
  415. package/dist/utils/getFacetKeysFromValueLists.js.map +1 -0
  416. package/dist/utils/getFacetOrGroupKey.d.ts +1 -0
  417. package/dist/utils/getFacetOrGroupKey.d.ts.map +1 -0
  418. package/dist/utils/getFacetRowsColumns.d.ts +1 -0
  419. package/dist/utils/getFacetRowsColumns.d.ts.map +1 -0
  420. package/dist/utils/getKeysCombination.d.ts +1 -0
  421. package/dist/utils/getKeysCombination.d.ts.map +1 -0
  422. package/dist/utils/getLegendWidth.d.ts +1 -0
  423. package/dist/utils/getLegendWidth.d.ts.map +1 -0
  424. package/dist/utils/getLineShape.d.ts +1 -0
  425. package/dist/utils/getLineShape.d.ts.map +1 -0
  426. package/dist/utils/getPointShape.d.ts +2 -1
  427. package/dist/utils/getPointShape.d.ts.map +1 -0
  428. package/dist/utils/getSizeLegendItem.d.ts +1 -0
  429. package/dist/utils/getSizeLegendItem.d.ts.map +1 -0
  430. package/dist/utils/hooks/useFunction.d.ts +1 -0
  431. package/dist/utils/hooks/useFunction.d.ts.map +1 -0
  432. package/dist/utils/index.d.ts +1 -0
  433. package/dist/utils/index.d.ts.map +1 -0
  434. package/dist/utils/measureMultilineDiscreteLabels.d.ts +1 -0
  435. package/dist/utils/measureMultilineDiscreteLabels.d.ts.map +1 -0
  436. package/dist/utils/numberFormat.d.ts +1 -0
  437. package/dist/utils/numberFormat.d.ts.map +1 -0
  438. package/dist/utils/splitTextByWidth.d.ts +1 -0
  439. package/dist/utils/splitTextByWidth.d.ts.map +1 -0
  440. package/package.json +5 -5
@@ -1,234 +1,220 @@
1
- var F = Object.defineProperty;
2
- var T = (l, n, e) => n in l ? F(l, n, { enumerable: !0, configurable: !0, writable: !0, value: e }) : l[n] = e;
3
- var D = (l, n, e) => T(l, typeof n != "symbol" ? n + "" : n, e);
4
- import { l as P } from "../_virtual/lodash.js";
5
- import { s as M } from "../_virtual/server.browser.js";
6
- import { AbstractChart as V } from "../AbstractChart.js";
7
- import { NO_GROUPED as E } from "../DataFrame.js";
8
- import { getUnknownErrorInfo as b, isErrorInfo as k } from "../types/common.js";
1
+ var P = Object.defineProperty;
2
+ var O = (s, r, a) => r in s ? P(s, r, { enumerable: !0, configurable: !0, writable: !0, value: a }) : s[r] = a;
3
+ var y = (s, r, a) => O(s, typeof r != "symbol" ? r + "" : r, a);
4
+ import { l as G } from "../_virtual/lodash.js";
5
+ import { s as U } from "../_virtual/server.browser.js";
6
+ import { AbstractChart as F } from "../AbstractChart.js";
7
+ import { NO_GROUPED as _ } from "../DataFrame.js";
8
+ import { getUnknownErrorInfo as w, isErrorInfo as v } 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 j from "./ChartRenderer.js";
16
- import { MAX_GROUPS_COUNT as w, MAX_FACETS_COUNT as A } from "../constants.js";
17
- import { DiscreteSettingsImpl as N, StatLayer as B, BoxLayer as H, ViolinLayer as X, DotLayer as q, LineLayer as z, ErrorBarLayer as J, BarLayer as Q, StackedBarLayer as W, StackedAreaLayer as Y, BinnedDotsLayer as Z, PairedPointsLayer as $, SinaLayer as tt, LogoPlotLayer as at } from "./DiscreteSettingsImpl.js";
18
- import { getBoxesData as et } from "./layers/boxes.js";
19
- import { getViolinsData as rt } from "./layers/violins.js";
20
- import { getSinaData as ot } from "./layers/sina.js";
21
- import { getDotsData as nt } from "./layers/dots.js";
22
- import { getLinesData as it } from "./layers/lines.js";
15
+ import T from "./ChartRenderer.js";
16
+ import { DiscreteSettingsImpl as B, StatLayer as C, BoxLayer as j, ViolinLayer as H, DotLayer as q, LineLayer as z, ErrorBarLayer as J, BarLayer as M, StackedBarLayer as Q, StackedAreaLayer as W, BinnedDotsLayer as X, PairedPointsLayer as Y, SinaLayer as Z, LogoPlotLayer as $ } from "./DiscreteSettingsImpl.js";
17
+ import { getBoxesData as tt } from "./layers/boxes.js";
18
+ import { getViolinsData as et } from "./layers/violins.js";
19
+ import { getSinaData as at } from "./layers/sina.js";
20
+ import { getDotsData as rt } from "./layers/dots.js";
21
+ import { getLinesData as nt } from "./layers/lines.js";
23
22
  import { getErrorBarsData as st } from "./layers/errorbars.js";
24
- import { getBarsData as ut } from "./layers/bar.js";
25
- import { getStackedBarsData as lt } from "./layers/stackedBar.js";
26
- import { getStackedAreaData as ct } from "./layers/stackedArea.js";
27
- import { getBinnedDotsData as ht } from "./layers/binnedDots.js";
28
- import { getPairedPointsData as dt } from "./layers/pairedPoints.js";
29
- import { getLogoData as mt } from "./layers/logo.js";
30
- import { getStatsData as pt } from "./layers/stats/index.js";
31
- import { getFacetStringKey as x } from "./utils/getFacetStringKey.js";
32
- import { arraysAreDifferent as I } from "../utils/arraysAreDifferent.js";
33
- import { getFacetLabels as ft } from "./utils/getFacetLabels.js";
34
- function R(l, n, e = null) {
35
- const t = n.value, r = l.getColumnCategories(t);
36
- return P.intersection(e ?? r, r).map(String);
23
+ import { getBarsData as ot } from "./layers/bar.js";
24
+ import { getStackedBarsData as it } from "./layers/stackedBar.js";
25
+ import { getStackedAreaData as lt } from "./layers/stackedArea.js";
26
+ import { getBinnedDotsData as ct } from "./layers/binnedDots.js";
27
+ import { getPairedPointsData as ut } from "./layers/pairedPoints.js";
28
+ import { getLogoData as ht } from "./layers/logo.js";
29
+ import { getStatsData as dt } from "./layers/stats/index.js";
30
+ import { getFacetStringKey as D } from "./utils/getFacetStringKey.js";
31
+ import { arraysAreDifferent as k } from "../utils/arraysAreDifferent.js";
32
+ import { getFacetLabels as mt } from "./utils/getFacetLabels.js";
33
+ function ft(s, r, a = null) {
34
+ const t = r.value, n = s.getColumnCategories(t);
35
+ return G.intersection(a ?? n, n).map(String);
37
36
  }
38
- function K(l) {
39
- if (!l.length)
37
+ function pt(s) {
38
+ if (!s.length)
40
39
  return [];
41
- let n = [[]];
42
- return l.forEach((e) => {
40
+ let r = [[]];
41
+ return s.forEach((a) => {
43
42
  const t = [];
44
- e.forEach((r) => {
45
- t.push(...n.map((s) => [...s, r]));
46
- }), n = t;
47
- }), n;
43
+ a.forEach((n) => {
44
+ t.push(...r.map((o) => [...o, n]));
45
+ }), r = t;
46
+ }), r;
48
47
  }
49
- function v(l, n) {
50
- if (!n)
48
+ function K(s, r) {
49
+ return !s && r || s && !r ? !0 : !s || !r ? !1 : s.columnName.value !== r.columnName.value || s.columnName.nullValueLabel !== r.columnName.nullValueLabel || k(s.order, r.order, { ignoreOrder: !0 }) || s.allowNullGroup !== r.allowNullGroup;
50
+ }
51
+ function L(s, r) {
52
+ const a = (r == null ? void 0 : r.columnName.nullValueLabel) ?? "NA";
53
+ if (!r)
51
54
  return {
55
+ groupingKeys: [_],
52
56
  keys: ["null"],
53
57
  value: null,
54
58
  label: "",
55
59
  valueLabels: { null: "" },
56
60
  inheritedAes: null
57
61
  };
58
- const e = n.columnName.value, t = n.columnName.valueLabels, r = l.getColumnCategories(e, !1), s = (o) => t ? String(
59
- l.getColumnValue(
60
- t,
61
- l.getColumnCategoryRowIndex(e, o)
62
- )
63
- ) : o, u = l.getColumnCategories(e, !n.allowNullGroup);
62
+ const t = r.columnName.value, n = r.columnName.valueLabels, o = s.getColumnCategories(t, !1), i = (m) => {
63
+ const h = n ? String(
64
+ s.getColumnValue(
65
+ n,
66
+ s.getColumnCategoryRowIndex(t, m)
67
+ )
68
+ ) : m;
69
+ return h === "null" ? a : h;
70
+ }, l = s.getColumnCategories(t, !r.allowNullGroup), u = r.order === void 0 ? l : G.intersection(r.order.map(String), l);
64
71
  return {
65
- keys: n.order === void 0 ? u : P.intersection(n.order.map(String), u),
66
- value: e,
67
- label: n.columnName.label ?? e,
68
- valueLabels: r.reduce((o, h) => (o[h] = s(h), o), {}),
69
- inheritedAes: n.inheritedAes ?? null
72
+ keys: u,
73
+ groupingKeys: u,
74
+ value: t,
75
+ label: r.columnName.label ?? t,
76
+ valueLabels: o.reduce((m, h) => (m[h] = i(h), m), {}),
77
+ inheritedAes: r.inheritedAes ?? null
70
78
  };
71
79
  }
72
- class zt extends V {
73
- constructor(e, t, r) {
74
- super(e, t);
75
- D(this, "settings");
76
- D(this, "chartRenderer", new j());
77
- D(this, "onTooltipHintSwitch", () => {
80
+ class Jt extends F {
81
+ constructor(a, t, n) {
82
+ super(a, t);
83
+ y(this, "settings");
84
+ y(this, "chartRenderer", new T());
85
+ y(this, "onTooltipHintSwitch", () => {
78
86
  });
79
- D(this, "calculatedData", null);
80
- this.settings = new N(t), r && (this.onTooltipHintSwitch = r[0]);
87
+ y(this, "calculatedData", null);
88
+ this.settings = new B(t), n && (this.onTooltipHintSwitch = n[0]);
81
89
  }
82
- mount(e) {
90
+ mount(a) {
83
91
  try {
84
- this.chartRenderer.init(e), this._updateData(), this._updateChart(), this.hasError = !1, this.errorInfo = null;
92
+ this.chartRenderer.init(a), this._updateData(), this._updateChart(), this.hasError = !1, this.errorInfo = null;
85
93
  } catch (t) {
86
- this.hasError = !0, t instanceof Error && (this.errorInfo = k(t.cause) ? t.cause : b(t), this.chartRenderer.renderError(t.message), console.error(t));
94
+ this.hasError = !0, t instanceof Error && (this.errorInfo = v(t.cause) ? t.cause : w(t), this.chartRenderer.renderError(t.message), console.error(t));
87
95
  }
88
96
  }
89
97
  unmount() {
90
98
  this.chartRenderer.clear();
91
99
  }
92
- updateSettingsAndData(e, t) {
100
+ updateSettingsAndData(a, t) {
93
101
  try {
94
- const r = this.settings, s = this.data;
95
- this.settings = new N(t), this.data = e, this._needUpdateCalculatedDataBySettings(r, this.settings) || this._needUpdateCalculatedDataByData(s, this.data) ? this._updateData() : this._updateAesInData(), this._updateChart(), this.hasError = !1, this.errorInfo = null;
96
- } catch (r) {
97
- this.hasError = !0, r instanceof Error && (this.errorInfo = k(r.cause) ? r.cause : b(r), this.chartRenderer.renderError(r.message), console.error(r));
102
+ const n = this.settings, o = this.data;
103
+ this.settings = new B(t), this.data = a, this._needUpdateCalculatedDataBySettings(n, this.settings) || this._needUpdateCalculatedDataByData(o, this.data) ? this._updateData() : this._updateAesInData(), this._updateChart(), this.hasError = !1, this.errorInfo = null;
104
+ } catch (n) {
105
+ this.hasError = !0, n instanceof Error && (this.errorInfo = v(n.cause) ? n.cause : w(n), this.chartRenderer.renderError(n.message), console.error(n));
98
106
  }
99
107
  }
100
- updateChartState(e, t) {
108
+ updateChartState(a, t) {
101
109
  console.warn("no chart state for discrete");
102
110
  }
103
111
  export() {
104
- return this._updateChart(), M.renderToString(this.chartRenderer.component);
112
+ return this._updateChart(), U.renderToString(this.chartRenderer.component);
105
113
  }
106
- _needUpdateCalculatedDataBySettings(e, t) {
107
- var r, s, u, c, o, h, m, p, G, d, f, C;
108
- return e.chartSettings.yAxis.scale !== t.chartSettings.yAxis.scale || (((r = e.primaryGrouping) == null ? void 0 : r.columnName.value) ?? "") !== (((s = t.primaryGrouping) == null ? void 0 : s.columnName.value) ?? "") || (((u = e.secondaryGrouping) == null ? void 0 : u.columnName.value) ?? "") !== (((c = t.secondaryGrouping) == null ? void 0 : c.columnName.value) ?? "") || (((o = e.primaryGrouping) == null ? void 0 : o.allowNullGroup) ?? "") !== (((h = t.primaryGrouping) == null ? void 0 : h.allowNullGroup) ?? "") || (((m = e.secondaryGrouping) == null ? void 0 : m.allowNullGroup) ?? "") !== (((p = t.secondaryGrouping) == null ? void 0 : p.allowNullGroup) ?? "") || I((G = e.primaryGrouping) == null ? void 0 : G.order, (d = t.primaryGrouping) == null ? void 0 : d.order, { ignoreOrder: !0 }) || I((f = e.secondaryGrouping) == null ? void 0 : f.order, (C = t.secondaryGrouping) == null ? void 0 : C.order, { ignoreOrder: !0 }) || e.facetBy.some((i, y) => {
109
- var L;
110
- return i.value !== ((L = t.facetBy[y]) == null ? void 0 : L.value);
111
- }) || e.layers.length !== t.layers.length || e.layers.some((i, y) => !i.isEqualForCalculation(t.layers[y]));
114
+ _needUpdateCalculatedDataBySettings(a, t) {
115
+ var n, o;
116
+ return a.chartSettings.yAxis.scale !== t.chartSettings.yAxis.scale || K(a.primaryGrouping, t.primaryGrouping) || K(a.secondaryGrouping, t.secondaryGrouping) || a.facetBy.some((i, l) => {
117
+ var u;
118
+ return i.value !== ((u = t.facetBy[l]) == null ? void 0 : u.value);
119
+ }) || k(((n = a.facetSettings) == null ? void 0 : n.order) ?? [], ((o = t.facetSettings) == null ? void 0 : o.order) ?? []) || a.layers.length !== t.layers.length || a.layers.some((i, l) => !i.isEqualForCalculation(t.layers[l]));
112
120
  }
113
- _needUpdateCalculatedDataByData(e, t) {
114
- const r = Object.keys(e.data), s = Object.keys(t.data);
115
- return e.id !== t.id || r.length !== s.length || r.some((u) => {
116
- var c;
117
- return e.data[u].length !== ((c = t.data[u]) == null ? void 0 : c.length);
121
+ _needUpdateCalculatedDataByData(a, t) {
122
+ const n = Object.keys(a.data), o = Object.keys(t.data);
123
+ return a.id !== t.id || n.length !== o.length || n.some((i) => {
124
+ var l;
125
+ return a.data[i].length !== ((l = t.data[i]) == null ? void 0 : l.length);
118
126
  });
119
127
  }
120
128
  _updateData() {
121
- var S, _;
122
- const { chartSettings: e, y: t, keyColumn: r, facetBy: s, layers: u, facetSettings: c } = this.settings, { yAxis: o } = e, h = this.data.getColumn(t.value).every((a) => a === null || !(Number(a) < 0)), m = v(this.data, this.settings.primaryGrouping), p = v(this.data, this.settings.secondaryGrouping), G = s.map((a) => a.value);
123
- if (!((S = this.settings.primaryGrouping) != null && S.unlimitedGroupsCount) && m.keys.length > w) {
124
- const a = {
125
- type: "tooManyPrimaryGroups",
126
- info: { count: m.keys.length, maxCount: w }
127
- };
128
- throw Error(a.type, { cause: a });
129
- }
130
- if (!((_ = this.settings.secondaryGrouping) != null && _.unlimitedGroupsCount) && p.keys.length > w) {
131
- const a = {
132
- type: "tooManySecondaryGroups",
133
- info: { count: p.keys.length, maxCount: w }
134
- };
135
- throw Error(a.type, { cause: a });
136
- }
137
- let d = K(
138
- s.map((a) => {
139
- var g;
140
- return R(this.data, a, (g = c == null ? void 0 : c.order) == null ? void 0 : g[a.value]);
141
- })
129
+ var E;
130
+ const { chartSettings: a, y: t, keyColumn: n, facetBy: o, layers: i, facetSettings: l } = this.settings, { yAxis: u } = a, m = this.data.getColumn(t.value).every((e) => e === null || !(Number(e) < 0)), h = L(this.data, this.settings.primaryGrouping), g = L(this.data, this.settings.secondaryGrouping), S = o.length ? o.map((e) => e.value) : [null];
131
+ let d = pt(
132
+ o.map((e) => ft(this.data, e))
142
133
  );
143
- if (d.length === 0 && (d = [[E]]), d.length > A) {
144
- const a = {
145
- type: "tooManyFacets",
146
- info: { count: d.length, maxCount: A }
147
- };
148
- throw Error(a.type, { cause: a });
134
+ if (d.length === 0 && (d = [[_]]), (E = l == null ? void 0 : l.order) != null && E.length) {
135
+ const e = d.map(D);
136
+ d = G.intersection(l.order, e).map((f) => d.find((V) => D(V) === f)).filter((f) => f != null);
149
137
  }
150
- const f = d.map(x), C = ft(this.data, s, f, d);
151
- this.data.setGrouping([...G, m.value, p.value]);
152
- const i = {
138
+ const b = d.map(D), A = mt(this.data, o, b, d), N = o.length ? S.map((e, p) => [...new Set(d.map((f) => f[p]))]) : [void 0];
139
+ this.data.setGrouping(
140
+ [...S, h.value, g.value],
141
+ [...N, h.groupingKeys, g.groupingKeys]
142
+ );
143
+ const c = {
153
144
  facet: d,
154
- primary: m.value !== null ? m.keys : [E],
155
- secondary: p.value !== null ? p.keys : [E]
156
- }, y = i.facet.reduce((a, g) => (a[x(g)] = i.primary.filter(
157
- (O) => this.data.getRowsByGrouping([...g, O]).length > 0
158
- ).map(String), a), {}), L = u.filter((a) => !(a instanceof B)).map((a) => {
159
- if (a instanceof H)
160
- return et(a, i, this.data, t, r, o);
161
- if (a instanceof X)
162
- return rt(a, i, this.data, t, o);
163
- if (a instanceof q)
164
- return nt(a, i, this.data, t, o, r);
165
- if (a instanceof z)
166
- return it(a, i, this.data, t, o);
167
- if (a instanceof J)
168
- return st(a, i, this.data, t, o);
169
- if (a instanceof Q)
170
- return ut(a, i, this.data, t, o);
171
- if (a instanceof W)
172
- return lt(a, i, this.data, t);
173
- if (a instanceof Y)
174
- return ct(a, i, this.data, t);
175
- if (a instanceof Z)
176
- return ht(a, i, this.data, t, o);
177
- if (a instanceof $)
178
- return dt(a, i, this.data, t, o);
179
- if (a instanceof tt)
180
- return ot(a, i, this.data, t, o);
181
- if (a instanceof at)
182
- return mt(a, i, this.data, t);
145
+ primary: h.groupingKeys,
146
+ secondary: g.groupingKeys
147
+ }, x = c.facet.reduce((e, p) => (e[D(p)] = c.primary.filter(
148
+ (f) => this.data.getRowsByGrouping([...p, f]).length > 0
149
+ ).map(String), e), {}), I = i.filter((e) => !(e instanceof C)).map((e) => {
150
+ if (e instanceof j)
151
+ return tt(e, c, this.data, t, n, u);
152
+ if (e instanceof H)
153
+ return et(e, c, this.data, t, u);
154
+ if (e instanceof q)
155
+ return rt(e, c, this.data, t, u, n);
156
+ if (e instanceof z)
157
+ return nt(e, c, this.data, t, u);
158
+ if (e instanceof J)
159
+ return st(e, c, this.data, t, u);
160
+ if (e instanceof M)
161
+ return ot(e, c, this.data, t, u);
162
+ if (e instanceof Q)
163
+ return it(e, c, this.data, t);
164
+ if (e instanceof W)
165
+ return lt(e, c, this.data, t);
166
+ if (e instanceof X)
167
+ return ct(e, c, this.data, t, u);
168
+ if (e instanceof Y)
169
+ return ut(e, c, this.data, t, u);
170
+ if (e instanceof Z)
171
+ return at(e, c, this.data, t, u);
172
+ if (e instanceof $)
173
+ return ht(e, c, this.data, t);
183
174
  throw new Error("Unknown layer type");
184
- }), U = u.filter((a) => a instanceof B).map((a) => {
185
- if (m.value === null)
175
+ }), R = i.filter((e) => e instanceof C).map((e) => {
176
+ if (h.value === null)
186
177
  throw new Error("Cannot calculate p-value without data grouping");
187
- return pt(a, i.facet, i.primary, t, this.data);
178
+ return dt(e, c.facet, c.primary, t, this.data);
188
179
  });
189
180
  this.calculatedData = {
190
- layersData: L,
191
- statsLayersData: U,
192
- primaryGrouping: m,
193
- secondaryGrouping: p,
181
+ layersData: I,
182
+ statsLayersData: R,
183
+ primaryGrouping: h,
184
+ secondaryGrouping: g,
194
185
  facetKeyLists: d,
195
- nonEmptyGroupsByFacets: y,
196
- onlyPositive: h,
197
- facetKeys: f,
198
- facetLabels: C
186
+ nonEmptyGroupsByFacets: x,
187
+ onlyPositive: m,
188
+ facetKeys: b,
189
+ facetLabels: A
199
190
  };
200
191
  }
201
192
  _updateAesInData() {
202
193
  if (this.calculatedData === null)
203
194
  return;
204
- const { layers: e, facetBy: t, primaryGrouping: r, secondaryGrouping: s, facetSettings: u } = this.settings, c = e.filter((o) => !(o instanceof B));
205
- for (let o = 0; o < c.length; o++) {
206
- const h = c[o];
207
- "aes" in h && (this.calculatedData.layersData[o].aes = h.aes);
195
+ const { layers: a, primaryGrouping: t, secondaryGrouping: n } = this.settings, o = a.filter((i) => !(i instanceof C));
196
+ for (let i = 0; i < o.length; i++) {
197
+ const l = o[i];
198
+ "aes" in l && (this.calculatedData.layersData[i].aes = l.aes);
208
199
  }
209
- this.calculatedData.primaryGrouping = v(this.data, r), this.calculatedData.secondaryGrouping = v(this.data, s), this.calculatedData.facetKeyLists = t.length ? K(
210
- t.map((o) => {
211
- var h;
212
- return R(this.data, o, (h = u == null ? void 0 : u.order) == null ? void 0 : h[o.value]);
213
- })
214
- ) : [[E]];
200
+ this.calculatedData.primaryGrouping = L(this.data, t), this.calculatedData.secondaryGrouping = L(this.data, n);
215
201
  }
216
202
  _updateChart() {
217
203
  if (!this.calculatedData)
218
204
  return;
219
- const { id: e, chartSettings: t, keyColumn: r, facetSettings: s } = this.settings, { facetLabels: u } = this.calculatedData;
205
+ const { id: a, chartSettings: t, keyColumn: n, facetSettings: o } = this.settings, { facetLabels: i } = this.calculatedData;
220
206
  this.chartRenderer.render(
221
207
  this.data,
222
- e,
208
+ a,
223
209
  t,
224
210
  this.calculatedData.primaryGrouping,
225
211
  this.calculatedData.secondaryGrouping,
226
- s,
212
+ o,
227
213
  this.calculatedData.facetKeys,
228
- this.calculatedData.facetKeys.map((c) => u[c]),
214
+ this.calculatedData.facetKeys.map((l) => i[l]),
229
215
  this.calculatedData.layersData,
230
216
  this.calculatedData.statsLayersData,
231
- r,
217
+ n,
232
218
  this.calculatedData.nonEmptyGroupsByFacets,
233
219
  this.calculatedData.onlyPositive,
234
220
  this.onTooltipHintSwitch
@@ -236,6 +222,6 @@ class zt extends V {
236
222
  }
237
223
  }
238
224
  export {
239
- zt as ChartDiscrete
225
+ Jt as ChartDiscrete
240
226
  };
241
227
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/discrete/index.ts"],"sourcesContent":["import { intersection } from 'lodash';\nimport { renderToString } from 'react-dom/server.browser';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame, GroupKey } from '../DataFrame';\nimport { NO_GROUPED } from '../DataFrame';\nimport {\n type Category, type ColumnName, type DataValue, type DiscreteEventHandlers,\n type DiscreteSettings, type ErrorInfoFacets, type ErrorInfoPrimaryGroups,\n type ErrorInfoSecondaryGroups, getUnknownErrorInfo, type GroupingData, isErrorInfo\n} from '../types';\nimport ChartRenderer from './ChartRenderer';\nimport { MAX_FACETS_COUNT, MAX_GROUPS_COUNT } from '../constants';\nimport {\n BarLayer,\n BinnedDotsLayer,\n BoxLayer,\n DiscreteSettingsImpl,\n DotLayer,\n ErrorBarLayer,\n LineLayer,\n LogoPlotLayer,\n PairedPointsLayer,\n SinaLayer, StackedAreaLayer,\n StackedBarLayer,\n StatLayer,\n ViolinLayer,\n} from './DiscreteSettingsImpl';\nimport {\n getBarsData,\n getBinnedDotsData,\n getBoxesData,\n getDotsData,\n getErrorBarsData,\n getLinesData,\n getPairedPointsData,\n getSinaData,\n getStackedBarsData,\n getStatsData,\n getViolinsData,\n} from './layers';\nimport { getLogoData } from './layers/logo';\nimport { getStackedAreaData } from './layers/stackedArea';\nimport type { LayerData, StatsData } from './layers/types';\nimport { getFacetStringKey } from './utils/getFacetStringKey';\nimport { arraysAreDifferent } from '../utils/arraysAreDifferent';\nimport { getFacetLabels } from './utils/getFacetLabels';\n\nfunction getGroupingKeys(data: DataFrame, column: ColumnName, order: DataValue[] | null = null) {\n const groupingColumn = column.value;\n const availableKeys = data.getColumnCategories(groupingColumn);\n return intersection(order ?? availableKeys, availableKeys).map(String);\n}\n\n// all combinations with 1 key from each list\nfunction getKeysCombinations(keysLists: string[][]) {\n if (!keysLists.length) {\n return [];\n }\n let result: string[][] = [[]];\n keysLists.forEach(keys => {\n const nextResult: string[][] = [];\n keys.forEach(key => {\n nextResult.push(...result.map(resultItem => [...resultItem, key]));\n });\n result = nextResult;\n });\n return result;\n}\n\nfunction getGroupingData(\n data: DataFrame,\n grouping: DiscreteSettingsImpl['primaryGrouping' | 'secondaryGrouping']\n): GroupingData {\n if (!grouping) {\n return {\n keys: ['null'],\n value: null,\n label: '',\n valueLabels: { null: '' },\n inheritedAes: null,\n };\n }\n\n const groupingColumnId = grouping.columnName.value;\n const groupingColumnLabelId = grouping.columnName.valueLabels;\n const categories = data.getColumnCategories(groupingColumnId, false);\n const getValueLabel = (category: Category) => {\n return groupingColumnLabelId\n ? String(\n data.getColumnValue(\n groupingColumnLabelId,\n data.getColumnCategoryRowIndex(groupingColumnId, category)\n )\n )\n : category;\n };\n\n const keys = data.getColumnCategories(groupingColumnId, !grouping.allowNullGroup);\n const orderedKeys = grouping.order === undefined ? keys : intersection(grouping.order.map(String), keys);\n\n return {\n keys: orderedKeys,\n value: groupingColumnId,\n label: grouping.columnName.label ?? groupingColumnId,\n valueLabels: categories.reduce((res: Record<string, string>, category: Category) => {\n res[category] = getValueLabel(category);\n return res;\n }, {}),\n inheritedAes: grouping.inheritedAes ?? null,\n };\n}\n\nexport class ChartDiscrete extends AbstractChart {\n settings: DiscreteSettingsImpl;\n chartRenderer = new ChartRenderer();\n\n onTooltipHintSwitch: (v: boolean) => void = () => undefined;\n calculatedData: {\n layersData: LayerData[];\n statsLayersData: StatsData[];\n primaryGrouping: GroupingData;\n secondaryGrouping: GroupingData;\n facetKeyLists: GroupKey[][];\n nonEmptyGroupsByFacets: Record<string, string[]>;\n onlyPositive: boolean;\n facetKeys: string[];\n facetLabels: Record<string, string[]>;\n } | null = null;\n\n constructor(data: DataFrame, settings: DiscreteSettings, eventHandlers?: DiscreteEventHandlers) {\n super(data, settings);\n\n this.settings = new DiscreteSettingsImpl(settings);\n if (eventHandlers) {\n this.onTooltipHintSwitch = eventHandlers[0];\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 this.errorInfo = null;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.errorInfo = isErrorInfo(err.cause) ? err.cause : getUnknownErrorInfo(err);\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: DiscreteSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new DiscreteSettingsImpl(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 this._updateChart();\n this.hasError = false;\n this.errorInfo = null;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.errorInfo = isErrorInfo(err.cause) ? err.cause : getUnknownErrorInfo(err);\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n updateChartState(_field: string, _value: unknown) {\n console.warn('no chart state for discrete');\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: DiscreteSettingsImpl, settings: DiscreteSettingsImpl) {\n return (\n prevSettings.chartSettings.yAxis.scale !== settings.chartSettings.yAxis.scale ||\n (prevSettings.primaryGrouping?.columnName.value ?? '') !==\n (settings.primaryGrouping?.columnName.value ?? '') ||\n (prevSettings.secondaryGrouping?.columnName.value ?? '') !==\n (settings.secondaryGrouping?.columnName.value ?? '') ||\n (prevSettings.primaryGrouping?.allowNullGroup ?? '') !==\n (settings.primaryGrouping?.allowNullGroup ?? '') ||\n (prevSettings.secondaryGrouping?.allowNullGroup ?? '') !==\n (settings.secondaryGrouping?.allowNullGroup ?? '') ||\n arraysAreDifferent(prevSettings.primaryGrouping?.order, settings.primaryGrouping?.order, { ignoreOrder: true }) ||\n arraysAreDifferent(prevSettings.secondaryGrouping?.order, settings.secondaryGrouping?.order, { ignoreOrder: true }) ||\n prevSettings.facetBy.some((el, idx) => el.value !== settings.facetBy[idx]?.value) ||\n prevSettings.layers.length !== settings.layers.length ||\n prevSettings.layers.some((l, idx) => !l.isEqualForCalculation(settings.layers[idx] as typeof l))\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 { chartSettings, y, keyColumn, facetBy, layers, facetSettings } = this.settings;\n const { yAxis } = chartSettings;\n\n const onlyPositive = this.data.getColumn(y.value).every(v => {\n return v === null || !(Number(v) < 0);\n });\n // console.info('only positive Y:', onlyPositive);\n\n const primaryGrouping = getGroupingData(this.data, this.settings.primaryGrouping);\n const secondaryGrouping = getGroupingData(this.data, this.settings.secondaryGrouping);\n const facetGroupingValues = facetBy.map(column => column.value);\n\n if (!this.settings.primaryGrouping?.unlimitedGroupsCount && primaryGrouping.keys.length > MAX_GROUPS_COUNT) {\n const errorInfo: ErrorInfoPrimaryGroups = {\n type: 'tooManyPrimaryGroups',\n info: { count: primaryGrouping.keys.length, maxCount: MAX_GROUPS_COUNT }\n };\n throw Error(errorInfo.type, { cause: errorInfo });\n }\n if (!this.settings.secondaryGrouping?.unlimitedGroupsCount && secondaryGrouping.keys.length > MAX_GROUPS_COUNT) {\n const errorInfo: ErrorInfoSecondaryGroups = {\n type: 'tooManySecondaryGroups',\n info: { count: secondaryGrouping.keys.length, maxCount: MAX_GROUPS_COUNT }\n };\n throw Error(errorInfo.type, { cause: errorInfo });\n }\n\n // if facet created by more than 1 data column facet key contains all of them, and all keys are used in data grouping;\n // after data preparing we need only complex keys from concatenated strings\n let facetKeyLists: (GroupKey)[][] = getKeysCombinations(\n facetBy.map(column => getGroupingKeys(this.data, column, facetSettings?.order?.[column.value]))\n );\n if (facetKeyLists.length === 0) {\n facetKeyLists = [[NO_GROUPED]];\n }\n if (facetKeyLists.length > MAX_FACETS_COUNT) {\n const errorInfo: ErrorInfoFacets = {\n type: 'tooManyFacets',\n info: { count: facetKeyLists.length, maxCount: MAX_FACETS_COUNT }\n };\n throw Error(errorInfo.type, { cause: errorInfo });\n }\n const facetKeys = facetKeyLists.map(getFacetStringKey);\n const facetLabels = getFacetLabels(this.data, facetBy, facetKeys, facetKeyLists);\n\n this.data.setGrouping([...facetGroupingValues, primaryGrouping.value, secondaryGrouping.value]);\n const groupingKeys = {\n facet: facetKeyLists,\n primary: (primaryGrouping.value !== null ? primaryGrouping.keys : [NO_GROUPED]) as GroupKey[],\n secondary: (secondaryGrouping.value !== null ? secondaryGrouping.keys : [NO_GROUPED]) as GroupKey[],\n };\n\n const nonEmptyGroupsByFacets = groupingKeys.facet.reduce((res: Record<string, string[]>, facetKey) => {\n res[getFacetStringKey(facetKey)] = groupingKeys.primary.filter(\n primaryKey => this.data.getRowsByGrouping([...facetKey, primaryKey]).length > 0\n ).map(String);\n return res;\n }, {});\n\n const layersData = layers\n .filter(layer => !(layer instanceof StatLayer))\n .map(layer => {\n if (layer instanceof BoxLayer) {\n return getBoxesData(layer, groupingKeys, this.data, y, keyColumn, yAxis);\n }\n if (layer instanceof ViolinLayer) {\n return getViolinsData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof DotLayer) {\n return getDotsData(layer, groupingKeys, this.data, y, yAxis, keyColumn);\n }\n if (layer instanceof LineLayer) {\n return getLinesData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof ErrorBarLayer) {\n return getErrorBarsData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof BarLayer) {\n return getBarsData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof StackedBarLayer) {\n return getStackedBarsData(layer, groupingKeys, this.data, y);\n }\n if (layer instanceof StackedAreaLayer) {\n return getStackedAreaData(layer, groupingKeys, this.data, y);\n }\n if (layer instanceof BinnedDotsLayer) {\n return getBinnedDotsData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof PairedPointsLayer) {\n return getPairedPointsData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof SinaLayer) {\n return getSinaData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof LogoPlotLayer) {\n return getLogoData(layer, groupingKeys, this.data, y);\n }\n throw new Error('Unknown layer type');\n });\n const statsLayersData = layers\n .filter(layer => layer instanceof StatLayer)\n .map(layer => {\n if (primaryGrouping.value === null) {\n throw new Error('Cannot calculate p-value without data grouping');\n }\n return getStatsData(layer as StatLayer, groupingKeys.facet, groupingKeys.primary, y, this.data);\n });\n this.calculatedData = {\n layersData,\n statsLayersData,\n primaryGrouping,\n secondaryGrouping,\n facetKeyLists,\n nonEmptyGroupsByFacets,\n onlyPositive,\n facetKeys,\n facetLabels\n };\n }\n\n _updateAesInData() {\n if (this.calculatedData === null) {\n return;\n }\n const { layers, facetBy, primaryGrouping, secondaryGrouping, facetSettings } = this.settings;\n\n // updating aes in layers (except for stat layers with p-value), layers data is not recalculating\n const noStatLayers = layers.filter(layer => !(layer instanceof StatLayer));\n for (let i = 0; i < noStatLayers.length; i++) {\n const layer = noStatLayers[i];\n if ('aes' in layer) {\n this.calculatedData.layersData[i].aes = layer.aes;\n }\n }\n\n // updating grouping to update linked aes\n this.calculatedData.primaryGrouping = getGroupingData(this.data, primaryGrouping);\n this.calculatedData.secondaryGrouping = getGroupingData(this.data, secondaryGrouping);\n\n // updating for possibly changed facetSettings.order\n this.calculatedData.facetKeyLists = facetBy.length\n ? getKeysCombinations(\n facetBy.map(column => getGroupingKeys(this.data, column, facetSettings?.order?.[column.value]))\n )\n : [[NO_GROUPED]];\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const { id, chartSettings, keyColumn, facetSettings } = this.settings;\n const { facetLabels } = this.calculatedData;\n\n this.chartRenderer.render(\n this.data,\n id,\n chartSettings,\n this.calculatedData.primaryGrouping,\n this.calculatedData.secondaryGrouping,\n facetSettings,\n this.calculatedData.facetKeys,\n this.calculatedData.facetKeys.map(key => facetLabels[key]),\n this.calculatedData.layersData,\n this.calculatedData.statsLayersData,\n keyColumn,\n this.calculatedData.nonEmptyGroupsByFacets,\n this.calculatedData.onlyPositive,\n this.onTooltipHintSwitch\n );\n }\n}\n"],"names":["getGroupingKeys","data","column","order","groupingColumn","availableKeys","intersection","getKeysCombinations","keysLists","result","keys","nextResult","key","resultItem","getGroupingData","grouping","groupingColumnId","groupingColumnLabelId","categories","getValueLabel","category","res","ChartDiscrete","AbstractChart","settings","eventHandlers","__publicField","ChartRenderer","DiscreteSettingsImpl","node","err","isErrorInfo","getUnknownErrorInfo","previousSettings","previousData","_field","_value","renderToString","prevSettings","_a","_b","_c","_d","_e","_f","_g","_h","arraysAreDifferent","_i","_j","_k","_l","el","idx","l","prevData","prevKeys","chartSettings","y","keyColumn","facetBy","layers","facetSettings","yAxis","onlyPositive","v","primaryGrouping","secondaryGrouping","facetGroupingValues","MAX_GROUPS_COUNT","errorInfo","facetKeyLists","NO_GROUPED","MAX_FACETS_COUNT","facetKeys","getFacetStringKey","facetLabels","getFacetLabels","groupingKeys","nonEmptyGroupsByFacets","facetKey","primaryKey","layersData","layer","StatLayer","BoxLayer","getBoxesData","ViolinLayer","getViolinsData","DotLayer","getDotsData","LineLayer","getLinesData","ErrorBarLayer","getErrorBarsData","BarLayer","getBarsData","StackedBarLayer","getStackedBarsData","StackedAreaLayer","getStackedAreaData","BinnedDotsLayer","getBinnedDotsData","PairedPointsLayer","getPairedPointsData","SinaLayer","getSinaData","LogoPlotLayer","getLogoData","statsLayersData","getStatsData","noStatLayers","i","id"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/discrete/index.ts"],"sourcesContent":["import { intersection } from 'lodash';\nimport { renderToString } from 'react-dom/server.browser';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame, GroupKey } from '../DataFrame';\nimport { NO_GROUPED } from '../DataFrame';\nimport {\n type Category, type ColumnName, type DataValue, type DiscreteEventHandlers,\n type DiscreteSettings, getUnknownErrorInfo, type GroupingData, isErrorInfo\n} from '../types';\nimport ChartRenderer from './ChartRenderer';\nimport {\n BarLayer,\n BinnedDotsLayer,\n BoxLayer,\n DiscreteSettingsImpl,\n DotLayer,\n ErrorBarLayer,\n LineLayer,\n LogoPlotLayer,\n PairedPointsLayer,\n SinaLayer, StackedAreaLayer,\n StackedBarLayer,\n StatLayer,\n ViolinLayer,\n} from './DiscreteSettingsImpl';\nimport {\n getBarsData,\n getBinnedDotsData,\n getBoxesData,\n getDotsData,\n getErrorBarsData,\n getLinesData,\n getPairedPointsData,\n getSinaData,\n getStackedBarsData,\n getStatsData,\n getViolinsData,\n} from './layers';\nimport { getLogoData } from './layers/logo';\nimport { getStackedAreaData } from './layers/stackedArea';\nimport type { LayerData, StatsData } from './layers/types';\nimport { getFacetStringKey } from './utils/getFacetStringKey';\nimport { arraysAreDifferent } from '../utils/arraysAreDifferent';\nimport { getFacetLabels } from './utils/getFacetLabels';\n\nfunction getGroupingKeys(data: DataFrame, column: ColumnName, order: DataValue[] | null = null) {\n const groupingColumn = column.value;\n const availableKeys = data.getColumnCategories(groupingColumn);\n return intersection(order ?? availableKeys, availableKeys).map(String);\n}\n\n// all combinations with 1 key from each list\nfunction getKeysCombinations(keysLists: string[][]) {\n if (!keysLists.length) {\n return [];\n }\n let result: string[][] = [[]];\n keysLists.forEach(keys => {\n const nextResult: string[][] = [];\n keys.forEach(key => {\n nextResult.push(...result.map(resultItem => [...resultItem, key]));\n });\n result = nextResult;\n });\n return result;\n}\n\nfunction areGroupingsDifferent(\n grouping1: DiscreteSettingsImpl['primaryGrouping' | 'secondaryGrouping'],\n grouping2: DiscreteSettingsImpl['primaryGrouping' | 'secondaryGrouping'],\n) {\n if (!grouping1 && grouping2 || grouping1 && !grouping2) {\n return true;\n }\n if (!grouping1 || !grouping2) {\n return false;\n }\n return grouping1.columnName.value !== grouping2.columnName.value\n || grouping1.columnName.nullValueLabel !== grouping2.columnName.nullValueLabel\n || arraysAreDifferent(grouping1.order, grouping2.order, { ignoreOrder: true })\n || grouping1.allowNullGroup !== grouping2.allowNullGroup;\n}\n\nfunction getGroupingData(\n data: DataFrame,\n grouping: DiscreteSettingsImpl['primaryGrouping' | 'secondaryGrouping'],\n): GroupingData {\n const nullValueLabel = grouping?.columnName.nullValueLabel ?? 'NA';\n if (!grouping) {\n return {\n groupingKeys: [NO_GROUPED],\n keys: ['null'],\n value: null,\n label: '',\n valueLabels: { null: '' },\n inheritedAes: null,\n };\n }\n\n const groupingColumnId = grouping.columnName.value;\n const groupingColumnLabelId = grouping.columnName.valueLabels;\n const categories = data.getColumnCategories(groupingColumnId, false);\n const getValueLabel = (category: Category) => {\n const v = groupingColumnLabelId\n ? String(\n data.getColumnValue(\n groupingColumnLabelId,\n data.getColumnCategoryRowIndex(groupingColumnId, category)\n )\n )\n : category;\n return v === 'null' ? nullValueLabel : v;\n };\n\n const keys = data.getColumnCategories(groupingColumnId, !grouping.allowNullGroup);\n const orderedKeys = grouping.order === undefined ? keys : intersection(grouping.order.map(String), keys);\n\n return {\n keys: orderedKeys,\n groupingKeys: orderedKeys,\n value: groupingColumnId,\n label: grouping.columnName.label ?? groupingColumnId,\n valueLabels: categories.reduce((res: Record<string, string>, category: Category) => {\n res[category] = getValueLabel(category);\n return res;\n }, {}),\n inheritedAes: grouping.inheritedAes ?? null,\n };\n}\n\nexport class ChartDiscrete extends AbstractChart {\n settings: DiscreteSettingsImpl;\n chartRenderer = new ChartRenderer();\n\n onTooltipHintSwitch: (v: boolean) => void = () => undefined;\n calculatedData: {\n layersData: LayerData[];\n statsLayersData: StatsData[];\n primaryGrouping: GroupingData;\n secondaryGrouping: GroupingData;\n facetKeyLists: GroupKey[][];\n nonEmptyGroupsByFacets: Record<string, string[]>;\n onlyPositive: boolean;\n facetKeys: string[];\n facetLabels: Record<string, string[]>;\n } | null = null;\n\n constructor(data: DataFrame, settings: DiscreteSettings, eventHandlers?: DiscreteEventHandlers) {\n super(data, settings);\n\n this.settings = new DiscreteSettingsImpl(settings);\n if (eventHandlers) {\n this.onTooltipHintSwitch = eventHandlers[0];\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 this.errorInfo = null;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.errorInfo = isErrorInfo(err.cause) ? err.cause : getUnknownErrorInfo(err);\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: DiscreteSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new DiscreteSettingsImpl(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 this._updateChart();\n this.hasError = false;\n this.errorInfo = null;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.errorInfo = isErrorInfo(err.cause) ? err.cause : getUnknownErrorInfo(err);\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n updateChartState(_field: string, _value: unknown) {\n console.warn('no chart state for discrete');\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: DiscreteSettingsImpl, settings: DiscreteSettingsImpl) {\n return (\n prevSettings.chartSettings.yAxis.scale !== settings.chartSettings.yAxis.scale ||\n areGroupingsDifferent(prevSettings.primaryGrouping, settings.primaryGrouping) ||\n areGroupingsDifferent(prevSettings.secondaryGrouping, settings.secondaryGrouping) ||\n prevSettings.facetBy.some((el, idx) => el.value !== settings.facetBy[idx]?.value) ||\n arraysAreDifferent(prevSettings.facetSettings?.order ?? [], settings.facetSettings?.order ?? []) ||\n prevSettings.layers.length !== settings.layers.length ||\n prevSettings.layers.some((l, idx) => !l.isEqualForCalculation(settings.layers[idx] as typeof l))\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 { chartSettings, y, keyColumn, facetBy, layers, facetSettings } = this.settings;\n const { yAxis } = chartSettings;\n\n const onlyPositive = this.data.getColumn(y.value).every(v => {\n return v === null || !(Number(v) < 0);\n });\n // console.info('only positive Y:', onlyPositive);\n\n const primaryGrouping = getGroupingData(this.data, this.settings.primaryGrouping);\n const secondaryGrouping = getGroupingData(this.data, this.settings.secondaryGrouping);\n const facetGroupingValues = facetBy.length ? facetBy.map(column => column.value) : [null];\n\n // if facet created by more than 1 data column facet key contains all of them, and all keys are used in data grouping;\n // after data preparing we need only complex keys from concatenated strings\n let facetKeyLists: (GroupKey)[][] = getKeysCombinations(\n facetBy.map(column => getGroupingKeys(this.data, column))\n );\n if (facetKeyLists.length === 0) {\n facetKeyLists = [[NO_GROUPED]];\n }\n if (facetSettings?.order?.length) {\n const allFacetKeys = facetKeyLists.map(getFacetStringKey);\n const keyOrder = intersection(facetSettings.order, allFacetKeys);\n facetKeyLists = keyOrder\n .map((keyStr) => facetKeyLists.find((fkl) => getFacetStringKey(fkl) === keyStr))\n .filter((x): x is GroupKey[] => x != null);\n }\n const facetKeys = facetKeyLists.map(getFacetStringKey);\n const facetLabels = getFacetLabels(this.data, facetBy, facetKeys, facetKeyLists);\n\n const facetGroupingKeys = facetBy.length\n ? facetGroupingValues.map((_, idx) => [...new Set(facetKeyLists.map(fkl => fkl[idx]))])\n : [undefined];\n this.data.setGrouping(\n [...facetGroupingValues, primaryGrouping.value, secondaryGrouping.value],\n [...facetGroupingKeys, primaryGrouping.groupingKeys, secondaryGrouping.groupingKeys]\n );\n const groupingKeys = {\n facet: facetKeyLists,\n primary: primaryGrouping.groupingKeys,\n secondary: secondaryGrouping.groupingKeys,\n };\n\n const nonEmptyGroupsByFacets = groupingKeys.facet.reduce((res: Record<string, string[]>, facetKey) => {\n res[getFacetStringKey(facetKey)] = groupingKeys.primary.filter(\n primaryKey => this.data.getRowsByGrouping([...facetKey, primaryKey]).length > 0\n ).map(String);\n return res;\n }, {});\n\n const layersData = layers\n .filter(layer => !(layer instanceof StatLayer))\n .map(layer => {\n if (layer instanceof BoxLayer) {\n return getBoxesData(layer, groupingKeys, this.data, y, keyColumn, yAxis);\n }\n if (layer instanceof ViolinLayer) {\n return getViolinsData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof DotLayer) {\n return getDotsData(layer, groupingKeys, this.data, y, yAxis, keyColumn);\n }\n if (layer instanceof LineLayer) {\n return getLinesData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof ErrorBarLayer) {\n return getErrorBarsData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof BarLayer) {\n return getBarsData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof StackedBarLayer) {\n return getStackedBarsData(layer, groupingKeys, this.data, y);\n }\n if (layer instanceof StackedAreaLayer) {\n return getStackedAreaData(layer, groupingKeys, this.data, y);\n }\n if (layer instanceof BinnedDotsLayer) {\n return getBinnedDotsData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof PairedPointsLayer) {\n return getPairedPointsData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof SinaLayer) {\n return getSinaData(layer, groupingKeys, this.data, y, yAxis);\n }\n if (layer instanceof LogoPlotLayer) {\n return getLogoData(layer, groupingKeys, this.data, y);\n }\n throw new Error('Unknown layer type');\n });\n const statsLayersData = layers\n .filter(layer => layer instanceof StatLayer)\n .map(layer => {\n if (primaryGrouping.value === null) {\n throw new Error('Cannot calculate p-value without data grouping');\n }\n return getStatsData(layer as StatLayer, groupingKeys.facet, groupingKeys.primary, y, this.data);\n });\n this.calculatedData = {\n layersData,\n statsLayersData,\n primaryGrouping,\n secondaryGrouping,\n facetKeyLists,\n nonEmptyGroupsByFacets,\n onlyPositive,\n facetKeys,\n facetLabels\n };\n }\n\n _updateAesInData() {\n if (this.calculatedData === null) {\n return;\n }\n const { layers, primaryGrouping, secondaryGrouping } = this.settings;\n\n // updating aes in layers (except for stat layers with p-value), layers data is not recalculating\n const noStatLayers = layers.filter(layer => !(layer instanceof StatLayer));\n for (let i = 0; i < noStatLayers.length; i++) {\n const layer = noStatLayers[i];\n if ('aes' in layer) {\n this.calculatedData.layersData[i].aes = layer.aes;\n }\n }\n\n // updating grouping to update linked aes\n this.calculatedData.primaryGrouping = getGroupingData(this.data, primaryGrouping);\n this.calculatedData.secondaryGrouping = getGroupingData(this.data, secondaryGrouping);\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const { id, chartSettings, keyColumn, facetSettings } = this.settings;\n const { facetLabels } = this.calculatedData;\n\n this.chartRenderer.render(\n this.data,\n id,\n chartSettings,\n this.calculatedData.primaryGrouping,\n this.calculatedData.secondaryGrouping,\n facetSettings,\n this.calculatedData.facetKeys,\n this.calculatedData.facetKeys.map(key => facetLabels[key]),\n this.calculatedData.layersData,\n this.calculatedData.statsLayersData,\n keyColumn,\n this.calculatedData.nonEmptyGroupsByFacets,\n this.calculatedData.onlyPositive,\n this.onTooltipHintSwitch\n );\n }\n}\n"],"names":["getGroupingKeys","data","column","order","groupingColumn","availableKeys","intersection","getKeysCombinations","keysLists","result","keys","nextResult","key","resultItem","areGroupingsDifferent","grouping1","grouping2","arraysAreDifferent","getGroupingData","grouping","nullValueLabel","NO_GROUPED","groupingColumnId","groupingColumnLabelId","categories","getValueLabel","category","v","orderedKeys","res","ChartDiscrete","AbstractChart","settings","eventHandlers","__publicField","ChartRenderer","DiscreteSettingsImpl","node","err","isErrorInfo","getUnknownErrorInfo","previousSettings","previousData","_field","_value","renderToString","prevSettings","el","idx","_a","_b","l","prevData","prevKeys","chartSettings","y","keyColumn","facetBy","layers","facetSettings","yAxis","onlyPositive","primaryGrouping","secondaryGrouping","facetGroupingValues","facetKeyLists","allFacetKeys","getFacetStringKey","keyStr","fkl","x","facetKeys","facetLabels","getFacetLabels","facetGroupingKeys","_","groupingKeys","nonEmptyGroupsByFacets","facetKey","primaryKey","layersData","layer","StatLayer","BoxLayer","getBoxesData","ViolinLayer","getViolinsData","DotLayer","getDotsData","LineLayer","getLinesData","ErrorBarLayer","getErrorBarsData","BarLayer","getBarsData","StackedBarLayer","getStackedBarsData","StackedAreaLayer","getStackedAreaData","BinnedDotsLayer","getBinnedDotsData","PairedPointsLayer","getPairedPointsData","SinaLayer","getSinaData","LogoPlotLayer","getLogoData","statsLayersData","getStatsData","noStatLayers","id"],"mappings":"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"}
@@ -17,3 +17,4 @@ export declare function getBarsData(layer: BarLayer, groupingKeys: {
17
17
  primary: GroupKey[];
18
18
  secondary: GroupKey[];
19
19
  }, data: DataFrame, y: ColumnName, yAxis: DiscreteSettingsImpl['chartSettings']['yAxis']): BarsData;
20
+ //# sourceMappingURL=bar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bar.d.ts","sourceRoot":"","sources":["../../../src/discrete/layers/bar.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAqB,UAAU,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAkCxC,MAAM,MAAM,GAAG,GAAG;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACf,CAAC;CACL,CAAC;AAEF,wBAAgB,WAAW,CACvB,KAAK,EAAE,QAAQ,EACf,YAAY,EAAE;IACV,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;IACpB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAA;CACxB,EACD,IAAI,EAAE,SAAS,EACf,CAAC,EAAE,UAAU,EACb,KAAK,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,GACtD,QAAQ,CAiCV"}
@@ -25,3 +25,4 @@ export declare function getBinnedDotsData(layer: BinnedDotsLayer, groupingKeys:
25
25
  primary: GroupKey[];
26
26
  secondary: GroupKey[];
27
27
  }, data: DataFrame, y: DiscreteSettingsImpl['y'], yAxis: DiscreteSettingsImpl['chartSettings']['yAxis']): BinnedDotsData;
28
+ //# sourceMappingURL=binnedDots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binnedDots.d.ts","sourceRoot":"","sources":["../../../src/discrete/layers/binnedDots.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAGrF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AA8C9C,qBAAa,UAAU;IACnB,IAAI,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAC,EAAE,CAAA;KAAC,EAAE,CAAC;IACzE,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IAEZ,OAAO,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACf,CAAC;gBAGE,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,QAAQ,EAAE,EACnB,MAAM,EAAE,UAAU,EAClB,eAAe,EAAE,SAAS,GAAG,OAAO,UAAU,EAC9C,iBAAiB,EAAE,SAAS,GAAI,OAAO,UAAU,EACjD,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EACrC,gBAAgB,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EACvC,KAAK,EAAE,KAAK,GAAG,QAAQ,EACvB,SAAS,EAAE,UAAU,GAAG,IAAI;CAyBnC;AAED,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,eAAe,EACtB,YAAY,EAAE;IACV,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;IACpB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAA;CACxB,EACD,IAAI,EAAE,SAAS,EACf,CAAC,EAAE,oBAAoB,CAAC,GAAG,CAAC,EAC5B,KAAK,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,GACtD,cAAc,CAwEhB"}
@@ -26,3 +26,4 @@ export declare function getBoxesData(layer: BoxLayer, groupingKeys: {
26
26
  primary: GroupKey[];
27
27
  secondary: GroupKey[];
28
28
  }, data: DataFrame, y: ColumnName, keyColumn: ColumnName | null, yAxis: DiscreteSettingsImpl['chartSettings']['yAxis']): BoxesData;
29
+ //# sourceMappingURL=boxes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boxes.d.ts","sourceRoot":"","sources":["../../../src/discrete/layers/boxes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAE9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAczC,qBAAa,GAAG;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE;QACN,CAAC,EAAE,MAAM,CAAC;QACV,EAAE,EAAE,MAAM,CAAC;KACd,EAAE,CAAC;IAGJ,eAAe,EAAE,QAAQ,CAAC;IAC1B,iBAAiB,EAAE,QAAQ,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;IAGZ,OAAO,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACf,CAAC;gBAGE,MAAM,EAAE,MAAM,EAAE,EAChB,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,QAAQ,GAAG,KAAK,EACvB,eAAe,EAAE,SAAS,GAAG,OAAO,UAAU,EAC9C,iBAAiB,EAAE,SAAS,GAAG,OAAO,UAAU,EAChD,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,CAAC,EAAE,MAAM,EACT,YAAY,UAAO;CA+C1B;AAED,wBAAgB,YAAY,CACxB,KAAK,EAAE,QAAQ,EACf,YAAY,EAAE;IACV,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;IACpB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAA;CACxB,EACD,IAAI,EAAE,SAAS,EACf,CAAC,EAAE,UAAU,EACb,SAAS,EAAE,UAAU,GAAG,IAAI,EAC5B,KAAK,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,GACtD,SAAS,CA6CX"}
@@ -21,3 +21,4 @@ export declare function getDotsData(layer: DotLayer, groupingKeys: {
21
21
  primary: GroupKey[];
22
22
  secondary: GroupKey[];
23
23
  }, data: DataFrame, y: ColumnName, yAxis: DiscreteSettingsImpl['chartSettings']['yAxis'], keyColumn: ColumnName | null): DotsData;
24
+ //# sourceMappingURL=dots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dots.d.ts","sourceRoot":"","sources":["../../../src/discrete/layers/dots.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAG9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,MAAM,SAAS,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;KAAC,EAAE,CAAC;IACnD,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACf,CAAC;CACL,CAAC;AAEF,wBAAgB,WAAW,CACvB,KAAK,EAAE,QAAQ,EACf,YAAY,EAAE;IACV,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;IACpB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAA;CACxB,EACD,IAAI,EAAE,SAAS,EACf,CAAC,EAAE,UAAU,EACb,KAAK,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EACrD,SAAS,EAAE,UAAU,GAAG,IAAI,GAC7B,QAAQ,CAkDV"}
@@ -18,3 +18,4 @@ export declare function getErrorBarsData(layer: ErrorBarLayer, groupingKeys: {
18
18
  primary: GroupKey[];
19
19
  secondary: GroupKey[];
20
20
  }, data: DataFrame, y: DiscreteSettingsImpl['y'], yAxis: DiscreteSettingsImpl['chartSettings']['yAxis']): ErrorBarsData;
21
+ //# sourceMappingURL=errorbars.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorbars.d.ts","sourceRoot":"","sources":["../../../src/discrete/layers/errorbars.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAM3C,MAAM,WAAW,QAAQ;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACf,CAAC;CACL;AA+CD,wBAAgB,gBAAgB,CAC5B,KAAK,EAAE,aAAa,EACpB,YAAY,EAAE;IACV,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;IACpB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAA;CACxB,EACD,IAAI,EAAE,SAAS,EACf,CAAC,EAAE,oBAAoB,CAAC,GAAG,CAAC,EAC5B,KAAK,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,GACtD,aAAa,CA8Cf"}
@@ -11,3 +11,4 @@ export * from './binnedDots';
11
11
  export * from './pairedPoints';
12
12
  export * from './logo';
13
13
  export * from './stats';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/discrete/layers/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,OAAO,CAAC;AACtB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
@@ -14,3 +14,4 @@ export declare function getLinesData(layer: LineLayer, groupingKeys: {
14
14
  primary: GroupKey[];
15
15
  secondary: GroupKey[];
16
16
  }, data: DataFrame, y: DiscreteSettingsImpl['y'], yAxis: DiscreteSettingsImpl['chartSettings']['yAxis']): LinesData;
17
+ //# sourceMappingURL=lines.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lines.d.ts","sourceRoot":"","sources":["../../../src/discrete/layers/lines.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAC,oBAAoB,EAAE,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAC7E,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAMvC,MAAM,WAAW,IAAI;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACf,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACf;AAqBD,wBAAgB,YAAY,CACxB,KAAK,EAAE,SAAS,EAChB,YAAY,EAAE;IACV,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC;IACpB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,CAAA;CACxB,EACD,IAAI,EAAE,SAAS,EACf,CAAC,EAAE,oBAAoB,CAAC,GAAG,CAAC,EAC5B,KAAK,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,GACtD,SAAS,CA0DX"}
@@ -21,3 +21,4 @@ export declare function getLogoData(layer: LogoPlotLayer, groupingKeys: {
21
21
  secondary: GroupKey[];
22
22
  }, data: DataFrame, y: ColumnName): LogoPlotData;
23
23
  export {};
24
+ //# sourceMappingURL=logo.d.ts.map