@milaboratories/graph-maker 1.1.137 → 1.1.139

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 (283) hide show
  1. package/README.md +120 -24
  2. package/dist/GraphMaker/components/LassoControls/index.vue.js +15 -13
  3. package/dist/GraphMaker/components/LassoControls/index.vue.js.map +1 -1
  4. package/dist/GraphMaker/components/SettingsTabs/icons/AxesIcon.vue.d.ts.map +1 -0
  5. package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/AxesIcon.vue.js +1 -1
  6. package/dist/GraphMaker/components/SettingsTabs/icons/AxesIcon.vue.js.map +1 -0
  7. package/dist/GraphMaker/components/SettingsTabs/icons/DeleteChartIcon.vue.d.ts.map +1 -0
  8. package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/DeleteChartIcon.vue.js +1 -1
  9. package/dist/GraphMaker/components/SettingsTabs/icons/DeleteChartIcon.vue.js.map +1 -0
  10. package/dist/GraphMaker/components/SettingsTabs/icons/ExportIcon.vue.d.ts.map +1 -0
  11. package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/ExportIcon.vue.js +1 -1
  12. package/dist/GraphMaker/components/SettingsTabs/icons/ExportIcon.vue.js.map +1 -0
  13. package/dist/GraphMaker/components/SettingsTabs/icons/LayersIcon.vue.d.ts.map +1 -0
  14. package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/LayersIcon.vue.js +1 -1
  15. package/dist/GraphMaker/components/SettingsTabs/icons/LayersIcon.vue.js.map +1 -0
  16. package/dist/GraphMaker/components/SettingsTabs/icons/LinkIcon.vue.d.ts.map +1 -0
  17. package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/LinkIcon.vue.js +1 -1
  18. package/dist/GraphMaker/components/SettingsTabs/icons/LinkIcon.vue.js.map +1 -0
  19. package/dist/GraphMaker/components/SettingsTabs/icons/LogIcon.vue.d.ts +3 -0
  20. package/dist/GraphMaker/components/SettingsTabs/icons/LogIcon.vue.d.ts.map +1 -0
  21. package/dist/GraphMaker/components/SettingsTabs/icons/LogIcon.vue.js +12 -0
  22. package/dist/GraphMaker/components/SettingsTabs/icons/LogIcon.vue.js.map +1 -0
  23. package/dist/GraphMaker/components/SettingsTabs/icons/LogIcon.vue2.js +5 -0
  24. package/dist/GraphMaker/components/SettingsTabs/icons/LogIcon.vue2.js.map +1 -0
  25. package/dist/GraphMaker/components/SettingsTabs/icons/SettingsIcon.vue.d.ts.map +1 -0
  26. package/dist/GraphMaker/components/SettingsTabs/index.vue.d.ts +2 -0
  27. package/dist/GraphMaker/components/SettingsTabs/index.vue.d.ts.map +1 -1
  28. package/dist/GraphMaker/components/SettingsTabs/index.vue.js +17 -15
  29. package/dist/GraphMaker/components/SettingsTabs/index.vue.js.map +1 -1
  30. package/dist/GraphMaker/forms/LogForm.vue.d.ts +19 -0
  31. package/dist/GraphMaker/forms/LogForm.vue.d.ts.map +1 -0
  32. package/dist/GraphMaker/forms/LogForm.vue.js +22 -0
  33. package/dist/GraphMaker/forms/LogForm.vue.js.map +1 -0
  34. package/dist/GraphMaker/forms/index.d.ts +22 -0
  35. package/dist/GraphMaker/forms/index.d.ts.map +1 -1
  36. package/dist/GraphMaker/forms/index.js +35 -28
  37. package/dist/GraphMaker/forms/index.js.map +1 -1
  38. package/dist/GraphMaker/index.vue.d.ts +1 -0
  39. package/dist/GraphMaker/index.vue.d.ts.map +1 -1
  40. package/dist/GraphMaker/index.vue.js +146 -144
  41. package/dist/GraphMaker/index.vue.js.map +1 -1
  42. package/dist/GraphMaker/store.d.ts.map +1 -1
  43. package/dist/GraphMaker/store.js +71 -67
  44. package/dist/GraphMaker/store.js.map +1 -1
  45. package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +9 -3
  46. package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts.map +1 -1
  47. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDendroSettings.d.ts +17 -2
  48. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDendroSettings.d.ts.map +1 -1
  49. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +13 -4
  50. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts.map +1 -1
  51. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +28 -7
  52. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts.map +1 -1
  53. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.d.ts +6 -2
  54. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.d.ts.map +1 -1
  55. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts +16 -2
  56. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts.map +1 -1
  57. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts +14 -2
  58. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts.map +1 -1
  59. package/dist/lib.js +1 -1
  60. package/dist/node_modules/@milaboratories/miplots4/dist/DataFrame.js +95 -72
  61. package/dist/node_modules/@milaboratories/miplots4/dist/DataFrame.js.map +1 -1
  62. package/dist/node_modules/@milaboratories/miplots4/dist/MiPlots.js +1 -1
  63. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/ChartRenderer.js +124 -122
  64. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/ChartRenderer.js.map +1 -1
  65. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/Chart.js +72 -91
  66. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/Chart.js.map +1 -1
  67. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/ChartsGroup.js +43 -41
  68. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/ChartsGroup.js.map +1 -1
  69. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCellTooltip.js +28 -0
  70. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCellTooltip.js.map +1 -0
  71. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getGroupedCellsData.js +94 -0
  72. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getGroupedCellsData.js.map +1 -0
  73. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/index.js +42 -38
  74. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/index.js.map +1 -1
  75. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/utils/calculateCaptionTails.js.map +1 -1
  76. package/dist/node_modules/@milaboratories/miplots4/dist/common/Legend.js.map +1 -1
  77. package/dist/node_modules/@milaboratories/miplots4/dist/common/Tooltip.js +11 -11
  78. package/dist/node_modules/@milaboratories/miplots4/dist/common/Tooltip.js.map +1 -1
  79. package/dist/node_modules/@milaboratories/miplots4/dist/common/useDataFrame.js +20 -0
  80. package/dist/node_modules/@milaboratories/miplots4/dist/common/useDataFrame.js.map +1 -0
  81. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/ChartRenderer.js +181 -181
  82. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/ChartRenderer.js.map +1 -1
  83. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/DendroSettingsImpl.js +2 -2
  84. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/DendroSettingsImpl.js.map +1 -1
  85. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Chart.js +45 -45
  86. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Chart.js.map +1 -1
  87. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Heatmap.js +27 -27
  88. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Heatmap.js.map +1 -1
  89. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Legend.js.map +1 -1
  90. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/LinksGroup.js +18 -18
  91. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/LinksGroup.js.map +1 -1
  92. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/NodesGroup.js +36 -36
  93. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/NodesGroup.js.map +1 -1
  94. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/getHeatmapData.js +45 -41
  95. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/getHeatmapData.js.map +1 -1
  96. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/getHierarchyData.js +33 -33
  97. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/getHierarchyData.js.map +1 -1
  98. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/index.js +90 -93
  99. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/index.js.map +1 -1
  100. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/ChartRenderer.js +200 -199
  101. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/ChartRenderer.js.map +1 -1
  102. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/DiscreteSettingsImpl.js +17 -17
  103. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/DiscreteSettingsImpl.js.map +1 -1
  104. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/layers/BoxElement.js.map +1 -1
  105. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js +102 -99
  106. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js.map +1 -1
  107. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/bar.js +31 -36
  108. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/bar.js.map +1 -1
  109. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/binnedDots.js +62 -74
  110. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/binnedDots.js.map +1 -1
  111. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/boxes.js +52 -53
  112. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/boxes.js.map +1 -1
  113. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/dots.js +32 -32
  114. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/dots.js.map +1 -1
  115. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/lines.js +7 -6
  116. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/lines.js.map +1 -1
  117. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/logo.js +23 -23
  118. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/logo.js.map +1 -1
  119. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/pairedPoints.js +63 -63
  120. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/pairedPoints.js.map +1 -1
  121. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/sina.js +60 -64
  122. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/sina.js.map +1 -1
  123. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/stackedBar.js +23 -23
  124. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/stackedBar.js.map +1 -1
  125. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/getOutliersBounds.js +5 -5
  126. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/getOutliersBounds.js.map +1 -1
  127. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/splitTextByWidth.js +13 -13
  128. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/splitTextByWidth.js.map +1 -1
  129. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/ChartRenderer.js +258 -256
  130. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/ChartRenderer.js.map +1 -1
  131. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/HeatmapSettingsImpl.js +1 -1
  132. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/HeatmapSettingsImpl.js.map +1 -1
  133. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/Annotation.js +45 -44
  134. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/Annotation.js.map +1 -1
  135. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js +107 -106
  136. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js.map +1 -1
  137. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/ChartsGroup.js +18 -18
  138. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/ChartsGroup.js.map +1 -1
  139. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getCells.js +99 -95
  140. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getCells.js.map +1 -1
  141. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js +30 -29
  142. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js.map +1 -1
  143. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateAnnotationTitleSizes.js +1 -1
  144. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateAnnotationTitleSizes.js.map +1 -1
  145. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateCaptionTails.js.map +1 -1
  146. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/ChartRenderer.js +143 -142
  147. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/ChartRenderer.js.map +1 -1
  148. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/HistogramSettingsImpl.js.map +1 -1
  149. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/components/Chart.js +30 -30
  150. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/components/Chart.js.map +1 -1
  151. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/components/ChartsGroup.js +7 -7
  152. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/getHistogramData.js +53 -54
  153. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/getHistogramData.js.map +1 -1
  154. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/index.js +59 -55
  155. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/index.js.map +1 -1
  156. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/@d3fc/d3fc-axis/src/axisBase.js +7 -7
  157. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-array/src/min.js +6 -12
  158. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-array/src/min.js.map +1 -1
  159. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-shape/src/line.js.map +1 -1
  160. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/kdbush/index.js +148 -0
  161. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/kdbush/index.js.map +1 -0
  162. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ChartRenderer.js +172 -168
  163. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ChartRenderer.js.map +1 -1
  164. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ScatterplotSettingsImpl.js +26 -26
  165. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ScatterplotSettingsImpl.js.map +1 -1
  166. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Chart.js +11 -11
  167. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartAxisTitles.js +30 -29
  168. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartAxisTitles.js.map +1 -1
  169. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartLayersData.js +135 -153
  170. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartLayersData.js.map +1 -1
  171. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTooltip.js +35 -32
  172. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTooltip.js.map +1 -1
  173. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTrendsData.js +27 -27
  174. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTrendsData.js.map +1 -1
  175. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartsGroup.js +14 -14
  176. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/constants.js.map +1 -1
  177. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/dots.js +24 -22
  178. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/dots.js.map +1 -1
  179. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/getLayersData.js +11 -14
  180. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/getLayersData.js.map +1 -1
  181. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js +57 -58
  182. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js.map +1 -1
  183. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/linearRegression.js +85 -83
  184. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/linearRegression.js.map +1 -1
  185. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createAesGetter.js +20 -20
  186. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createAesGetter.js.map +1 -1
  187. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createLegendInfo.js +44 -37
  188. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createLegendInfo.js.map +1 -1
  189. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/formatColumnValue.js +11 -0
  190. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/formatColumnValue.js.map +1 -0
  191. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/getVisibleLabels.js +46 -56
  192. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/getVisibleLabels.js.map +1 -1
  193. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/ChartRenderer.js +223 -205
  194. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/ChartRenderer.js.map +1 -1
  195. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/SettingsImpl.js +22 -22
  196. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/SettingsImpl.js.map +1 -1
  197. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/colors.js +42 -0
  198. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/colors.js.map +1 -0
  199. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/LowerSVG.js +84 -81
  200. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/LowerSVG.js.map +1 -1
  201. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/SVGLayer.js +11 -11
  202. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/UpperSVG.js +15 -14
  203. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/UpperSVG.js.map +1 -1
  204. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/index.js +89 -114
  205. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/index.js.map +1 -1
  206. package/dist/node_modules/@milaboratories/miplots4/dist/types/common.js +3 -1
  207. package/dist/node_modules/@milaboratories/miplots4/dist/types/common.js.map +1 -1
  208. package/dist/node_modules/@milaboratories/miplots4/dist/types/dendro.js +1 -1
  209. package/dist/node_modules/@milaboratories/miplots4/dist/types/dendro.js.map +1 -1
  210. package/dist/node_modules/@milaboratories/miplots4/dist/types/discrete.js +1 -1
  211. package/dist/node_modules/@milaboratories/miplots4/dist/types/discrete.js.map +1 -1
  212. package/dist/node_modules/@milaboratories/miplots4/dist/types/heatmap.js +1 -1
  213. package/dist/node_modules/@milaboratories/miplots4/dist/types/heatmap.js.map +1 -1
  214. package/dist/node_modules/@milaboratories/miplots4/dist/types/histogram.js +1 -1
  215. package/dist/node_modules/@milaboratories/miplots4/dist/types/histogram.js.map +1 -1
  216. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot-umap.js +1 -1
  217. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot-umap.js.map +1 -1
  218. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot.js +4 -4
  219. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot.js.map +1 -1
  220. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer/TextMeasurer.js +39 -0
  221. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer/TextMeasurer.js.map +1 -0
  222. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer/charToWidth.json.js +101 -0
  223. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer/charToWidth.json.js.map +1 -0
  224. package/dist/node_modules/@milaboratories/miplots4/dist/utils/arrangeLegendParts.js +4 -4
  225. package/dist/node_modules/@milaboratories/miplots4/dist/utils/arrangeLegendParts.js.map +1 -1
  226. package/dist/node_modules/@milaboratories/miplots4/dist/utils/getLegendWidth.js +3 -3
  227. package/dist/node_modules/@milaboratories/miplots4/dist/utils/getLegendWidth.js.map +1 -1
  228. package/dist/node_modules/@milaboratories/pf-plots/dist/index.js +1031 -1023
  229. package/dist/node_modules/@milaboratories/pf-plots/dist/index.js.map +1 -1
  230. package/package.json +3 -3
  231. package/dist/GraphMaker/icons/AxesIcon.vue.d.ts.map +0 -1
  232. package/dist/GraphMaker/icons/AxesIcon.vue.js.map +0 -1
  233. package/dist/GraphMaker/icons/DeleteChartIcon.vue.d.ts.map +0 -1
  234. package/dist/GraphMaker/icons/DeleteChartIcon.vue.js.map +0 -1
  235. package/dist/GraphMaker/icons/ExportIcon.vue.d.ts.map +0 -1
  236. package/dist/GraphMaker/icons/ExportIcon.vue.js.map +0 -1
  237. package/dist/GraphMaker/icons/LayersIcon.vue.d.ts.map +0 -1
  238. package/dist/GraphMaker/icons/LayersIcon.vue.js.map +0 -1
  239. package/dist/GraphMaker/icons/LinkIcon.vue.d.ts.map +0 -1
  240. package/dist/GraphMaker/icons/LinkIcon.vue.js.map +0 -1
  241. package/dist/GraphMaker/icons/SettingsIcon.vue.d.ts.map +0 -1
  242. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCells.js +0 -91
  243. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCells.js.map +0 -1
  244. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/add.js +0 -30
  245. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/add.js.map +0 -1
  246. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/cover.js +0 -29
  247. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/cover.js.map +0 -1
  248. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/data.js +0 -12
  249. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/data.js.map +0 -1
  250. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/extent.js +0 -7
  251. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/extent.js.map +0 -1
  252. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/find.js +0 -26
  253. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/find.js.map +0 -1
  254. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/quad.js +0 -7
  255. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/quad.js.map +0 -1
  256. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/quadtree.js +0 -51
  257. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/quadtree.js.map +0 -1
  258. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/remove.js +0 -21
  259. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/remove.js.map +0 -1
  260. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/root.js +0 -7
  261. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/root.js.map +0 -1
  262. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/size.js +0 -12
  263. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/size.js.map +0 -1
  264. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/visit.js +0 -14
  265. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/visit.js.map +0 -1
  266. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/visitAfter.js +0 -19
  267. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/visitAfter.js.map +0 -1
  268. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/x.js +0 -11
  269. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/x.js.map +0 -1
  270. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/y.js +0 -11
  271. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/y.js.map +0 -1
  272. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer.js +0 -24
  273. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer.js.map +0 -1
  274. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/AxesIcon.vue.d.ts +0 -0
  275. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/DeleteChartIcon.vue.d.ts +0 -0
  276. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/ExportIcon.vue.d.ts +0 -0
  277. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/LayersIcon.vue.d.ts +0 -0
  278. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/LinkIcon.vue.d.ts +0 -0
  279. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/SettingsIcon.vue.d.ts +0 -0
  280. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/SettingsIcon.vue.js +0 -0
  281. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/SettingsIcon.vue.js.map +0 -0
  282. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/SettingsIcon.vue2.js +0 -0
  283. /package/dist/GraphMaker/{icons → components/SettingsTabs/icons}/SettingsIcon.vue2.js.map +0 -0
