@milaboratories/graph-maker 1.1.138 → 1.1.140

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 (253) hide show
  1. package/dist/GraphMaker/components/Chart.vue.d.ts.map +1 -1
  2. package/dist/GraphMaker/components/Chart.vue.js +1 -0
  3. package/dist/GraphMaker/components/Chart.vue.js.map +1 -1
  4. package/dist/GraphMaker/components/LassoControls/index.vue.js +15 -13
  5. package/dist/GraphMaker/components/LassoControls/index.vue.js.map +1 -1
  6. package/dist/GraphMaker/dataBindAes.d.ts +5 -5
  7. package/dist/GraphMaker/dataBindAes.d.ts.map +1 -1
  8. package/dist/GraphMaker/dataBindAes.js +52 -49
  9. package/dist/GraphMaker/dataBindAes.js.map +1 -1
  10. package/dist/GraphMaker/forms/LayersForm/AesSelector.vue.js +14 -14
  11. package/dist/GraphMaker/forms/LayersForm/AesSelector.vue.js.map +1 -1
  12. package/dist/GraphMaker/index.vue.d.ts.map +1 -1
  13. package/dist/GraphMaker/index.vue.js +125 -124
  14. package/dist/GraphMaker/index.vue.js.map +1 -1
  15. package/dist/GraphMaker/types.d.ts +1 -1
  16. package/dist/GraphMaker/types.d.ts.map +1 -1
  17. package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +6 -0
  18. package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts.map +1 -1
  19. package/dist/GraphMaker/utils/createChartSettingsForRender/composeChartSettings.d.ts +4 -8
  20. package/dist/GraphMaker/utils/createChartSettingsForRender/composeChartSettings.d.ts.map +1 -1
  21. package/dist/GraphMaker/utils/createChartSettingsForRender/composeChartSettings.js.map +1 -1
  22. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDendroSettings.d.ts +15 -0
  23. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDendroSettings.d.ts.map +1 -1
  24. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +12 -3
  25. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts.map +1 -1
  26. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +21 -0
  27. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts.map +1 -1
  28. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.d.ts +10 -6
  29. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.d.ts.map +1 -1
  30. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts +31 -13
  31. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts.map +1 -1
  32. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js +56 -62
  33. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
  34. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts +29 -13
  35. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts.map +1 -1
  36. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +20 -19
  37. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
  38. package/dist/GraphMaker/utils/loadUniqueValuesToSave.d.ts.map +1 -1
  39. package/dist/GraphMaker/utils/loadUniqueValuesToSave.js +57 -54
  40. package/dist/GraphMaker/utils/loadUniqueValuesToSave.js.map +1 -1
  41. package/dist/lib.js +1 -1
  42. package/dist/node_modules/@milaboratories/miplots4/dist/AbstractChart.js +5 -5
  43. package/dist/node_modules/@milaboratories/miplots4/dist/AbstractChart.js.map +1 -1
  44. package/dist/node_modules/@milaboratories/miplots4/dist/DataFrame.js +95 -72
  45. package/dist/node_modules/@milaboratories/miplots4/dist/DataFrame.js.map +1 -1
  46. package/dist/node_modules/@milaboratories/miplots4/dist/MiPlots.js +8 -5
  47. package/dist/node_modules/@milaboratories/miplots4/dist/MiPlots.js.map +1 -1
  48. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/ChartRenderer.js +124 -122
  49. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/ChartRenderer.js.map +1 -1
  50. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/Chart.js +72 -91
  51. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/Chart.js.map +1 -1
  52. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/ChartsGroup.js +43 -41
  53. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/ChartsGroup.js.map +1 -1
  54. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCellTooltip.js +28 -0
  55. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCellTooltip.js.map +1 -0
  56. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getGroupedCellsData.js +94 -0
  57. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getGroupedCellsData.js.map +1 -0
  58. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/index.js +38 -34
  59. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/index.js.map +1 -1
  60. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/utils/calculateCaptionTails.js.map +1 -1
  61. package/dist/node_modules/@milaboratories/miplots4/dist/common/Error.js +4 -22
  62. package/dist/node_modules/@milaboratories/miplots4/dist/common/Error.js.map +1 -1
  63. package/dist/node_modules/@milaboratories/miplots4/dist/common/Legend.js.map +1 -1
  64. package/dist/node_modules/@milaboratories/miplots4/dist/common/Tooltip.js +11 -11
  65. package/dist/node_modules/@milaboratories/miplots4/dist/common/Tooltip.js.map +1 -1
  66. package/dist/node_modules/@milaboratories/miplots4/dist/common/useDataFrame.js +20 -0
  67. package/dist/node_modules/@milaboratories/miplots4/dist/common/useDataFrame.js.map +1 -0
  68. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/ChartRenderer.js +181 -181
  69. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/ChartRenderer.js.map +1 -1
  70. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/DendroSettingsImpl.js +2 -2
  71. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/DendroSettingsImpl.js.map +1 -1
  72. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Chart.js +45 -45
  73. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Chart.js.map +1 -1
  74. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Heatmap.js +27 -27
  75. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Heatmap.js.map +1 -1
  76. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Legend.js.map +1 -1
  77. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/LinksGroup.js +18 -18
  78. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/LinksGroup.js.map +1 -1
  79. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/NodesGroup.js +36 -36
  80. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/NodesGroup.js.map +1 -1
  81. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/getHeatmapData.js +45 -41
  82. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/getHeatmapData.js.map +1 -1
  83. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/getHierarchyData.js +33 -33
  84. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/getHierarchyData.js.map +1 -1
  85. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/index.js +90 -93
  86. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/index.js.map +1 -1
  87. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/ChartRenderer.js +199 -198
  88. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/ChartRenderer.js.map +1 -1
  89. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/DiscreteSettingsImpl.js +17 -17
  90. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/DiscreteSettingsImpl.js.map +1 -1
  91. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/layers/BoxElement.js.map +1 -1
  92. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js +102 -99
  93. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js.map +1 -1
  94. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/bar.js +31 -36
  95. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/bar.js.map +1 -1
  96. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/binnedDots.js +62 -74
  97. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/binnedDots.js.map +1 -1
  98. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/boxes.js +52 -53
  99. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/boxes.js.map +1 -1
  100. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/dots.js +32 -32
  101. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/dots.js.map +1 -1
  102. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/lines.js +7 -6
  103. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/lines.js.map +1 -1
  104. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/logo.js +23 -23
  105. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/logo.js.map +1 -1
  106. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/pairedPoints.js +63 -63
  107. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/pairedPoints.js.map +1 -1
  108. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/sina.js +60 -64
  109. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/sina.js.map +1 -1
  110. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/stackedBar.js +23 -23
  111. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/stackedBar.js.map +1 -1
  112. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/getOutliersBounds.js +5 -5
  113. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/getOutliersBounds.js.map +1 -1
  114. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/splitTextByWidth.js +13 -13
  115. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/splitTextByWidth.js.map +1 -1
  116. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/ChartRenderer.js +258 -256
  117. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/ChartRenderer.js.map +1 -1
  118. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/HeatmapSettingsImpl.js +1 -1
  119. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/HeatmapSettingsImpl.js.map +1 -1
  120. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/Annotation.js +81 -79
  121. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/Annotation.js.map +1 -1
  122. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js +140 -134
  123. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js.map +1 -1
  124. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/ChartsGroup.js +17 -17
  125. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/ChartsGroup.js.map +1 -1
  126. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getCells.js +99 -95
  127. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getCells.js.map +1 -1
  128. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js +32 -31
  129. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js.map +1 -1
  130. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateAnnotationTitleSizes.js +1 -1
  131. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateAnnotationTitleSizes.js.map +1 -1
  132. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateCaptionTails.js.map +1 -1
  133. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/ChartRenderer.js +143 -142
  134. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/ChartRenderer.js.map +1 -1
  135. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/HistogramSettingsImpl.js.map +1 -1
  136. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/components/Chart.js +30 -30
  137. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/components/Chart.js.map +1 -1
  138. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/components/ChartsGroup.js +7 -7
  139. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/getHistogramData.js +53 -54
  140. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/getHistogramData.js.map +1 -1
  141. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/index.js +62 -58
  142. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/index.js.map +1 -1
  143. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/@d3fc/d3fc-axis/src/axisBase.js +7 -7
  144. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-array/src/min.js +6 -12
  145. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-array/src/min.js.map +1 -1
  146. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-shape/src/line.js.map +1 -1
  147. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/kdbush/index.js +148 -0
  148. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/kdbush/index.js.map +1 -0
  149. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ChartRenderer.js +172 -168
  150. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ChartRenderer.js.map +1 -1
  151. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ScatterplotSettingsImpl.js +28 -28
  152. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ScatterplotSettingsImpl.js.map +1 -1
  153. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Chart.js +11 -11
  154. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartAxisTitles.js +30 -29
  155. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartAxisTitles.js.map +1 -1
  156. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartLayersData.js +135 -153
  157. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartLayersData.js.map +1 -1
  158. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTooltip.js +35 -32
  159. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTooltip.js.map +1 -1
  160. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTrendsData.js +27 -27
  161. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTrendsData.js.map +1 -1
  162. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartsGroup.js +14 -14
  163. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/constants.js.map +1 -1
  164. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/dots.js +24 -25
  165. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/dots.js.map +1 -1
  166. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/getLayersData.js +13 -13
  167. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/getLayersData.js.map +1 -1
  168. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js +69 -76
  169. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js.map +1 -1
  170. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/linearRegression.js +85 -83
  171. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/linearRegression.js.map +1 -1
  172. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createAesGetter.js +20 -20
  173. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createAesGetter.js.map +1 -1
  174. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createLegendInfo.js +50 -38
  175. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createLegendInfo.js.map +1 -1
  176. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/formatColumnValue.js +11 -0
  177. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/formatColumnValue.js.map +1 -0
  178. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/getVisibleLabels.js +46 -56
  179. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/getVisibleLabels.js.map +1 -1
  180. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/sortDotsByGrouping.js +18 -0
  181. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/sortDotsByGrouping.js.map +1 -0
  182. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/ChartRenderer.js +223 -205
  183. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/ChartRenderer.js.map +1 -1
  184. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/SettingsImpl.js +26 -26
  185. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/SettingsImpl.js.map +1 -1
  186. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/colors.js +42 -0
  187. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/colors.js.map +1 -0
  188. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/LowerSVG.js +84 -81
  189. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/LowerSVG.js.map +1 -1
  190. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/SVGLayer.js +11 -11
  191. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/UpperSVG.js +15 -14
  192. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/UpperSVG.js.map +1 -1
  193. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/index.js +97 -118
  194. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/index.js.map +1 -1
  195. package/dist/node_modules/@milaboratories/miplots4/dist/types/common.js +3 -1
  196. package/dist/node_modules/@milaboratories/miplots4/dist/types/common.js.map +1 -1
  197. package/dist/node_modules/@milaboratories/miplots4/dist/types/dendro.js +1 -1
  198. package/dist/node_modules/@milaboratories/miplots4/dist/types/dendro.js.map +1 -1
  199. package/dist/node_modules/@milaboratories/miplots4/dist/types/discrete.js +1 -1
  200. package/dist/node_modules/@milaboratories/miplots4/dist/types/discrete.js.map +1 -1
  201. package/dist/node_modules/@milaboratories/miplots4/dist/types/heatmap.js +1 -1
  202. package/dist/node_modules/@milaboratories/miplots4/dist/types/heatmap.js.map +1 -1
  203. package/dist/node_modules/@milaboratories/miplots4/dist/types/histogram.js +1 -1
  204. package/dist/node_modules/@milaboratories/miplots4/dist/types/histogram.js.map +1 -1
  205. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot-umap.js +23 -17
  206. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot-umap.js.map +1 -1
  207. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot.js +25 -19
  208. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot.js.map +1 -1
  209. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer/TextMeasurer.js +39 -0
  210. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer/TextMeasurer.js.map +1 -0
  211. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer/charToWidth.json.js +101 -0
  212. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer/charToWidth.json.js.map +1 -0
  213. package/dist/node_modules/@milaboratories/miplots4/dist/utils/arrangeLegendParts.js +4 -4
  214. package/dist/node_modules/@milaboratories/miplots4/dist/utils/arrangeLegendParts.js.map +1 -1
  215. package/dist/node_modules/@milaboratories/miplots4/dist/utils/arraysAreDifferent.js +7 -0
  216. package/dist/node_modules/@milaboratories/miplots4/dist/utils/arraysAreDifferent.js.map +1 -0
  217. package/dist/node_modules/@milaboratories/miplots4/dist/utils/getLegendWidth.js +3 -3
  218. package/dist/node_modules/@milaboratories/miplots4/dist/utils/getLegendWidth.js.map +1 -1
  219. package/dist/node_modules/@milaboratories/pf-plots/dist/index.js +1111 -1097
  220. package/dist/node_modules/@milaboratories/pf-plots/dist/index.js.map +1 -1
  221. package/package.json +3 -3
  222. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCells.js +0 -91
  223. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCells.js.map +0 -1
  224. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/add.js +0 -30
  225. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/add.js.map +0 -1
  226. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/cover.js +0 -29
  227. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/cover.js.map +0 -1
  228. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/data.js +0 -12
  229. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/data.js.map +0 -1
  230. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/extent.js +0 -7
  231. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/extent.js.map +0 -1
  232. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/find.js +0 -26
  233. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/find.js.map +0 -1
  234. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/quad.js +0 -7
  235. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/quad.js.map +0 -1
  236. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/quadtree.js +0 -51
  237. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/quadtree.js.map +0 -1
  238. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/remove.js +0 -21
  239. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/remove.js.map +0 -1
  240. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/root.js +0 -7
  241. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/root.js.map +0 -1
  242. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/size.js +0 -12
  243. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/size.js.map +0 -1
  244. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/visit.js +0 -14
  245. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/visit.js.map +0 -1
  246. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/visitAfter.js +0 -19
  247. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/visitAfter.js.map +0 -1
  248. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/x.js +0 -11
  249. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/x.js.map +0 -1
  250. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/y.js +0 -11
  251. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/y.js.map +0 -1
  252. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer.js +0 -24
  253. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer.js.map +0 -1
