@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
@@ -1,52 +1,52 @@
1
- import h from "../node_modules/lodash/lodash.js";
2
- import f from "../node_modules/d3-hierarchy/src/stratify.js";
1
+ import { l as f } from "../node_modules/lodash/lodash.js";
2
+ import m from "../node_modules/d3-hierarchy/src/stratify.js";
3
3
  import b from "../node_modules/d3-array/src/max.js";
4
- function y(t, r, l, n, o, c = !1) {
5
- const e = h.groupBy(o, (a) => a[t]), i = Object.keys(e).map((a) => {
6
- const s = e[a], p = s[0];
4
+ function F(a, r, u, i, d, o = !1) {
5
+ const n = f.groupBy(a.rowIndexes, (e) => a.getColumnValue(r, e)), t = Object.keys(n).map((e) => {
6
+ const c = n[e], p = c[0], h = a.getColumnValue(u, p), x = d ? f.uniq(c.map((w) => a.getColumnValue(d, w))).join(", ") : null, k = i ? Number(a.getColumnValue(i, p)) : 1;
7
7
  return {
8
- id: String(a),
9
- parentId: p[r] === null ? null : String(p[r]),
10
- label: n ? h.uniq(s.map((I) => I[n])).join(", ") : null,
11
- height: l ? Number(p[l]) : 1,
8
+ id: String(e),
9
+ parentId: h === null ? null : String(h),
10
+ label: x,
11
+ height: k,
12
12
  isFake: !1,
13
- rawData: s
13
+ rawIndexes: c
14
14
  // save source row data to avoid any modifications
15
15
  };
16
- }), d = f().id((a) => a.id).parentId((a) => a.parentId)(i);
17
- if (!c)
18
- return d;
19
- const u = new Set(d.leaves().map((a) => a.id)), m = i.filter((a) => !u.has(a.id)).map((a) => ({
20
- id: `${a.id}_extra`,
21
- parentId: a.id,
16
+ }), l = m().id((e) => e.id).parentId((e) => e.parentId)(t);
17
+ if (!o)
18
+ return l;
19
+ const s = new Set(l.leaves().map((e) => e.id)), g = t.filter((e) => !s.has(e.id)).map((e) => ({
20
+ id: `${e.id}_extra`,
21
+ parentId: e.id,
22
22
  height: 0,
23
23
  label: null,
24
24
  isFake: !0,
25
- rawData: a.rawData
26
- })), g = i.concat(m);
27
- return f().id((a) => a.id).parentId((a) => a.parentId)(g);
25
+ rawIndexes: e.rawIndexes
26
+ })), I = t.concat(g);
27
+ return m().id((e) => e.id).parentId((e) => e.parentId)(I);
28
28
  }
29
- function N(t, r, l = !1) {
30
- t.data.height = 0;
31
- function n(e) {
32
- return e.data.height;
29
+ function H(a, r, u = !1) {
30
+ a.data.height = 0;
31
+ function i(n) {
32
+ return n.data.height;
33
33
  }
34
- function o(e) {
35
- return n(e) + (e.children ? b(e.children, o) : 0);
34
+ function d(n) {
35
+ return i(n) + (n.children ? b(n.children, d) : 0);
36
36
  }
37
- function c(e, i, d) {
38
- e.y = !e.children && l ? r : (i += n(e)) * d, e.children && e.children.forEach((u) => c(u, i, d));
37
+ function o(n, t, l) {
38
+ n.y = !n.children && u ? r : (t += i(n)) * l, n.children && n.children.forEach((s) => o(s, t, l));
39
39
  }
40
- c(t, 0, r / o(t));
40
+ o(a, 0, r / d(a));
41
41
  }
42
- function S(t) {
43
- t.descendants().forEach((r) => {
42
+ function N(a) {
43
+ a.descendants().forEach((r) => {
44
44
  !r.children && r.data.isFake && r.parent && (r.parent.x = r.x);
45
45
  });
46
46
  }
47
47
  export {
48
- y as getHierarchy,
49
- N as updateLinksHeight,
50
- S as updateNodesHorizontalPosition
48
+ F as getHierarchy,
49
+ H as updateLinksHeight,
50
+ N as updateNodesHorizontalPosition
51
51
  };
52
52
  //# sourceMappingURL=getHierarchyData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getHierarchyData.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/dendro/getHierarchyData.ts"],"sourcesContent":["import type {Row} from '../types';\nimport {max as d3max} from 'd3-array';\nimport {type HierarchyPointNode, stratify} from 'd3-hierarchy';\nimport lodash from 'lodash';\n\nexport type TreeNodeData = {\n id: string;\n parentId: string | null;\n height: number;\n label: string | null;\n isFake: boolean; // true for additional nodes for mode with all nodes used as leaves\n rawData: Row[];\n};\n\nexport function getHierarchy(\n idKey: string,\n parentIdKey: string,\n heightIdKey: string | null,\n labelIdKey: string | null,\n rows: Row[],\n useAllNodesAsLeaves = false\n) {\n const groupedByNodeId = lodash.groupBy(rows, row => row[idKey]);\n const uniqueIds = Object.keys(groupedByNodeId);\n\n const uniqueNodeRows: TreeNodeData[] = uniqueIds\n .map(idKey => {\n const rows = groupedByNodeId[idKey];\n const row = rows[0]; // some values must be the same for every row with the same NodeId, we can take them from any row of group\n return ({\n id: String(idKey),\n parentId: row[parentIdKey] === null ? null : String(row[parentIdKey]),\n label: labelIdKey ? lodash.uniq(rows.map(row => row[labelIdKey])).join(', ') : null,\n height: heightIdKey ? Number(row[heightIdKey]) : 1,\n isFake: false,\n rawData: rows, // save source row data to avoid any modifications\n } as TreeNodeData);\n });\n const tree = stratify<TreeNodeData>()\n .id(d => d.id)\n .parentId(d => d.parentId)(uniqueNodeRows);\n if (!useAllNodesAsLeaves) {\n return tree;\n }\n // for tree layout with every node aligned by side rows\n const leavesIdSet = new Set(tree.leaves().map(node => node.id));\n const noLeafRows = uniqueNodeRows.filter(row => !leavesIdSet.has(row.id));\n const extraRows = noLeafRows.map(row => ({\n id: `${row.id}_extra`,\n parentId: row.id,\n height: 0,\n label: null,\n isFake: true,\n rawData: row.rawData,\n }));\n const expandedRows = uniqueNodeRows.concat(extraRows);\n return stratify<TreeNodeData>()\n .id(d => d.id)\n .parentId(d => d.parentId)(expandedRows);\n}\n\nexport function updateLinksHeight(root: HierarchyPointNode<TreeNodeData>, chartHeight: number, alignLeavesToLine = false) {\n root.data.height = 0;\n function heightGetter(d: HierarchyPointNode<TreeNodeData>) {\n return d.data.height;\n }\n\n function maxLength(d: HierarchyPointNode<TreeNodeData>): number {\n return heightGetter(d) + (d.children ? (d3max(d.children, maxLength) as number) : 0);\n }\n\n function setHeight(d: HierarchyPointNode<TreeNodeData>, y0: number, k: number) {\n d.y = !d.children && alignLeavesToLine ? chartHeight : (y0 += heightGetter(d)) * k;\n if (d.children) {\n d.children.forEach(d => setHeight(d, y0, k));\n }\n }\n\n setHeight(root, 0, chartHeight / maxLength(root));\n}\n\nexport function updateNodesHorizontalPosition(root: HierarchyPointNode<TreeNodeData>) {\n root.descendants().forEach((d: HierarchyPointNode<TreeNodeData>) => {\n if (!d.children && d.data.isFake && d.parent) {\n d.parent.x = d.x;\n }\n });\n}\n"],"names":["getHierarchy","idKey","parentIdKey","heightIdKey","labelIdKey","rows","useAllNodesAsLeaves","groupedByNodeId","lodash","row","uniqueNodeRows","tree","stratify","d","leavesIdSet","node","extraRows","expandedRows","updateLinksHeight","root","chartHeight","alignLeavesToLine","heightGetter","maxLength","d3max","setHeight","y0","k","updateNodesHorizontalPosition"],"mappings":";;;AAcO,SAASA,EACZC,GACAC,GACAC,GACAC,GACAC,GACAC,IAAsB,IACxB;AACE,QAAMC,IAAkBC,EAAO,QAAQH,GAAM,CAAAI,MAAOA,EAAIR,CAAK,CAAC,GAGxDS,IAFY,OAAO,KAAKH,CAAe,EAGxC,IAAI,CAAAN,MAAS;AACV,UAAMI,IAAOE,EAAgBN,CAAK,GAC5BQ,IAAMJ,EAAK,CAAC;AAClB,WAAQ;AAAA,MACJ,IAAI,OAAOJ,CAAK;AAAA,MAChB,UAAUQ,EAAIP,CAAW,MAAM,OAAO,OAAO,OAAOO,EAAIP,CAAW,CAAC;AAAA,MACpE,OAAOE,IAAaI,EAAO,KAAKH,EAAK,IAAI,CAAAI,MAAOA,EAAIL,CAAU,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI;AAAA,MAC/E,QAAQD,IAAc,OAAOM,EAAIN,CAAW,CAAC,IAAI;AAAA,MACjD,QAAQ;AAAA,MACR,SAASE;AAAAA;AAAAA,IAAAA;AAAAA,EAEjB,CAAC,GACCM,IAAOC,EAAAA,EACR,GAAG,CAAAC,MAAKA,EAAE,EAAE,EACZ,SAAS,CAAAA,MAAKA,EAAE,QAAQ,EAAEH,CAAc;AAC7C,MAAI,CAACJ;AACD,WAAOK;AAGX,QAAMG,IAAc,IAAI,IAAIH,EAAK,OAAA,EAAS,IAAI,CAAAI,MAAQA,EAAK,EAAE,CAAC,GAExDC,IADaN,EAAe,OAAO,CAAAD,MAAO,CAACK,EAAY,IAAIL,EAAI,EAAE,CAAC,EAC3C,IAAI,CAAAA,OAAQ;AAAA,IACrC,IAAI,GAAGA,EAAI,EAAE;AAAA,IACb,UAAUA,EAAI;AAAA,IACd,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,SAASA,EAAI;AAAA,EAAA,EACf,GACIQ,IAAeP,EAAe,OAAOM,CAAS;AACpD,SAAOJ,EAAAA,EACF,GAAG,CAAAC,MAAKA,EAAE,EAAE,EACZ,SAAS,CAAAA,MAAKA,EAAE,QAAQ,EAAEI,CAAY;AAC/C;AAEO,SAASC,EAAkBC,GAAwCC,GAAqBC,IAAoB,IAAO;AACtHF,EAAAA,EAAK,KAAK,SAAS;AACnB,WAASG,EAAaT,GAAqC;AACvD,WAAOA,EAAE,KAAK;AAAA,EAClB;AAEA,WAASU,EAAUV,GAA6C;AAC5D,WAAOS,EAAaT,CAAC,KAAKA,EAAE,WAAYW,EAAMX,EAAE,UAAUU,CAAS,IAAe;AAAA,EACtF;AAEA,WAASE,EAAUZ,GAAqCa,GAAYC,GAAW;AAC3Ed,IAAAA,EAAE,IAAI,CAACA,EAAE,YAAYQ,IAAoBD,KAAeM,KAAMJ,EAAaT,CAAC,KAAKc,GAC7Ed,EAAE,YACFA,EAAE,SAAS,QAAQ,CAAAA,MAAKY,EAAUZ,GAAGa,GAAIC,CAAC,CAAC;AAAA,EAEnD;AAEAF,IAAUN,GAAM,GAAGC,IAAcG,EAAUJ,CAAI,CAAC;AACpD;AAEO,SAASS,EAA8BT,GAAwC;AAClFA,EAAAA,EAAK,YAAA,EAAc,QAAQ,CAACN,MAAwC;AAC5D,KAACA,EAAE,YAAYA,EAAE,KAAK,UAAUA,EAAE,WAClCA,EAAE,OAAO,IAAIA,EAAE;AAAA,EAEvB,CAAC;AACL;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"getHierarchyData.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/dendro/getHierarchyData.ts"],"sourcesContent":["import { max as d3max } from 'd3-array';\nimport { type HierarchyPointNode, stratify } from 'd3-hierarchy';\nimport { groupBy, uniq } from 'lodash';\nimport type { DataFrame } from '../DataFrame';\n\nexport type TreeNodeData = {\n id: string;\n parentId: string | null;\n height: number;\n label: string | null;\n isFake: boolean; // true for additional nodes for mode with all nodes used as leaves\n rawIndexes: number[];\n};\n\nexport function getHierarchy(\n dataFrame: DataFrame,\n idKey: string,\n parentIdKey: string,\n heightIdKey: string | null,\n labelIdKey: string | null,\n useAllNodesAsLeaves = false\n) {\n const groupedByNodeId = groupBy(dataFrame.rowIndexes, idx => dataFrame.getColumnValue(idKey, idx));\n const uniqueKeys = Object.keys(groupedByNodeId);\n\n const uniqueNodeRows: TreeNodeData[] = uniqueKeys\n .map((key) => {\n const indexes = groupedByNodeId[key];\n const first = indexes[0]; // some values must be the same for every row with the same NodeId, we can take them from any row of group\n const parentId = dataFrame.getColumnValue(parentIdKey, first);\n const label = labelIdKey ? uniq(indexes.map(idx => dataFrame.getColumnValue(labelIdKey, idx))).join(', ') : null;\n const height = heightIdKey ? Number(dataFrame.getColumnValue(heightIdKey, first)) : 1;\n return ({\n id: String(key),\n parentId: parentId === null ? null : String(parentId),\n label,\n height,\n isFake: false,\n rawIndexes: indexes, // save source row data to avoid any modifications\n } as TreeNodeData);\n });\n const tree = stratify<TreeNodeData>()\n .id(d => d.id)\n .parentId(d => d.parentId)(uniqueNodeRows);\n if (!useAllNodesAsLeaves) {\n return tree;\n }\n // for tree layout with every node aligned by side rows\n const leavesIdSet = new Set(tree.leaves().map(node => node.id));\n const noLeafRows = uniqueNodeRows.filter(row => !leavesIdSet.has(row.id));\n const extraRows = noLeafRows.map(row => ({\n id: `${row.id}_extra`,\n parentId: row.id,\n height: 0,\n label: null,\n isFake: true,\n rawIndexes: row.rawIndexes,\n }));\n const expandedRows = uniqueNodeRows.concat(extraRows);\n return stratify<TreeNodeData>()\n .id(d => d.id)\n .parentId(d => d.parentId)(expandedRows);\n}\n\nexport function updateLinksHeight(root: HierarchyPointNode<TreeNodeData>, chartHeight: number, alignLeavesToLine = false) {\n root.data.height = 0;\n function heightGetter(d: HierarchyPointNode<TreeNodeData>) {\n return d.data.height;\n }\n\n function maxLength(d: HierarchyPointNode<TreeNodeData>): number {\n return heightGetter(d) + (d.children ? (d3max(d.children, maxLength) as number) : 0);\n }\n\n function setHeight(d: HierarchyPointNode<TreeNodeData>, y0: number, k: number) {\n d.y = !d.children && alignLeavesToLine ? chartHeight : (y0 += heightGetter(d)) * k;\n if (d.children) {\n d.children.forEach(d => setHeight(d, y0, k));\n }\n }\n\n setHeight(root, 0, chartHeight / maxLength(root));\n}\n\nexport function updateNodesHorizontalPosition(root: HierarchyPointNode<TreeNodeData>) {\n root.descendants().forEach((d: HierarchyPointNode<TreeNodeData>) => {\n if (!d.children && d.data.isFake && d.parent) {\n d.parent.x = d.x;\n }\n });\n}\n"],"names":["getHierarchy","dataFrame","idKey","parentIdKey","heightIdKey","labelIdKey","useAllNodesAsLeaves","groupedByNodeId","groupBy","idx","uniqueNodeRows","key","indexes","first","parentId","label","uniq","height","tree","stratify","d","leavesIdSet","node","extraRows","row","expandedRows","updateLinksHeight","root","chartHeight","alignLeavesToLine","heightGetter","maxLength","d3max","setHeight","y0","k","updateNodesHorizontalPosition"],"mappings":";;;AAcO,SAASA,EACZC,GACAC,GACAC,GACAC,GACAC,GACAC,IAAsB,IACxB;AACE,QAAMC,IAAkBC,EAAAA,QAAQP,EAAU,YAAY,CAAA,MAAOA,EAAU,eAAeC,GAAOO,CAAG,CAAC,GAG3FC,IAFa,OAAO,KAAKH,CAAe,EAGzC,IAAI,CAACI,MAAQ;AACV,UAAMC,IAAUL,EAAgBI,CAAG,GAC7BE,IAAQD,EAAQ,CAAC,GACjBE,IAAWb,EAAU,eAAeE,GAAaU,CAAK,GACtDE,IAAQV,IAAaW,EAAAA,KAAKJ,EAAQ,IAAI,CAAAH,MAAOR,EAAU,eAAeI,GAAYI,CAAG,CAAC,CAAC,EAAE,KAAK,IAAI,IAAI,MACtGQ,IAASb,IAAc,OAAOH,EAAU,eAAeG,GAAaS,CAAK,CAAC,IAAI;AACpF,WAAQ;AAAA,MACJ,IAAI,OAAOF,CAAG;AAAA,MACd,UAAUG,MAAa,OAAO,OAAO,OAAOA,CAAQ;AAAA,MACpD,OAAAC;AAAAA,MACA,QAAAE;AAAAA,MACA,QAAQ;AAAA,MACR,YAAYL;AAAAA;AAAAA,IAAA;AAAA,EAEpB,CAAC,GACCM,IAAOC,EAAAA,EACR,GAAG,CAAAC,MAAKA,EAAE,EAAE,EACZ,SAAS,CAAAA,MAAKA,EAAE,QAAQ,EAAEV,CAAc;AAC7C,MAAI,CAACJ;AACD,WAAOY;AAGX,QAAMG,IAAc,IAAI,IAAIH,EAAK,OAAA,EAAS,IAAI,CAAAI,MAAQA,EAAK,EAAE,CAAC,GAExDC,IADab,EAAe,OAAO,CAAAc,MAAO,CAACH,EAAY,IAAIG,EAAI,EAAE,CAAC,EAC3C,IAAI,CAAAA,OAAQ;AAAA,IACrC,IAAI,GAAGA,EAAI,EAAE;AAAA,IACb,UAAUA,EAAI;AAAA,IACd,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,YAAYA,EAAI;AAAA,EAAA,EAClB,GACIC,IAAef,EAAe,OAAOa,CAAS;AACpD,SAAOJ,EAAAA,EACF,GAAG,CAAAC,MAAKA,EAAE,EAAE,EACZ,SAAS,CAAAA,MAAKA,EAAE,QAAQ,EAAEK,CAAY;AAC/C;AAEO,SAASC,EAAkBC,GAAwCC,GAAqBC,IAAoB,IAAO;AACtHF,EAAAA,EAAK,KAAK,SAAS;AACnB,WAASG,EAAaV,GAAqC;AACvD,WAAOA,EAAE,KAAK;AAAA,EAClB;AAEA,WAASW,EAAUX,GAA6C;AAC5D,WAAOU,EAAaV,CAAC,KAAKA,EAAE,WAAYY,EAAMZ,EAAE,UAAUW,CAAS,IAAe;AAAA,EACtF;AAEA,WAASE,EAAUb,GAAqCc,GAAYC,GAAW;AAC3Ef,MAAE,IAAI,CAACA,EAAE,YAAYS,IAAoBD,KAAeM,KAAMJ,EAAaV,CAAC,KAAKe,GAC7Ef,EAAE,YACFA,EAAE,SAAS,QAAQ,CAAAA,MAAKa,EAAUb,GAAGc,GAAIC,CAAC,CAAC;AAAA,EAEnD;AAEAF,EAAAA,EAAUN,GAAM,GAAGC,IAAcG,EAAUJ,CAAI,CAAC;AACpD;AAEO,SAASS,EAA8BT,GAAwC;AAClFA,EAAAA,EAAK,YAAA,EAAc,QAAQ,CAACP,MAAwC;AAC5D,KAACA,EAAE,YAAYA,EAAE,KAAK,UAAUA,EAAE,WAClCA,EAAE,OAAO,IAAIA,EAAE;AAAA,EAEvB,CAAC;AACL;","x_google_ignoreList":[0]}
@@ -1,147 +1,144 @@
1
- import { AbstractChart as S } from "../AbstractChart.js";
2
- import { USER_UPDATE_EVENT as _ } from "./constants.js";
3
- import { getHeatmapData as A } from "./getHeatmapData.js";
4
- import { getHierarchy as E } from "./getHierarchyData.js";
5
- import { renderToString as w } from "../node_modules/react-dom/server.browser.js";
6
- import { undefined as L } from "../node_modules/zod/lib/index.js";
7
- import N from "./ChartRenderer.js";
8
- import { DendroSettingsImpl as b } from "./DendroSettingsImpl.js";
9
- import C from "../node_modules/lodash/lodash.js";
10
- var R = Object.defineProperty, I = (u, a, t) => a in u ? R(u, a, { enumerable: !0, configurable: !0, writable: !0, value: t }) : u[a] = t, g = (u, a, t) => I(u, typeof a != "symbol" ? a + "" : a, t);
11
- function f(u) {
12
- return typeof u != "object" ? !1 : "valuesMap" in u;
1
+ import { l as y } from "../node_modules/lodash/lodash.js";
2
+ import { renderToString as S } from "../node_modules/react-dom/server.browser.js";
3
+ import { undefined as C } from "../node_modules/zod/lib/index.js";
4
+ import { AbstractChart as A } from "../AbstractChart.js";
5
+ import _ from "./ChartRenderer.js";
6
+ import { USER_UPDATE_EVENT as E } from "./constants.js";
7
+ import { DendroSettingsImpl as D } from "./DendroSettingsImpl.js";
8
+ import { getHeatmapData as w } from "./getHeatmapData.js";
9
+ import { getHierarchy as L } from "./getHierarchyData.js";
10
+ var R = Object.defineProperty, N = (o, e, t) => e in o ? R(o, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[e] = t, v = (o, e, t) => N(o, typeof e != "symbol" ? e + "" : e, t);
11
+ function g(o) {
12
+ return typeof o != "object" ? !1 : "valuesMap" in o;
13
13
  }
14
- function y(u, a) {
15
- const { nodeColor: t, nodeShape: e, lineColor: r } = a, m = [t, e, r].filter(
16
- f
14
+ function f(o, e) {
15
+ const { nodeColor: t, nodeShape: a, lineColor: r } = e, h = [t, a, r].filter(
16
+ g
17
17
  );
18
- return C.uniqBy(m, (d) => d.columnName.value).reduce((d, v) => {
19
- const { columnName: s } = v, i = C.uniqBy(u.rows, (n) => n[s.value]), o = (n) => String(n[s.value]), p = (n) => s.valueLabels ? String(n[s.valueLabels]) : o(n), h = /* @__PURE__ */ new Set(), c = i.reduce((n, l) => {
20
- const D = o(l);
21
- return n[D] || (n[D] = {}), n;
22
- }, {});
23
- return f(t) && s.value === t.columnName.value && (h.add("dotFill"), i.forEach((n) => {
24
- const l = o(n);
25
- c[l].dotFill = t.valuesMap[l];
26
- })), f(e) && s.value === e.columnName.value && (h.add("dotShape"), i.forEach((n) => {
27
- const l = o(n);
28
- c[l].dotShape = e.valuesMap[l];
29
- })), f(r) && s.value === r.columnName.value && (h.add("lineColor"), i.forEach((n) => {
30
- const l = o(n);
31
- c[l].lineColor = r.valuesMap[l];
32
- })), d[s.value] = {
33
- values: i.map(o).sort(),
34
- usedAes: [...h],
35
- aesMap: c,
36
- labels: i.reduce((n, l) => (n[o(l)] = p(l), n), {})
37
- }, d;
18
+ return y.uniqBy(h, (i) => i.columnName.value).reduce((i, p) => {
19
+ const { columnName: n } = p, l = o.getColumnCategories(n.value, !1), c = (s) => String(
20
+ (n.valueLabels ? o.getColumnValue(n.valueLabels, o.getColumnCategoryRowIndex(n.value, s)) : C) ?? s
21
+ ), u = /* @__PURE__ */ new Set(), d = l.reduce((s, m) => (s[m] || (s[m] = {}), s), {});
22
+ return g(t) && n.value === t.columnName.value && (u.add("dotFill"), l.forEach((s) => {
23
+ d[s].dotFill = t.valuesMap[s];
24
+ })), g(a) && n.value === a.columnName.value && (u.add("dotShape"), l.forEach((s) => {
25
+ d[s].dotShape = a.valuesMap[s];
26
+ })), g(r) && n.value === r.columnName.value && (u.add("lineColor"), l.forEach((s) => {
27
+ d[s].lineColor = r.valuesMap[s];
28
+ })), i[n.value] = {
29
+ values: l.sort(),
30
+ usedAes: [...u],
31
+ aesMap: d,
32
+ labels: l.reduce((s, m) => (s[m] = c(m), s), {})
33
+ }, i;
38
34
  }, {});
39
35
  }
40
- class H extends S {
41
- constructor(a, t, e) {
42
- super(a, t), g(this, "settings"), g(this, "onClick", () => L), g(this, "chartRenderer", new N()), g(this, "calculatedData", null), this.settings = new b(t), e && (this.onClick = e[0]);
36
+ class z extends A {
37
+ constructor(e, t, a) {
38
+ super(e, t), v(this, "settings"), v(this, "onClick", () => C), v(this, "chartRenderer", new _()), v(this, "calculatedData", null), this.settings = new D(t), a && (this.onClick = a[0]);
43
39
  }
44
- mount(a) {
40
+ mount(e) {
45
41
  try {
46
- this.chartRenderer.init(a), this._updateData(), this._updateChart();
42
+ this.chartRenderer.init(e), this._updateData(), this._updateChart();
47
43
  } catch (t) {
48
- t instanceof Error && this.chartRenderer.renderError(t.message);
44
+ t instanceof Error && (this.chartRenderer.renderError(t.message), console.error(t));
49
45
  }
50
46
  }
51
47
  unmount() {
52
48
  this.chartRenderer.clear();
53
49
  }
54
- updateSettingsAndData(a, t) {
50
+ updateSettingsAndData(e, t) {
55
51
  try {
56
- const e = this.settings, r = this.data;
57
- this.settings = new b(t), this.data = a, this._needUpdateCalculatedDataBySettings(e, this.settings) || this._needUpdateCalculatedDataByData(r, this.data) ? this._updateData() : this._updateAesInData(), this._updateChart();
58
- } catch (e) {
59
- e instanceof Error && this.chartRenderer.renderError(e.message);
52
+ const a = this.settings, r = this.data;
53
+ this.settings = new D(t), this.data = e, this._needUpdateCalculatedDataBySettings(a, this.settings) || this._needUpdateCalculatedDataByData(r, this.data) ? this._updateData() : this._updateAesInData(), this._updateChart();
54
+ } catch (a) {
55
+ a instanceof Error && (this.chartRenderer.renderError(a.message), console.error(a));
60
56
  }
61
57
  }
62
- updateChartState(a, t) {
58
+ updateChartState(e, t) {
63
59
  if (document) {
64
- const e = new CustomEvent(_, { detail: { [a]: t } });
65
- document.dispatchEvent(e);
60
+ const a = new CustomEvent(E, { detail: { [e]: t } });
61
+ document.dispatchEvent(a);
66
62
  }
67
63
  }
68
64
  export() {
69
- return this._updateChart(), w(this.chartRenderer.component);
65
+ return this._updateChart(), S(this.chartRenderer.component);
70
66
  }
71
- _needUpdateCalculatedDataBySettings(a, t) {
72
- var e, r;
73
- const { mode: m, id: d, parentId: v, heatmapAnnotation: s, heatmapAxis: i, heatmapGroup: o } = t;
74
- function p(h, c) {
75
- return h.length !== c.length || h.some((n, l) => n.value !== c[l].value);
67
+ _needUpdateCalculatedDataBySettings(e, t) {
68
+ var a, r;
69
+ const { mode: h, id: i, parentId: p, heatmapAnnotation: n, heatmapAxis: l, heatmapGroup: c } = t;
70
+ function u(d, s) {
71
+ return d.length !== s.length || d.some((m, b) => m.value !== s[b].value);
76
72
  }
77
- return a.mode !== m || a.id.value !== d.value || a.parentId.value !== v.value || ((e = a.heatmapAnnotation) == null ? void 0 : e.value) !== (s == null ? void 0 : s.value) || ((r = a.heatmapAxis) == null ? void 0 : r.value) !== (i == null ? void 0 : i.value) || p(a.heatmapGroup, o);
73
+ return e.mode !== h || e.id.value !== i.value || e.parentId.value !== p.value || ((a = e.heatmapAnnotation) == null ? void 0 : a.value) !== (n == null ? void 0 : n.value) || ((r = e.heatmapAxis) == null ? void 0 : r.value) !== (l == null ? void 0 : l.value) || u(e.heatmapGroup, c);
78
74
  }
79
- _needUpdateCalculatedDataByData(a, t) {
80
- const e = Object.keys(a.data), r = Object.keys(t.data);
81
- return a.id !== t.id || e.length !== r.length || e.some((m) => {
82
- var d;
83
- return a.data[m].length !== ((d = t.data[m]) == null ? void 0 : d.length);
75
+ _needUpdateCalculatedDataByData(e, t) {
76
+ const a = Object.keys(e.data), r = Object.keys(t.data);
77
+ return e.id !== t.id || a.length !== r.length || a.some((h) => {
78
+ var i;
79
+ return e.data[h].length !== ((i = t.data[h]) == null ? void 0 : i.length);
84
80
  });
85
81
  }
86
82
  _updateData() {
87
- const { mode: a, id: t, parentId: e, aes: r, heatmapAnnotation: m, heatmapAxis: d, heatmapGroup: v, heatmapSettings: s, height: i, labels: o } = this.settings, p = E(
83
+ const { mode: e, id: t, parentId: a, aes: r, heatmapAnnotation: h, heatmapAxis: i, heatmapGroup: p, heatmapSettings: n, height: l, labels: c } = this.settings, u = L(
84
+ this.data,
88
85
  t.value,
89
- e.value,
90
- (i == null ? void 0 : i.value) ?? null,
91
- o.valueLabels ?? o.value ?? null,
92
- this.data.rows,
93
- a === "useAllNodesAsLeaves"
94
- ), h = A(this.data, s.valueType, m, d, v, t, p), c = y(this.data, r);
86
+ a.value,
87
+ (l == null ? void 0 : l.value) ?? null,
88
+ c.valueLabels ?? c.value ?? null,
89
+ e === "useAllNodesAsLeaves"
90
+ ), d = w(this.data, n.valueType, h, i, p, t, u), s = f(this.data, r);
95
91
  this.calculatedData = {
96
92
  chartSizes: this.chartRenderer.chartSizes,
97
- hierarchy: p,
98
- heatmapData: h,
99
- legendLabels: c
93
+ hierarchy: u,
94
+ heatmapData: d,
95
+ legendLabels: s
100
96
  };
101
97
  }
102
98
  _updateAesInData() {
103
- this.calculatedData && (this.calculatedData.legendLabels = y(this.data, this.settings.aes));
99
+ this.calculatedData && (this.calculatedData.legendLabels = f(this.data, this.settings.aes));
104
100
  }
105
101
  _updateChart() {
106
102
  if (!this.calculatedData)
107
103
  return;
108
104
  const {
109
- heatmapAnnotation: a,
105
+ heatmapAnnotation: e,
110
106
  chartSettings: t,
111
- connectionType: e,
107
+ connectionType: a,
112
108
  edgeInheritance: r,
113
- rootPosition: m,
114
- showNodes: d,
115
- showEdges: v,
116
- showLeavesLabels: s,
117
- showNodesLabels: i,
118
- aes: o,
119
- labels: p,
120
- heatmapSettings: h,
121
- leavesMode: c
109
+ rootPosition: h,
110
+ showNodes: i,
111
+ showEdges: p,
112
+ showLeavesLabels: n,
113
+ showNodesLabels: l,
114
+ aes: c,
115
+ labels: u,
116
+ heatmapSettings: d,
117
+ leavesMode: s
122
118
  } = this.settings;
123
119
  this.chartRenderer.render(
120
+ this.data,
124
121
  t,
125
122
  this.calculatedData.hierarchy,
126
- e,
127
- m,
123
+ a,
124
+ h,
128
125
  r,
129
- d,
130
- v,
131
- s,
132
126
  i,
133
- o,
134
127
  p,
135
- a,
128
+ n,
129
+ l,
130
+ c,
131
+ u,
132
+ e,
136
133
  this.calculatedData.heatmapData,
137
- h,
134
+ d,
138
135
  this.calculatedData.legendLabels,
139
- c,
136
+ s,
140
137
  this.onClick
141
138
  );
142
139
  }
143
140
  }
144
141
  export {
145
- H as ChartDendro
142
+ z as ChartDendro
146
143
  };
147
144
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/dendro/index.ts"],"sourcesContent":["import {AbstractChart} from '../AbstractChart';\nimport type {ChartSizes} from './components/types';\nimport {USER_UPDATE_EVENT} from './constants';\nimport type {HeatmapData} from './getHeatmapData';\nimport {getHeatmapData} from './getHeatmapData';\nimport type {TreeNodeData} from './getHierarchyData';\nimport {getHierarchy} from './getHierarchyData';\nimport {renderToString} from 'react-dom/server';\nimport {undefined} from 'zod';\nimport ChartRenderer from './ChartRenderer';\nimport type {\n AesItem,\n AesMap,\n CategoricalAesFromColumn,\n ClickEventData,\n ColumnName,\n ContinuousAesFromColumn,\n DendroEventHandlers,\n DendroLegendInfo,\n DendroSettings,\n LineShape,\n PointShape,\n Row,\n} from '../types';\nimport {DendroSettingsImpl} from './DendroSettingsImpl';\nimport type {DataFrame} from '../DataFrame';\nimport type {HierarchyNode} from 'd3-hierarchy';\nimport lodash from 'lodash';\n\nfunction isCategoricalAes<InputType extends string | number | PointShape | LineShape>(\n item: InputType | CategoricalAesFromColumn<InputType> | ContinuousAesFromColumn<InputType>\n): item is CategoricalAesFromColumn<InputType> {\n if (typeof item !== 'object') {\n return false;\n }\n return 'valuesMap' in item;\n}\nfunction getLegendLabelsMap(data: DataFrame, aes: DendroSettingsImpl['aes']): DendroLegendInfo {\n const {nodeColor, nodeShape, lineColor} = aes;\n const aesGrouping: CategoricalAesFromColumn<string | PointShape>[] = [nodeColor, nodeShape, lineColor].filter(\n isCategoricalAes\n );\n const uniqueColumns = lodash.uniqBy(aesGrouping, item => item.columnName.value);\n return uniqueColumns.reduce((res: DendroLegendInfo, item) => {\n const {columnName} = item;\n const uniqRowsByGrouping = lodash.uniqBy(data.rows, row => row[columnName.value]);\n const getValue = (row: Row) => String(row[columnName.value]);\n const getValueLabel = (row: Row) =>\n columnName.valueLabels ? String(row[columnName.valueLabels]) : getValue(row);\n\n const usedAes = new Set<keyof AesItem>();\n const aesMap: AesMap = uniqRowsByGrouping.reduce((res: AesMap, row) => {\n const value = getValue(row);\n if (!res[value]) {\n res[value] = {} as AesItem;\n }\n return res;\n }, {});\n if (isCategoricalAes(nodeColor) && columnName.value === nodeColor.columnName.value) {\n usedAes.add('dotFill');\n uniqRowsByGrouping.forEach(row => {\n const value = getValue(row);\n aesMap[value]['dotFill'] = nodeColor.valuesMap[value];\n });\n }\n if (isCategoricalAes(nodeShape) && columnName.value === nodeShape.columnName.value) {\n usedAes.add('dotShape');\n uniqRowsByGrouping.forEach(row => {\n const value = getValue(row);\n aesMap[value]['dotShape'] = nodeShape.valuesMap[value];\n });\n }\n if (isCategoricalAes(lineColor) && columnName.value === lineColor.columnName.value) {\n usedAes.add('lineColor');\n uniqRowsByGrouping.forEach(row => {\n const value = getValue(row);\n aesMap[value]['lineColor'] = lineColor.valuesMap[value];\n });\n }\n res[columnName.value] = {\n values: uniqRowsByGrouping.map(getValue).sort(),\n usedAes: [...usedAes],\n aesMap,\n labels: uniqRowsByGrouping.reduce((res: Record<string, string>, row) => {\n res[getValue(row)] = getValueLabel(row);\n return res;\n }, {}),\n };\n return res;\n }, {});\n}\n\nexport class ChartDendro extends AbstractChart {\n settings: DendroSettingsImpl;\n onClick: (data: ClickEventData) => void = () => undefined;\n chartRenderer = new ChartRenderer();\n\n calculatedData: {\n chartSizes: ChartSizes;\n hierarchy: HierarchyNode<TreeNodeData>;\n heatmapData: HeatmapData | null;\n legendLabels: DendroLegendInfo;\n } | null = null;\n\n constructor(data: DataFrame, settings: DendroSettings, eventHandlers?: DendroEventHandlers) {\n super(data, settings);\n\n this.settings = new DendroSettingsImpl(settings);\n if (eventHandlers) {\n this.onClick = 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: DendroSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new DendroSettingsImpl(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 if (document) {\n const event = new CustomEvent(USER_UPDATE_EVENT, {detail: {[field]: value}});\n document.dispatchEvent(event);\n }\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: DendroSettingsImpl, settings: DendroSettingsImpl) {\n const {mode, id, parentId, heatmapAnnotation, heatmapAxis, heatmapGroup} = settings;\n\n function compareColumnGroups(columns1: ColumnName[], columns2: ColumnName[]) {\n return (\n columns1.length !== columns2.length ||\n columns1.some((column, idx) => column.value !== columns2[idx].value)\n );\n }\n\n return (\n prevSettings.mode !== mode ||\n prevSettings.id.value !== id.value ||\n prevSettings.parentId.value !== parentId.value ||\n prevSettings.heatmapAnnotation?.value !== heatmapAnnotation?.value ||\n prevSettings.heatmapAxis?.value !== heatmapAxis?.value ||\n compareColumnGroups(prevSettings.heatmapGroup, heatmapGroup)\n );\n }\n\n _needUpdateCalculatedDataByData(prevData: DataFrame, data: DataFrame) {\n const prevKeys = Object.keys(prevData.data);\n const keys = Object.keys(data.data);\n return (\n prevData.id !== data.id ||\n prevKeys.length !== keys.length ||\n prevKeys.some(key => prevData.data[key].length !== data.data[key]?.length)\n );\n }\n\n _updateData() {\n const {mode, id, parentId, aes, heatmapAnnotation, heatmapAxis, heatmapGroup, heatmapSettings, height, labels} = this.settings;\n const hierarchy = getHierarchy(\n id.value,\n parentId.value,\n height?.value ?? null,\n labels.valueLabels ?? labels.value ?? null,\n this.data.rows,\n mode === 'useAllNodesAsLeaves'\n );\n const heatmapData = getHeatmapData(this.data, heatmapSettings.valueType, heatmapAnnotation, heatmapAxis, heatmapGroup, id, hierarchy);\n\n const legendLabels = getLegendLabelsMap(this.data, aes);\n\n this.calculatedData = {\n chartSizes: this.chartRenderer.chartSizes,\n hierarchy,\n heatmapData,\n legendLabels,\n };\n }\n\n _updateAesInData() {\n if (!this.calculatedData) {\n return;\n }\n this.calculatedData.legendLabels = getLegendLabelsMap(this.data, this.settings.aes);\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {\n heatmapAnnotation,\n chartSettings,\n connectionType,\n edgeInheritance,\n rootPosition,\n showNodes,\n showEdges,\n showLeavesLabels,\n showNodesLabels,\n aes,\n labels,\n heatmapSettings,\n leavesMode\n } = this.settings;\n\n this.chartRenderer.render(\n chartSettings,\n this.calculatedData.hierarchy,\n connectionType,\n rootPosition,\n edgeInheritance,\n showNodes,\n showEdges,\n showLeavesLabels,\n showNodesLabels,\n aes,\n labels,\n heatmapAnnotation,\n this.calculatedData.heatmapData,\n heatmapSettings,\n this.calculatedData.legendLabels,\n leavesMode,\n this.onClick\n );\n }\n}\n"],"names":["isCategoricalAes","item","getLegendLabelsMap","data","aes","nodeColor","nodeShape","lineColor","aesGrouping","lodash","res","columnName","uniqRowsByGrouping","row","getValue","getValueLabel","usedAes","aesMap","value","ChartDendro","AbstractChart","settings","eventHandlers","__publicField","undefined","ChartRenderer","DendroSettingsImpl","node","err","previousSettings","previousData","field","event","USER_UPDATE_EVENT","renderToString","prevSettings","mode","id","parentId","heatmapAnnotation","heatmapAxis","heatmapGroup","compareColumnGroups","columns1","columns2","column","idx","_a","_b","prevData","prevKeys","keys","key","heatmapSettings","height","labels","hierarchy","getHierarchy","heatmapData","getHeatmapData","legendLabels","chartSettings","connectionType","edgeInheritance","rootPosition","showNodes","showEdges","showLeavesLabels","showNodesLabels","leavesMode"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/dendro/index.ts"],"sourcesContent":["import type { HierarchyNode } from 'd3-hierarchy';\nimport { uniqBy } from 'lodash';\nimport { renderToString } from 'react-dom/server';\nimport { undefined } from 'zod';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport type {\n AesItem,\n AesRecord,\n CategoricalAesFromColumn,\n Category,\n ClickEventData,\n ColumnName,\n ContinuousAesFromColumn,\n DendroEventHandlers,\n DendroLegendInfo,\n DendroSettings,\n LineShape,\n PointShape\n} from '../types';\nimport ChartRenderer from './ChartRenderer';\nimport type { ChartSizes } from './components/types';\nimport { USER_UPDATE_EVENT } from './constants';\nimport { DendroSettingsImpl } from './DendroSettingsImpl';\nimport type { HeatmapData } from './getHeatmapData';\nimport { getHeatmapData } from './getHeatmapData';\nimport type { TreeNodeData } from './getHierarchyData';\nimport { getHierarchy } from './getHierarchyData';\n\nfunction isCategoricalAes<InputType extends string | number | PointShape | LineShape>(\n item: InputType | CategoricalAesFromColumn<InputType> | ContinuousAesFromColumn<InputType>\n): item is CategoricalAesFromColumn<InputType> {\n if (typeof item !== 'object') {\n return false;\n }\n return 'valuesMap' in item;\n}\nfunction getLegendLabelsMap(data: DataFrame, aes: DendroSettingsImpl['aes']): DendroLegendInfo {\n const {nodeColor, nodeShape, lineColor} = aes;\n const aesGrouping: CategoricalAesFromColumn<string | PointShape>[] = [nodeColor, nodeShape, lineColor].filter(\n isCategoricalAes\n );\n const uniqueColumns = uniqBy(aesGrouping, item => item.columnName.value);\n return uniqueColumns.reduce((res: DendroLegendInfo, item) => {\n const {columnName} = item;\n const categories = data.getColumnCategories(columnName.value, false);\n const getValueLabel = (category: Category) => String(\n (columnName.valueLabels\n ? data.getColumnValue(columnName.valueLabels, data.getColumnCategoryRowIndex(columnName.value, category))\n : undefined\n ) ?? category\n );\n\n const usedAes = new Set<keyof AesItem>();\n const aesMap: AesRecord = categories.reduce((res: AesRecord, category) => {\n if (!res[category]) {\n res[category] = {} as AesItem;\n }\n return res;\n }, {});\n if (isCategoricalAes(nodeColor) && columnName.value === nodeColor.columnName.value) {\n usedAes.add('dotFill');\n categories.forEach(category => {\n aesMap[category]['dotFill'] = nodeColor.valuesMap[category];\n });\n }\n if (isCategoricalAes(nodeShape) && columnName.value === nodeShape.columnName.value) {\n usedAes.add('dotShape');\n categories.forEach(category => {\n aesMap[category]['dotShape'] = nodeShape.valuesMap[category];\n });\n }\n if (isCategoricalAes(lineColor) && columnName.value === lineColor.columnName.value) {\n usedAes.add('lineColor');\n categories.forEach(category => {\n aesMap[category]['lineColor'] = lineColor.valuesMap[category];\n });\n }\n res[columnName.value] = {\n values: categories.sort(),\n usedAes: [...usedAes],\n aesMap,\n labels: categories.reduce((res: Record<string, string>, category) => {\n res[category] = getValueLabel(category);\n return res;\n }, {}),\n };\n return res;\n }, {});\n}\n\nexport class ChartDendro extends AbstractChart {\n settings: DendroSettingsImpl;\n onClick: (data: ClickEventData) => void = () => undefined;\n chartRenderer = new ChartRenderer();\n\n calculatedData: {\n chartSizes: ChartSizes;\n hierarchy: HierarchyNode<TreeNodeData>;\n heatmapData: HeatmapData | null;\n legendLabels: DendroLegendInfo;\n } | null = null;\n\n constructor(data: DataFrame, settings: DendroSettings, eventHandlers?: DendroEventHandlers) {\n super(data, settings);\n\n this.settings = new DendroSettingsImpl(settings);\n if (eventHandlers) {\n this.onClick = 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: DendroSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new DendroSettingsImpl(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 if (document) {\n const event = new CustomEvent(USER_UPDATE_EVENT, {detail: {[field]: value}});\n document.dispatchEvent(event);\n }\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: DendroSettingsImpl, settings: DendroSettingsImpl) {\n const {mode, id, parentId, heatmapAnnotation, heatmapAxis, heatmapGroup} = settings;\n\n function compareColumnGroups(columns1: ColumnName[], columns2: ColumnName[]) {\n return (\n columns1.length !== columns2.length ||\n columns1.some((column, idx) => column.value !== columns2[idx].value)\n );\n }\n\n return (\n prevSettings.mode !== mode ||\n prevSettings.id.value !== id.value ||\n prevSettings.parentId.value !== parentId.value ||\n prevSettings.heatmapAnnotation?.value !== heatmapAnnotation?.value ||\n prevSettings.heatmapAxis?.value !== heatmapAxis?.value ||\n compareColumnGroups(prevSettings.heatmapGroup, heatmapGroup)\n );\n }\n\n _needUpdateCalculatedDataByData(prevData: DataFrame, data: DataFrame) {\n const prevKeys = Object.keys(prevData.data);\n const keys = Object.keys(data.data);\n return (\n prevData.id !== data.id ||\n prevKeys.length !== keys.length ||\n prevKeys.some(key => prevData.data[key].length !== data.data[key]?.length)\n );\n }\n\n _updateData() {\n const {mode, id, parentId, aes, heatmapAnnotation, heatmapAxis, heatmapGroup, heatmapSettings, height, labels} = this.settings;\n const hierarchy = getHierarchy(\n this.data,\n id.value,\n parentId.value,\n height?.value ?? null,\n labels.valueLabels ?? labels.value ?? null,\n mode === 'useAllNodesAsLeaves'\n );\n const heatmapData = getHeatmapData(this.data, heatmapSettings.valueType, heatmapAnnotation, heatmapAxis, heatmapGroup, id, hierarchy);\n\n const legendLabels = getLegendLabelsMap(this.data, aes);\n\n this.calculatedData = {\n chartSizes: this.chartRenderer.chartSizes,\n hierarchy,\n heatmapData,\n legendLabels,\n };\n }\n\n _updateAesInData() {\n if (!this.calculatedData) {\n return;\n }\n this.calculatedData.legendLabels = getLegendLabelsMap(this.data, this.settings.aes);\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {\n heatmapAnnotation,\n chartSettings,\n connectionType,\n edgeInheritance,\n rootPosition,\n showNodes,\n showEdges,\n showLeavesLabels,\n showNodesLabels,\n aes,\n labels,\n heatmapSettings,\n leavesMode\n } = this.settings;\n\n this.chartRenderer.render(\n this.data,\n chartSettings,\n this.calculatedData.hierarchy,\n connectionType,\n rootPosition,\n edgeInheritance,\n showNodes,\n showEdges,\n showLeavesLabels,\n showNodesLabels,\n aes,\n labels,\n heatmapAnnotation,\n this.calculatedData.heatmapData,\n heatmapSettings,\n this.calculatedData.legendLabels,\n leavesMode,\n this.onClick\n );\n }\n}\n"],"names":["isCategoricalAes","item","getLegendLabelsMap","data","aes","nodeColor","nodeShape","lineColor","aesGrouping","uniqBy","res","columnName","categories","getValueLabel","category","undefined","usedAes","aesMap","ChartDendro","AbstractChart","settings","eventHandlers","__publicField","ChartRenderer","DendroSettingsImpl","node","err","previousSettings","previousData","field","value","event","USER_UPDATE_EVENT","renderToString","prevSettings","mode","id","parentId","heatmapAnnotation","heatmapAxis","heatmapGroup","compareColumnGroups","columns1","columns2","column","idx","_a","_b","prevData","prevKeys","keys","c","key","heatmapSettings","height","labels","hierarchy","getHierarchy","heatmapData","getHeatmapData","legendLabels","chartSettings","connectionType","edgeInheritance","rootPosition","showNodes","showEdges","showLeavesLabels","showNodesLabels","leavesMode"],"mappings":";;;;;;;;;;AA6BA,SAASA,EACLC,GAC2C;AAC3C,SAAI,OAAOA,KAAS,WACT,KAEJ,eAAeA;AAC1B;AACA,SAASC,EAAmBC,GAAiBC,GAAkD;AAC3F,QAAM,EAAC,WAAAC,GAAW,WAAAC,GAAW,WAAAC,EAAAA,IAAaH,GACpCI,IAA+D,CAACH,GAAWC,GAAWC,CAAS,EAAE;AAAA,IACnGP;AAAAA,EAAA;AAGJ,SADsBS,EAAAA,OAAOD,GAAa,CAAAP,MAAQA,EAAK,WAAW,KAAK,EAClD,OAAO,CAACS,GAAuBT,MAAS;AACzD,UAAM,EAAC,YAAAU,EAAAA,IAAcV,GACfW,IAAaT,EAAK,oBAAoBQ,EAAW,OAAO,EAAK,GAC7DE,IAAgB,CAACC,MAAuB;AAAA,OACzCH,EAAW,cACNR,EAAK,eAAeQ,EAAW,aAAaR,EAAK,0BAA0BQ,EAAW,OAAOG,CAAQ,CAAC,IACtGC,MACDD;AAAAA,IAAA,GAGHE,wBAAc,IAAA,GACdC,IAAoBL,EAAW,OAAO,CAACF,GAAgBI,OACpDJ,EAAII,CAAQ,MACbJ,EAAII,CAAQ,IAAI,CAAA,IAEbJ,IACR,EAAE;AACL,WAAIV,EAAiBK,CAAS,KAAKM,EAAW,UAAUN,EAAU,WAAW,UACzEW,EAAQ,IAAI,SAAS,GACrBJ,EAAW,QAAQ,CAAAE,MAAY;AAC3BG,QAAOH,CAAQ,EAAE,UAAaT,EAAU,UAAUS,CAAQ;AAAA,IAC9D,CAAC,IAEDd,EAAiBM,CAAS,KAAKK,EAAW,UAAUL,EAAU,WAAW,UACzEU,EAAQ,IAAI,UAAU,GACtBJ,EAAW,QAAQ,CAAAE,MAAY;AAC3BG,QAAOH,CAAQ,EAAE,WAAcR,EAAU,UAAUQ,CAAQ;AAAA,IAC/D,CAAC,IAEDd,EAAiBO,CAAS,KAAKI,EAAW,UAAUJ,EAAU,WAAW,UACzES,EAAQ,IAAI,WAAW,GACvBJ,EAAW,QAAQ,CAAAE,MAAY;AAC3BG,QAAOH,CAAQ,EAAE,YAAeP,EAAU,UAAUO,CAAQ;AAAA,IAChE,CAAC,IAELJ,EAAIC,EAAW,KAAK,IAAI;AAAA,MACpB,QAAQC,EAAW,KAAA;AAAA,MACnB,SAAS,CAAC,GAAGI,CAAO;AAAA,MACpB,QAAAC;AAAAA,MACA,QAAQL,EAAW,OAAO,CAACF,GAA6BI,OACpDJ,EAAII,CAAQ,IAAID,EAAcC,CAAQ,GAC/BJ,IACR,CAAA,CAAE;AAAA,IAAA,GAEFA;AAAAA,EACX,GAAG,CAAA,CAAE;AACT;AAEO,MAAMQ,UAAoBC,EAAc;AAAA,EAY3C,YAAYhB,GAAiBiB,GAA0BC,GAAqC;AACxF,UAAMlB,GAAMiB,CAAQ,GAZxBE,EAAA,MAAA,UAAA,GACAA,EAAA,iBAA0C,MAAMP,CAAAA,GAChDO,EAAA,MAAA,iBAAgB,IAAIC,EAAAA,CAAA,GAEpBD,EAAA,MAAA,kBAKW,IAAA,GAKP,KAAK,WAAW,IAAIE,EAAmBJ,CAAQ,GAC3CC,MACA,KAAK,UAAUA,EAAc,CAAC;AAAA,EAEtC;AAAA,EAEA,MAAMI,GAAmB;AACrB,QAAI;AACA,WAAK,cAAc,KAAKA,CAAI,GAC5B,KAAK,YAAA,GACL,KAAK,aAAA;AAAA,IACT,SAASC,GAAK;AACNA,mBAAe,UACf,KAAK,cAAc,YAAYA,EAAI,OAAiB,GACpD,QAAQ,MAAMA,CAAG;AAAA,IAEzB;AAAA,EACJ;AAAA,EAEA,UAAU;AACN,SAAK,cAAc,MAAA;AAAA,EACvB;AAAA,EAEA,sBAAsBvB,GAAiBiB,GAA0B;AAC7D,QAAI;AACA,YAAMO,IAAmB,KAAK,UACxBC,IAAe,KAAK;AAC1B,WAAK,WAAW,IAAIJ,EAAmBJ,CAAQ,GAC/C,KAAK,OAAOjB,GAER,KAAK,oCAAoCwB,GAAkB,KAAK,QAAQ,KACxE,KAAK,gCAAgCC,GAAc,KAAK,IAAI,IAE5D,KAAK,YAAA,IAEL,KAAK,oBAET,KAAK,aAAA;AAAA,IACT,SAASF,GAAK;AACNA,MAAAA,aAAe,UACf,KAAK,cAAc,YAAYA,EAAI,OAAiB,GACpD,QAAQ,MAAMA,CAAG;AAAA,IAEzB;AAAA,EACJ;AAAA,EAEA,iBAAiBG,GAAeC,GAAgB;AAC5C,QAAI,UAAU;AACV,YAAMC,IAAQ,IAAI,YAAYC,GAAmB,EAAC,QAAQ,EAAC,CAACH,CAAK,GAAGC,EAAAA,GAAO;AAC3E,eAAS,cAAcC,CAAK;AAAA,IAChC;AAAA,EACJ;AAAA,EAEA,SAAiB;AACb,WAAA,KAAK,aAAA,GACEE,EAAe,KAAK,cAAc,SAAS;AAAA,EACtD;AAAA,EAEA,oCAAoCC,GAAkCd,GAA8B;;AAChG,UAAM,EAAC,MAAAe,GAAM,IAAAC,GAAI,UAAAC,GAAU,mBAAAC,GAAmB,aAAAC,GAAa,cAAAC,EAAAA,IAAgBpB;AAE3E,aAASqB,EAAoBC,GAAwBC,GAAwB;AACzE,aACID,EAAS,WAAWC,EAAS,UAC7BD,EAAS,KAAK,CAACE,GAAQC,MAAQD,EAAO,UAAUD,EAASE,CAAG,EAAE,KAAK;AAAA,IAE3E;AAEA,WACIX,EAAa,SAASC,KACtBD,EAAa,GAAG,UAAUE,EAAG,SAC7BF,EAAa,SAAS,UAAUG,EAAS,WACzCS,IAAAZ,EAAa,sBAAb,OAAA,SAAAY,EAAgC,YAAUR,KAAA,gBAAAA,EAAmB,YAC7DS,IAAAb,EAAa,gBAAb,OAAA,SAAAa,EAA0B,YAAUR,KAAA,gBAAAA,EAAa,UACjDE,EAAoBP,EAAa,cAAcM,CAAY;AAAA,EAEnE;AAAA,EAEA,gCAAgCQ,GAAqB7C,GAAiB;AAClE,UAAM8C,IAAW,OAAO,KAAKD,EAAS,IAAI,GACpCE,IAAO,OAAO,KAAK/C,EAAK,IAAI;AAClC,WACI6C,EAAS,OAAO7C,EAAK,MACrB8C,EAAS,WAAWC,EAAK,UACzBD,EAAS,KAAK,CAAAE,MAAA;;AAAO,aAAAH,EAAS,KAAKI,CAAG,EAAE,aAAWN,IAAA3C,EAAK,KAAKiD,CAAG,MAAb,OAAA,SAAAN,EAAgB;AAAA,IAAA,CAAM;AAAA,EAEjF;AAAA,EAEA,cAAc;AACV,UAAM,EAAC,MAAAX,GAAM,IAAAC,GAAI,UAAAC,GAAU,KAAAjC,GAAK,mBAAAkC,GAAmB,aAAAC,GAAa,cAAAC,GAAc,iBAAAa,GAAiB,QAAAC,GAAQ,QAAAC,EAAAA,IAAU,KAAK,UAChHC,IAAYC;AAAAA,MACd,KAAK;AAAA,MACLrB,EAAG;AAAA,MACHC,EAAS;AAAA,OACTiB,KAAA,OAAA,SAAAA,EAAQ,UAAS;AAAA,MACjBC,EAAO,eAAeA,EAAO,SAAS;AAAA,MACtCpB,MAAS;AAAA,IAAA,GAEPuB,IAAcC,EAAe,KAAK,MAAMN,EAAgB,WAAWf,GAAmBC,GAAaC,GAAcJ,GAAIoB,CAAS,GAE9HI,IAAe1D,EAAmB,KAAK,MAAME,CAAG;AAEtD,SAAK,iBAAiB;AAAA,MAClB,YAAY,KAAK,cAAc;AAAA,MAC/B,WAAAoD;AAAAA,MACA,aAAAE;AAAAA,MACA,cAAAE;AAAAA,IAAA;AAAA,EAER;AAAA,EAEA,mBAAmB;AACV,SAAK,mBAGV,KAAK,eAAe,eAAe1D,EAAmB,KAAK,MAAM,KAAK,SAAS,GAAG;AAAA,EACtF;AAAA,EAEA,eAAe;AACX,QAAI,CAAC,KAAK;AACN;AAEJ,UAAM;AAAA,MACF,mBAAAoC;AAAAA,MACA,eAAAuB;AAAAA,MACA,gBAAAC;AAAAA,MACA,iBAAAC;AAAAA,MACA,cAAAC;AAAAA,MACA,WAAAC;AAAAA,MACA,WAAAC;AAAAA,MACA,kBAAAC;AAAAA,MACA,iBAAAC;AAAAA,MACA,KAAAhE;AAAAA,MACA,QAAAmD;AAAAA,MACA,iBAAAF;AAAAA,MACA,YAAAgB;AAAAA,IAAA,IACA,KAAK;AAET,SAAK,cAAc;AAAA,MACf,KAAK;AAAA,MACLR;AAAAA,MACA,KAAK,eAAe;AAAA,MACpBC;AAAAA,MACAE;AAAAA,MACAD;AAAAA,MACAE;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAC;AAAAA,MACAhE;AAAAA,MACAmD;AAAAA,MACAjB;AAAAA,MACA,KAAK,eAAe;AAAA,MACpBe;AAAAA,MACA,KAAK,eAAe;AAAA,MACpBgB;AAAAA,MACA,KAAK;AAAA,IAAA;AAAA,EAEb;AACJ;","x_google_ignoreList":[0]}