@milaboratories/graph-maker 1.1.138 → 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 (219) hide show
  1. package/dist/GraphMaker/components/LassoControls/index.vue.js +15 -13
  2. package/dist/GraphMaker/components/LassoControls/index.vue.js.map +1 -1
  3. package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +9 -3
  4. package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts.map +1 -1
  5. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDendroSettings.d.ts +17 -2
  6. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDendroSettings.d.ts.map +1 -1
  7. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +13 -4
  8. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts.map +1 -1
  9. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +28 -7
  10. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts.map +1 -1
  11. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.d.ts +6 -2
  12. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.d.ts.map +1 -1
  13. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts +16 -2
  14. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts.map +1 -1
  15. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts +14 -2
  16. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts.map +1 -1
  17. package/dist/node_modules/@milaboratories/miplots4/dist/DataFrame.js +95 -72
  18. package/dist/node_modules/@milaboratories/miplots4/dist/DataFrame.js.map +1 -1
  19. package/dist/node_modules/@milaboratories/miplots4/dist/MiPlots.js +1 -1
  20. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/ChartRenderer.js +124 -122
  21. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/ChartRenderer.js.map +1 -1
  22. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/Chart.js +72 -91
  23. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/Chart.js.map +1 -1
  24. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/ChartsGroup.js +43 -41
  25. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/ChartsGroup.js.map +1 -1
  26. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCellTooltip.js +28 -0
  27. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCellTooltip.js.map +1 -0
  28. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getGroupedCellsData.js +94 -0
  29. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getGroupedCellsData.js.map +1 -0
  30. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/index.js +42 -38
  31. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/index.js.map +1 -1
  32. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/utils/calculateCaptionTails.js.map +1 -1
  33. package/dist/node_modules/@milaboratories/miplots4/dist/common/Legend.js.map +1 -1
  34. package/dist/node_modules/@milaboratories/miplots4/dist/common/Tooltip.js +11 -11
  35. package/dist/node_modules/@milaboratories/miplots4/dist/common/Tooltip.js.map +1 -1
  36. package/dist/node_modules/@milaboratories/miplots4/dist/common/useDataFrame.js +20 -0
  37. package/dist/node_modules/@milaboratories/miplots4/dist/common/useDataFrame.js.map +1 -0
  38. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/ChartRenderer.js +181 -181
  39. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/ChartRenderer.js.map +1 -1
  40. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/DendroSettingsImpl.js +2 -2
  41. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/DendroSettingsImpl.js.map +1 -1
  42. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Chart.js +45 -45
  43. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Chart.js.map +1 -1
  44. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Heatmap.js +27 -27
  45. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Heatmap.js.map +1 -1
  46. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Legend.js.map +1 -1
  47. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/LinksGroup.js +18 -18
  48. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/LinksGroup.js.map +1 -1
  49. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/NodesGroup.js +36 -36
  50. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/NodesGroup.js.map +1 -1
  51. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/getHeatmapData.js +45 -41
  52. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/getHeatmapData.js.map +1 -1
  53. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/getHierarchyData.js +33 -33
  54. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/getHierarchyData.js.map +1 -1
  55. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/index.js +90 -93
  56. package/dist/node_modules/@milaboratories/miplots4/dist/dendro/index.js.map +1 -1
  57. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/ChartRenderer.js +200 -199
  58. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/ChartRenderer.js.map +1 -1
  59. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/DiscreteSettingsImpl.js +17 -17
  60. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/DiscreteSettingsImpl.js.map +1 -1
  61. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/layers/BoxElement.js.map +1 -1
  62. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js +102 -99
  63. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js.map +1 -1
  64. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/bar.js +31 -36
  65. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/bar.js.map +1 -1
  66. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/binnedDots.js +62 -74
  67. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/binnedDots.js.map +1 -1
  68. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/boxes.js +52 -53
  69. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/boxes.js.map +1 -1
  70. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/dots.js +32 -32
  71. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/dots.js.map +1 -1
  72. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/lines.js +7 -6
  73. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/lines.js.map +1 -1
  74. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/logo.js +23 -23
  75. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/logo.js.map +1 -1
  76. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/pairedPoints.js +63 -63
  77. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/pairedPoints.js.map +1 -1
  78. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/sina.js +60 -64
  79. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/sina.js.map +1 -1
  80. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/stackedBar.js +23 -23
  81. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/stackedBar.js.map +1 -1
  82. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/getOutliersBounds.js +5 -5
  83. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/getOutliersBounds.js.map +1 -1
  84. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/splitTextByWidth.js +13 -13
  85. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/splitTextByWidth.js.map +1 -1
  86. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/ChartRenderer.js +258 -256
  87. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/ChartRenderer.js.map +1 -1
  88. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/HeatmapSettingsImpl.js +1 -1
  89. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/HeatmapSettingsImpl.js.map +1 -1
  90. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/Annotation.js +45 -44
  91. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/Annotation.js.map +1 -1
  92. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js +107 -106
  93. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js.map +1 -1
  94. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/ChartsGroup.js +18 -18
  95. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/ChartsGroup.js.map +1 -1
  96. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getCells.js +99 -95
  97. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getCells.js.map +1 -1
  98. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js +30 -29
  99. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js.map +1 -1
  100. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateAnnotationTitleSizes.js +1 -1
  101. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateAnnotationTitleSizes.js.map +1 -1
  102. package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateCaptionTails.js.map +1 -1
  103. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/ChartRenderer.js +143 -142
  104. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/ChartRenderer.js.map +1 -1
  105. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/HistogramSettingsImpl.js.map +1 -1
  106. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/components/Chart.js +30 -30
  107. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/components/Chart.js.map +1 -1
  108. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/components/ChartsGroup.js +7 -7
  109. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/getHistogramData.js +53 -54
  110. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/getHistogramData.js.map +1 -1
  111. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/index.js +59 -55
  112. package/dist/node_modules/@milaboratories/miplots4/dist/histogram/index.js.map +1 -1
  113. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/@d3fc/d3fc-axis/src/axisBase.js +7 -7
  114. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-array/src/min.js +6 -12
  115. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-array/src/min.js.map +1 -1
  116. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-shape/src/line.js.map +1 -1
  117. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/kdbush/index.js +148 -0
  118. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/kdbush/index.js.map +1 -0
  119. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ChartRenderer.js +172 -168
  120. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ChartRenderer.js.map +1 -1
  121. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ScatterplotSettingsImpl.js +26 -26
  122. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ScatterplotSettingsImpl.js.map +1 -1
  123. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Chart.js +11 -11
  124. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartAxisTitles.js +30 -29
  125. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartAxisTitles.js.map +1 -1
  126. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartLayersData.js +135 -153
  127. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartLayersData.js.map +1 -1
  128. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTooltip.js +35 -32
  129. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTooltip.js.map +1 -1
  130. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTrendsData.js +27 -27
  131. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTrendsData.js.map +1 -1
  132. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartsGroup.js +14 -14
  133. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/constants.js.map +1 -1
  134. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/dots.js +24 -22
  135. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/dots.js.map +1 -1
  136. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/getLayersData.js +11 -14
  137. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/getLayersData.js.map +1 -1
  138. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js +57 -58
  139. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js.map +1 -1
  140. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/linearRegression.js +85 -83
  141. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/linearRegression.js.map +1 -1
  142. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createAesGetter.js +20 -20
  143. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createAesGetter.js.map +1 -1
  144. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createLegendInfo.js +44 -37
  145. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createLegendInfo.js.map +1 -1
  146. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/formatColumnValue.js +11 -0
  147. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/formatColumnValue.js.map +1 -0
  148. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/getVisibleLabels.js +46 -56
  149. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/getVisibleLabels.js.map +1 -1
  150. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/ChartRenderer.js +223 -205
  151. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/ChartRenderer.js.map +1 -1
  152. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/SettingsImpl.js +22 -22
  153. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/SettingsImpl.js.map +1 -1
  154. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/colors.js +42 -0
  155. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/colors.js.map +1 -0
  156. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/LowerSVG.js +84 -81
  157. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/LowerSVG.js.map +1 -1
  158. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/SVGLayer.js +11 -11
  159. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/UpperSVG.js +15 -14
  160. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/UpperSVG.js.map +1 -1
  161. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/index.js +89 -114
  162. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/index.js.map +1 -1
  163. package/dist/node_modules/@milaboratories/miplots4/dist/types/common.js +3 -1
  164. package/dist/node_modules/@milaboratories/miplots4/dist/types/common.js.map +1 -1
  165. package/dist/node_modules/@milaboratories/miplots4/dist/types/dendro.js +1 -1
  166. package/dist/node_modules/@milaboratories/miplots4/dist/types/dendro.js.map +1 -1
  167. package/dist/node_modules/@milaboratories/miplots4/dist/types/discrete.js +1 -1
  168. package/dist/node_modules/@milaboratories/miplots4/dist/types/discrete.js.map +1 -1
  169. package/dist/node_modules/@milaboratories/miplots4/dist/types/heatmap.js +1 -1
  170. package/dist/node_modules/@milaboratories/miplots4/dist/types/heatmap.js.map +1 -1
  171. package/dist/node_modules/@milaboratories/miplots4/dist/types/histogram.js +1 -1
  172. package/dist/node_modules/@milaboratories/miplots4/dist/types/histogram.js.map +1 -1
  173. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot-umap.js +1 -1
  174. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot-umap.js.map +1 -1
  175. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot.js +4 -4
  176. package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot.js.map +1 -1
  177. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer/TextMeasurer.js +39 -0
  178. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer/TextMeasurer.js.map +1 -0
  179. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer/charToWidth.json.js +101 -0
  180. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer/charToWidth.json.js.map +1 -0
  181. package/dist/node_modules/@milaboratories/miplots4/dist/utils/arrangeLegendParts.js +4 -4
  182. package/dist/node_modules/@milaboratories/miplots4/dist/utils/arrangeLegendParts.js.map +1 -1
  183. package/dist/node_modules/@milaboratories/miplots4/dist/utils/getLegendWidth.js +3 -3
  184. package/dist/node_modules/@milaboratories/miplots4/dist/utils/getLegendWidth.js.map +1 -1
  185. package/dist/node_modules/@milaboratories/pf-plots/dist/index.js +1031 -1023
  186. package/dist/node_modules/@milaboratories/pf-plots/dist/index.js.map +1 -1
  187. package/package.json +3 -3
  188. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCells.js +0 -91
  189. package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCells.js.map +0 -1
  190. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/add.js +0 -30
  191. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/add.js.map +0 -1
  192. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/cover.js +0 -29
  193. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/cover.js.map +0 -1
  194. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/data.js +0 -12
  195. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/data.js.map +0 -1
  196. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/extent.js +0 -7
  197. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/extent.js.map +0 -1
  198. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/find.js +0 -26
  199. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/find.js.map +0 -1
  200. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/quad.js +0 -7
  201. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/quad.js.map +0 -1
  202. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/quadtree.js +0 -51
  203. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/quadtree.js.map +0 -1
  204. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/remove.js +0 -21
  205. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/remove.js.map +0 -1
  206. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/root.js +0 -7
  207. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/root.js.map +0 -1
  208. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/size.js +0 -12
  209. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/size.js.map +0 -1
  210. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/visit.js +0 -14
  211. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/visit.js.map +0 -1
  212. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/visitAfter.js +0 -19
  213. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/visitAfter.js.map +0 -1
  214. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/x.js +0 -11
  215. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/x.js.map +0 -1
  216. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/y.js +0 -11
  217. package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/y.js.map +0 -1
  218. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer.js +0 -24
  219. package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer.js.map +0 -1
