@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.
- package/dist/DataFrame.d.ts +15 -9
- package/dist/DataFrame.d.ts.map +1 -1
- package/dist/DataFrame.js +105 -81
- package/dist/DataFrame.js.map +1 -1
- package/dist/bubble/ChartRenderer.d.ts +6 -5
- package/dist/bubble/ChartRenderer.d.ts.map +1 -1
- package/dist/bubble/ChartRenderer.js +123 -121
- package/dist/bubble/ChartRenderer.js.map +1 -1
- package/dist/bubble/components/Chart.d.ts +3 -2
- package/dist/bubble/components/Chart.d.ts.map +1 -1
- package/dist/bubble/components/Chart.js +78 -97
- package/dist/bubble/components/Chart.js.map +1 -1
- package/dist/bubble/components/ChartsGroup.d.ts +6 -5
- package/dist/bubble/components/ChartsGroup.d.ts.map +1 -1
- package/dist/bubble/components/ChartsGroup.js +39 -37
- package/dist/bubble/components/ChartsGroup.js.map +1 -1
- package/dist/bubble/getCellTooltip.d.ts +5 -0
- package/dist/bubble/getCellTooltip.d.ts.map +1 -0
- package/dist/bubble/getCellTooltip.js +28 -0
- package/dist/bubble/getCellTooltip.js.map +1 -0
- package/dist/bubble/{getCells.d.ts → getGroupedCellsData.d.ts} +4 -4
- package/dist/bubble/getGroupedCellsData.d.ts.map +1 -0
- package/dist/bubble/getGroupedCellsData.js +94 -0
- package/dist/bubble/getGroupedCellsData.js.map +1 -0
- package/dist/bubble/index.d.ts +4 -4
- package/dist/bubble/index.d.ts.map +1 -1
- package/dist/bubble/index.js +47 -42
- package/dist/bubble/index.js.map +1 -1
- package/dist/bubble/utils/calculateCaptionTails.d.ts +2 -2
- package/dist/bubble/utils/calculateCaptionTails.d.ts.map +1 -1
- package/dist/bubble/utils/calculateCaptionTails.js.map +1 -1
- package/dist/common/Legend.d.ts.map +1 -1
- package/dist/common/Legend.js.map +1 -1
- package/dist/common/Tooltip.js +1 -1
- package/dist/common/Tooltip.js.map +1 -1
- package/dist/common/types.d.ts +1 -1
- package/dist/common/types.d.ts.map +1 -1
- package/dist/common/useDataFrame.d.ts +11 -0
- package/dist/common/useDataFrame.d.ts.map +1 -0
- package/dist/common/useDataFrame.js +20 -0
- package/dist/common/useDataFrame.js.map +1 -0
- package/dist/dendro/ChartRenderer.d.ts +9 -8
- package/dist/dendro/ChartRenderer.d.ts.map +1 -1
- package/dist/dendro/ChartRenderer.js +187 -187
- package/dist/dendro/ChartRenderer.js.map +1 -1
- package/dist/dendro/components/Chart.d.ts +8 -8
- package/dist/dendro/components/Chart.d.ts.map +1 -1
- package/dist/dendro/components/Chart.js +35 -35
- package/dist/dendro/components/Chart.js.map +1 -1
- package/dist/dendro/components/Heatmap.d.ts +3 -3
- package/dist/dendro/components/Heatmap.d.ts.map +1 -1
- package/dist/dendro/components/Heatmap.js +23 -23
- package/dist/dendro/components/Heatmap.js.map +1 -1
- package/dist/dendro/components/Legend.d.ts.map +1 -1
- package/dist/dendro/components/Legend.js.map +1 -1
- package/dist/dendro/components/LinksGroup.d.ts +6 -6
- package/dist/dendro/components/LinksGroup.d.ts.map +1 -1
- package/dist/dendro/components/LinksGroup.js +17 -17
- package/dist/dendro/components/LinksGroup.js.map +1 -1
- package/dist/dendro/components/NodesGroup.d.ts +7 -7
- package/dist/dendro/components/NodesGroup.d.ts.map +1 -1
- package/dist/dendro/components/NodesGroup.js +29 -29
- package/dist/dendro/components/NodesGroup.js.map +1 -1
- package/dist/dendro/components/types.d.ts +2 -2
- package/dist/dendro/components/types.d.ts.map +1 -1
- package/dist/dendro/getHeatmapData.d.ts +2 -2
- package/dist/dendro/getHeatmapData.d.ts.map +1 -1
- package/dist/dendro/getHeatmapData.js +48 -44
- package/dist/dendro/getHeatmapData.js.map +1 -1
- package/dist/dendro/getHierarchyData.d.ts +3 -3
- package/dist/dendro/getHierarchyData.d.ts.map +1 -1
- package/dist/dendro/getHierarchyData.js +31 -31
- package/dist/dendro/getHierarchyData.js.map +1 -1
- package/dist/dendro/index.d.ts +5 -5
- package/dist/dendro/index.d.ts.map +1 -1
- package/dist/dendro/index.js +86 -89
- package/dist/dendro/index.js.map +1 -1
- package/dist/discrete/ChartRenderer.d.ts +6 -6
- package/dist/discrete/ChartRenderer.d.ts.map +1 -1
- package/dist/discrete/ChartRenderer.js +197 -196
- package/dist/discrete/ChartRenderer.js.map +1 -1
- package/dist/discrete/DiscreteSettingsImpl.d.ts +3 -3
- package/dist/discrete/DiscreteSettingsImpl.d.ts.map +1 -1
- package/dist/discrete/DiscreteSettingsImpl.js +8 -8
- package/dist/discrete/DiscreteSettingsImpl.js.map +1 -1
- package/dist/discrete/components/layers/BoxElement.js.map +1 -1
- package/dist/discrete/index.d.ts +1 -1
- package/dist/discrete/index.d.ts.map +1 -1
- package/dist/discrete/index.js +109 -106
- package/dist/discrete/index.js.map +1 -1
- package/dist/discrete/layers/bar.d.ts +2 -2
- package/dist/discrete/layers/bar.d.ts.map +1 -1
- package/dist/discrete/layers/bar.js +32 -37
- package/dist/discrete/layers/bar.js.map +1 -1
- package/dist/discrete/layers/binnedDots.d.ts +3 -3
- package/dist/discrete/layers/binnedDots.d.ts.map +1 -1
- package/dist/discrete/layers/binnedDots.js +66 -78
- package/dist/discrete/layers/binnedDots.js.map +1 -1
- package/dist/discrete/layers/boxes.d.ts +3 -4
- package/dist/discrete/layers/boxes.d.ts.map +1 -1
- package/dist/discrete/layers/boxes.js +59 -60
- package/dist/discrete/layers/boxes.js.map +1 -1
- package/dist/discrete/layers/dots.d.ts +2 -3
- package/dist/discrete/layers/dots.d.ts.map +1 -1
- package/dist/discrete/layers/dots.js +30 -30
- package/dist/discrete/layers/dots.js.map +1 -1
- package/dist/discrete/layers/lines.js +11 -10
- package/dist/discrete/layers/lines.js.map +1 -1
- package/dist/discrete/layers/logo.d.ts +2 -2
- package/dist/discrete/layers/logo.d.ts.map +1 -1
- package/dist/discrete/layers/logo.js +21 -21
- package/dist/discrete/layers/logo.js.map +1 -1
- package/dist/discrete/layers/pairedPoints.d.ts +2 -2
- package/dist/discrete/layers/pairedPoints.d.ts.map +1 -1
- package/dist/discrete/layers/pairedPoints.js +62 -62
- package/dist/discrete/layers/pairedPoints.js.map +1 -1
- package/dist/discrete/layers/sina.d.ts +3 -4
- package/dist/discrete/layers/sina.d.ts.map +1 -1
- package/dist/discrete/layers/sina.js +67 -71
- package/dist/discrete/layers/sina.js.map +1 -1
- package/dist/discrete/layers/stackedBar.d.ts +1 -1
- package/dist/discrete/layers/stackedBar.d.ts.map +1 -1
- package/dist/discrete/layers/stackedBar.js +25 -25
- package/dist/discrete/layers/stackedBar.js.map +1 -1
- package/dist/discrete/layers/violins.js +13 -13
- package/dist/discrete/utils/getOutliersBounds.d.ts +1 -1
- package/dist/discrete/utils/getOutliersBounds.d.ts.map +1 -1
- package/dist/discrete/utils/getOutliersBounds.js +5 -5
- package/dist/discrete/utils/getOutliersBounds.js.map +1 -1
- package/dist/discrete/utils/splitTextByWidth.js +1 -1
- package/dist/discrete/utils/splitTextByWidth.js.map +1 -1
- package/dist/heatmap/ChartRenderer.d.ts +7 -6
- package/dist/heatmap/ChartRenderer.d.ts.map +1 -1
- package/dist/heatmap/ChartRenderer.js +232 -230
- package/dist/heatmap/ChartRenderer.js.map +1 -1
- package/dist/heatmap/HeatmapSettingsImpl.d.ts +2 -2
- package/dist/heatmap/HeatmapSettingsImpl.d.ts.map +1 -1
- package/dist/heatmap/HeatmapSettingsImpl.js +1 -1
- package/dist/heatmap/HeatmapSettingsImpl.js.map +1 -1
- package/dist/heatmap/components/Annotations/Annotation.d.ts.map +1 -1
- package/dist/heatmap/components/Annotations/Annotation.js +40 -39
- package/dist/heatmap/components/Annotations/Annotation.js.map +1 -1
- package/dist/heatmap/components/Chart.d.ts.map +1 -1
- package/dist/heatmap/components/Chart.js +90 -89
- package/dist/heatmap/components/Chart.js.map +1 -1
- package/dist/heatmap/components/ChartsGroup.d.ts +2 -2
- package/dist/heatmap/components/ChartsGroup.d.ts.map +1 -1
- package/dist/heatmap/components/ChartsGroup.js +14 -14
- package/dist/heatmap/components/ChartsGroup.js.map +1 -1
- package/dist/heatmap/components/types.d.ts +3 -2
- package/dist/heatmap/components/types.d.ts.map +1 -1
- package/dist/heatmap/getCells.d.ts +3 -2
- package/dist/heatmap/getCells.d.ts.map +1 -1
- package/dist/heatmap/getCells.js +97 -93
- package/dist/heatmap/getCells.js.map +1 -1
- package/dist/heatmap/index.d.ts +3 -3
- package/dist/heatmap/index.d.ts.map +1 -1
- package/dist/heatmap/index.js +13 -12
- package/dist/heatmap/index.js.map +1 -1
- package/dist/heatmap/utils/calculateAnnotationTitleSizes.d.ts.map +1 -1
- package/dist/heatmap/utils/calculateAnnotationTitleSizes.js +1 -1
- package/dist/heatmap/utils/calculateAnnotationTitleSizes.js.map +1 -1
- package/dist/heatmap/utils/calculateCaptionTails.d.ts +1 -1
- package/dist/heatmap/utils/calculateCaptionTails.d.ts.map +1 -1
- package/dist/heatmap/utils/calculateCaptionTails.js.map +1 -1
- package/dist/histogram/ChartRenderer.d.ts +6 -5
- package/dist/histogram/ChartRenderer.d.ts.map +1 -1
- package/dist/histogram/ChartRenderer.js +154 -153
- package/dist/histogram/ChartRenderer.js.map +1 -1
- package/dist/histogram/HistogramSettingsImpl.d.ts +2 -2
- package/dist/histogram/HistogramSettingsImpl.d.ts.map +1 -1
- package/dist/histogram/HistogramSettingsImpl.js.map +1 -1
- package/dist/histogram/components/Chart.js +48 -48
- package/dist/histogram/components/Chart.js.map +1 -1
- package/dist/histogram/components/types.d.ts +4 -3
- package/dist/histogram/components/types.d.ts.map +1 -1
- package/dist/histogram/getHistogramData.d.ts +7 -7
- package/dist/histogram/getHistogramData.d.ts.map +1 -1
- package/dist/histogram/getHistogramData.js +52 -53
- package/dist/histogram/getHistogramData.js.map +1 -1
- package/dist/histogram/index.d.ts +3 -3
- package/dist/histogram/index.d.ts.map +1 -1
- package/dist/histogram/index.js +49 -45
- package/dist/histogram/index.js.map +1 -1
- package/dist/node_modules/@d3fc/d3fc-axis/src/axisBase.js +10 -10
- package/dist/node_modules/d3-array/src/min.js +5 -11
- package/dist/node_modules/d3-array/src/min.js.map +1 -1
- package/dist/node_modules/d3-shape/src/area.js +30 -30
- package/dist/node_modules/d3-shape/src/line.js +6 -6
- package/dist/node_modules/d3-shape/src/line.js.map +1 -1
- package/dist/node_modules/kdbush/index.js +148 -0
- package/dist/node_modules/kdbush/index.js.map +1 -0
- package/dist/scatterplot/ChartRenderer.d.ts +7 -6
- package/dist/scatterplot/ChartRenderer.d.ts.map +1 -1
- package/dist/scatterplot/ChartRenderer.js +213 -209
- package/dist/scatterplot/ChartRenderer.js.map +1 -1
- package/dist/scatterplot/ScatterplotSettingsImpl.d.ts +2 -2
- package/dist/scatterplot/ScatterplotSettingsImpl.d.ts.map +1 -1
- package/dist/scatterplot/ScatterplotSettingsImpl.js +28 -28
- package/dist/scatterplot/ScatterplotSettingsImpl.js.map +1 -1
- package/dist/scatterplot/components/ChartAxisTitles.d.ts.map +1 -1
- package/dist/scatterplot/components/ChartAxisTitles.js +31 -30
- package/dist/scatterplot/components/ChartAxisTitles.js.map +1 -1
- package/dist/scatterplot/components/ChartLayersData.d.ts.map +1 -1
- package/dist/scatterplot/components/ChartLayersData.js +138 -156
- package/dist/scatterplot/components/ChartLayersData.js.map +1 -1
- package/dist/scatterplot/components/ChartTooltip.d.ts.map +1 -1
- package/dist/scatterplot/components/ChartTooltip.js +41 -38
- package/dist/scatterplot/components/ChartTooltip.js.map +1 -1
- package/dist/scatterplot/components/ChartTrendsData.js +21 -21
- package/dist/scatterplot/components/ChartTrendsData.js.map +1 -1
- package/dist/scatterplot/components/types.d.ts +7 -7
- package/dist/scatterplot/components/types.d.ts.map +1 -1
- package/dist/scatterplot/constants.d.ts +1 -1
- package/dist/scatterplot/constants.d.ts.map +1 -1
- package/dist/scatterplot/constants.js.map +1 -1
- package/dist/scatterplot/dots.d.ts +2 -2
- package/dist/scatterplot/dots.d.ts.map +1 -1
- package/dist/scatterplot/dots.js +27 -25
- package/dist/scatterplot/dots.js.map +1 -1
- package/dist/scatterplot/getLayersData.d.ts +3 -3
- package/dist/scatterplot/getLayersData.d.ts.map +1 -1
- package/dist/scatterplot/getLayersData.js +12 -15
- package/dist/scatterplot/getLayersData.js.map +1 -1
- package/dist/scatterplot/index.d.ts +4 -4
- package/dist/scatterplot/index.d.ts.map +1 -1
- package/dist/scatterplot/index.js +71 -72
- package/dist/scatterplot/index.js.map +1 -1
- package/dist/scatterplot/linearRegression.d.ts +5 -4
- package/dist/scatterplot/linearRegression.d.ts.map +1 -1
- package/dist/scatterplot/linearRegression.js +88 -86
- package/dist/scatterplot/linearRegression.js.map +1 -1
- package/dist/scatterplot/utils/createAesGetter.d.ts +3 -2
- package/dist/scatterplot/utils/createAesGetter.d.ts.map +1 -1
- package/dist/scatterplot/utils/createAesGetter.js +21 -21
- package/dist/scatterplot/utils/createAesGetter.js.map +1 -1
- package/dist/scatterplot/utils/createLegendInfo.d.ts +2 -10
- package/dist/scatterplot/utils/createLegendInfo.d.ts.map +1 -1
- package/dist/scatterplot/utils/createLegendInfo.js +44 -37
- package/dist/scatterplot/utils/createLegendInfo.js.map +1 -1
- package/dist/scatterplot/utils/formatColumnValue.d.ts +5 -0
- package/dist/scatterplot/utils/formatColumnValue.d.ts.map +1 -0
- package/dist/scatterplot/utils/formatColumnValue.js +11 -0
- package/dist/scatterplot/utils/formatColumnValue.js.map +1 -0
- package/dist/scatterplot/utils/getVisibleLabels.d.ts +6 -9
- package/dist/scatterplot/utils/getVisibleLabels.d.ts.map +1 -1
- package/dist/scatterplot/utils/getVisibleLabels.js +46 -56
- package/dist/scatterplot/utils/getVisibleLabels.js.map +1 -1
- package/dist/scatterplot-umap/ChartRenderer.d.ts +18 -15
- package/dist/scatterplot-umap/ChartRenderer.d.ts.map +1 -1
- package/dist/scatterplot-umap/ChartRenderer.js +231 -214
- package/dist/scatterplot-umap/ChartRenderer.js.map +1 -1
- package/dist/scatterplot-umap/SettingsImpl.d.ts +2 -2
- package/dist/scatterplot-umap/SettingsImpl.d.ts.map +1 -1
- package/dist/scatterplot-umap/SettingsImpl.js +25 -25
- package/dist/scatterplot-umap/SettingsImpl.js.map +1 -1
- package/dist/scatterplot-umap/colors.d.ts +6 -0
- package/dist/scatterplot-umap/colors.d.ts.map +1 -0
- package/dist/scatterplot-umap/colors.js +42 -0
- package/dist/scatterplot-umap/colors.js.map +1 -0
- package/dist/scatterplot-umap/components/LowerSVG.d.ts +2 -2
- package/dist/scatterplot-umap/components/LowerSVG.d.ts.map +1 -1
- package/dist/scatterplot-umap/components/LowerSVG.js +97 -94
- package/dist/scatterplot-umap/components/LowerSVG.js.map +1 -1
- package/dist/scatterplot-umap/components/UpperSVG.d.ts.map +1 -1
- package/dist/scatterplot-umap/components/UpperSVG.js +20 -19
- package/dist/scatterplot-umap/components/UpperSVG.js.map +1 -1
- package/dist/scatterplot-umap/index.d.ts +0 -2
- package/dist/scatterplot-umap/index.d.ts.map +1 -1
- package/dist/scatterplot-umap/index.js +77 -102
- package/dist/scatterplot-umap/index.js.map +1 -1
- package/dist/scatterplot-umap/types.d.ts +7 -10
- package/dist/scatterplot-umap/types.d.ts.map +1 -1
- package/dist/types/bubble.d.ts +44 -12
- package/dist/types/bubble.d.ts.map +1 -1
- package/dist/types/common.d.ts +22 -3
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/common.js +3 -1
- package/dist/types/common.js.map +1 -1
- package/dist/types/dendro.d.ts +113 -10
- package/dist/types/dendro.d.ts.map +1 -1
- package/dist/types/dendro.js +1 -1
- package/dist/types/dendro.js.map +1 -1
- package/dist/types/discrete.d.ts +99 -22
- package/dist/types/discrete.d.ts.map +1 -1
- package/dist/types/discrete.js +3 -3
- package/dist/types/discrete.js.map +1 -1
- package/dist/types/heatmap.d.ts +187 -28
- package/dist/types/heatmap.d.ts.map +1 -1
- package/dist/types/heatmap.js +1 -1
- package/dist/types/heatmap.js.map +1 -1
- package/dist/types/histogram.d.ts +30 -8
- package/dist/types/histogram.d.ts.map +1 -1
- package/dist/types/histogram.js +1 -1
- package/dist/types/histogram.js.map +1 -1
- package/dist/types/scatterplot-umap.d.ts +149 -15
- package/dist/types/scatterplot-umap.d.ts.map +1 -1
- package/dist/types/scatterplot-umap.js +9 -9
- package/dist/types/scatterplot-umap.js.map +1 -1
- package/dist/types/scatterplot.d.ts +164 -12
- package/dist/types/scatterplot.d.ts.map +1 -1
- package/dist/types/scatterplot.js +1 -1
- package/dist/types/scatterplot.js.map +1 -1
- package/dist/utils/TextMeasurer/TextMeasurer.d.ts +7 -0
- package/dist/utils/TextMeasurer/TextMeasurer.d.ts.map +1 -0
- package/dist/utils/TextMeasurer/TextMeasurer.js +42 -0
- package/dist/utils/TextMeasurer/TextMeasurer.js.map +1 -0
- package/dist/utils/TextMeasurer/charToWidth.json.js +155 -0
- package/dist/utils/TextMeasurer/charToWidth.json.js.map +1 -0
- package/dist/utils/arrangeLegendParts.js +1 -1
- package/dist/utils/arrangeLegendParts.js.map +1 -1
- package/dist/utils/getChartEdgeSides.d.ts +1 -1
- package/dist/utils/getLegendWidth.d.ts.map +1 -1
- package/dist/utils/getLegendWidth.js +1 -1
- package/dist/utils/getLegendWidth.js.map +1 -1
- package/package.json +5 -3
- package/dist/bubble/getCells.d.ts.map +0 -1
- package/dist/bubble/getCells.js +0 -91
- package/dist/bubble/getCells.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/add.js +0 -30
- package/dist/node_modules/d3-quadtree/src/add.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/cover.js +0 -29
- package/dist/node_modules/d3-quadtree/src/cover.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/data.js +0 -12
- package/dist/node_modules/d3-quadtree/src/data.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/extent.js +0 -7
- package/dist/node_modules/d3-quadtree/src/extent.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/find.js +0 -26
- package/dist/node_modules/d3-quadtree/src/find.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/quad.js +0 -7
- package/dist/node_modules/d3-quadtree/src/quad.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/quadtree.js +0 -51
- package/dist/node_modules/d3-quadtree/src/quadtree.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/remove.js +0 -21
- package/dist/node_modules/d3-quadtree/src/remove.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/root.js +0 -7
- package/dist/node_modules/d3-quadtree/src/root.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/size.js +0 -12
- package/dist/node_modules/d3-quadtree/src/size.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/visit.js +0 -14
- package/dist/node_modules/d3-quadtree/src/visit.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/visitAfter.js +0 -19
- package/dist/node_modules/d3-quadtree/src/visitAfter.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/x.js +0 -11
- package/dist/node_modules/d3-quadtree/src/x.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/y.js +0 -11
- package/dist/node_modules/d3-quadtree/src/y.js.map +0 -1
- package/dist/utils/TextMeasurer.d.ts +0 -8
- package/dist/utils/TextMeasurer.d.ts.map +0 -1
- package/dist/utils/TextMeasurer.js +0 -27
- 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: (
|
|
11
|
-
nodeColor: (
|
|
12
|
-
nodeSize: (
|
|
13
|
-
lineShape: (
|
|
14
|
-
lineColor: (
|
|
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":"
|
|
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
|
|
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(
|
|
6
|
-
const { source: t, target:
|
|
7
|
-
return
|
|
8
|
-
|
|
9
|
-
).x((r) =>
|
|
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:
|
|
14
|
-
rootPosition:
|
|
12
|
+
links: s,
|
|
13
|
+
connectionType: $,
|
|
14
|
+
rootPosition: x,
|
|
15
15
|
edgeInheritance: t,
|
|
16
|
-
aesGetters:
|
|
17
|
-
selected:
|
|
16
|
+
aesGetters: e,
|
|
17
|
+
selected: o
|
|
18
18
|
}) {
|
|
19
|
-
return /* @__PURE__ */
|
|
20
|
-
const { source:
|
|
21
|
-
return /* @__PURE__ */
|
|
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,
|
|
25
|
-
stroke:
|
|
26
|
-
strokeWidth:
|
|
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 {
|
|
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: (
|
|
12
|
-
nodeColor: (
|
|
13
|
-
nodeSize: (
|
|
14
|
-
lineShape: (
|
|
15
|
-
lineColor: (
|
|
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":"
|
|
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 {
|
|
3
|
-
import { getPointShape as
|
|
4
|
-
import {
|
|
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
|
|
6
|
+
function w({
|
|
7
7
|
nodes: u,
|
|
8
8
|
rootPosition: j,
|
|
9
|
-
showLeavesLabels:
|
|
10
|
-
showNodesLabels:
|
|
11
|
-
aesGetters:
|
|
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
|
|
17
|
-
return
|
|
18
|
-
|
|
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
|
|
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(${
|
|
25
|
+
transform: `translate(${o},${x})`,
|
|
26
26
|
style: { cursor: "pointer" },
|
|
27
|
-
onClick: (
|
|
28
|
-
|
|
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 ?
|
|
37
|
-
opacity:
|
|
38
|
-
onMouseOver: () =>
|
|
39
|
-
onMouseLeave: () =>
|
|
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
|
|
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},${
|
|
51
|
+
transform: `translate(${x},${e})`,
|
|
52
52
|
style: { cursor: "pointer" },
|
|
53
|
-
onClick: (
|
|
54
|
-
|
|
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: () =>
|
|
60
|
-
onMouseLeave: () =>
|
|
61
|
-
children:
|
|
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
|
|
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},${
|
|
73
|
+
transform: `translate(${l},${o})`,
|
|
74
74
|
style: { pointerEvents: "none" },
|
|
75
|
-
children: (
|
|
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
|
-
|
|
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 {
|
|
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,
|
|
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,
|
|
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
|
|
2
|
-
return
|
|
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
|
|
5
|
-
if (!
|
|
4
|
+
function w(u, x, c, g, K, t, v) {
|
|
5
|
+
if (!c || !g)
|
|
6
6
|
return null;
|
|
7
|
-
const
|
|
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:
|
|
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
|
-
},
|
|
19
|
-
|
|
20
|
-
const
|
|
21
|
-
let
|
|
22
|
-
if (
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const
|
|
26
|
-
if (
|
|
27
|
-
throw Error(`More than 1 value for x=${
|
|
28
|
-
const G = String(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
e.meta.xLabels[
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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
|
-
}
|
|
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
|
|
41
|
-
if (!
|
|
43
|
+
function d(u, x, c, g) {
|
|
44
|
+
if (!x)
|
|
42
45
|
return null;
|
|
43
|
-
const
|
|
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:
|
|
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
|
-
},
|
|
55
|
-
let
|
|
56
|
-
|
|
57
|
-
const
|
|
58
|
-
let
|
|
59
|
-
if (!(
|
|
60
|
-
|
|
61
|
-
for (let
|
|
62
|
-
|
|
63
|
-
const
|
|
64
|
-
e.null.add(
|
|
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
|
-
}
|
|
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
|
-
|
|
71
|
-
|
|
74
|
+
b as getHeatmapData,
|
|
75
|
+
w as getHeatmapDataWithAxisColumn
|
|
72
76
|
};
|
|
73
77
|
//# sourceMappingURL=getHeatmapData.js.map
|