@@ -1,83 +1,82 @@
1
1
  import M from "../node_modules/d3-array/src/extent.js";
2
- import b from "../node_modules/d3-array/src/bin.js";
3
- import E from "../node_modules/d3-array/src/max.js";
4
- import X from "../node_modules/d3-scale/src/symlog.js";
5
- const w = (a, e) => {
6
- const t = Math.min(...e), n = Math.max(...e);
7
- if (t === n)
8
- return [t];
9
- if (a < 2)
10
- return [(t + n) / 2];
11
- const i = (n - t) / a, u = [];
12
- for (let o = 1; o < a; o++)
13
- u.push(t + i * o);
14
- return u;
2
+ import K from "../node_modules/d3-array/src/bin.js";
3
+ import G from "../node_modules/d3-array/src/max.js";
4
+ import V from "../node_modules/d3-scale/src/symlog.js";
5
+ const b = (o, u) => {
6
+ const a = Math.min(...u), n = Math.max(...u);
7
+ if (a === n)
8
+ return [a];
9
+ if (o < 2)
10
+ return [(a + n) / 2];
11
+ const e = (n - a) / o, s = [];
12
+ for (let r = 1; r < o; r++)
13
+ s.push(a + e * r);
14
+ return s;
15
15
  };
16
- function F(a, e, t) {
17
- return a.map((n) => ({
18
- count: n.length,
16
+ function E(o, u, a) {
17
+ return o.map((n) => ({
18
+ indexes: n,
19
+ x: n.x0 ?? 0,
19
20
  y: {
20
21
  straight: n.length,
21
22
  reverse: n.length
22
23
  },
23
- rows: n,
24
- x: n.x0 ?? 0,
25
- groupingKey: e,
26
- groupingKeyIdx: t,
24
+ count: n.length,
25
+ groupingKey: u,
26
+ groupingKeyIdx: a,
27
27
  width: (n.x1 ?? 0) - (n.x0 ?? 0)
28
28
  }));
29
29
  }
30
- function D(a, e, t, n, i, u) {
31
- const o = w(t, n), s = b().domain(n).thresholds(o).value((m) => m[e.value])(a);
30
+ function L(o, u, a, n, e, s, r) {
31
+ const g = b(n, e), t = K().domain(e).thresholds(g).value((i) => o.getColumnValue(a.value, i))(u);
32
32
  return {
33
- bins: F(s, i, u),
34
- maxCount: E(s, (m) => m.length) ?? 0
33
+ bins: E(t, s, r),
34
+ maxCount: G(t, (i) => i.length) ?? 0
35
35
  };
36
36
  }
37
- function H(a, e, t, n, i, u) {
38
- const o = w(t, n), s = X().domain(n).range(n), m = o.map((r) => s.invert(r)), c = b().domain(n).thresholds(m).value((r) => r[e.value])(a);
37
+ function X(o, u, a, n, e, s, r) {
38
+ const g = b(n, e), t = V().domain(e).range(e), i = g.map((m) => t.invert(m)), c = K().domain(e).thresholds(i).value((m) => o.getColumnValue(a.value, m))(u);
39
39
  return {
40
- bins: F(c, i, u),
41
- maxCount: E(c, (r) => r.length) ?? 0
40
+ bins: E(c, s, r),
41
+ maxCount: G(c, (m) => m.length) ?? 0
42
42
  };
43
43
  }
44
- function _(a, e, t, n, i, u) {
45
- const o = {};
46
- return e.forEach((s) => {
47
- var m, c;
48
- const r = s.join("_");
49
- o[r] = {
50
- groupingKeys: t,
44
+ function A(o, u, a, n, e, s) {
45
+ const r = {};
46
+ return u.forEach((g) => {
47
+ const t = g.join("_");
48
+ r[t] = {
49
+ groupingKeys: a,
51
50
  histogramByGroupingKey: {},
52
51
  minX: 1 / 0,
53
52
  maxX: -1 / 0,
54
53
  maxCount: 0,
55
54
  maxCountFromGroups: 0
56
55
  };
57
- const d = a.getRowsByGrouping([...s]);
58
- let [G, B] = M(d, (l) => l[n.value]);
59
- G = G ?? ((m = d[0]) == null ? void 0 : m[n.value]) ?? 0, B = B ?? ((c = d[0]) == null ? void 0 : c[n.value]) ?? 0;
60
- const v = [G, B], C = [...t].reverse();
61
- C.forEach((l, g) => {
62
- const h = a.getRowsByGrouping([...s, l]), x = u === "linear" ? D(h, n, i, v, l, g) : H(h, n, i, v, l, g);
63
- o[r].histogramByGroupingKey[l] = x, o[r].minX = v[0], o[r].maxX = v[1], o[r].maxCountFromGroups = Math.max(o[r].maxCountFromGroups, x.maxCount);
64
- const y = g > 0 ? C[g - 1] : null, f = y !== null ? o[r].histogramByGroupingKey[y] : null;
65
- x.bins.forEach((p, L) => {
66
- p.y.straight = ((f == null ? void 0 : f.bins[L].y.straight) ?? 0) + p.count, o[r].maxCount = Math.max(o[r].maxCount, p.y.straight);
56
+ const i = o.getRowsByGrouping([...g]);
57
+ let [c, m] = M(i, (l) => o.getColumnValue(n.value, l));
58
+ c ?? (c = o.getColumnValue(n.value, i[0]) ?? 0), m ?? (m = o.getColumnValue(n.value, i[0]) ?? 0);
59
+ const C = [c, m], d = [...a].reverse();
60
+ d.forEach((l, h) => {
61
+ const p = Array.from(o.getRowsByGrouping([...g, l])), x = s === "linear" ? L(o, p, n, e, C, l, h) : X(o, p, n, e, C, l, h);
62
+ r[t].histogramByGroupingKey[l] = x, r[t].minX = C[0], r[t].maxX = C[1], r[t].maxCountFromGroups = Math.max(r[t].maxCountFromGroups, x.maxCount);
63
+ const y = h > 0 ? d[h - 1] : null, f = y !== null ? r[t].histogramByGroupingKey[y] : null;
64
+ x.bins.forEach((v, F) => {
65
+ v.y.straight = ((f == null ? void 0 : f.bins[F].y.straight) ?? 0) + v.count, r[t].maxCount = Math.max(r[t].maxCount, v.y.straight);
67
66
  });
68
67
  });
69
- const K = t;
70
- K.forEach((l, g) => {
71
- const h = g > 0 ? K[g - 1] : null, x = o[r].histogramByGroupingKey[l], y = h !== null ? o[r].histogramByGroupingKey[h] : null;
72
- x.bins.forEach((f, p) => {
73
- f.y.reverse = ((y == null ? void 0 : y.bins[p].y.reverse) ?? 0) + f.count;
68
+ const B = a;
69
+ B.forEach((l, h) => {
70
+ const p = h > 0 ? B[h - 1] : null, x = r[t].histogramByGroupingKey[l], y = p !== null ? r[t].histogramByGroupingKey[p] : null;
71
+ x.bins.forEach((f, v) => {
72
+ f.y.reverse = ((y == null ? void 0 : y.bins[v].y.reverse) ?? 0) + f.count;
74
73
  });
75
74
  });
76
- }), o;
75
+ }), r;
77
76
  }
78
77
  export {
79
- _ as createHistogramDataByFacets,
80
- D as createHistogramDataLinear,
81
- H as createHistogramDataLog
78
+ A as createHistogramDataByFacets,
79
+ L as createHistogramDataLinear,
80
+ X as createHistogramDataLog
82
81
  };
83
82
  //# sourceMappingURL=getHistogramData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getHistogramData.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/histogram/getHistogramData.ts"],"sourcesContent":["import type {DataFrame} from '../DataFrame';\nimport type {ColumnName, Row} from '../types';\nimport type {Bin} from 'd3-array';\nimport {bin, extent, max} from 'd3-array';\nimport {scaleSymlog} from 'd3-scale';\n\nexport type BinData = {\n count: number,\n y: {\n straight: number,\n reverse: number\n },\n rows: Row[],\n x: number,\n groupingKey: string,\n groupingKeyIdx: number,\n width: number\n}\nexport type HistogramData = {\n bins: BinData[];\n maxCount: number;\n};\n\nexport type GroupedHistogramData = {\n groupingKeys: string[],\n histogramByGroupingKey: Record<string, HistogramData>\n minX: number;\n maxX: number;\n maxCount: number;\n maxCountFromGroups: number;\n}\n\nconst getSteps = (count: number, valueExtent: number[]) => {\n const min = Math.min(...valueExtent);\n const max = Math.max(...valueExtent);\n if (min === max) {\n return [min];\n }\n if (count < 2) {\n return [(min + max) / 2];\n }\n const step = (max - min) / count;\n const steps = [];\n for (let i = 1; i < count; i++) {\n steps.push(min + step * i);\n }\n return steps;\n};\n\nfunction createBinData (bins:Bin<Row, number>[], key:string, keyIdx:number):BinData[] {\n return bins.map((b) => ({\n count: b.length,\n y: {\n straight: b.length,\n reverse: b.length\n },\n rows: b,\n x: b.x0 ?? 0,\n groupingKey: key,\n groupingKeyIdx: keyIdx,\n width: (b.x1 ?? 0) - (b.x0 ?? 0)\n }));\n}\nexport function createHistogramDataLinear(rows:Row[], column: ColumnName, binsCount:number, domain:[number, number], key:string, keyIdx:number):HistogramData {\n const ticks= getSteps(binsCount, domain);\n const bins = bin<Row, number>()\n .domain(domain)\n .thresholds(ticks)\n .value((row:Row) => row[column.value] as number)(rows);\n return {\n bins: createBinData(bins, key, keyIdx),\n maxCount: max(bins, (bin) => bin.length) ?? 0\n };\n}\nexport function createHistogramDataLog(rows:Row[], column: ColumnName, binsCount:number, domain:[number, number], key:string, keyIdx:number):HistogramData {\n const ticks= getSteps(binsCount, domain);\n const convertLog = scaleSymlog().domain(domain).range(domain);\n const ticksLog = ticks.map(t => convertLog.invert(t));\n const bins = bin<Row, number>()\n .domain(domain)\n .thresholds(ticksLog)\n .value((row:Row) => row[column.value] as number)(rows);\n\n return {\n bins: createBinData(bins, key, keyIdx),\n maxCount: max(bins, (bin) => bin.length) ?? 0\n };\n}\n\nexport function createHistogramDataByFacets(\n data:DataFrame,\n facetKeysCombinations:string[][],\n groupingKeys: string[],\n valueColumn:ColumnName,\n binsCount:number,\n scale: 'linear' | 'log'\n) {\n const result:Record<string, GroupedHistogramData> = {};\n facetKeysCombinations.forEach((facetKeys) => {\n const facetKey = facetKeys.join('_');\n result[facetKey] = {\n groupingKeys,\n histogramByGroupingKey: {},\n minX: Infinity,\n maxX: -Infinity,\n maxCount: 0,\n maxCountFromGroups: 0\n };\n const allFacetRows = data.getRowsByGrouping([...facetKeys]);\n let [minV, maxV] = extent(allFacetRows, v => v[valueColumn.value] as number);\n minV = minV ?? allFacetRows[0]?.[valueColumn.value] as number ?? 0;\n maxV = maxV ?? allFacetRows[0]?.[valueColumn.value] as number ?? 0;\n const domain:[number, number] = [minV, maxV];\n const forwardKeys = [...groupingKeys].reverse();\n forwardKeys.forEach((groupingKey, idx) => {\n const rows = data.getRowsByGrouping([...facetKeys, groupingKey]);\n const histogram = scale === 'linear'\n ? createHistogramDataLinear(rows, valueColumn, binsCount, domain, groupingKey, idx)\n : createHistogramDataLog(rows, valueColumn, binsCount, domain, groupingKey, idx);\n result[facetKey].histogramByGroupingKey[groupingKey] = histogram;\n result[facetKey].minX = domain[0];\n result[facetKey].maxX = domain[1];\n result[facetKey].maxCountFromGroups = Math.max(result[facetKey].maxCountFromGroups, histogram.maxCount);\n\n const previousKey = idx > 0 ? forwardKeys[idx - 1] : null;\n const previousHistogram = previousKey !== null ? result[facetKey].histogramByGroupingKey[previousKey] : null;\n\n histogram.bins.forEach((bin, idx) => {\n bin.y.straight = (previousHistogram?.bins[idx].y.straight ?? 0) + bin.count;\n result[facetKey].maxCount = Math.max(result[facetKey].maxCount, bin.y.straight);\n });\n });\n\n const reversedKeys = groupingKeys;\n reversedKeys.forEach((groupingKey, idx) => {\n const previousKey = idx > 0 ? reversedKeys[idx - 1] : null;\n const histogram = result[facetKey].histogramByGroupingKey[groupingKey];\n const previousHistogram = previousKey !== null ? result[facetKey].histogramByGroupingKey[previousKey] : null;\n\n histogram.bins.forEach((bin, idx) => {\n bin.y.reverse = (previousHistogram?.bins[idx].y.reverse ?? 0) + bin.count;\n });\n });\n });\n return result;\n}"],"names":["getSteps","count","valueExtent","min","max","step","steps","i","createBinData","bins","key","keyIdx","b","createHistogramDataLinear","rows","column","binsCount","domain","ticks","bin","row","createHistogramDataLog","convertLog","scaleSymlog","ticksLog","t","createHistogramDataByFacets","data","facetKeysCombinations","groupingKeys","valueColumn","scale","result","facetKeys","facetKey","allFacetRows","minV","maxV","extent","v","_a","_b","forwardKeys","groupingKey","idx","histogram","previousKey","previousHistogram","reversedKeys"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"getHistogramData.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/histogram/getHistogramData.ts"],"sourcesContent":["import type { Bin } from 'd3-array';\nimport { bin, extent, max } from 'd3-array';\nimport { scaleSymlog } from 'd3-scale';\nimport type { DataFrame, RowIndex } from '../DataFrame';\nimport type { ColumnName } from '../types';\n\nexport type BinData = {\n indexes: RowIndex[];\n x: number,\n y: {\n straight: number,\n reverse: number\n },\n count: number,\n groupingKey: string,\n groupingKeyIdx: number,\n width: number\n}\nexport type HistogramData = {\n bins: BinData[];\n maxCount: number;\n};\n\nexport type GroupedHistogramData = {\n groupingKeys: string[],\n histogramByGroupingKey: Record<string, HistogramData>\n minX: number;\n maxX: number;\n maxCount: number;\n maxCountFromGroups: number;\n}\n\nconst getSteps = (count: number, valueExtent: number[]) => {\n const min = Math.min(...valueExtent);\n const max = Math.max(...valueExtent);\n if (min === max) {\n return [min];\n }\n if (count < 2) {\n return [(min + max) / 2];\n }\n const step = (max - min) / count;\n const steps = [];\n for (let i = 1; i < count; i++) {\n steps.push(min + step * i);\n }\n return steps;\n};\n\nfunction createBinData (bins:Bin<RowIndex, number>[], key:string, keyIdx:number):BinData[] {\n return bins.map((b) => ({\n indexes: b,\n x: b.x0 ?? 0,\n y: {\n straight: b.length,\n reverse: b.length\n },\n count: b.length,\n groupingKey: key,\n groupingKeyIdx: keyIdx,\n width: (b.x1 ?? 0) - (b.x0 ?? 0)\n }));\n}\nexport function createHistogramDataLinear(dataFrame: DataFrame, indexes: RowIndex[], column: ColumnName, binsCount:number, domain:[number, number], key:string, keyIdx:number):HistogramData {\n const ticks= getSteps(binsCount, domain);\n const bins = bin<RowIndex, number>()\n .domain(domain)\n .thresholds(ticks)\n .value((idx: RowIndex) => dataFrame.getColumnValue(column.value, idx) as number)(indexes);\n return {\n bins: createBinData(bins, key, keyIdx),\n maxCount: max(bins, (bin) => bin.length) ?? 0\n };\n}\nexport function createHistogramDataLog(dataFrame: DataFrame, indexes: RowIndex[], column: ColumnName, binsCount:number, domain:[number, number], key:string, keyIdx:number):HistogramData {\n const ticks= getSteps(binsCount, domain);\n const convertLog = scaleSymlog().domain(domain).range(domain);\n const ticksLog = ticks.map(t => convertLog.invert(t));\n const bins = bin<RowIndex, number>()\n .domain(domain)\n .thresholds(ticksLog)\n .value((idx: RowIndex) => dataFrame.getColumnValue(column.value, idx) as number)(indexes);\n\n return {\n bins: createBinData(bins, key, keyIdx),\n maxCount: max(bins, (bin) => bin.length) ?? 0\n };\n}\n\nexport function createHistogramDataByFacets(\n data:DataFrame,\n facetKeysCombinations:string[][],\n groupingKeys: string[],\n valueColumn:ColumnName,\n binsCount:number,\n scale: 'linear' | 'log'\n) {\n const result:Record<string, GroupedHistogramData> = {};\n facetKeysCombinations.forEach((facetKeys) => {\n const facetKey = facetKeys.join('_');\n result[facetKey] = {\n groupingKeys,\n histogramByGroupingKey: {},\n minX: Infinity,\n maxX: -Infinity,\n maxCount: 0,\n maxCountFromGroups: 0\n };\n const allFacetRowsIndexes = data.getRowsByGrouping([...facetKeys]);\n let [minV, maxV] = extent(allFacetRowsIndexes, idx => data.getColumnValue(valueColumn.value, idx) as number);\n minV ??= (data.getColumnValue(valueColumn.value, allFacetRowsIndexes[0]) ?? 0) as number;\n maxV ??= (data.getColumnValue(valueColumn.value, allFacetRowsIndexes[0]) ?? 0) as number;\n const domain:[number, number] = [minV, maxV];\n const forwardKeys = [...groupingKeys].reverse();\n forwardKeys.forEach((groupingKey, idx) => {\n const indexes = Array.from(data.getRowsByGrouping([...facetKeys, groupingKey]));\n const histogram = scale === 'linear'\n ? createHistogramDataLinear(data, indexes, valueColumn, binsCount, domain, groupingKey, idx)\n : createHistogramDataLog(data, indexes, valueColumn, binsCount, domain, groupingKey, idx);\n result[facetKey].histogramByGroupingKey[groupingKey] = histogram;\n result[facetKey].minX = domain[0];\n result[facetKey].maxX = domain[1];\n result[facetKey].maxCountFromGroups = Math.max(result[facetKey].maxCountFromGroups, histogram.maxCount);\n\n const previousKey = idx > 0 ? forwardKeys[idx - 1] : null;\n const previousHistogram = previousKey !== null ? result[facetKey].histogramByGroupingKey[previousKey] : null;\n\n histogram.bins.forEach((bin, idx) => {\n bin.y.straight = (previousHistogram?.bins[idx].y.straight ?? 0) + bin.count;\n result[facetKey].maxCount = Math.max(result[facetKey].maxCount, bin.y.straight);\n });\n });\n\n const reversedKeys = groupingKeys;\n reversedKeys.forEach((groupingKey, idx) => {\n const previousKey = idx > 0 ? reversedKeys[idx - 1] : null;\n const histogram = result[facetKey].histogramByGroupingKey[groupingKey];\n const previousHistogram = previousKey !== null ? result[facetKey].histogramByGroupingKey[previousKey] : null;\n\n histogram.bins.forEach((bin, idx) => {\n bin.y.reverse = (previousHistogram?.bins[idx].y.reverse ?? 0) + bin.count;\n });\n });\n });\n return result;\n}"],"names":["getSteps","count","valueExtent","min","max","step","steps","i","createBinData","bins","key","keyIdx","b","createHistogramDataLinear","dataFrame","indexes","column","binsCount","domain","ticks","bin","idx","createHistogramDataLog","convertLog","scaleSymlog","ticksLog","c","t","createHistogramDataByFacets","data","facetKeysCombinations","groupingKeys","valueColumn","scale","result","facetKeys","facetKey","allFacetRowsIndexes","minV","maxV","extent","forwardKeys","groupingKey","histogram","previousKey","previousHistogram","reversedKeys"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,80 +1,83 @@
1
+ import { l as y } from "../node_modules/lodash/lodash.js";
2
+ import { renderToString as C } from "../node_modules/react-dom/server.browser.js";
1
3
  import { AbstractChart as f } from "../AbstractChart.js";
2
- import { createHistogramDataByFacets as C } from "./getHistogramData.js";
3
- import m from "../node_modules/lodash/lodash.js";
4
- import { renderToString as D } from "../node_modules/react-dom/server.browser.js";
5
- import S from "./ChartRenderer.js";
6
- import { HistogramSettingsImpl as p } from "./HistogramSettingsImpl.js";
7
- import { getKeysCombinations as b } from "../utils/getKeysCombination.js";
8
- var _ = Object.defineProperty, B = (u, t, a) => t in u ? _(u, t, { enumerable: !0, configurable: !0, writable: !0, value: a }) : u[t] = a, h = (u, t, a) => B(u, typeof t != "symbol" ? t + "" : t, a);
9
- function A(u, t, a) {
10
- return t.reduce((r, n) => {
11
- const o = m.uniqBy(u.rows, (e) => e[n.value]), l = (e) => String(e[n.value]), i = (e) => n.valueLabels ? String(e[n.valueLabels]) : l(e), s = o.reduce((e, d) => (e[l(d)] = i(d), e), {});
12
- return r[n.value] = {
13
- values: o.map(l).filter((e) => e !== "null").sort((e, d) => s[e].localeCompare(s[d], "en", { numeric: !0 })),
14
- aesMap: a[n.value],
15
- labels: s
16
- }, r;
4
+ import { getKeysCombinations as D } from "../utils/getKeysCombination.js";
5
+ import b from "./ChartRenderer.js";
6
+ import { createHistogramDataByFacets as S } from "./getHistogramData.js";
7
+ import { HistogramSettingsImpl as g } from "./HistogramSettingsImpl.js";
8
+ var _ = Object.defineProperty, w = (u, e, t) => e in u ? _(u, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : u[e] = t, d = (u, e, t) => w(u, typeof e != "symbol" ? e + "" : e, t);
9
+ function x(u, e, t) {
10
+ return e.reduce((a, s) => {
11
+ const o = u.getColumnCategories(s.value, !1), l = (r) => s.valueLabels ? String(u.getColumnValue(
12
+ s.valueLabels,
13
+ u.getColumnCategoryRowIndex(s.value, r)
14
+ )) : r, i = o.reduce((r, n) => (r[n] = l(n), r), {});
15
+ return a[s.value] = {
16
+ values: o.sort((r, n) => i[r].localeCompare(i[n], "en", { numeric: !0 })),
17
+ aesMap: t[s.value],
18
+ labels: i
19
+ }, a;
17
20
  }, {});
18
21
  }
19
- class T extends f {
20
- constructor(t, a, r) {
21
- super(t, a), h(this, "settings"), h(this, "chartRenderer", new S()), h(this, "onTooltipHintSwitch", () => {
22
- }), h(this, "calculatedData", null), this.settings = new p(a), r && (this.onTooltipHintSwitch = r[0]);
22
+ class K extends f {
23
+ constructor(e, t, a) {
24
+ super(e, t), d(this, "settings"), d(this, "chartRenderer", new b()), d(this, "onTooltipHintSwitch", () => {
25
+ }), d(this, "calculatedData", null), this.settings = new g(t), a && (this.onTooltipHintSwitch = a[0]);
23
26
  }
24
- mount(t) {
27
+ mount(e) {
25
28
  try {
26
- this.chartRenderer.init(t), this._updateData(), this._updateChart();
27
- } catch (a) {
28
- a instanceof Error && this.chartRenderer.renderError(a.message);
29
+ this.chartRenderer.init(e), this._updateData(), this._updateChart(), this.hasError = !1;
30
+ } catch (t) {
31
+ this.hasError = !0, t instanceof Error && (this.chartRenderer.renderError(t.message), console.error(t));
29
32
  }
30
33
  }
31
34
  unmount() {
32
35
  this.chartRenderer.clear();
33
36
  }
34
- updateSettingsAndData(t, a) {
37
+ updateSettingsAndData(e, t) {
35
38
  try {
36
- const r = this.settings, n = this.data;
37
- this.settings = new p(a), this.data = t, this._needUpdateCalculatedDataBySettings(r, this.settings) || this._needUpdateCalculatedDataByData(n, this.data) ? this._updateData() : this._updateAesInData(), this._updateChart();
38
- } catch (r) {
39
- r instanceof Error && this.chartRenderer.renderError(r.message);
39
+ const a = this.settings, s = this.data;
40
+ this.settings = new g(t), this.data = e, this._needUpdateCalculatedDataBySettings(a, this.settings) || this._needUpdateCalculatedDataByData(s, this.data) ? this._updateData() : this._updateAesInData(), this._updateChart(), this.hasError = !1;
41
+ } catch (a) {
42
+ this.hasError = !0, a instanceof Error && (this.chartRenderer.renderError(a.message), console.error(a));
40
43
  }
41
44
  }
42
- updateChartState(t, a) {
45
+ updateChartState(e, t) {
43
46
  console.warn("no chart state for histogram");
44
47
  }
45
48
  export() {
46
- return this._updateChart(), D(this.chartRenderer.component);
49
+ return this._updateChart(), C(this.chartRenderer.component);
47
50
  }
48
- _needUpdateCalculatedDataBySettings(t, a) {
49
- var r, n, o, l;
50
- return t.valueColumn.value !== a.valueColumn.value || t.facetBy.some((i, s) => {
51
- var e;
52
- return i.value !== ((e = a.facetBy[s]) == null ? void 0 : e.value);
53
- }) || ((r = t.grouping) == null ? void 0 : r.value) !== ((n = a.grouping) == null ? void 0 : n.value) || t.layers.length !== a.layers.length || t.layers.some((i, s) => i.type !== a.layers[s].type) || t.binsCount !== a.binsCount || t.chartSettings.xAxis.scale !== a.chartSettings.xAxis.scale || ((o = t.groupingOrder) == null ? void 0 : o.some((i, s) => {
54
- var e;
55
- return i !== ((e = a.groupingOrder) == null ? void 0 : e[s]);
56
- })) || ((l = a.groupingOrder) == null ? void 0 : l.some((i, s) => {
57
- var e;
58
- return i !== ((e = t.groupingOrder) == null ? void 0 : e[s]);
51
+ _needUpdateCalculatedDataBySettings(e, t) {
52
+ var a, s, o, l;
53
+ return e.valueColumn.value !== t.valueColumn.value || e.facetBy.some((i, r) => {
54
+ var n;
55
+ return i.value !== ((n = t.facetBy[r]) == null ? void 0 : n.value);
56
+ }) || ((a = e.grouping) == null ? void 0 : a.value) !== ((s = t.grouping) == null ? void 0 : s.value) || e.layers.length !== t.layers.length || e.layers.some((i, r) => i.type !== t.layers[r].type) || e.binsCount !== t.binsCount || e.chartSettings.xAxis.scale !== t.chartSettings.xAxis.scale || ((o = e.groupingOrder) == null ? void 0 : o.some((i, r) => {
57
+ var n;
58
+ return i !== ((n = t.groupingOrder) == null ? void 0 : n[r]);
59
+ })) || ((l = t.groupingOrder) == null ? void 0 : l.some((i, r) => {
60
+ var n;
61
+ return i !== ((n = e.groupingOrder) == null ? void 0 : n[r]);
59
62
  }));
60
63
  }
61
- _needUpdateCalculatedDataByData(t, a) {
62
- const r = Object.keys(t.data), n = Object.keys(a.data);
63
- return t.id !== a.id || r.length !== n.length || r.some((o) => {
64
+ _needUpdateCalculatedDataByData(e, t) {
65
+ const a = Object.keys(e.data), s = Object.keys(t.data);
66
+ return e.id !== t.id || a.length !== s.length || a.some((o) => {
64
67
  var l;
65
- return t.data[o].length !== ((l = a.data[o]) == null ? void 0 : l.length);
68
+ return e.data[o].length !== ((l = t.data[o]) == null ? void 0 : l.length);
66
69
  });
67
70
  }
68
71
  _updateData() {
69
- const { valueColumn: t, facetBy: a, grouping: r, binsCount: n, chartSettings: o, inheritedAes: l, groupingOrder: i } = this.settings, s = a.map((c) => this.data.getColumnCategories(c.value)), e = s.length ? b([...s]) : [["null"]], d = a.map((c) => c.value) ?? null, v = r ? [r.value] : [];
70
- let g = r ? this.data.getColumnCategories(r.value) : ["null"];
71
- i && (g = m.intersection(i, g)), this.data.setGrouping([...d, ...v]);
72
- const y = C(this.data, e, g, t, n, o.xAxis.scale);
72
+ const { valueColumn: e, facetBy: t, grouping: a, binsCount: s, chartSettings: o, inheritedAes: l, groupingOrder: i } = this.settings, r = t.map((h) => this.data.getColumnCategories(h.value)), n = r.length ? D([...r]) : [["null"]], p = t.map((h) => h.value) ?? null, m = a ? [a.value] : [];
73
+ let c = a ? this.data.getColumnCategories(a.value) : ["null"];
74
+ i && (c = y.intersection(i, c)), this.data.setGrouping([...p, ...m]);
75
+ const v = S(this.data, n, c, e, s, o.xAxis.scale);
73
76
  this.calculatedData = {
74
- facetKeys: e.map((c) => c.join(", ")),
75
- facetKeysCombinations: e,
76
- histogramDataByFacets: y,
77
- legendInfo: A(this.data, r ? [r] : [], l)
77
+ facetKeys: n.map((h) => h.join(", ")),
78
+ facetKeysCombinations: n,
79
+ histogramDataByFacets: v,
80
+ legendInfo: x(this.data, a ? [a] : [], l)
78
81
  };
79
82
  }
80
83
  _updateAesInData() {
@@ -83,26 +86,27 @@ class T extends f {
83
86
  _updateChart() {
84
87
  if (!this.calculatedData)
85
88
  return;
86
- const { id: t, chartSettings: a, facetSettings: r, inheritedAes: n, layers: o, grouping: l, groupingDirection: i, groupingStack: s } = this.settings;
89
+ const { id: e, chartSettings: t, facetSettings: a, inheritedAes: s, layers: o, grouping: l, groupingDirection: i, groupingStack: r } = this.settings;
87
90
  this.chartRenderer.render(
91
+ this.data,
92
+ e,
88
93
  t,
89
94
  a,
90
- r,
91
95
  this.calculatedData.facetKeys,
92
96
  this.calculatedData.facetKeysCombinations,
93
97
  //for titles, if facet by more than 1 column
94
98
  this.calculatedData.histogramDataByFacets,
95
99
  this.calculatedData.legendInfo,
96
100
  o,
97
- n,
98
- l,
99
101
  s,
102
+ l,
103
+ r,
100
104
  i,
101
105
  this.onTooltipHintSwitch
102
106
  );
103
107
  }
104
108
  }
105
109
  export {
106
- T as ChartHistogram
110
+ K as ChartHistogram
107
111
  };
108
112
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/histogram/index.ts"],"sourcesContent":["import {AbstractChart} from '../AbstractChart';\nimport type {HistogramLegendInfo} from './components/types';\nimport type {GroupedHistogramData} from './getHistogramData';\nimport {createHistogramDataByFacets} from './getHistogramData';\nimport type {ColumnName, HistogramEventHandlers, Row} from '../types';\nimport type {HistogramSettings} from '../types';\nimport lodash from 'lodash';\nimport {renderToString} from 'react-dom/server';\nimport ChartRenderer from './ChartRenderer';\nimport {HistogramSettingsImpl} from './HistogramSettingsImpl';\nimport type {DataFrame} from '../DataFrame';\nimport {getKeysCombinations} from '../utils/getKeysCombination';\n\nfunction getLegendInfo(\n data: DataFrame,\n grouping: ColumnName[],\n inheritedAes: HistogramSettingsImpl['inheritedAes']\n): HistogramLegendInfo {\n return grouping.reduce((res: HistogramLegendInfo, column) => {\n const uniqRowsByGrouping = lodash.uniqBy(data.rows, row => row[column.value]);\n const getValue = (row: Row) => String(row[column.value]);\n const getValueLabel = (row: Row) => (column.valueLabels ? String(row[column.valueLabels]) : getValue(row));\n const labels = uniqRowsByGrouping.reduce((res: Record<string, string>, row) => {\n res[getValue(row)] = getValueLabel(row);\n return res;\n }, {});\n res[column.value] = {\n values: uniqRowsByGrouping.map(getValue).filter((v) => v !== 'null').sort((a, b) => labels[a].localeCompare(labels[b], 'en', {numeric: true})),\n aesMap: inheritedAes[column.value],\n labels,\n };\n return res;\n }, {});\n}\nexport class ChartHistogram extends AbstractChart {\n settings: HistogramSettingsImpl;\n chartRenderer = new ChartRenderer();\n\n onTooltipHintSwitch: (v:boolean) => void = () => undefined;\n calculatedData: {\n facetKeys: string[];\n facetKeysCombinations: string[][];\n histogramDataByFacets: Record<string, GroupedHistogramData>\n legendInfo: HistogramLegendInfo\n } | null = null;\n\n constructor(data: DataFrame, settings: HistogramSettings, eventHandlers?: HistogramEventHandlers) {\n super(data, settings);\n\n this.settings = new HistogramSettingsImpl(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 } catch (err) {\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n }\n }\n }\n\n unmount() {\n this.chartRenderer.clear();\n }\n\n updateSettingsAndData(data: DataFrame, settings: HistogramSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new HistogramSettingsImpl(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 } catch (err) {\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\n }\n }\n }\n\n updateChartState(_field: string, _value: unknown) {\n console.warn('no chart state for histogram');\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: HistogramSettingsImpl, settings: HistogramSettingsImpl) {\n return (\n prevSettings.valueColumn.value !== settings.valueColumn.value ||\n prevSettings.facetBy.some((el, idx) => el.value !== settings.facetBy[idx]?.value) ||\n prevSettings.grouping?.value !== settings.grouping?.value ||\n prevSettings.layers.length !== settings.layers.length ||\n prevSettings.layers.some((l, idx) => l.type !== settings.layers[idx].type) ||\n prevSettings.binsCount !== settings.binsCount ||\n prevSettings.chartSettings.xAxis.scale !== settings.chartSettings.xAxis.scale ||\n prevSettings.groupingOrder?.some((key, idx) => key !== settings.groupingOrder?.[idx]) ||\n settings.groupingOrder?.some((key, idx) => key !== prevSettings.groupingOrder?.[idx])\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 {valueColumn, facetBy, grouping, binsCount, chartSettings, inheritedAes, groupingOrder} = this.settings;\n\n const facetKeysLists = facetBy.map(column => this.data.getColumnCategories(column.value));\n const facetKeysCombinations = facetKeysLists.length ? getKeysCombinations([...facetKeysLists]) : [['null']];\n const facetGroupingValues = facetBy.map(column => column.value) ?? null;\n const groupingValues = grouping ? [grouping.value] : [];\n let groupingKeys = grouping ? this.data.getColumnCategories(grouping.value) : ['null'];\n if (groupingOrder) {\n groupingKeys = lodash.intersection(groupingOrder, groupingKeys);\n }\n\n this.data.setGrouping([...facetGroupingValues, ...groupingValues]);\n const histogramDataByFacets = createHistogramDataByFacets(this.data, facetKeysCombinations, groupingKeys, valueColumn, binsCount, chartSettings.xAxis.scale);\n\n this.calculatedData = {\n facetKeys: facetKeysCombinations.map(v => v.join(', ')),\n facetKeysCombinations,\n histogramDataByFacets,\n legendInfo: getLegendInfo(this.data, grouping ? [grouping] : [], inheritedAes)\n };\n }\n\n _updateAesInData() {\n const calculated = this.calculatedData;\n if (!calculated) {\n return;\n }\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {id, chartSettings, facetSettings, inheritedAes, layers, grouping, groupingDirection, groupingStack} = this.settings;\n this.chartRenderer.render(\n id,\n chartSettings,\n facetSettings,\n this.calculatedData.facetKeys,\n this.calculatedData.facetKeysCombinations, //for titles, if facet by more than 1 column\n this.calculatedData.histogramDataByFacets,\n this.calculatedData.legendInfo,\n layers,\n inheritedAes,\n grouping,\n groupingStack,\n groupingDirection,\n this.onTooltipHintSwitch\n );\n }\n}\n"],"names":["getLegendInfo","data","grouping","inheritedAes","res","column","uniqRowsByGrouping","lodash","row","getValue","getValueLabel","labels","v","a","b","ChartHistogram","AbstractChart","settings","eventHandlers","__publicField","ChartRenderer","HistogramSettingsImpl","node","err","previousSettings","previousData","_field","_value","renderToString","prevSettings","el","idx","_a","_b","l","_c","key","_d","prevData","prevKeys","keys","valueColumn","facetBy","binsCount","chartSettings","groupingOrder","facetKeysLists","facetKeysCombinations","getKeysCombinations","facetGroupingValues","groupingValues","groupingKeys","histogramDataByFacets","createHistogramDataByFacets","id","facetSettings","layers","groupingDirection","groupingStack"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/histogram/index.ts"],"sourcesContent":["import {\n intersection\n} from 'lodash';\nimport { renderToString } from 'react-dom/server';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport type { Category, ColumnName, HistogramEventHandlers, HistogramSettings } from '../types';\nimport { getKeysCombinations } from '../utils/getKeysCombination';\nimport ChartRenderer from './ChartRenderer';\nimport type { HistogramLegendInfo } from './components/types';\nimport type { GroupedHistogramData } from './getHistogramData';\nimport { createHistogramDataByFacets } from './getHistogramData';\nimport { HistogramSettingsImpl } from './HistogramSettingsImpl';\n\nfunction getLegendInfo(\n data: DataFrame,\n grouping: ColumnName[],\n inheritedAes: HistogramSettingsImpl['inheritedAes']\n): HistogramLegendInfo {\n return grouping.reduce((res: HistogramLegendInfo, column) => {\n const categories = data.getColumnCategories(column.value, false);\n const getValueLabel = (category: Category) => (column.valueLabels\n ? String(data.getColumnValue(\n column.valueLabels,\n data.getColumnCategoryRowIndex(column.value, category)\n ))\n : category\n );\n const labels = categories.reduce((res: Record<string, string>, category) => {\n res[category] = getValueLabel(category);\n return res;\n }, {});\n res[column.value] = {\n values: categories.sort((a, b) => labels[a].localeCompare(labels[b], 'en', {numeric: true})),\n aesMap: inheritedAes[column.value],\n labels,\n };\n return res;\n }, {});\n}\n\nexport class ChartHistogram extends AbstractChart {\n settings: HistogramSettingsImpl;\n chartRenderer = new ChartRenderer();\n\n onTooltipHintSwitch: (v:boolean) => void = () => undefined;\n calculatedData: {\n facetKeys: string[];\n facetKeysCombinations: string[][];\n histogramDataByFacets: Record<string, GroupedHistogramData>\n legendInfo: HistogramLegendInfo\n } | null = null;\n\n constructor(data: DataFrame, settings: HistogramSettings, eventHandlers?: HistogramEventHandlers) {\n super(data, settings);\n\n this.settings = new HistogramSettingsImpl(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 } 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 unmount() {\n this.chartRenderer.clear();\n }\n\n updateSettingsAndData(data: DataFrame, settings: HistogramSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new HistogramSettingsImpl(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 } 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 console.warn('no chart state for histogram');\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: HistogramSettingsImpl, settings: HistogramSettingsImpl) {\n return (\n prevSettings.valueColumn.value !== settings.valueColumn.value ||\n prevSettings.facetBy.some((el, idx) => el.value !== settings.facetBy[idx]?.value) ||\n prevSettings.grouping?.value !== settings.grouping?.value ||\n prevSettings.layers.length !== settings.layers.length ||\n prevSettings.layers.some((l, idx) => l.type !== settings.layers[idx].type) ||\n prevSettings.binsCount !== settings.binsCount ||\n prevSettings.chartSettings.xAxis.scale !== settings.chartSettings.xAxis.scale ||\n prevSettings.groupingOrder?.some((key, idx) => key !== settings.groupingOrder?.[idx]) ||\n settings.groupingOrder?.some((key, idx) => key !== prevSettings.groupingOrder?.[idx])\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 {valueColumn, facetBy, grouping, binsCount, chartSettings, inheritedAes, groupingOrder} = this.settings;\n\n const facetKeysLists = facetBy.map(column => this.data.getColumnCategories(column.value));\n const facetKeysCombinations = facetKeysLists.length ? getKeysCombinations([...facetKeysLists]) : [['null']];\n const facetGroupingValues = facetBy.map(column => column.value) ?? null;\n const groupingValues = grouping ? [grouping.value] : [];\n let groupingKeys = grouping ? this.data.getColumnCategories(grouping.value) : ['null'];\n if (groupingOrder) {\n groupingKeys = intersection(groupingOrder, groupingKeys);\n }\n\n this.data.setGrouping([...facetGroupingValues, ...groupingValues]);\n const histogramDataByFacets = createHistogramDataByFacets(this.data, facetKeysCombinations, groupingKeys, valueColumn, binsCount, chartSettings.xAxis.scale);\n\n this.calculatedData = {\n facetKeys: facetKeysCombinations.map(v => v.join(', ')),\n facetKeysCombinations,\n histogramDataByFacets,\n legendInfo: getLegendInfo(this.data, grouping ? [grouping] : [], inheritedAes)\n };\n }\n\n _updateAesInData() {\n const calculated = this.calculatedData;\n if (!calculated) {\n return;\n }\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {id, chartSettings, facetSettings, inheritedAes, layers, grouping, groupingDirection, groupingStack} = this.settings;\n this.chartRenderer.render(\n this.data,\n id,\n chartSettings,\n facetSettings,\n this.calculatedData.facetKeys,\n this.calculatedData.facetKeysCombinations, //for titles, if facet by more than 1 column\n this.calculatedData.histogramDataByFacets,\n this.calculatedData.legendInfo,\n layers,\n inheritedAes,\n grouping,\n groupingStack,\n groupingDirection,\n this.onTooltipHintSwitch\n );\n }\n}\n"],"names":["getLegendInfo","data","grouping","inheritedAes","res","column","categories","getValueLabel","category","labels","a","b","ChartHistogram","AbstractChart","settings","eventHandlers","__publicField","ChartRenderer","HistogramSettingsImpl","node","err","previousSettings","previousData","_field","_value","renderToString","prevSettings","el","idx","_a","_b","l","_c","key","_d","prevData","prevKeys","keys","valueColumn","facetBy","binsCount","chartSettings","groupingOrder","facetKeysLists","facetKeysCombinations","getKeysCombinations","facetGroupingValues","groupingValues","groupingKeys","intersection","histogramDataByFacets","createHistogramDataByFacets","v","id","facetSettings","layers","groupingDirection","groupingStack"],"mappings":"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","x_google_ignoreList":[0]}
@@ -5,27 +5,27 @@ import H from "../../../d3-selection/src/select.js";
5
5
  const K = (a) => a, X = (a, i, N = {}) => {
6
6
  let f = [10], g = null, k = () => {
7
7
  }, S = null, c = 6, m = 6, _ = 3;
8
- const w = G(), A = I("g", "tick").key(K), O = I("path", "domain"), M = () => ({ offset: [0, m + _] }), T = () => ({ path: [[0, 0], [0, m]] }), V = N.labelOffset || M, q = N.tickPath || T, b = (t, l) => {
8
+ const w = G(), F = I("g", "tick").key(K), O = I("path", "domain"), M = () => ({ offset: [0, m + _] }), T = () => ({ path: [[0, 0], [0, m]] }), V = N.labelOffset || M, q = N.tickPath || T, b = (t, l) => {
9
9
  let s = 0;
10
10
  return t.bandwidth && (s = t.bandwidth() / 2, t.round() && (s = Math.round(s))), (y) => l(t(y) + s, 0);
11
11
  }, h = (t, l) => x() ? `translate(${l}, ${t})` : `translate(${t}, ${l})`, P = (t) => x() ? t.map((l) => [l[1], l[0]]) : t, x = () => a === "left" || a === "right", r = (t) => {
12
- Y(t) && (A.transition(t), O.transition(t)), t.each((l, s, y) => {
12
+ Y(t) && (F.transition(t), O.transition(t)), t.each((l, s, y) => {
13
13
  const p = y[s], $ = H(p);
14
14
  p.__scale__ || $.attr("fill", "none").attr("font-size", 10).attr("font-family", "sans-serif").attr("text-anchor", a === "right" ? "start" : a === "left" ? "end" : "middle");
15
15
  const D = p.__scale__ || i;
16
16
  p.__scale__ = i.copy();
17
- const d = C(r), J = E(r), z = a === "bottom" || a === "right" ? 1 : -1, F = ([n, e]) => [n, z * e], u = i.range(), Q = P([
17
+ const d = C(r), J = E(r), z = a === "bottom" || a === "right" ? 1 : -1, A = ([n, e]) => [n, z * e], u = i.range(), Q = P([
18
18
  [u[0], z * c],
19
19
  [u[0], 0],
20
20
  [u[1], 0],
21
21
  [u[1], z * c]
22
22
  ]), j = O($, [l]);
23
23
  j.enter().attr("stroke", "#000"), j.attr("d", w(Q));
24
- const o = A($, d), v = d.map((n, e) => V(n, e, d)), B = d.map((n, e) => q(n, e, d));
25
- o.enter().attr("transform", b(D, h)).append("path").attr("stroke", "#000"), o.enter().append("text").attr("transform", (n, e) => h(...F(v[e].offset))).attr("fill", "#000"), o.exit().attr("transform", b(i, h)), o.select("path").attr("visibility", (n, e) => B[e].hidden && "hidden").attr(
24
+ const o = F($, d), v = d.map((n, e) => V(n, e, d)), B = d.map((n, e) => q(n, e, d));
25
+ o.enter().attr("transform", b(D, h)).append("path").attr("stroke", "#000"), o.enter().append("text").attr("transform", (n, e) => h(...A(v[e].offset))).attr("fill", "#000"), o.exit().attr("transform", b(i, h)), o.select("path").attr("visibility", (n, e) => B[e].hidden && "hidden").attr(
26
26
  "d",
27
- (n, e) => w(P(B[e].path.map(F)))
28
- ), o.select("text").attr("visibility", (n, e) => v[e].hidden && "hidden").attr("transform", (n, e) => h(...F(v[e].offset))).attr("dy", () => {
27
+ (n, e) => w(P(B[e].path.map(A)))
28
+ ), o.select("text").attr("visibility", (n, e) => v[e].hidden && "hidden").attr("transform", (n, e) => h(...A(v[e].offset))).attr("dy", () => {
29
29
  let n = "0em";
30
30
  return x() ? n = "0.32em" : a === "bottom" && (n = "0.71em"), n;
31
31
  }).text(J), o.attr("transform", b(i, h)), k(o, l, s);
@@ -1,16 +1,10 @@
1
- function n(f, t) {
2
- let e;
3
- if (t === void 0)
4
- for (const l of f)
5
- l != null && (e > l || e === void 0 && l >= l) && (e = l);
6
- else {
7
- let l = -1;
8
- for (let o of f)
9
- (o = t(o, ++l, f)) != null && (e > o || e === void 0 && o >= o) && (e = o);
10
- }
11
- return e;
1
+ function l(t, e) {
2
+ let o;
3
+ for (const n of t)
4
+ n != null && (o > n || o === void 0 && n >= n) && (o = n);
5
+ return o;
12
6
  }
13
7
  export {
14
- n as default
8
+ l as default
15
9
  };
16
10
  //# sourceMappingURL=min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"min.js","sources":["../../../../../../../../node_modules/@milaboratories/miplots4/node_modules/d3-array/src/min.js"],"sourcesContent":["export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n"],"names":["min","values","valueof","value","index"],"mappings":"AAAe,SAASA,EAAIC,GAAQC,GAAS;AAC3C,MAAIF;AACJ,MAAIE,MAAY;AACd,eAAWC,KAASF;AACdE,MAAAA,KAAS,SACLH,IAAMG,KAAUH,MAAQ,UAAaG,KAASA,OACpDH,IAAMG;AAAAA,OAGL;AACL,QAAIC,IAAQ;AACZ,aAASD,KAASF;AAChB,OAAKE,IAAQD,EAAQC,GAAO,EAAEC,GAAOH,CAAM,MAAM,SACzCD,IAAMG,KAAUH,MAAQ,UAAaG,KAASA,OACpDH,IAAMG;AAAAA,EAGZ;AACA,SAAOH;AACT;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"min.js","sources":["../../../../../../../../node_modules/@milaboratories/miplots4/node_modules/d3-array/src/min.js"],"sourcesContent":["export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n"],"names":["min","values","valueof","value"],"mappings":"AAAe,SAASA,EAAIC,GAAQC,GAAS;AAC3C,MAAIF;AAEF,aAAWG,KAASF;AACdE,SAAS,SACLH,IAAMG,KAAUH,MAAQ,UAAaG,KAASA,OACpDH,IAAMG;AAYZ,SAAOH;AACT;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"line.js","sources":["../../../../../../../../node_modules/@milaboratories/miplots4/node_modules/d3-shape/src/line.js"],"sourcesContent":["import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n"],"names":["lineShape","x","y","defined","constant","context","curve","curveLinear","output","path","withPath","line","pointX","pointY","data","i","n","array","d","defined0","buffer","_"],"mappings":";;;;;AAMe,SAAAA,EAASC,GAAGC,GAAG;AAC5B,MAAIC,IAAUC,EAAS,EAAI,GACvBC,IAAU,MACVC,IAAQC,GACRC,IAAS,MACTC,IAAOC,EAASC,CAAI;AAExBV,EAAAA,IAAI,OAAOA,KAAM,aAAaA,IAAKA,MAAM,SAAaW,IAASR,EAASH,CAAC,GACzEC,IAAI,OAAOA,KAAM,aAAaA,IAAKA,MAAM,SAAaW,IAAST,EAASF,CAAC;AAEzE,WAASS,EAAKG,GAAM;AAClB,QAAIC,GACAC,KAAKF,IAAOG,EAAMH,CAAI,GAAG,QACzBI,GACAC,IAAW,IACXC;AAIJ,SAFIf,KAAW,SAAMG,IAASF,EAAMc,IAASX,GAAM,IAE9CM,IAAI,GAAGA,KAAKC,GAAG,EAAED;AAChB,QAAEA,IAAIC,KAAKb,EAAQe,IAAIJ,EAAKC,CAAC,GAAGA,GAAGD,CAAI,OAAOK,OAC5CA,IAAW,CAACA,KAAUX,EAAO,UAAA,IAC5BA,EAAO,YAEVW,KAAUX,EAAO,MAAM,CAACP,EAAEiB,GAAGH,GAAGD,CAAI,GAAG,CAACZ,EAAEgB,GAAGH,GAAGD,CAAI,CAAC;AAG3D,QAAIM,EAAQ,QAAOZ,IAAS,MAAMY,IAAS,MAAM;AAAA,EACnD;AAEA,SAAAT,EAAK,IAAI,SAASU,GAAG;AACnB,WAAO,UAAU,UAAUpB,IAAI,OAAOoB,KAAM,aAAaA,IAAIjB,EAAS,CAACiB,CAAC,GAAGV,KAAQV;AAAAA,EACrF,GAEAU,EAAK,IAAI,SAASU,GAAG;AACnB,WAAO,UAAU,UAAUnB,IAAI,OAAOmB,KAAM,aAAaA,IAAIjB,EAAS,CAACiB,CAAC,GAAGV,KAAQT;AAAAA,EACrF,GAEAS,EAAK,UAAU,SAASU,GAAG;AACzB,WAAO,UAAU,UAAUlB,IAAU,OAAOkB,KAAM,aAAaA,IAAIjB,EAAS,CAAC,CAACiB,CAAC,GAAGV,KAAQR;AAAAA,EAC5F,GAEAQ,EAAK,QAAQ,SAASU,GAAG;AACvB,WAAO,UAAU,UAAUf,IAAQe,GAAGhB,KAAW,SAASG,IAASF,EAAMD,CAAO,IAAIM,KAAQL;AAAAA,EAC9F,GAEAK,EAAK,UAAU,SAASU,GAAG;AACzB,WAAO,UAAU,UAAUA,KAAK,OAAOhB,IAAUG,IAAS,OAAOA,IAASF,EAAMD,IAAUgB,CAAC,GAAGV,KAAQN;AAAAA,EACxG,GAEOM;AACT;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"line.js","sources":["../../../../../../../../node_modules/@milaboratories/miplots4/node_modules/d3-shape/src/line.js"],"sourcesContent":["import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n"],"names":["line","x","y","defined","constant","context","curve","curveLinear","output","path","withPath","pointX","pointY","data","i","n","array","d","defined0","buffer","_"],"mappings":";;;;;AAMe,SAAAA,EAASC,GAAGC,GAAG;AAC5B,MAAIC,IAAUC,EAAS,EAAI,GACvBC,IAAU,MACVC,IAAQC,GACRC,IAAS,MACTC,IAAOC,EAASV,CAAI;AAExBC,EAAAA,IAAI,OAAOA,KAAM,aAAaA,IAAKA,MAAM,SAAaU,IAASP,EAASH,CAAC,GACzEC,IAAI,OAAOA,KAAM,aAAaA,IAAKA,MAAM,SAAaU,IAASR,EAASF,CAAC;AAEzE,WAASF,EAAKa,GAAM;AAClB,QAAIC,GACAC,KAAKF,IAAOG,EAAMH,CAAI,GAAG,QACzBI,GACAC,IAAW,IACXC;AAIJ,SAFId,KAAW,SAAMG,IAASF,EAAMa,IAASV,GAAM,IAE9CK,IAAI,GAAGA,KAAKC,GAAG,EAAED;AAChB,QAAEA,IAAIC,KAAKZ,EAAQc,IAAIJ,EAAKC,CAAC,GAAGA,GAAGD,CAAI,OAAOK,OAC5CA,IAAW,CAACA,KAAUV,EAAO,UAAA,IAC5BA,EAAO,YAEVU,KAAUV,EAAO,MAAM,CAACP,EAAEgB,GAAGH,GAAGD,CAAI,GAAG,CAACX,EAAEe,GAAGH,GAAGD,CAAI,CAAC;AAG3D,QAAIM,EAAQ,QAAOX,IAAS,MAAMW,IAAS,MAAM;AAAA,EACnD;AAEA,SAAAnB,EAAK,IAAI,SAASoB,GAAG;AACnB,WAAO,UAAU,UAAUnB,IAAI,OAAOmB,KAAM,aAAaA,IAAIhB,EAAS,CAACgB,CAAC,GAAGpB,KAAQC;AAAAA,EACrF,GAEAD,EAAK,IAAI,SAASoB,GAAG;AACnB,WAAO,UAAU,UAAUlB,IAAI,OAAOkB,KAAM,aAAaA,IAAIhB,EAAS,CAACgB,CAAC,GAAGpB,KAAQE;AAAAA,EACrF,GAEAF,EAAK,UAAU,SAASoB,GAAG;AACzB,WAAO,UAAU,UAAUjB,IAAU,OAAOiB,KAAM,aAAaA,IAAIhB,EAAS,CAAC,CAACgB,CAAC,GAAGpB,KAAQG;AAAAA,EAC5F,GAEAH,EAAK,QAAQ,SAASoB,GAAG;AACvB,WAAO,UAAU,UAAUd,IAAQc,GAAGf,KAAW,SAASG,IAASF,EAAMD,CAAO,IAAIL,KAAQM;AAAAA,EAC9F,GAEAN,EAAK,UAAU,SAASoB,GAAG;AACzB,WAAO,UAAU,UAAUA,KAAK,OAAOf,IAAUG,IAAS,OAAOA,IAASF,EAAMD,IAAUe,CAAC,GAAGpB,KAAQK;AAAAA,EACxG,GAEOL;AACT;","x_google_ignoreList":[0]}