@milaboratories/miplots4 1.0.129 → 1.0.131

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 (351) hide show
  1. package/dist/DataFrame.d.ts +15 -9
  2. package/dist/DataFrame.d.ts.map +1 -1
  3. package/dist/DataFrame.js +105 -81
  4. package/dist/DataFrame.js.map +1 -1
  5. package/dist/bubble/ChartRenderer.d.ts +6 -5
  6. package/dist/bubble/ChartRenderer.d.ts.map +1 -1
  7. package/dist/bubble/ChartRenderer.js +123 -121
  8. package/dist/bubble/ChartRenderer.js.map +1 -1
  9. package/dist/bubble/components/Chart.d.ts +3 -2
  10. package/dist/bubble/components/Chart.d.ts.map +1 -1
  11. package/dist/bubble/components/Chart.js +78 -97
  12. package/dist/bubble/components/Chart.js.map +1 -1
  13. package/dist/bubble/components/ChartsGroup.d.ts +6 -5
  14. package/dist/bubble/components/ChartsGroup.d.ts.map +1 -1
  15. package/dist/bubble/components/ChartsGroup.js +39 -37
  16. package/dist/bubble/components/ChartsGroup.js.map +1 -1
  17. package/dist/bubble/getCellTooltip.d.ts +5 -0
  18. package/dist/bubble/getCellTooltip.d.ts.map +1 -0
  19. package/dist/bubble/getCellTooltip.js +28 -0
  20. package/dist/bubble/getCellTooltip.js.map +1 -0
  21. package/dist/bubble/{getCells.d.ts → getGroupedCellsData.d.ts} +4 -4
  22. package/dist/bubble/getGroupedCellsData.d.ts.map +1 -0
  23. package/dist/bubble/getGroupedCellsData.js +94 -0
  24. package/dist/bubble/getGroupedCellsData.js.map +1 -0
  25. package/dist/bubble/index.d.ts +4 -4
  26. package/dist/bubble/index.d.ts.map +1 -1
  27. package/dist/bubble/index.js +47 -42
  28. package/dist/bubble/index.js.map +1 -1
  29. package/dist/bubble/utils/calculateCaptionTails.d.ts +2 -2
  30. package/dist/bubble/utils/calculateCaptionTails.d.ts.map +1 -1
  31. package/dist/bubble/utils/calculateCaptionTails.js.map +1 -1
  32. package/dist/common/Legend.d.ts.map +1 -1
  33. package/dist/common/Legend.js.map +1 -1
  34. package/dist/common/Tooltip.js +1 -1
  35. package/dist/common/Tooltip.js.map +1 -1
  36. package/dist/common/types.d.ts +1 -1
  37. package/dist/common/types.d.ts.map +1 -1
  38. package/dist/common/useDataFrame.d.ts +11 -0
  39. package/dist/common/useDataFrame.d.ts.map +1 -0
  40. package/dist/common/useDataFrame.js +20 -0
  41. package/dist/common/useDataFrame.js.map +1 -0
  42. package/dist/dendro/ChartRenderer.d.ts +9 -8
  43. package/dist/dendro/ChartRenderer.d.ts.map +1 -1
  44. package/dist/dendro/ChartRenderer.js +187 -187
  45. package/dist/dendro/ChartRenderer.js.map +1 -1
  46. package/dist/dendro/components/Chart.d.ts +8 -8
  47. package/dist/dendro/components/Chart.d.ts.map +1 -1
  48. package/dist/dendro/components/Chart.js +35 -35
  49. package/dist/dendro/components/Chart.js.map +1 -1
  50. package/dist/dendro/components/Heatmap.d.ts +3 -3
  51. package/dist/dendro/components/Heatmap.d.ts.map +1 -1
  52. package/dist/dendro/components/Heatmap.js +23 -23
  53. package/dist/dendro/components/Heatmap.js.map +1 -1
  54. package/dist/dendro/components/Legend.d.ts.map +1 -1
  55. package/dist/dendro/components/Legend.js.map +1 -1
  56. package/dist/dendro/components/LinksGroup.d.ts +6 -6
  57. package/dist/dendro/components/LinksGroup.d.ts.map +1 -1
  58. package/dist/dendro/components/LinksGroup.js +17 -17
  59. package/dist/dendro/components/LinksGroup.js.map +1 -1
  60. package/dist/dendro/components/NodesGroup.d.ts +7 -7
  61. package/dist/dendro/components/NodesGroup.d.ts.map +1 -1
  62. package/dist/dendro/components/NodesGroup.js +29 -29
  63. package/dist/dendro/components/NodesGroup.js.map +1 -1
  64. package/dist/dendro/components/types.d.ts +2 -2
  65. package/dist/dendro/components/types.d.ts.map +1 -1
  66. package/dist/dendro/getHeatmapData.d.ts +2 -2
  67. package/dist/dendro/getHeatmapData.d.ts.map +1 -1
  68. package/dist/dendro/getHeatmapData.js +48 -44
  69. package/dist/dendro/getHeatmapData.js.map +1 -1
  70. package/dist/dendro/getHierarchyData.d.ts +3 -3
  71. package/dist/dendro/getHierarchyData.d.ts.map +1 -1
  72. package/dist/dendro/getHierarchyData.js +31 -31
  73. package/dist/dendro/getHierarchyData.js.map +1 -1
  74. package/dist/dendro/index.d.ts +5 -5
  75. package/dist/dendro/index.d.ts.map +1 -1
  76. package/dist/dendro/index.js +86 -89
  77. package/dist/dendro/index.js.map +1 -1
  78. package/dist/discrete/ChartRenderer.d.ts +6 -6
  79. package/dist/discrete/ChartRenderer.d.ts.map +1 -1
  80. package/dist/discrete/ChartRenderer.js +197 -196
  81. package/dist/discrete/ChartRenderer.js.map +1 -1
  82. package/dist/discrete/DiscreteSettingsImpl.d.ts +3 -3
  83. package/dist/discrete/DiscreteSettingsImpl.d.ts.map +1 -1
  84. package/dist/discrete/DiscreteSettingsImpl.js +8 -8
  85. package/dist/discrete/DiscreteSettingsImpl.js.map +1 -1
  86. package/dist/discrete/components/layers/BoxElement.js.map +1 -1
  87. package/dist/discrete/index.d.ts +1 -1
  88. package/dist/discrete/index.d.ts.map +1 -1
  89. package/dist/discrete/index.js +109 -106
  90. package/dist/discrete/index.js.map +1 -1
  91. package/dist/discrete/layers/bar.d.ts +2 -2
  92. package/dist/discrete/layers/bar.d.ts.map +1 -1
  93. package/dist/discrete/layers/bar.js +32 -37
  94. package/dist/discrete/layers/bar.js.map +1 -1
  95. package/dist/discrete/layers/binnedDots.d.ts +3 -3
  96. package/dist/discrete/layers/binnedDots.d.ts.map +1 -1
  97. package/dist/discrete/layers/binnedDots.js +66 -78
  98. package/dist/discrete/layers/binnedDots.js.map +1 -1
  99. package/dist/discrete/layers/boxes.d.ts +3 -4
  100. package/dist/discrete/layers/boxes.d.ts.map +1 -1
  101. package/dist/discrete/layers/boxes.js +59 -60
  102. package/dist/discrete/layers/boxes.js.map +1 -1
  103. package/dist/discrete/layers/dots.d.ts +2 -3
  104. package/dist/discrete/layers/dots.d.ts.map +1 -1
  105. package/dist/discrete/layers/dots.js +30 -30
  106. package/dist/discrete/layers/dots.js.map +1 -1
  107. package/dist/discrete/layers/lines.js +11 -10
  108. package/dist/discrete/layers/lines.js.map +1 -1
  109. package/dist/discrete/layers/logo.d.ts +2 -2
  110. package/dist/discrete/layers/logo.d.ts.map +1 -1
  111. package/dist/discrete/layers/logo.js +21 -21
  112. package/dist/discrete/layers/logo.js.map +1 -1
  113. package/dist/discrete/layers/pairedPoints.d.ts +2 -2
  114. package/dist/discrete/layers/pairedPoints.d.ts.map +1 -1
  115. package/dist/discrete/layers/pairedPoints.js +62 -62
  116. package/dist/discrete/layers/pairedPoints.js.map +1 -1
  117. package/dist/discrete/layers/sina.d.ts +3 -4
  118. package/dist/discrete/layers/sina.d.ts.map +1 -1
  119. package/dist/discrete/layers/sina.js +67 -71
  120. package/dist/discrete/layers/sina.js.map +1 -1
  121. package/dist/discrete/layers/stackedBar.d.ts +1 -1
  122. package/dist/discrete/layers/stackedBar.d.ts.map +1 -1
  123. package/dist/discrete/layers/stackedBar.js +25 -25
  124. package/dist/discrete/layers/stackedBar.js.map +1 -1
  125. package/dist/discrete/layers/violins.js +13 -13
  126. package/dist/discrete/utils/getOutliersBounds.d.ts +1 -1
  127. package/dist/discrete/utils/getOutliersBounds.d.ts.map +1 -1
  128. package/dist/discrete/utils/getOutliersBounds.js +5 -5
  129. package/dist/discrete/utils/getOutliersBounds.js.map +1 -1
  130. package/dist/discrete/utils/splitTextByWidth.js +1 -1
  131. package/dist/discrete/utils/splitTextByWidth.js.map +1 -1
  132. package/dist/heatmap/ChartRenderer.d.ts +7 -6
  133. package/dist/heatmap/ChartRenderer.d.ts.map +1 -1
  134. package/dist/heatmap/ChartRenderer.js +232 -230
  135. package/dist/heatmap/ChartRenderer.js.map +1 -1
  136. package/dist/heatmap/HeatmapSettingsImpl.d.ts +2 -2
  137. package/dist/heatmap/HeatmapSettingsImpl.d.ts.map +1 -1
  138. package/dist/heatmap/HeatmapSettingsImpl.js +1 -1
  139. package/dist/heatmap/HeatmapSettingsImpl.js.map +1 -1
  140. package/dist/heatmap/components/Annotations/Annotation.d.ts.map +1 -1
  141. package/dist/heatmap/components/Annotations/Annotation.js +40 -39
  142. package/dist/heatmap/components/Annotations/Annotation.js.map +1 -1
  143. package/dist/heatmap/components/Chart.d.ts.map +1 -1
  144. package/dist/heatmap/components/Chart.js +90 -89
  145. package/dist/heatmap/components/Chart.js.map +1 -1
  146. package/dist/heatmap/components/ChartsGroup.d.ts +2 -2
  147. package/dist/heatmap/components/ChartsGroup.d.ts.map +1 -1
  148. package/dist/heatmap/components/ChartsGroup.js +14 -14
  149. package/dist/heatmap/components/ChartsGroup.js.map +1 -1
  150. package/dist/heatmap/components/types.d.ts +3 -2
  151. package/dist/heatmap/components/types.d.ts.map +1 -1
  152. package/dist/heatmap/getCells.d.ts +3 -2
  153. package/dist/heatmap/getCells.d.ts.map +1 -1
  154. package/dist/heatmap/getCells.js +97 -93
  155. package/dist/heatmap/getCells.js.map +1 -1
  156. package/dist/heatmap/index.d.ts +3 -3
  157. package/dist/heatmap/index.d.ts.map +1 -1
  158. package/dist/heatmap/index.js +13 -12
  159. package/dist/heatmap/index.js.map +1 -1
  160. package/dist/heatmap/utils/calculateAnnotationTitleSizes.d.ts.map +1 -1
  161. package/dist/heatmap/utils/calculateAnnotationTitleSizes.js +1 -1
  162. package/dist/heatmap/utils/calculateAnnotationTitleSizes.js.map +1 -1
  163. package/dist/heatmap/utils/calculateCaptionTails.d.ts +1 -1
  164. package/dist/heatmap/utils/calculateCaptionTails.d.ts.map +1 -1
  165. package/dist/heatmap/utils/calculateCaptionTails.js.map +1 -1
  166. package/dist/histogram/ChartRenderer.d.ts +6 -5
  167. package/dist/histogram/ChartRenderer.d.ts.map +1 -1
  168. package/dist/histogram/ChartRenderer.js +154 -153
  169. package/dist/histogram/ChartRenderer.js.map +1 -1
  170. package/dist/histogram/HistogramSettingsImpl.d.ts +2 -2
  171. package/dist/histogram/HistogramSettingsImpl.d.ts.map +1 -1
  172. package/dist/histogram/HistogramSettingsImpl.js.map +1 -1
  173. package/dist/histogram/components/Chart.js +48 -48
  174. package/dist/histogram/components/Chart.js.map +1 -1
  175. package/dist/histogram/components/types.d.ts +4 -3
  176. package/dist/histogram/components/types.d.ts.map +1 -1
  177. package/dist/histogram/getHistogramData.d.ts +7 -7
  178. package/dist/histogram/getHistogramData.d.ts.map +1 -1
  179. package/dist/histogram/getHistogramData.js +52 -53
  180. package/dist/histogram/getHistogramData.js.map +1 -1
  181. package/dist/histogram/index.d.ts +3 -3
  182. package/dist/histogram/index.d.ts.map +1 -1
  183. package/dist/histogram/index.js +49 -45
  184. package/dist/histogram/index.js.map +1 -1
  185. package/dist/node_modules/@d3fc/d3fc-axis/src/axisBase.js +10 -10
  186. package/dist/node_modules/d3-array/src/min.js +5 -11
  187. package/dist/node_modules/d3-array/src/min.js.map +1 -1
  188. package/dist/node_modules/d3-shape/src/area.js +30 -30
  189. package/dist/node_modules/d3-shape/src/line.js +6 -6
  190. package/dist/node_modules/d3-shape/src/line.js.map +1 -1
  191. package/dist/node_modules/kdbush/index.js +148 -0
  192. package/dist/node_modules/kdbush/index.js.map +1 -0
  193. package/dist/scatterplot/ChartRenderer.d.ts +7 -6
  194. package/dist/scatterplot/ChartRenderer.d.ts.map +1 -1
  195. package/dist/scatterplot/ChartRenderer.js +213 -209
  196. package/dist/scatterplot/ChartRenderer.js.map +1 -1
  197. package/dist/scatterplot/ScatterplotSettingsImpl.d.ts +2 -2
  198. package/dist/scatterplot/ScatterplotSettingsImpl.d.ts.map +1 -1
  199. package/dist/scatterplot/ScatterplotSettingsImpl.js +28 -28
  200. package/dist/scatterplot/ScatterplotSettingsImpl.js.map +1 -1
  201. package/dist/scatterplot/components/ChartAxisTitles.d.ts.map +1 -1
  202. package/dist/scatterplot/components/ChartAxisTitles.js +31 -30
  203. package/dist/scatterplot/components/ChartAxisTitles.js.map +1 -1
  204. package/dist/scatterplot/components/ChartLayersData.d.ts.map +1 -1
  205. package/dist/scatterplot/components/ChartLayersData.js +138 -156
  206. package/dist/scatterplot/components/ChartLayersData.js.map +1 -1
  207. package/dist/scatterplot/components/ChartTooltip.d.ts.map +1 -1
  208. package/dist/scatterplot/components/ChartTooltip.js +41 -38
  209. package/dist/scatterplot/components/ChartTooltip.js.map +1 -1
  210. package/dist/scatterplot/components/ChartTrendsData.js +21 -21
  211. package/dist/scatterplot/components/ChartTrendsData.js.map +1 -1
  212. package/dist/scatterplot/components/types.d.ts +7 -7
  213. package/dist/scatterplot/components/types.d.ts.map +1 -1
  214. package/dist/scatterplot/constants.d.ts +1 -1
  215. package/dist/scatterplot/constants.d.ts.map +1 -1
  216. package/dist/scatterplot/constants.js.map +1 -1
  217. package/dist/scatterplot/dots.d.ts +2 -2
  218. package/dist/scatterplot/dots.d.ts.map +1 -1
  219. package/dist/scatterplot/dots.js +27 -25
  220. package/dist/scatterplot/dots.js.map +1 -1
  221. package/dist/scatterplot/getLayersData.d.ts +3 -3
  222. package/dist/scatterplot/getLayersData.d.ts.map +1 -1
  223. package/dist/scatterplot/getLayersData.js +12 -15
  224. package/dist/scatterplot/getLayersData.js.map +1 -1
  225. package/dist/scatterplot/index.d.ts +4 -4
  226. package/dist/scatterplot/index.d.ts.map +1 -1
  227. package/dist/scatterplot/index.js +71 -72
  228. package/dist/scatterplot/index.js.map +1 -1
  229. package/dist/scatterplot/linearRegression.d.ts +5 -4
  230. package/dist/scatterplot/linearRegression.d.ts.map +1 -1
  231. package/dist/scatterplot/linearRegression.js +88 -86
  232. package/dist/scatterplot/linearRegression.js.map +1 -1
  233. package/dist/scatterplot/utils/createAesGetter.d.ts +3 -2
  234. package/dist/scatterplot/utils/createAesGetter.d.ts.map +1 -1
  235. package/dist/scatterplot/utils/createAesGetter.js +21 -21
  236. package/dist/scatterplot/utils/createAesGetter.js.map +1 -1
  237. package/dist/scatterplot/utils/createLegendInfo.d.ts +2 -10
  238. package/dist/scatterplot/utils/createLegendInfo.d.ts.map +1 -1
  239. package/dist/scatterplot/utils/createLegendInfo.js +44 -37
  240. package/dist/scatterplot/utils/createLegendInfo.js.map +1 -1
  241. package/dist/scatterplot/utils/formatColumnValue.d.ts +5 -0
  242. package/dist/scatterplot/utils/formatColumnValue.d.ts.map +1 -0
  243. package/dist/scatterplot/utils/formatColumnValue.js +11 -0
  244. package/dist/scatterplot/utils/formatColumnValue.js.map +1 -0
  245. package/dist/scatterplot/utils/getVisibleLabels.d.ts +6 -9
  246. package/dist/scatterplot/utils/getVisibleLabels.d.ts.map +1 -1
  247. package/dist/scatterplot/utils/getVisibleLabels.js +46 -56
  248. package/dist/scatterplot/utils/getVisibleLabels.js.map +1 -1
  249. package/dist/scatterplot-umap/ChartRenderer.d.ts +18 -15
  250. package/dist/scatterplot-umap/ChartRenderer.d.ts.map +1 -1
  251. package/dist/scatterplot-umap/ChartRenderer.js +231 -214
  252. package/dist/scatterplot-umap/ChartRenderer.js.map +1 -1
  253. package/dist/scatterplot-umap/SettingsImpl.d.ts +2 -2
  254. package/dist/scatterplot-umap/SettingsImpl.d.ts.map +1 -1
  255. package/dist/scatterplot-umap/SettingsImpl.js +25 -25
  256. package/dist/scatterplot-umap/SettingsImpl.js.map +1 -1
  257. package/dist/scatterplot-umap/colors.d.ts +6 -0
  258. package/dist/scatterplot-umap/colors.d.ts.map +1 -0
  259. package/dist/scatterplot-umap/colors.js +42 -0
  260. package/dist/scatterplot-umap/colors.js.map +1 -0
  261. package/dist/scatterplot-umap/components/LowerSVG.d.ts +2 -2
  262. package/dist/scatterplot-umap/components/LowerSVG.d.ts.map +1 -1
  263. package/dist/scatterplot-umap/components/LowerSVG.js +97 -94
  264. package/dist/scatterplot-umap/components/LowerSVG.js.map +1 -1
  265. package/dist/scatterplot-umap/components/UpperSVG.d.ts.map +1 -1
  266. package/dist/scatterplot-umap/components/UpperSVG.js +20 -19
  267. package/dist/scatterplot-umap/components/UpperSVG.js.map +1 -1
  268. package/dist/scatterplot-umap/index.d.ts +0 -2
  269. package/dist/scatterplot-umap/index.d.ts.map +1 -1
  270. package/dist/scatterplot-umap/index.js +77 -102
  271. package/dist/scatterplot-umap/index.js.map +1 -1
  272. package/dist/scatterplot-umap/types.d.ts +7 -10
  273. package/dist/scatterplot-umap/types.d.ts.map +1 -1
  274. package/dist/types/bubble.d.ts +44 -12
  275. package/dist/types/bubble.d.ts.map +1 -1
  276. package/dist/types/common.d.ts +22 -3
  277. package/dist/types/common.d.ts.map +1 -1
  278. package/dist/types/common.js +3 -1
  279. package/dist/types/common.js.map +1 -1
  280. package/dist/types/dendro.d.ts +113 -10
  281. package/dist/types/dendro.d.ts.map +1 -1
  282. package/dist/types/dendro.js +1 -1
  283. package/dist/types/dendro.js.map +1 -1
  284. package/dist/types/discrete.d.ts +99 -22
  285. package/dist/types/discrete.d.ts.map +1 -1
  286. package/dist/types/discrete.js +3 -3
  287. package/dist/types/discrete.js.map +1 -1
  288. package/dist/types/heatmap.d.ts +187 -28
  289. package/dist/types/heatmap.d.ts.map +1 -1
  290. package/dist/types/heatmap.js +1 -1
  291. package/dist/types/heatmap.js.map +1 -1
  292. package/dist/types/histogram.d.ts +30 -8
  293. package/dist/types/histogram.d.ts.map +1 -1
  294. package/dist/types/histogram.js +1 -1
  295. package/dist/types/histogram.js.map +1 -1
  296. package/dist/types/scatterplot-umap.d.ts +149 -15
  297. package/dist/types/scatterplot-umap.d.ts.map +1 -1
  298. package/dist/types/scatterplot-umap.js +9 -9
  299. package/dist/types/scatterplot-umap.js.map +1 -1
  300. package/dist/types/scatterplot.d.ts +164 -12
  301. package/dist/types/scatterplot.d.ts.map +1 -1
  302. package/dist/types/scatterplot.js +1 -1
  303. package/dist/types/scatterplot.js.map +1 -1
  304. package/dist/utils/TextMeasurer/TextMeasurer.d.ts +7 -0
  305. package/dist/utils/TextMeasurer/TextMeasurer.d.ts.map +1 -0
  306. package/dist/utils/TextMeasurer/TextMeasurer.js +42 -0
  307. package/dist/utils/TextMeasurer/TextMeasurer.js.map +1 -0
  308. package/dist/utils/TextMeasurer/charToWidth.json.js +155 -0
  309. package/dist/utils/TextMeasurer/charToWidth.json.js.map +1 -0
  310. package/dist/utils/arrangeLegendParts.js +1 -1
  311. package/dist/utils/arrangeLegendParts.js.map +1 -1
  312. package/dist/utils/getChartEdgeSides.d.ts +1 -1
  313. package/dist/utils/getLegendWidth.d.ts.map +1 -1
  314. package/dist/utils/getLegendWidth.js +1 -1
  315. package/dist/utils/getLegendWidth.js.map +1 -1
  316. package/package.json +5 -3
  317. package/dist/bubble/getCells.d.ts.map +0 -1
  318. package/dist/bubble/getCells.js +0 -91
  319. package/dist/bubble/getCells.js.map +0 -1
  320. package/dist/node_modules/d3-quadtree/src/add.js +0 -30
  321. package/dist/node_modules/d3-quadtree/src/add.js.map +0 -1
  322. package/dist/node_modules/d3-quadtree/src/cover.js +0 -29
  323. package/dist/node_modules/d3-quadtree/src/cover.js.map +0 -1
  324. package/dist/node_modules/d3-quadtree/src/data.js +0 -12
  325. package/dist/node_modules/d3-quadtree/src/data.js.map +0 -1
  326. package/dist/node_modules/d3-quadtree/src/extent.js +0 -7
  327. package/dist/node_modules/d3-quadtree/src/extent.js.map +0 -1
  328. package/dist/node_modules/d3-quadtree/src/find.js +0 -26
  329. package/dist/node_modules/d3-quadtree/src/find.js.map +0 -1
  330. package/dist/node_modules/d3-quadtree/src/quad.js +0 -7
  331. package/dist/node_modules/d3-quadtree/src/quad.js.map +0 -1
  332. package/dist/node_modules/d3-quadtree/src/quadtree.js +0 -51
  333. package/dist/node_modules/d3-quadtree/src/quadtree.js.map +0 -1
  334. package/dist/node_modules/d3-quadtree/src/remove.js +0 -21
  335. package/dist/node_modules/d3-quadtree/src/remove.js.map +0 -1
  336. package/dist/node_modules/d3-quadtree/src/root.js +0 -7
  337. package/dist/node_modules/d3-quadtree/src/root.js.map +0 -1
  338. package/dist/node_modules/d3-quadtree/src/size.js +0 -12
  339. package/dist/node_modules/d3-quadtree/src/size.js.map +0 -1
  340. package/dist/node_modules/d3-quadtree/src/visit.js +0 -14
  341. package/dist/node_modules/d3-quadtree/src/visit.js.map +0 -1
  342. package/dist/node_modules/d3-quadtree/src/visitAfter.js +0 -19
  343. package/dist/node_modules/d3-quadtree/src/visitAfter.js.map +0 -1
  344. package/dist/node_modules/d3-quadtree/src/x.js +0 -11
  345. package/dist/node_modules/d3-quadtree/src/x.js.map +0 -1
  346. package/dist/node_modules/d3-quadtree/src/y.js +0 -11
  347. package/dist/node_modules/d3-quadtree/src/y.js.map +0 -1
  348. package/dist/utils/TextMeasurer.d.ts +0 -8
  349. package/dist/utils/TextMeasurer.d.ts.map +0 -1
  350. package/dist/utils/TextMeasurer.js +0 -27
  351. package/dist/utils/TextMeasurer.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Legend.js","sources":["../../../src/dendro/components/Legend.tsx"],"sourcesContent":["import {BLACK} from '../../constants';\nimport type {DotAesItem, LegendData, LegendItemContinuous} from './types';\nimport {getPointShape} from '../../utils/getPointShape';\nimport React from 'react';\n\nconst COLOR_ITEM_WIDTH_C = 14;\nconst COLOR_ITEM_SIZE_D = 12;\nconst LEGEND_ITEM_SIZE = 12;\nconst TITLE_POSITION = -12;\n\ninterface LegendProps {\n legendData: LegendData;\n}\n\nfunction AesItem({aes, label}: {aes: DotAesItem; label: string}) {\n const shape = getPointShape(aes.shape, aes.size, aes.color);\n\n return (\n <g>\n <g transform={`translate(${LEGEND_ITEM_SIZE / 2},${LEGEND_ITEM_SIZE / 2})`}>{shape}</g>\n <text x={LEGEND_ITEM_SIZE + 8} y={LEGEND_ITEM_SIZE / 2} dominantBaseline=\"central\" fontWeight={500}>\n {label}\n </text>\n </g>\n );\n}\n\nexport function Legend({legendData}: LegendProps) {\n const debug = false;\n const continuousItems= legendData.items.filter((item) => item.type === 'continuous') as LegendItemContinuous[];\n return (\n <g>\n <defs>\n {continuousItems.map(item => (\n <linearGradient key={item.id} id={item.id} gradientTransform=\"rotate(90)\">\n {item.scale.domain().map(value => {\n const domain = item.scale.domain();\n const range = domain[domain.length - 1] - domain[0];\n const percent = range > 0 ? (value - domain[0]) / range * 100 : 0;\n return (\n <stop\n key={value}\n offset={`${percent}%`}\n stopColor={item.scale(value)}\n />\n );\n })}\n </linearGradient>\n ))}\n </defs>\n {legendData.items.map(item => {\n if (item.type === 'continuous') {\n const min = Math.min(...item.values);\n const max = Math.max(...item.values);\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`}>\n <text fontWeight={500} fontSize=\"14px\" y={TITLE_POSITION}>{item.title}</text>\n <rect\n x=\"0\"\n y=\"0\"\n width={COLOR_ITEM_WIDTH_C}\n height={item.height}\n stroke={BLACK}\n fill={`url(#${item.id})`}\n />\n <g transform={`translate(${COLOR_ITEM_WIDTH_C},0)`}>\n {item.values.map(value => {\n const range = max - min;\n const y = range > 0 ? (item.height * (value - min)) / range : 0;\n return (\n <g key={value} transform={`translate(0,${y})`}>\n <line x1=\"0\" x2={-4} stroke={BLACK} />\n <text x={8} y={4}>{value}</text>\n </g>\n );\n })}\n </g>\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\"/>}\n </g>\n );\n }\n if (item.type === 'discrete') {\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`}>\n <text fontWeight={500} fontSize=\"14px\" y={TITLE_POSITION}>{item.title}</text>\n {item.values.map((value, idx) => {\n return <g key={value} transform={`translate(0, ${idx * (COLOR_ITEM_SIZE_D + 4)})`}>\n <rect\n x=\"0\"\n y=\"0\"\n width={COLOR_ITEM_SIZE_D}\n height={COLOR_ITEM_SIZE_D}\n fill={item.scale(value)}\n rx=\"1\"\n ry=\"1\"\n />\n <text x={COLOR_ITEM_SIZE_D + 8} y={10}>{value}</text>\n </g>;\n })}\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\"/>}\n </g>\n );\n }\n if (item.type === 'nodes') {\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`} fontSize=\"14px\" fontWeight={500}>\n <text fontWeight={500} y={TITLE_POSITION}>\n {item.title}\n </text>\n {item.values.map((value, idx) => {\n return (\n <g key={value} transform={`translate(0, ${idx * (LEGEND_ITEM_SIZE + 4)})`}>\n <AesItem aes={item.scale(value)} label={item.labels[value]} />\n </g>\n );\n })}\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\" />}\n </g>\n );\n }\n if (item.type === 'size') {\n const size = item.height / item.values.length;\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`} fontSize=\"14px\" fontWeight={500}>\n <text fontWeight={500} y={TITLE_POSITION}>\n {item.title}\n </text>\n {item.values.map((value, idx) => {\n const r = item.scale(value);\n return (\n <g key={value} transform={`translate(0, ${idx * size})`}>\n <circle r={r} cx={size / 2} cy={size / 2} fill={BLACK}/>\n <text x={size + 4} y={size / 2} alignmentBaseline=\"central\">{item.labels[value]}</text>\n </g>\n );\n })}\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\" />}\n </g>\n );\n }\n })}\n </g>\n );\n}\n"],"names":["COLOR_ITEM_WIDTH_C","COLOR_ITEM_SIZE_D","LEGEND_ITEM_SIZE","TITLE_POSITION","AesItem","aes","label","shape","getPointShape","jsx","Legend","legendData","continuousItems","item","value","domain","range","percent","min","max","jsxs","BLACK","y","idx","size","r"],"mappings":"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"}
