@milaboratories/miplots4 1.0.172 → 1.0.174
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 +1 -0
- package/dist/DataFrame.d.ts.map +1 -0
- package/dist/MiPlots.d.ts +1 -0
- package/dist/MiPlots.d.ts.map +1 -0
- package/dist/bubble/BubbleSettingsImpl.d.ts +1 -0
- package/dist/bubble/BubbleSettingsImpl.d.ts.map +1 -0
- 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 +1 -0
- package/dist/bubble/getGroupedCellsData.d.ts.map +1 -0
- package/dist/bubble/index.d.ts +1 -0
- package/dist/bubble/index.d.ts.map +1 -0
- 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/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 +1 -0
- package/dist/discrete/DiscreteSettingsImpl.d.ts.map +1 -0
- 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 +129 -123
- 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 +1 -0
- package/dist/heatmap/HeatmapSettingsImpl.d.ts.map +1 -0
- 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 +1 -0
- package/dist/heatmap/fillCellsData.d.ts.map +1 -0
- package/dist/heatmap/fillCellsData.js +106 -106
- package/dist/heatmap/fillCellsData.js.map +1 -1
- package/dist/heatmap/getCells.d.ts +1 -0
- package/dist/heatmap/getCells.d.ts.map +1 -0
- 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/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 +1 -0
- package/dist/histogram/HistogramSettingsImpl.d.ts.map +1 -0
- 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 +1 -0
- package/dist/histogram/getHistogramData.d.ts.map +1 -0
- package/dist/histogram/getHistogramData.js +46 -46
- package/dist/histogram/getHistogramData.js.map +1 -1
- package/dist/histogram/index.d.ts +1 -0
- package/dist/histogram/index.d.ts.map +1 -0
- package/dist/histogram/index.js +61 -61
- package/dist/histogram/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/scatterplot/ChartRenderer.d.ts +1 -0
- package/dist/scatterplot/ChartRenderer.d.ts.map +1 -0
- package/dist/scatterplot/ScatterplotSettingsImpl.d.ts +1 -0
- package/dist/scatterplot/ScatterplotSettingsImpl.d.ts.map +1 -0
- 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 +1 -0
- package/dist/scatterplot/dots.d.ts.map +1 -0
- package/dist/scatterplot/getLayersData.d.ts +1 -0
- package/dist/scatterplot/getLayersData.d.ts.map +1 -0
- package/dist/scatterplot/index.d.ts +1 -0
- package/dist/scatterplot/index.d.ts.map +1 -0
- package/dist/scatterplot/index.js +74 -71
- 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 +43 -0
- package/dist/types/bubble.d.ts.map +1 -0
- 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 +104 -0
- package/dist/types/dendro.d.ts.map +1 -0
- package/dist/types/discrete.d.ts +168 -0
- package/dist/types/discrete.d.ts.map +1 -0
- package/dist/types/heatmap.d.ts +160 -0
- package/dist/types/heatmap.d.ts.map +1 -0
- package/dist/types/histogram.d.ts +23 -0
- package/dist/types/histogram.d.ts.map +1 -0
- 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 +183 -0
- package/dist/types/scatterplot.d.ts.map +1 -0
- 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/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 +1 -0
- 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';\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 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","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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"}
|
|
@@ -5,3 +5,4 @@ import { Cell, GroupedCellsData } from './fillCellsData';
|
|
|
5
5
|
export type CellHeatmap = Cell<'dataSource'>;
|
|
6
6
|
export type GroupedCellsHeatmap = GroupedCellsData<'dataSource'>;
|
|
7
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;
|
|
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,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,CAiBrB"}
|
|
@@ -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,EAA6C,KAAK,oBAAoB,EAAE,KAAK,eAAe,EAAe,MAAM,UAAU,CAAC;AAEpK,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;IAiEpG,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAU9D,WAAW;IAqEjB,gBAAgB;IAIhB,YAAY;CAkDf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculateAnnotationTitleSizes.d.ts","sourceRoot":"","sources":["../../../src/heatmap/utils/calculateAnnotationTitleSizes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAalE,wBAAgB,6BAA6B,CACzC,WAAW,EAAE,mBAAmB,CAAC,aAAa,CAAC,EAC/C,UAAU,EAAE,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC,EAAE,EACnD,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO;;;;;EA6BnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculateCaptionTails.d.ts","sourceRoot":"","sources":["../../../src/heatmap/utils/calculateCaptionTails.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAuClE,wBAAgB,qBAAqB,CACjC,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,mBAAmB,CAAC,eAAe,CAAC,EACnD,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE;IACH,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B,EACD,YAAY,EAAE,mBAAmB,EACjC,YAAY,EAAE,YAAY,GAC3B;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAC,CAsF9C"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { CaptionsSizes } from '../components/types';
|
|
2
2
|
import { HeatmapSettingsImpl } from '../HeatmapSettingsImpl';
|
|
3
3
|
export declare function calculateChartSideElementSizes(xAxis: HeatmapSettingsImpl['chartSettings']['xAxis'], yAxis: HeatmapSettingsImpl['chartSettings']['yAxis'], captionsSizes: CaptionsSizes, annotations: HeatmapSettingsImpl['annotations'], dendrogramX: HeatmapSettingsImpl['dendrogramX'], dendrogramY: HeatmapSettingsImpl['dendrogramY'], chartSides: ('left' | 'right' | 'top' | 'bottom')[], sharedX: boolean, sharedY: boolean, facetKeys: string[], xGroupKeys: string[], yGroupKeys: string[], stepX: number, stepY: number): Record<string, Record<string, number>>;
|
|
4
|
+
//# sourceMappingURL=calculateChartSideElementSizes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculateChartSideElementSizes.d.ts","sourceRoot":"","sources":["../../../src/heatmap/utils/calculateChartSideElementSizes.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAEhE,wBAAgB,8BAA8B,CAC1C,KAAK,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EACpD,KAAK,EAAE,mBAAmB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,EACpD,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,mBAAmB,CAAC,aAAa,CAAC,EAC/C,WAAW,EAAE,mBAAmB,CAAC,aAAa,CAAC,EAC/C,WAAW,EAAE,mBAAmB,CAAC,aAAa,CAAC,EAC/C,UAAU,EAAE,CAAC,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC,EAAE,EACnD,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,MAAM,EAAE,EACnB,UAAU,EAAE,MAAM,EAAE,EACpB,UAAU,EAAE,MAAM,EAAE,EACpB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACd,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAkExC"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import { ChartSideElementsBBoxes } from '../components/types';
|
|
2
2
|
export declare function calculateSideElementsBBoxes(sideElementSizes: Record<string, Record<string, number>>, width: number, height: number): ChartSideElementsBBoxes;
|
|
3
|
+
//# sourceMappingURL=calculateSideElementsBBoxes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculateSideElementsBBoxes.d.ts","sourceRoot":"","sources":["../../../src/heatmap/utils/calculateSideElementsBBoxes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,uBAAuB,EAAC,MAAM,qBAAqB,CAAC;AAGnF,wBAAgB,2BAA2B,CACvC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACxD,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACf,uBAAuB,CAmDzB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export declare function createDiscreteColorScale(colors: string[], discreteValues: string[]): import('d3-scale').ScaleOrdinal<string, string, string>;
|
|
2
2
|
export declare function createDiscreteRoundColorScale(colors: string[], discreteValues: string[]): import('d3-scale').ScaleOrdinal<string, string, string>;
|
|
3
3
|
export declare function createContinuousColorScale(colors: string[], minValue: number, maxValue: number, point0: number, point50: number, point100: number): import('d3-scale').ScaleLinear<string, string, never>;
|
|
4
|
+
//# sourceMappingURL=createColorScales.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createColorScales.d.ts","sourceRoot":"","sources":["../../../src/heatmap/utils/createColorScales.ts"],"names":[],"mappings":"AAWA,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,2DAOlF;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,2DAGvF;AAGD,wBAAgB,0BAA0B,CACtC,MAAM,EAAE,MAAM,EAAE,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,yDAmBnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/heatmap/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,iCAAiC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartRenderer.d.ts","sourceRoot":"","sources":["../../src/histogram/ChartRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HistogramSettingsImpl.d.ts","sourceRoot":"","sources":["../../src/histogram/HistogramSettingsImpl.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,3 +28,4 @@ interface ChartProps {
|
|
|
28
28
|
}
|
|
29
29
|
export declare function Chart({ facetKey, width, height, dimensions, scales, xAxis, yAxis, frameType, histogramData, facetSettings, captionsSizes, facetTitle, layers, aesColorGetter, groupingDirection, groupingStack, groupingLabels, chartSizes, margins, tooltipsContainer, tooltipsData }: ChartProps): import("react/jsx-runtime").JSX.Element;
|
|
30
30
|
export {};
|
|
31
|
+
//# sourceMappingURL=Chart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Chart.d.ts","sourceRoot":"","sources":["../../../src/histogram/components/Chart.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,aAAa,CAAC;AAGzD,OAAO,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,KAAK,EACR,SAAS,EAAE,aAAa,EACxB,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,OAAO,EACV,MAAM,SAAS,CAAC;AA6BjB,UAAU,UAAU;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,mBAAmB,CAAC;IAChC,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,qBAAqB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC;IACvD,KAAK,EAAE,qBAAqB,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC;IACvD,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,EAAE,qBAAqB,CAAC,eAAe,CAAC,CAAC;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,EAAE,oBAAoB,CAAC;IACpC,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,cAAc,EAAE,SAAS,CAAC;IAC1B,iBAAiB,EAAE,qBAAqB,CAAC,mBAAmB,CAAC,CAAC;IAC9D,aAAa,EAAE,qBAAqB,CAAC,eAAe,CAAC,CAAC;IACtD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;CACvC;AAED,wBAAgB,KAAK,CAAC,EAClB,QAAQ,EACR,KAAK,EACL,MAAM,EACN,UAAU,EACV,MAAM,EACN,KAAK,EACL,KAAK,EACL,SAAS,EACT,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,MAAM,EACN,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,UAAU,EACV,OAAO,EACP,iBAAiB,EACjB,YAAY,EACf,EAAE,UAAU,2CA8JZ"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { j as t } from "../../_virtual/jsx-runtime.js";
|
|
2
2
|
import { r as P } from "../../_virtual/index.js";
|
|
3
3
|
import { r as Q } from "../../_virtual/index2.js";
|
|
4
|
-
import { ContinuousAxis as
|
|
4
|
+
import { ContinuousAxis as I } from "../../common/ContinuousAxis.js";
|
|
5
5
|
import { ContinuousGrid as V } from "../../common/ContinuousGrid.js";
|
|
6
6
|
import { Tooltip as S } from "../../common/Tooltip.js";
|
|
7
7
|
import { BLACK as v } from "../../constants.js";
|
|
@@ -10,121 +10,121 @@ import { DEFAULT_TICKS_SIZE as k, FACET_TITLE_LINE as T, TITLE_LINE as D } from
|
|
|
10
10
|
function ee(e) {
|
|
11
11
|
return typeof e == "string" ? e : e.value;
|
|
12
12
|
}
|
|
13
|
-
function te(e,
|
|
13
|
+
function te(e, l) {
|
|
14
14
|
const c = [
|
|
15
15
|
`Amount: ${e.count}`,
|
|
16
16
|
`(from ${W(e.x)}, to ${W(e.x + e.width)})`
|
|
17
17
|
];
|
|
18
|
-
return e.groupingKey !== "null" && c.push(`${
|
|
18
|
+
return e.groupingKey !== "null" && c.push(`${l[e.groupingKey] ?? e.groupingKey}`), c;
|
|
19
19
|
}
|
|
20
|
-
function X(e,
|
|
21
|
-
return
|
|
20
|
+
function X(e, l, c, o) {
|
|
21
|
+
return l === "vertical" ? e : e + c * o;
|
|
22
22
|
}
|
|
23
|
-
function _(e,
|
|
24
|
-
return
|
|
23
|
+
function _(e, l, c, o) {
|
|
24
|
+
return l(c === "vertical" ? o === "straight" ? e.y.straight : e.y.reverse : e.count);
|
|
25
25
|
}
|
|
26
26
|
function fe({
|
|
27
27
|
facetKey: e,
|
|
28
|
-
width:
|
|
28
|
+
width: l,
|
|
29
29
|
height: c,
|
|
30
30
|
dimensions: o,
|
|
31
31
|
scales: r,
|
|
32
32
|
xAxis: x,
|
|
33
33
|
yAxis: a,
|
|
34
|
-
frameType:
|
|
34
|
+
frameType: $,
|
|
35
35
|
histogramData: j,
|
|
36
|
-
facetSettings:
|
|
36
|
+
facetSettings: u,
|
|
37
37
|
captionsSizes: oe,
|
|
38
38
|
facetTitle: E,
|
|
39
39
|
layers: z,
|
|
40
40
|
aesColorGetter: M,
|
|
41
|
-
groupingDirection:
|
|
41
|
+
groupingDirection: K,
|
|
42
42
|
groupingStack: f,
|
|
43
43
|
groupingLabels: Y,
|
|
44
|
-
chartSizes:
|
|
45
|
-
margins:
|
|
44
|
+
chartSizes: m,
|
|
45
|
+
margins: p,
|
|
46
46
|
tooltipsContainer: w,
|
|
47
47
|
tooltipsData: n
|
|
48
48
|
}) {
|
|
49
|
-
const [C, G] = P.useState(), { padding:
|
|
50
|
-
left:
|
|
51
|
-
right:
|
|
52
|
-
top:
|
|
53
|
-
bottom:
|
|
54
|
-
}, q = C && n.fixed,
|
|
55
|
-
return /* @__PURE__ */ t.jsxs("g", { transform: `translate(${o.left +
|
|
56
|
-
|
|
49
|
+
const [C, G] = P.useState(), { padding: i } = o, H = x.showTicks ? k : 0, N = a.showTicks ? k : 0, O = o.chartEdgeSides.includes("left") || !(u != null && u.sharedY), R = o.chartEdgeSides.includes("bottom") || !(u != null && u.sharedX), U = o.chartEdgeSides.includes("bottom"), L = j.groupingKeys, Z = j.histogramByGroupingKey[L[0]].bins[0], A = r.x(Z.width) - r.x(0), g = f === "vertical" ? A : A / L.length, b = {
|
|
50
|
+
left: p.left + o.left + i.left,
|
|
51
|
+
right: m.totalWidth - (p.left + o.left + i.left),
|
|
52
|
+
top: p.top + o.top + i.top,
|
|
53
|
+
bottom: m.totalHeight - (p.top + o.top + i.top)
|
|
54
|
+
}, q = C && n.fixed, y = !1;
|
|
55
|
+
return /* @__PURE__ */ t.jsxs("g", { transform: `translate(${o.left + i.left},${o.top + i.top})`, children: [
|
|
56
|
+
y,
|
|
57
57
|
E.length && /* @__PURE__ */ t.jsxs("g", { children: [
|
|
58
|
-
|
|
59
|
-
E.map((
|
|
60
|
-
const B = E.length, d = (
|
|
58
|
+
$ === "full" && /* @__PURE__ */ t.jsx("rect", { x: "0", y: -i.top, height: i.top, width: l, fill: "#F7F8FA", stroke: v }),
|
|
59
|
+
E.map((s, h) => {
|
|
60
|
+
const B = E.length, d = (i.top - T * B) / 2;
|
|
61
61
|
return /* @__PURE__ */ t.jsx(
|
|
62
62
|
"text",
|
|
63
63
|
{
|
|
64
64
|
fontSize: "14px",
|
|
65
65
|
fontWeight: "500",
|
|
66
66
|
fill: v,
|
|
67
|
-
x:
|
|
68
|
-
dy: d + T / 2 -
|
|
69
|
-
y:
|
|
67
|
+
x: l / 2,
|
|
68
|
+
dy: d + T / 2 - i.top,
|
|
69
|
+
y: h * T,
|
|
70
70
|
textAnchor: "middle",
|
|
71
71
|
dominantBaseline: "central",
|
|
72
|
-
children:
|
|
72
|
+
children: s
|
|
73
73
|
},
|
|
74
|
-
|
|
74
|
+
h
|
|
75
75
|
);
|
|
76
76
|
})
|
|
77
77
|
] }),
|
|
78
78
|
/* @__PURE__ */ t.jsxs("g", { dominantBaseline: "central", textAnchor: "middle", fontWeight: "500", fontSize: "14px", fill: v, children: [
|
|
79
|
-
U && x.title && /* @__PURE__ */ t.jsx("text", { x:
|
|
80
|
-
|
|
79
|
+
U && x.title && /* @__PURE__ */ t.jsx("text", { x: l / 2, y: c + i.bottom - D / 2, children: ee(x.title) }),
|
|
80
|
+
y
|
|
81
81
|
] }),
|
|
82
82
|
/* @__PURE__ */ t.jsx(
|
|
83
83
|
V,
|
|
84
84
|
{
|
|
85
|
-
width:
|
|
85
|
+
width: l,
|
|
86
86
|
height: c,
|
|
87
87
|
scaleX: r.x,
|
|
88
88
|
scaleY: r.y,
|
|
89
89
|
axisX: x,
|
|
90
90
|
axisY: a,
|
|
91
|
-
frameType:
|
|
91
|
+
frameType: $
|
|
92
92
|
}
|
|
93
93
|
),
|
|
94
94
|
R && /* @__PURE__ */ t.jsxs("g", { transform: `translate(0,${c})`, children: [
|
|
95
|
-
/* @__PURE__ */ t.jsx(
|
|
96
|
-
|
|
95
|
+
/* @__PURE__ */ t.jsx(I, { scale: r.x, orient: "bottom", tickSize: H, hiddenLabels: x.hiddenLabels }),
|
|
96
|
+
y
|
|
97
97
|
] }),
|
|
98
98
|
O && /* @__PURE__ */ t.jsxs("g", { children: [
|
|
99
|
-
/* @__PURE__ */ t.jsx(
|
|
100
|
-
|
|
99
|
+
/* @__PURE__ */ t.jsx(I, { scale: r.y, orient: "left", tickSize: N, hiddenLabels: a.hiddenLabels }),
|
|
100
|
+
y
|
|
101
101
|
] }),
|
|
102
|
-
z.map((
|
|
103
|
-
(
|
|
104
|
-
const J = q && n.selectedData === d,
|
|
102
|
+
z.map((s) => L.map(
|
|
103
|
+
(h, B) => j.histogramByGroupingKey[h].bins.map((d) => {
|
|
104
|
+
const J = q && n.selectedData === d, F = /* @__PURE__ */ t.jsx(
|
|
105
105
|
"rect",
|
|
106
106
|
{
|
|
107
|
-
x: X(r.x(d.x), f, B,
|
|
108
|
-
y: _(d, r.y, f,
|
|
109
|
-
fill: d.indexes.length > 0 ? M(
|
|
110
|
-
stroke:
|
|
111
|
-
width:
|
|
107
|
+
x: X(r.x(d.x), f, B, g),
|
|
108
|
+
y: _(d, r.y, f, K),
|
|
109
|
+
fill: d.indexes.length > 0 ? M(s.aes.fillColor, d.indexes[0], d.count) : "",
|
|
110
|
+
stroke: s.aes.lineColor,
|
|
111
|
+
width: g,
|
|
112
112
|
height: r.y(0) - r.y(d.count),
|
|
113
|
-
opacity:
|
|
113
|
+
opacity: s.aes.opacity ?? 1,
|
|
114
114
|
onMouseOver: () => n.onMouseEnter(d, e),
|
|
115
115
|
onMouseLeave: () => n.onMouseLeave()
|
|
116
116
|
},
|
|
117
|
-
d.x
|
|
117
|
+
`${h}-${d.x}`
|
|
118
118
|
);
|
|
119
|
-
return J ? Q.createPortal(
|
|
119
|
+
return J ? Q.createPortal(F, C) : F;
|
|
120
120
|
})
|
|
121
121
|
)),
|
|
122
|
-
n.fixed && /* @__PURE__ */ t.jsx("rect", { width:
|
|
122
|
+
n.fixed && /* @__PURE__ */ t.jsx("rect", { width: m.chartWidth, height: m.chartHeight, fill: "rgba(255,255,255,0.8)" }),
|
|
123
123
|
/* @__PURE__ */ t.jsx(
|
|
124
124
|
"g",
|
|
125
125
|
{
|
|
126
|
-
ref: (
|
|
127
|
-
|
|
126
|
+
ref: (s) => {
|
|
127
|
+
s && !C && G(s);
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
),
|
|
@@ -132,8 +132,8 @@ function fe({
|
|
|
132
132
|
S,
|
|
133
133
|
{
|
|
134
134
|
content: te(n.selectedData, Y),
|
|
135
|
-
x: X(r.x(n.selectedData.x), f, n.selectedData.groupingKeyIdx,
|
|
136
|
-
y: _(n.selectedData, r.y, f,
|
|
135
|
+
x: X(r.x(n.selectedData.x), f, n.selectedData.groupingKeyIdx, g) + g,
|
|
136
|
+
y: _(n.selectedData, r.y, f, K) + r.y(0) - r.y(n.selectedData.count / 2),
|
|
137
137
|
offset: 0,
|
|
138
138
|
active: !0,
|
|
139
139
|
fixed: n.fixed,
|