@@ -0,0 +1,28 @@
1
+ function s(e, l, u, i = []) {
2
+ const o = [
3
+ `X: ${u.xLabels[l.x]}`,
4
+ `Y: ${u.yLabels[l.y]}`,
5
+ `Value (color): ${a(l.colorValue)}${l.colorValue !== l.normalizedColorValue ? ` (${a(l.normalizedColorValue)})` : ""}`,
6
+ `Value (size): ${a(l.sizeValue)}${l.sizeValue !== l.normalizedSizeValue ? ` (${a(l.normalizedSizeValue)})` : ""}`
7
+ ];
8
+ for (const n of i) {
9
+ const r = n.valueLabels ?? n.value;
10
+ if (r === void 0) continue;
11
+ const t = e.getColumnValue(r, l.idx);
12
+ o.push(`${n.label}: ${t}`);
13
+ }
14
+ return o;
15
+ }
16
+ function a(e) {
17
+ if (e === null)
18
+ return "null";
19
+ if (typeof e == "number") {
20
+ const l = e > 0 ? Math.floor(e) : Math.ceil(e), u = e - l;
21
+ return l + Number(u.toPrecision(2));
22
+ }
23
+ return e;
24
+ }
25
+ export {
26
+ s as getCellTooltip
27
+ };
28
+ //# sourceMappingURL=getCellTooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCellTooltip.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/bubble/getCellTooltip.ts"],"sourcesContent":["import type { DataFrame } from '../DataFrame';\nimport type { ColumnName, DataValue } from '../types';\nimport type { Cell, GroupedCellsData } from './getGroupedCellsData';\n\nexport function getCellTooltip(dataFrame: DataFrame, cell: Cell, cellsMeta: GroupedCellsData['meta'], columnsList: ColumnName[] = []) {\n const lines = [\n `X: ${cellsMeta.xLabels[cell.x as string]}`,\n `Y: ${cellsMeta.yLabels[cell.y as string]}`,\n `Value (color): ${formatCellValue(cell.colorValue)}${cell.colorValue !== cell.normalizedColorValue ? ` (${formatCellValue(cell.normalizedColorValue)})`: ''}`,\n `Value (size): ${formatCellValue(cell.sizeValue)}${cell.sizeValue !== cell.normalizedSizeValue ? ` (${formatCellValue(cell.normalizedSizeValue)})`: ''}`,\n ];\n for (const column of columnsList) {\n const labelColumn =column.valueLabels ?? column.value;\n if (labelColumn === undefined) continue;\n const valueLabel = dataFrame.getColumnValue(labelColumn, cell.idx);\n lines.push(`${column.label}: ${valueLabel}`);\n }\n return lines;\n}\n\nfunction formatCellValue (v: DataValue): number | string {\n if (v === null) {\n return 'null';\n }\n if (typeof v === 'number') {\n const whole = v > 0 ? Math.floor(v) : Math.ceil(v);\n const decimal = v - whole;\n return whole + Number(decimal.toPrecision(2));\n }\n return v;\n}"],"names":["getCellTooltip","dataFrame","cell","cellsMeta","columnsList","lines","formatCellValue","column","labelColumn","valueLabel","v","whole","decimal"],"mappings":"AAIO,SAASA,EAAeC,GAAsBC,GAAYC,GAAqCC,IAA4B,CAAA,GAAI;AAClI,QAAMC,IAAQ;AAAA,IACV,MAAMF,EAAU,QAAQD,EAAK,CAAW,CAAC;AAAA,IACzC,MAAMC,EAAU,QAAQD,EAAK,CAAW,CAAC;AAAA,IACzC,kBAAkBI,EAAgBJ,EAAK,UAAU,CAAC,GAAGA,EAAK,eAAeA,EAAK,uBAAuB,KAAKI,EAAgBJ,EAAK,oBAAoB,CAAC,MAAK,EAAE;AAAA,IAC3J,iBAAiBI,EAAgBJ,EAAK,SAAS,CAAC,GAAGA,EAAK,cAAcA,EAAK,sBAAsB,KAAKI,EAAgBJ,EAAK,mBAAmB,CAAC,MAAK,EAAE;AAAA,EAAA;AAE1J,aAAWK,KAAUH,GAAa;AAC9B,UAAMI,IAAaD,EAAO,eAAeA,EAAO;AAChD,QAAIC,MAAgB,OAAW;AAC/B,UAAMC,IAAaR,EAAU,eAAeO,GAAaN,EAAK,GAAG;AACjEG,IAAAA,EAAM,KAAK,GAAGE,EAAO,KAAK,KAAKE,CAAU,EAAE;AAAA,EAC/C;AACA,SAAOJ;AACX;AAEA,SAASC,EAAiBI,GAA+B;AACrD,MAAIA,MAAM;AACN,WAAO;AAEX,MAAI,OAAOA,KAAM,UAAU;AACvB,UAAMC,IAAQD,IAAI,IAAI,KAAK,MAAMA,CAAC,IAAI,KAAK,KAAKA,CAAC,GAC3CE,IAAUF,IAAIC;AACpB,WAAOA,IAAQ,OAAOC,EAAQ,YAAY,CAAC,CAAC;AAAA,EAChD;AACA,SAAOF;AACX;","x_google_ignoreList":[0]}
@@ -0,0 +1,94 @@
1
+ import { l as w } from "../node_modules/lodash/lodash.js";
2
+ import j from "../node_modules/d3-array/src/deviation.js";
3
+ import L from "../node_modules/d3-array/src/mean.js";
4
+ import q from "../node_modules/d3-array/src/extent.js";
5
+ const _ = 1e6;
6
+ function D(o) {
7
+ const r = j(o), u = L(o);
8
+ return r === void 0 || u === void 0 || r === 0 ? (s) => s : (s) => (s - u) / r;
9
+ }
10
+ function N(o) {
11
+ const r = L(o), [u, s] = q(o);
12
+ return r === void 0 || u === void 0 || s === void 0 ? (x) => x : (x) => (x - r) / (s - u);
13
+ }
14
+ function B(o, r) {
15
+ return o === "standardScaling" ? D(r) : o === "meanNormalization" ? N(r) : (u) => u;
16
+ }
17
+ function A(o, r, u, s, x, C, g, h, z) {
18
+ const V = g.map((t) => t.join("_")), e = {
19
+ meta: {
20
+ facetKeys: V,
21
+ xKeys: [],
22
+ yKeys: [],
23
+ xLabels: {},
24
+ yLabels: {},
25
+ facetKeyValues: V.reduce((t, a, l) => (t[a] = g[l], t), {}),
26
+ valueExtentSize: [1 / 0, -1 / 0],
27
+ valueExtentColor: [1 / 0, -1 / 0]
28
+ },
29
+ facets: {}
30
+ }, p = /* @__PURE__ */ new Set(), S = /* @__PURE__ */ new Set(), M = r.valueLabels ?? r.value, $ = u.valueLabels ?? u.value;
31
+ for (let t = 0; t < o.rowsCount; t++) {
32
+ const a = C.length ? C.map((c) => o.getColumnValue(c.value, t)).join("_") : "null", l = o.getColumnValue(r.value, t), n = o.getColumnValue(u.value, t), i = o.getColumnValue(s.value, t) ?? z, m = o.getColumnValue(x.value, t) ?? z;
33
+ if (l === null || n === null || i === null || m === null)
34
+ continue;
35
+ e.facets[a] || (e.facets[a] = {
36
+ xKeys: [],
37
+ yKeys: [],
38
+ cells: {}
39
+ }), e.facets[a].xKeys.push(l), e.facets[a].yKeys.push(n), p.has(l) || (p.add(l), e.meta.xKeys.push(l)), S.has(n) || (S.add(n), e.meta.yKeys.push(n)), e.facets[a].cells[l] || (e.facets[a].cells[l] = {}), e.meta.valueExtentSize[0] = Math.min(i, e.meta.valueExtentSize[0]), e.meta.valueExtentSize[1] = Math.max(i, e.meta.valueExtentSize[1]), e.meta.valueExtentColor[0] = Math.min(m, e.meta.valueExtentColor[0]), e.meta.valueExtentColor[1] = Math.max(m, e.meta.valueExtentColor[1]);
40
+ const K = String(o.getColumnValue(M, t)), d = String(o.getColumnValue($, t));
41
+ if (e.facets[a].cells[l][n])
42
+ throw Error(`More than 1 value for x=${l}, y=${n}`);
43
+ if (e.meta.xLabels[l] && K !== e.meta.xLabels[l])
44
+ throw Error(`More than 1 x-label value for x=${l}`);
45
+ if (e.meta.yLabels[n] && d !== e.meta.yLabels[n])
46
+ throw Error(`More than 1 y-label value for y=${n}`);
47
+ e.meta.xLabels[l] = K, e.meta.yLabels[n] = d, e.facets[a].cells[l][n] = {
48
+ id: `${l}_${n}`,
49
+ idx: t,
50
+ x: l,
51
+ y: n,
52
+ sizeValue: i,
53
+ normalizedSizeValue: i,
54
+ colorValue: m,
55
+ normalizedColorValue: m
56
+ };
57
+ }
58
+ if (e.meta.facetKeys = e.meta.facetKeys.filter((t) => e.facets[t]), e.meta.facetKeys.forEach((t) => {
59
+ const a = e.facets[t];
60
+ if (a.xKeys = w.uniq(a.xKeys), a.yKeys = w.uniq(a.yKeys), a.xKeys.length * a.yKeys.length > _)
61
+ throw Error(`Too many cells for graph rendering (${a.xKeys.length * a.yKeys.length})`);
62
+ }), h) {
63
+ const t = [1 / 0, -1 / 0];
64
+ e.meta.facetKeys.forEach((a) => {
65
+ if (!e.facets[a])
66
+ return;
67
+ const { xKeys: l, yKeys: n, cells: i } = e.facets[a], m = h.direction === "row" ? l : n, K = h.direction === "row" ? n : l, d = h.direction === "row" ? (c, v) => {
68
+ var f;
69
+ return (f = i[c]) == null ? void 0 : f[v];
70
+ } : (c, v) => {
71
+ var f;
72
+ return (f = i[v]) == null ? void 0 : f[c];
73
+ };
74
+ K.forEach((c) => {
75
+ const v = [];
76
+ m.forEach((E) => {
77
+ var y;
78
+ const b = (y = d(E, c)) == null ? void 0 : y.colorValue;
79
+ b !== void 0 && v.push(b);
80
+ });
81
+ const f = B(h.method, v);
82
+ m.forEach((E) => {
83
+ const y = d(E, c);
84
+ y !== void 0 && (y.normalizedColorValue = f(y.colorValue), t[0] = Math.min(y.normalizedColorValue, t[0]), t[1] = Math.max(y.normalizedColorValue, t[1]));
85
+ });
86
+ });
87
+ }), e.meta.valueExtentColor = t;
88
+ }
89
+ return e.meta.valueExtentSize[0] === 1 / 0 && (e.meta.valueExtentSize[0] = 0), e.meta.valueExtentSize[1] === -1 / 0 && (e.meta.valueExtentSize[1] = 0), e.meta.valueExtentColor[0] === 1 / 0 && (e.meta.valueExtentColor[0] = 0), e.meta.valueExtentColor[1] === -1 / 0 && (e.meta.valueExtentColor[1] = 0), e;
90
+ }
91
+ export {
92
+ A as getGroupedCellsData
93
+ };
94
+ //# sourceMappingURL=getGroupedCellsData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getGroupedCellsData.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/bubble/getGroupedCellsData.ts"],"sourcesContent":["import { deviation, extent, mean } from 'd3-array';\nimport { uniq } from 'lodash';\nimport type { DataFrame } from '../DataFrame';\nimport type { ColumnName, DataValue, NormalizationMethod } from '../types';\nimport type { BubbleSettingsImpl } from './BubbleSettingsImpl';\n\nconst MAX_RENDERED_CELLS_COUNT = 1000000;\nfunction normalizeByStd(values: number[]) {\n const stdValue = deviation(values);\n const meanValue = mean(values);\n\n if (stdValue === undefined || meanValue === undefined || stdValue === 0) {\n return (v: number) => v;\n }\n return (v: number) => (v - meanValue) / stdValue;\n}\n\nfunction normalizeByMinMax(values: number[]) {\n const meanValue = mean(values);\n const [min, max] = extent(values);\n if (meanValue === undefined || min === undefined || max === undefined) {\n return (v: number) => v;\n }\n return (v: number) => (v - meanValue) / (max - min);\n}\n\nfunction getNormalizationFn(method: NormalizationMethod, values: number[]) {\n if (method === 'standardScaling') {\n return normalizeByStd(values);\n }\n if (method === 'meanNormalization') {\n return normalizeByMinMax(values);\n }\n return (v: number) => v;\n}\n\nexport type Cell = {\n id: string;\n idx: number;\n sizeValue: DataValue;\n colorValue: DataValue;\n normalizedSizeValue: DataValue;\n normalizedColorValue: DataValue;\n x: DataValue;\n y: DataValue;\n};\n\nexport type GroupedCellsData = {\n meta: {\n facetKeys: string[];\n facetKeyValues: Record<string, string[]>;\n xKeys: string[]; // all the keys from facets\n yKeys: string[]; // all the keys from facets\n xLabels: Record<string, string>;\n yLabels: Record<string, string>;\n valueExtentSize: [number, number]; // for size scales\n valueExtentColor: [number, number]; // for color scales\n };\n //facet groups\n facets: Record<\n string,\n {\n // axis keys\n xKeys: string[];\n yKeys: string[];\n // cells grouped by X, then by Y\n cells: Record<string, Record<string, Cell>>;\n }\n >;\n};\n\nexport function getGroupedCellsData(\n data: DataFrame,\n xColumn: ColumnName,\n yColumn: ColumnName,\n valueColumnSize: ColumnName,\n valueColumnColor: ColumnName,\n facetBy: ColumnName[],\n facetKeysCombinations: string[][],\n normalization: BubbleSettingsImpl['normalization'],\n NAValueAs: BubbleSettingsImpl['NAValueAs']\n): GroupedCellsData {\n const facetKeys = facetKeysCombinations.map(v => v.join('_'));\n const result: GroupedCellsData = {\n meta: {\n facetKeys,\n xKeys: [],\n yKeys: [],\n xLabels: {},\n yLabels: {},\n facetKeyValues: facetKeys.reduce((res: Record<string, string[]>, key, index) => {\n res[key] = facetKeysCombinations[index];\n return res;\n }, {}),\n valueExtentSize: [Infinity, -Infinity],\n valueExtentColor: [Infinity, -Infinity],\n },\n facets: {},\n };\n const usedXKeys = new Set();\n const usedYKeys = new Set();\n\n const xLabelsSource = xColumn.valueLabels ?? xColumn.value;\n const yLabelsSource = yColumn.valueLabels ?? yColumn.value;\n\n for (let i = 0; i < data.rowsCount; i++) {\n const facetKey = facetBy.length ? facetBy.map(column => data.getColumnValue(column.value, i)).join('_') : 'null';\n const x = data.getColumnValue(xColumn.value, i) as string;\n const y = data.getColumnValue(yColumn.value, i) as string;\n const sizeValue = (data.getColumnValue(valueColumnSize.value, i) ?? NAValueAs) as (null | number);\n const colorValue = (data.getColumnValue(valueColumnColor.value, i) ?? NAValueAs) as (null | number);\n \n if (x === null || y === null || sizeValue === null || colorValue === null) {\n continue;\n }\n\n if (!result.facets[facetKey]) {\n result.facets[facetKey] = {\n xKeys: [],\n yKeys: [],\n cells: {},\n };\n }\n result.facets[facetKey].xKeys.push(x);\n result.facets[facetKey].yKeys.push(y);\n\n if (!usedXKeys.has(x)) {\n usedXKeys.add(x);\n result.meta.xKeys.push(x);\n }\n if (!usedYKeys.has(y)) {\n usedYKeys.add(y);\n result.meta.yKeys.push(y);\n }\n if (!result.facets[facetKey].cells[x]) {\n result.facets[facetKey].cells[x] = {};\n }\n result.meta.valueExtentSize[0] = Math.min(sizeValue, result.meta.valueExtentSize[0]);\n result.meta.valueExtentSize[1] = Math.max(sizeValue, result.meta.valueExtentSize[1]);\n result.meta.valueExtentColor[0] = Math.min(colorValue, result.meta.valueExtentColor[0]);\n result.meta.valueExtentColor[1] = Math.max(colorValue, result.meta.valueExtentColor[1]);\n\n const xLabelsValueStr = String(data.getColumnValue(xLabelsSource, i));\n const yLabelsValueStr = String(data.getColumnValue(yLabelsSource, i));\n\n if (result.facets[facetKey].cells[x][y]) {\n throw Error(`More than 1 value for x=${x}, y=${y}`);\n }\n if (result.meta.xLabels[x] && xLabelsValueStr !== result.meta.xLabels[x]) {\n throw Error(`More than 1 x-label value for x=${x}`);\n }\n if (result.meta.yLabels[y] && yLabelsValueStr !== result.meta.yLabels[y]) {\n throw Error(`More than 1 y-label value for y=${y}`);\n }\n result.meta.xLabels[x] = xLabelsValueStr;\n result.meta.yLabels[y] = yLabelsValueStr;\n result.facets[facetKey].cells[x][y] = {\n id: `${x}_${y}`,\n idx: i,\n x,\n y,\n sizeValue,\n normalizedSizeValue: sizeValue,\n colorValue,\n normalizedColorValue: colorValue,\n };\n }\n result.meta.facetKeys = result.meta.facetKeys.filter((key) => result.facets[key]); // filter only used;\n\n // make uniq x, y, x-group and y-group keys\n result.meta.facetKeys.forEach(facetKey => {\n const facet = result.facets[facetKey];\n facet.xKeys = uniq(facet.xKeys);\n facet.yKeys = uniq(facet.yKeys);\n\n if (facet.xKeys.length * facet.yKeys.length > MAX_RENDERED_CELLS_COUNT) {\n throw Error(`Too many cells for graph rendering (${facet.xKeys.length * facet.yKeys.length})`);\n }\n });\n\n if (normalization) {\n //const valueExtentSize = [Infinity, -Infinity] as [number, number];\n const valueExtentColor = [Infinity, -Infinity] as [number, number];\n result.meta.facetKeys.forEach(facetKey => {\n if (!result.facets[facetKey]) {\n return;\n }\n const {xKeys, yKeys, cells} = result.facets[facetKey];\n const cellKeys = normalization.direction === 'row' ? xKeys : yKeys;\n const groupKeys = normalization.direction === 'row' ? yKeys : xKeys;\n const cellGetter =\n normalization.direction === 'row'\n ? (cellKey: string, groupKey: string) => cells[cellKey]?.[groupKey]\n : (cellKey: string, groupKey: string) => cells[groupKey]?.[cellKey];\n groupKeys.forEach(groupKey => {\n //const sizeValues:number[] = [];\n const colorValues: number[] = [];\n cellKeys.forEach(cellKey => {\n //const sizeV = cellGetter(cellKey, groupKey)?.sizeValue;\n const colorV = cellGetter(cellKey, groupKey)?.colorValue;\n // if (sizeV !== undefined) {\n // sizeValues.push(sizeV as number);\n // }\n if (colorV !== undefined) {\n colorValues.push(colorV as number);\n }\n });\n // const normalizeSize = getNormalizationFn(normalization.method, sizeValues);\n const normalizeColor = getNormalizationFn(normalization.method, colorValues);\n cellKeys.forEach(cellKey => {\n const cell = cellGetter(cellKey, groupKey);\n if (cell !== undefined) {\n // cell.normalizedSizeValue = normalizeSize(cell.sizeValue as number);\n cell.normalizedColorValue = normalizeColor(cell.colorValue as number);\n // valueExtentSize[0] = Math.min(cell.normalizedSizeValue, valueExtentSize[0]);\n // valueExtentSize[1] = Math.max(cell.normalizedSizeValue, valueExtentSize[1]);\n valueExtentColor[0] = Math.min(cell.normalizedColorValue, valueExtentColor[0]);\n valueExtentColor[1] = Math.max(cell.normalizedColorValue, valueExtentColor[1]);\n }\n });\n });\n });\n // result.meta.valueExtentSize = valueExtentSize;\n result.meta.valueExtentColor = valueExtentColor;\n }\n\n // avoid render errors on empty data\n if (result.meta.valueExtentSize[0] === Infinity) {\n result.meta.valueExtentSize[0] = 0;\n }\n if (result.meta.valueExtentSize[1] === -Infinity) {\n result.meta.valueExtentSize[1] = 0;\n }\n if (result.meta.valueExtentColor[0] === Infinity) {\n result.meta.valueExtentColor[0] = 0;\n }\n if (result.meta.valueExtentColor[1] === -Infinity) {\n result.meta.valueExtentColor[1] = 0;\n }\n\n return result;\n}\n"],"names":["MAX_RENDERED_CELLS_COUNT","normalizeByStd","values","stdValue","deviation","meanValue","mean","v","normalizeByMinMax","min","max","extent","getNormalizationFn","method","getGroupedCellsData","data","xColumn","yColumn","valueColumnSize","valueColumnColor","facetBy","facetKeysCombinations","normalization","NAValueAs","facetKeys","result","res","key","index","usedXKeys","usedYKeys","xLabelsSource","yLabelsSource","i","facetKey","column","x","y","sizeValue","colorValue","xLabelsValueStr","yLabelsValueStr","facet","uniq","valueExtentColor","xKeys","yKeys","cells","cellKeys","groupKeys","cellGetter","cellKey","groupKey","_a","colorValues","colorV","normalizeColor","cell"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,20 +1,24 @@
1
+ import { renderToString as v } from "../node_modules/react-dom/server.browser.js";
1
2
  import { AbstractChart as C } from "../AbstractChart.js";