1
+ {"version":3,"file":"Legend.js","sources":["../../../src/dendro/components/Legend.tsx"],"sourcesContent":["import { BLACK } from '../../constants';\nimport { getPointShape } from '../../utils/getPointShape';\nimport type { DotAesItem, LegendData, LegendItemContinuous } from './types';\n\nconst COLOR_ITEM_WIDTH_C = 14;\nconst COLOR_ITEM_SIZE_D = 12;\nconst LEGEND_ITEM_SIZE = 12;\nconst TITLE_POSITION = -12;\n\ninterface LegendProps {\n legendData: LegendData;\n}\n\nfunction AesItem({aes, label}: {aes: DotAesItem; label: string}) {\n const shape = getPointShape(aes.shape, aes.size, aes.color);\n\n return (\n <g>\n <g transform={`translate(${LEGEND_ITEM_SIZE / 2},${LEGEND_ITEM_SIZE / 2})`}>{shape}</g>\n <text x={LEGEND_ITEM_SIZE + 8} y={LEGEND_ITEM_SIZE / 2} dominantBaseline=\"central\" fontWeight={500}>\n {label}\n </text>\n </g>\n );\n}\n\nexport function Legend({legendData}: LegendProps) {\n const debug = false;\n const continuousItems= legendData.items.filter((item) => item.type === 'continuous') as LegendItemContinuous[];\n return (\n <g>\n <defs>\n {continuousItems.map(item => (\n <linearGradient key={item.id} id={item.id} gradientTransform=\"rotate(90)\">\n {item.scale.domain().map(value => {\n const domain = item.scale.domain();\n const range = domain[domain.length - 1] - domain[0];\n const percent = range > 0 ? (value - domain[0]) / range * 100 : 0;\n return (\n <stop\n key={value}\n offset={`${percent}%`}\n stopColor={item.scale(value)}\n />\n );\n })}\n </linearGradient>\n ))}\n </defs>\n {legendData.items.map(item => {\n if (item.type === 'continuous') {\n const min = Math.min(...item.values);\n const max = Math.max(...item.values);\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`}>\n <text fontWeight={500} fontSize=\"14px\" y={TITLE_POSITION}>{item.title}</text>\n <rect\n x=\"0\"\n y=\"0\"\n width={COLOR_ITEM_WIDTH_C}\n height={item.height}\n stroke={BLACK}\n fill={`url(#${item.id})`}\n />\n <g transform={`translate(${COLOR_ITEM_WIDTH_C},0)`}>\n {item.values.map(value => {\n const range = max - min;\n const y = range > 0 ? (item.height * (value - min)) / range : 0;\n return (\n <g key={value} transform={`translate(0,${y})`}>\n <line x1=\"0\" x2={-4} stroke={BLACK} />\n <text x={8} y={4}>{value}</text>\n </g>\n );\n })}\n </g>\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\"/>}\n </g>\n );\n }\n if (item.type === 'discrete') {\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`}>\n <text fontWeight={500} fontSize=\"14px\" y={TITLE_POSITION}>{item.title}</text>\n {item.values.map((value, idx) => {\n return <g key={value} transform={`translate(0, ${idx * (COLOR_ITEM_SIZE_D + 4)})`}>\n <rect\n x=\"0\"\n y=\"0\"\n width={COLOR_ITEM_SIZE_D}\n height={COLOR_ITEM_SIZE_D}\n fill={item.scale(value)}\n rx=\"1\"\n ry=\"1\"\n />\n <text x={COLOR_ITEM_SIZE_D + 8} y={10}>{value}</text>\n </g>;\n })}\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\"/>}\n </g>\n );\n }\n if (item.type === 'nodes') {\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`} fontSize=\"14px\" fontWeight={500}>\n <text fontWeight={500} y={TITLE_POSITION}>\n {item.title}\n </text>\n {item.values.map((value, idx) => {\n return (\n <g key={value} transform={`translate(0, ${idx * (LEGEND_ITEM_SIZE + 4)})`}>\n <AesItem aes={item.scale(value)} label={item.labels[value]} />\n </g>\n );\n })}\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\" />}\n </g>\n );\n }\n if (item.type === 'size') {\n const size = item.height / item.values.length;\n return (\n <g key={item.id} transform={`translate(${item.left},${item.top})`} fontSize=\"14px\" fontWeight={500}>\n <text fontWeight={500} y={TITLE_POSITION}>\n {item.title}\n </text>\n {item.values.map((value, idx) => {\n const r = item.scale(value);\n return (\n <g key={value} transform={`translate(0, ${idx * size})`}>\n <circle r={r} cx={size / 2} cy={size / 2} fill={BLACK}/>\n <text x={size + 4} y={size / 2} alignmentBaseline=\"central\">{item.labels[value]}</text>\n </g>\n );\n })}\n {debug && <rect width={item.width} height={item.height} fill=\"none\" stroke=\"black\" />}\n </g>\n );\n }\n })}\n </g>\n );\n}\n"],"names":["COLOR_ITEM_WIDTH_C","COLOR_ITEM_SIZE_D","LEGEND_ITEM_SIZE","TITLE_POSITION","AesItem","aes","label","shape","getPointShape","jsx","Legend","legendData","continuousItems","item","value","domain","range","percent","min","max","jsxs","BLACK","y","idx","size","r"],"mappings":"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"}
@@ -1,17 +1,17 @@
1
+ import { HierarchyPointLink } from 'd3-hierarchy';
1
2
  import { DendroSettingsImpl } from '../DendroSettingsImpl';
