@milaboratories/miplots4 1.0.173 → 1.0.175
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/AbstractChart.d.ts +1 -0
- package/dist/AbstractChart.d.ts.map +1 -0
- package/dist/DataFrame.d.ts +2 -1
- package/dist/DataFrame.d.ts.map +1 -0
- package/dist/DataFrame.js +52 -51
- package/dist/DataFrame.js.map +1 -1
- package/dist/MiPlots.d.ts +1 -0
- package/dist/MiPlots.d.ts.map +1 -0
- package/dist/bubble/BubbleSettingsImpl.d.ts +4 -0
- package/dist/bubble/BubbleSettingsImpl.d.ts.map +1 -0
- package/dist/bubble/BubbleSettingsImpl.js +16 -16
- package/dist/bubble/BubbleSettingsImpl.js.map +1 -1
- package/dist/bubble/ChartRenderer.d.ts +1 -0
- package/dist/bubble/ChartRenderer.d.ts.map +1 -0
- package/dist/bubble/components/AxisCaptions.d.ts +1 -0
- package/dist/bubble/components/AxisCaptions.d.ts.map +1 -0
- package/dist/bubble/components/Chart.d.ts +1 -0
- package/dist/bubble/components/Chart.d.ts.map +1 -0
- package/dist/bubble/components/ChartsGroup.d.ts +1 -0
- package/dist/bubble/components/ChartsGroup.d.ts.map +1 -0
- package/dist/bubble/components/types.d.ts +1 -0
- package/dist/bubble/components/types.d.ts.map +1 -0
- package/dist/bubble/constants.d.ts +1 -0
- package/dist/bubble/constants.d.ts.map +1 -0
- package/dist/bubble/getCellTooltip.d.ts +1 -0
- package/dist/bubble/getCellTooltip.d.ts.map +1 -0
- package/dist/bubble/getGroupedCellsData.d.ts +2 -1
- package/dist/bubble/getGroupedCellsData.d.ts.map +1 -0
- package/dist/bubble/getGroupedCellsData.js +12 -11
- package/dist/bubble/getGroupedCellsData.js.map +1 -1
- package/dist/bubble/index.d.ts +1 -0
- package/dist/bubble/index.d.ts.map +1 -0
- package/dist/bubble/index.js +61 -69
- package/dist/bubble/index.js.map +1 -1
- package/dist/bubble/utils/calculateCaptionTails.d.ts +1 -0
- package/dist/bubble/utils/calculateCaptionTails.d.ts.map +1 -0
- package/dist/bubble/utils/calculateChartSideElementSizes.d.ts +1 -0
- package/dist/bubble/utils/calculateChartSideElementSizes.d.ts.map +1 -0
- package/dist/bubble/utils/calculateSideElementsBBoxes.d.ts +1 -0
- package/dist/bubble/utils/calculateSideElementsBBoxes.d.ts.map +1 -0
- package/dist/bubble/utils/index.d.ts +1 -0
- package/dist/bubble/utils/index.d.ts.map +1 -0
- package/dist/common/BandAxis.d.ts +1 -0
- package/dist/common/BandAxis.d.ts.map +1 -0
- package/dist/common/ChartsTitle.d.ts +1 -0
- package/dist/common/ChartsTitle.d.ts.map +1 -0
- package/dist/common/ContinuousAxis.d.ts +1 -0
- package/dist/common/ContinuousAxis.d.ts.map +1 -0
- package/dist/common/ContinuousGrid.d.ts +1 -0
- package/dist/common/ContinuousGrid.d.ts.map +1 -0
- package/dist/common/Error.d.ts +1 -0
- package/dist/common/Error.d.ts.map +1 -0
- package/dist/common/ErrorBoundary.d.ts +1 -0
- package/dist/common/ErrorBoundary.d.ts.map +1 -0
- package/dist/common/Legend.d.ts +1 -0
- package/dist/common/Legend.d.ts.map +1 -0
- package/dist/common/Tooltip.d.ts +1 -0
- package/dist/common/Tooltip.d.ts.map +1 -0
- package/dist/common/fonts.d.ts +1 -0
- package/dist/common/fonts.d.ts.map +1 -0
- package/dist/common/types.d.ts +1 -0
- package/dist/common/types.d.ts.map +1 -0
- package/dist/common/useDataFrame.d.ts +1 -0
- package/dist/common/useDataFrame.d.ts.map +1 -0
- package/dist/constants.d.ts +1 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +9 -11
- package/dist/constants.js.map +1 -1
- package/dist/dendro/ChartRenderer.d.ts +1 -0
- package/dist/dendro/ChartRenderer.d.ts.map +1 -0
- package/dist/dendro/DendroSettingsImpl.d.ts +1 -0
- package/dist/dendro/DendroSettingsImpl.d.ts.map +1 -0
- package/dist/dendro/components/Chart.d.ts +1 -0
- package/dist/dendro/components/Chart.d.ts.map +1 -0
- package/dist/dendro/components/Heatmap.d.ts +1 -0
- package/dist/dendro/components/Heatmap.d.ts.map +1 -0
- package/dist/dendro/components/Legend.d.ts +1 -0
- package/dist/dendro/components/Legend.d.ts.map +1 -0
- package/dist/dendro/components/LinksGroup.d.ts +1 -0
- package/dist/dendro/components/LinksGroup.d.ts.map +1 -0
- package/dist/dendro/components/NodesGroup.d.ts +1 -0
- package/dist/dendro/components/NodesGroup.d.ts.map +1 -0
- package/dist/dendro/components/types.d.ts +1 -0
- package/dist/dendro/components/types.d.ts.map +1 -0
- package/dist/dendro/constants.d.ts +1 -0
- package/dist/dendro/constants.d.ts.map +1 -0
- package/dist/dendro/getHeatmapData.d.ts +1 -0
- package/dist/dendro/getHeatmapData.d.ts.map +1 -0
- package/dist/dendro/getHierarchyData.d.ts +1 -0
- package/dist/dendro/getHierarchyData.d.ts.map +1 -0
- package/dist/dendro/index.d.ts +1 -0
- package/dist/dendro/index.d.ts.map +1 -0
- package/dist/discrete/ChartRenderer.d.ts +1 -0
- package/dist/discrete/ChartRenderer.d.ts.map +1 -0
- package/dist/discrete/DiscreteSettingsImpl.d.ts +3 -1
- package/dist/discrete/DiscreteSettingsImpl.d.ts.map +1 -0
- package/dist/discrete/DiscreteSettingsImpl.js.map +1 -1
- package/dist/discrete/components/Chart.d.ts +1 -0
- package/dist/discrete/components/Chart.d.ts.map +1 -0
- package/dist/discrete/components/ChartsGroup.d.ts +1 -0
- package/dist/discrete/components/ChartsGroup.d.ts.map +1 -0
- package/dist/discrete/components/Grid.d.ts +1 -0
- package/dist/discrete/components/Grid.d.ts.map +1 -0
- package/dist/discrete/components/NumberAxis.d.ts +1 -0
- package/dist/discrete/components/NumberAxis.d.ts.map +1 -0
- package/dist/discrete/components/layers/BarElement.d.ts +1 -0
- package/dist/discrete/components/layers/BarElement.d.ts.map +1 -0
- package/dist/discrete/components/layers/BinnedDotsElement.d.ts +1 -0
- package/dist/discrete/components/layers/BinnedDotsElement.d.ts.map +1 -0
- package/dist/discrete/components/layers/BoxElement.d.ts +1 -0
- package/dist/discrete/components/layers/BoxElement.d.ts.map +1 -0
- package/dist/discrete/components/layers/DotsGroupElement.d.ts +1 -0
- package/dist/discrete/components/layers/DotsGroupElement.d.ts.map +1 -0
- package/dist/discrete/components/layers/ErrorBarElement.d.ts +1 -0
- package/dist/discrete/components/layers/ErrorBarElement.d.ts.map +1 -0
- package/dist/discrete/components/layers/LineElement.d.ts +1 -0
- package/dist/discrete/components/layers/LineElement.d.ts.map +1 -0
- package/dist/discrete/components/layers/LogoElement.d.ts +1 -0
- package/dist/discrete/components/layers/LogoElement.d.ts.map +1 -0
- package/dist/discrete/components/layers/PairedPointsElement.d.ts +1 -0
- package/dist/discrete/components/layers/PairedPointsElement.d.ts.map +1 -0
- package/dist/discrete/components/layers/SinaElement.d.ts +1 -0
- package/dist/discrete/components/layers/SinaElement.d.ts.map +1 -0
- package/dist/discrete/components/layers/StackedAreaElement.d.ts +1 -0
- package/dist/discrete/components/layers/StackedAreaElement.d.ts.map +1 -0
- package/dist/discrete/components/layers/StackedBarElement.d.ts +1 -0
- package/dist/discrete/components/layers/StackedBarElement.d.ts.map +1 -0
- package/dist/discrete/components/layers/StatsPValue.d.ts +1 -0
- package/dist/discrete/components/layers/StatsPValue.d.ts.map +1 -0
- package/dist/discrete/components/layers/ViolinElement.d.ts +1 -0
- package/dist/discrete/components/layers/ViolinElement.d.ts.map +1 -0
- package/dist/discrete/components/layers/seqAlphabet.d.ts +1 -0
- package/dist/discrete/components/layers/seqAlphabet.d.ts.map +1 -0
- package/dist/discrete/components/types.d.ts +1 -0
- package/dist/discrete/components/types.d.ts.map +1 -0
- package/dist/discrete/constants.d.ts +1 -0
- package/dist/discrete/constants.d.ts.map +1 -0
- package/dist/discrete/index.d.ts +1 -0
- package/dist/discrete/index.d.ts.map +1 -0
- package/dist/discrete/index.js +151 -165
- package/dist/discrete/index.js.map +1 -1
- package/dist/discrete/layers/bar.d.ts +1 -0
- package/dist/discrete/layers/bar.d.ts.map +1 -0
- package/dist/discrete/layers/binnedDots.d.ts +1 -0
- package/dist/discrete/layers/binnedDots.d.ts.map +1 -0
- package/dist/discrete/layers/boxes.d.ts +1 -0
- package/dist/discrete/layers/boxes.d.ts.map +1 -0
- package/dist/discrete/layers/dots.d.ts +1 -0
- package/dist/discrete/layers/dots.d.ts.map +1 -0
- package/dist/discrete/layers/errorbars.d.ts +1 -0
- package/dist/discrete/layers/errorbars.d.ts.map +1 -0
- package/dist/discrete/layers/index.d.ts +1 -0
- package/dist/discrete/layers/index.d.ts.map +1 -0
- package/dist/discrete/layers/lines.d.ts +1 -0
- package/dist/discrete/layers/lines.d.ts.map +1 -0
- package/dist/discrete/layers/logo.d.ts +1 -0
- package/dist/discrete/layers/logo.d.ts.map +1 -0
- package/dist/discrete/layers/pairedPoints.d.ts +1 -0
- package/dist/discrete/layers/pairedPoints.d.ts.map +1 -0
- package/dist/discrete/layers/sina.d.ts +1 -0
- package/dist/discrete/layers/sina.d.ts.map +1 -0
- package/dist/discrete/layers/stackedArea.d.ts +1 -0
- package/dist/discrete/layers/stackedArea.d.ts.map +1 -0
- package/dist/discrete/layers/stackedBar.d.ts +1 -0
- package/dist/discrete/layers/stackedBar.d.ts.map +1 -0
- package/dist/discrete/layers/stats/MannWhitneyU.d.ts +1 -0
- package/dist/discrete/layers/stats/MannWhitneyU.d.ts.map +1 -0
- package/dist/discrete/layers/stats/index.d.ts +1 -0
- package/dist/discrete/layers/stats/index.d.ts.map +1 -0
- package/dist/discrete/layers/stats/pValueCalculation.d.ts +1 -0
- package/dist/discrete/layers/stats/pValueCalculation.d.ts.map +1 -0
- package/dist/discrete/layers/stats/pValueCorrection.d.ts +1 -0
- package/dist/discrete/layers/stats/pValueCorrection.d.ts.map +1 -0
- package/dist/discrete/layers/types.d.ts +1 -0
- package/dist/discrete/layers/types.d.ts.map +1 -0
- package/dist/discrete/layers/violins.d.ts +1 -0
- package/dist/discrete/layers/violins.d.ts.map +1 -0
- package/dist/discrete/utils/getChartStatsPadding.d.ts +1 -0
- package/dist/discrete/utils/getChartStatsPadding.d.ts.map +1 -0
- package/dist/discrete/utils/getFacetLabels.d.ts +1 -0
- package/dist/discrete/utils/getFacetLabels.d.ts.map +1 -0
- package/dist/discrete/utils/getFacetStringKey.d.ts +1 -0
- package/dist/discrete/utils/getFacetStringKey.d.ts.map +1 -0
- package/dist/discrete/utils/getOutliersBounds.d.ts +1 -0
- package/dist/discrete/utils/getOutliersBounds.d.ts.map +1 -0
- package/dist/discrete/utils/index.d.ts +1 -0
- package/dist/discrete/utils/index.d.ts.map +1 -0
- package/dist/discrete/utils/statsPValue.d.ts +1 -0
- package/dist/discrete/utils/statsPValue.d.ts.map +1 -0
- package/dist/heatmap/ChartRenderer.d.ts +1 -0
- package/dist/heatmap/ChartRenderer.d.ts.map +1 -0
- package/dist/heatmap/HeatmapSettingsImpl.d.ts +2 -0
- package/dist/heatmap/HeatmapSettingsImpl.d.ts.map +1 -0
- package/dist/heatmap/HeatmapSettingsImpl.js +29 -28
- package/dist/heatmap/HeatmapSettingsImpl.js.map +1 -1
- package/dist/heatmap/components/Annotations/Annotation.d.ts +1 -0
- package/dist/heatmap/components/Annotations/Annotation.d.ts.map +1 -0
- package/dist/heatmap/components/Annotations/AnnotationCellsCanvas.d.ts +1 -0
- package/dist/heatmap/components/Annotations/AnnotationCellsCanvas.d.ts.map +1 -0
- package/dist/heatmap/components/Annotations/AnnotationCellsSvg.d.ts +1 -0
- package/dist/heatmap/components/Annotations/AnnotationCellsSvg.d.ts.map +1 -0
- package/dist/heatmap/components/Annotations/index.d.ts +1 -0
- package/dist/heatmap/components/Annotations/index.d.ts.map +1 -0
- package/dist/heatmap/components/CanvasCells.d.ts +1 -0
- package/dist/heatmap/components/CanvasCells.d.ts.map +1 -0
- package/dist/heatmap/components/Captions/AxisCaptions.d.ts +1 -0
- package/dist/heatmap/components/Captions/AxisCaptions.d.ts.map +1 -0
- package/dist/heatmap/components/Captions/GroupCaptions.d.ts +1 -0
- package/dist/heatmap/components/Captions/GroupCaptions.d.ts.map +1 -0
- package/dist/heatmap/components/Captions/index.d.ts +1 -0
- package/dist/heatmap/components/Captions/index.d.ts.map +1 -0
- package/dist/heatmap/components/Chart.d.ts +1 -0
- package/dist/heatmap/components/Chart.d.ts.map +1 -0
- package/dist/heatmap/components/ChartsGroup.d.ts +1 -0
- package/dist/heatmap/components/ChartsGroup.d.ts.map +1 -0
- package/dist/heatmap/components/Dendrograms.d.ts +1 -0
- package/dist/heatmap/components/Dendrograms.d.ts.map +1 -0
- package/dist/heatmap/components/Frames.d.ts +1 -0
- package/dist/heatmap/components/Frames.d.ts.map +1 -0
- package/dist/heatmap/components/SvgCells.d.ts +1 -0
- package/dist/heatmap/components/SvgCells.d.ts.map +1 -0
- package/dist/heatmap/components/tooltipUtils.d.ts +1 -0
- package/dist/heatmap/components/tooltipUtils.d.ts.map +1 -0
- package/dist/heatmap/components/types.d.ts +1 -0
- package/dist/heatmap/components/types.d.ts.map +1 -0
- package/dist/heatmap/constants.d.ts +1 -0
- package/dist/heatmap/constants.d.ts.map +1 -0
- package/dist/heatmap/fillCellsData.d.ts +2 -1
- package/dist/heatmap/fillCellsData.d.ts.map +1 -0
- package/dist/heatmap/fillCellsData.js +185 -173
- package/dist/heatmap/fillCellsData.js.map +1 -1
- package/dist/heatmap/getCells.d.ts +2 -1
- package/dist/heatmap/getCells.d.ts.map +1 -0
- package/dist/heatmap/getCells.js +10 -9
- package/dist/heatmap/getCells.js.map +1 -1
- package/dist/heatmap/getClusters.d.ts +1 -0
- package/dist/heatmap/getClusters.d.ts.map +1 -0
- package/dist/heatmap/getDendrograms.d.ts +1 -0
- package/dist/heatmap/getDendrograms.d.ts.map +1 -0
- package/dist/heatmap/index.d.ts +1 -0
- package/dist/heatmap/index.d.ts.map +1 -0
- package/dist/heatmap/index.js +95 -102
- package/dist/heatmap/index.js.map +1 -1
- package/dist/heatmap/utils/calculateAnnotationTitleSizes.d.ts +1 -0
- package/dist/heatmap/utils/calculateAnnotationTitleSizes.d.ts.map +1 -0
- package/dist/heatmap/utils/calculateCaptionTails.d.ts +1 -0
- package/dist/heatmap/utils/calculateCaptionTails.d.ts.map +1 -0
- package/dist/heatmap/utils/calculateChartSideElementSizes.d.ts +1 -0
- package/dist/heatmap/utils/calculateChartSideElementSizes.d.ts.map +1 -0
- package/dist/heatmap/utils/calculateSideElementsBBoxes.d.ts +1 -0
- package/dist/heatmap/utils/calculateSideElementsBBoxes.d.ts.map +1 -0
- package/dist/heatmap/utils/createColorScales.d.ts +1 -0
- package/dist/heatmap/utils/createColorScales.d.ts.map +1 -0
- package/dist/heatmap/utils/index.d.ts +1 -0
- package/dist/heatmap/utils/index.d.ts.map +1 -0
- package/dist/histogram/ChartRenderer.d.ts +1 -0
- package/dist/histogram/ChartRenderer.d.ts.map +1 -0
- package/dist/histogram/HistogramSettingsImpl.d.ts +2 -0
- package/dist/histogram/HistogramSettingsImpl.d.ts.map +1 -0
- package/dist/histogram/HistogramSettingsImpl.js +43 -43
- package/dist/histogram/HistogramSettingsImpl.js.map +1 -1
- package/dist/histogram/components/Chart.d.ts +1 -0
- package/dist/histogram/components/Chart.d.ts.map +1 -0
- package/dist/histogram/components/Chart.js +53 -53
- package/dist/histogram/components/Chart.js.map +1 -1
- package/dist/histogram/components/ChartsGroup.d.ts +1 -0
- package/dist/histogram/components/ChartsGroup.d.ts.map +1 -0
- package/dist/histogram/components/types.d.ts +1 -0
- package/dist/histogram/components/types.d.ts.map +1 -0
- package/dist/histogram/constants.d.ts +1 -0
- package/dist/histogram/constants.d.ts.map +1 -0
- package/dist/histogram/getHistogramData.d.ts +3 -2
- package/dist/histogram/getHistogramData.d.ts.map +1 -0
- package/dist/histogram/getHistogramData.js +51 -50
- package/dist/histogram/getHistogramData.js.map +1 -1
- package/dist/histogram/index.d.ts +1 -1
- package/dist/histogram/index.d.ts.map +1 -0
- package/dist/histogram/index.js +89 -90
- package/dist/histogram/index.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -4
- package/dist/index.js.map +1 -1
- package/dist/scatterplot/ChartRenderer.d.ts +1 -0
- package/dist/scatterplot/ChartRenderer.d.ts.map +1 -0
- package/dist/scatterplot/ScatterplotSettingsImpl.d.ts +3 -0
- package/dist/scatterplot/ScatterplotSettingsImpl.d.ts.map +1 -0
- package/dist/scatterplot/ScatterplotSettingsImpl.js.map +1 -1
- package/dist/scatterplot/components/Chart.d.ts +1 -0
- package/dist/scatterplot/components/Chart.d.ts.map +1 -0
- package/dist/scatterplot/components/ChartAxis.d.ts +1 -0
- package/dist/scatterplot/components/ChartAxis.d.ts.map +1 -0
- package/dist/scatterplot/components/ChartAxisTitles.d.ts +1 -0
- package/dist/scatterplot/components/ChartAxisTitles.d.ts.map +1 -0
- package/dist/scatterplot/components/ChartFacetTitle.d.ts +1 -0
- package/dist/scatterplot/components/ChartFacetTitle.d.ts.map +1 -0
- package/dist/scatterplot/components/ChartLayersData.d.ts +1 -0
- package/dist/scatterplot/components/ChartLayersData.d.ts.map +1 -0
- package/dist/scatterplot/components/ChartTooltip.d.ts +1 -0
- package/dist/scatterplot/components/ChartTooltip.d.ts.map +1 -0
- package/dist/scatterplot/components/ChartTrendsData.d.ts +1 -0
- package/dist/scatterplot/components/ChartTrendsData.d.ts.map +1 -0
- package/dist/scatterplot/components/ChartsGroup.d.ts +1 -0
- package/dist/scatterplot/components/ChartsGroup.d.ts.map +1 -0
- package/dist/scatterplot/components/Grid.d.ts +1 -0
- package/dist/scatterplot/components/Grid.d.ts.map +1 -0
- package/dist/scatterplot/components/types.d.ts +1 -0
- package/dist/scatterplot/components/types.d.ts.map +1 -0
- package/dist/scatterplot/constants.d.ts +1 -0
- package/dist/scatterplot/constants.d.ts.map +1 -0
- package/dist/scatterplot/dots.d.ts +3 -2
- package/dist/scatterplot/dots.d.ts.map +1 -0
- package/dist/scatterplot/dots.js +17 -16
- package/dist/scatterplot/dots.js.map +1 -1
- package/dist/scatterplot/getLayersData.d.ts +1 -0
- package/dist/scatterplot/getLayersData.d.ts.map +1 -0
- package/dist/scatterplot/index.d.ts +1 -1
- package/dist/scatterplot/index.d.ts.map +1 -0
- package/dist/scatterplot/index.js +100 -106
- package/dist/scatterplot/index.js.map +1 -1
- package/dist/scatterplot/linearRegression.d.ts +1 -0
- package/dist/scatterplot/linearRegression.d.ts.map +1 -0
- package/dist/scatterplot/utils/createAesGetter.d.ts +1 -0
- package/dist/scatterplot/utils/createAesGetter.d.ts.map +1 -0
- package/dist/scatterplot/utils/createLegendInfo.d.ts +1 -0
- package/dist/scatterplot/utils/createLegendInfo.d.ts.map +1 -0
- package/dist/scatterplot/utils/createLegendInfo.js +41 -41
- package/dist/scatterplot/utils/createLegendInfo.js.map +1 -1
- package/dist/scatterplot/utils/formatColumnValue.d.ts +1 -0
- package/dist/scatterplot/utils/formatColumnValue.d.ts.map +1 -0
- package/dist/scatterplot/utils/formatColumnValue.js +7 -6
- package/dist/scatterplot/utils/formatColumnValue.js.map +1 -1
- package/dist/scatterplot/utils/getTicksAndFormat.d.ts +1 -0
- package/dist/scatterplot/utils/getTicksAndFormat.d.ts.map +1 -0
- package/dist/scatterplot/utils/getVisibleLabels.d.ts +1 -0
- package/dist/scatterplot/utils/getVisibleLabels.d.ts.map +1 -0
- package/dist/scatterplot/utils/isNumericScale.d.ts +1 -0
- package/dist/scatterplot/utils/isNumericScale.d.ts.map +1 -0
- package/dist/scatterplot/utils/sortDotsByGrouping.d.ts +1 -0
- package/dist/scatterplot/utils/sortDotsByGrouping.d.ts.map +1 -0
- package/dist/scatterplot-umap/ChartRenderer.d.ts +1 -0
- package/dist/scatterplot-umap/ChartRenderer.d.ts.map +1 -0
- package/dist/scatterplot-umap/SettingsImpl.d.ts +1 -0
- package/dist/scatterplot-umap/SettingsImpl.d.ts.map +1 -0
- package/dist/scatterplot-umap/colors.d.ts +1 -0
- package/dist/scatterplot-umap/colors.d.ts.map +1 -0
- package/dist/scatterplot-umap/components/Lasso.d.ts +1 -0
- package/dist/scatterplot-umap/components/Lasso.d.ts.map +1 -0
- package/dist/scatterplot-umap/components/LowerSVG.d.ts +1 -0
- package/dist/scatterplot-umap/components/LowerSVG.d.ts.map +1 -0
- package/dist/scatterplot-umap/components/LowerSVG.js.map +1 -1
- package/dist/scatterplot-umap/components/SVGLayer.d.ts +1 -0
- package/dist/scatterplot-umap/components/SVGLayer.d.ts.map +1 -0
- package/dist/scatterplot-umap/components/UpperSVG.d.ts +1 -0
- package/dist/scatterplot-umap/components/UpperSVG.d.ts.map +1 -0
- package/dist/scatterplot-umap/constants.d.ts +1 -0
- package/dist/scatterplot-umap/constants.d.ts.map +1 -0
- package/dist/scatterplot-umap/index.d.ts +1 -0
- package/dist/scatterplot-umap/index.d.ts.map +1 -0
- package/dist/scatterplot-umap/index.js +77 -74
- package/dist/scatterplot-umap/index.js.map +1 -1
- package/dist/scatterplot-umap/types.d.ts +1 -0
- package/dist/scatterplot-umap/types.d.ts.map +1 -0
- package/dist/types/bubble.d.ts +48 -0
- package/dist/types/bubble.d.ts.map +1 -0
- package/dist/types/bubble.js +19 -18
- package/dist/types/bubble.js.map +1 -1
- package/dist/types/common.d.ts +39 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +31 -30
- package/dist/types/common.js.map +1 -1
- package/dist/types/dendro.d.ts +109 -0
- package/dist/types/dendro.d.ts.map +1 -0
- package/dist/types/dendro.js +10 -9
- package/dist/types/dendro.js.map +1 -1
- package/dist/types/discrete.d.ts +176 -5
- package/dist/types/discrete.d.ts.map +1 -0
- package/dist/types/discrete.js +12 -11
- package/dist/types/discrete.js.map +1 -1
- package/dist/types/heatmap.d.ts +165 -0
- package/dist/types/heatmap.d.ts.map +1 -0
- package/dist/types/heatmap.js +2 -1
- package/dist/types/heatmap.js.map +1 -1
- package/dist/types/histogram.d.ts +28 -0
- package/dist/types/histogram.d.ts.map +1 -0
- package/dist/types/histogram.js +43 -42
- package/dist/types/histogram.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/scatterplot-umap.d.ts +141 -0
- package/dist/types/scatterplot-umap.d.ts.map +1 -0
- package/dist/types/scatterplot.d.ts +189 -0
- package/dist/types/scatterplot.d.ts.map +1 -0
- package/dist/types/scatterplot.js +21 -19
- package/dist/types/scatterplot.js.map +1 -1
- package/dist/utils/TextMeasurer/TextMeasurer.d.ts +1 -0
- package/dist/utils/TextMeasurer/TextMeasurer.d.ts.map +1 -0
- package/dist/utils/WorkerFactory.d.ts +1 -0
- package/dist/utils/WorkerFactory.d.ts.map +1 -0
- package/dist/utils/arrangeLegendParts.d.ts +1 -0
- package/dist/utils/arrangeLegendParts.d.ts.map +1 -0
- package/dist/utils/arraysAreDifferent.d.ts +1 -0
- package/dist/utils/arraysAreDifferent.d.ts.map +1 -0
- package/dist/utils/createMultilineDiscreteLabels.d.ts +1 -0
- package/dist/utils/createMultilineDiscreteLabels.d.ts.map +1 -0
- package/dist/utils/getChartEdgeSides.d.ts +1 -0
- package/dist/utils/getChartEdgeSides.d.ts.map +1 -0
- package/dist/utils/getContinuousColorScale.d.ts +1 -0
- package/dist/utils/getContinuousColorScale.d.ts.map +1 -0
- package/dist/utils/getContinuousLegendTicks.d.ts +1 -0
- package/dist/utils/getContinuousLegendTicks.d.ts.map +1 -0
- package/dist/utils/getFacetKeysFromValueLists.d.ts +6 -0
- package/dist/utils/getFacetKeysFromValueLists.d.ts.map +1 -0
- package/dist/utils/getFacetKeysFromValueLists.js +9 -0
- package/dist/utils/getFacetKeysFromValueLists.js.map +1 -0
- package/dist/utils/getFacetOrGroupKey.d.ts +1 -0
- package/dist/utils/getFacetOrGroupKey.d.ts.map +1 -0
- package/dist/utils/getFacetRowsColumns.d.ts +1 -0
- package/dist/utils/getFacetRowsColumns.d.ts.map +1 -0
- package/dist/utils/getKeysCombination.d.ts +1 -0
- package/dist/utils/getKeysCombination.d.ts.map +1 -0
- package/dist/utils/getLegendWidth.d.ts +1 -0
- package/dist/utils/getLegendWidth.d.ts.map +1 -0
- package/dist/utils/getLineShape.d.ts +1 -0
- package/dist/utils/getLineShape.d.ts.map +1 -0
- package/dist/utils/getPointShape.d.ts +2 -1
- package/dist/utils/getPointShape.d.ts.map +1 -0
- package/dist/utils/getSizeLegendItem.d.ts +1 -0
- package/dist/utils/getSizeLegendItem.d.ts.map +1 -0
- package/dist/utils/hooks/useFunction.d.ts +1 -0
- package/dist/utils/hooks/useFunction.d.ts.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/measureMultilineDiscreteLabels.d.ts +1 -0
- package/dist/utils/measureMultilineDiscreteLabels.d.ts.map +1 -0
- package/dist/utils/numberFormat.d.ts +1 -0
- package/dist/utils/numberFormat.d.ts.map +1 -0
- package/dist/utils/splitTextByWidth.d.ts +1 -0
- package/dist/utils/splitTextByWidth.d.ts.map +1 -0
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fillCellsData.js","sources":["../../src/heatmap/fillCellsData.ts"],"sourcesContent":["import { deviation, extent, mean, quantileSorted, sum } from 'd3-array';\nimport lodash from 'lodash';\nimport type { DataFrame } from '../DataFrame';\nimport type { AggregationMethod, ColumnName, DataValue, NormalizationMethod } from '../types';\nimport type { HeatmapSettingsImpl } from './HeatmapSettingsImpl';\nimport { exhaustive } from '../utils';\nimport { getFacetOrGroupKey } from '../utils/getFacetOrGroupKey';\nimport type { BubbleSettingsImpl } from '../bubble/BubbleSettingsImpl';\nimport { getFacetLabels } from '../discrete/utils/getFacetLabels';\n\nexport type Cell<T extends string> = {\n isCell: true;\n idx: number;\n id: string;\n value: Record<T, DataValue>;\n normalizedValue: Record<T, DataValue>;\n x: DataValue;\n y: DataValue;\n};\n\nexport type GroupedCellsData<T extends string> = {\n meta: {\n valueSources: T[]; // dataSource for heatmap, color and size for bubble - main data for every cell\n\n facetKeys: string[];\n xGroupKeys: string[];\n yGroupKeys: string[];\n\n xKeys: string[];\n yKeys: string[];\n xKeysByGroups: Record<string, string[]>;\n yKeysByGroups: Record<string, string[]>;\n\n // for titles, if facet by more 1 columns title has several values separated by commas\n facetKeyValues: Record<string, string[]>;\n xGroupKeyValues: Record<string, string[]>;\n yGroupKeyValues: Record<string, string[]>;\n\n xLabels: Record<string, string>;\n yLabels: Record<string, string>;\n xGroupLabels: Record<string, string>;\n yGroupLabels: Record<string, string>;\n\n valueExtent: Record<T, [number, number]>; // for color/size scales\n // data for labels, annotations and dendrograms\n xDataByKeys: Record<string, Record<string, DataValue>>;\n yDataByKeys: Record<string, Record<string, DataValue>>;\n };\n //facet groups\n facets: Record<\n string,\n {\n // axis keys\n xKeys: string[];\n yKeys: string[];\n // axis keys grouped by group keys from meta\n xKeysByGroups: Record<string, string[]>;\n yKeysByGroups: Record<string, string[]>;\n // cells grouped by X, then by Y\n cells: Record<string, Record<string, Cell<T>>>;\n }\n >;\n};\n\nfunction normalizeByStd(values: number[]) {\n const stdValue = deviation(values);\n const meanValue = mean(values);\n\n if (stdValue === undefined || meanValue === undefined || stdValue === 0) {\n return (v: number) => v;\n }\n return (v: number) => (v - meanValue) / stdValue;\n}\nfunction normalizeByMinMax(values: number[]) {\n const meanValue = mean(values);\n const [min, max] = extent(values);\n if (meanValue === undefined || min === undefined || max === undefined || max === min) {\n return (v: number) => v;\n }\n return (v: number) => (v - meanValue) / (max - min);\n}\n\nfunction getNormalizationFn(method: NormalizationMethod, values: number[]) {\n if (method === 'standardScaling') {\n return normalizeByStd(values);\n }\n if (method === 'meanNormalization') {\n return normalizeByMinMax(values);\n }\n return (v: number) => v;\n}\n\nfunction aggregateNumeric(method: AggregationMethod, values: number[]) {\n switch (method) {\n case 'max': {\n let res = values[0];\n for (const v of values) {\n res = Math.max(res, v);\n }\n return res;\n }\n case 'min': {\n let res = values[0];\n for (const v of values) {\n res = Math.min(res, v);\n }\n return res;\n }\n case 'median': {\n const valuesSorted = values.sort((a, b) => a - b);\n return quantileSorted(valuesSorted, 0.5) as number;\n }\n case 'mean': {\n return mean(values) ?? values[0];\n }\n case 'sum': {\n return sum(values) as number;\n }\n default: exhaustive(method, `Unknown aggregation function ${method}`);\n }\n}\nfunction aggregateString(values: string[]) {\n const list = [...new Set(values)].sort();\n if (list.length > 3) {\n return [...list.slice(0, 3), '...'].join(', ');\n }\n return list.join(', ');\n}\n\n// all combinations with 1 key from each list\nfunction getKeysCombinations(keysLists: string[][]) {\n if (!keysLists.length) {\n return [];\n }\n let result: string[][] = [[]];\n keysLists.forEach(keys => {\n const nextResult: string[][] = [];\n keys.forEach(key => {\n nextResult.push(...result.map(resultItem => [...resultItem, key]));\n });\n result = nextResult;\n });\n return result;\n}\nconst sortByLabels = (arr: string[], direction: 'asc' | 'desc', labels: Record<string, string> = {}) => {\n return arr.sort((a, b) => direction === 'asc'\n ? (labels[a] ?? a).localeCompare((labels[b] ?? b), 'en', { numeric: true })\n : (labels[b] ?? b).localeCompare((labels[a] ?? a), 'en', { numeric: true })\n );\n};\nfunction applyAggregation<T extends string>(\n result: GroupedCellsData<T>,\n aggregation: HeatmapSettingsImpl['aggregation'],\n additionalDataColumnsX: string[],\n additionalDataColumnsY: string[],\n annotations: HeatmapSettingsImpl['annotations']\n) {\n if (aggregation.x || aggregation.y) {\n const valueExtent: GroupedCellsData<T>['meta']['valueExtent'] = result.meta.valueSources.reduce((r, key) => {\n r[key] = [Infinity, -Infinity] as [number, number];\n return r;\n }, {} as GroupedCellsData<T>['meta']['valueExtent']);\n result.meta.facetKeys.forEach(facetKey => {\n const { xKeys, yKeys, cells, xKeysByGroups, yKeysByGroups } = result.facets[facetKey];\n const xGroups = aggregation.x ? xKeysByGroups : xKeys.reduce((res, xKey) => { res[xKey] = [xKey]; return res; }, {} as Record<string, string[]>);\n const yGroups = aggregation.y ? yKeysByGroups : yKeys.reduce((res, yKey) => { res[yKey] = [yKey]; return res; }, {} as Record<string, string[]>);\n const xNewKeys = Object.keys(xGroups);\n const yNewKeys = Object.keys(yGroups);\n\n for (const xGroupKey of xNewKeys) {\n for (const yGroupKey of yNewKeys) {\n // collect values for aggregation to arrays\n const valuesBySources: Record<T, number[]> = result.meta.valueSources.reduce((r, v) => {\n r[v] = [];\n return r;\n }, {} as Record<T, number[]>);\n xGroups[xGroupKey].forEach((xKey) => {\n yGroups[yGroupKey].forEach((yKey) => {\n for (const valueSource of result.meta.valueSources) {\n const cellValue = cells[xKey]?.[yKey]?.value?.[valueSource];\n if (cellValue !== undefined) {\n valuesBySources[valueSource].push(cellValue as number);\n }\n }\n delete cells[xKey]?.[yKey];\n });\n });\n // create new cells with aggregated values\n for (const valueSource of result.meta.valueSources) {\n const values = valuesBySources[valueSource];\n if (values.length > 0) {\n const value = aggregateNumeric(aggregation.method, values);\n if (!result.facets[facetKey].cells[xGroupKey]) {\n result.facets[facetKey].cells[xGroupKey] = {};\n }\n if (!result.facets[facetKey].cells[xGroupKey][yGroupKey]) {\n result.facets[facetKey].cells[xGroupKey][yGroupKey] = {\n isCell: true,\n idx: 0,\n id: `${xGroupKey}_${yGroupKey}`,\n x: xGroupKey,\n y: yGroupKey,\n value: result.meta.valueSources.reduce((r, v) => { r[v] = null; return r; }, {} as Record<T, DataValue>),\n normalizedValue: result.meta.valueSources.reduce((r, v) => { r[v] = null; return r; }, {} as Record<T, DataValue>),\n };\n }\n const cell = result.facets[facetKey].cells[xGroupKey][yGroupKey];\n cell.value[valueSource] = value;\n cell.normalizedValue[valueSource] = value;\n\n valueExtent[valueSource][0] = Math.min(cell.normalizedValue?.[valueSource], valueExtent[valueSource][0]);\n valueExtent[valueSource][1] = Math.max(cell.normalizedValue?.[valueSource], valueExtent[valueSource][1]);\n }\n }\n }\n }\n // add aggregated values for X annotations\n if (aggregation.x) {\n xNewKeys.forEach(xGroupKey => {\n additionalDataColumnsX.forEach(columnKey => {\n const annotation = annotations.find((v) => v.valueColumn.value === columnKey || v.valueColumn.valueLabels === columnKey);\n if (!annotation) {\n return;\n }\n const values: DataValue[] = [];\n xGroups[xGroupKey].forEach((xKey) => {\n values.push(result.meta.xDataByKeys[columnKey][xKey]);\n delete result.meta.xDataByKeys[columnKey][xKey];\n });\n const value = annotation.type === 'continuous' ? aggregateNumeric(aggregation.method, values as number[]) : aggregateString(values as string[]);\n result.meta.xDataByKeys[columnKey][xGroupKey] = value;\n });\n });\n }\n // add aggregated values for Y annotations\n if (aggregation.y) {\n additionalDataColumnsY.forEach(columnKey => {\n result.meta.yDataByKeys[columnKey] = {};\n });\n yNewKeys.forEach(yGroupKey => {\n additionalDataColumnsY.forEach(columnKey => {\n const annotation = annotations.find((v) => v.valueColumn.value === columnKey || v.valueColumn.valueLabels === columnKey);\n if (!annotation) {\n return;\n }\n const values: DataValue[] = [];\n yGroups[yGroupKey].forEach((yKey) => {\n values.push(result.meta.yDataByKeys[columnKey][yKey]);\n delete result.meta.yDataByKeys[columnKey][yKey];\n });\n const value = annotation.type === 'continuous' ? aggregateNumeric(aggregation.method, values as number[]) : aggregateString(values as string[]);\n result.meta.yDataByKeys[columnKey][yGroupKey] = value;\n });\n });\n }\n // erase grouping - we aggregated by them and now there is no grouping in the chart;\n // replace axis keys with group keys - now group keys are new axis keys\n if (aggregation.x) {\n result.facets[facetKey].xKeys = Object.keys(xKeysByGroups);\n result.facets[facetKey].xKeysByGroups = { 'null': result.facets[facetKey].xKeys };\n result.meta.xLabels = result.meta.xGroupLabels;\n result.meta.xGroupKeys = ['null'];\n result.meta.xGroupKeyValues = { null: ['null'] };\n }\n if (aggregation.y) {\n result.facets[facetKey].yKeys = Object.keys(yKeysByGroups);\n result.facets[facetKey].yKeysByGroups = { 'null': result.facets[facetKey].yKeys };\n result.meta.yLabels = result.meta.yGroupLabels;\n result.meta.yGroupKeys = ['null'];\n result.meta.yGroupKeyValues = { null: ['null'] };\n }\n });\n result.meta.valueExtent = valueExtent;\n }\n}\n\nfunction updateValueExtent<T extends string>(result: GroupedCellsData<T>, cell: Cell<T>) {\n for (const valueSource of result.meta.valueSources) {\n result.meta.valueExtent[valueSource][0] = Math.min(cell.normalizedValue?.[valueSource] as number, result.meta.valueExtent[valueSource][0]);\n result.meta.valueExtent[valueSource][1] = Math.max(cell.normalizedValue?.[valueSource] as number, result.meta.valueExtent[valueSource][1]);\n }\n\n}\nfunction applyNormalization<T extends string>(\n result: GroupedCellsData<T>,\n normalizationBySources: Record<T, HeatmapSettingsImpl['normalization']>,\n) {\n if (Object.values(normalizationBySources).length) {\n const valueExtent: GroupedCellsData<T>['meta']['valueExtent'] = result.meta.valueSources.reduce((r, key) => {\n if (normalizationBySources[key]) {\n r[key] = [Infinity, -Infinity] as [number, number];\n }\n return r;\n }, {} as GroupedCellsData<T>['meta']['valueExtent']);\n result.meta.facetKeys.forEach(facetKey => {\n const { xKeys, yKeys, cells } = result.facets[facetKey];\n\n for (const valueSource of result.meta.valueSources) {\n const normalization = normalizationBySources[valueSource];\n if (!normalization) {\n continue;\n }\n const cellKeys = normalization.direction === 'row' ? xKeys : yKeys;\n const groupKeys = normalization.direction === 'row' ? yKeys : xKeys;\n const cellGetter = normalization.direction === 'row'\n ? (cellKey: string, groupKey: string) => cells[cellKey]?.[groupKey]\n : (cellKey: string, groupKey: string) => cells[groupKey]?.[cellKey];\n groupKeys.forEach((groupKey) => {\n const values: number[] = [];\n cellKeys.forEach((cellKey) => {\n const v = cellGetter(cellKey, groupKey)?.value?.[valueSource];\n if (v !== undefined) {\n values.push(v as number);\n }\n });\n const normalize = getNormalizationFn(normalization.method, values);\n cellKeys.forEach((cellKey) => {\n const cell = cellGetter(cellKey, groupKey);\n if (cell !== undefined) {\n cell.normalizedValue[valueSource] = normalize(cell.value?.[valueSource] as number);\n valueExtent[valueSource][0] = Math.min(cell.normalizedValue?.[valueSource], valueExtent[valueSource][0]);\n valueExtent[valueSource][1] = Math.max(cell.normalizedValue?.[valueSource], valueExtent[valueSource][1]);\n }\n });\n });\n }\n\n });\n result.meta.valueExtent = {...result.meta.valueExtent, valueExtent};\n }\n}\n\nexport function fillCellsData<T extends string>(\n result: GroupedCellsData<T>,\n data: DataFrame,\n xColumn: ColumnName,\n yColumn: ColumnName,\n valueColumns: Record<string, ColumnName>,\n facetBy: ColumnName[],\n xGroupBy: ColumnName[],\n yGroupBy: ColumnName[],\n annotations: HeatmapSettingsImpl['annotations'],\n dendrogramX: HeatmapSettingsImpl['dendrogramX'],\n dendrogramY: HeatmapSettingsImpl['dendrogramY'],\n normalizationBySource: Record<T, HeatmapSettingsImpl['normalization']>, // separated for color and size for example\n NAValueAs: HeatmapSettingsImpl['NAValueAs'],\n keysOrder: HeatmapSettingsImpl['keysOrder'],\n xAxis: HeatmapSettingsImpl['chartSettings']['xAxis'] | BubbleSettingsImpl['chartSettings']['xAxis'],\n yAxis: HeatmapSettingsImpl['chartSettings']['yAxis'] | BubbleSettingsImpl['chartSettings']['yAxis'],\n aggregation: HeatmapSettingsImpl['aggregation'],\n) {\n const facetKeysLists = facetBy.length\n ? facetBy.map(column => keysOrder[column.value] ?? data.getColumnCategories(column.value))\n : [['null']];\n const xGroupKeysLists = xGroupBy.length\n ? xGroupBy.map(column => keysOrder[column.value] ?? data.getColumnCategories(column.value))\n : [['null']];\n const yGroupKeysLists = yGroupBy.length\n ? yGroupBy.map(column => keysOrder[column.value] ?? data.getColumnCategories(column.value))\n : [['null']];\n const facetKeysCombinations = getKeysCombinations(facetKeysLists);\n const xGroupKeysCombinations = getKeysCombinations(xGroupKeysLists);\n const yGroupKeysCombinations = getKeysCombinations(yGroupKeysLists);\n\n const facetKeys = facetKeysCombinations.map(getFacetOrGroupKey);\n const xGroupKeys = xGroupKeysCombinations.map(getFacetOrGroupKey);\n const yGroupKeys = yGroupKeysCombinations.map(getFacetOrGroupKey);\n\n result.meta.facetKeys = facetKeys;\n result.meta.xGroupKeys = xGroupKeys;\n result.meta.yGroupKeys = yGroupKeys;\n\n const facetLabels = getFacetLabels(data, facetBy, facetKeys, facetKeysCombinations);\n result.meta.facetKeyValues = facetKeys.reduce((res: Record<string, string[]>, key) => {\n res[key] = facetLabels[key];\n return res;\n }, {});\n\n result.meta.xGroupKeyValues = xGroupKeys.reduce((res: Record<string, string[]>, key, index) => {\n res[key] = xGroupKeysCombinations[index];\n return res;\n }, {});\n result.meta.yGroupKeyValues = yGroupKeys.reduce((res: Record<string, string[]>, key, index) => {\n res[key] = yGroupKeysCombinations[index];\n return res;\n }, {});\n\n const xLabelsSource = xColumn.valueLabels ?? xColumn.value;\n const yLabelsSource = yColumn.valueLabels ?? yColumn.value;\n const annotationColumnsX = annotations.filter(item => item.axis === 'x').map(item => item.valueColumn.valueLabels ?? item.valueColumn.value);\n const annotationColumnsY = annotations.filter(item => item.axis === 'y').map(item => item.valueColumn.valueLabels ?? item.valueColumn.value);\n const dendrogramXColumns = Object.values(dendrogramX ?? {}).map(column => column.value);\n const dendrogramYColumns = Object.values(dendrogramY ?? {}).map(column => column.value);\n const additionalDataColumnsX = lodash.uniq([...annotationColumnsX, ...dendrogramXColumns, xLabelsSource]);\n const additionalDataColumnsY = lodash.uniq([...annotationColumnsY, ...dendrogramYColumns, yLabelsSource]);\n\n for (let i = 0; i < data.rowsCount; i++) {\n const facetKey = getFacetOrGroupKey(facetBy.map(column => data.getColumnValue(column.value, i)));\n const xGroupKey = getFacetOrGroupKey(xGroupBy.map(column => data.getColumnValue(column.value, i)));\n const yGroupKey = getFacetOrGroupKey(yGroupBy.map(column => data.getColumnValue(column.value, i)));\n const xGroupLabel = xGroupBy.map(column => data.getColumnValue(column.valueLabels ?? column.value, i)).join(', ');\n const yGroupLabel = yGroupBy.map(column => data.getColumnValue(column.valueLabels ?? column.value, i)).join(', ');\n result.meta.xGroupLabels[xGroupKey] = xGroupLabel;\n result.meta.yGroupLabels[yGroupKey] = yGroupLabel;\n const x = String(data.getColumnValue(xColumn.value, i));\n const y = String(data.getColumnValue(yColumn.value, i));\n\n const values = result.meta.valueSources.reduce((r, key) => {\n r[key] = (data.getColumnValue(valueColumns[key].value, i) ?? NAValueAs) as number | null;\n return r;\n }, {} as Record<string, DataValue>);\n\n if (x === 'null' || y === 'null' || Object.values(values).every(v => v === null)) {\n continue;\n }\n\n if (!result.facets[facetKey]) {\n result.facets[facetKey] = {\n xKeys: [],\n yKeys: [],\n xKeysByGroups: {},\n yKeysByGroups: {},\n cells: {},\n };\n }\n if (!result.facets[facetKey].xKeysByGroups[xGroupKey]) {\n result.facets[facetKey].xKeysByGroups[xGroupKey] = [];\n }\n if (!result.facets[facetKey].yKeysByGroups[yGroupKey]) {\n result.facets[facetKey].yKeysByGroups[yGroupKey] = [];\n }\n result.facets[facetKey].xKeys.push(x);\n result.facets[facetKey].yKeys.push(y);\n result.facets[facetKey].xKeysByGroups[xGroupKey].push(x);\n result.facets[facetKey].yKeysByGroups[yGroupKey].push(y);\n\n if (!result.facets[facetKey].cells[x]) {\n result.facets[facetKey].cells[x] = {};\n }\n\n for (const valueSource of result.meta.valueSources) {\n if (result.facets[facetKey].cells[x][y] && result.facets[facetKey].cells[x][y].value[valueSource] !== values[valueSource]) {\n throw Error(`More than 1 value for x=${x}, y=${y}`);\n }\n }\n\n const xLabelsSourceValue = data.getColumnValue(xLabelsSource, i);\n if (result.meta.xLabels[x] && String(xLabelsSourceValue) !== result.meta.xLabels[x]) {\n throw Error(`More than 1 x-label value for x=${x}`);\n }\n const yLabelsSourceValue = data.getColumnValue(yLabelsSource, i);\n if (result.meta.yLabels[y] && String(yLabelsSourceValue) !== result.meta.yLabels[y]) {\n throw Error(`More than 1 y-label value for y=${y}`);\n }\n result.meta.xLabels[x] = String(xLabelsSourceValue);\n result.meta.yLabels[y] = String(yLabelsSourceValue);\n // data for labels, annotations and dendrograms by X\n additionalDataColumnsX.forEach(columnKey => {\n const isAddedColumn = typeof result.meta.xDataByKeys[columnKey] !== 'undefined';\n const isAddedValue = isAddedColumn && typeof result.meta.xDataByKeys[columnKey][x] !== 'undefined';\n if (!isAddedColumn) {\n result.meta.xDataByKeys[columnKey] = {};\n }\n if (isAddedValue && result.meta.xDataByKeys[columnKey][x] !== data.getColumnValue(columnKey, i)) {\n throw Error(`More than 1 value for x = ${x} and column = ${columnKey}`);\n }\n if (!isAddedValue) {\n result.meta.xDataByKeys[columnKey][x] = data.getColumnValue(columnKey, i);\n }\n });\n // data for labels, annotations and dendrograms by Y\n additionalDataColumnsY.forEach(columnKey => {\n const isAddedColumn = typeof result.meta.yDataByKeys[columnKey] !== 'undefined';\n const isAddedValue = isAddedColumn && typeof result.meta.yDataByKeys[columnKey][y] !== 'undefined';\n if (!isAddedColumn) {\n result.meta.yDataByKeys[columnKey] = {};\n }\n if (isAddedValue && result.meta.yDataByKeys[columnKey][y] !== data.getColumnValue(columnKey, i)) {\n throw Error(`More than 1 value for y = ${y} and column = ${columnKey}`);\n }\n if (!isAddedValue) {\n result.meta.yDataByKeys[columnKey][y] = data.getColumnValue(columnKey, i);\n }\n });\n result.facets[facetKey].cells[x][y] = {\n isCell: true,\n idx: i,\n id: `${x}_${y}`,\n x,\n y,\n value: values,\n normalizedValue: values,\n };\n\n updateValueExtent(result, result.facets[facetKey].cells[x][y]);\n }\n\n result.meta.facetKeys = result.meta.facetKeys.filter((key) => result.facets[key]); // filter only used;\n\n // make uniq x, y, x-group and y-group keys\n result.meta.facetKeys.forEach(facetKey => {\n const facet = result.facets[facetKey];\n const uniqueXKeys = lodash.uniq(facet.xKeys);\n const uniqueYKeys = lodash.uniq(facet.yKeys);\n facet.xKeys = keysOrder[xColumn.value] ? lodash.intersection(keysOrder[xColumn.value], uniqueXKeys) : uniqueXKeys;\n facet.yKeys = keysOrder[yColumn.value] ? lodash.intersection(keysOrder[yColumn.value], uniqueYKeys) : uniqueYKeys;\n xGroupKeys.forEach(xGroupKey => {\n result.facets[facetKey].xKeysByGroups[xGroupKey] = lodash.intersection(\n facet.xKeys,\n result.facets[facetKey].xKeysByGroups[xGroupKey]\n );\n });\n yGroupKeys.forEach(yGroupKey => {\n result.facets[facetKey].yKeysByGroups[yGroupKey] = lodash.intersection(\n facet.yKeys,\n result.facets[facetKey].yKeysByGroups[yGroupKey]\n );\n });\n });\n\n applyAggregation(result, aggregation, additionalDataColumnsX, additionalDataColumnsY, annotations);\n applyNormalization(result, normalizationBySource);\n\n // every facet may contain not all of available keys, but for shared axes it is necessary to have all of them\n result.meta.xKeysByGroups = result.meta.xGroupKeys.reduce((res: Record<string, string[]>, xGroupKey) => {\n const existingXKeys = sortByLabels(lodash.uniq(\n lodash.flatten(result.meta.facetKeys.map(facetKey => result.facets[facetKey].xKeysByGroups[xGroupKey]))\n ), xAxis.sorting, result.meta.xLabels);\n res[xGroupKey] = keysOrder[xColumn.value] ? lodash.intersection(keysOrder[xColumn.value], existingXKeys) : existingXKeys;\n return res;\n }, {});\n result.meta.xKeys = result.meta.xGroupKeys.reduce((res: string[], xGroupKey: string) => {\n res = res.concat(result.meta.xKeysByGroups[xGroupKey]);\n return res;\n }, []);\n\n result.meta.yKeysByGroups = result.meta.yGroupKeys.reduce((res: Record<string, string[]>, yGroupKey) => {\n const existingYKeys = sortByLabels(lodash.uniq(\n lodash.flatten(result.meta.facetKeys.map(facetKey => result.facets[facetKey].yKeysByGroups[yGroupKey]))\n ), yAxis.sorting, result.meta.yLabels);\n res[yGroupKey] = keysOrder[yColumn.value] ? lodash.intersection(keysOrder[yColumn.value], existingYKeys) : existingYKeys;\n return res;\n }, {});\n result.meta.yKeys = result.meta.yGroupKeys.reduce((res: string[], yGroupKey: string) => {\n res = res.concat(result.meta.yKeysByGroups[yGroupKey]);\n return res;\n }, []);\n\n for (const valueSource of result.meta.valueSources) {\n // avoid render errors on empty data\n if (result.meta.valueExtent[valueSource][0] === Infinity) {\n result.meta.valueExtent[valueSource][0] = 0;\n }\n if (result.meta.valueExtent[valueSource][1] === -Infinity) {\n result.meta.valueExtent[valueSource][1] = 0;\n }\n }\n\n return result;\n}"],"names":["normalizeByStd","values","stdValue","deviation","meanValue","mean","v","normalizeByMinMax","min","max","extent","getNormalizationFn","method","aggregateNumeric","res","valuesSorted","a","b","quantileSorted","sum","exhaustive","aggregateString","list","getKeysCombinations","keysLists","result","keys","nextResult","key","resultItem","sortByLabels","arr","direction","labels","applyAggregation","aggregation","additionalDataColumnsX","additionalDataColumnsY","annotations","valueExtent","r","facetKey","xKeys","yKeys","cells","xKeysByGroups","yKeysByGroups","xGroups","xKey","yGroups","yKey","xNewKeys","yNewKeys","xGroupKey","yGroupKey","valuesBySources","valueSource","cellValue","_c","_b","_a","_d","value","cell","columnKey","annotation","updateValueExtent","applyNormalization","normalizationBySources","normalization","cellKeys","groupKeys","cellGetter","cellKey","groupKey","normalize","fillCellsData","data","xColumn","yColumn","valueColumns","facetBy","xGroupBy","yGroupBy","dendrogramX","dendrogramY","normalizationBySource","NAValueAs","keysOrder","xAxis","yAxis","facetKeysLists","column","xGroupKeysLists","yGroupKeysLists","facetKeysCombinations","xGroupKeysCombinations","yGroupKeysCombinations","facetKeys","getFacetOrGroupKey","xGroupKeys","yGroupKeys","facetLabels","getFacetLabels","index","xLabelsSource","yLabelsSource","annotationColumnsX","item","annotationColumnsY","dendrogramXColumns","dendrogramYColumns","lodash","i","xGroupLabel","yGroupLabel","x","y","xLabelsSourceValue","yLabelsSourceValue","isAddedColumn","isAddedValue","facet","uniqueXKeys","uniqueYKeys","existingXKeys","existingYKeys"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fillCellsData.js","sources":["../../src/heatmap/fillCellsData.ts"],"sourcesContent":["import { deviation, extent, mean, quantileSorted, sum } from 'd3-array';\nimport lodash from 'lodash';\nimport type { DataFrame } from '../DataFrame';\nimport type { AggregationMethod, ColumnName, DataValue, NormalizationMethod } from '../types';\nimport type { HeatmapSettingsImpl } from './HeatmapSettingsImpl';\nimport { exhaustive } from '../utils';\nimport { getFacetOrGroupKey } from '../utils/getFacetOrGroupKey';\nimport type { BubbleSettingsImpl } from '../bubble/BubbleSettingsImpl';\nimport { getFacetLabels } from '../discrete/utils/getFacetLabels';\nimport { getFacetStringKey } from '../discrete/utils/getFacetStringKey';\n\nexport type Cell<T extends string> = {\n isCell: true;\n idx: number;\n id: string;\n value: Record<T, DataValue>;\n normalizedValue: Record<T, DataValue>;\n x: DataValue;\n y: DataValue;\n};\n\nexport type GroupedCellsData<T extends string> = {\n meta: {\n valueSources: T[]; // dataSource for heatmap, color and size for bubble - main data for every cell\n\n facetKeys: string[];\n xGroupKeys: string[];\n yGroupKeys: string[];\n\n xKeys: string[];\n yKeys: string[];\n xKeysByGroups: Record<string, string[]>;\n yKeysByGroups: Record<string, string[]>;\n\n // for titles, if facet by more 1 columns title has several values separated by commas\n facetKeyValues: Record<string, string[]>;\n xGroupKeyValues: Record<string, string[]>;\n yGroupKeyValues: Record<string, string[]>;\n\n xLabels: Record<string, string>;\n yLabels: Record<string, string>;\n xGroupLabels: Record<string, string>;\n yGroupLabels: Record<string, string>;\n\n valueExtent: Record<T, [number, number]>; // for color/size scales\n // data for labels, annotations and dendrograms\n xDataByKeys: Record<string, Record<string, DataValue>>;\n yDataByKeys: Record<string, Record<string, DataValue>>;\n };\n //facet groups\n facets: Record<\n string,\n {\n // axis keys\n xKeys: string[];\n yKeys: string[];\n // axis keys grouped by group keys from meta\n xKeysByGroups: Record<string, string[]>;\n yKeysByGroups: Record<string, string[]>;\n // cells grouped by X, then by Y\n cells: Record<string, Record<string, Cell<T>>>;\n }\n >;\n};\n\nfunction normalizeByStd(values: number[]) {\n const stdValue = deviation(values);\n const meanValue = mean(values);\n\n if (stdValue === undefined || meanValue === undefined || stdValue === 0) {\n return (v: number) => v;\n }\n return (v: number) => (v - meanValue) / stdValue;\n}\nfunction normalizeByMinMax(values: number[]) {\n const meanValue = mean(values);\n const [min, max] = extent(values);\n if (meanValue === undefined || min === undefined || max === undefined || max === min) {\n return (v: number) => v;\n }\n return (v: number) => (v - meanValue) / (max - min);\n}\n\nfunction getNormalizationFn(method: NormalizationMethod, values: number[]) {\n if (method === 'standardScaling') {\n return normalizeByStd(values);\n }\n if (method === 'meanNormalization') {\n return normalizeByMinMax(values);\n }\n return (v: number) => v;\n}\n\nfunction aggregateNumeric(method: AggregationMethod, values: number[]) {\n switch (method) {\n case 'max': {\n let res = values[0];\n for (const v of values) {\n res = Math.max(res, v);\n }\n return res;\n }\n case 'min': {\n let res = values[0];\n for (const v of values) {\n res = Math.min(res, v);\n }\n return res;\n }\n case 'median': {\n const valuesSorted = values.sort((a, b) => a - b);\n return quantileSorted(valuesSorted, 0.5) as number;\n }\n case 'mean': {\n return mean(values) ?? values[0];\n }\n case 'sum': {\n return sum(values) as number;\n }\n default: exhaustive(method, `Unknown aggregation function ${method}`);\n }\n}\nfunction aggregateString(values: string[]) {\n const list = [...new Set(values)].sort();\n if (list.length > 3) {\n return [...list.slice(0, 3), '...'].join(', ');\n }\n return list.join(', ');\n}\n\n// all combinations with 1 key from each list\nfunction getKeysCombinations(keysLists: string[][]) {\n if (!keysLists.length) {\n return [];\n }\n let result: string[][] = [[]];\n keysLists.forEach(keys => {\n const nextResult: string[][] = [];\n keys.forEach(key => {\n nextResult.push(...result.map(resultItem => [...resultItem, key]));\n });\n result = nextResult;\n });\n return result;\n}\nconst sortByLabels = (arr: string[], direction: 'asc' | 'desc', labels: Record<string, string> = {}) => {\n return arr.sort((a, b) => direction === 'asc'\n ? (labels[a] ?? a).localeCompare((labels[b] ?? b), 'en', { numeric: true })\n : (labels[b] ?? b).localeCompare((labels[a] ?? a), 'en', { numeric: true })\n );\n};\nfunction applyAggregation<T extends string>(\n result: GroupedCellsData<T>,\n aggregation: HeatmapSettingsImpl['aggregation'],\n additionalDataColumnsX: string[],\n additionalDataColumnsY: string[],\n annotations: HeatmapSettingsImpl['annotations']\n) {\n if (aggregation.x || aggregation.y) {\n const valueExtent: GroupedCellsData<T>['meta']['valueExtent'] = result.meta.valueSources.reduce((r, key) => {\n r[key] = [Infinity, -Infinity] as [number, number];\n return r;\n }, {} as GroupedCellsData<T>['meta']['valueExtent']);\n result.meta.facetKeys.forEach(facetKey => {\n const { xKeys, yKeys, cells, xKeysByGroups, yKeysByGroups } = result.facets[facetKey];\n const xGroups = aggregation.x ? xKeysByGroups : xKeys.reduce((res, xKey) => { res[xKey] = [xKey]; return res; }, {} as Record<string, string[]>);\n const yGroups = aggregation.y ? yKeysByGroups : yKeys.reduce((res, yKey) => { res[yKey] = [yKey]; return res; }, {} as Record<string, string[]>);\n const xNewKeys = Object.keys(xGroups);\n const yNewKeys = Object.keys(yGroups);\n\n for (const xGroupKey of xNewKeys) {\n for (const yGroupKey of yNewKeys) {\n // collect values for aggregation to arrays\n const valuesBySources: Record<T, number[]> = result.meta.valueSources.reduce((r, v) => {\n r[v] = [];\n return r;\n }, {} as Record<T, number[]>);\n xGroups[xGroupKey].forEach((xKey) => {\n yGroups[yGroupKey].forEach((yKey) => {\n for (const valueSource of result.meta.valueSources) {\n const cellValue = cells[xKey]?.[yKey]?.value?.[valueSource];\n if (cellValue !== undefined) {\n valuesBySources[valueSource].push(cellValue as number);\n }\n }\n delete cells[xKey]?.[yKey];\n });\n });\n // create new cells with aggregated values\n for (const valueSource of result.meta.valueSources) {\n const values = valuesBySources[valueSource];\n if (values.length > 0) {\n const value = aggregateNumeric(aggregation.method, values);\n if (!result.facets[facetKey].cells[xGroupKey]) {\n result.facets[facetKey].cells[xGroupKey] = {};\n }\n if (!result.facets[facetKey].cells[xGroupKey][yGroupKey]) {\n result.facets[facetKey].cells[xGroupKey][yGroupKey] = {\n isCell: true,\n idx: 0,\n id: `${xGroupKey}_${yGroupKey}`,\n x: xGroupKey,\n y: yGroupKey,\n value: result.meta.valueSources.reduce((r, v) => { r[v] = null; return r; }, {} as Record<T, DataValue>),\n normalizedValue: result.meta.valueSources.reduce((r, v) => { r[v] = null; return r; }, {} as Record<T, DataValue>),\n };\n }\n const cell = result.facets[facetKey].cells[xGroupKey][yGroupKey];\n cell.value[valueSource] = value;\n cell.normalizedValue[valueSource] = value;\n\n valueExtent[valueSource][0] = Math.min(cell.normalizedValue?.[valueSource], valueExtent[valueSource][0]);\n valueExtent[valueSource][1] = Math.max(cell.normalizedValue?.[valueSource], valueExtent[valueSource][1]);\n }\n }\n }\n }\n // add aggregated values for X annotations\n if (aggregation.x) {\n xNewKeys.forEach(xGroupKey => {\n additionalDataColumnsX.forEach(columnKey => {\n const annotation = annotations.find((v) => v.valueColumn.value === columnKey || v.valueColumn.valueLabels === columnKey);\n if (!annotation) {\n return;\n }\n const values: DataValue[] = [];\n xGroups[xGroupKey].forEach((xKey) => {\n values.push(result.meta.xDataByKeys[columnKey][xKey]);\n delete result.meta.xDataByKeys[columnKey][xKey];\n });\n const value = annotation.type === 'continuous' ? aggregateNumeric(aggregation.method, values as number[]) : aggregateString(values as string[]);\n result.meta.xDataByKeys[columnKey][xGroupKey] = value;\n });\n });\n }\n // add aggregated values for Y annotations\n if (aggregation.y) {\n additionalDataColumnsY.forEach(columnKey => {\n result.meta.yDataByKeys[columnKey] = {};\n });\n yNewKeys.forEach(yGroupKey => {\n additionalDataColumnsY.forEach(columnKey => {\n const annotation = annotations.find((v) => v.valueColumn.value === columnKey || v.valueColumn.valueLabels === columnKey);\n if (!annotation) {\n return;\n }\n const values: DataValue[] = [];\n yGroups[yGroupKey].forEach((yKey) => {\n values.push(result.meta.yDataByKeys[columnKey][yKey]);\n delete result.meta.yDataByKeys[columnKey][yKey];\n });\n const value = annotation.type === 'continuous' ? aggregateNumeric(aggregation.method, values as number[]) : aggregateString(values as string[]);\n result.meta.yDataByKeys[columnKey][yGroupKey] = value;\n });\n });\n }\n // erase grouping - we aggregated by them and now there is no grouping in the chart;\n // replace axis keys with group keys - now group keys are new axis keys\n if (aggregation.x) {\n result.facets[facetKey].xKeys = Object.keys(xKeysByGroups);\n result.facets[facetKey].xKeysByGroups = { 'null': result.facets[facetKey].xKeys };\n result.meta.xLabels = result.meta.xGroupLabels;\n result.meta.xGroupKeys = ['null'];\n result.meta.xGroupKeyValues = { null: ['null'] };\n }\n if (aggregation.y) {\n result.facets[facetKey].yKeys = Object.keys(yKeysByGroups);\n result.facets[facetKey].yKeysByGroups = { 'null': result.facets[facetKey].yKeys };\n result.meta.yLabels = result.meta.yGroupLabels;\n result.meta.yGroupKeys = ['null'];\n result.meta.yGroupKeyValues = { null: ['null'] };\n }\n });\n result.meta.valueExtent = valueExtent;\n }\n}\n\nfunction updateValueExtent<T extends string>(result: GroupedCellsData<T>, cell: Cell<T>) {\n for (const valueSource of result.meta.valueSources) {\n result.meta.valueExtent[valueSource][0] = Math.min(cell.normalizedValue?.[valueSource] as number, result.meta.valueExtent[valueSource][0]);\n result.meta.valueExtent[valueSource][1] = Math.max(cell.normalizedValue?.[valueSource] as number, result.meta.valueExtent[valueSource][1]);\n }\n\n}\nfunction applyNormalization<T extends string>(\n result: GroupedCellsData<T>,\n normalizationBySources: Record<T, HeatmapSettingsImpl['normalization']>,\n) {\n if (Object.values(normalizationBySources).length) {\n const valueExtent: GroupedCellsData<T>['meta']['valueExtent'] = result.meta.valueSources.reduce((r, key) => {\n if (normalizationBySources[key]) {\n r[key] = [Infinity, -Infinity] as [number, number];\n }\n return r;\n }, {} as GroupedCellsData<T>['meta']['valueExtent']);\n result.meta.facetKeys.forEach(facetKey => {\n const { xKeys, yKeys, cells } = result.facets[facetKey];\n\n for (const valueSource of result.meta.valueSources) {\n const normalization = normalizationBySources[valueSource];\n if (!normalization) {\n continue;\n }\n const cellKeys = normalization.direction === 'row' ? xKeys : yKeys;\n const groupKeys = normalization.direction === 'row' ? yKeys : xKeys;\n const cellGetter = normalization.direction === 'row'\n ? (cellKey: string, groupKey: string) => cells[cellKey]?.[groupKey]\n : (cellKey: string, groupKey: string) => cells[groupKey]?.[cellKey];\n groupKeys.forEach((groupKey) => {\n const values: number[] = [];\n cellKeys.forEach((cellKey) => {\n const v = cellGetter(cellKey, groupKey)?.value?.[valueSource];\n if (v !== undefined) {\n values.push(v as number);\n }\n });\n const normalize = getNormalizationFn(normalization.method, values);\n cellKeys.forEach((cellKey) => {\n const cell = cellGetter(cellKey, groupKey);\n if (cell !== undefined) {\n cell.normalizedValue[valueSource] = normalize(cell.value?.[valueSource] as number);\n valueExtent[valueSource][0] = Math.min(cell.normalizedValue?.[valueSource], valueExtent[valueSource][0]);\n valueExtent[valueSource][1] = Math.max(cell.normalizedValue?.[valueSource], valueExtent[valueSource][1]);\n }\n });\n });\n }\n\n });\n result.meta.valueExtent = {...result.meta.valueExtent, valueExtent};\n }\n}\n\nexport function fillCellsData<T extends string>(\n result: GroupedCellsData<T>,\n data: DataFrame,\n xColumn: ColumnName,\n yColumn: ColumnName,\n valueColumns: Record<string, ColumnName>,\n facetBy: ColumnName[],\n xGroupBy: ColumnName[],\n yGroupBy: ColumnName[],\n facetSettings: HeatmapSettingsImpl['facetSettings'],\n annotations: HeatmapSettingsImpl['annotations'],\n dendrogramX: HeatmapSettingsImpl['dendrogramX'],\n dendrogramY: HeatmapSettingsImpl['dendrogramY'],\n normalizationBySource: Record<T, HeatmapSettingsImpl['normalization']>, // separated for color and size for example\n NAValueAs: HeatmapSettingsImpl['NAValueAs'],\n keysOrder: HeatmapSettingsImpl['keysOrder'],\n xAxis: HeatmapSettingsImpl['chartSettings']['xAxis'] | BubbleSettingsImpl['chartSettings']['xAxis'],\n yAxis: HeatmapSettingsImpl['chartSettings']['yAxis'] | BubbleSettingsImpl['chartSettings']['yAxis'],\n aggregation: HeatmapSettingsImpl['aggregation'],\n) {\n const facetKeysLists = facetBy.length\n ? facetBy.map(column => keysOrder[column.value] ?? data.getColumnCategories(column.value))\n : [['null']];\n\n const xGroupKeysLists = xGroupBy.length\n ? xGroupBy.map(column => keysOrder[column.value] ?? data.getColumnCategories(column.value))\n : [['null']];\n const yGroupKeysLists = yGroupBy.length\n ? yGroupBy.map(column => keysOrder[column.value] ?? data.getColumnCategories(column.value))\n : [['null']];\n let facetKeysCombinations = getKeysCombinations(facetKeysLists);\n const xGroupKeysCombinations = getKeysCombinations(xGroupKeysLists);\n const yGroupKeysCombinations = getKeysCombinations(yGroupKeysLists);\n\n if (facetSettings?.order?.length) {\n facetKeysCombinations = facetKeysCombinations.filter(keys => facetSettings.order?.includes(getFacetStringKey(keys)));\n }\n const facetKeys = facetKeysCombinations.map(getFacetOrGroupKey);\n const facetKeysSet = new Set(facetKeys);\n const xGroupKeys = xGroupKeysCombinations.map(getFacetOrGroupKey);\n const yGroupKeys = yGroupKeysCombinations.map(getFacetOrGroupKey);\n\n result.meta.facetKeys = facetKeys;\n result.meta.xGroupKeys = xGroupKeys;\n result.meta.yGroupKeys = yGroupKeys;\n\n const facetLabels = getFacetLabels(data, facetBy, facetKeys, facetKeysCombinations);\n result.meta.facetKeyValues = facetKeys.reduce((res: Record<string, string[]>, key) => {\n res[key] = facetLabels[key];\n return res;\n }, {});\n\n result.meta.xGroupKeyValues = xGroupKeys.reduce((res: Record<string, string[]>, key, index) => {\n res[key] = xGroupKeysCombinations[index];\n return res;\n }, {});\n result.meta.yGroupKeyValues = yGroupKeys.reduce((res: Record<string, string[]>, key, index) => {\n res[key] = yGroupKeysCombinations[index];\n return res;\n }, {});\n\n const xLabelsSource = xColumn.valueLabels ?? xColumn.value;\n const yLabelsSource = yColumn.valueLabels ?? yColumn.value;\n const annotationColumnsX = annotations.filter(item => item.axis === 'x').map(item => item.valueColumn.valueLabels ?? item.valueColumn.value);\n const annotationColumnsY = annotations.filter(item => item.axis === 'y').map(item => item.valueColumn.valueLabels ?? item.valueColumn.value);\n const dendrogramXColumns = Object.values(dendrogramX ?? {}).map(column => column.value);\n const dendrogramYColumns = Object.values(dendrogramY ?? {}).map(column => column.value);\n const additionalDataColumnsX = lodash.uniq([...annotationColumnsX, ...dendrogramXColumns, xLabelsSource]);\n const additionalDataColumnsY = lodash.uniq([...annotationColumnsY, ...dendrogramYColumns, yLabelsSource]);\n\n for (let i = 0; i < data.rowsCount; i++) {\n const facetKey = getFacetOrGroupKey(facetBy.map(column => data.getColumnValue(column.value, i)));\n if (!facetKeysSet.has(facetKey)) {\n continue;\n }\n const xGroupKey = getFacetOrGroupKey(xGroupBy.map(column => data.getColumnValue(column.value, i)));\n const yGroupKey = getFacetOrGroupKey(yGroupBy.map(column => data.getColumnValue(column.value, i)));\n const xGroupLabel = xGroupBy.map(column => data.getColumnValue(column.valueLabels ?? column.value, i)).join(', ');\n const yGroupLabel = yGroupBy.map(column => data.getColumnValue(column.valueLabels ?? column.value, i)).join(', ');\n result.meta.xGroupLabels[xGroupKey] = xGroupLabel;\n result.meta.yGroupLabels[yGroupKey] = yGroupLabel;\n const x = String(data.getColumnValue(xColumn.value, i));\n const y = String(data.getColumnValue(yColumn.value, i));\n\n const values = result.meta.valueSources.reduce((r, key) => {\n r[key] = (data.getColumnValue(valueColumns[key].value, i) ?? NAValueAs) as number | null;\n return r;\n }, {} as Record<string, DataValue>);\n\n if (x === 'null' || y === 'null' || Object.values(values).every(v => v === null)) {\n continue;\n }\n\n if (!result.facets[facetKey]) {\n result.facets[facetKey] = {\n xKeys: [],\n yKeys: [],\n xKeysByGroups: {},\n yKeysByGroups: {},\n cells: {},\n };\n }\n if (!result.facets[facetKey].xKeysByGroups[xGroupKey]) {\n result.facets[facetKey].xKeysByGroups[xGroupKey] = [];\n }\n if (!result.facets[facetKey].yKeysByGroups[yGroupKey]) {\n result.facets[facetKey].yKeysByGroups[yGroupKey] = [];\n }\n result.facets[facetKey].xKeys.push(x);\n result.facets[facetKey].yKeys.push(y);\n result.facets[facetKey].xKeysByGroups[xGroupKey].push(x);\n result.facets[facetKey].yKeysByGroups[yGroupKey].push(y);\n\n if (!result.facets[facetKey].cells[x]) {\n result.facets[facetKey].cells[x] = {};\n }\n\n for (const valueSource of result.meta.valueSources) {\n if (result.facets[facetKey].cells[x][y] && result.facets[facetKey].cells[x][y].value[valueSource] !== values[valueSource]) {\n throw Error(`More than 1 value for x=${x}, y=${y}`);\n }\n }\n\n const xLabelsSourceValue = data.getColumnValue(xLabelsSource, i);\n if (result.meta.xLabels[x] && String(xLabelsSourceValue) !== result.meta.xLabels[x]) {\n throw Error(`More than 1 x-label value for x=${x}`);\n }\n const yLabelsSourceValue = data.getColumnValue(yLabelsSource, i);\n if (result.meta.yLabels[y] && String(yLabelsSourceValue) !== result.meta.yLabels[y]) {\n throw Error(`More than 1 y-label value for y=${y}`);\n }\n result.meta.xLabels[x] = String(xLabelsSourceValue);\n result.meta.yLabels[y] = String(yLabelsSourceValue);\n // data for labels, annotations and dendrograms by X\n additionalDataColumnsX.forEach(columnKey => {\n const isAddedColumn = typeof result.meta.xDataByKeys[columnKey] !== 'undefined';\n const isAddedValue = isAddedColumn && typeof result.meta.xDataByKeys[columnKey][x] !== 'undefined';\n if (!isAddedColumn) {\n result.meta.xDataByKeys[columnKey] = {};\n }\n if (isAddedValue && result.meta.xDataByKeys[columnKey][x] !== data.getColumnValue(columnKey, i)) {\n throw Error(`More than 1 value for x = ${x} and column = ${columnKey}`);\n }\n if (!isAddedValue) {\n result.meta.xDataByKeys[columnKey][x] = data.getColumnValue(columnKey, i);\n }\n });\n // data for labels, annotations and dendrograms by Y\n additionalDataColumnsY.forEach(columnKey => {\n const isAddedColumn = typeof result.meta.yDataByKeys[columnKey] !== 'undefined';\n const isAddedValue = isAddedColumn && typeof result.meta.yDataByKeys[columnKey][y] !== 'undefined';\n if (!isAddedColumn) {\n result.meta.yDataByKeys[columnKey] = {};\n }\n if (isAddedValue && result.meta.yDataByKeys[columnKey][y] !== data.getColumnValue(columnKey, i)) {\n throw Error(`More than 1 value for y = ${y} and column = ${columnKey}`);\n }\n if (!isAddedValue) {\n result.meta.yDataByKeys[columnKey][y] = data.getColumnValue(columnKey, i);\n }\n });\n result.facets[facetKey].cells[x][y] = {\n isCell: true,\n idx: i,\n id: `${x}_${y}`,\n x,\n y,\n value: values,\n normalizedValue: values,\n };\n\n updateValueExtent(result, result.facets[facetKey].cells[x][y]);\n }\n\n result.meta.facetKeys = result.meta.facetKeys.filter((key) => result.facets[key]); // filter only used;\n\n // make uniq x, y, x-group and y-group keys\n result.meta.facetKeys.forEach(facetKey => {\n const facet = result.facets[facetKey];\n const uniqueXKeys = lodash.uniq(facet.xKeys);\n const uniqueYKeys = lodash.uniq(facet.yKeys);\n facet.xKeys = keysOrder[xColumn.value] ? lodash.intersection(keysOrder[xColumn.value], uniqueXKeys) : uniqueXKeys;\n facet.yKeys = keysOrder[yColumn.value] ? lodash.intersection(keysOrder[yColumn.value], uniqueYKeys) : uniqueYKeys;\n xGroupKeys.forEach(xGroupKey => {\n result.facets[facetKey].xKeysByGroups[xGroupKey] = lodash.intersection(\n facet.xKeys,\n result.facets[facetKey].xKeysByGroups[xGroupKey]\n );\n });\n yGroupKeys.forEach(yGroupKey => {\n result.facets[facetKey].yKeysByGroups[yGroupKey] = lodash.intersection(\n facet.yKeys,\n result.facets[facetKey].yKeysByGroups[yGroupKey]\n );\n });\n });\n\n applyAggregation(result, aggregation, additionalDataColumnsX, additionalDataColumnsY, annotations);\n applyNormalization(result, normalizationBySource);\n\n // every facet may contain not all of available keys, but for shared axes it is necessary to have all of them\n result.meta.xKeysByGroups = result.meta.xGroupKeys.reduce((res: Record<string, string[]>, xGroupKey) => {\n const existingXKeys = sortByLabels(lodash.uniq(\n lodash.flatten(result.meta.facetKeys.map(facetKey => result.facets[facetKey].xKeysByGroups[xGroupKey]))\n ), xAxis.sorting, result.meta.xLabels);\n res[xGroupKey] = keysOrder[xColumn.value] ? lodash.intersection(keysOrder[xColumn.value], existingXKeys) : existingXKeys;\n return res;\n }, {});\n result.meta.xKeys = result.meta.xGroupKeys.reduce((res: string[], xGroupKey: string) => {\n res = res.concat(result.meta.xKeysByGroups[xGroupKey]);\n return res;\n }, []);\n\n result.meta.yKeysByGroups = result.meta.yGroupKeys.reduce((res: Record<string, string[]>, yGroupKey) => {\n const existingYKeys = sortByLabels(lodash.uniq(\n lodash.flatten(result.meta.facetKeys.map(facetKey => result.facets[facetKey].yKeysByGroups[yGroupKey]))\n ), yAxis.sorting, result.meta.yLabels);\n res[yGroupKey] = keysOrder[yColumn.value] ? lodash.intersection(keysOrder[yColumn.value], existingYKeys) : existingYKeys;\n return res;\n }, {});\n result.meta.yKeys = result.meta.yGroupKeys.reduce((res: string[], yGroupKey: string) => {\n res = res.concat(result.meta.yKeysByGroups[yGroupKey]);\n return res;\n }, []);\n\n for (const valueSource of result.meta.valueSources) {\n // avoid render errors on empty data\n if (result.meta.valueExtent[valueSource][0] === Infinity) {\n result.meta.valueExtent[valueSource][0] = 0;\n }\n if (result.meta.valueExtent[valueSource][1] === -Infinity) {\n result.meta.valueExtent[valueSource][1] = 0;\n }\n }\n\n result.meta.xLabels['null'] = xColumn.nullValueLabel ?? 'NA';\n result.meta.yLabels['null'] = yColumn.nullValueLabel ?? 'NA';\n result.meta.xGroupLabels['null'] = xGroupBy.map(column => column.nullValueLabel ?? 'NA').join(', ');\n result.meta.yGroupLabels['null'] = yGroupBy.map(column => column.nullValueLabel ?? 'NA').join(', ');\n return result;\n}"],"names":["normalizeByStd","values","stdValue","deviation","meanValue","mean","v","normalizeByMinMax","min","max","extent","getNormalizationFn","method","aggregateNumeric","res","valuesSorted","a","b","quantileSorted","sum","exhaustive","aggregateString","list","getKeysCombinations","keysLists","result","keys","nextResult","key","resultItem","sortByLabels","arr","direction","labels","applyAggregation","aggregation","additionalDataColumnsX","additionalDataColumnsY","annotations","valueExtent","r","facetKey","xKeys","yKeys","cells","xKeysByGroups","yKeysByGroups","xGroups","xKey","yGroups","yKey","xNewKeys","yNewKeys","xGroupKey","yGroupKey","valuesBySources","valueSource","cellValue","_c","_b","_a","_d","value","cell","columnKey","annotation","updateValueExtent","applyNormalization","normalizationBySources","normalization","cellKeys","groupKeys","cellGetter","cellKey","groupKey","normalize","fillCellsData","data","xColumn","yColumn","valueColumns","facetBy","xGroupBy","yGroupBy","facetSettings","dendrogramX","dendrogramY","normalizationBySource","NAValueAs","keysOrder","xAxis","yAxis","facetKeysLists","column","xGroupKeysLists","yGroupKeysLists","facetKeysCombinations","xGroupKeysCombinations","yGroupKeysCombinations","getFacetStringKey","facetKeys","getFacetOrGroupKey","facetKeysSet","xGroupKeys","yGroupKeys","facetLabels","getFacetLabels","index","xLabelsSource","yLabelsSource","annotationColumnsX","item","annotationColumnsY","dendrogramXColumns","dendrogramYColumns","lodash","i","xGroupLabel","yGroupLabel","x","y","xLabelsSourceValue","yLabelsSourceValue","isAddedColumn","isAddedValue","facet","uniqueXKeys","uniqueYKeys","existingXKeys","existingYKeys"],"mappings":"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"}
|
|
@@ -4,4 +4,5 @@ import { HeatmapSettingsImpl } from './HeatmapSettingsImpl';
|
|
|
4
4
|
import { Cell, GroupedCellsData } from './fillCellsData';
|
|
5
5
|
export type CellHeatmap = Cell<'dataSource'>;
|
|
6
6
|
export type GroupedCellsHeatmap = GroupedCellsData<'dataSource'>;
|
|
7
|
-
export declare function getCells(data: DataFrame, xColumn: ColumnName, yColumn: ColumnName, valueColumns: Record<string, ColumnName>, facetBy: ColumnName[], xGroupBy: ColumnName[], yGroupBy: ColumnName[], annotations: HeatmapSettingsImpl['annotations'], dendrogramX: HeatmapSettingsImpl['dendrogramX'], dendrogramY: HeatmapSettingsImpl['dendrogramY'], normalization: HeatmapSettingsImpl['normalization'], NAValueAs: HeatmapSettingsImpl['NAValueAs'], keysOrder: HeatmapSettingsImpl['keysOrder'], xAxis: HeatmapSettingsImpl['chartSettings']['xAxis'], yAxis: HeatmapSettingsImpl['chartSettings']['yAxis'], aggregation: HeatmapSettingsImpl['aggregation']): GroupedCellsHeatmap;
|
|
7
|
+
export declare function getCells(data: DataFrame, xColumn: ColumnName, yColumn: ColumnName, valueColumns: Record<string, ColumnName>, facetBy: ColumnName[], xGroupBy: ColumnName[], yGroupBy: ColumnName[], facetSettings: HeatmapSettingsImpl['facetSettings'], annotations: HeatmapSettingsImpl['annotations'], dendrogramX: HeatmapSettingsImpl['dendrogramX'], dendrogramY: HeatmapSettingsImpl['dendrogramY'], normalization: HeatmapSettingsImpl['normalization'], NAValueAs: HeatmapSettingsImpl['NAValueAs'], keysOrder: HeatmapSettingsImpl['keysOrder'], xAxis: HeatmapSettingsImpl['chartSettings']['xAxis'], yAxis: HeatmapSettingsImpl['chartSettings']['yAxis'], aggregation: HeatmapSettingsImpl['aggregation']): GroupedCellsHeatmap;
|
|
8
|
+
//# sourceMappingURL=getCells.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCells.d.ts","sourceRoot":"","sources":["../../src/heatmap/getCells.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAG9D,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,CAAA;AAC5C,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;AA4BjE,wBAAgB,QAAQ,CACpB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACxC,OAAO,EAAE,UAAU,EAAE,EACrB,QAAQ,EAAE,UAAU,EAAE,EACtB,QAAQ,EAAE,UAAU,EAAE,EACtB,aAAa,EAAE,mBAAmB,CAAC,eAAe,CAAC,EACnD,WAAW,EAAE,mBAAmB,CAAC,aAAa,CAAC,EAC/C,WAAW,EAAE,mBAAmB,CAAC,aAAa,CAAC,EAC/C,WAAW,EAAE,mBAAmB,CAAC,aAAa,CAAC,EAC/C,aAAa,EAAE,mBAAmB,CAAC,eAAe,CAAC,EACnD,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,EAC3C,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,EAC3C,KAAK,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EACpD,KAAK,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EACpD,WAAW,EAAE,mBAAmB,CAAC,aAAa,CAAC,GAChD,mBAAmB,CAkBrB"}
|
package/dist/heatmap/getCells.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { fillCellsData as
|
|
2
|
-
function
|
|
1
|
+
import { fillCellsData as d } from "./fillCellsData.js";
|
|
2
|
+
function m() {
|
|
3
3
|
return {
|
|
4
4
|
meta: {
|
|
5
5
|
valueSources: ["dataSource"],
|
|
@@ -24,9 +24,9 @@ function d() {
|
|
|
24
24
|
facets: {}
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
|
-
function
|
|
28
|
-
const e =
|
|
29
|
-
return
|
|
27
|
+
function L(a, y, s, t, u, r, o, l, n, p, K, c, f, x, G, i, b) {
|
|
28
|
+
const e = m();
|
|
29
|
+
return d(
|
|
30
30
|
e,
|
|
31
31
|
a,
|
|
32
32
|
y,
|
|
@@ -38,15 +38,16 @@ function B(a, y, s, t, u, r, o, l, n, p, K, c, f, x, G, i) {
|
|
|
38
38
|
l,
|
|
39
39
|
n,
|
|
40
40
|
p,
|
|
41
|
-
|
|
42
|
-
c,
|
|
41
|
+
K,
|
|
42
|
+
{ dataSource: c },
|
|
43
43
|
f,
|
|
44
44
|
x,
|
|
45
45
|
G,
|
|
46
|
-
i
|
|
46
|
+
i,
|
|
47
|
+
b
|
|
47
48
|
), e;
|
|
48
49
|
}
|
|
49
50
|
export {
|
|
50
|
-
|
|
51
|
+
L as getCells
|
|
51
52
|
};
|
|
52
53
|
//# sourceMappingURL=getCells.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCells.js","sources":["../../src/heatmap/getCells.ts"],"sourcesContent":["import type { DataFrame } from '../DataFrame';\nimport type { ColumnName } from '../types';\nimport type { HeatmapSettingsImpl } from './HeatmapSettingsImpl';\nimport type { Cell, GroupedCellsData } from './fillCellsData';\nimport { fillCellsData } from './fillCellsData';\n\nexport type CellHeatmap = Cell<'dataSource'>\nexport type GroupedCellsHeatmap = GroupedCellsData<'dataSource'>;\n\nfunction createEmptyGroupedCells(): GroupedCellsHeatmap {\n return {\n meta: {\n valueSources: ['dataSource'],\n facetKeys: [],\n xKeys: [],\n yKeys: [],\n xGroupKeys: [],\n yGroupKeys: [],\n xKeysByGroups: {},\n yKeysByGroups: {},\n xLabels: {},\n yLabels: {},\n xGroupLabels: {},\n yGroupLabels: {},\n xDataByKeys: {},\n yDataByKeys: {},\n facetKeyValues: {},\n xGroupKeyValues: {},\n yGroupKeyValues: {},\n valueExtent: { dataSource: [Infinity, -Infinity] },\n },\n facets: {},\n };\n}\n\nexport function getCells(\n data: DataFrame,\n xColumn: ColumnName,\n yColumn: ColumnName,\n valueColumns: Record<string, ColumnName>,\n facetBy: ColumnName[],\n xGroupBy: ColumnName[],\n yGroupBy: ColumnName[],\n annotations: HeatmapSettingsImpl['annotations'],\n dendrogramX: HeatmapSettingsImpl['dendrogramX'],\n dendrogramY: HeatmapSettingsImpl['dendrogramY'],\n normalization: HeatmapSettingsImpl['normalization'],\n NAValueAs: HeatmapSettingsImpl['NAValueAs'],\n keysOrder: HeatmapSettingsImpl['keysOrder'],\n xAxis: HeatmapSettingsImpl['chartSettings']['xAxis'],\n yAxis: HeatmapSettingsImpl['chartSettings']['yAxis'],\n aggregation: HeatmapSettingsImpl['aggregation'],\n): GroupedCellsHeatmap {\n const result: GroupedCellsHeatmap = createEmptyGroupedCells();\n fillCellsData(\n result,\n data,\n xColumn, yColumn, valueColumns,\n facetBy, xGroupBy, yGroupBy,\n annotations,\n dendrogramX, dendrogramY,\n {dataSource: normalization},\n NAValueAs,\n keysOrder,\n xAxis,\n yAxis,\n aggregation\n );\n return result;\n}\n"],"names":["createEmptyGroupedCells","getCells","data","xColumn","yColumn","valueColumns","facetBy","xGroupBy","yGroupBy","annotations","dendrogramX","dendrogramY","normalization","NAValueAs","keysOrder","xAxis","yAxis","aggregation","result","fillCellsData"],"mappings":";AASA,SAASA,IAA+C;AACpD,SAAO;AAAA,IACH,MAAM;AAAA,MACF,cAAc,CAAC,YAAY;AAAA,MAC3B,WAAW,CAAA;AAAA,MACX,OAAO,CAAA;AAAA,MACP,OAAO,CAAA;AAAA,MACP,YAAY,CAAA;AAAA,MACZ,YAAY,CAAA;AAAA,MACZ,eAAe,CAAA;AAAA,MACf,eAAe,CAAA;AAAA,MACf,SAAS,CAAA;AAAA,MACT,SAAS,CAAA;AAAA,MACT,cAAc,CAAA;AAAA,MACd,cAAc,CAAA;AAAA,MACd,aAAa,CAAA;AAAA,MACb,aAAa,CAAA;AAAA,MACb,gBAAgB,CAAA;AAAA,MAChB,iBAAiB,CAAA;AAAA,MACjB,iBAAiB,CAAA;AAAA,MACjB,aAAa,EAAE,YAAY,CAAC,OAAU,MAAS,EAAA;AAAA,IAAE;AAAA,IAErD,QAAQ,CAAA;AAAA,EAAC;AAEjB;AAEO,SAASC,EACZC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACmB;AACnB,QAAMC,
|
|
1
|
+
{"version":3,"file":"getCells.js","sources":["../../src/heatmap/getCells.ts"],"sourcesContent":["import type { DataFrame } from '../DataFrame';\nimport type { ColumnName } from '../types';\nimport type { HeatmapSettingsImpl } from './HeatmapSettingsImpl';\nimport type { Cell, GroupedCellsData } from './fillCellsData';\nimport { fillCellsData } from './fillCellsData';\n\nexport type CellHeatmap = Cell<'dataSource'>\nexport type GroupedCellsHeatmap = GroupedCellsData<'dataSource'>;\n\nfunction createEmptyGroupedCells(): GroupedCellsHeatmap {\n return {\n meta: {\n valueSources: ['dataSource'],\n facetKeys: [],\n xKeys: [],\n yKeys: [],\n xGroupKeys: [],\n yGroupKeys: [],\n xKeysByGroups: {},\n yKeysByGroups: {},\n xLabels: {},\n yLabels: {},\n xGroupLabels: {},\n yGroupLabels: {},\n xDataByKeys: {},\n yDataByKeys: {},\n facetKeyValues: {},\n xGroupKeyValues: {},\n yGroupKeyValues: {},\n valueExtent: { dataSource: [Infinity, -Infinity] },\n },\n facets: {},\n };\n}\n\nexport function getCells(\n data: DataFrame,\n xColumn: ColumnName,\n yColumn: ColumnName,\n valueColumns: Record<string, ColumnName>,\n facetBy: ColumnName[],\n xGroupBy: ColumnName[],\n yGroupBy: ColumnName[],\n facetSettings: HeatmapSettingsImpl['facetSettings'],\n annotations: HeatmapSettingsImpl['annotations'],\n dendrogramX: HeatmapSettingsImpl['dendrogramX'],\n dendrogramY: HeatmapSettingsImpl['dendrogramY'],\n normalization: HeatmapSettingsImpl['normalization'],\n NAValueAs: HeatmapSettingsImpl['NAValueAs'],\n keysOrder: HeatmapSettingsImpl['keysOrder'],\n xAxis: HeatmapSettingsImpl['chartSettings']['xAxis'],\n yAxis: HeatmapSettingsImpl['chartSettings']['yAxis'],\n aggregation: HeatmapSettingsImpl['aggregation'],\n): GroupedCellsHeatmap {\n const result: GroupedCellsHeatmap = createEmptyGroupedCells();\n fillCellsData(\n result,\n data,\n xColumn, yColumn, valueColumns,\n facetBy, xGroupBy, yGroupBy,\n facetSettings,\n annotations,\n dendrogramX, dendrogramY,\n {dataSource: normalization},\n NAValueAs,\n keysOrder,\n xAxis,\n yAxis,\n aggregation\n );\n return result;\n}\n"],"names":["createEmptyGroupedCells","getCells","data","xColumn","yColumn","valueColumns","facetBy","xGroupBy","yGroupBy","facetSettings","annotations","dendrogramX","dendrogramY","normalization","NAValueAs","keysOrder","xAxis","yAxis","aggregation","result","fillCellsData"],"mappings":";AASA,SAASA,IAA+C;AACpD,SAAO;AAAA,IACH,MAAM;AAAA,MACF,cAAc,CAAC,YAAY;AAAA,MAC3B,WAAW,CAAA;AAAA,MACX,OAAO,CAAA;AAAA,MACP,OAAO,CAAA;AAAA,MACP,YAAY,CAAA;AAAA,MACZ,YAAY,CAAA;AAAA,MACZ,eAAe,CAAA;AAAA,MACf,eAAe,CAAA;AAAA,MACf,SAAS,CAAA;AAAA,MACT,SAAS,CAAA;AAAA,MACT,cAAc,CAAA;AAAA,MACd,cAAc,CAAA;AAAA,MACd,aAAa,CAAA;AAAA,MACb,aAAa,CAAA;AAAA,MACb,gBAAgB,CAAA;AAAA,MAChB,iBAAiB,CAAA;AAAA,MACjB,iBAAiB,CAAA;AAAA,MACjB,aAAa,EAAE,YAAY,CAAC,OAAU,MAAS,EAAA;AAAA,IAAE;AAAA,IAErD,QAAQ,CAAA;AAAA,EAAC;AAEjB;AAEO,SAASC,EACZC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACmB;AACnB,QAAMC,IAA8BnB,EAAA;AACpC,SAAAoB;AAAA,IACID;AAAA,IACAjB;AAAA,IACAC;AAAA,IAASC;AAAA,IAASC;AAAA,IAClBC;AAAA,IAASC;AAAA,IAAUC;AAAA,IACnBC;AAAA,IACAC;AAAA,IACAC;AAAA,IAAaC;AAAA,IACb,EAAC,YAAYC,EAAA;AAAA,IACbC;AAAA,IACAC;AAAA,IACAC;AAAA,IACAC;AAAA,IACAC;AAAA,EAAA,GAEGC;AACX;"}
|
|
@@ -83,3 +83,4 @@ export declare function getClustersApproximate(dataValues: number[][], distanceT
|
|
|
83
83
|
* @returns Root cluster containing the complete hierarchy
|
|
84
84
|
*/
|
|
85
85
|
export declare function getClusters(dataValues: number[][], distanceType?: DendrogramDistance, linkageType?: DendrogramLinkage): Cluster;
|
|
86
|
+
//# sourceMappingURL=getClusters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getClusters.d.ts","sourceRoot":"","sources":["../../src/heatmap/getClusters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAMtE;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,UAOxD;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,UAEjD;AAID;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,SAAU,MAAM,EAAE,QAAQ,MAAM,EAAE,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,WAS3G,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,SAAU,MAAM,EAAE,QAAQ,MAAM,EAAE,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,WAQ5G,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,SAAU,MAAM,EAAE,QAAQ,MAAM,EAAE,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,WAQ1G,CAAC;AAiCF;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAiBhE;AAKD,wBAAgB,sBAAsB,CAClC,UAAU,EAAE,MAAM,EAAE,EAAE,EACtB,YAAY,GAAE,kBAAgC,EAC9C,WAAW,GAAE,iBAA6B,GAC3C,OAAO,CAqBT;AAwFD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,GAAE,kBAAgC,EAAE,WAAW,GAAE,iBAA6B,GAAG,OAAO,CA6FvJ"}
|
|
@@ -7,3 +7,4 @@ export type DendrogramsData = Record<string, {
|
|
|
7
7
|
hierarchyByGroupY: Record<string, HierarchyNode<Cluster>>;
|
|
8
8
|
}>;
|
|
9
9
|
export declare function getDendrograms(groupedCellsData: GroupedCellsHeatmap, dendrogramX: HeatmapSettingsImpl['dendrogramX'], dendrogramY: HeatmapSettingsImpl['dendrogramY']): Promise<DendrogramsData>;
|
|
10
|
+
//# sourceMappingURL=getDendrograms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDendrograms.d.ts","sourceRoot":"","sources":["../../src/heatmap/getDendrograms.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAMlD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE;IACzC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;CAC7D,CAAC,CAAA;AAIF,wBAAsB,cAAc,CAChC,gBAAgB,EAAE,mBAAmB,EACrC,WAAW,EAAE,mBAAmB,CAAC,aAAa,CAAC,EAC/C,WAAW,EAAE,mBAAmB,CAAC,aAAa,CAAC,GAChD,OAAO,CAAC,eAAe,CAAC,CA6D1B"}
|
package/dist/heatmap/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/heatmap/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAmB,KAAK,SAAS,EAAuB,KAAK,oBAAoB,EAAE,KAAK,eAAe,EAAe,MAAM,UAAU,CAAC;AAE9I,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAK5D,qBAAa,YAAa,SAAQ,aAAa;IAC3C,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,aAAa,gBAAuB;IAEpC,mBAAmB,EAAE,CAAC,CAAC,EAAC,OAAO,KAAK,IAAI,CAAQ;IAChD,eAAe,EAAE,CAAC,CAAC,EAAC,OAAO,KAAK,IAAI,CAAQ;IAE5C,cAAc,EAAE;QACZ,gBAAgB,EAAE,mBAAmB,CAAC;QACtC,eAAe,EAAE,eAAe,CAAC;QACjC,cAAc,EAAE,SAAS,EAAE,CAAC;KAC/B,GAAG,IAAI,CAAQ;IAEhB,gCAAgC,UAAS;gBAE7B,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,CAAC,EAAC,oBAAoB;IAU3F,KAAK,CAAC,IAAI,EAAE,WAAW;IAgBvB,OAAO;IAIP,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe;IA0BhE,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAIhD,MAAM,IAAI,MAAM;IAKhB,mCAAmC,CAAC,YAAY,EAAE,mBAAmB,EAAE,QAAQ,EAAE,mBAAmB;IAkEpG,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAU9D,WAAW;IA8DjB,gBAAgB;IAIhB,YAAY;CAkDf"}
|