2
- import { getCells as v } from "./getCells.js";
3
- import { renderToString as g } from "../node_modules/react-dom/server.browser.js";
4
- import y from "./ChartRenderer.js";
5
- import { BubbleSettingsImpl as m } from "./BubbleSettingsImpl.js";
6
- import { getKeysCombinations as f } from "../utils/getKeysCombination.js";
7
- var D = Object.defineProperty, b = (i, t, e) => t in i ? D(i, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : i[t] = e, d = (i, t, e) => b(i, typeof t != "symbol" ? t + "" : t, e);
8
- class R extends C {
3
+ import { getKeysCombinations as g } from "../utils/getKeysCombination.js";
4
+ import { BubbleSettingsImpl as c } from "./BubbleSettingsImpl.js";
5
+ import D from "./ChartRenderer.js";
6
+ import { getCellTooltip as f } from "./getCellTooltip.js";
7
+ import { getGroupedCellsData as y } from "./getGroupedCellsData.js";
8
+ var b = Object.defineProperty, S = (n, t, e) => t in n ? b(n, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : n[t] = e, s = (n, t, e) => S(n, typeof t != "symbol" ? t + "" : t, e);
9
+ class x extends C {
9
10
  constructor(t, e, a) {
10
- super(t, e), d(this, "settings"), d(this, "chartRenderer", new y()), d(this, "onTooltipHintSwitch", () => {
11
- }), d(this, "calculatedData", null), this.settings = new m(e), a && (this.onTooltipHintSwitch = a[0]);
11
+ super(t, e), s(this, "settings"), s(this, "chartRenderer"), s(this, "onTooltipHintSwitch", () => {
12
+ }), s(this, "calculatedData", null), s(this, "_getTooltip", (l) => {
13
+ var r, o, i;
14
+ return this.calculatedData ? f(this.data, l, this.calculatedData.groupedCellsData.meta, (i = (o = (r = this.settings) == null ? void 0 : r.chartSettings) == null ? void 0 : o.tooltips) == null ? void 0 : i.content) : ["No data available"];
15
+ }), this.settings = new c(e), this.chartRenderer = new D(), a && (this.onTooltipHintSwitch = a[0]);
12
16
  }
13
17
  mount(t) {
14
18
  try {
15
19
  this.chartRenderer.init(t), this._updateData(), this._updateChart();
16
20
  } catch (e) {
17
- e instanceof Error && this.chartRenderer.renderError(e.message);
21
+ e instanceof Error && (this.chartRenderer.renderError(e.message), console.error(e));
18
22
  }
19
23
  }
20
24
  unmount() {
@@ -22,49 +26,48 @@ class R extends C {
22
26
  }
23
27
  updateSettingsAndData(t, e) {
24
28
  try {
25
- const a = this.settings, r = this.data;
26
- this.settings = new m(e), this.data = t, this._needUpdateCalculatedDataBySettings(a, this.settings) || this._needUpdateCalculatedDataByData(r, this.data) ? this._updateData() : this._updateAesInData(), this._updateChart();
29
+ const a = this.settings, l = this.data;
30
+ this.settings = new c(e), this.data = t, this._needUpdateCalculatedDataBySettings(a, this.settings) || this._needUpdateCalculatedDataByData(l, this.data) ? this._updateData() : this._updateAesInData(), this._updateChart();
27
31
  } catch (a) {
28
- a instanceof Error && this.chartRenderer.renderError(a.message);
32
+ a instanceof Error && (this.chartRenderer.renderError(a.message), console.error(a));
29
33
  }
30
34
  }
31
35
  updateChartState(t, e) {
32
36
  console.warn("no chart state for bubble chart");
33
37
  }
34
38
  export() {
35
- return this._updateChart(), g(this.chartRenderer.component);
39
+ return this._updateChart(), v(this.chartRenderer.component);
36
40
  }
37
41
  _needUpdateCalculatedDataBySettings(t, e) {
38
- var a, r, l, n;
39
- return t.facetBy.some((s, o) => {
40
- var u;
41
- return s.value !== ((u = e.facetBy[o]) == null ? void 0 : u.value);
42
- }) || ((a = t.normalization) == null ? void 0 : a.method) !== ((r = e.normalization) == null ? void 0 : r.method) || ((l = t.normalization) == null ? void 0 : l.direction) !== ((n = e.normalization) == null ? void 0 : n.direction) || t.xColumn.value !== e.xColumn.value || t.yColumn.value !== e.yColumn.value || t.valueColumnColor.value !== e.valueColumnColor.value || t.valueColumnSize.value !== e.valueColumnSize.value || t.NAValueAs !== e.NAValueAs;
42
+ var a, l, r, o;
43
+ return t.facetBy.some((i, u) => {
44
+ var d;
45
+ return i.value !== ((d = e.facetBy[u]) == null ? void 0 : d.value);
46
+ }) || ((a = t.normalization) == null ? void 0 : a.method) !== ((l = e.normalization) == null ? void 0 : l.method) || ((r = t.normalization) == null ? void 0 : r.direction) !== ((o = e.normalization) == null ? void 0 : o.direction) || t.xColumn.value !== e.xColumn.value || t.yColumn.value !== e.yColumn.value || t.valueColumnColor.value !== e.valueColumnColor.value || t.valueColumnSize.value !== e.valueColumnSize.value || t.NAValueAs !== e.NAValueAs;
43
47
  }
44
48
  _needUpdateCalculatedDataByData(t, e) {
45
- const a = Object.keys(t.data), r = Object.keys(e.data);
46
- return t.id !== e.id || a.length !== r.length || a.some((l) => {
47
- var n;
48
- return t.data[l].length !== ((n = e.data[l]) == null ? void 0 : n.length);
49
+ const a = Object.keys(t.data), l = Object.keys(e.data);
50
+ return t.id !== e.id || a.length !== l.length || a.some((r) => {
51
+ var o;
52
+ return t.data[r].length !== ((o = e.data[r]) == null ? void 0 : o.length);
49
53
  });
50
54
  }
51
55
  _updateData() {
52
- const { facetBy: t, xColumn: e, yColumn: a, valueColumnSize: r, valueColumnColor: l, normalization: n, NAValueAs: s } = this.settings, o = t.map((h) => this.data.getColumnCategories(h.value)), u = o.length ? f([...o]) : [["null"]], p = t.map((h) => h.value) ?? null;
53
- this.data.setGrouping([...p]);
54
- const c = v(
56
+ const { facetBy: t, xColumn: e, yColumn: a, valueColumnSize: l, valueColumnColor: r, normalization: o, NAValueAs: i } = this.settings, u = t.map((h) => this.data.getColumnCategories(h.value)), d = u.length ? g([...u]) : [["null"]], m = t.map((h) => h.value) ?? null;
57
+ this.data.setGrouping([...m]);
58
+ const p = y(
55
59
  this.data,
56
60
  e,
57
61
  a,
58
- r,
59
62
  l,
63
+ r,
60
64
  t,
61
- u,
62
- n,
63
- s
65
+ d,
66
+ o,
67
+ i
64
68
  );
65
69
  this.calculatedData = {
66
- facetKeys: c.meta.facetKeys,
67
- groupedCellsData: c
70
+ groupedCellsData: p
68
71
  };
69
72
  }
70
73
  _updateAesInData() {
@@ -73,22 +76,23 @@ class R extends C {
73
76
  _updateChart() {
74
77
  if (!this.calculatedData)
75
78
  return;
76
- const { id: t, chartSettings: e, facetSettings: a, valueColumnColor: r, valueColumnSize: l, normalization: n, aes: s } = this.settings;
79
+ const { id: t, chartSettings: e, facetSettings: a, valueColumnColor: l, valueColumnSize: r, normalization: o, aes: i } = this.settings;
77
80
  this.chartRenderer.render(
81
+ this.data,
78
82
  t,
79
83
  e,
80
84
  a,
81
- this.calculatedData.facetKeys,
82
85
  this.calculatedData.groupedCellsData,
83
- r,
84
86
  l,
85
- n,
86
- s,
87
+ r,
88
+ o,
89
+ i,
90
+ this._getTooltip,
87
91
  this.onTooltipHintSwitch
88
92
  );
89
93
  }
90
94
  }
91
95
  export {
92
- R as ChartBubble
96
+ x as ChartBubble
93
97
  };
94
98
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/bubble/index.ts"],"sourcesContent":["import {AbstractChart} from '../AbstractChart';\nimport {getCells} from './getCells';\nimport type {GroupedCellsData} from './getCells';\nimport type {BubbleEventHandlers, BubbleSettings} from '../types';\nimport {renderToString} from 'react-dom/server';\nimport ChartRenderer from './ChartRenderer';\nimport {BubbleSettingsImpl} from './BubbleSettingsImpl';\nimport type {DataFrame} from '../DataFrame';\nimport {getKeysCombinations} from '../utils/getKeysCombination';\n\nexport class ChartBubble extends AbstractChart {\n settings: BubbleSettingsImpl;\n chartRenderer = new ChartRenderer();\n\n onTooltipHintSwitch: (v:boolean) => void = () => undefined;\n calculatedData: {\n facetKeys: string[];\n groupedCellsData: GroupedCellsData;\n } | null = null;\n\n constructor(data: DataFrame, settings: BubbleSettings, eventHandlers?: BubbleEventHandlers) {\n super(data, settings);\n\n this.settings = new BubbleSettingsImpl(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: BubbleSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new BubbleSettingsImpl(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 bubble chart');\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: BubbleSettingsImpl, settings: BubbleSettingsImpl) {\n return prevSettings.facetBy.some((el, idx) => el.value !== settings.facetBy[idx]?.value) ||\n prevSettings.normalization?.method !== settings.normalization?.method ||\n prevSettings.normalization?.direction !== settings.normalization?.direction ||\n prevSettings.xColumn.value !== settings.xColumn.value ||\n prevSettings.yColumn.value !== settings.yColumn.value ||\n prevSettings.valueColumnColor.value !== settings.valueColumnColor.value ||\n prevSettings.valueColumnSize.value !== settings.valueColumnSize.value ||\n prevSettings.NAValueAs !== settings.NAValueAs;\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 {facetBy, xColumn, yColumn, valueColumnSize, valueColumnColor, normalization, NAValueAs} = 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\n this.data.setGrouping([...facetGroupingValues]);\n\n const cells = getCells(\n this.data,\n xColumn,\n yColumn,\n valueColumnSize,\n valueColumnColor,\n facetBy,\n facetKeysCombinations,\n normalization,\n NAValueAs\n );\n this.calculatedData = {\n facetKeys: cells.meta.facetKeys,\n groupedCellsData: cells,\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, valueColumnColor, valueColumnSize, normalization, aes} = this.settings;\n this.chartRenderer.render(\n id,\n chartSettings,\n facetSettings,\n this.calculatedData.facetKeys,\n this.calculatedData.groupedCellsData,\n valueColumnColor,\n valueColumnSize,\n normalization,\n aes,\n this.onTooltipHintSwitch\n );\n }\n}\n"],"names":["ChartBubble","AbstractChart","data","settings","eventHandlers","__publicField","ChartRenderer","BubbleSettingsImpl","node","err","previousSettings","previousData","_field","_value","renderToString","prevSettings","el","idx","_a","_b","_c","_d","prevData","prevKeys","keys","o","key","facetBy","xColumn","yColumn","valueColumnSize","valueColumnColor","normalization","NAValueAs","facetKeysLists","column","facetKeysCombinations","getKeysCombinations","facetGroupingValues","cells","getCells","id","chartSettings","facetSettings","aes"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/bubble/index.ts"],"sourcesContent":["import { renderToString } from 'react-dom/server';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport type { BubbleEventHandlers, BubbleSettings } from '../types';\nimport { getKeysCombinations } from '../utils/getKeysCombination';\nimport { BubbleSettingsImpl } from './BubbleSettingsImpl';\nimport ChartRenderer from './ChartRenderer';\nimport { getCellTooltip } from './getCellTooltip';\nimport type { Cell, GroupedCellsData } from './getGroupedCellsData';\nimport { getGroupedCellsData } from './getGroupedCellsData';\n\nexport class ChartBubble extends AbstractChart {\n settings: BubbleSettingsImpl;\n chartRenderer: ChartRenderer;\n\n onTooltipHintSwitch: (v:boolean) => void = () => undefined;\n calculatedData: {\n groupedCellsData: GroupedCellsData;\n } | null = null;\n\n constructor(data: DataFrame, settings: BubbleSettings, eventHandlers?: BubbleEventHandlers) {\n super(data, settings);\n\n this.settings = new BubbleSettingsImpl(settings);\n this.chartRenderer = new ChartRenderer();\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 console.error(err);\n }\n }\n }\n\n unmount() {\n this.chartRenderer.clear();\n }\n\n updateSettingsAndData(data: DataFrame, settings: BubbleSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new BubbleSettingsImpl(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 bubble chart');\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: BubbleSettingsImpl, settings: BubbleSettingsImpl) {\n return prevSettings.facetBy.some((el, idx) => el.value !== settings.facetBy[idx]?.value) ||\n prevSettings.normalization?.method !== settings.normalization?.method ||\n prevSettings.normalization?.direction !== settings.normalization?.direction ||\n prevSettings.xColumn.value !== settings.xColumn.value ||\n prevSettings.yColumn.value !== settings.yColumn.value ||\n prevSettings.valueColumnColor.value !== settings.valueColumnColor.value ||\n prevSettings.valueColumnSize.value !== settings.valueColumnSize.value ||\n prevSettings.NAValueAs !== settings.NAValueAs;\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 {facetBy, xColumn, yColumn, valueColumnSize, valueColumnColor, normalization, NAValueAs} = 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\n this.data.setGrouping([...facetGroupingValues]);\n\n const groupedCellsData = getGroupedCellsData(\n this.data,\n xColumn,\n yColumn,\n valueColumnSize,\n valueColumnColor,\n facetBy,\n facetKeysCombinations,\n normalization,\n NAValueAs\n );\n this.calculatedData = {\n groupedCellsData,\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, valueColumnColor, valueColumnSize, normalization, aes} = this.settings;\n this.chartRenderer.render(\n this.data,\n id,\n chartSettings,\n facetSettings,\n this.calculatedData.groupedCellsData,\n valueColumnColor,\n valueColumnSize,\n normalization,\n aes,\n this._getTooltip,\n this.onTooltipHintSwitch\n );\n }\n\n private _getTooltip = (cell: Cell): string[] => {\n return this.calculatedData\n ? getCellTooltip(this.data, cell, this.calculatedData.groupedCellsData.meta, this.settings?.chartSettings?.tooltips?.content)\n : ['No data available'];\n };\n}\n"],"names":["ChartBubble","AbstractChart","data","settings","eventHandlers","__publicField","cell","getCellTooltip","_c","_b","_a","BubbleSettingsImpl","ChartRenderer","node","err","previousSettings","previousData","_field","_value","renderToString","prevSettings","el","idx","_d","prevData","prevKeys","keys","key","facetBy","xColumn","yColumn","valueColumnSize","valueColumnColor","normalization","NAValueAs","facetKeysLists","column","facetKeysCombinations","getKeysCombinations","facetGroupingValues","groupedCellsData","getGroupedCellsData","id","chartSettings","facetSettings","aes"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"calculateCaptionTails.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/bubble/utils/calculateCaptionTails.ts"],"sourcesContent":["import type {LabelAngles} from '../components/types';\nimport {MIN_STEP_FOR_VISIBLE_LABELS} from '../constants';\nimport type {GroupedCellsData} from '../getCells';\nimport type {TextMeasurer} from '../../utils/TextMeasurer';\n\nexport function calculateCaptionTails(\n labelAngles: LabelAngles,\n steps: {x: number; y: number;},\n groupedCells: GroupedCellsData,\n textMeasurer: TextMeasurer\n): {xCaptionTail: number; yCaptionTail: number} {\n const {xLabels, yLabels} = groupedCells.meta;\n const xLabelAngle = (labelAngles.xAxisLabels / 180) * Math.PI;\n const yLabelAngle = (labelAngles.yAxisLabels / 180) * Math.PI;\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 xLabelsInclined = labelAngles.xAxisLabels === 45;\n if (xLabelsInclined) {\n const xKeys = groupedCells.meta.xKeys;\n const step = steps.x;\n const labelsVisible = step > MIN_STEP_FOR_VISIBLE_LABELS;\n const firstLabel = xLabels[xKeys[0]];\n xCaptionTail = Math.max(\n xCaptionTail,\n (xLabelsInclined && labelsVisible\n ? textMeasurer.getTextWidth(firstLabel) * Math.cos(xLabelAngle)\n : 0) -\n step / 2\n );\n }\n const yLabelsInclined = labelAngles.yAxisLabels === 45;\n if (yLabelsInclined) {\n const yKeys = groupedCells.meta.yKeys;\n if (yKeys.length) {\n const step = steps.y;\n const labelsVisible = step > MIN_STEP_FOR_VISIBLE_LABELS;\n const lastLabel = yLabels[yKeys[yKeys.length - 1]];\n yCaptionTail = Math.max(\n yCaptionTail,\n (yLabelsInclined && labelsVisible\n ? textMeasurer.getTextWidth(lastLabel) * Math.cos(yLabelAngle)\n : 0) -\n step / 2\n );\n }\n }\n return {xCaptionTail, yCaptionTail};\n}\n"],"names":["calculateCaptionTails","labelAngles","steps","groupedCells","textMeasurer","xLabels","yLabels","xLabelAngle","yLabelAngle","xCaptionTail","yCaptionTail","xLabelsInclined","xKeys","step","labelsVisible","MIN_STEP_FOR_VISIBLE_LABELS","firstLabel","yLabelsInclined","yKeys","lastLabel"],"mappings":";AAKO,SAASA,EACZC,GACAC,GACAC,GACAC,GAC4C;AAC5C,QAAM,EAAC,SAAAC,GAAS,SAAAC,EAAAA,IAAWH,EAAa,MAClCI,IAAeN,EAAY,cAAc,MAAO,KAAK,IACrDO,IAAeP,EAAY,cAAc,MAAO,KAAK;AAC3D,MAAIQ,IAAe,GACfC,IAAe;AAEnB,QAAMC,IAAkBV,EAAY,gBAAgB;AACpD,MAAIU,GAAiB;AACjB,UAAMC,IAAQT,EAAa,KAAK,OAC1BU,IAAOX,EAAM,GACbY,IAAgBD,IAAOE,GACvBC,IAAaX,EAAQO,EAAM,CAAC,CAAC;AACnCH,QAAe,KAAK;AAAA,MAChBA;AAAAA,OACCE,KAAmBG,IACdV,EAAa,aAAaY,CAAU,IAAI,KAAK,IAAIT,CAAW,IAC5D,KACFM,IAAO;AAAA,IAAA;AAAA,EAEnB;AACA,QAAMI,IAAkBhB,EAAY,gBAAgB;AACpD,MAAIgB,GAAiB;AACjB,UAAMC,IAAQf,EAAa,KAAK;AAChC,QAAIe,EAAM,QAAQ;AACd,YAAML,IAAOX,EAAM,GACbY,IAAgBD,IAAOE,GACvBI,IAAYb,EAAQY,EAAMA,EAAM,SAAS,CAAC,CAAC;AACjDR,MAAAA,IAAe,KAAK;AAAA,QAChBA;AAAAA,SACCO,KAAmBH,IACdV,EAAa,aAAae,CAAS,IAAI,KAAK,IAAIX,CAAW,IAC3D,KACNK,IAAO;AAAA,MAAA;AAAA,IAEf;AAAA,EACJ;AACA,SAAO,EAAC,cAAAJ,GAAc,cAAAC,EAAAA;AAC1B;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"calculateCaptionTails.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/bubble/utils/calculateCaptionTails.ts"],"sourcesContent":["import type { TextMeasurer } from '../../utils/TextMeasurer/TextMeasurer';\nimport type { LabelAngles } from '../components/types';\nimport { MIN_STEP_FOR_VISIBLE_LABELS } from '../constants';\nimport type { GroupedCellsData } from '../getGroupedCellsData';\n\nexport function calculateCaptionTails(\n labelAngles: LabelAngles,\n steps: {x: number; y: number;},\n groupedCells: GroupedCellsData,\n textMeasurer: TextMeasurer\n): {xCaptionTail: number; yCaptionTail: number} {\n const {xLabels, yLabels} = groupedCells.meta;\n const xLabelAngle = (labelAngles.xAxisLabels / 180) * Math.PI;\n const yLabelAngle = (labelAngles.yAxisLabels / 180) * Math.PI;\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 xLabelsInclined = labelAngles.xAxisLabels === 45;\n if (xLabelsInclined) {\n const xKeys = groupedCells.meta.xKeys;\n const step = steps.x;\n const labelsVisible = step > MIN_STEP_FOR_VISIBLE_LABELS;\n const firstLabel = xLabels[xKeys[0]];\n xCaptionTail = Math.max(\n xCaptionTail,\n (xLabelsInclined && labelsVisible\n ? textMeasurer.getTextWidth(firstLabel) * Math.cos(xLabelAngle)\n : 0) -\n step / 2\n );\n }\n const yLabelsInclined = labelAngles.yAxisLabels === 45;\n if (yLabelsInclined) {\n const yKeys = groupedCells.meta.yKeys;\n if (yKeys.length) {\n const step = steps.y;\n const labelsVisible = step > MIN_STEP_FOR_VISIBLE_LABELS;\n const lastLabel = yLabels[yKeys[yKeys.length - 1]];\n yCaptionTail = Math.max(\n yCaptionTail,\n (yLabelsInclined && labelsVisible\n ? textMeasurer.getTextWidth(lastLabel) * Math.cos(yLabelAngle)\n : 0) -\n step / 2\n );\n }\n }\n return {xCaptionTail, yCaptionTail};\n}\n"],"names":["calculateCaptionTails","labelAngles","steps","groupedCells","textMeasurer","xLabels","yLabels","xLabelAngle","yLabelAngle","xCaptionTail","yCaptionTail","xLabelsInclined","xKeys","step","labelsVisible","MIN_STEP_FOR_VISIBLE_LABELS","firstLabel","yLabelsInclined","yKeys","lastLabel"],"mappings":";AAKO,SAASA,EACZC,GACAC,GACAC,GACAC,GAC4C;AAC5C,QAAM,EAAC,SAAAC,GAAS,SAAAC,EAAAA,IAAWH,EAAa,MAClCI,IAAeN,EAAY,cAAc,MAAO,KAAK,IACrDO,IAAeP,EAAY,cAAc,MAAO,KAAK;AAC3D,MAAIQ,IAAe,GACfC,IAAe;AAEnB,QAAMC,IAAkBV,EAAY,gBAAgB;AACpD,MAAIU,GAAiB;AACjB,UAAMC,IAAQT,EAAa,KAAK,OAC1BU,IAAOX,EAAM,GACbY,IAAgBD,IAAOE,GACvBC,IAAaX,EAAQO,EAAM,CAAC,CAAC;AACnCH,QAAe,KAAK;AAAA,MAChBA;AAAAA,OACCE,KAAmBG,IACdV,EAAa,aAAaY,CAAU,IAAI,KAAK,IAAIT,CAAW,IAC5D,KACFM,IAAO;AAAA,IAAA;AAAA,EAEnB;AACA,QAAMI,IAAkBhB,EAAY,gBAAgB;AACpD,MAAIgB,GAAiB;AACjB,UAAMC,IAAQf,EAAa,KAAK;AAChC,QAAIe,EAAM,QAAQ;AACd,YAAML,IAAOX,EAAM,GACbY,IAAgBD,IAAOE,GACvBI,IAAYb,EAAQY,EAAMA,EAAM,SAAS,CAAC,CAAC;AACjDR,MAAAA,IAAe,KAAK;AAAA,QAChBA;AAAAA,SACCO,KAAmBH,IACdV,EAAa,aAAae,CAAS,IAAI,KAAK,IAAIX,CAAW,IAC3D,KACNK,IAAO;AAAA,MAAA;AAAA,IAEf;AAAA,EACJ;AACA,SAAO,EAAC,cAAAJ,GAAc,cAAAC,EAAAA;AAC1B;","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"Legend.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/common/Legend.tsx"],"sourcesContent":["import {BLACK} from '../constants';\nimport type {LegendItemDiscreteMultiAes, LegendItemGradient} from './types';\nimport type {LegendData} from './types';\nimport {getPointShape} from '../utils/getPointShape';\nimport type {DotAesItem} from './types';\nimport React from 'react';\nimport type { AesItem, LineShape } from '../types';\nimport {color} from 'd3-color';\n\nconst LEGEND_ITEM_SIZE = 12;\nconst TITLE_POSITION = -12;\nconst COLOR_ITEM_WIDTH_C = 14;\n\ninterface LegendProps {\n legendData: LegendData;\n}\n\nfunction getLineShapePath(lineShape:LineShape|null = null):string {\n if (lineShape === 'dashed') {\n return 'M1 11.25H6V12.75H1V11.25ZM9.5 11.25H14.5V12.75H9.5V11.25ZM18 11.25H23V12.75H18V11.25Z';\n }\n if (lineShape === 'dotted') {\n return 'M2.75 11.25H1.25V12.75H2.75V11.25Z M11.25 11.25H12.75V12.75H11.25V11.25Z M22.75 11.25H21.25V12.75H22.75V11.25Z M7.75 11.25H6.25V12.75H7.75V11.25Z M16.25 11.25H17.75V12.75H16.25V11.25Z';\n }\n if (lineShape === 'longdash') {\n return 'M1 11.25H10V12.75H1V11.25ZM14 11.25H23V12.75H14V11.25Z';\n }\n if (lineShape === 'dotdash') {\n return 'M1 11.25H2.5V12.75H1V11.25ZM17 12.75H7V11.25H17V12.75ZM21.5 12.75V11.25H23V12.75H21.5Z';\n }\n if (lineShape === 'twodash') {\n return 'M1 11.25H4V12.75H1V11.25ZM17.0261 12.75H7V11.25H17.0261V12.75ZM20 12.75V11.25H23V12.75H20Z';\n }\n return 'M1 11.25H23V12.75H1V11.25Z';\n}\n\nconst POINT_SIZE = 3;\nconst LINE_WIDTH = 24;\n\nfunction getAesItemStroke(fillColor?:string, lineColor?:string) {\n if (fillColor === 'transparent') {\n return BLACK;\n }\n // black border for white square if fill color is white\n const fill = color(fillColor ?? lineColor ?? '');\n if (fill && fill.formatHex() === '#ffffff') {\n return BLACK;\n }\n return fillColor ?? lineColor;\n}\nfunction AesLegendItem({ aes, label, usedAes }: { aes: AesItem; label: string, usedAes: LegendItemDiscreteMultiAes['usedAes'] }) {\n const needRenderLine = usedAes.lineShape;\n const needRenderDot = usedAes.dotShape;\n const needRenderRect = usedAes.fillColor ||\n (usedAes.lineColor && !usedAes.lineShape) ||\n (usedAes.dotFill && !usedAes.dotShape);\n\n const shape = needRenderDot ? getPointShape(\n aes.dotShape ?? '21',\n POINT_SIZE,\n needRenderRect ? BLACK : aes.dotFill ?? BLACK\n ) : null;\n\n const lineOffset = (needRenderDot && needRenderLine ? 2 * LEGEND_ITEM_SIZE : 0 ) - 6;\n const textOffset = needRenderLine ? lineOffset + LINE_WIDTH + 8 : LEGEND_ITEM_SIZE + 8;\n return (\n <g>\n {needRenderRect && (\n <rect\n width={LEGEND_ITEM_SIZE}\n height={LEGEND_ITEM_SIZE}\n stroke={getAesItemStroke(aes.fillColor, aes.lineColor)}\n fill={aes.fillColor ?? aes.lineColor}\n rx=\"1\"\n ry=\"1\"\n />\n )}\n {needRenderDot && <g transform={`translate(${LEGEND_ITEM_SIZE / 2},${LEGEND_ITEM_SIZE / 2})`}>\n {shape}\n </g>}\n {needRenderLine && (\n <path\n transform={`translate(${lineOffset},-5)`}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d={getLineShapePath(aes.lineShape)}\n fill={aes.lineColor}\n />\n )}\n <text\n x={textOffset}\n y={LEGEND_ITEM_SIZE / 2}\n dominantBaseline=\"central\"\n fontWeight={500}\n >\n {label}\n </text>\n </g>\n );\n}\n\nfunction DotAesItemElement({aes, label}: {aes: DotAesItem; label: string}) {\n const shape = getPointShape(aes.shape, aes.size, aes.color);\n\n return (\n <g>\n <g transform={`translate(${LEGEND_ITEM_SIZE / 2},${LEGEND_ITEM_SIZE / 2})`}>{shape}</g>\n <text x={LEGEND_ITEM_SIZE + 8} y={LEGEND_ITEM_SIZE / 2} dominantBaseline=\"central\" fontWeight={500}>\n {label}\n </text>\n </g>\n );\n}\n\nexport function Legend({legendData}: LegendProps) {\n const debug = false;\n const continuousItems= legendData.items.filter((item) => item.type === 'continuous') as LegendItemGradient[];\n return (\n <g>\n <defs>\n {continuousItems.map(item => (\n <linearGradient key={item.id} id={item.id} gradientTransform=\"rotate(90)\">\n {item.scale.domain().reverse().map(value => {\n const domain = item.scale.domain();\n const range = domain[domain.length - 1] - domain[0];\n const percent = range > 0 ? 100 - (value - domain[0]) / range * 100 : 0;\n return (\n <stop\n key={value}\n offset={`${percent}%`}\n stopColor={item.scale(value)}\n />\n );\n })}\n </linearGradient>\n ))}\n </defs>\n {legendData.items.map(item => {\n if (item.type === 'continuous') {\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`}>\n <text fontWeight={500} fontSize=\"14px\" y={TITLE_POSITION}>{item.title}</text>\n <rect\n x=\"0\"\n y=\"0\"\n width={COLOR_ITEM_WIDTH_C}\n height={item.height}\n stroke={BLACK}\n fill={`url(#${item.id})`}\n />\n <g transform={`translate(${COLOR_ITEM_WIDTH_C},0)`}>\n {item.values.map(value => {\n const y = item.tickPositionScale(value) ?? 0;\n return (\n <g key={value} transform={`translate(0,${y})`}>\n <line x1=\"0\" x2={-4} stroke={BLACK} />\n <text x={8} y={4}>{value}</text>\n </g>\n );\n })}\n </g>\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\"/>}\n </g>\n );\n }\n if (item.type === 'discreteColor') {\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`}>\n <text fontWeight={500} fontSize=\"14px\" y={TITLE_POSITION}>{item.title}</text>\n {item.values.map((value, idx) => {\n return <g key={value} transform={`translate(0, ${idx * (LEGEND_ITEM_SIZE + 4)})`}>\n <rect\n x=\"0\"\n y=\"0\"\n width={LEGEND_ITEM_SIZE}\n height={LEGEND_ITEM_SIZE}\n fill={item.scale(value)}\n rx=\"1\"\n ry=\"1\"\n stroke={BLACK}\n />\n <text x={LEGEND_ITEM_SIZE + 8} y={10}>{item.labels[value] ?? value}</text>\n </g>;\n })}\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\"/>}\n </g>\n );\n }\n if (item.type === 'discreteMulti') {\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`} fontSize=\"14px\" fontWeight={500}>\n <text fontWeight={600} y={TITLE_POSITION}>\n {item.title}\n </text>\n {item.values.map((value, idx) => {\n return (\n <g key={value} transform={`translate(0, ${idx * (LEGEND_ITEM_SIZE + 4)})`}>\n <AesLegendItem\n aes={item.scale(value)}\n label={item.labels[value]}\n usedAes={item.usedAes}\n />\n </g>\n );\n })}\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\" />}\n </g>\n );\n }\n if (item.type === 'dots') {\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`} fontSize=\"14px\" fontWeight={500}>\n <text fontWeight={500} y={TITLE_POSITION}>\n {item.title}\n </text>\n {item.values.map((value, idx) => {\n return (\n <g key={value} transform={`translate(0, ${idx * (LEGEND_ITEM_SIZE + 4)})`}>\n <DotAesItemElement aes={item.scale(value)} label={item.labels[value]} />\n </g>\n );\n })}\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\" />}\n </g>\n );\n }\n if (item.type === 'size') {\n const size = item.height / item.values.length;\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`} fontSize=\"14px\" fontWeight={500}>\n <text fontWeight={500} y={TITLE_POSITION}>\n {item.title}\n </text>\n {item.values.map((value, idx) => {\n const r = item.scale(value);\n return (\n <g key={value} transform={`translate(0, ${idx * size})`}>\n <circle r={r} cx={size / 2} cy={size / 2} fill={BLACK}/>\n <text x={size + 4} y={size / 2} alignmentBaseline=\"central\">{item.labels[value]}</text>\n </g>\n );\n })}\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\" />}\n </g>\n );\n }\n })}\n </g>\n );\n}\n"],"names":["LEGEND_ITEM_SIZE","TITLE_POSITION","COLOR_ITEM_WIDTH_C","getLineShapePath","lineShape","POINT_SIZE","LINE_WIDTH","getAesItemStroke","fillColor","lineColor","BLACK","fill","color","AesLegendItem","aes","label","usedAes","needRenderLine","needRenderDot","needRenderRect","shape","getPointShape","lineOffset","textOffset","n","jsx","DotAesItemElement","Legend","legendData","continuousItems","item","t","value","domain","range","percent","jsxs","y","idx","size","r"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"Legend.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/common/Legend.tsx"],"sourcesContent":["import { color } from 'd3-color';\nimport { BLACK } from '../constants';\nimport type { AesItem, LineShape } from '../types';\nimport { getPointShape } from '../utils/getPointShape';\nimport type { DotAesItem, LegendData, LegendItemDiscreteMultiAes, LegendItemGradient } from './types';\n\nconst LEGEND_ITEM_SIZE = 12;\nconst TITLE_POSITION = -12;\nconst COLOR_ITEM_WIDTH_C = 14;\n\ninterface LegendProps {\n legendData: LegendData;\n}\n\nfunction getLineShapePath(lineShape:LineShape|null = null):string {\n if (lineShape === 'dashed') {\n return 'M1 11.25H6V12.75H1V11.25ZM9.5 11.25H14.5V12.75H9.5V11.25ZM18 11.25H23V12.75H18V11.25Z';\n }\n if (lineShape === 'dotted') {\n return 'M2.75 11.25H1.25V12.75H2.75V11.25Z M11.25 11.25H12.75V12.75H11.25V11.25Z M22.75 11.25H21.25V12.75H22.75V11.25Z M7.75 11.25H6.25V12.75H7.75V11.25Z M16.25 11.25H17.75V12.75H16.25V11.25Z';\n }\n if (lineShape === 'longdash') {\n return 'M1 11.25H10V12.75H1V11.25ZM14 11.25H23V12.75H14V11.25Z';\n }\n if (lineShape === 'dotdash') {\n return 'M1 11.25H2.5V12.75H1V11.25ZM17 12.75H7V11.25H17V12.75ZM21.5 12.75V11.25H23V12.75H21.5Z';\n }\n if (lineShape === 'twodash') {\n return 'M1 11.25H4V12.75H1V11.25ZM17.0261 12.75H7V11.25H17.0261V12.75ZM20 12.75V11.25H23V12.75H20Z';\n }\n return 'M1 11.25H23V12.75H1V11.25Z';\n}\n\nconst POINT_SIZE = 3;\nconst LINE_WIDTH = 24;\n\nfunction getAesItemStroke(fillColor?:string, lineColor?:string) {\n if (fillColor === 'transparent') {\n return BLACK;\n }\n // black border for white square if fill color is white\n const fill = color(fillColor ?? lineColor ?? '');\n if (fill && fill.formatHex() === '#ffffff') {\n return BLACK;\n }\n return fillColor ?? lineColor;\n}\nfunction AesLegendItem({ aes, label, usedAes }: { aes: AesItem; label: string, usedAes: LegendItemDiscreteMultiAes['usedAes'] }) {\n const needRenderLine = usedAes.lineShape;\n const needRenderDot = usedAes.dotShape;\n const needRenderRect = usedAes.fillColor ||\n (usedAes.lineColor && !usedAes.lineShape) ||\n (usedAes.dotFill && !usedAes.dotShape);\n\n const shape = needRenderDot ? getPointShape(\n aes.dotShape ?? '21',\n POINT_SIZE,\n needRenderRect ? BLACK : aes.dotFill ?? BLACK\n ) : null;\n\n const lineOffset = (needRenderDot && needRenderLine ? 2 * LEGEND_ITEM_SIZE : 0 ) - 6;\n const textOffset = needRenderLine ? lineOffset + LINE_WIDTH + 8 : LEGEND_ITEM_SIZE + 8;\n return (\n <g>\n {needRenderRect && (\n <rect\n width={LEGEND_ITEM_SIZE}\n height={LEGEND_ITEM_SIZE}\n stroke={getAesItemStroke(aes.fillColor, aes.lineColor)}\n fill={aes.fillColor ?? aes.lineColor}\n rx=\"1\"\n ry=\"1\"\n />\n )}\n {needRenderDot && <g transform={`translate(${LEGEND_ITEM_SIZE / 2},${LEGEND_ITEM_SIZE / 2})`}>\n {shape}\n </g>}\n {needRenderLine && (\n <path\n transform={`translate(${lineOffset},-5)`}\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d={getLineShapePath(aes.lineShape)}\n fill={aes.lineColor}\n />\n )}\n <text\n x={textOffset}\n y={LEGEND_ITEM_SIZE / 2}\n dominantBaseline=\"central\"\n fontWeight={500}\n >\n {label}\n </text>\n </g>\n );\n}\n\nfunction DotAesItemElement({aes, label}: {aes: DotAesItem; label: string}) {\n const shape = getPointShape(aes.shape, aes.size, aes.color);\n\n return (\n <g>\n <g transform={`translate(${LEGEND_ITEM_SIZE / 2},${LEGEND_ITEM_SIZE / 2})`}>{shape}</g>\n <text x={LEGEND_ITEM_SIZE + 8} y={LEGEND_ITEM_SIZE / 2} dominantBaseline=\"central\" fontWeight={500}>\n {label}\n </text>\n </g>\n );\n}\n\nexport function Legend({legendData}: LegendProps) {\n const debug = false;\n const continuousItems= legendData.items.filter((item) => item.type === 'continuous') as LegendItemGradient[];\n return (\n <g>\n <defs>\n {continuousItems.map(item => (\n <linearGradient key={item.id} id={item.id} gradientTransform=\"rotate(90)\">\n {item.scale.domain().reverse().map(value => {\n const domain = item.scale.domain();\n const range = domain[domain.length - 1] - domain[0];\n const percent = range > 0 ? 100 - (value - domain[0]) / range * 100 : 0;\n return (\n <stop\n key={value}\n offset={`${percent}%`}\n stopColor={item.scale(value)}\n />\n );\n })}\n </linearGradient>\n ))}\n </defs>\n {legendData.items.map(item => {\n if (item.type === 'continuous') {\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`}>\n <text fontWeight={500} fontSize=\"14px\" y={TITLE_POSITION}>{item.title}</text>\n <rect\n x=\"0\"\n y=\"0\"\n width={COLOR_ITEM_WIDTH_C}\n height={item.height}\n stroke={BLACK}\n fill={`url(#${item.id})`}\n />\n <g transform={`translate(${COLOR_ITEM_WIDTH_C},0)`}>\n {item.values.map(value => {\n const y = item.tickPositionScale(value) ?? 0;\n return (\n <g key={value} transform={`translate(0,${y})`}>\n <line x1=\"0\" x2={-4} stroke={BLACK} />\n <text x={8} y={4}>{value}</text>\n </g>\n );\n })}\n </g>\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\"/>}\n </g>\n );\n }\n if (item.type === 'discreteColor') {\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`}>\n <text fontWeight={500} fontSize=\"14px\" y={TITLE_POSITION}>{item.title}</text>\n {item.values.map((value, idx) => {\n return <g key={value} transform={`translate(0, ${idx * (LEGEND_ITEM_SIZE + 4)})`}>\n <rect\n x=\"0\"\n y=\"0\"\n width={LEGEND_ITEM_SIZE}\n height={LEGEND_ITEM_SIZE}\n fill={item.scale(value)}\n rx=\"1\"\n ry=\"1\"\n stroke={BLACK}\n />\n <text x={LEGEND_ITEM_SIZE + 8} y={10}>{item.labels[value] ?? value}</text>\n </g>;\n })}\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\"/>}\n </g>\n );\n }\n if (item.type === 'discreteMulti') {\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`} fontSize=\"14px\" fontWeight={500}>\n <text fontWeight={600} y={TITLE_POSITION}>\n {item.title}\n </text>\n {item.values.map((value, idx) => {\n return (\n <g key={value} transform={`translate(0, ${idx * (LEGEND_ITEM_SIZE + 4)})`}>\n <AesLegendItem\n aes={item.scale(value)}\n label={item.labels[value]}\n usedAes={item.usedAes}\n />\n </g>\n );\n })}\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\" />}\n </g>\n );\n }\n if (item.type === 'dots') {\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`} fontSize=\"14px\" fontWeight={500}>\n <text fontWeight={500} y={TITLE_POSITION}>\n {item.title}\n </text>\n {item.values.map((value, idx) => {\n return (\n <g key={value} transform={`translate(0, ${idx * (LEGEND_ITEM_SIZE + 4)})`}>\n <DotAesItemElement aes={item.scale(value)} label={item.labels[value]} />\n </g>\n );\n })}\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\" />}\n </g>\n );\n }\n if (item.type === 'size') {\n const size = item.height / item.values.length;\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`} fontSize=\"14px\" fontWeight={500}>\n <text fontWeight={500} y={TITLE_POSITION}>\n {item.title}\n </text>\n {item.values.map((value, idx) => {\n const r = item.scale(value);\n return (\n <g key={value} transform={`translate(0, ${idx * size})`}>\n <circle r={r} cx={size / 2} cy={size / 2} fill={BLACK}/>\n <text x={size + 4} y={size / 2} alignmentBaseline=\"central\">{item.labels[value]}</text>\n </g>\n );\n })}\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\" />}\n </g>\n );\n }\n })}\n </g>\n );\n}\n"],"names":["LEGEND_ITEM_SIZE","TITLE_POSITION","COLOR_ITEM_WIDTH_C","getLineShapePath","lineShape","POINT_SIZE","LINE_WIDTH","getAesItemStroke","fillColor","lineColor","BLACK","fill","color","AesLegendItem","aes","label","usedAes","needRenderLine","needRenderDot","needRenderRect","shape","getPointShape","lineOffset","textOffset","n","jsx","DotAesItemElement","Legend","legendData","continuousItems","item","t","value","domain","range","percent","jsxs","y","idx","size","r"],"mappings":"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","x_google_ignoreList":[0]}
@@ -3,7 +3,7 @@ import { r as $ } from "../_virtual/index.js";
3
3
  import { r as B } from "../node_modules/react-dom/index.js";
4
4
  import { BLACK as F } from "../constants.js";
5
5
  import { exhaustive as P } from "../utils/index.js";
6
- import { TextMeasurer as A } from "../utils/TextMeasurer.js";
6
+ import { TextMeasurer as A } from "../utils/TextMeasurer/TextMeasurer.js";
7
7
  const V = 8, Q = 12, w = 20, i = 6, s = 5, O = 8, C = 16, b = 8, q = C * 2 + b + 16, R = "#CFD1DB", S = "#fff", z = "miplots-tooltip";
8
8
  function K(r) {
9
9
  return r.length * w + 2 * V;
@@ -113,8 +113,8 @@ function ae(r = () => {
113
113
  u(null), n.current = !1, c.current && (clearTimeout(c.current), c.current = null), r(!1);
114
114
  }, f = () => {
115
115
  o.current = !1, t(!1), g();
116
- }, h = $.useCallback((p, m) => {
117
- o.current || (u(p), n.current = !0, x.current = m ?? "null", c.current && clearTimeout(c.current), c.current = setTimeout(() => {
116
+ }, m = $.useCallback((p, h) => {
117
+ o.current || (u(p), n.current = !0, x.current = h ?? "null", c.current && clearTimeout(c.current), c.current = setTimeout(() => {
118
118
  r(!0);
119
119
  }, 2e3));
120
120
  }, []), d = $.useCallback(() => {
@@ -124,21 +124,21 @@ function ae(r = () => {
124
124
  function p(L) {
125
125
  n.current && L.key === "Enter" && (o.current = !0, t(!0), c.current && (clearTimeout(c.current), c.current = null), r(!1));
126
126
  }
127
- function m(L) {
127
+ function h(L) {
128
128
  if (!o.current)
129
129
  return;
130
130
  const j = document.querySelector(`.${z}`), H = L.target;
131
131
  j && H && j.contains(H) || f();
132
132
  }
133
- return document.addEventListener("keydown", p), document.addEventListener("click", m), () => {
134
- document.removeEventListener("keydown", p), document.removeEventListener("click", m);
133
+ return document.addEventListener("keydown", p), document.addEventListener("click", h), () => {
134
+ document.removeEventListener("keydown", p), document.removeEventListener("click", h);
135
135
  };
136
136
  }, []), {
137
137
  active: l !== null,
138
138
  currentFacet: x.current,
139
139
  fixed: e,
140
140
  selectedData: l,
141
- onMouseEnter: h,
141
+ onMouseEnter: m,
142
142
  onMouseLeave: d,
143
143
  onClose: v
144
144
  };
@@ -156,7 +156,7 @@ function ce({
156
156
  offset: c = O,
157
157
  horizontal: g = !0
158
158
  }) {
159
- const f = U(r, t), h = K(r), d = X(f, h, l, u, c, o, g), v = te(d, o, l, f), p = re(d, o, u, h), m = `translate(${f - C - Q},${V})`, L = `translate(${f - C * 2 - b - Q},${V})`, [j, H] = $.useState(!1), [D, y] = $.useState(!1), [Z, k] = $.useState(!1);
159
+ const f = U(r, t), m = K(r), d = X(f, m, l, u, c, o, g), v = te(d, o, l, f), p = re(d, o, u, m), h = `translate(${f - C - Q},${V})`, L = `translate(${f - C * 2 - b - Q},${V})`, [j, H] = $.useState(!1), [D, y] = $.useState(!1), [Z, k] = $.useState(!1);
160
160
  function _() {
161
161
  var M;
162
162
  (M = window == null ? void 0 : window.navigator) == null || M.clipboard.writeText(r.join(`
@@ -178,7 +178,7 @@ function ce({
178
178
  "path",
179
179
  {
180
180
  transform: ee(d, c),
181
- d: N(f, h, d, v, p),
181
+ d: N(f, m, d, v, p),
182
182
  fill: F
183
183
  }
184
184
  ),
@@ -188,7 +188,7 @@ function ce({
188
188
  fontSize: "14px",
189
189
  fontFamily: "Manrope",
190
190
  fill: "white",
191
- transform: Y(d, f, h, c, v, p),
191
+ transform: Y(d, f, m, c, v, p),
192
192
  children: [
193
193
  r.map((M, E) => /* @__PURE__ */ a.jsx(
194
194
  "text",
@@ -200,7 +200,7 @@ function ce({
200
200
  },
201
201
  E
202
202
  )),
203
- t && /* @__PURE__ */ a.jsxs("g", { transform: m, children: [
203
+ t && /* @__PURE__ */ a.jsxs("g", { transform: h, children: [
204
204
  /* @__PURE__ */ a.jsx(
205
205
  "path",
206
206
  {