2
3
  import { TreeNodeData } from '../getHierarchyData';
3
- import { HierarchyPointLink } from 'd3-hierarchy';
4
4
  interface LinksGroupProps {
5
5
  links: HierarchyPointLink<TreeNodeData>[];
6
6
  connectionType: DendroSettingsImpl['connectionType'];
7
7
  rootPosition: DendroSettingsImpl['rootPosition'];
8
8
  edgeInheritance: DendroSettingsImpl['edgeInheritance'];
9
9
  aesGetters: {
10
- nodeShape: (row: Record<string, string>) => string;
11
- nodeColor: (row: Record<string, string>) => string;
12
- nodeSize: (row: Record<string, number>) => number;
13
- lineShape: (row: Record<string, string>) => string;
14
- lineColor: (row: Record<string, string>) => string;
10
+ nodeShape: (idx: number) => string;
11
+ nodeColor: (idx: number) => string;
12
+ nodeSize: (idx: number) => number;
13
+ lineShape: (idx: number) => string;
14
+ lineColor: (idx: number) => string;
15
15
  };
16
16
  selected: boolean;
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LinksGroup.d.ts","sourceRoot":"","sources":["../../../src/dendro/components/LinksGroup.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAC,kBAAkB,EAAqB,MAAM,cAAc,CAAC;AAIzE,UAAU,eAAe;IACrB,KAAK,EAAE,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC;IAC1C,cAAc,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACrD,YAAY,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACjD,eAAe,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;IACvD,UAAU,EAAE;QACR,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;QACnD,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;QACnD,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;QAClD,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;QACnD,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;KACtD,CAAC;IACF,QAAQ,EAAE,OAAO,CAAC;CACrB;AA8BD,wBAAgB,UAAU,CAAC,EACvB,KAAK,EACL,cAAc,EACd,YAAY,EACZ,eAAe,EACf,UAAU,EACV,QAAQ,GACX,EAAE,eAAe,2CAmBjB"}
1
+ {"version":3,"file":"LinksGroup.d.ts","sourceRoot":"","sources":["../../../src/dendro/components/LinksGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAsB,MAAM,cAAc,CAAC;AAG3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,UAAU,eAAe;IACrB,KAAK,EAAE,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC;IAC1C,cAAc,EAAE,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACrD,YAAY,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACjD,eAAe,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;IACvD,UAAU,EAAE;QACR,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;QACnC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;QACnC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;QAClC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;QACnC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;KACtC,CAAC;IACF,QAAQ,EAAE,OAAO,CAAC;CACrB;AA8BD,wBAAgB,UAAU,CAAC,EACvB,KAAK,EACL,cAAc,EACd,YAAY,EACZ,eAAe,EACf,UAAU,EACV,QAAQ,GACX,EAAE,eAAe,2CAmBjB"}
@@ -1,29 +1,29 @@
1
- import { j as u } from "../../node_modules/react/jsx-runtime.js";
1
+ import { j as n } from "../../node_modules/react/jsx-runtime.js";
2
2
  import { SELECTED_PATH_COLOR as c } from "../constants.js";
3
3
  import { link as m } from "../../node_modules/d3-shape/src/link.js";
4
4
  import { bumpY as p, bumpX as y } from "../../node_modules/d3-shape/src/curve/bump.js";
5
- function L($, s, a) {
6
- const { source: t, target: o } = $, e = a === "top";
7
- return s === "rectangle" ? e ? `M ${t.x},${t.y} L ${o.x},${t.y} L${o.x},${o.y}` : `M ${t.y},${t.x} L ${t.y},${o.x} L${o.y},${o.x}` : s === "curve" ? m(
8
- e ? p : y
9
- ).x((r) => e ? r.x : r.y).y((r) => e ? r.y : r.x).source((r) => r.target).target((r) => r.source)($) ?? "" : e ? `M ${t.x},${t.y} L${o.x},${o.y}` : `M ${t.y},${t.x} L${o.y},${o.x}`;
5
+ function L(s, $, x) {
6
+ const { source: t, target: e } = s, o = x === "top";
7
+ return $ === "rectangle" ? o ? `M ${t.x},${t.y} L ${e.x},${t.y} L${e.x},${e.y}` : `M ${t.y},${t.x} L ${t.y},${e.x} L${e.y},${e.x}` : $ === "curve" ? m(
8
+ o ? p : y
9
+ ).x((r) => o ? r.x : r.y).y((r) => o ? r.y : r.x).source((r) => r.target).target((r) => r.source)(s) ?? "" : o ? `M ${t.x},${t.y} L${e.x},${e.y}` : `M ${t.y},${t.x} L${e.y},${e.x}`;
10
10
  }
11
11
  function E({
12
- links: $,
13
- connectionType: s,
14
- rootPosition: a,
12
+ links: s,
13
+ connectionType: $,
14
+ rootPosition: x,
15
15
  edgeInheritance: t,
16
- aesGetters: o,
17
- selected: e
16
+ aesGetters: e,
17
+ selected: o
18
18
  }) {
19
- return /* @__PURE__ */ u.jsx(u.Fragment, { children: $.map((r) => {
20
- const { source: x, target: n } = r, i = (t === "up" ? x : n).data.rawData[0];
21
- return /* @__PURE__ */ u.jsx(
19
+ return /* @__PURE__ */ n.jsx(n.Fragment, { children: s.map((r) => {
20
+ const { source: u, target: a } = r, i = (t === "up" ? u : a).data.rawIndexes[0];
21
+ return /* @__PURE__ */ n.jsx(
22
22
  "path",
23
23
  {
24
- d: L(r, s, a),
25
- stroke: e ? c : o.lineColor(i),
26
- strokeWidth: e ? 2 : 1,
24
+ d: L(r, $, x),
25
+ stroke: o ? c : e.lineColor(i),
26
+ strokeWidth: o ? 2 : 1,
27
27
  fill: "none"
28
28
  },
29
29
  `${r.source.id},${r.target.id}`
@@ -1 +1 @@
1
- {"version":3,"file":"LinksGroup.js","sources":["../../../src/dendro/components/LinksGroup.tsx"],"sourcesContent":["import {SELECTED_PATH_COLOR} from '../constants';\nimport type {DendroSettingsImpl} from '../DendroSettingsImpl';\nimport type {TreeNodeData} from '../getHierarchyData';\nimport type {HierarchyPointLink, HierarchyPointNode} from 'd3-hierarchy';\nimport {curveBumpX, curveBumpY, link as d3link} from 'd3-shape';\nimport React from 'react';\n\ninterface LinksGroupProps {\n links: HierarchyPointLink<TreeNodeData>[];\n connectionType: DendroSettingsImpl['connectionType'];\n rootPosition: DendroSettingsImpl['rootPosition'];\n edgeInheritance: DendroSettingsImpl['edgeInheritance'];\n aesGetters: {\n nodeShape: (row: Record<string, string>) => string;\n nodeColor: (row: Record<string, string>) => string;\n nodeSize: (row: Record<string, number>) => number;\n lineShape: (row: Record<string, string>) => string;\n lineColor: (row: Record<string, string>) => string;\n };\n selected: boolean;\n}\n\nfunction getLinkPath(\n link: HierarchyPointLink<TreeNodeData>,\n connectionType: DendroSettingsImpl['connectionType'],\n rootPosition: DendroSettingsImpl['rootPosition']\n): string {\n const {source, target} = link;\n const isVertical = rootPosition === 'top';\n if (connectionType === 'rectangle') {\n return isVertical\n ? `M ${source.x},${source.y} L ${target.x},${source.y} L${target.x},${target.y}`\n : `M ${source.y},${source.x} L ${source.y},${target.x} L${target.y},${target.x}`;\n }\n if (connectionType === 'curve') {\n return (\n d3link<HierarchyPointLink<TreeNodeData>, HierarchyPointNode<TreeNodeData>>(\n isVertical ? curveBumpY : curveBumpX\n )\n .x(d => (isVertical ? d.x : d.y))\n .y(d => (isVertical ? d.y : d.x))\n .source(d => d.target)\n .target(d => d.source)(link) ?? ''\n );\n }\n return isVertical\n ? `M ${source.x},${source.y} L${target.x},${target.y}`\n : `M ${source.y},${source.x} L${target.y},${target.x}`;\n}\n\nexport function LinksGroup({\n links,\n connectionType,\n rootPosition,\n edgeInheritance,\n aesGetters,\n selected,\n}: LinksGroupProps) {\n return (\n <>\n {links.map(link => {\n const {source, target} = link;\n const aesNode = edgeInheritance === 'up' ? source : target;\n const row = aesNode.data.rawData[0];\n return (\n <path\n key={`${link.source.id},${link.target.id}`}\n d={getLinkPath(link, connectionType, rootPosition)}\n stroke={selected ? SELECTED_PATH_COLOR : aesGetters.lineColor(row as Record<string, string>)}\n strokeWidth={selected ? 2 : 1}\n fill=\"none\"\n />\n );\n })}\n </>\n );\n}\n"],"names":["getLinkPath","link","connectionType","rootPosition","source","target","isVertical","d3link","curveBumpY","curveBumpX","d","LinksGroup","links","edgeInheritance","aesGetters","selected","jsx","Fragment","row","SELECTED_PATH_COLOR"],"mappings":";;;;AAsBA,SAASA,EACLC,GACAC,GACAC,GACM;AACN,QAAM,EAAC,QAAAC,GAAQ,QAAAC,EAAA,IAAUJ,GACnBK,IAAaH,MAAiB;AACpC,SAAID,MAAmB,cACZI,IACD,KAAKF,EAAO,CAAC,IAAIA,EAAO,CAAC,MAAMC,EAAO,CAAC,IAAID,EAAO,CAAC,KAAKC,EAAO,CAAC,IAAIA,EAAO,CAAC,KAC5E,KAAKD,EAAO,CAAC,IAAIA,EAAO,CAAC,MAAMA,EAAO,CAAC,IAAIC,EAAO,CAAC,KAAKA,EAAO,CAAC,IAAIA,EAAO,CAAC,KAElFH,MAAmB,UAEfK;AAAAA,IACID,IAAaE,IAAaC;AAAAA,EAAA,EAEzB,EAAE,CAAAC,MAAMJ,IAAaI,EAAE,IAAIA,EAAE,CAAE,EAC/B,EAAE,CAAAA,MAAMJ,IAAaI,EAAE,IAAIA,EAAE,CAAE,EAC/B,OAAO,CAAAA,MAAKA,EAAE,MAAM,EACpB,OAAO,CAAAA,MAAKA,EAAE,MAAM,EAAET,CAAI,KAAK,KAGrCK,IACD,KAAKF,EAAO,CAAC,IAAIA,EAAO,CAAC,KAAKC,EAAO,CAAC,IAAIA,EAAO,CAAC,KAClD,KAAKD,EAAO,CAAC,IAAIA,EAAO,CAAC,KAAKC,EAAO,CAAC,IAAIA,EAAO,CAAC;AAC5D;AAEO,SAASM,EAAW;AAAA,EACvB,OAAAC;AAAA,EACA,gBAAAV;AAAA,EACA,cAAAC;AAAA,EACA,iBAAAU;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AACJ,GAAoB;AAChB,SACIC,gBAAAA,EAAAA,IAAAC,EAAAA,UAAA,EACK,UAAAL,EAAM,IAAI,CAAAX,MAAQ;AACf,UAAM,EAAC,QAAAG,GAAQ,QAAAC,EAAA,IAAUJ,GAEnBiB,KADUL,MAAoB,OAAOT,IAASC,GAChC,KAAK,QAAQ,CAAC;AAClC,WACIW,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QAEG,GAAGhB,EAAYC,GAAMC,GAAgBC,CAAY;AAAA,QACjD,QAAQY,IAAWI,IAAsBL,EAAW,UAAUI,CAA6B;AAAA,QAC3F,aAAaH,IAAW,IAAI;AAAA,QAC5B,MAAK;AAAA,MAAA;AAAA,MAJA,GAAGd,EAAK,OAAO,EAAE,IAAIA,EAAK,OAAO,EAAE;AAAA,IAAA;AAAA,EAOpD,CAAC,EAAA,CACL;AAER;"}
1
+ {"version":3,"file":"LinksGroup.js","sources":["../../../src/dendro/components/LinksGroup.tsx"],"sourcesContent":["import type { HierarchyPointLink, HierarchyPointNode } from 'd3-hierarchy';\nimport { curveBumpX, curveBumpY, link as d3link } from 'd3-shape';\nimport { SELECTED_PATH_COLOR } from '../constants';\nimport type { DendroSettingsImpl } from '../DendroSettingsImpl';\nimport type { TreeNodeData } from '../getHierarchyData';\n\ninterface LinksGroupProps {\n links: HierarchyPointLink<TreeNodeData>[];\n connectionType: DendroSettingsImpl['connectionType'];\n rootPosition: DendroSettingsImpl['rootPosition'];\n edgeInheritance: DendroSettingsImpl['edgeInheritance'];\n aesGetters: {\n nodeShape: (idx: number) => string;\n nodeColor: (idx: number) => string;\n nodeSize: (idx: number) => number;\n lineShape: (idx: number) => string;\n lineColor: (idx: number) => string;\n };\n selected: boolean;\n}\n\nfunction getLinkPath(\n link: HierarchyPointLink<TreeNodeData>,\n connectionType: DendroSettingsImpl['connectionType'],\n rootPosition: DendroSettingsImpl['rootPosition']\n): string {\n const {source, target} = link;\n const isVertical = rootPosition === 'top';\n if (connectionType === 'rectangle') {\n return isVertical\n ? `M ${source.x},${source.y} L ${target.x},${source.y} L${target.x},${target.y}`\n : `M ${source.y},${source.x} L ${source.y},${target.x} L${target.y},${target.x}`;\n }\n if (connectionType === 'curve') {\n return (\n d3link<HierarchyPointLink<TreeNodeData>, HierarchyPointNode<TreeNodeData>>(\n isVertical ? curveBumpY : curveBumpX\n )\n .x(d => (isVertical ? d.x : d.y))\n .y(d => (isVertical ? d.y : d.x))\n .source(d => d.target)\n .target(d => d.source)(link) ?? ''\n );\n }\n return isVertical\n ? `M ${source.x},${source.y} L${target.x},${target.y}`\n : `M ${source.y},${source.x} L${target.y},${target.x}`;\n}\n\nexport function LinksGroup({\n links,\n connectionType,\n rootPosition,\n edgeInheritance,\n aesGetters,\n selected,\n}: LinksGroupProps) {\n return (\n <>\n {links.map(link => {\n const {source, target} = link;\n const aesNode = edgeInheritance === 'up' ? source : target;\n const idx = aesNode.data.rawIndexes[0];\n return (\n <path\n key={`${link.source.id},${link.target.id}`}\n d={getLinkPath(link, connectionType, rootPosition)}\n stroke={selected ? SELECTED_PATH_COLOR : aesGetters.lineColor(idx)}\n strokeWidth={selected ? 2 : 1}\n fill=\"none\"\n />\n );\n })}\n </>\n );\n}\n"],"names":["getLinkPath","link","connectionType","rootPosition","source","target","isVertical","d3link","curveBumpY","curveBumpX","d","LinksGroup","links","edgeInheritance","aesGetters","selected","jsx","Fragment","idx","SELECTED_PATH_COLOR"],"mappings":";;;;AAqBA,SAASA,EACLC,GACAC,GACAC,GACM;AACN,QAAM,EAAC,QAAAC,GAAQ,QAAAC,EAAA,IAAUJ,GACnBK,IAAaH,MAAiB;AACpC,SAAID,MAAmB,cACZI,IACD,KAAKF,EAAO,CAAC,IAAIA,EAAO,CAAC,MAAMC,EAAO,CAAC,IAAID,EAAO,CAAC,KAAKC,EAAO,CAAC,IAAIA,EAAO,CAAC,KAC5E,KAAKD,EAAO,CAAC,IAAIA,EAAO,CAAC,MAAMA,EAAO,CAAC,IAAIC,EAAO,CAAC,KAAKA,EAAO,CAAC,IAAIA,EAAO,CAAC,KAElFH,MAAmB,UAEfK;AAAAA,IACID,IAAaE,IAAaC;AAAAA,EAAA,EAEzB,EAAE,CAAAC,MAAMJ,IAAaI,EAAE,IAAIA,EAAE,CAAE,EAC/B,EAAE,CAAAA,MAAMJ,IAAaI,EAAE,IAAIA,EAAE,CAAE,EAC/B,OAAO,CAAAA,MAAKA,EAAE,MAAM,EACpB,OAAO,CAAAA,MAAKA,EAAE,MAAM,EAAET,CAAI,KAAK,KAGrCK,IACD,KAAKF,EAAO,CAAC,IAAIA,EAAO,CAAC,KAAKC,EAAO,CAAC,IAAIA,EAAO,CAAC,KAClD,KAAKD,EAAO,CAAC,IAAIA,EAAO,CAAC,KAAKC,EAAO,CAAC,IAAIA,EAAO,CAAC;AAC5D;AAEO,SAASM,EAAW;AAAA,EACvB,OAAAC;AAAA,EACA,gBAAAV;AAAA,EACA,cAAAC;AAAA,EACA,iBAAAU;AAAA,EACA,YAAAC;AAAA,EACA,UAAAC;AACJ,GAAoB;AAChB,SACIC,gBAAAA,EAAAA,IAAAC,EAAAA,UAAA,EACK,UAAAL,EAAM,IAAI,CAAAX,MAAQ;AACf,UAAM,EAAC,QAAAG,GAAQ,QAAAC,EAAA,IAAUJ,GAEnBiB,KADUL,MAAoB,OAAOT,IAASC,GAChC,KAAK,WAAW,CAAC;AACrC,WACIW,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QAEG,GAAGhB,EAAYC,GAAMC,GAAgBC,CAAY;AAAA,QACjD,QAAQY,IAAWI,IAAsBL,EAAW,UAAUI,CAAG;AAAA,QACjE,aAAaH,IAAW,IAAI;AAAA,QAC5B,MAAK;AAAA,MAAA;AAAA,MAJA,GAAGd,EAAK,OAAO,EAAE,IAAIA,EAAK,OAAO,EAAE;AAAA,IAAA;AAAA,EAOpD,CAAC,EAAA,CACL;AAER;"}
@@ -1,18 +1,18 @@
1
+ import { HierarchyPointNode } from 'd3-hierarchy';
2
+ import { ClickEventData } from '../../types';
1
3
  import { DendroSettingsImpl } from '../DendroSettingsImpl';
2
4
  import { TreeNodeData } from '../getHierarchyData';
3
- import { ClickEventData } from '../../types';
4
- import { HierarchyPointNode } from 'd3-hierarchy';
5
5
  interface NodeGroupProps {
6
6
  nodes: HierarchyPointNode<TreeNodeData>[];
7
7
  rootPosition: DendroSettingsImpl['rootPosition'];
8
8
  showLeavesLabels: DendroSettingsImpl['showLeavesLabels'];
9
9
  showNodesLabels: DendroSettingsImpl['showNodesLabels'];
10
10
  aesGetters: {
11
- nodeShape: (row: Record<string, string>) => string;
12
- nodeColor: (row: Record<string, string>) => string;
13
- nodeSize: (row: Record<string, number>) => number;
14
- lineShape: (row: Record<string, string>) => string;
15
- lineColor: (row: Record<string, string>) => string;
11
+ nodeShape: (idx: number) => string;
12
+ nodeColor: (idx: number) => string;
13
+ nodeSize: (idx: number) => number;
14
+ lineShape: (idx: number) => string;
15
+ lineColor: (idx: number) => string;
16
16
  };
17
17
  onClick: (data: ClickEventData) => void;
18
18
  onSelectedUpdate: (node: HierarchyPointNode<TreeNodeData>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"NodesGroup.d.ts","sourceRoot":"","sources":["../../../src/dendro/components/NodesGroup.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AAEtD,OAAO,KAAK,EAAC,cAAc,EAAa,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,cAAc,CAAC;AAGrD,UAAU,cAAc;IACpB,KAAK,EAAE,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC;IAC1C,YAAY,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACjD,gBAAgB,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IACzD,eAAe,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;IACvD,UAAU,EAAE;QACR,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;QACnD,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;QACnD,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;QAClD,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;QACnD,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;KACtD,CAAC;IACF,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACxC,gBAAgB,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAID,wBAAgB,UAAU,CAAC,EACvB,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,cAAc,EACd,OAAO,EACP,gBAAgB,GACnB,EAAE,cAAc,2CAyGhB"}
1
+ {"version":3,"file":"NodesGroup.d.ts","sourceRoot":"","sources":["../../../src/dendro/components/NodesGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAG9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,UAAU,cAAc;IACpB,KAAK,EAAE,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC;IAC1C,YAAY,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACjD,gBAAgB,EAAE,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;IACzD,eAAe,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;IACvD,UAAU,EAAE;QACR,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;QACnC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;QACnC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;QAClC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;QACnC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;KACtC,CAAC;IACF,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACxC,gBAAgB,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAID,wBAAgB,UAAU,CAAC,EACvB,KAAK,EACL,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,cAAc,EACd,OAAO,EACP,gBAAgB,GACnB,EAAE,cAAc,2CAyGhB"}
@@ -1,31 +1,31 @@
1
1
  import { j as t } from "../../node_modules/react/jsx-runtime.js";
2
- import { DIMMED_OPACITY as T, SELECTED_NODE_COLOR as E, MARGIN as e } from "../constants.js";
3
- import { getPointShape as L } from "../../utils/getPointShape.js";
4
- import { r as f } from "../../_virtual/index.js";
2
+ import { r as E } from "../../_virtual/index.js";
3
+ import { getPointShape as T } from "../../utils/getPointShape.js";
4
+ import { DIMMED_OPACITY as L, SELECTED_NODE_COLOR as f, MARGIN as p } from "../constants.js";
5
5
  const v = 12;
6
- function I({
6
+ function w({
7
7
  nodes: u,
8
8
  rootPosition: j,
9
- showLeavesLabels: g,
10
- showNodesLabels: D,
11
- aesGetters: o,
9
+ showLeavesLabels: d,
10
+ showNodesLabels: g,
11
+ aesGetters: i,
12
12
  selectedNodeId: h,
13
13
  onClick: y,
14
14
  onSelectedUpdate: m
15
15
  }) {
16
- const s = j === "top", [O, n] = f.useState(null);
17
- return f.useEffect(() => {
18
- n(null);
16
+ const n = j === "top", [I, a] = E.useState(null);
17
+ return E.useEffect(() => {
18
+ a(null);
19
19
  }, [h]), /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
20
20
  /* @__PURE__ */ t.jsx("g", { children: u.map((r) => {
21
- const a = r.data.rawData[0], c = o.nodeSize(a), l = o.nodeColor(a), i = s ? r.x : r.y, x = s ? r.y : r.x;
21
+ const s = r.data.rawIndexes[0], c = i.nodeSize(s), l = i.nodeColor(s), o = n ? r.x : r.y, x = n ? r.y : r.x;
22
22
  return /* @__PURE__ */ t.jsx(
23
23
  "g",
24
24
  {
25
- transform: `translate(${i},${x})`,
25
+ transform: `translate(${o},${x})`,
26
26
  style: { cursor: "pointer" },
27
- onClick: (p) => {
28
- p.stopPropagation(), y({ x: i + e.LEFT, y: x + e.TOP, info: r.data.rawData }), m(r);
27
+ onClick: (e) => {
28
+ e.stopPropagation(), y({ x: o + p.LEFT, y: x + p.TOP, info: r.data.rawIndexes }), m(r);
29
29
  },
30
30
  children: /* @__PURE__ */ t.jsx("g", { children: /* @__PURE__ */ t.jsx(
31
31
  "circle",
@@ -33,10 +33,10 @@ function I({
33
33
  cx: 0,
34
34
  cy: 0,
35
35
  r: c + v,
36
- fill: h === r.id ? E : O === r.id ? l : "transparent",
37
- opacity: T,
38
- onMouseOver: () => n(r.id ?? null),
39
- onMouseLeave: () => n(null)
36
+ fill: h === r.id ? f : I === r.id ? l : "transparent",
37
+ opacity: L,
38
+ onMouseOver: () => a(r.id ?? null),
39
+ onMouseLeave: () => a(null)
40
40
  }
41
41
  ) })
42
42
  },
@@ -44,21 +44,21 @@ function I({
44
44
  );
45
45
  }) }),
46
46
  /* @__PURE__ */ t.jsx("g", { children: u.map((r) => {
47
- const a = r.data.rawData[0], c = o.nodeShape(a), l = o.nodeSize(a), i = o.nodeColor(a), x = s ? r.x : r.y, p = s ? r.y : r.x;
47
+ const s = r.data.rawIndexes[0], c = i.nodeShape(s), l = i.nodeSize(s), o = i.nodeColor(s), x = n ? r.x : r.y, e = n ? r.y : r.x;
48
48
  return /* @__PURE__ */ t.jsx(
49
49
  "g",
50
50
  {
51
- transform: `translate(${x},${p})`,
51
+ transform: `translate(${x},${e})`,
52
52
  style: { cursor: "pointer" },
53
- onClick: (w) => {
54
- w.stopPropagation(), y({ x: x + e.LEFT, y: p + e.TOP, info: r.data.rawData }), m(r);
53
+ onClick: (O) => {
54
+ O.stopPropagation(), y({ x: x + p.LEFT, y: e + p.TOP, info: r.data.rawIndexes }), m(r);
55
55
  },
56
56
  children: /* @__PURE__ */ t.jsx(
57
57
  "g",
58
58
  {
59
- onMouseOver: () => n(r.id ?? null),
60
- onMouseLeave: () => n(null),
61
- children: L(c, l, h === r.id ? E : i)
59
+ onMouseOver: () => a(r.id ?? null),
60
+ onMouseLeave: () => a(null),
61
+ children: T(c, l, h === r.id ? f : o)
62
62
  }
63
63
  )
64
64
  },
@@ -66,13 +66,13 @@ function I({
66
66
  );
67
67
  }) }),
68
68
  /* @__PURE__ */ t.jsx("g", { children: u.map((r) => {
69
- const a = r.data.rawData[0], c = o.nodeSize(a), l = s ? r.x : r.y, i = s ? r.y : r.x;
69
+ const s = r.data.rawIndexes[0], c = i.nodeSize(s), l = n ? r.x : r.y, o = n ? r.y : r.x;
70
70
  return /* @__PURE__ */ t.jsx(
71
71
  "g",
72
72
  {
73
- transform: `translate(${l},${i})`,
73
+ transform: `translate(${l},${o})`,
74
74
  style: { pointerEvents: "none" },
75
- children: (D && r.children || g && !r.children) && /* @__PURE__ */ t.jsx(
75
+ children: (g && r.children || d && !r.children) && /* @__PURE__ */ t.jsx(
76
76
  "text",
77
77
  {
78
78
  x: c + 4,
@@ -90,6 +90,6 @@ function I({
90
90
  ] });
91
91
  }
92
92
  export {
93
- I as NodesGroup
93
+ w as NodesGroup
94
94
  };
95
95
  //# sourceMappingURL=NodesGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodesGroup.js","sources":["../../../src/dendro/components/NodesGroup.tsx"],"sourcesContent":["import {DIMMED_OPACITY, MARGIN, SELECTED_NODE_COLOR} from '../constants';\nimport type {DendroSettingsImpl} from '../DendroSettingsImpl';\nimport type {TreeNodeData} from '../getHierarchyData';\nimport {getPointShape} from '../../utils/getPointShape';\nimport type {ClickEventData, PointShape} from '../../types';\nimport type {HierarchyPointNode} from 'd3-hierarchy';\nimport React, {useEffect, useState} from 'react';\n\ninterface NodeGroupProps {\n nodes: HierarchyPointNode<TreeNodeData>[];\n rootPosition: DendroSettingsImpl['rootPosition'];\n showLeavesLabels: DendroSettingsImpl['showLeavesLabels'];\n showNodesLabels: DendroSettingsImpl['showNodesLabels'];\n aesGetters: {\n nodeShape: (row: Record<string, string>) => string;\n nodeColor: (row: Record<string, string>) => string;\n nodeSize: (row: Record<string, number>) => number;\n lineShape: (row: Record<string, string>) => string;\n lineColor: (row: Record<string, string>) => string;\n };\n onClick: (data: ClickEventData) => void;\n onSelectedUpdate: (node: HierarchyPointNode<TreeNodeData>) => void;\n selectedNodeId?: string;\n}\n\nconst SELECTED_NODE_HIGHLIGHT_WIDTH = 12;\n\nexport function NodesGroup({\n nodes,\n rootPosition,\n showLeavesLabels,\n showNodesLabels,\n aesGetters,\n selectedNodeId,\n onClick,\n onSelectedUpdate,\n}: NodeGroupProps) {\n const isVertical = rootPosition === 'top';\n const [hoveredNodeId, setHoveredNodeId] = useState<string | null>(null);\n useEffect(() => {\n setHoveredNodeId(null);\n }, [selectedNodeId]);\n return (\n <>\n <g>\n {nodes.map(node => {\n const row = node.data.rawData[0];\n const size = aesGetters.nodeSize(row as Record<string, number>);\n const color = aesGetters.nodeColor(row as Record<string, string>);\n const x = isVertical ? node.x : node.y;\n const y = isVertical ? node.y : node.x;\n return (\n <g\n key={node.id}\n transform={`translate(${x},${y})`}\n style={{cursor: 'pointer'}}\n onClick={e => {\n e.stopPropagation();\n onClick({x: x + MARGIN.LEFT, y: y + MARGIN.TOP, info: node.data.rawData});\n onSelectedUpdate(node);\n }}\n >\n <g>\n <circle\n cx={0}\n cy={0}\n r={size + SELECTED_NODE_HIGHLIGHT_WIDTH}\n fill={\n selectedNodeId === node.id\n ? SELECTED_NODE_COLOR\n : hoveredNodeId === node.id\n ? color\n : 'transparent'\n }\n opacity={DIMMED_OPACITY}\n onMouseOver={() => setHoveredNodeId(node.id ?? null)}\n onMouseLeave={() => setHoveredNodeId(null)}\n />\n </g>\n </g>\n );\n })}\n </g>\n <g>\n {nodes.map(node => {\n const row = node.data.rawData[0];\n const shape = aesGetters.nodeShape(row as Record<string, string>) as PointShape;\n const size = aesGetters.nodeSize(row as Record<string, number>);\n const color = aesGetters.nodeColor(row as Record<string, string>);\n const x = isVertical ? node.x : node.y;\n const y = isVertical ? node.y : node.x;\n return (\n <g\n key={node.id}\n transform={`translate(${x},${y})`}\n style={{cursor: 'pointer'}}\n onClick={e => {\n e.stopPropagation();\n onClick({x: x + MARGIN.LEFT, y: y + MARGIN.TOP, info: node.data.rawData});\n onSelectedUpdate(node);\n }}\n >\n <g\n onMouseOver={() => setHoveredNodeId(node.id ?? null)}\n onMouseLeave={() => setHoveredNodeId(null)}\n >\n {getPointShape(shape, size, selectedNodeId === node.id ? SELECTED_NODE_COLOR : color)}\n </g>\n </g>\n );\n })}\n </g>\n <g>\n {nodes.map(node => {\n const row = node.data.rawData[0];\n const size = aesGetters.nodeSize(row as Record<string, number>);\n const x = isVertical ? node.x : node.y;\n const y = isVertical ? node.y : node.x;\n return (\n <g\n key={node.id}\n transform={`translate(${x},${y})`}\n style={{pointerEvents: 'none'}}\n >\n {((showNodesLabels && node.children) || (showLeavesLabels && !node.children)) && (\n <text\n x={size + 4}\n y=\"4\"\n paintOrder=\"stroke\"\n stroke=\"white\"\n strokeWidth=\"3\"\n >\n {node.data.label}\n </text>\n )}\n </g>\n );\n })}\n </g>\n </>\n );\n}\n"],"names":["SELECTED_NODE_HIGHLIGHT_WIDTH","NodesGroup","nodes","rootPosition","showLeavesLabels","showNodesLabels","aesGetters","selectedNodeId","onClick","onSelectedUpdate","isVertical","hoveredNodeId","setHoveredNodeId","useState","useEffect","jsxs","Fragment","jsx","node","row","size","color","x","y","e","MARGIN","SELECTED_NODE_COLOR","DIMMED_OPACITY","shape"],"mappings":"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"}
1
+ {"version":3,"file":"NodesGroup.js","sources":["../../../src/dendro/components/NodesGroup.tsx"],"sourcesContent":["import type { HierarchyPointNode } from 'd3-hierarchy';\nimport { useEffect, useState } from 'react';\nimport type { ClickEventData, PointShape } from '../../types';\nimport { getPointShape } from '../../utils/getPointShape';\nimport { DIMMED_OPACITY, MARGIN, SELECTED_NODE_COLOR } from '../constants';\nimport type { DendroSettingsImpl } from '../DendroSettingsImpl';\nimport type { TreeNodeData } from '../getHierarchyData';\n\ninterface NodeGroupProps {\n nodes: HierarchyPointNode<TreeNodeData>[];\n rootPosition: DendroSettingsImpl['rootPosition'];\n showLeavesLabels: DendroSettingsImpl['showLeavesLabels'];\n showNodesLabels: DendroSettingsImpl['showNodesLabels'];\n aesGetters: {\n nodeShape: (idx: number) => string;\n nodeColor: (idx: number) => string;\n nodeSize: (idx: number) => number;\n lineShape: (idx: number) => string;\n lineColor: (idx: number) => string;\n };\n onClick: (data: ClickEventData) => void;\n onSelectedUpdate: (node: HierarchyPointNode<TreeNodeData>) => void;\n selectedNodeId?: string;\n}\n\nconst SELECTED_NODE_HIGHLIGHT_WIDTH = 12;\n\nexport function NodesGroup({\n nodes,\n rootPosition,\n showLeavesLabels,\n showNodesLabels,\n aesGetters,\n selectedNodeId,\n onClick,\n onSelectedUpdate,\n}: NodeGroupProps) {\n const isVertical = rootPosition === 'top';\n const [hoveredNodeId, setHoveredNodeId] = useState<string | null>(null);\n useEffect(() => {\n setHoveredNodeId(null);\n }, [selectedNodeId]);\n return (\n <>\n <g>\n {nodes.map(node => {\n const idx = node.data.rawIndexes[0];\n const size = aesGetters.nodeSize(idx);\n const color = aesGetters.nodeColor(idx);\n const x = isVertical ? node.x : node.y;\n const y = isVertical ? node.y : node.x;\n return (\n <g\n key={node.id}\n transform={`translate(${x},${y})`}\n style={{cursor: 'pointer'}}\n onClick={e => {\n e.stopPropagation();\n onClick({x: x + MARGIN.LEFT, y: y + MARGIN.TOP, info: node.data.rawIndexes});\n onSelectedUpdate(node);\n }}\n >\n <g>\n <circle\n cx={0}\n cy={0}\n r={size + SELECTED_NODE_HIGHLIGHT_WIDTH}\n fill={\n selectedNodeId === node.id\n ? SELECTED_NODE_COLOR\n : hoveredNodeId === node.id\n ? color\n : 'transparent'\n }\n opacity={DIMMED_OPACITY}\n onMouseOver={() => setHoveredNodeId(node.id ?? null)}\n onMouseLeave={() => setHoveredNodeId(null)}\n />\n </g>\n </g>\n );\n })}\n </g>\n <g>\n {nodes.map(node => {\n const idx = node.data.rawIndexes[0];\n const shape = aesGetters.nodeShape(idx) as PointShape;\n const size = aesGetters.nodeSize(idx);\n const color = aesGetters.nodeColor(idx);\n const x = isVertical ? node.x : node.y;\n const y = isVertical ? node.y : node.x;\n return (\n <g\n key={node.id}\n transform={`translate(${x},${y})`}\n style={{cursor: 'pointer'}}\n onClick={e => {\n e.stopPropagation();\n onClick({x: x + MARGIN.LEFT, y: y + MARGIN.TOP, info: node.data.rawIndexes});\n onSelectedUpdate(node);\n }}\n >\n <g\n onMouseOver={() => setHoveredNodeId(node.id ?? null)}\n onMouseLeave={() => setHoveredNodeId(null)}\n >\n {getPointShape(shape, size, selectedNodeId === node.id ? SELECTED_NODE_COLOR : color)}\n </g>\n </g>\n );\n })}\n </g>\n <g>\n {nodes.map(node => {\n const idx = node.data.rawIndexes[0];\n const size = aesGetters.nodeSize(idx);\n const x = isVertical ? node.x : node.y;\n const y = isVertical ? node.y : node.x;\n return (\n <g\n key={node.id}\n transform={`translate(${x},${y})`}\n style={{pointerEvents: 'none'}}\n >\n {((showNodesLabels && node.children) || (showLeavesLabels && !node.children)) && (\n <text\n x={size + 4}\n y=\"4\"\n paintOrder=\"stroke\"\n stroke=\"white\"\n strokeWidth=\"3\"\n >\n {node.data.label}\n </text>\n )}\n </g>\n );\n })}\n </g>\n </>\n );\n}\n"],"names":["SELECTED_NODE_HIGHLIGHT_WIDTH","NodesGroup","nodes","rootPosition","showLeavesLabels","showNodesLabels","aesGetters","selectedNodeId","onClick","onSelectedUpdate","isVertical","hoveredNodeId","setHoveredNodeId","useState","useEffect","jsxs","Fragment","jsx","node","idx","size","color","x","y","MARGIN","SELECTED_NODE_COLOR","DIMMED_OPACITY","shape","e"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { DataValue, PointShape, Row } from '../../types';
2
1
  import { ScaleLinear, ScaleOrdinal, ScalePower } from 'd3-scale';
2
+ import { DataValue, PointShape } from '../../types';
3
3
  export interface ChartSizes {
4
4
  treeWidth: number;
5
5
  treeHeight: number;
@@ -55,10 +55,10 @@ export interface LegendData {
55
55
  }
56
56
  export type Cell = {
57
57
  id: string;
58
+ idx: number;
58
59
  x: string;
59
60
  y: string;
60
61
  value: DataValue;
61
- data: Row;
62
62
  };
63
63
  export {};
64
64
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/dendro/components/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAE,UAAU,EAAE,GAAG,EAAC,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAC,WAAW,EAAE,YAAY,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AAEpE,MAAM,WAAW,UAAU;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IACxB,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,cAAc;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IACxD,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACrC;AACD,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACtD,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AACD,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACnD,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;CACtD;AACD,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACpC;AACD,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,eAAe,CAAC;AAEvG,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,MAAM,MAAM,IAAI,GAAG;IACf,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,GAAG,CAAC;CACb,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/dendro/components/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzD,MAAM,WAAW,UAAU;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IACxB,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,cAAc;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,oBAAqB,SAAQ,cAAc;IACxD,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACrC;AACD,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACtD,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AACD,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACnD,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;CACtD;AACD,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACpC;AACD,MAAM,MAAM,UAAU,GAAG,eAAe,GAAG,kBAAkB,GAAG,oBAAoB,GAAG,eAAe,CAAC;AAEvG,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,EAAE,CAAC;CACvB;AAED,MAAM,MAAM,IAAI,GAAG;IACf,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,SAAS,CAAC;CACpB,CAAA"}
@@ -1,8 +1,8 @@
1
+ import { HierarchyNode } from 'd3-hierarchy';
1
2
  import { DataFrame } from '../DataFrame';
3
+ import { Cell } from './components/types';
2
4
  import { DendroSettingsImpl } from './DendroSettingsImpl';
3
5
  import { TreeNodeData } from './getHierarchyData';
4
- import { Cell } from './components/types';
5
- import { HierarchyNode } from 'd3-hierarchy';
6
6
  export type HeatmapData = {
7
7
  xKeys: string[];
8
8
  yKeys: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"getHeatmapData.d.ts","sourceRoot":"","sources":["../../src/dendro/getHeatmapData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAEhD,MAAM,MAAM,WAAW,GAAG;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5C,IAAI,EAAE;QACF,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACnC,CAAC;CACL,CAAC;AAEF,wBAAgB,cAAc,CAC1B,IAAI,EAAC,SAAS,EACd,IAAI,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,EACxD,iBAAiB,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC1D,WAAW,EAAE,kBAAkB,CAAC,aAAa,CAAC,EAC9C,YAAY,EAAE,kBAAkB,CAAC,cAAc,CAAC,EAChD,EAAE,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAC5B,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,sBAKzC;AACD,wBAAgB,4BAA4B,CACxC,IAAI,EAAC,SAAS,EACd,IAAI,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,EACxD,iBAAiB,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC1D,WAAW,EAAE,kBAAkB,CAAC,aAAa,CAAC,EAC9C,YAAY,EAAE,kBAAkB,CAAC,cAAc,CAAC,EAChD,EAAE,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAC5B,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,GACtC,WAAW,GAAG,IAAI,CAkFrB"}
1
+ {"version":3,"file":"getHeatmapData.d.ts","sourceRoot":"","sources":["../../src/dendro/getHeatmapData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG;IACtB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5C,IAAI,EAAE;QACF,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9B,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACnC,CAAC;CACL,CAAC;AAEF,wBAAgB,cAAc,CAC1B,IAAI,EAAC,SAAS,EACd,IAAI,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,EACxD,iBAAiB,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC1D,WAAW,EAAE,kBAAkB,CAAC,aAAa,CAAC,EAC9C,YAAY,EAAE,kBAAkB,CAAC,cAAc,CAAC,EAChD,EAAE,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAC5B,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,sBAKzC;AACD,wBAAgB,4BAA4B,CACxC,IAAI,EAAC,SAAS,EACd,IAAI,EAAE,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,WAAW,CAAC,EACxD,iBAAiB,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,EAC1D,WAAW,EAAE,kBAAkB,CAAC,aAAa,CAAC,EAC9C,YAAY,EAAE,kBAAkB,CAAC,cAAc,CAAC,EAChD,EAAE,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAC5B,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,GACtC,WAAW,GAAG,IAAI,CAuFrB"}
@@ -1,73 +1,77 @@
1
- function L(v, c, x, m, S, n, f) {
2
- return c === "stringSource" ? B(v, x, n, f) : b(v, c, x, m, S, n, f);
1
+ function b(u, x, c, g, K, t, v) {
2
+ return x === "stringSource" ? d(u, c, t, v) : w(u, x, c, g, K, t, v);
3
3
  }
4
- function b(v, c, x, m, S, n, f) {
5
- if (!x || !m)
4
+ function w(u, x, c, g, K, t, v) {
5
+ if (!c || !g)
6
6
  return null;
7
- const p = f.leaves().map((t) => String(t.data.rawData[0][n.value])), e = {
7
+ const C = v.leaves().map((l) => String(u.getColumnValue(t.value, l.data.rawIndexes[0]))), e = {
8
8
  xKeys: [],
9
9
  xGroupKeys: [],
10
10
  xKeysByGroups: {},
11
- yKeys: p,
11
+ yKeys: C,
12
12
  cells: {},
13
13
  meta: {
14
14
  valueExtent: [1 / 0, -1 / 0],
15
15
  uniqueValues: /* @__PURE__ */ new Set(),
16
16
  xLabels: {}
17
17
  }
18
- }, d = x, K = S, u = m, s = n, i = /* @__PURE__ */ new Set(), r = {}, a = /* @__PURE__ */ new Set();
19
- return v.rows.forEach((t) => {
20
- const o = K.length ? K.map((E) => String(t[E.value])).join("_") : "null";
21
- let l = t[u.value], y = t[s.value];
22
- if (l === null || y === null)
23
- return;
24
- l = String(l), y = String(y), r[o] || (r[o] = /* @__PURE__ */ new Set(), a.add(o)), i.add(l), r[o].add(l), e.cells[l] || (e.cells[l] = {});
25
- const g = t[d.value];
26
- if (c === "discrete" && e.meta.uniqueValues.add(String(g)), c === "continuous" && (e.meta.valueExtent[0] = Math.min(g, e.meta.valueExtent[0]), e.meta.valueExtent[1] = Math.max(g, e.meta.valueExtent[1])), e.cells[l][y] && g !== g)
27
- throw Error(`More than 1 value for x=${l}, y=${y}`);
28
- const G = String(t[u.valueLabels ?? u.value]);
29
- if (e.meta.xLabels[l] && G !== e.meta.xLabels[l])
30
- throw Error(`More than 1 x-label value for x=${l}`);
31
- e.meta.xLabels[l] = G, e.cells[l][y] = {
32
- id: `${l}_${y}`,
33
- x: l,
34
- y,
35
- value: t[d.value],
36
- data: t
18
+ }, S = c, f = K, s = g, r = t, y = /* @__PURE__ */ new Set(), a = {}, o = /* @__PURE__ */ new Set();
19
+ for (let l = 0; l < u.rowsCount; l++) {
20
+ const i = f.length ? f.map((V) => String(u.getColumnValue(V.value, l))).join("_") : "null";
21
+ let n = u.getColumnValue(s.value, l), m = u.getColumnValue(r.value, l);
22
+ if (n === null || m === null)
23
+ continue;
24
+ n = String(n), m = String(m), a[i] || (a[i] = /* @__PURE__ */ new Set(), o.add(i)), y.add(n), a[i].add(n), e.cells[n] || (e.cells[n] = {});
25
+ const p = u.getColumnValue(S.value, l);
26
+ if (x === "discrete" && e.meta.uniqueValues.add(String(p)), x === "continuous" && (e.meta.valueExtent[0] = Math.min(p, e.meta.valueExtent[0]), e.meta.valueExtent[1] = Math.max(p, e.meta.valueExtent[1])), e.cells[n][m] && p !== p)
27
+ throw Error(`More than 1 value for x=${n}, y=${m}`);
28
+ const G = String(
29
+ u.getColumnValue(s.valueLabels ?? s.value, l)
30
+ );
31
+ if (e.meta.xLabels[n] && G !== e.meta.xLabels[n])
32
+ throw Error(`More than 1 x-label value for x=${n}`);
33
+ e.meta.xLabels[n] = G, e.cells[n][m] = {
34
+ idx: l,
35
+ id: `${n}_${m}`,
36
+ x: n,
37
+ y: m,
38
+ value: u.getColumnValue(S.value, l)
37
39
  };
38
- }), e.xGroupKeys = [...a], e.xKeysByGroups = [...a].reduce((t, o) => (t[o] = [...r[o]], t), {}), e.xKeys = e.xGroupKeys.reduce((t, o) => (t = t.concat(e.xKeysByGroups[o]), t), []), e;
40
+ }
41
+ return e.xGroupKeys = [...o], e.xKeysByGroups = [...o].reduce((l, i) => (l[i] = [...a[i]], l), {}), e.xKeys = e.xGroupKeys.reduce((l, i) => (l = l.concat(e.xKeysByGroups[i]), l), []), e;
39
42
  }
40
- function B(v, c, x, m) {
41
- if (!c)
43
+ function d(u, x, c, g) {
44
+ if (!x)
42
45
  return null;
43
- const S = m.leaves().map((u) => String(u.data.rawData[0][x.value])), n = {
46
+ const K = g.leaves().map((s) => String(u.getColumnValue(c.value, s.data.rawIndexes[0]))), t = {
44
47
  xKeys: [],
45
48
  xGroupKeys: [],
46
49
  xKeysByGroups: {},
47
- yKeys: S,
50
+ yKeys: K,
48
51
  cells: {},
49
52
  meta: {
50
53
  valueExtent: [1 / 0, -1 / 0],
51
54
  uniqueValues: /* @__PURE__ */ new Set(),
52
55
  xLabels: {}
53
56
  }
54
- }, f = c, p = x, e = { null: /* @__PURE__ */ new Set() }, d = ["null"];
55
- let K = 0;
56
- return v.rows.forEach((u) => {
57
- const s = u[f.value];
58
- let i = u[p.value];
59
- if (!(s === null || i === null)) {
60
- i = String(i);
61
- for (let r = 0; r < s.length; r++) {
62
- K = Math.max(K, s.length);
63
- const a = String(r), t = s[r];
64
- e.null.add(a), n.meta.uniqueValues.add(t), n.meta.xLabels[a] = a, n.cells[a] || (n.cells[a] = {}), n.cells[a][i] = { id: `${a}_${i}`, x: a, y: i, value: t, data: u };
57
+ }, v = x, C = c, e = { null: /* @__PURE__ */ new Set() }, S = ["null"];
58
+ let f = 0;
59
+ for (let s = 0; s < u.rowsCount; s++) {
60
+ const r = u.getColumnValue(v.value, s);
61
+ let y = u.getColumnValue(C.value, s);
62
+ if (!(r === null || y === null)) {
63
+ y = String(y);
64
+ for (let a = 0; a < r.length; a++) {
65
+ f = Math.max(f, r.length);
66
+ const o = String(a), l = r[a];
67
+ e.null.add(o), t.meta.uniqueValues.add(l), t.meta.xLabels[o] = o, t.cells[o] || (t.cells[o] = {}), t.cells[o][y] = { idx: s, id: `${o}_${y}`, x: o, y, value: l };
65
68
  }
66
69
  }
67
- }), n.xGroupKeys = d, n.xKeysByGroups = d.reduce((u, s) => (u[s] = [...e[s]], u), {}), n.xKeys = new Array(K).fill(null).map((u, s) => String(s)), n;
70
+ }
71
+ return t.xGroupKeys = S, t.xKeysByGroups = S.reduce((s, r) => (s[r] = [...e[r]], s), {}), t.xKeys = new Array(f).fill(null).map((s, r) => String(r)), t;
68
72
  }
69
73
  export {
70
- L as getHeatmapData,
71
- b as getHeatmapDataWithAxisColumn
74
+ b as getHeatmapData,
75
+ w as getHeatmapDataWithAxisColumn
72
76
  };
73
77
  //# sourceMappingURL=getHeatmapData.js.map