@@ -1,44 +1,47 @@
1
1
  import { j as e } from "../../node_modules/react/jsx-runtime.js";
2
- import { ChartsTitle as B } from "../../common/ChartsTitle.js";
3
- import { ContinuousGrid as G } from "../../common/ContinuousGrid.js";
4
- import X from "../../common/fonts.js";
5
- import { Legend as Y } from "../../common/Legend.js";
6
- import { Tooltip as N } from "../../common/Tooltip.js";
7
- import { BLACK as O } from "../../constants.js";
8
- import { DEFAULT_TICKS_SIZE as D, TITLE_LINE as g, LEGEND_OFFSET as M } from "../constants.js";
9
- import { Axis as E } from "../../scatterplot/components/Axis.js";
10
- import { numberFormat as S } from "../../utils/numberFormat.js";
11
- import U, { r as u } from "../../_virtual/index.js";
12
- import V from "../../node_modules/d3-shape/src/line.js";
13
- import Z from "../../node_modules/d3-shape/src/curve/basis.js";
14
- function q(i, n, x = []) {
15
- const d = i.data, r = [`x: ${S(i.x)}`, `y: ${S(i.y)}`];
16
- n != null && n.label && r.unshift(`${n.label}: ${d[n.label]}`);
17
- for (const t of x)
18
- r.push(`${t.label}: ${d[t.valueLabels ?? t.value]}`);
19
- return r;
2
+ import _, { r as g } from "../../_virtual/index.js";
3
+ import { ChartsTitle as G } from "../../common/ChartsTitle.js";
4
+ import { ContinuousGrid as X } from "../../common/ContinuousGrid.js";
5
+ import Y from "../../common/fonts.js";
6
+ import { Legend as N } from "../../common/Legend.js";
7
+ import { Tooltip as O } from "../../common/Tooltip.js";
8
+ import { useDataFrame as M } from "../../common/useDataFrame.js";
9
+ import { BLACK as U } from "../../constants.js";
10
+ import { Axis as D } from "../../scatterplot/components/Axis.js";
11
+ import { formatColumnValue as V } from "../../scatterplot/utils/formatColumnValue.js";
12
+ import { DEFAULT_TICKS_SIZE as C, TITLE_LINE as u, LEGEND_OFFSET as Z } from "../constants.js";
13
+ import q from "../../node_modules/d3-shape/src/line.js";
14
+ import J from "../../node_modules/d3-shape/src/curve/basis.js";
15
+ import { format as Q } from "../../node_modules/d3-format/src/defaultLocale.js";
16
+ function R(o, h, m = []) {
17
+ const f = [];
18
+ for (const i of m) {
19
+ const t = i != null && i.format ? Q(i.format) : void 0;
20
+ f.push(`${i.label}: ${V(o, h.idx, i, t)}`);
21
+ }
22
+ return f;
20
23
  }
21
- function b(i) {
22
- return typeof i == "string" ? i : i.label ?? i.value;
24
+ function E(o) {
25
+ return typeof o == "string" ? o : o.label ?? o.value;
23
26
  }
24
- const C = V().curve(Z);
25
- function J({
26
- scales: i,
27
- chartSettings: n,
28
- mainTitle: x,
29
- keyColumn: d,
30
- margins: r,
27
+ const S = q().curve(J);
28
+ function tt({
29
+ scales: o,
30
+ chartSettings: h,
31
+ mainTitle: m,
32
+ keyColumn: f,
33
+ margins: i,
31
34
  chartSizes: t,
32
35
  container: y,
33
36
  zoomStateKey: j,
34
37
  legendData: H,
35
38
  dotsByGrouping: F,
36
39
  layers: L,
37
- aesGetters: m,
38
- tooltipData: h
40
+ aesGetters: d,
41
+ tooltipData: l
39
42
  }) {
40
- var v;
41
- const { title: $, xAxis: p, yAxis: f, frame: P, legend: A } = n, z = p.showTicks ? D : 0, I = f.showTicks ? D : 0, w = p.title, W = f.title, K = {
43
+ var $;
44
+ const P = M(), { title: v, xAxis: p, yAxis: x, frame: b, legend: A } = h, z = p.showTicks ? C : 0, B = x.showTicks ? C : 0, w = p.title, W = x.title, I = {
42
45
  left: 0,
43
46
  right: t.chartWidth,
44
47
  top: 0,
@@ -46,20 +49,20 @@ function J({
46
49
  };
47
50
  if (!y)
48
51
  return null;
49
- const o = L.find((a) => a.type === "curve"), [k, _] = u.useState([]);
52
+ const r = L.find((a) => a.type === "curve"), [k, K] = g.useState([]);
50
53
  function T() {
51
54
  const a = Object.entries(F).map(([c, s]) => ({
52
55
  key: c,
53
- d: o != null && o.smoothing ? C(s) ?? "" : s.map((l) => `${i.x(l.x)},${i.y(l.y)}`).join(" "),
56
+ d: r != null && r.smoothing ? S(s) ?? "" : s.map((n) => `${o.x(n.x)},${o.y(n.y)}`).join(" "),
54
57
  dot: s[0]
55
58
  }));
56
- _(a);
59
+ K(a);
57
60
  }
58
- return u.useEffect(() => {
59
- o && (C.x((a) => i.x(a.x)).y((a) => i.y(a.y)), T());
60
- }, [j, t.chartWidth, t.chartHeight]), u.useEffect(() => {
61
- o && T();
62
- }, [o == null ? void 0 : o.smoothing]), /* @__PURE__ */ e.jsxs(
61
+ return g.useEffect(() => {
62
+ r && (S.x((a) => o.x(a.x)).y((a) => o.y(a.y)), T());
63
+ }, [j, t.chartWidth, t.chartHeight]), g.useEffect(() => {
64
+ r && T();
65
+ }, [r == null ? void 0 : r.smoothing]), /* @__PURE__ */ e.jsxs(
63
66
  "svg",
64
67
  {
65
68
  xmlns: "http://www.w3.org/2000/svg",
@@ -68,103 +71,103 @@ function J({
68
71
  height: t.totalHeight,
69
72
  style: { pointerEvents: "none" },
70
73
  children: [
71
- /* @__PURE__ */ e.jsx("defs", { children: X }),
72
- /* @__PURE__ */ e.jsxs("g", { transform: `translate(${r.left},${r.top})`, fontFamily: "Manrope", children: [
74
+ /* @__PURE__ */ e.jsx("defs", { children: Y }),
75
+ /* @__PURE__ */ e.jsxs("g", { transform: `translate(${i.left},${i.top})`, fontFamily: "Manrope", children: [
73
76
  /* @__PURE__ */ e.jsx("clipPath", { id: "viewportClipPath", children: /* @__PURE__ */ e.jsx("rect", { x: "0", y: "0", width: t.chartWidth, height: t.chartHeight }) }),
74
77
  /* @__PURE__ */ e.jsx(
75
- B,
78
+ G,
76
79
  {
77
- title: x,
78
- show: $.show,
79
- position: $.position,
80
- leftPadding: r.left,
81
- rightPadding: r.right,
80
+ title: m,
81
+ show: v.show,
82
+ position: v.position,
83
+ leftPadding: i.left,
84
+ rightPadding: i.right,
82
85
  chartsWidth: t.chartWidth
83
86
  }
84
87
  ),
85
- /* @__PURE__ */ e.jsxs("g", { dominantBaseline: "central", textAnchor: "middle", fontWeight: "500", fontSize: "14px", fill: O, children: [
88
+ /* @__PURE__ */ e.jsxs("g", { dominantBaseline: "central", textAnchor: "middle", fontWeight: "500", fontSize: "14px", fill: U, children: [
86
89
  w && /* @__PURE__ */ e.jsx(
87
90
  "text",
88
91
  {
89
92
  x: t.chartWidth / 2,
90
- y: t.chartHeight + r.bottom - g / 2,
91
- children: b(w)
93
+ y: t.chartHeight + i.bottom - u / 2,
94
+ children: E(w)
92
95
  }
93
96
  ),
94
97
  W && /* @__PURE__ */ e.jsx(
95
98
  "text",
96
99
  {
97
- x: -r.left + g / 2,
100
+ x: -i.left + u / 2,
98
101
  y: t.chartHeight / 2,
99
- transform: `rotate(-90,${-r.left + g / 2},${t.chartHeight / 2})`,
100
- children: b(W)
102
+ transform: `rotate(-90,${-i.left + u / 2},${t.chartHeight / 2})`,
103
+ children: E(W)
101
104
  }
102
105
  )
103
106
  ] }),
104
107
  /* @__PURE__ */ e.jsx(
105
- G,
108
+ X,
106
109
  {
107
110
  width: t.chartWidth,
108
111
  height: t.chartHeight,
109
- scaleX: i.x,
110
- scaleY: i.y,
112
+ scaleX: o.x,
113
+ scaleY: o.y,
111
114
  axisX: p,
112
- axisY: f,
115
+ axisY: x,
113
116
  updatingKey: j,
114
- frameType: P.type
117
+ frameType: b.type
115
118
  }
116
119
  ),
117
- /* @__PURE__ */ e.jsx("g", { transform: `translate(0,${t.chartHeight})`, children: /* @__PURE__ */ e.jsx(E, { scale: i.x, orient: "bottom", tickSize: z }) }),
118
- /* @__PURE__ */ e.jsx("g", { children: /* @__PURE__ */ e.jsx(E, { scale: i.y, orient: "left", tickSize: I }) }),
119
- o && o.smoothing && /* @__PURE__ */ e.jsx("g", { clipPath: "url(#viewportClipPath)", children: k.map(({ key: a, d: c, dot: s }) => {
120
- var l;
120
+ /* @__PURE__ */ e.jsx("g", { transform: `translate(0,${t.chartHeight})`, children: /* @__PURE__ */ e.jsx(D, { scale: o.x, orient: "bottom", tickSize: z }) }),
121
+ /* @__PURE__ */ e.jsx("g", { children: /* @__PURE__ */ e.jsx(D, { scale: o.y, orient: "left", tickSize: B }) }),
122
+ r && r.smoothing && /* @__PURE__ */ e.jsx("g", { clipPath: "url(#viewportClipPath)", children: k.map(({ key: a, d: c, dot: s }) => {
123
+ var n;
121
124
  return /* @__PURE__ */ e.jsx(
122
125
  "path",
123
126
  {
124
127
  d: c,
125
128
  fill: "none",
126
- stroke: m.dotFill(s.data),
127
- strokeWidth: (l = o.aes) == null ? void 0 : l.lineWidth,
128
- strokeDasharray: m.lineType(s.data)
129
+ stroke: d.dotFill(s.idx),
130
+ strokeWidth: (n = r.aes) == null ? void 0 : n.lineWidth,
131
+ strokeDasharray: d.lineType(s.idx)
129
132
  },
130
133
  a
131
134
  );
132
135
  }) }),
133
- o && !o.smoothing && /* @__PURE__ */ e.jsx("g", { clipPath: "url(#viewportClipPath)", children: k.map(({ key: a, d: c, dot: s }) => {
134
- var l;
136
+ r && !r.smoothing && /* @__PURE__ */ e.jsx("g", { clipPath: "url(#viewportClipPath)", children: k.map(({ key: a, d: c, dot: s }) => {
137
+ var n;
135
138
  return /* @__PURE__ */ e.jsx(
136
139
  "polyline",
137
140
  {
138
141
  points: c,
139
142
  fill: "none",
140
- stroke: m.dotFill(s.data),
141
- strokeWidth: (l = o.aes) == null ? void 0 : l.lineWidth,
142
- strokeDasharray: m.lineType(s.data)
143
+ stroke: d.dotFill(s.idx),
144
+ strokeWidth: (n = r.aes) == null ? void 0 : n.lineWidth,
145
+ strokeDasharray: d.lineType(s.idx)
143
146
  },
144
147
  a
145
148
  );
146
149
  }) }),
147
- h.selectedData && /* @__PURE__ */ e.jsx(
148
- N,
150
+ h.tooltips.show && l.selectedData && /* @__PURE__ */ e.jsx(
151
+ O,
149
152
  {
150
- content: q(h.selectedData, d, (v = n.tooltips) == null ? void 0 : v.content),
151
- x: i.x(h.selectedData.x),
152
- y: i.y(h.selectedData.y),
153
+ content: R(P, l.selectedData, ($ = h.tooltips) == null ? void 0 : $.content),
154
+ x: o.x(l.selectedData.x),
155
+ y: o.y(l.selectedData.y),
153
156
  active: !0,
154
- fixed: h.fixed,
155
- sideDistances: K,
157
+ fixed: l.fixed,
158
+ sideDistances: I,
156
159
  container: y,
157
- onClose: h.onClose
160
+ onClose: l.onClose
158
161
  }
159
162
  ),
160
- A.show && /* @__PURE__ */ e.jsx("g", { transform: `translate(${t.chartWidth + M},0)`, children: /* @__PURE__ */ e.jsx(Y, { legendData: H }) })
163
+ A.show && /* @__PURE__ */ e.jsx("g", { transform: `translate(${t.chartWidth + Z},0)`, children: /* @__PURE__ */ e.jsx(N, { legendData: H }) })
161
164
  ] })
162
165
  ]
163
166
  }
164
167
  );
165
168
  }
166
- const dt = U.memo(J);
169
+ const gt = _.memo(tt);
167
170
  export {
168
- dt as default
171
+ gt as default
169
172
  };
170
173
  //# sourceMappingURL=LowerSVG.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LowerSVG.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/scatterplot-umap/components/LowerSVG.tsx"],"sourcesContent":["import { ChartsTitle } from '../../common/ChartsTitle';\nimport { ContinuousGrid } from '../../common/ContinuousGrid';\nimport fonts from '../../common/fonts';\nimport { Legend } from '../../common/Legend';\nimport type { TooltipsData } from '../../common/Tooltip';\nimport { Tooltip } from '../../common/Tooltip';\nimport type { LegendData } from '../../common/types';\nimport { BLACK } from '../../constants';\nimport { DEFAULT_TICKS_SIZE, LEGEND_OFFSET, TITLE_LINE } from '../constants';\nimport type { ScatterplotUmapSettingsImpl } from '../SettingsImpl';\nimport type { CaptionsSizes, ChartScales, ChartSizes, Dot, DotInfo, Margins, SVGLayerProps } from '../types';\nimport { Axis } from '../../scatterplot/components/Axis';\nimport type { ColumnName } from '../../types';\nimport type { CurveUmapLayer } from '../../types/scatterplot-umap';\nimport { numberFormat } from '../../utils/numberFormat';\nimport { curveBasis, line } from 'd3-shape';\nimport React, { useEffect, useState } from 'react';\n\nfunction getTooltipContent(dot: DotInfo, keyColumn: ColumnName | null, columnsList: ColumnName[] = []) {\n const row = dot.data;\n const lines = [`x: ${numberFormat(dot.x)}`, `y: ${numberFormat(dot.y)}`];\n if (keyColumn?.label) {\n lines.unshift(`${keyColumn.label}: ${row[keyColumn.label]}`);\n }\n for (const column of columnsList) {\n lines.push(`${column.label}: ${row[column.valueLabels ?? column.value]}`);\n }\n return lines;\n}\n\nfunction getTitle(title: string | ColumnName): string {\n if (typeof title === 'string') {\n return title;\n }\n return title.label ?? title.value;\n}\n\nconst lineGenerator = line<Dot>().curve(curveBasis);\n\nfunction LowerSvg({\n scales,\n chartSettings,\n mainTitle,\n keyColumn,\n margins,\n chartSizes,\n container,\n zoomStateKey,\n legendData,\n dotsByGrouping,\n layers,\n aesGetters,\n tooltipData\n}: {\n aesGetters: SVGLayerProps['aesGetters'];\n scales: ChartScales;\n chartSettings: ScatterplotUmapSettingsImpl['chartSettings'];\n mainTitle: string[];\n keyColumn: ColumnName | null;\n margins: Margins;\n chartSizes: ChartSizes;\n captionsSizes: CaptionsSizes;\n selectedDot?: DotInfo | null;\n container: SVGElement | null;\n zoomStateKey: string;\n legendData: LegendData;\n dotsByGrouping: Record<string, Dot[]>;\n layers: ScatterplotUmapSettingsImpl['layers'];\n tooltipData: TooltipsData<DotInfo>;\n}) {\n const {title, xAxis, yAxis, frame, legend} = chartSettings;\n const tickSizeX = xAxis.showTicks ? DEFAULT_TICKS_SIZE : 0;\n const tickSizeY = yAxis.showTicks ? DEFAULT_TICKS_SIZE : 0;\n const xTitle = xAxis.title;\n const yTitle = yAxis.title;\n const needLeftAxis = true;\n const needBottomAxis = true;\n\n const sideDistances = {\n left: 0,\n right: chartSizes.chartWidth,\n top: 0,\n bottom: chartSizes.chartHeight,\n };\n\n if (!container) {\n return null;\n }\n\n const curveLayer = layers.find(layer => layer.type === 'curve') as CurveUmapLayer | undefined;\n const [lines, setLines] = useState<{key: string, d:string, dot: Dot}[]>([]);\n\n function updateLines() {\n const data = Object.entries(dotsByGrouping);\n const nextLines = data.map(([key, dots]) => ({\n key,\n d: curveLayer?.smoothing ? lineGenerator(dots) ?? '' : dots.map(d => `${scales.x(d.x)},${scales.y(d.y)}`).join(' '),\n dot: dots[0]\n }));\n setLines(nextLines);\n }\n useEffect(() => {\n if (!curveLayer) {\n return;\n }\n lineGenerator\n .x((d: Dot) => scales.x(d.x))\n .y((d: Dot) => scales.y(d.y));\n updateLines();\n }, [zoomStateKey, chartSizes.chartWidth, chartSizes.chartHeight]);\n\n useEffect(() => {\n if (!curveLayer) {\n return;\n }\n updateLines();\n }, [curveLayer?.smoothing]);\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={`0 0 ${chartSizes.totalWidth} ${chartSizes.totalHeight}`}\n width={chartSizes.totalWidth}\n height={chartSizes.totalHeight}\n style={{pointerEvents: 'none'}}\n >\n <defs>{fonts}</defs>\n <g transform={`translate(${margins.left},${margins.top})`} fontFamily=\"Manrope\">\n <clipPath id=\"viewportClipPath\">\n <rect x=\"0\" y=\"0\" width={chartSizes.chartWidth} height={chartSizes.chartHeight}/>\n </clipPath>\n <ChartsTitle\n title={mainTitle}\n show={title.show}\n position={title.position}\n leftPadding={margins.left}\n rightPadding={margins.right}\n chartsWidth={chartSizes.chartWidth}\n />\n <g dominantBaseline=\"central\" textAnchor=\"middle\" fontWeight=\"500\" fontSize=\"14px\" fill={BLACK}>\n {xTitle && (\n <text\n x={chartSizes.chartWidth / 2}\n y={chartSizes.chartHeight + margins.bottom - TITLE_LINE / 2}\n >\n {getTitle(xTitle)}\n </text>\n )}\n {yTitle && (\n <text\n x={-margins.left + TITLE_LINE / 2}\n y={chartSizes.chartHeight / 2}\n transform={`rotate(-90,${-margins.left + TITLE_LINE / 2},${\n chartSizes.chartHeight / 2\n })`}\n >\n {getTitle(yTitle)}\n </text>\n )}\n </g>\n <ContinuousGrid\n width={chartSizes.chartWidth}\n height={chartSizes.chartHeight}\n scaleX={scales.x}\n scaleY={scales.y}\n axisX={xAxis}\n axisY={yAxis}\n updatingKey={zoomStateKey}\n frameType={frame.type}\n />\n {needBottomAxis && (\n <g transform={`translate(0,${chartSizes.chartHeight})`}>\n <Axis scale={scales.x} orient=\"bottom\" tickSize={tickSizeX} />\n </g>\n )}\n {needLeftAxis && (\n <g>\n <Axis scale={scales.y} orient=\"left\" tickSize={tickSizeY} />\n </g>\n )}\n {curveLayer && curveLayer.smoothing && (\n <g clipPath=\"url(#viewportClipPath)\">\n {lines.map(({key, d, dot}) => (\n <path\n key={key}\n d={d}\n fill=\"none\"\n stroke={aesGetters.dotFill(dot.data)}\n strokeWidth={curveLayer.aes?.lineWidth}\n strokeDasharray={aesGetters.lineType(dot.data)}\n />\n ))}\n </g>\n )}\n {curveLayer && !curveLayer.smoothing && (\n <g clipPath=\"url(#viewportClipPath)\">\n {lines.map(({key, d, dot}) => (\n <polyline\n key={key}\n points={d}\n fill=\"none\"\n stroke={aesGetters.dotFill(dot.data)}\n strokeWidth={curveLayer.aes?.lineWidth}\n strokeDasharray={aesGetters.lineType(dot.data)}\n />\n ))}\n </g>\n )}\n {tooltipData.selectedData && (\n <Tooltip\n content={getTooltipContent(tooltipData.selectedData, keyColumn, chartSettings.tooltips?.content)}\n x={scales.x(tooltipData.selectedData.x)}\n y={scales.y(tooltipData.selectedData.y)}\n active={true}\n fixed={tooltipData.fixed}\n sideDistances={sideDistances}\n container={container}\n onClose={tooltipData.onClose}\n />\n )}\n {legend.show && (\n <g transform={`translate(${chartSizes.chartWidth + LEGEND_OFFSET},0)`}>\n <Legend legendData={legendData} />\n </g>\n )}\n </g>\n </svg>\n );\n}\n\nexport default React.memo(LowerSvg);\n"],"names":["getTooltipContent","dot","keyColumn","columnsList","row","lines","numberFormat","column","getTitle","title","lineGenerator","line","curveBasis","LowerSvg","scales","chartSettings","mainTitle","margins","chartSizes","container","zoomStateKey","legendData","dotsByGrouping","layers","aesGetters","tooltipData","xAxis","yAxis","frame","legend","tickSizeX","DEFAULT_TICKS_SIZE","tickSizeY","xTitle","yTitle","sideDistances","curveLayer","layer","setLines","useState","updateLines","nextLines","key","dots","d","useEffect","jsxs","jsx","fonts","ChartsTitle","BLACK","TITLE_LINE","ContinuousGrid","Axis","_a","e","Tooltip","LEGEND_OFFSET","Legend","LowerSvg$1","React"],"mappings":";;;;;;;;;;;;;AAkBA,SAASA,EAAkBC,GAAcC,GAA8BC,IAA4B,CAAA,GAAI;AACnG,QAAMC,IAAMH,EAAI,MACVI,IAAQ,CAAC,MAAMC,EAAaL,EAAI,CAAC,CAAC,IAAI,MAAMK,EAAaL,EAAI,CAAC,CAAC,EAAE;AACnEC,EAAAA,KAAA,QAAAA,EAAW,SACXG,EAAM,QAAQ,GAAGH,EAAU,KAAK,KAAKE,EAAIF,EAAU,KAAK,CAAC,EAAE;AAE/D,aAAWK,KAAUJ;AACjBE,IAAAA,EAAM,KAAK,GAAGE,EAAO,KAAK,KAAKH,EAAIG,EAAO,eAAeA,EAAO,KAAK,CAAC,EAAE;AAE5E,SAAOF;AACX;AAEA,SAASG,EAASC,GAAoC;AAClD,SAAI,OAAOA,KAAU,WACVA,IAEJA,EAAM,SAASA,EAAM;AAChC;AAEA,MAAMC,IAAgBC,EAAAA,EAAY,MAAMC,CAAU;AAElD,SAASC,EAAS;AAAA,EACd,QAAAC;AAAAA,EACA,eAAAC;AAAAA,EACA,WAAAC;AAAAA,EACA,WAAAd;AAAAA,EACA,SAAAe;AAAAA,EACA,YAAAC;AAAAA,EACA,WAAAC;AAAAA,EACA,cAAAC;AAAAA,EACA,YAAAC;AAAAA,EACA,gBAAAC;AAAAA,EACA,QAAAC;AAAAA,EACA,YAAAC;AAAAA,EACA,aAAAC;AACJ,GAgBG;;AACC,QAAM,EAAC,OAAAhB,GAAO,OAAAiB,GAAO,OAAAC,GAAO,OAAAC,GAAO,QAAAC,EAAAA,IAAUd,GACvCe,IAAYJ,EAAM,YAAYK,IAAqB,GACnDC,IAAYL,EAAM,YAAYI,IAAqB,GACnDE,IAASP,EAAM,OACfQ,IAASP,EAAM,OAIfQ,IAAgB;AAAA,IAClB,MAAM;AAAA,IACN,OAAOjB,EAAW;AAAA,IAClB,KAAK;AAAA,IACL,QAAQA,EAAW;AAAA,EAAA;AAGvB,MAAI,CAACC;AACD,WAAO;AAGX,QAAMiB,IAAab,EAAO,KAAK,CAAAc,MAASA,EAAM,SAAS,OAAO,GACxD,CAAChC,GAAOiC,CAAQ,IAAIC,EAAAA,SAA8C,CAAA,CAAE;AAE1E,WAASC,IAAc;AAEnB,UAAMC,IADO,OAAO,QAAQnB,CAAc,EACnB,IAAI,CAAC,CAACoB,GAAKC,CAAI,OAAO;AAAA,MACzC,KAAAD;AAAAA,MACA,GAAGN,KAAA,QAAAA,EAAY,YAAY1B,EAAciC,CAAI,KAAK,KAAKA,EAAK,IAAI,CAAAC,MAAK,GAAG9B,EAAO,EAAE8B,EAAE,CAAC,CAAC,IAAI9B,EAAO,EAAE8B,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,GAAG;AAAA,MAClH,KAAKD,EAAK,CAAC;AAAA,IAAA,EACb;AACFL,IAAAA,EAASG,CAAS;AAAA,EACtB;AACAI,SAAAA,EAAAA,UAAU,MAAM;AACPT,UAGL1B,EACK,EAAE,CAACkC,MAAW9B,EAAO,EAAE8B,EAAE,CAAC,CAAC,EAC3B,EAAE,CAACA,MAAW9B,EAAO,EAAE8B,EAAE,CAAC,CAAC,GAChCJ;EACJ,GAAG,CAACpB,GAAcF,EAAW,YAAYA,EAAW,WAAW,CAAC,GAEhE2B,EAAAA,UAAU,MAAM;AACPT,SAGLI,EAAAA;AAAAA,EACJ,GAAG,CAACJ,KAAA,OAAA,SAAAA,EAAY,SAAS,CAAC,GAGtBU,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACG,OAAM;AAAA,MACN,SAAS,OAAO5B,EAAW,UAAU,IAAIA,EAAW,WAAW;AAAA,MAC/D,OAAOA,EAAW;AAAA,MAClB,QAAQA,EAAW;AAAA,MACnB,OAAO,EAAC,eAAe,OAAA;AAAA,MAEvB,UAAA;AAAA,QAAA6B,gBAAAA,EAAAA,IAAC,QAAA,EAAM,UAAAC,GAAM;AAAA,QACbF,gBAAAA,EAAAA,KAAC,KAAA,EAAE,WAAW,aAAa7B,EAAQ,IAAI,IAAIA,EAAQ,GAAG,KAAK,YAAW,WAClE,UAAA;AAAA,UAAA8B,gBAAAA,MAAC,YAAA,EAAS,IAAG,oBACT,UAAAA,gBAAAA,EAAAA,IAAC,UAAK,GAAE,KAAI,GAAE,KAAI,OAAO7B,EAAW,YAAY,QAAQA,EAAW,YAAA,CAAY,GACnF;AAAA,UACA6B,gBAAAA,EAAAA;AAAAA,YAACE;AAAAA,YAAA;AAAA,cACG,OAAOjC;AAAAA,cACP,MAAMP,EAAM;AAAA,cACZ,UAAUA,EAAM;AAAA,cAChB,aAAaQ,EAAQ;AAAA,cACrB,cAAcA,EAAQ;AAAA,cACtB,aAAaC,EAAW;AAAA,YAAA;AAAA,UAAA;AAAA,UAE5B4B,gBAAAA,EAAAA,KAAC,KAAA,EAAE,kBAAiB,WAAU,YAAW,UAAS,YAAW,OAAM,UAAS,QAAO,MAAMI,GACpF,UAAA;AAAA,YAAAjB,KACGc,gBAAAA,EAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACG,GAAG7B,EAAW,aAAa;AAAA,gBAC3B,GAAGA,EAAW,cAAcD,EAAQ,SAASkC,IAAa;AAAA,gBAEzD,YAASlB,CAAM;AAAA,cAAA;AAAA,YAAA;AAAA,YAGvBC,KACGa,gBAAAA,EAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACG,GAAG,CAAC9B,EAAQ,OAAOkC,IAAa;AAAA,gBAChC,GAAGjC,EAAW,cAAc;AAAA,gBAC5B,WAAW,cAAc,CAACD,EAAQ,OAAOkC,IAAa,CAAC,IACnDjC,EAAW,cAAc,CAC7B;AAAA,gBAEC,YAASgB,CAAM;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA,GAG5B;AAAA,UACAa,gBAAAA,EAAAA;AAAAA,YAACK;AAAAA,YAAA;AAAA,cACG,OAAOlC,EAAW;AAAA,cAClB,QAAQA,EAAW;AAAA,cACnB,QAAQJ,EAAO;AAAA,cACf,QAAQA,EAAO;AAAA,cACf,OAAOY;AAAAA,cACP,OAAOC;AAAAA,cACP,aAAaP;AAAAA,cACb,WAAWQ,EAAM;AAAA,YAAA;AAAA,UAAA;AAAA,UAGjBmB,gBAAAA,EAAAA,IAAC,KAAA,EAAE,WAAW,eAAe7B,EAAW,WAAW,KAC/C,UAAA6B,gBAAAA,EAAAA,IAACM,GAAA,EAAK,OAAOvC,EAAO,GAAG,QAAO,UAAS,UAAUgB,EAAAA,CAAW,GAChE;AAAA,UAGAiB,gBAAAA,EAAAA,IAAC,KAAA,EACG,UAAAA,gBAAAA,EAAAA,IAACM,GAAA,EAAK,OAAOvC,EAAO,GAAG,QAAO,QAAO,UAAUkB,EAAAA,CAAW,GAC9D;AAAA,UAEHI,KAAcA,EAAW,aACtBW,gBAAAA,EAAAA,IAAC,KAAA,EAAE,UAAS,0BACP,UAAA1C,EAAM,IAAI,CAAC,EAAC,KAAAqC,GAAK,GAAAE,GAAG,KAAA3C,QAAAA;;AACjB8C,mBAAAA,gBAAAA,EAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBAEG,GAAAH;AAAA,gBACA,MAAK;AAAA,gBACL,QAAQpB,EAAW,QAAQvB,EAAI,IAAI;AAAA,gBACnC,cAAaqD,IAAAlB,EAAW,QAAX,gBAAAkB,EAAgB;AAAA,gBAC7B,iBAAiB9B,EAAW,SAASvB,EAAI,IAAI;AAAA,cAAA;AAAA,cALxCyC;AAAAA,YAAA;AAAA,UAAA,CAOZ,EAAA,CACL;AAAA,UAEHN,KAAc,CAACA,EAAW,aAAAmB,gBAAAA,EAAA,IACtB,KAAA,EAAE,UAAS,0BACP,UAAAlD,EAAM,IAAI,CAAC,EAAC,KAAAqC,GAAK,GAAAE,GAAG,KAAA3C,QAAAA;;AACjB8C,mBAAAA,gBAAAA,EAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBAEG,QAAQH;AAAA,gBACR,MAAK;AAAA,gBACL,QAAQpB,EAAW,QAAQvB,EAAI,IAAI;AAAA,gBACnC,cAAaqD,IAAAlB,EAAW,QAAX,gBAAAkB,EAAgB;AAAA,gBAC7B,iBAAiB9B,EAAW,SAASvB,EAAI,IAAI;AAAA,cAAA;AAAA,cALxCyC;AAAAA,YAAA;AAAA,UAAA,CAOZ,EAAA,CACL;AAAA,UAEHjB,EAAY,gBACTsB,gBAAAA,EAAAA;AAAAA,YAACS;AAAAA,YAAA;AAAA,cACG,SAASxD,EAAkByB,EAAY,cAAcvB,IAAWoD,IAAAvC,EAAc,aAAd,OAAA,SAAAuC,EAAwB,OAAO;AAAA,cAC/F,GAAGxC,EAAO,EAAEW,EAAY,aAAa,CAAC;AAAA,cACtC,GAAGX,EAAO,EAAEW,EAAY,aAAa,CAAC;AAAA,cACtC,QAAQ;AAAA,cACR,OAAOA,EAAY;AAAA,cACnB,eAAAU;AAAAA,cACA,WAAAhB;AAAAA,cACA,SAASM,EAAY;AAAA,YAAA;AAAA,UAAA;AAAA,UAG5BI,EAAO,QACJkB,gBAAAA,EAAAA,IAAC,KAAA,EAAE,WAAW,aAAa7B,EAAW,aAAauC,CAAa,OAC5D,UAAAV,gBAAAA,EAAAA,IAACW,GAAA,EAAO,YAAArC,EAAAA,CAAwB,EAAA,CACpC;AAAA,QAAA,GAER;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGZ;AAEA,MAAAsC,KAAeC,EAAM,KAAK/C,CAAQ;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"LowerSVG.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/scatterplot-umap/components/LowerSVG.tsx"],"sourcesContent":["import {format} from 'd3-format';\nimport { curveBasis, line } from 'd3-shape';\nimport React, { useEffect, useState } from 'react';\nimport { ChartsTitle } from '../../common/ChartsTitle';\nimport { ContinuousGrid } from '../../common/ContinuousGrid';\nimport fonts from '../../common/fonts';\nimport { Legend } from '../../common/Legend';\nimport type { TooltipsData } from '../../common/Tooltip';\nimport { Tooltip } from '../../common/Tooltip';\nimport type { LegendData } from '../../common/types';\nimport { useDataFrame } from '../../common/useDataFrame';\nimport { BLACK } from '../../constants';\nimport type { DataFrame } from '../../DataFrame';\nimport { Axis } from '../../scatterplot/components/Axis';\nimport {formatColumnValue} from '../../scatterplot/utils/formatColumnValue';\nimport type { ColumnName } from '../../types';\nimport type { CurveUmapLayer } from '../../types/scatterplot-umap';\nimport { DEFAULT_TICKS_SIZE, LEGEND_OFFSET, TITLE_LINE } from '../constants';\nimport type { ScatterplotUmapSettingsImpl } from '../SettingsImpl';\nimport type { CaptionsSizes, ChartScales, ChartSizes, Dot, DotInfo, Margins, SVGLayerProps } from '../types';\n\nfunction getTooltipContent(dataFrame: DataFrame, dot: DotInfo, columnsList: ColumnName[] = [], ) {\n const lines: string[] = [];\n for (const column of columnsList) {\n const columnFormatter = column?.format ? format(column.format) : undefined;\n lines.push(`${column.label}: ${formatColumnValue(dataFrame, dot.idx, column, columnFormatter)}`);\n }\n return lines;\n}\n\nfunction getTitle(title: string | ColumnName): string {\n if (typeof title === 'string') {\n return title;\n }\n return title.label ?? title.value;\n}\n\nconst lineGenerator = line<Dot>().curve(curveBasis);\n\nfunction LowerSvg({\n scales,\n chartSettings,\n mainTitle,\n keyColumn,\n margins,\n chartSizes,\n container,\n zoomStateKey,\n legendData,\n dotsByGrouping,\n layers,\n aesGetters,\n tooltipData\n}: {\n aesGetters: SVGLayerProps['aesGetters'];\n scales: ChartScales;\n chartSettings: ScatterplotUmapSettingsImpl['chartSettings'];\n mainTitle: string[];\n keyColumn: ColumnName | null;\n margins: Margins;\n chartSizes: ChartSizes;\n captionsSizes: CaptionsSizes;\n selectedDot?: DotInfo | null;\n container: SVGElement | null;\n zoomStateKey: string;\n legendData: LegendData;\n dotsByGrouping: Record<string, Dot[]>;\n layers: ScatterplotUmapSettingsImpl['layers'];\n tooltipData: TooltipsData<DotInfo>;\n}) {\n const dataFrame = useDataFrame();\n const {title, xAxis, yAxis, frame, legend} = chartSettings;\n const tickSizeX = xAxis.showTicks ? DEFAULT_TICKS_SIZE : 0;\n const tickSizeY = yAxis.showTicks ? DEFAULT_TICKS_SIZE : 0;\n const xTitle = xAxis.title;\n const yTitle = yAxis.title;\n const needLeftAxis = true;\n const needBottomAxis = true;\n\n const sideDistances = {\n left: 0,\n right: chartSizes.chartWidth,\n top: 0,\n bottom: chartSizes.chartHeight,\n };\n\n if (!container) {\n return null;\n }\n\n const curveLayer = layers.find(layer => layer.type === 'curve') as CurveUmapLayer | undefined;\n const [lines, setLines] = useState<{key: string, d:string, dot: Dot}[]>([]);\n\n function updateLines() {\n const data = Object.entries(dotsByGrouping);\n const nextLines = data.map(([key, dots]) => ({\n key,\n d: curveLayer?.smoothing ? lineGenerator(dots) ?? '' : dots.map(d => `${scales.x(d.x)},${scales.y(d.y)}`).join(' '),\n dot: dots[0]\n }));\n setLines(nextLines);\n }\n useEffect(() => {\n if (!curveLayer) {\n return;\n }\n lineGenerator\n .x((d: Dot) => scales.x(d.x))\n .y((d: Dot) => scales.y(d.y));\n updateLines();\n }, [zoomStateKey, chartSizes.chartWidth, chartSizes.chartHeight]);\n\n useEffect(() => {\n if (!curveLayer) {\n return;\n }\n updateLines();\n }, [curveLayer?.smoothing]);\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={`0 0 ${chartSizes.totalWidth} ${chartSizes.totalHeight}`}\n width={chartSizes.totalWidth}\n height={chartSizes.totalHeight}\n style={{pointerEvents: 'none'}}\n >\n <defs>{fonts}</defs>\n <g transform={`translate(${margins.left},${margins.top})`} fontFamily=\"Manrope\">\n <clipPath id=\"viewportClipPath\">\n <rect x=\"0\" y=\"0\" width={chartSizes.chartWidth} height={chartSizes.chartHeight}/>\n </clipPath>\n <ChartsTitle\n title={mainTitle}\n show={title.show}\n position={title.position}\n leftPadding={margins.left}\n rightPadding={margins.right}\n chartsWidth={chartSizes.chartWidth}\n />\n <g dominantBaseline=\"central\" textAnchor=\"middle\" fontWeight=\"500\" fontSize=\"14px\" fill={BLACK}>\n {xTitle && (\n <text\n x={chartSizes.chartWidth / 2}\n y={chartSizes.chartHeight + margins.bottom - TITLE_LINE / 2}\n >\n {getTitle(xTitle)}\n </text>\n )}\n {yTitle && (\n <text\n x={-margins.left + TITLE_LINE / 2}\n y={chartSizes.chartHeight / 2}\n transform={`rotate(-90,${-margins.left + TITLE_LINE / 2},${\n chartSizes.chartHeight / 2\n })`}\n >\n {getTitle(yTitle)}\n </text>\n )}\n </g>\n <ContinuousGrid\n width={chartSizes.chartWidth}\n height={chartSizes.chartHeight}\n scaleX={scales.x}\n scaleY={scales.y}\n axisX={xAxis}\n axisY={yAxis}\n updatingKey={zoomStateKey}\n frameType={frame.type}\n />\n {needBottomAxis && (\n <g transform={`translate(0,${chartSizes.chartHeight})`}>\n <Axis scale={scales.x} orient=\"bottom\" tickSize={tickSizeX} />\n </g>\n )}\n {needLeftAxis && (\n <g>\n <Axis scale={scales.y} orient=\"left\" tickSize={tickSizeY} />\n </g>\n )}\n {curveLayer && curveLayer.smoothing && (\n <g clipPath=\"url(#viewportClipPath)\">\n {lines.map(({key, d, dot}) => (\n <path\n key={key}\n d={d}\n fill=\"none\"\n stroke={aesGetters.dotFill(dot.idx)}\n strokeWidth={curveLayer.aes?.lineWidth}\n strokeDasharray={aesGetters.lineType(dot.idx)}\n />\n ))}\n </g>\n )}\n {curveLayer && !curveLayer.smoothing && (\n <g clipPath=\"url(#viewportClipPath)\">\n {lines.map(({key, d, dot}) => (\n <polyline\n key={key}\n points={d}\n fill=\"none\"\n stroke={aesGetters.dotFill(dot.idx)}\n strokeWidth={curveLayer.aes?.lineWidth}\n strokeDasharray={aesGetters.lineType(dot.idx)}\n />\n ))}\n </g>\n )}\n {chartSettings.tooltips.show && tooltipData.selectedData && (\n <Tooltip\n content={getTooltipContent(dataFrame, tooltipData.selectedData, chartSettings.tooltips?.content)}\n x={scales.x(tooltipData.selectedData.x)}\n y={scales.y(tooltipData.selectedData.y)}\n active={true}\n fixed={tooltipData.fixed}\n sideDistances={sideDistances}\n container={container}\n onClose={tooltipData.onClose}\n />\n )}\n {legend.show && (\n <g transform={`translate(${chartSizes.chartWidth + LEGEND_OFFSET},0)`}>\n <Legend legendData={legendData} />\n </g>\n )}\n </g>\n </svg>\n );\n}\n\nexport default React.memo(LowerSvg);\n"],"names":["getTooltipContent","dataFrame","dot","columnsList","lines","column","columnFormatter","format","formatColumnValue","getTitle","title","lineGenerator","line","curveBasis","LowerSvg","scales","chartSettings","mainTitle","keyColumn","margins","chartSizes","container","zoomStateKey","legendData","dotsByGrouping","layers","aesGetters","tooltipData","useDataFrame","xAxis","yAxis","frame","legend","tickSizeX","DEFAULT_TICKS_SIZE","tickSizeY","xTitle","yTitle","sideDistances","curveLayer","layer","setLines","useState","updateLines","nextLines","key","dots","d","useEffect","jsxs","jsx","fonts","ChartsTitle","BLACK","TITLE_LINE","ContinuousGrid","Axis","_a","o","Tooltip","LEGEND_OFFSET","Legend","LowerSvg$1","React"],"mappings":"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","x_google_ignoreList":[0]}
@@ -2,10 +2,10 @@ import { j as a } from "../../node_modules/react/jsx-runtime.js";
2
2
  import { r as j } from "../../_virtual/index.js";
3
3
  import { r as x } from "../../node_modules/react-dom/index.js";
4
4
  import { ErrorBoundary as P } from "../../common/ErrorBoundary.js";
5
- import { useTooltip as k } from "../../common/Tooltip.js";
6
- import C from "./LowerSVG.js";
7
- import L from "./UpperSVG.js";
8
- function I({
5
+ import { useTooltip as C } from "../../common/Tooltip.js";
6
+ import L from "./LowerSVG.js";
7
+ import T from "./UpperSVG.js";
8
+ function w({
9
9
  settingsId: l,
10
10
  scales: s,
11
11
  chartSettings: m,
@@ -19,8 +19,8 @@ function I({
19
19
  aesGetters: i,
20
20
  legendData: y,
21
21
  labels: S,
22
- onPolygonUpdate: f,
23
- onTooltipHintSwitch: g,
22
+ onPolygonUpdate: g,
23
+ onTooltipHintSwitch: f,
24
24
  onLassoControlsStateUpdate: h,
25
25
  dotsByGrouping: z,
26
26
  layers: D,
@@ -29,12 +29,12 @@ function I({
29
29
  }) {
30
30
  if (!t)
31
31
  return null;
32
- const o = k(g);
32
+ const o = C(f);
33
33
  return j.useEffect(() => {
34
34
  e ? o.onMouseEnter(e) : o.onMouseLeave();
35
35
  }, [e]), /* @__PURE__ */ a.jsx("div", { children: /* @__PURE__ */ a.jsxs(P, { dataId: l, children: [
36
36
  /* @__PURE__ */ a.jsx(
37
- C,
37
+ L,
38
38
  {
39
39
  aesGetters: i,
40
40
  dotsByGrouping: z,
@@ -54,7 +54,7 @@ function I({
54
54
  ),
55
55
  x.createPortal(
56
56
  /* @__PURE__ */ a.jsx(
57
- L,
57
+ T,
58
58
  {
59
59
  scales: s,
60
60
  container: t,
@@ -64,7 +64,7 @@ function I({
64
64
  zoomStateKey: r,
65
65
  selectedDot: e,
66
66
  defaultPolygons: G,
67
- onPolygonUpdate: f,
67
+ onPolygonUpdate: g,
68
68
  onLassoControlsStateUpdate: h,
69
69
  tooltipData: o
70
70
  }
@@ -74,6 +74,6 @@ function I({
74
74
  ] }) });
75
75
  }
76
76
  export {
77
- I as SVGLayer
77
+ w as SVGLayer
78
78
  };
79
79
  //# sourceMappingURL=SVGLayer.js.map
@@ -1,10 +1,11 @@
1
1
  import { j as e } from "../../node_modules/react/jsx-runtime.js";
2
- import { Lasso as g } from "./Lasso.js";
3
- function u({
2
+ import { getLabelMinX as y, getLabelMinY as g } from "../../scatterplot/utils/getVisibleLabels.js";
3
+ import { Lasso as j } from "./Lasso.js";
4
+ function D({
4
5
  scales: a,
5
6
  container: r,
6
7
  labels: i,
7
- aesGetters: o,
8
+ aesGetters: n,
8
9
  chartSizes: s,
9
10
  zoomStateKey: d,
10
11
  defaultPolygons: c,
@@ -13,15 +14,15 @@ function u({
13
14
  tooltipData: t
14
15
  }) {
15
16
  return r ? /* @__PURE__ */ e.jsxs("g", { children: [
16
- i.map((p, m) => {
17
- const { name: y, height: n, bbox: l, width: f } = p;
18
- return /* @__PURE__ */ e.jsx("g", { children: /* @__PURE__ */ e.jsxs("g", { transform: `translate(${l.minX},${l.minY})`, children: [
19
- /* @__PURE__ */ e.jsx("rect", { x: "0", y: "0", width: f, height: n, fill: "transparent", stroke: "none" }),
17
+ i.map((o, p) => {
18
+ const { name: m, height: l, width: f } = o;
19
+ return /* @__PURE__ */ e.jsx("g", { children: /* @__PURE__ */ e.jsxs("g", { transform: `translate(${y(o)},${g(o)})`, children: [
20
+ /* @__PURE__ */ e.jsx("rect", { x: "0", y: "0", width: f, height: l, fill: "transparent", stroke: "none" }),
20
21
  /* @__PURE__ */ e.jsx(
21
22
  "text",
22
23
  {
23
24
  x: 0,
24
- y: n / 2,
25
+ y: l / 2,
25
26
  stroke: "white",
26
27
  strokeWidth: 2,
27
28
  paintOrder: "stroke",
@@ -29,23 +30,23 @@ function u({
29
30
  fontFamily: "Manrope",
30
31
  fontSize: "16px",
31
32
  dominantBaseline: "middle",
32
- children: y
33
+ children: m
33
34
  }
34
35
  )
35
- ] }) }, m);
36
+ ] }) }, p);
36
37
  }),
37
38
  t.selectedData && /* @__PURE__ */ e.jsx(
38
39
  "circle",
39
40
  {
40
41
  cx: a.x(t.selectedData.x),
41
42
  cy: a.y(t.selectedData.y),
42
- r: Math.max(o.dotSize(t.selectedData.data) * 1.2, 5),
43
- fill: o.dotFill(t.selectedData.data),
43
+ r: Math.max(n.dotSize(t.selectedData.idx) * 1.2, 5),
44
+ fill: n.dotFill(t.selectedData.idx),
44
45
  style: { pointerEvents: "none" }
45
46
  }
46
47
  ),
47
48
  /* @__PURE__ */ e.jsx(
48
- g,
49
+ j,
49
50
  {
50
51
  scales: a,
51
52
  chartSizes: s,
@@ -59,6 +60,6 @@ function u({
59
60
  ] }) : null;
60
61
  }
61
62
  export {
62
- u as default
63
+ D as default
63
64
  };
64
65
  //# sourceMappingURL=UpperSVG.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UpperSVG.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/scatterplot-umap/components/UpperSVG.tsx"],"sourcesContent":["import type { TooltipsData } from '../../common/Tooltip';\nimport type { Label } from '../../scatterplot/utils/getVisibleLabels';\nimport type { AesGetters, ChartScales, ChartSizes, DotInfo, LassoControlsState, Polygon } from '../types';\nimport { Lasso } from './Lasso';\n\nfunction UpperSVG({\n scales,\n container,\n labels,\n aesGetters,\n chartSizes,\n zoomStateKey,\n defaultPolygons,\n onPolygonUpdate,\n onLassoControlsStateUpdate,\n tooltipData\n}: {\n scales: ChartScales;\n container: SVGElement | null;\n aesGetters: AesGetters;\n labels: Label[];\n chartSizes: ChartSizes;\n zoomStateKey: string;\n defaultPolygons: Polygon[];\n onLassoControlsStateUpdate: (v:LassoControlsState) => void;\n onPolygonUpdate: (data:Polygon[]) => void;\n tooltipData: TooltipsData<DotInfo>;\n selectedDot?: DotInfo | null;\n}) {\n if (!container) {\n return null;\n }\n\n return (\n <g>\n {labels.map((label, idx) => {\n const {name, height, bbox, width} = label;\n return (\n <g key={idx}>\n <g transform={`translate(${bbox.minX},${bbox.minY})`}>\n <rect x=\"0\" y=\"0\" width={width} height={height} fill=\"transparent\" stroke=\"none\" />\n <text\n x={0}\n y={height / 2}\n stroke=\"white\"\n strokeWidth={2}\n paintOrder=\"stroke\"\n style={{pointerEvents: 'none'}}\n fontFamily=\"Manrope\"\n fontSize=\"16px\"\n dominantBaseline=\"middle\"\n >\n {name}\n </text>\n </g>\n </g>\n );\n })}\n {tooltipData.selectedData && (\n <circle\n cx={scales.x(tooltipData.selectedData.x)}\n cy={scales.y(tooltipData.selectedData.y)}\n r={Math.max(aesGetters.dotSize(tooltipData.selectedData.data) * 1.2, 5)}\n fill={aesGetters.dotFill(tooltipData.selectedData.data)}\n style={{pointerEvents: 'none'}}\n />\n )}\n <Lasso\n scales={scales}\n chartSizes={chartSizes}\n zoomStateKey={zoomStateKey}\n defaultPolygons={defaultPolygons}\n onPolygonsApply={onPolygonUpdate}\n onLassoControlsStateUpdate={onLassoControlsStateUpdate}\n />\n {tooltipData.fixed && <rect width={chartSizes.chartWidth} height={chartSizes.chartHeight} fill=\"rgba(255,255,255,0.8)\"/>}\n </g>\n );\n}\n\nexport default UpperSVG;\n"],"names":["UpperSVG","scales","container","labels","aesGetters","chartSizes","zoomStateKey","defaultPolygons","onPolygonUpdate","onLassoControlsStateUpdate","tooltipData","label","idx","name","height","bbox","width","jsx","jsxs","Lasso"],"mappings":";;AAKA,SAASA,EAAS;AAAA,EACd,QAAAC;AAAAA,EACA,WAAAC;AAAAA,EACA,QAAAC;AAAAA,EACA,YAAAC;AAAAA,EACA,YAAAC;AAAAA,EACA,cAAAC;AAAAA,EACA,iBAAAC;AAAAA,EACA,iBAAAC;AAAAA,EACA,4BAAAC;AAAAA,EACA,aAAAC;AACJ,GAYG;AACC,SAAKR,IAAAA,gBAAAA,EAAAA,KAKA,KAAA,EACI,UAAA;AAAA,IAAAC,EAAO,IAAI,CAACQ,GAAOC,MAAQ;AACxB,YAAM,EAAC,MAAAC,GAAM,QAAAC,GAAQ,MAAAC,GAAM,OAAAC,EAAAA,IAASL;AACpC,aACIM,gBAAAA,EAAAA,IAAC,KAAA,EACG,UAAAC,gBAAAA,EAAAA,KAAC,KAAA,EAAE,WAAW,aAAaH,EAAK,IAAI,IAAIA,EAAK,IAAI,KAC7C,UAAA;AAAA,QAAAE,gBAAAA,EAAAA,IAAC,QAAA,EAAK,GAAE,KAAI,GAAE,KAAI,OAAAD,GAAc,QAAAF,GAAgB,MAAK,eAAc,QAAO,QAAO;AAAA,QACjFG,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACG,GAAG;AAAA,YACH,GAAGH,IAAS;AAAA,YACZ,QAAO;AAAA,YACP,aAAa;AAAA,YACb,YAAW;AAAA,YACX,OAAO,EAAC,eAAe,OAAA;AAAA,YACvB,YAAW;AAAA,YACX,UAAS;AAAA,YACT,kBAAiB;AAAA,YAEhB,UAAAD;AAAAA,UAAA;AAAA,QAAA;AAAA,MAAA,EACL,CACJ,EAAA,GAhBID,CAiBR;AAAA,IAER,CAAC;AAAA,IACAF,EAAY,gBACTO,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACG,IAAIhB,EAAO,EAAES,EAAY,aAAa,CAAC;AAAA,QACvC,IAAIT,EAAO,EAAES,EAAY,aAAa,CAAC;AAAA,QACvC,GAAG,KAAK,IAAIN,EAAW,QAAQM,EAAY,aAAa,IAAI,IAAI,KAAK,CAAC;AAAA,QACtE,MAAMN,EAAW,QAAQM,EAAY,aAAa,IAAI;AAAA,QACtD,OAAO,EAAC,eAAe,OAAA;AAAA,MAAA;AAAA,IAAM;AAAA,IAGrCO,gBAAAA,EAAAA;AAAAA,MAACE;AAAAA,MAAA;AAAA,QACG,QAAAlB;AAAAA,QACA,YAAAI;AAAAA,QACA,cAAAC;AAAAA,QACA,iBAAAC;AAAAA,QACA,iBAAiBC;AAAAA,QACjB,4BAAAC;AAAAA,MAAA;AAAA,IAAA;AAAA,IAEHC,EAAY,SAASO,gBAAAA,EAAAA,IAAC,QAAA,EAAK,OAAOZ,EAAW,YAAY,QAAQA,EAAW,aAAa,MAAK,yBAAuB;AAAA,EAAA,GAC1H,IA9CO;AAgDf;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"UpperSVG.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/scatterplot-umap/components/UpperSVG.tsx"],"sourcesContent":["import type { TooltipsData } from '../../common/Tooltip';\nimport { getLabelMinX, getLabelMinY, type Label } from '../../scatterplot/utils/getVisibleLabels';\nimport type { AesGetters, ChartScales, ChartSizes, DotInfo, LassoControlsState, Polygon } from '../types';\nimport { Lasso } from './Lasso';\n\nfunction UpperSVG({\n scales,\n container,\n labels,\n aesGetters,\n chartSizes,\n zoomStateKey,\n defaultPolygons,\n onPolygonUpdate,\n onLassoControlsStateUpdate,\n tooltipData\n}: {\n scales: ChartScales;\n container: SVGElement | null;\n aesGetters: AesGetters;\n labels: Label[];\n chartSizes: ChartSizes;\n zoomStateKey: string;\n defaultPolygons: Polygon[];\n onLassoControlsStateUpdate: (v:LassoControlsState) => void;\n onPolygonUpdate: (data:Polygon[]) => void;\n tooltipData: TooltipsData<DotInfo>;\n selectedDot?: DotInfo | null;\n}) {\n if (!container) {\n return null;\n }\n\n return (\n <g>\n {labels.map((label, idx) => {\n const {name, height, width} = label;\n return (\n <g key={idx}>\n <g transform={`translate(${getLabelMinX(label)},${getLabelMinY(label)})`}>\n <rect x=\"0\" y=\"0\" width={width} height={height} fill=\"transparent\" stroke=\"none\" />\n <text\n x={0}\n y={height / 2}\n stroke=\"white\"\n strokeWidth={2}\n paintOrder=\"stroke\"\n style={{pointerEvents: 'none'}}\n fontFamily=\"Manrope\"\n fontSize=\"16px\"\n dominantBaseline=\"middle\"\n >\n {name}\n </text>\n </g>\n </g>\n );\n })}\n {tooltipData.selectedData && (\n <circle\n cx={scales.x(tooltipData.selectedData.x)}\n cy={scales.y(tooltipData.selectedData.y)}\n r={Math.max(aesGetters.dotSize(tooltipData.selectedData.idx) * 1.2, 5)}\n fill={aesGetters.dotFill(tooltipData.selectedData.idx)}\n style={{pointerEvents: 'none'}}\n />\n )}\n <Lasso\n scales={scales}\n chartSizes={chartSizes}\n zoomStateKey={zoomStateKey}\n defaultPolygons={defaultPolygons}\n onPolygonsApply={onPolygonUpdate}\n onLassoControlsStateUpdate={onLassoControlsStateUpdate}\n />\n {tooltipData.fixed && <rect width={chartSizes.chartWidth} height={chartSizes.chartHeight} fill=\"rgba(255,255,255,0.8)\"/>}\n </g>\n );\n}\n\nexport default UpperSVG;\n"],"names":["UpperSVG","scales","container","labels","aesGetters","chartSizes","zoomStateKey","defaultPolygons","onPolygonUpdate","onLassoControlsStateUpdate","tooltipData","label","idx","name","height","width","jsx","jsxs","getLabelMinX","getLabelMinY","Lasso"],"mappings":";;;AAKA,SAASA,EAAS;AAAA,EACd,QAAAC;AAAAA,EACA,WAAAC;AAAAA,EACA,QAAAC;AAAAA,EACA,YAAAC;AAAAA,EACA,YAAAC;AAAAA,EACA,cAAAC;AAAAA,EACA,iBAAAC;AAAAA,EACA,iBAAAC;AAAAA,EACA,4BAAAC;AAAAA,EACA,aAAAC;AACJ,GAYG;AACC,SAAKR,IAAAA,gBAAAA,EAAAA,KAKA,KAAA,EACI,UAAA;AAAA,IAAAC,EAAO,IAAI,CAACQ,GAAOC,MAAQ;AACxB,YAAM,EAAC,MAAAC,GAAM,QAAAC,GAAQ,OAAAC,MAASJ;AAC9B,aACIK,gBAAAA,EAAAA,IAAC,KAAA,EACG,UAAAC,gBAAAA,EAAAA,KAAC,KAAA,EAAE,WAAW,aAAaC,EAAaP,CAAK,CAAC,IAAIQ,EAAaR,CAAK,CAAC,KACjE,UAAA;AAAA,QAAAK,gBAAAA,EAAAA,IAAC,QAAA,EAAK,GAAE,KAAI,GAAE,KAAI,OAAAD,GAAc,QAAAD,GAAgB,MAAK,eAAc,QAAO,QAAO;AAAA,QACjFE,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACG,GAAG;AAAA,YACH,GAAGF,IAAS;AAAA,YACZ,QAAO;AAAA,YACP,aAAa;AAAA,YACb,YAAW;AAAA,YACX,OAAO,EAAC,eAAe,OAAA;AAAA,YACvB,YAAW;AAAA,YACX,UAAS;AAAA,YACT,kBAAiB;AAAA,YAEhB,UAAAD;AAAAA,UAAA;AAAA,QAAA;AAAA,MAAA,EACL,CACJ,EAAA,GAhBID,CAiBR;AAAA,IAER,CAAC;AAAA,IACAF,EAAY,gBACTM,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACG,IAAIf,EAAO,EAAES,EAAY,aAAa,CAAC;AAAA,QACvC,IAAIT,EAAO,EAAES,EAAY,aAAa,CAAC;AAAA,QACvC,GAAG,KAAK,IAAIN,EAAW,QAAQM,EAAY,aAAa,GAAG,IAAI,KAAK,CAAC;AAAA,QACrE,MAAMN,EAAW,QAAQM,EAAY,aAAa,GAAG;AAAA,QACrD,OAAO,EAAC,eAAe,OAAA;AAAA,MAAA;AAAA,IAAM;AAAA,IAGrCM,gBAAAA,EAAAA;AAAAA,MAACI;AAAAA,MAAA;AAAA,QACG,QAAAnB;AAAAA,QACA,YAAAI;AAAAA,QACA,cAAAC;AAAAA,QACA,iBAAAC;AAAAA,QACA,iBAAiBC;AAAAA,QACjB,4BAAAC;AAAAA,MAAA;AAAA,IAAA;AAAA,IAEHC,EAAY,SAASM,gBAAAA,EAAAA,IAAC,QAAA,EAAK,OAAOX,EAAW,YAAY,QAAQA,EAAW,aAAa,MAAK,yBAAuB;AAAA,EAAA,GAC1H,IA9CO;AAgDf;","x_google_ignoreList":[0]}