@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 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/heatmap/index.ts"],"sourcesContent":["import {AbstractChart} from '../AbstractChart';\nimport type {GroupedCellsData} from './getCells';\nimport {getCells} from './getCells';\nimport type {DendrogramsData} from './getDendrograms';\nimport {getDendrograms} from './getDendrograms';\nimport {isColumnName} from '../utils';\nimport {renderToString} from 'react-dom/server';\nimport ChartRenderer from './ChartRenderer';\nimport type {ColumnName, DataValue, HeatmapEventHandlers, HeatmapSettings} from '../types';\nimport {HeatmapSettingsImpl} from './HeatmapSettingsImpl';\nimport type {DataFrame} from '../DataFrame';\n\nexport class ChartHeatmap extends AbstractChart {\n settings: HeatmapSettingsImpl;\n chartRenderer = new ChartRenderer();\n\n onTooltipHintSwitch: (v:boolean) => void = () => undefined;\n calculatedData: {\n groupedCellsData: GroupedCellsData;\n dendrogramsData: DendrogramsData;\n cellUniqValues: DataValue[];\n } | null = null;\n\n constructor(data: DataFrame, settings: HeatmapSettings, eventHandlers?:HeatmapEventHandlers) {\n super(data, settings);\n\n this.settings = new HeatmapSettingsImpl(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: HeatmapSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new HeatmapSettingsImpl(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 heatmap');\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: HeatmapSettingsImpl, settings: HeatmapSettingsImpl) {\n const {\n xColumn,\n yColumn,\n valueColumn,\n xGroupBy,\n yGroupBy,\n facetBy,\n annotations,\n chartSettings,\n facetSettings,\n dendrogramX,\n dendrogramY,\n normalization,\n NAValueAs,\n } = settings;\n\n const prevDendrogramXColumns: ColumnName[] = Object.values(prevSettings.dendrogramX?.aes || {}).filter(\n isColumnName\n );\n const currentDendrogramXColumns: ColumnName[] = Object.values(dendrogramX?.aes || {}).filter(isColumnName);\n const prevDendrogramYColumns: ColumnName[] = Object.values(prevSettings.dendrogramY?.aes || {}).filter(\n isColumnName\n );\n const currentDendrogramYColumns: ColumnName[] = Object.values(dendrogramY?.aes || {}).filter(isColumnName);\n\n function compareColumnGroups(columns1: ColumnName[], columns2: ColumnName[]) {\n return (\n columns1.length !== columns2.length ||\n columns1.some((column, idx) => column.value !== columns2[idx].value)\n );\n }\n\n return (\n prevSettings.xColumn.value !== xColumn.value ||\n prevSettings.yColumn.value !== yColumn.value ||\n prevSettings.valueColumn.value !== valueColumn.value ||\n compareColumnGroups(prevSettings.xGroupBy, xGroupBy) ||\n compareColumnGroups(prevSettings.yGroupBy, yGroupBy) ||\n compareColumnGroups(prevSettings.facetBy, facetBy) ||\n compareColumnGroups(\n prevSettings.annotations.map(a => a.valueColumn),\n annotations.map(a => a.valueColumn)\n ) ||\n compareColumnGroups(prevDendrogramXColumns, currentDendrogramXColumns) ||\n compareColumnGroups(prevDendrogramYColumns, currentDendrogramYColumns) ||\n ((settings.dendrogramX || prevSettings.dendrogramX) &&\n (prevSettings.dendrogramX?.distance !== settings.dendrogramX?.distance ||\n prevSettings.dendrogramX?.linkage !== settings.dendrogramX?.linkage)) ||\n ((settings.dendrogramY || prevSettings.dendrogramY) &&\n (prevSettings.dendrogramY?.distance !== settings.dendrogramY?.distance ||\n prevSettings.dendrogramY?.linkage !== settings.dendrogramY?.linkage)) ||\n prevSettings.chartSettings.valueType !== chartSettings.valueType ||\n prevSettings.facetSettings.sharedX !== facetSettings.sharedX ||\n prevSettings.facetSettings.sharedY !== facetSettings.sharedY ||\n prevSettings.normalization?.method !== normalization?.method ||\n prevSettings.normalization?.direction !== normalization?.direction ||\n prevSettings.NAValueAs !== NAValueAs\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 {\n xColumn,\n yColumn,\n valueColumn,\n xGroupBy,\n yGroupBy,\n facetBy,\n chartSettings,\n facetSettings,\n annotations,\n dendrogramX,\n dendrogramY,\n normalization,\n NAValueAs,\n } = this.settings;\n\n const groupedCellsData = getCells(\n this.data,\n xColumn,\n yColumn,\n valueColumn,\n facetBy,\n xGroupBy,\n yGroupBy,\n annotations,\n dendrogramX,\n dendrogramY,\n normalization,\n NAValueAs\n );\n const dendrogramsData = getDendrograms(groupedCellsData, dendrogramX, dendrogramY, facetSettings);\n const cellUniqValues =\n chartSettings.valueType === 'discrete' ? this.data.getColumnCategories(valueColumn.value) : [];\n\n this.calculatedData = {\n groupedCellsData,\n dendrogramsData,\n cellUniqValues,\n };\n }\n\n _updateAesInData() {\n return;\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {\n id,\n valueColumn,\n chartSettings,\n facetSettings,\n aes,\n annotations,\n dendrogramX,\n dendrogramY,\n inheritedDendrogramAes,\n normalization,\n } = this.settings;\n this.chartRenderer.render(\n id,\n chartSettings,\n facetSettings,\n aes,\n this.calculatedData.groupedCellsData,\n annotations,\n valueColumn,\n dendrogramX,\n dendrogramY,\n this.calculatedData.dendrogramsData,\n inheritedDendrogramAes,\n this.calculatedData.cellUniqValues,\n normalization,\n this.onTooltipHintSwitch\n );\n }\n}\n"],"names":["ChartHeatmap","AbstractChart","data","settings","eventHandlers","__publicField","ChartRenderer","HeatmapSettingsImpl","node","err","previousSettings","previousData","_field","_value","renderToString","prevSettings","xColumn","yColumn","valueColumn","xGroupBy","yGroupBy","facetBy","annotations","chartSettings","facetSettings","dendrogramX","dendrogramY","normalization","NAValueAs","prevDendrogramXColumns","_a","isColumnName","currentDendrogramXColumns","prevDendrogramYColumns","_b","currentDendrogramYColumns","compareColumnGroups","columns1","columns2","column","idx","a","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","prevData","prevKeys","keys","d","key","groupedCellsData","getCells","dendrogramsData","getDendrograms","cellUniqValues","id","aes","inheritedDendrogramAes"],"mappings":";;;;;;;;AAYO,MAAMA,WAAqBC,EAAc;AAAA,EAW5C,YAAYC,GAAiBC,GAA2BC,GAAqC;AACzF,UAAMF,GAAMC,CAAQ,GAXxBE,EAAA,MAAA,UAAA,GACAA,EAAA,MAAA,iBAAgB,IAAIC,EAAAA,CAAA,GAEpBD,EAAA,6BAA2C,MAAA;AAAA,IAAA,CAAA,GAC3CA,EAAA,MAAA,kBAIW,IAAA,GAKP,KAAK,WAAW,IAAIE,EAAoBJ,CAAQ,GAC5CC,MACA,KAAK,sBAAsBA,EAAc,CAAC;AAAA,EAElD;AAAA,EAEA,MAAMI,GAAmB;AACrB,QAAI;AACA,WAAK,cAAc,KAAKA,CAAI,GAC5B,KAAK,YAAA,GACL,KAAK,aAAA;AAAA,IACT,SAASC,GAAK;AACNA,MAAAA,aAAe,SACf,KAAK,cAAc,YAAYA,EAAI,OAAiB;AAAA,IAE5D;AAAA,EACJ;AAAA,EAEA,UAAU;AACN,SAAK,cAAc,MAAA;AAAA,EACvB;AAAA,EAEA,sBAAsBP,GAAiBC,GAA2B;AAC9D,QAAI;AACA,YAAMO,IAAmB,KAAK,UACxBC,IAAe,KAAK;AAC1B,WAAK,WAAW,IAAIJ,EAAoBJ,CAAQ,GAChD,KAAK,OAAOD,GAER,KAAK,oCAAoCQ,GAAkB,KAAK,QAAQ,KACxE,KAAK,gCAAgCC,GAAc,KAAK,IAAI,IAE5D,KAAK,YAAA,IAEL,KAAK,oBAET,KAAK,aAAA;AAAA,IACT,SAASF,GAAK;AACNA,MAAAA,aAAe,SACf,KAAK,cAAc,YAAYA,EAAI,OAAiB;AAAA,IAE5D;AAAA,EACJ;AAAA,EAEA,iBAAiBG,GAAgBC,GAAiB;AAC9C,YAAQ,KAAK,4BAA4B;AAAA,EAC7C;AAAA,EAEA,SAAiB;AACb,WAAA,KAAK,aAAA,GACEC,EAAe,KAAK,cAAc,SAAS;AAAA,EACtD;AAAA,EAEA,oCAAoCC,GAAmCZ,GAA+B;;AAClG,UAAM;AAAA,MACF,SAAAa;AAAAA,MACA,SAAAC;AAAAA,MACA,aAAAC;AAAAA,MACA,UAAAC;AAAAA,MACA,UAAAC;AAAAA,MACA,SAAAC;AAAAA,MACA,aAAAC;AAAAA,MACA,eAAAC;AAAAA,MACA,eAAAC;AAAAA,MACA,aAAAC;AAAAA,MACA,aAAAC;AAAAA,MACA,eAAAC;AAAAA,MACA,WAAAC;AAAAA,IAAA,IACAzB,GAEE0B,IAAuC,OAAO,SAAOC,IAAAf,EAAa,gBAAb,OAAA,SAAAe,EAA0B,QAAO,CAAA,CAAE,EAAE;AAAA,MAC5FC;AAAAA,IAAA,GAEEC,IAA0C,OAAO,QAAOP,KAAA,gBAAAA,EAAa,QAAO,EAAE,EAAE,OAAOM,CAAY,GACnGE,IAAuC,OAAO,SAAOC,IAAAnB,EAAa,gBAAb,OAAA,SAAAmB,EAA0B,QAAO,CAAA,CAAE,EAAE;AAAA,MAC5FH;AAAAA,IAAA,GAEEI,IAA0C,OAAO,QAAOT,KAAA,OAAA,SAAAA,EAAa,QAAO,CAAA,CAAE,EAAE,OAAOK,CAAY;AAEzG,aAASK,EAAoBC,GAAwBC,GAAwB;AACzE,aACID,EAAS,WAAWC,EAAS,UAC7BD,EAAS,KAAK,CAACE,GAAQC,MAAQD,EAAO,UAAUD,EAASE,CAAG,EAAE,KAAK;AAAA,IAE3E;AAEA,WACIzB,EAAa,QAAQ,UAAUC,EAAQ,SACvCD,EAAa,QAAQ,UAAUE,EAAQ,SACvCF,EAAa,YAAY,UAAUG,EAAY,SAC/CkB,EAAoBrB,EAAa,UAAUI,CAAQ,KACnDiB,EAAoBrB,EAAa,UAAUK,CAAQ,KACnDgB,EAAoBrB,EAAa,SAASM,CAAO,KACjDe;AAAAA,MACIrB,EAAa,YAAY,IAAI,CAAA0B,MAAKA,EAAE,WAAW;AAAA,MAC/CnB,EAAY,IAAI,CAAAmB,MAAKA,EAAE,WAAW;AAAA,IAAA,KAEtCL,EAAoBP,GAAwBG,CAAyB,KACrEI,EAAoBH,GAAwBE,CAAyB,MACnEhC,EAAS,eAAeY,EAAa,mBAClC2B,IAAA3B,EAAa,gBAAb,OAAA,SAAA2B,EAA0B,gBAAaC,IAAAxC,EAAS,gBAAT,OAAA,SAAAwC,EAAsB,eAC1DC,IAAA7B,EAAa,gBAAb,OAAA,SAAA6B,EAA0B,eAAYC,IAAA1C,EAAS,gBAAT,OAAA,SAAA0C,EAAsB,cAClE1C,EAAS,eAAeY,EAAa,mBAClC+B,IAAA/B,EAAa,gBAAb,OAAA,SAAA+B,EAA0B,gBAAaC,IAAA5C,EAAS,gBAAT,gBAAA4C,EAAsB,eAC1DC,IAAAjC,EAAa,gBAAb,gBAAAiC,EAA0B,eAAYC,IAAA9C,EAAS,gBAAT,OAAA,SAAA8C,EAAsB,aACpElC,EAAa,cAAc,cAAcQ,EAAc,aACvDR,EAAa,cAAc,YAAYS,EAAc,WACrDT,EAAa,cAAc,YAAYS,EAAc,aACrD0B,IAAAnC,EAAa,kBAAb,OAAA,SAAAmC,EAA4B,aAAWvB,KAAA,OAAA,SAAAA,EAAe,aACtDwB,IAAApC,EAAa,kBAAb,OAAA,SAAAoC,EAA4B,gBAAcxB,KAAA,OAAA,SAAAA,EAAe,cACrDZ,EAAa,cAAca;AAAAA,EAEvC;AAAA,EAEA,gCAAgCwB,GAAqBlD,GAAiB;AAClE,UAAMmD,IAAW,OAAO,KAAKD,EAAS,IAAI,GACpCE,IAAO,OAAO,KAAKpD,EAAK,IAAI;AAClC,WACIkD,EAAS,OAAOlD,EAAK,MACrBmD,EAAS,WAAWC,EAAK,UACzBD,EAAS,KAAK,CAAAE,MAAA;;AAAO,aAAAH,EAAS,KAAKI,CAAG,EAAE,aAAW1B,IAAA5B,EAAK,KAAKsD,CAAG,MAAb,OAAA,SAAA1B,EAAgB;AAAA,IAAA,CAAM;AAAA,EAEjF;AAAA,EAEA,cAAc;AACV,UAAM;AAAA,MACF,SAAAd;AAAAA,MACA,SAAAC;AAAAA,MACA,aAAAC;AAAAA,MACA,UAAAC;AAAAA,MACA,UAAAC;AAAAA,MACA,SAAAC;AAAAA,MACA,eAAAE;AAAAA,MACA,eAAAC;AAAAA,MACA,aAAAF;AAAAA,MACA,aAAAG;AAAAA,MACA,aAAAC;AAAAA,MACA,eAAAC;AAAAA,MACA,WAAAC;AAAAA,IAAA,IACA,KAAK,UAEH6B,IAAmBC;AAAAA,MACrB,KAAK;AAAA,MACL1C;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAG;AAAAA,MACAF;AAAAA,MACAC;AAAAA,MACAE;AAAAA,MACAG;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,IAAA,GAEE+B,IAAkBC,EAAeH,GAAkBhC,GAAaC,GAAaF,CAAa,GAC1FqC,IACFtC,EAAc,cAAc,aAAa,KAAK,KAAK,oBAAoBL,EAAY,KAAK,IAAI,CAAA;AAEhG,SAAK,iBAAiB;AAAA,MAClB,kBAAAuC;AAAAA,MACA,iBAAAE;AAAAA,MACA,gBAAAE;AAAAA,IAAA;AAAA,EAER;AAAA,EAEA,mBAAmB;AAAA,EAEnB;AAAA,EAEA,eAAe;AACX,QAAI,CAAC,KAAK;AACN;AAEJ,UAAM;AAAA,MACF,IAAAC;AAAAA,MACA,aAAA5C;AAAAA,MACA,eAAAK;AAAAA,MACA,eAAAC;AAAAA,MACA,KAAAuC;AAAAA,MACA,aAAAzC;AAAAA,MACA,aAAAG;AAAAA,MACA,aAAAC;AAAAA,MACA,wBAAAsC;AAAAA,MACA,eAAArC;AAAAA,IAAA,IACA,KAAK;AACT,SAAK,cAAc;AAAA,MACfmC;AAAAA,MACAvC;AAAAA,MACAC;AAAAA,MACAuC;AAAAA,MACA,KAAK,eAAe;AAAA,MACpBzC;AAAAA,MACAJ;AAAAA,MACAO;AAAAA,MACAC;AAAAA,MACA,KAAK,eAAe;AAAA,MACpBsC;AAAAA,MACA,KAAK,eAAe;AAAA,MACpBrC;AAAAA,MACA,KAAK;AAAA,IAAA;AAAA,EAEb;AACJ;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/heatmap/index.ts"],"sourcesContent":["import { renderToString } from 'react-dom/server';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport type { ColumnName, DataValue, HeatmapEventHandlers, HeatmapSettings } from '../types';\nimport { isColumnName } from '../utils';\nimport ChartRenderer from './ChartRenderer';\nimport type { GroupedCellsData } from './getCells';\nimport { getCells } from './getCells';\nimport type { DendrogramsData } from './getDendrograms';\nimport { getDendrograms } from './getDendrograms';\nimport { HeatmapSettingsImpl } from './HeatmapSettingsImpl';\n\nexport class ChartHeatmap extends AbstractChart {\n settings: HeatmapSettingsImpl;\n chartRenderer = new ChartRenderer();\n\n onTooltipHintSwitch: (v:boolean) => void = () => undefined;\n calculatedData: {\n groupedCellsData: GroupedCellsData;\n dendrogramsData: DendrogramsData;\n cellUniqValues: DataValue[];\n } | null = null;\n\n constructor(data: DataFrame, settings: HeatmapSettings, eventHandlers?:HeatmapEventHandlers) {\n super(data, settings);\n\n this.settings = new HeatmapSettingsImpl(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: HeatmapSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new HeatmapSettingsImpl(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 console.error(err);\n }\n }\n }\n\n updateChartState(_field: string, _value: unknown) {\n console.warn('no chart state for heatmap');\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: HeatmapSettingsImpl, settings: HeatmapSettingsImpl) {\n const {\n xColumn,\n yColumn,\n valueColumn,\n xGroupBy,\n yGroupBy,\n facetBy,\n annotations,\n chartSettings,\n facetSettings,\n dendrogramX,\n dendrogramY,\n normalization,\n NAValueAs,\n } = settings;\n\n const prevDendrogramXColumns: ColumnName[] = Object.values(prevSettings.dendrogramX?.aes || {}).filter(\n isColumnName\n );\n const currentDendrogramXColumns: ColumnName[] = Object.values(dendrogramX?.aes || {}).filter(isColumnName);\n const prevDendrogramYColumns: ColumnName[] = Object.values(prevSettings.dendrogramY?.aes || {}).filter(\n isColumnName\n );\n const currentDendrogramYColumns: ColumnName[] = Object.values(dendrogramY?.aes || {}).filter(isColumnName);\n\n function compareColumnGroups(columns1: ColumnName[], columns2: ColumnName[]) {\n return (\n columns1.length !== columns2.length ||\n columns1.some((column, idx) => column.value !== columns2[idx].value)\n );\n }\n\n return (\n prevSettings.xColumn.value !== xColumn.value ||\n prevSettings.yColumn.value !== yColumn.value ||\n prevSettings.valueColumn.value !== valueColumn.value ||\n compareColumnGroups(prevSettings.xGroupBy, xGroupBy) ||\n compareColumnGroups(prevSettings.yGroupBy, yGroupBy) ||\n compareColumnGroups(prevSettings.facetBy, facetBy) ||\n compareColumnGroups(\n prevSettings.annotations.map(a => a.valueColumn),\n annotations.map(a => a.valueColumn)\n ) ||\n compareColumnGroups(prevDendrogramXColumns, currentDendrogramXColumns) ||\n compareColumnGroups(prevDendrogramYColumns, currentDendrogramYColumns) ||\n ((settings.dendrogramX || prevSettings.dendrogramX) &&\n (prevSettings.dendrogramX?.distance !== settings.dendrogramX?.distance ||\n prevSettings.dendrogramX?.linkage !== settings.dendrogramX?.linkage)) ||\n ((settings.dendrogramY || prevSettings.dendrogramY) &&\n (prevSettings.dendrogramY?.distance !== settings.dendrogramY?.distance ||\n prevSettings.dendrogramY?.linkage !== settings.dendrogramY?.linkage)) ||\n prevSettings.chartSettings.valueType !== chartSettings.valueType ||\n prevSettings.facetSettings.sharedX !== facetSettings.sharedX ||\n prevSettings.facetSettings.sharedY !== facetSettings.sharedY ||\n prevSettings.normalization?.method !== normalization?.method ||\n prevSettings.normalization?.direction !== normalization?.direction ||\n prevSettings.NAValueAs !== NAValueAs\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 {\n xColumn,\n yColumn,\n valueColumn,\n xGroupBy,\n yGroupBy,\n facetBy,\n chartSettings,\n facetSettings,\n annotations,\n dendrogramX,\n dendrogramY,\n normalization,\n NAValueAs,\n } = this.settings;\n\n const groupedCellsData = getCells(\n this.data,\n xColumn,\n yColumn,\n valueColumn,\n facetBy,\n xGroupBy,\n yGroupBy,\n annotations,\n dendrogramX,\n dendrogramY,\n normalization,\n NAValueAs\n );\n const dendrogramsData = getDendrograms(groupedCellsData, dendrogramX, dendrogramY, facetSettings);\n const cellUniqValues =\n chartSettings.valueType === 'discrete' ? this.data.getColumnCategories(valueColumn.value) : [];\n\n this.calculatedData = {\n groupedCellsData,\n dendrogramsData,\n cellUniqValues,\n };\n }\n\n _updateAesInData() {\n return;\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {\n id,\n valueColumn,\n chartSettings,\n facetSettings,\n aes,\n annotations,\n dendrogramX,\n dendrogramY,\n inheritedDendrogramAes,\n normalization,\n } = this.settings;\n this.chartRenderer.render(\n this.data,\n id,\n chartSettings,\n facetSettings,\n aes,\n this.calculatedData.groupedCellsData,\n annotations,\n valueColumn,\n dendrogramX,\n dendrogramY,\n this.calculatedData.dendrogramsData,\n inheritedDendrogramAes,\n this.calculatedData.cellUniqValues,\n normalization,\n this.onTooltipHintSwitch\n );\n }\n}\n"],"names":["ChartHeatmap","AbstractChart","data","settings","eventHandlers","__publicField","ChartRenderer","HeatmapSettingsImpl","node","err","previousSettings","previousData","_field","_value","renderToString","prevSettings","xColumn","yColumn","valueColumn","xGroupBy","yGroupBy","facetBy","annotations","chartSettings","facetSettings","dendrogramX","dendrogramY","normalization","NAValueAs","prevDendrogramXColumns","_a","isColumnName","currentDendrogramXColumns","prevDendrogramYColumns","_b","currentDendrogramYColumns","compareColumnGroups","columns1","columns2","column","idx","a","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","prevData","prevKeys","keys","d","key","groupedCellsData","getCells","dendrogramsData","getDendrograms","cellUniqValues","id","aes","inheritedDendrogramAes"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,4 +1,4 @@
1
- import { TextMeasurer as p } from "../../utils/TextMeasurer.js";
1
+ import { TextMeasurer as p } from "../../utils/TextMeasurer/TextMeasurer.js";
2
2
  const f = new p("bold 14px Arial");
3
3
  function i(n) {
4
4
  let t = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"calculateAnnotationTitleSizes.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/heatmap/utils/calculateAnnotationTitleSizes.ts"],"sourcesContent":["import type {HeatmapSettingsImpl} from '../HeatmapSettingsImpl';\nimport {TextMeasurer} from '../../utils/TextMeasurer';\n\nconst textMeasurer = new TextMeasurer('bold 14px Arial');\nfunction getMaxTextLength (titles:string[]) {\n let maxLabelSize = 0;\n for (const key of titles) {\n const l = textMeasurer.getTextWidth(key);\n if (l > maxLabelSize) {\n maxLabelSize = l;\n }\n }\n return maxLabelSize;\n}\nexport function calculateAnnotationTitleSizes(\n annotations: HeatmapSettingsImpl['annotations'],\n chartSides: ('left' | 'right' | 'top' | 'bottom')[],\n sharedX: boolean,\n sharedY: boolean\n) {\n const usedAnnotations = annotations.filter(item => {\n return (\n item.showTitle &&\n (chartSides.includes(item.position) ||\n (!sharedX && ['left', 'right'].includes(item.position)) ||\n (!sharedY && ['top', 'bottom'].includes(item.position)))\n );\n });\n const leftTitles = usedAnnotations\n .filter(item => item.titlePosition === 'left')\n .map(item => item.valueColumn.label ?? item.valueColumn.value);\n const rightTitles = usedAnnotations\n .filter(item => item.titlePosition === 'right')\n .map(item => item.valueColumn.label ?? item.valueColumn.value);\n const topTitles = usedAnnotations\n .filter(item => item.titlePosition === 'top')\n .map(item => item.valueColumn.label ?? item.valueColumn.value);\n const bottomTitles = usedAnnotations\n .filter(item => item.titlePosition === 'bottom')\n .map(item => item.valueColumn.label ?? item.valueColumn.value);\n\n return {\n left: getMaxTextLength(leftTitles),\n right: getMaxTextLength(rightTitles),\n top: getMaxTextLength(topTitles),\n bottom: getMaxTextLength(bottomTitles)\n };\n}\n"],"names":["textMeasurer","TextMeasurer","getMaxTextLength","titles","maxLabelSize","key","l","calculateAnnotationTitleSizes","annotations","chartSides","sharedX","sharedY","usedAnnotations","item","leftTitles","t","rightTitles","topTitles","bottomTitles"],"mappings":";AAGA,MAAMA,IAAe,IAAIC,EAAa,iBAAiB;AACvD,SAASC,EAAkBC,GAAiB;AACxC,MAAIC,IAAe;AACnB,aAAWC,KAAOF,GAAQ;AACtB,UAAMG,IAAIN,EAAa,aAAaK,CAAG;AACnCC,QAAIF,MACJA,IAAeE;AAAAA,EAEvB;AACA,SAAOF;AACX;AACO,SAASG,EACZC,GACAC,GACAC,GACAC,GACF;AACE,QAAMC,IAAkBJ,EAAY,OAAO,CAAAK,MAEnCA,EAAK,cACJJ,EAAW,SAASI,EAAK,QAAQ,KAC7B,CAACH,KAAW,CAAC,QAAQ,OAAO,EAAE,SAASG,EAAK,QAAQ,KACpD,CAACF,KAAW,CAAC,OAAO,QAAQ,EAAE,SAASE,EAAK,QAAQ,EAEhE,GACKC,IAAaF,EACd,OAAO,CAAAC,MAAQA,EAAK,kBAAkB,MAAM,EAC5C,IAAI,CAAAE,MAAQF,EAAK,YAAY,SAASA,EAAK,YAAY,KAAK,GAC3DG,IAAcJ,EACf,OAAO,CAAAC,MAAQA,EAAK,kBAAkB,OAAO,EAC7C,IAAI,CAAAE,MAAQF,EAAK,YAAY,SAASA,EAAK,YAAY,KAAK,GAC3DI,IAAYL,EACb,OAAO,CAAAC,MAAQA,EAAK,kBAAkB,KAAK,EAC3C,IAAI,CAAAE,MAAQF,EAAK,YAAY,SAASA,EAAK,YAAY,KAAK,GAC3DK,IAAeN,EAChB,OAAO,CAAAC,MAAQA,EAAK,kBAAkB,QAAQ,EAC9C,IAAI,CAAAE,MAAQF,EAAK,YAAY,SAASA,EAAK,YAAY,KAAK;AAEjE,SAAO;AAAA,IACH,MAAMX,EAAiBY,CAAU;AAAA,IACjC,OAAOZ,EAAiBc,CAAW;AAAA,IACnC,KAAKd,EAAiBe,CAAS;AAAA,IAC/B,QAAQf,EAAiBgB,CAAY;AAAA,EAAA;AAE7C;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"calculateAnnotationTitleSizes.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/heatmap/utils/calculateAnnotationTitleSizes.ts"],"sourcesContent":["import { TextMeasurer } from '../../utils/TextMeasurer/TextMeasurer';\nimport type { HeatmapSettingsImpl } from '../HeatmapSettingsImpl';\n\nconst textMeasurer = new TextMeasurer('bold 14px Arial');\nfunction getMaxTextLength (titles:string[]) {\n let maxLabelSize = 0;\n for (const key of titles) {\n const l = textMeasurer.getTextWidth(key);\n if (l > maxLabelSize) {\n maxLabelSize = l;\n }\n }\n return maxLabelSize;\n}\nexport function calculateAnnotationTitleSizes(\n annotations: HeatmapSettingsImpl['annotations'],\n chartSides: ('left' | 'right' | 'top' | 'bottom')[],\n sharedX: boolean,\n sharedY: boolean\n) {\n const usedAnnotations = annotations.filter(item => {\n return (\n item.showTitle &&\n (chartSides.includes(item.position) ||\n (!sharedX && ['left', 'right'].includes(item.position)) ||\n (!sharedY && ['top', 'bottom'].includes(item.position)))\n );\n });\n const leftTitles = usedAnnotations\n .filter(item => item.titlePosition === 'left')\n .map(item => item.valueColumn.label ?? item.valueColumn.value);\n const rightTitles = usedAnnotations\n .filter(item => item.titlePosition === 'right')\n .map(item => item.valueColumn.label ?? item.valueColumn.value);\n const topTitles = usedAnnotations\n .filter(item => item.titlePosition === 'top')\n .map(item => item.valueColumn.label ?? item.valueColumn.value);\n const bottomTitles = usedAnnotations\n .filter(item => item.titlePosition === 'bottom')\n .map(item => item.valueColumn.label ?? item.valueColumn.value);\n\n return {\n left: getMaxTextLength(leftTitles),\n right: getMaxTextLength(rightTitles),\n top: getMaxTextLength(topTitles),\n bottom: getMaxTextLength(bottomTitles)\n };\n}\n"],"names":["textMeasurer","TextMeasurer","getMaxTextLength","titles","maxLabelSize","key","l","calculateAnnotationTitleSizes","annotations","chartSides","sharedX","sharedY","usedAnnotations","item","leftTitles","t","rightTitles","topTitles","bottomTitles"],"mappings":";AAGA,MAAMA,IAAe,IAAIC,EAAa,iBAAiB;AACvD,SAASC,EAAkBC,GAAiB;AACxC,MAAIC,IAAe;AACnB,aAAWC,KAAOF,GAAQ;AACtB,UAAMG,IAAIN,EAAa,aAAaK,CAAG;AACnCC,QAAIF,MACJA,IAAeE;AAAAA,EAEvB;AACA,SAAOF;AACX;AACO,SAASG,EACZC,GACAC,GACAC,GACAC,GACF;AACE,QAAMC,IAAkBJ,EAAY,OAAO,CAAAK,MAEnCA,EAAK,cACJJ,EAAW,SAASI,EAAK,QAAQ,KAC7B,CAACH,KAAW,CAAC,QAAQ,OAAO,EAAE,SAASG,EAAK,QAAQ,KACpD,CAACF,KAAW,CAAC,OAAO,QAAQ,EAAE,SAASE,EAAK,QAAQ,EAEhE,GACKC,IAAaF,EACd,OAAO,CAAAC,MAAQA,EAAK,kBAAkB,MAAM,EAC5C,IAAI,CAAAE,MAAQF,EAAK,YAAY,SAASA,EAAK,YAAY,KAAK,GAC3DG,IAAcJ,EACf,OAAO,CAAAC,MAAQA,EAAK,kBAAkB,OAAO,EAC7C,IAAI,CAAAE,MAAQF,EAAK,YAAY,SAASA,EAAK,YAAY,KAAK,GAC3DI,IAAYL,EACb,OAAO,CAAAC,MAAQA,EAAK,kBAAkB,KAAK,EAC3C,IAAI,CAAAE,MAAQF,EAAK,YAAY,SAASA,EAAK,YAAY,KAAK,GAC3DK,IAAeN,EAChB,OAAO,CAAAC,MAAQA,EAAK,kBAAkB,QAAQ,EAC9C,IAAI,CAAAE,MAAQF,EAAK,YAAY,SAASA,EAAK,YAAY,KAAK;AAEjE,SAAO;AAAA,IACH,MAAMX,EAAiBY,CAAU;AAAA,IACjC,OAAOZ,EAAiBc,CAAW;AAAA,IACnC,KAAKd,EAAiBe,CAAS;AAAA,IAC/B,QAAQf,EAAiBgB,CAAY;AAAA,EAAA;AAE7C;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"calculateCaptionTails.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/heatmap/utils/calculateCaptionTails.ts"],"sourcesContent":["import type {ChartsScales} from '../components/types';\nimport type {LabelAngles} from '../components/types';\nimport {MIN_STEP_FOR_VISIBLE_LABELS} from '../constants';\nimport type {GroupedCellsData} from '../getCells';\nimport type {HeatmapSettingsImpl} from '../HeatmapSettingsImpl';\nimport type {TextMeasurer} from '../../utils/TextMeasurer';\n\nconst COS_PI_4 = Math.cos(Math.PI / 4);\nfunction getTailByFacetKey (\n facetKey: string,\n groupKeys: string[],\n groupLabels: Record<string, string>,\n valueLabels: Record<string, string>,\n getKeysInGroup: (facetKey:string, groupKey:string) => string[],\n steps: Record<string, number>,\n scale: (v:string) => number,\n groupTitleInclined: boolean,\n labelTitleInclined: boolean,\n textMeasurer: TextMeasurer\n): number {\n const step = steps[facetKey];\n const labelsVisible = step > MIN_STEP_FOR_VISIBLE_LABELS;\n\n let maxTail = 0;\n groupKeys.forEach((groupKey) => {\n const keysInGroup = getKeysInGroup(facetKey, groupKey);\n if (keysInGroup.length === 0) {\n return 0;\n }\n const groupHalfWidth = (keysInGroup.length * step) / 2;\n const groupTail = groupTitleInclined\n ? textMeasurer.getTextWidth(groupLabels[groupKey]) * COS_PI_4 - groupHalfWidth - scale(keysInGroup[0])\n : 0;\n const labelTail = labelTitleInclined && labelsVisible\n ? groupKeys.reduce((res, key) => {\n const label = valueLabels[key];\n return Math.max(res, textMeasurer.getTextWidth(label) * COS_PI_4 - step / 2 - scale(key));\n }, 0)\n : 0;\n maxTail = Math.max(maxTail, groupTail, labelTail);\n });\n return maxTail;\n}\nexport function calculateCaptionTails(\n labelAngles: LabelAngles,\n facetSettings: HeatmapSettingsImpl['facetSettings'],\n scales: ChartsScales,\n steps: {\n x: Record<string, number>;\n y: Record<string, number>;\n },\n groupedCells: GroupedCellsData,\n textMeasurer: TextMeasurer\n): {xCaptionTail: number; yCaptionTail: number} {\n const {facetKeys, xGroupKeys, yGroupKeys, xKeysByGroups, yKeysByGroups, xLabels, yLabels, xGroupLabels, yGroupLabels} = groupedCells.meta;\n let xCaptionTail = 0;\n let yCaptionTail = 0;\n // tails from 45deg inclined captions of groups titles/cells labels, that take place on adjacent padding\n const xGroupTitleInclined = labelAngles.xGroupLabels === 45;\n const xLabelsInclined = labelAngles.xAxisLabels === 45;\n if (xGroupTitleInclined || xLabelsInclined) {\n if (!facetSettings.sharedX) {\n facetKeys.forEach(facetKey => {\n xCaptionTail = Math.max(\n getTailByFacetKey(\n facetKey,\n xGroupKeys,\n xGroupLabels,\n xLabels,\n (facetKey:string, groupKey:string) => groupedCells.facets[facetKey].xKeysByGroups[groupKey],\n steps.x,\n scales.x[facetKey],\n xGroupTitleInclined,\n xLabelsInclined,\n textMeasurer\n ),\n xCaptionTail\n );\n });\n } else {\n const facetKey = facetKeys[0]; // there is no difference between facets in this case\n xCaptionTail = Math.max(\n getTailByFacetKey(\n facetKey,\n xGroupKeys,\n xGroupLabels,\n xLabels,\n (facetKey:string, groupKey:string) => xKeysByGroups[groupKey],\n steps.x,\n scales.x[facetKey],\n xGroupTitleInclined,\n xLabelsInclined,\n textMeasurer\n ),\n xCaptionTail\n );\n }\n }\n const yGroupTitleInclined = labelAngles.yGroupLabels === 45;\n const yLabelsInclined = labelAngles.yAxisLabels === 45;\n if (yGroupTitleInclined || yLabelsInclined) {\n if (!facetSettings.sharedY) {\n facetKeys.forEach(facetKey => {\n yCaptionTail = Math.max(\n getTailByFacetKey(\n facetKey,\n yGroupKeys,\n yGroupLabels,\n yLabels,\n (facetKey:string, groupKey:string) => groupedCells.facets[facetKey].yKeysByGroups[groupKey],\n steps.y,\n scales.y[facetKey],\n yGroupTitleInclined,\n yLabelsInclined,\n textMeasurer\n ),\n yCaptionTail\n );\n });\n } else {\n const facetKey = facetKeys[0]; // there is no difference between facets in this case\n yCaptionTail = Math.max(\n getTailByFacetKey(\n facetKey,\n yGroupKeys,\n yGroupLabels,\n yLabels,\n (facetKey:string, groupKey:string) => yKeysByGroups[groupKey],\n steps.y,\n scales.y[facetKey],\n yGroupTitleInclined,\n yLabelsInclined,\n textMeasurer\n ),\n yCaptionTail\n );\n }\n }\n return {xCaptionTail, yCaptionTail};\n}\n"],"names":["COS_PI_4","getTailByFacetKey","facetKey","groupKeys","groupLabels","valueLabels","getKeysInGroup","steps","scale","groupTitleInclined","labelTitleInclined","textMeasurer","step","labelsVisible","MIN_STEP_FOR_VISIBLE_LABELS","maxTail","groupKey","keysInGroup","groupHalfWidth","groupTail","labelTail","res","key","label","calculateCaptionTails","labelAngles","facetSettings","scales","groupedCells","facetKeys","xGroupKeys","yGroupKeys","xKeysByGroups","yKeysByGroups","xLabels","yLabels","xGroupLabels","yGroupLabels","xCaptionTail","yCaptionTail","xGroupTitleInclined","xLabelsInclined","yGroupTitleInclined","yLabelsInclined"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"calculateCaptionTails.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/heatmap/utils/calculateCaptionTails.ts"],"sourcesContent":["import type { TextMeasurer } from '../../utils/TextMeasurer/TextMeasurer';\nimport type { ChartsScales, LabelAngles } from '../components/types';\nimport { MIN_STEP_FOR_VISIBLE_LABELS } from '../constants';\nimport type { GroupedCellsData } from '../getCells';\nimport type { HeatmapSettingsImpl } from '../HeatmapSettingsImpl';\n\nconst COS_PI_4 = Math.cos(Math.PI / 4);\nfunction getTailByFacetKey (\n facetKey: string,\n groupKeys: string[],\n groupLabels: Record<string, string>,\n valueLabels: Record<string, string>,\n getKeysInGroup: (facetKey:string, groupKey:string) => string[],\n steps: Record<string, number>,\n scale: (v:string) => number,\n groupTitleInclined: boolean,\n labelTitleInclined: boolean,\n textMeasurer: TextMeasurer\n): number {\n const step = steps[facetKey];\n const labelsVisible = step > MIN_STEP_FOR_VISIBLE_LABELS;\n\n let maxTail = 0;\n groupKeys.forEach((groupKey) => {\n const keysInGroup = getKeysInGroup(facetKey, groupKey);\n if (keysInGroup.length === 0) {\n return 0;\n }\n const groupHalfWidth = (keysInGroup.length * step) / 2;\n const groupTail = groupTitleInclined\n ? textMeasurer.getTextWidth(groupLabels[groupKey]) * COS_PI_4 - groupHalfWidth - scale(keysInGroup[0])\n : 0;\n const labelTail = labelTitleInclined && labelsVisible\n ? groupKeys.reduce((res, key) => {\n const label = valueLabels[key];\n return Math.max(res, textMeasurer.getTextWidth(label) * COS_PI_4 - step / 2 - scale(key));\n }, 0)\n : 0;\n maxTail = Math.max(maxTail, groupTail, labelTail);\n });\n return maxTail;\n}\n\nexport function calculateCaptionTails(\n labelAngles: LabelAngles,\n facetSettings: HeatmapSettingsImpl['facetSettings'],\n scales: ChartsScales,\n steps: {\n x: Record<string, number>;\n y: Record<string, number>;\n },\n groupedCells: GroupedCellsData,\n textMeasurer: TextMeasurer\n): {xCaptionTail: number; yCaptionTail: number} {\n const {facetKeys, xGroupKeys, yGroupKeys, xKeysByGroups, yKeysByGroups, xLabels, yLabels, xGroupLabels, yGroupLabels} = groupedCells.meta;\n let xCaptionTail = 0;\n let yCaptionTail = 0;\n // tails from 45deg inclined captions of groups titles/cells labels, that take place on adjacent padding\n const xGroupTitleInclined = labelAngles.xGroupLabels === 45;\n const xLabelsInclined = labelAngles.xAxisLabels === 45;\n if (xGroupTitleInclined || xLabelsInclined) {\n if (!facetSettings.sharedX) {\n facetKeys.forEach(facetKey => {\n xCaptionTail = Math.max(\n getTailByFacetKey(\n facetKey,\n xGroupKeys,\n xGroupLabels,\n xLabels,\n (facetKey:string, groupKey:string) => groupedCells.facets[facetKey].xKeysByGroups[groupKey],\n steps.x,\n scales.x[facetKey],\n xGroupTitleInclined,\n xLabelsInclined,\n textMeasurer\n ),\n xCaptionTail\n );\n });\n } else {\n const facetKey = facetKeys[0]; // there is no difference between facets in this case\n xCaptionTail = Math.max(\n getTailByFacetKey(\n facetKey,\n xGroupKeys,\n xGroupLabels,\n xLabels,\n (facetKey:string, groupKey:string) => xKeysByGroups[groupKey],\n steps.x,\n scales.x[facetKey],\n xGroupTitleInclined,\n xLabelsInclined,\n textMeasurer\n ),\n xCaptionTail\n );\n }\n }\n const yGroupTitleInclined = labelAngles.yGroupLabels === 45;\n const yLabelsInclined = labelAngles.yAxisLabels === 45;\n if (yGroupTitleInclined || yLabelsInclined) {\n if (!facetSettings.sharedY) {\n facetKeys.forEach(facetKey => {\n yCaptionTail = Math.max(\n getTailByFacetKey(\n facetKey,\n yGroupKeys,\n yGroupLabels,\n yLabels,\n (facetKey:string, groupKey:string) => groupedCells.facets[facetKey].yKeysByGroups[groupKey],\n steps.y,\n scales.y[facetKey],\n yGroupTitleInclined,\n yLabelsInclined,\n textMeasurer\n ),\n yCaptionTail\n );\n });\n } else {\n const facetKey = facetKeys[0]; // there is no difference between facets in this case\n yCaptionTail = Math.max(\n getTailByFacetKey(\n facetKey,\n yGroupKeys,\n yGroupLabels,\n yLabels,\n (facetKey:string, groupKey:string) => yKeysByGroups[groupKey],\n steps.y,\n scales.y[facetKey],\n yGroupTitleInclined,\n yLabelsInclined,\n textMeasurer\n ),\n yCaptionTail\n );\n }\n }\n return {xCaptionTail, yCaptionTail};\n}\n"],"names":["COS_PI_4","getTailByFacetKey","facetKey","groupKeys","groupLabels","valueLabels","getKeysInGroup","steps","scale","groupTitleInclined","labelTitleInclined","textMeasurer","step","labelsVisible","MIN_STEP_FOR_VISIBLE_LABELS","maxTail","groupKey","keysInGroup","groupHalfWidth","groupTail","labelTail","res","key","label","calculateCaptionTails","labelAngles","facetSettings","scales","groupedCells","facetKeys","xGroupKeys","yGroupKeys","xKeysByGroups","yKeysByGroups","xLabels","yLabels","xGroupLabels","yGroupLabels","xCaptionTail","yCaptionTail","xGroupTitleInclined","xLabelsInclined","yGroupTitleInclined","yLabelsInclined"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,63 +1,64 @@
1
1
  import { j as M } from "../node_modules/react/jsx-runtime.js";
2
- import { Error as H } from "../common/Error.js";
3
- import { DEFAULT_HEIGHT as v, DEFAULT_WIDTH as b, TITLE_LINE_HEIGHT as $, TITLE_MARGIN as X } from "../constants.js";
4
- import { DEFAULT_TICKS_SIZE as L, TICK_OFFSET as A, MIN_PADDING as I, FACET_TITLE_OFFSET as R, FACET_TITLE_LINE as j, TITLE_LINE as G, MIN_MARGIN as w } from "./constants.js";
5
- import { splitTextByWidth as W } from "../discrete/utils/splitTextByWidth.js";
2
+ import { createRoot as $ } from "../node_modules/react-dom/client.js";
3
+ import { Error as X } from "../common/Error.js";
4
+ import { DataFrameProvider as j } from "../common/useDataFrame.js";
5
+ import { DEFAULT_HEIGHT as v, DEFAULT_WIDTH as b, TITLE_LINE_HEIGHT as R, TITLE_MARGIN as G } from "../constants.js";
6
+ import { splitTextByWidth as A } from "../discrete/utils/splitTextByWidth.js";
6
7
  import { LEGEND_OFFSET as O, DEFAULT_COMMON_AES as k } from "../scatterplot/constants.js";
7
- import { getTicksAndFormat as K } from "../scatterplot/utils/getTicksAndFormat.js";
8
- import { arrangeLegendParts as P } from "../utils/arrangeLegendParts.js";
9
- import { getContinuousColorScale as U } from "../utils/getContinuousColorScale.js";
10
- import { TextMeasurer as Y } from "../utils/TextMeasurer.js";
11
- import { createRoot as B } from "../node_modules/react-dom/client.js";
8
+ import { getTicksAndFormat as P } from "../scatterplot/utils/getTicksAndFormat.js";
9
+ import { arrangeLegendParts as U } from "../utils/arrangeLegendParts.js";
10
+ import { getContinuousColorScale as Y } from "../utils/getContinuousColorScale.js";
11
+ import { TextMeasurer as K } from "../utils/TextMeasurer/TextMeasurer.js";
12
12
  import { ChartsGroup as V } from "./components/ChartsGroup.js";
13
+ import { DEFAULT_TICKS_SIZE as F, TICK_OFFSET as W, MIN_PADDING as I, FACET_TITLE_OFFSET as B, FACET_TITLE_LINE as Z, TITLE_LINE as q, MIN_MARGIN as w } from "./constants.js";
13
14
  import N from "../node_modules/d3-scale/src/linear.js";
14
15
  import _ from "../node_modules/d3-scale/src/symlog.js";
15
- import Z from "../node_modules/d3-scale/src/ordinal.js";
16
- var q = Object.defineProperty, J = (a, i, t) => i in a ? q(a, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : a[i] = t, f = (a, i, t) => J(a, typeof i != "symbol" ? i + "" : i, t);
17
- function Q(a, i, t, s) {
18
- const e = [];
19
- return a % t === t - 1 && e.push("right"), a % t === 0 && e.push("left"), a < t && e.push("top"), (Math.ceil((a + 1) / t) === s || Math.ceil((a + 1) / t) === s - 1 && a % t > (i - 1) % t) && e.push("bottom"), e;
16
+ import J from "../node_modules/d3-scale/src/ordinal.js";
17
+ var Q = Object.defineProperty, tt = (e, t, i) => t in e ? Q(e, t, { enumerable: !0, configurable: !0, writable: !0, value: i }) : e[t] = i, f = (e, t, i) => tt(e, typeof t != "symbol" ? t + "" : t, i);
18
+ function it(e, t, i, a) {
19
+ const s = [];
20
+ return e % i === i - 1 && s.push("right"), e % i === 0 && s.push("left"), e < i && s.push("top"), (Math.ceil((e + 1) / i) === a || Math.ceil((e + 1) / i) === a - 1 && e % i > (t - 1) % i) && s.push("bottom"), s;
20
21
  }
21
- function tt(a, i, t, s, e, n, o, h) {
22
- const r = n.includes("left") || !(h != null && h.sharedY), C = n.includes("bottom") || !(h != null && h.sharedX), p = n.includes("bottom") && a.title !== "", l = t.yAxisCaptionsWidth, S = (i.showTicks ? L : 0) + (i.hiddenLabels ? 0 : A), d = t.xAxisCaptionsWidth, x = (a.showTicks ? L : 0) + (a.hiddenLabels ? 0 : A), u = p ? G : 0, c = l + S, m = x + d + u, g = Math.max(...s.map((T) => e[T].length));
22
+ function st(e, t, i, a, s, r, u, o) {
23
+ const h = r.includes("left") || !(o != null && o.sharedY), g = r.includes("bottom") || !(o != null && o.sharedX), S = r.includes("bottom") && e.title !== "", n = i.yAxisCaptionsWidth, C = (t.showTicks ? F : 0) + (t.hiddenLabels ? 0 : W), d = i.xAxisCaptionsWidth, x = (e.showTicks ? F : 0) + (e.hiddenLabels ? 0 : W), c = S ? q : 0, l = n + C, m = x + d + c, p = Math.max(...a.map((T) => s[T].length));
23
24
  return {
24
- left: r ? c : I,
25
- top: g === 0 ? 0 : R * 2 + g * j,
26
- bottom: C ? m : I,
27
- right: o ? 0 : I
25
+ left: h ? l : I,
26
+ top: p === 0 ? 0 : B * 2 + p * Z,
27
+ bottom: g ? m : I,
28
+ right: u ? 0 : I
28
29
  };
29
30
  }
30
- function it(a, i, t) {
31
- const s = [];
32
- for (let e = 0; e < i; e++)
33
- s.push(a.slice(e * t, e * t + t));
34
- return s;
31
+ function et(e, t, i) {
32
+ const a = [];
33
+ for (let s = 0; s < t; s++)
34
+ a.push(e.slice(s * i, s * i + i));
35
+ return a;
35
36
  }
36
- function et(a, i) {
37
- const t = Math.floor(a / i), s = a - t * i;
38
- return [t, s];
37
+ function at(e, t) {
38
+ const i = Math.floor(e / t), a = e - i * t;
39
+ return [i, a];
39
40
  }
40
- function F(a) {
41
- return typeof a == "object" && a !== null && "type" in a && "value" in a && a.type === "grouping";
41
+ function H(e) {
42
+ return typeof e == "object" && e !== null && "type" in e && "value" in e && e.type === "grouping";
42
43
  }
43
- function st(a) {
44
- return typeof a == "object" && a !== null && "range" in a;
44
+ function rt(e) {
45
+ return typeof e == "object" && e !== null && "range" in e;
45
46
  }
46
- function at(a, i, t) {
47
- return function(s, e, n) {
47
+ function ot(e, t, i, a) {
48
+ return function(s, r, u) {
48
49
  var o;
49
- if (st(s)) {
50
- const { domain: h = t, range: r, type: C = "linear" } = s, p = U(r, h, C);
51
- return p.clamp(!0), p(n);
50
+ if (rt(s)) {
51
+ const { domain: h = a, range: g, type: S = "linear" } = s, n = Y(g, h, S);
52
+ return n.clamp(!0), n(u);
52
53
  }
53
- if (F(s)) {
54
- const h = s.value, r = a[h];
55
- return (o = (r == null ? void 0 : r[String(e[h])]) ?? k) == null ? void 0 : o[i];
54
+ if (H(s)) {
55
+ const h = s.value, g = t[h];
56
+ return (o = (g == null ? void 0 : g[String(e.getColumnValue(h, r))]) ?? k) == null ? void 0 : o[i];
56
57
  }
57
58
  return s;
58
59
  };
59
60
  }
60
- class xt {
61
+ class Mt {
61
62
  constructor() {
62
63
  f(this, "reactRoot", null), f(this, "parentNode", null), f(this, "rootNode", null), f(this, "component", /* @__PURE__ */ M.jsx(M.Fragment, {})), f(this, "margins", {
63
64
  top: w,
@@ -90,135 +91,135 @@ class xt {
90
91
  });
91
92
  }
92
93
  clear() {
93
- var i;
94
- this.parentNode && this.rootNode && ((i = this.parentNode) == null || i.removeChild(this.rootNode), this.parentNode = null, this.rootNode = null), setTimeout(() => {
95
- var t;
96
- (t = this.reactRoot) == null || t.unmount(), this.reactRoot = null;
94
+ var t;
95
+ this.parentNode && this.rootNode && ((t = this.parentNode) == null || t.removeChild(this.rootNode), this.parentNode = null, this.rootNode = null), setTimeout(() => {
96
+ var i;
97
+ (i = this.reactRoot) == null || i.unmount(), this.reactRoot = null;
97
98
  });
98
99
  }
99
- init(i) {
100
- this.parentNode === null && (this.parentNode = i, this.rootNode = document.createElement("div"), this.parentNode.appendChild(this.rootNode), this.reactRoot = B(this.rootNode));
100
+ init(t) {
101
+ this.parentNode === null && (this.parentNode = t, this.rootNode = document.createElement("div"), this.parentNode.appendChild(this.rootNode), this.reactRoot = $(this.rootNode));
101
102
  }
102
- updateChartSizes(i) {
103
- this.chartSizes.chartWidth = i.width, this.chartSizes.chartHeight = i.height;
103
+ updateChartSizes(t) {
104
+ this.chartSizes.chartWidth = t.width, this.chartSizes.chartHeight = t.height;
104
105
  }
105
- updateChartDimensions(i, t, s, e) {
106
- const { chartWidth: n, chartHeight: o } = this.chartSizes;
107
- let h = 0, r = 0;
108
- this.chartsDimensions = i.reduce((l, S, d) => {
109
- const [x, u] = et(d, this.columnsCount), c = Q(d, i.length, this.columnsCount, this.rowsCount), m = tt(
106
+ updateChartDimensions(t, i, a, s) {
107
+ const { chartWidth: r, chartHeight: u } = this.chartSizes;
108
+ let o = 0, h = 0;
109
+ this.chartsDimensions = t.reduce((n, C, d) => {
110
+ const [x, c] = at(d, this.columnsCount), l = it(d, t.length, this.columnsCount, this.rowsCount), m = st(
111
+ a,
110
112
  s,
111
- e,
112
113
  this.captionsSizes,
113
- it(i, this.rowsCount, this.columnsCount)[x],
114
+ et(t, this.rowsCount, this.columnsCount)[x],
114
115
  this.facetTitles,
115
- c,
116
- u === this.columnsCount - 1,
117
- t
118
- ), g = n + m.left + m.right, T = o + m.top + m.bottom;
119
- return l[S] = {
120
- left: h,
121
- top: r,
122
- chartEdgeSides: c,
116
+ l,
117
+ c === this.columnsCount - 1,
118
+ i
119
+ ), p = r + m.left + m.right, T = u + m.top + m.bottom;
120
+ return n[C] = {
121
+ left: o,
122
+ top: h,
123
+ chartEdgeSides: l,
123
124
  padding: m,
124
- inner: { width: n, height: o },
125
- outer: { width: g, height: T }
126
- }, h += g, u === this.columnsCount - 1 && (h = 0, r += T), l;
125
+ inner: { width: r, height: u },
126
+ outer: { width: p, height: T }
127
+ }, o += p, c === this.columnsCount - 1 && (o = 0, h += T), n;
127
128
  }, {});
128
- const C = Math.max(
129
- ...i.map((l) => this.chartsDimensions[l].outer.width + this.chartsDimensions[l].left)
130
- ), p = Math.max(
131
- ...i.map((l) => this.chartsDimensions[l].outer.height + this.chartsDimensions[l].top)
129
+ const g = Math.max(
130
+ ...t.map((n) => this.chartsDimensions[n].outer.width + this.chartsDimensions[n].left)
131
+ ), S = Math.max(
132
+ ...t.map((n) => this.chartsDimensions[n].outer.height + this.chartsDimensions[n].top)
132
133
  );
133
- this.chartSizes.chartsWidth = C, this.chartSizes.chartsHeight = p;
134
+ this.chartSizes.chartsWidth = g, this.chartSizes.chartsHeight = S;
134
135
  }
135
- updateViewport(i, t, s, e, n, o, h) {
136
- const r = i.length, C = Math.min(t.nRows ?? r, r), p = Math.min(t.nCols ?? r, r);
137
- this.columnsCount = t.nRows ? Math.ceil(r / C) : p, this.rowsCount = Math.ceil(r / this.columnsCount);
138
- let [l, S] = [1 / 0, -1 / 0], d = -1 / 0;
139
- const x = i.reduce((u, c) => {
140
- const m = n[c], { minX: g, maxX: T, maxCount: E, maxCountFromGroups: z } = m;
141
- return l = Math.min(l, g), S = Math.max(S, T), d = Math.max(d, h === "vertical" ? E : z), u[c] = { minX: g, maxX: T, maxY: h === "vertical" ? E : z }, u;
136
+ updateViewport(t, i, a, s, r, u, o) {
137
+ const h = t.length, g = Math.min(i.nRows ?? h, h), S = Math.min(i.nCols ?? h, h);
138
+ this.columnsCount = i.nRows ? Math.ceil(h / g) : S, this.rowsCount = Math.ceil(h / this.columnsCount);
139
+ let [n, C] = [1 / 0, -1 / 0], d = -1 / 0;
140
+ const x = t.reduce((c, l) => {
141
+ const m = r[l], { minX: p, maxX: T, maxCount: z, maxCountFromGroups: E } = m;
142
+ return n = Math.min(n, p), C = Math.max(C, T), d = Math.max(d, o === "vertical" ? z : E), c[l] = { minX: p, maxX: T, maxY: o === "vertical" ? z : E }, c;
142
143
  }, {});
143
- i.forEach((u) => {
144
- const c = s.scale === "log" ? _() : N(), m = x[u], g = t.sharedX ? l : m.minX, T = t.sharedX ? S : m.maxX;
145
- c.domain([g, T]).range([0, this.chartSizes.chartWidth]), this.scales.x[u] = c;
146
- }), i.forEach((u) => {
147
- const c = e.scale === "log" ? _() : N(), m = x[u], g = 0, T = t.sharedY ? d : m.maxY, E = [this.chartSizes.chartHeight, 0], z = c.copy().domain([g, T]).range([
144
+ t.forEach((c) => {
145
+ const l = a.scale === "log" ? _() : N(), m = x[c], p = i.sharedX ? n : m.minX, T = i.sharedX ? C : m.maxX;
146
+ l.domain([p, T]).range([0, this.chartSizes.chartWidth]), this.scales.x[c] = l;
147
+ }), t.forEach((c) => {
148
+ const l = s.scale === "log" ? _() : N(), m = x[c], p = 0, T = i.sharedY ? d : m.maxY, z = [this.chartSizes.chartHeight, 0], E = l.copy().domain([p, T]).range([
148
149
  this.chartSizes.chartHeight,
149
- o.innerOffset
150
+ u.innerOffset
150
151
  ]);
151
- c.domain([z.invert(this.chartSizes.chartHeight), z.invert(0)]).range(
152
- E
153
- ), this.scales.y[u] = c;
152
+ l.domain([E.invert(this.chartSizes.chartHeight), E.invert(0)]).range(
153
+ z
154
+ ), this.scales.y[c] = l;
154
155
  });
155
156
  }
156
- updateCaptionsSize(i, t) {
157
- const s = new Y("600 14px Arial");
158
- let e = 0;
159
- function n(o) {
160
- return Math.max(...o.map((h) => s.getTextWidth(h)));
157
+ updateCaptionsSize(t, i) {
158
+ const a = new K("600 14px Arial");
159
+ let s = 0;
160
+ function r(u) {
161
+ return Math.max(...u.map((o) => a.getTextWidth(o)));
161
162
  }
162
- t.hiddenLabels || Object.values(this.scales.y).forEach((o) => {
163
- const { ticks: h, format: r } = K(o, !1);
164
- e = Math.max(e, n(h.map(r)));
163
+ i.hiddenLabels || Object.values(this.scales.y).forEach((u) => {
164
+ const { ticks: o, format: h } = P(u, !1);
165
+ s = Math.max(s, r(o.map(h)));
165
166
  }), this.captionsSizes = {
166
- xAxisCaptionsWidth: i.hiddenLabels ? 0 : 20,
167
- yAxisCaptionsWidth: e
167
+ xAxisCaptionsWidth: t.hiddenLabels ? 0 : 20,
168
+ yAxisCaptionsWidth: s
168
169
  };
169
170
  }
170
- createMainTitle(i, t) {
171
- const s = this.chartsDimensions[i[0]], e = this.chartsDimensions[i[i.length - 1]];
172
- this.mainTitle = W(
173
- t.name,
174
- this.chartSizes.chartsWidth - s.padding.left - e.padding.right,
171
+ createMainTitle(t, i) {
172
+ const a = this.chartsDimensions[t[0]], s = this.chartsDimensions[t[t.length - 1]];
173
+ this.mainTitle = A(
174
+ i.name,
175
+ this.chartSizes.chartsWidth - a.padding.left - s.padding.right,
175
176
  20
176
177
  );
177
178
  }
178
- createFacetTitles(i, t) {
179
- this.facetTitles = i.reduce((s, e, n) => (t[n].length === 1 && t[n][0] === "null" ? s[e] = [] : s[e] = W(t[n].join(", "), this.chartSizes.chartWidth, 14), s), {});
179
+ createFacetTitles(t, i) {
180
+ this.facetTitles = t.reduce((a, s, r) => (i[r].length === 1 && i[r][0] === "null" ? a[s] = [] : a[s] = A(i[r].join(", "), this.chartSizes.chartWidth, 14), a), {});
180
181
  }
181
- updateLegendSize(i, t, s, e) {
182
- if (!i.show) {
182
+ updateLegendSize(t, i, a, s) {
183
+ if (!t.show) {
183
184
  this.legend = { width: 0, height: 0, items: [] };
184
185
  return;
185
186
  }
186
- const n = [], o = { width: 0, height: 0, left: 0, top: 0 };
187
- if (e.forEach((l) => {
188
- if (F(l.aes.fillColor) && s) {
189
- const S = l.aes.fillColor.value, d = t[s.value], x = s.label ?? s.value, u = Z().domain(d.values).range(d.values.map((c) => d.aesMap[c].fillColor));
190
- n.push({ ...o, id: S, type: "discreteColor", title: x, scale: u, values: d.values, labels: d.labels });
187
+ const r = [], u = { width: 0, height: 0, left: 0, top: 0 };
188
+ if (s.forEach((n) => {
189
+ if (H(n.aes.fillColor) && a) {
190
+ const C = n.aes.fillColor.value, d = i[a.value], x = a.label ?? a.value, c = J().domain(d.values).range(d.values.map((l) => d.aesMap[l].fillColor));
191
+ r.push({ ...u, id: C, type: "discreteColor", title: x, scale: c, values: d.values, labels: d.labels });
191
192
  }
192
- }), !n.length) {
193
+ }), !r.length) {
193
194
  this.legend = { width: 0, height: 0, items: [] };
194
195
  return;
195
196
  }
196
- const h = P(n, this.chartSizes.chartHeight), r = h[h.length - 1], C = r.left + r.width + O, p = this.chartSizes.chartHeight;
197
+ const o = U(r, this.chartSizes.chartHeight), h = o[o.length - 1], g = h.left + h.width + O, S = this.chartSizes.chartHeight;
197
198
  this.legend = {
198
- width: C,
199
- height: p,
200
- items: h
199
+ width: g,
200
+ height: S,
201
+ items: o
201
202
  };
202
203
  }
203
- updateMargins(i) {
204
- const t = $ * this.mainTitle.length, s = t > 0 ? t + X * 2 : 0, e = i.outerOffset;
204
+ updateMargins(t) {
205
+ const i = R * this.mainTitle.length, a = i > 0 ? i + G * 2 : 0, s = t.outerOffset;
205
206
  this.margins = {
206
- top: Math.max(s, e),
207
- bottom: e,
208
- left: e,
209
- right: this.legend.width + e
207
+ top: Math.max(a, s),
208
+ bottom: s,
209
+ left: s,
210
+ right: this.legend.width + s
210
211
  }, this.chartSizes.totalWidth = this.margins.left + this.chartSizes.chartsWidth + this.margins.right, this.chartSizes.totalHeight = this.margins.top + this.chartSizes.chartsHeight + this.margins.bottom;
211
212
  }
212
- render(i, t, s, e, n, o, h, r, C, p, l, S, d) {
213
- var x;
214
- const { xAxis: u, yAxis: c, size: m, title: g } = t;
215
- this.updateChartSizes(m), this.updateViewport(e, s, u, c, o, m, l), this.updateCaptionsSize(u, c), this.createFacetTitles(e, n), this.updateChartDimensions(e, s, u, c), this.createMainTitle(e, g), this.updateLegendSize(t.legend, h, p, r), this.updateMargins(m);
216
- const T = e.reduce((D, y) => Math.min(D, o[y].minX), 1 / 0), E = e.reduce((D, y) => Math.max(D, o[y].maxX), -1 / 0), z = /* @__PURE__ */ M.jsx(
213
+ render(t, i, a, s, r, u, o, h, g, S, n, C, d, x) {
214
+ var c;
215
+ const { xAxis: l, yAxis: m, size: p, title: T } = a;
216
+ this.updateChartSizes(p), this.updateViewport(r, s, l, m, o, p, C), this.updateCaptionsSize(l, m), this.createFacetTitles(r, u), this.updateChartDimensions(r, s, l, m), this.createMainTitle(r, T), this.updateLegendSize(a.legend, h, n, g), this.updateMargins(p);
217
+ const z = r.reduce((D, y) => Math.min(D, o[y].minX), 1 / 0), E = r.reduce((D, y) => Math.max(D, o[y].maxX), -1 / 0), L = /* @__PURE__ */ M.jsx(j, { dataFrame: t, children: /* @__PURE__ */ M.jsx(
217
218
  V,
218
219
  {
219
220
  settingsId: i,
220
- chartSettings: t,
221
- facetKeys: e,
221
+ chartSettings: a,
222
+ facetKeys: r,
222
223
  facetSettings: s,
223
224
  chartSizes: this.chartSizes,
224
225
  chartsDimensions: this.chartsDimensions,
@@ -229,23 +230,23 @@ class xt {
229
230
  facetTitles: this.facetTitles,
230
231
  captionsSizes: this.captionsSizes,
231
232
  histogramDataByFacets: o,
232
- layers: r,
233
- aesColorGetter: at(C, "fillColor", [T, E]),
234
- groupingDirection: S,
235
- groupingStack: l,
236
- groupingLabels: p ? h[p.value].labels : {},
233
+ layers: g,
234
+ aesColorGetter: ot(t, S, "fillColor", [z, E]),
235
+ groupingDirection: d,
236
+ groupingStack: C,
237
+ groupingLabels: n ? h[n.value].labels : {},
237
238
  legend: this.legend,
238
- onTooltipHintSwitch: d
239
+ onTooltipHintSwitch: x
239
240
  }
240
- );
241
- this.component = z, (x = this.reactRoot) == null || x.render(z);
241
+ ) });
242
+ this.component = L, (c = this.reactRoot) == null || c.render(L);
242
243
  }
243
- renderError(i) {
244
- var t;
245
- (t = this.reactRoot) == null || t.render(/* @__PURE__ */ M.jsx(H, { message: i }));
244
+ renderError(t) {
245
+ var i;
246
+ (i = this.reactRoot) == null || i.render(/* @__PURE__ */ M.jsx(X, { message: t }));
246
247
  }
247
248
  }
248
249
  export {
249
- xt as default
250
+ Mt as default
250
251
  };
251
252
  //# sourceMappingURL=ChartRenderer.js.map