@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,19 +1,20 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
import { getFacetStringKey as E } from "../discrete/utils/getFacetStringKey.js";
|
|
2
|
+
import S from "../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/bin.js";
|
|
3
|
+
import d from "../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/max.js";
|
|
4
|
+
import L from "../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/symlog.js";
|
|
5
|
+
const F = (e, a) => {
|
|
6
|
+
const r = Math.min(...a), t = Math.max(...a);
|
|
7
|
+
if (r === t)
|
|
8
|
+
return [r];
|
|
9
|
+
if (e < 2)
|
|
10
|
+
return [(r + t) / 2];
|
|
11
|
+
const s = (t - r) / e, g = [];
|
|
12
|
+
for (let n = 1; n < e; n++)
|
|
13
|
+
g.push(r + s * n);
|
|
14
|
+
return g;
|
|
14
15
|
};
|
|
15
|
-
function
|
|
16
|
-
return
|
|
16
|
+
function V(e, a, r) {
|
|
17
|
+
return e.map((t) => ({
|
|
17
18
|
indexes: t,
|
|
18
19
|
x: t.x0 ?? 0,
|
|
19
20
|
y: {
|
|
@@ -21,63 +22,63 @@ function w(o, i, e) {
|
|
|
21
22
|
reverse: t.length
|
|
22
23
|
},
|
|
23
24
|
count: t.length,
|
|
24
|
-
groupingKey:
|
|
25
|
-
groupingKeyIdx:
|
|
25
|
+
groupingKey: a,
|
|
26
|
+
groupingKeyIdx: r,
|
|
26
27
|
width: (t.x1 ?? 0) - (t.x0 ?? 0)
|
|
27
28
|
}));
|
|
28
29
|
}
|
|
29
|
-
function
|
|
30
|
-
const
|
|
30
|
+
function M(e, a, r, t, s, g, n) {
|
|
31
|
+
const y = F(t, s), o = S().domain(s).thresholds(y).value((c) => e.getColumnValue(r.value, c))(a);
|
|
31
32
|
return {
|
|
32
|
-
bins:
|
|
33
|
-
maxCount:
|
|
33
|
+
bins: V(o, g, n),
|
|
34
|
+
maxCount: d(o, (c) => c.length) ?? 0
|
|
34
35
|
};
|
|
35
36
|
}
|
|
36
|
-
function
|
|
37
|
-
const
|
|
37
|
+
function X(e, a, r, t, s, g, n) {
|
|
38
|
+
const y = F(t, s), o = L().domain(s).range(s), c = y.map((m) => o.invert(m)), l = S().domain(s).thresholds(c).value((m) => e.getColumnValue(r.value, m))(a);
|
|
38
39
|
return {
|
|
39
|
-
bins:
|
|
40
|
-
maxCount:
|
|
40
|
+
bins: V(l, g, n),
|
|
41
|
+
maxCount: d(l, (m) => m.length) ?? 0
|
|
41
42
|
};
|
|
42
43
|
}
|
|
43
|
-
function
|
|
44
|
+
function H(e, a, r, t, s, g) {
|
|
44
45
|
const n = {};
|
|
45
|
-
return
|
|
46
|
-
const
|
|
47
|
-
n[
|
|
48
|
-
groupingKeys:
|
|
46
|
+
return a.forEach((y) => {
|
|
47
|
+
const o = E(y);
|
|
48
|
+
n[o] = {
|
|
49
|
+
groupingKeys: r.map(String),
|
|
49
50
|
histogramByGroupingKey: {},
|
|
50
51
|
minX: 1 / 0,
|
|
51
52
|
maxX: -1 / 0,
|
|
52
53
|
maxCount: 0,
|
|
53
54
|
maxCountFromGroups: 0
|
|
54
|
-
}
|
|
55
|
-
let
|
|
56
|
-
for (let
|
|
57
|
-
const
|
|
58
|
-
|
|
55
|
+
};
|
|
56
|
+
let c, l;
|
|
57
|
+
for (let u = 0; u < e.getColumn(t.value).length; u++) {
|
|
58
|
+
const i = e.getColumnValue(t.value, u);
|
|
59
|
+
i !== null && (c === void 0 || c > i) && (c = i), i !== null && (l === void 0 || l < i) && (l = i);
|
|
59
60
|
}
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
const
|
|
63
|
-
n[
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
|
|
61
|
+
const m = [c ?? 0, l ?? 0], B = [...r].reverse();
|
|
62
|
+
B.forEach((u, i) => {
|
|
63
|
+
const f = Array.from(e.getRowsByGrouping([...y, u])), p = r.indexOf(u), h = String(u), x = g === "linear" ? M(e, f, t, s, m, h, p) : X(e, f, t, s, m, h, p);
|
|
64
|
+
n[o].histogramByGroupingKey[h] = x, n[o].minX = m[0], n[o].maxX = m[1], n[o].maxCountFromGroups = Math.max(n[o].maxCountFromGroups, x.maxCount);
|
|
65
|
+
const v = i > 0 ? B[i - 1] : null, K = v !== null ? n[o].histogramByGroupingKey[String(v)] : null;
|
|
66
|
+
x.bins.forEach((G, D) => {
|
|
67
|
+
G.y.straight = ((K == null ? void 0 : K.bins[D].y.straight) ?? 0) + G.count, n[o].maxCount = Math.max(n[o].maxCount, G.y.straight);
|
|
67
68
|
});
|
|
68
69
|
});
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
const
|
|
72
|
-
p.bins.forEach((
|
|
73
|
-
|
|
70
|
+
const C = r;
|
|
71
|
+
C.forEach((u, i) => {
|
|
72
|
+
const f = i > 0 ? C[i - 1] : null, p = n[o].histogramByGroupingKey[String(u)], h = f !== null ? n[o].histogramByGroupingKey[String(f)] : null;
|
|
73
|
+
p.bins.forEach((x, v) => {
|
|
74
|
+
x.y.reverse = ((h == null ? void 0 : h.bins[v].y.reverse) ?? 0) + x.count;
|
|
74
75
|
});
|
|
75
76
|
});
|
|
76
77
|
}), n;
|
|
77
78
|
}
|
|
78
79
|
export {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
H as createHistogramDataByFacets,
|
|
81
|
+
M as createHistogramDataLinear,
|
|
82
|
+
X as createHistogramDataLog
|
|
82
83
|
};
|
|
83
84
|
//# sourceMappingURL=getHistogramData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getHistogramData.js","sources":["../../src/histogram/getHistogramData.ts"],"sourcesContent":["import type { Bin } from 'd3-array';\nimport { bin, max } from 'd3-array';\nimport { scaleSymlog } from 'd3-scale';\nimport type { DataFrame, RowIndex } from '../DataFrame';\nimport type { ColumnName } from '../types';\n\nexport type BinData = {\n indexes: RowIndex[];\n x: number,\n y: {\n straight: number,\n reverse: number\n },\n count: number,\n groupingKey: string,\n groupingKeyIdx: number,\n width: number\n}\nexport type HistogramData = {\n bins: BinData[];\n maxCount: number;\n};\n\nexport type GroupedHistogramData = {\n groupingKeys: string[],\n histogramByGroupingKey: Record<string, HistogramData>\n minX: number;\n maxX: number;\n maxCount: number;\n maxCountFromGroups: number;\n}\n\nconst getSteps = (count: number, valueExtent: number[]) => {\n const min = Math.min(...valueExtent);\n const max = Math.max(...valueExtent);\n if (min === max) {\n return [min];\n }\n if (count < 2) {\n return [(min + max) / 2];\n }\n const step = (max - min) / count;\n const steps = [];\n for (let i = 1; i < count; i++) {\n steps.push(min + step * i);\n }\n return steps;\n};\n\nfunction createBinData (bins:Bin<RowIndex, number>[], key:string, keyIdx:number):BinData[] {\n return bins.map((b) => ({\n indexes: b,\n x: b.x0 ?? 0,\n y: {\n straight: b.length,\n reverse: b.length\n },\n count: b.length,\n groupingKey: key,\n groupingKeyIdx: keyIdx,\n width: (b.x1 ?? 0) - (b.x0 ?? 0)\n }));\n}\nexport function createHistogramDataLinear(dataFrame: DataFrame, indexes: RowIndex[], column: ColumnName, binsCount:number, domain:[number, number], key:string, keyIdx:number):HistogramData {\n const ticks = getSteps(binsCount, domain);\n const bins = bin<RowIndex, number>()\n .domain(domain)\n .thresholds(ticks)\n .value((idx: RowIndex) => dataFrame.getColumnValue(column.value, idx) as number)(indexes);\n return {\n bins: createBinData(bins, key, keyIdx),\n maxCount: max(bins, (bin) => bin.length) ?? 0\n };\n}\nexport function createHistogramDataLog(dataFrame: DataFrame, indexes: RowIndex[], column: ColumnName, binsCount:number, domain:[number, number], key:string, keyIdx:number):HistogramData {\n const ticks= getSteps(binsCount, domain);\n const convertLog = scaleSymlog().domain(domain).range(domain);\n const ticksLog = ticks.map(t => convertLog.invert(t));\n const bins = bin<RowIndex, number>()\n .domain(domain)\n .thresholds(ticksLog)\n .value((idx: RowIndex) => dataFrame.getColumnValue(column.value, idx) as number)(indexes);\n\n return {\n bins: createBinData(bins, key, keyIdx),\n maxCount: max(bins, (bin) => bin.length) ?? 0\n };\n}\n\nexport function createHistogramDataByFacets(\n data:DataFrame,\n facetKeysCombinations:string[][],\n groupingKeys: string[],\n valueColumn:ColumnName,\n binsCount:number,\n scale: 'linear' | 'log'\n) {\n const result:Record<string, GroupedHistogramData> = {};\n facetKeysCombinations.forEach((facetKeys) => {\n const facetKey = facetKeys.join('_');\n result[facetKey] = {\n groupingKeys,\n histogramByGroupingKey: {},\n minX: Infinity,\n maxX: -Infinity,\n maxCount: 0,\n maxCountFromGroups: 0\n };\n const allFacetRowsIndexes = data.getRowsByGrouping([...facetKeys]);\n let minV: number | undefined;\n let maxV: number | undefined;\n for (let i = 0; i < data.getColumn(valueColumn.value).length; i++) {\n const v = data.getColumnValue(valueColumn.value, i) as number;\n if (v !== null && (minV === undefined || minV > v)) {\n minV = v;\n }\n if (v !== null && (maxV === undefined || maxV < v)) {\n maxV = v;\n }\n }\n // minV ??= (data.getColumnValue(valueColumn.value, allFacetRowsIndexes[0]) ?? 0) as number;\n // maxV ??= (data.getColumnValue(valueColumn.value, allFacetRowsIndexes[0]) ?? 0) as number;\n const domain:[number, number] = [minV ?? 0, maxV ?? 0];\n const forwardKeys = [...groupingKeys].reverse();\n forwardKeys.forEach((groupingKey, idx) => {\n const indexes = Array.from(data.getRowsByGrouping([...facetKeys, groupingKey]));\n const histogram = scale === 'linear'\n ? createHistogramDataLinear(data, indexes, valueColumn, binsCount, domain, groupingKey, idx)\n : createHistogramDataLog(data, indexes, valueColumn, binsCount, domain, groupingKey, idx);\n result[facetKey].histogramByGroupingKey[groupingKey] = histogram;\n result[facetKey].minX = domain[0];\n result[facetKey].maxX = domain[1];\n result[facetKey].maxCountFromGroups = Math.max(result[facetKey].maxCountFromGroups, histogram.maxCount);\n\n const previousKey = idx > 0 ? forwardKeys[idx - 1] : null;\n const previousHistogram = previousKey !== null ? result[facetKey].histogramByGroupingKey[previousKey] : null;\n\n histogram.bins.forEach((bin, idx) => {\n bin.y.straight = (previousHistogram?.bins[idx].y.straight ?? 0) + bin.count;\n result[facetKey].maxCount = Math.max(result[facetKey].maxCount, bin.y.straight);\n });\n });\n\n const reversedKeys = groupingKeys;\n reversedKeys.forEach((groupingKey, idx) => {\n const previousKey = idx > 0 ? reversedKeys[idx - 1] : null;\n const histogram = result[facetKey].histogramByGroupingKey[groupingKey];\n const previousHistogram = previousKey !== null ? result[facetKey].histogramByGroupingKey[previousKey] : null;\n\n histogram.bins.forEach((bin, idx) => {\n bin.y.reverse = (previousHistogram?.bins[idx].y.reverse ?? 0) + bin.count;\n });\n });\n });\n return result;\n}"],"names":["getSteps","count","valueExtent","min","max","step","steps","i","createBinData","bins","key","keyIdx","b","createHistogramDataLinear","dataFrame","indexes","column","binsCount","domain","ticks","bin","idx","createHistogramDataLog","convertLog","scaleSymlog","ticksLog","t","createHistogramDataByFacets","data","facetKeysCombinations","groupingKeys","valueColumn","scale","result","facetKeys","facetKey","minV","maxV","v","forwardKeys","groupingKey","histogram","previousKey","previousHistogram","reversedKeys"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getHistogramData.js","sources":["../../src/histogram/getHistogramData.ts"],"sourcesContent":["import type { Bin } from 'd3-array';\nimport { bin, max } from 'd3-array';\nimport { scaleSymlog } from 'd3-scale';\nimport type { DataFrame, GroupKey, RowIndex } from '../DataFrame';\nimport type { ColumnName } from '../types';\nimport { getFacetStringKey } from '../discrete/utils/getFacetStringKey';\n\nexport type BinData = {\n indexes: RowIndex[];\n x: number,\n y: {\n straight: number,\n reverse: number\n },\n count: number,\n groupingKey: string,\n groupingKeyIdx: number,\n width: number\n}\nexport type HistogramData = {\n bins: BinData[];\n maxCount: number;\n};\n\nexport type GroupedHistogramData = {\n groupingKeys: string[],\n histogramByGroupingKey: Record<string, HistogramData>\n minX: number;\n maxX: number;\n maxCount: number;\n maxCountFromGroups: number;\n}\n\nconst getSteps = (count: number, valueExtent: number[]) => {\n const min = Math.min(...valueExtent);\n const max = Math.max(...valueExtent);\n if (min === max) {\n return [min];\n }\n if (count < 2) {\n return [(min + max) / 2];\n }\n const step = (max - min) / count;\n const steps = [];\n for (let i = 1; i < count; i++) {\n steps.push(min + step * i);\n }\n return steps;\n};\n\nfunction createBinData (bins:Bin<RowIndex, number>[], key:string, keyIdx:number):BinData[] {\n return bins.map((b) => ({\n indexes: b,\n x: b.x0 ?? 0,\n y: {\n straight: b.length,\n reverse: b.length\n },\n count: b.length,\n groupingKey: key,\n groupingKeyIdx: keyIdx,\n width: (b.x1 ?? 0) - (b.x0 ?? 0)\n }));\n}\nexport function createHistogramDataLinear(dataFrame: DataFrame, indexes: RowIndex[], column: ColumnName, binsCount:number, domain:[number, number], key:string, keyIdx:number):HistogramData {\n const ticks = getSteps(binsCount, domain);\n const bins = bin<RowIndex, number>()\n .domain(domain)\n .thresholds(ticks)\n .value((idx: RowIndex) => dataFrame.getColumnValue(column.value, idx) as number)(indexes);\n return {\n bins: createBinData(bins, key, keyIdx),\n maxCount: max(bins, (bin) => bin.length) ?? 0\n };\n}\nexport function createHistogramDataLog(dataFrame: DataFrame, indexes: RowIndex[], column: ColumnName, binsCount:number, domain:[number, number], key:string, keyIdx:number):HistogramData {\n const ticks= getSteps(binsCount, domain);\n const convertLog = scaleSymlog().domain(domain).range(domain);\n const ticksLog = ticks.map(t => convertLog.invert(t));\n const bins = bin<RowIndex, number>()\n .domain(domain)\n .thresholds(ticksLog)\n .value((idx: RowIndex) => dataFrame.getColumnValue(column.value, idx) as number)(indexes);\n\n return {\n bins: createBinData(bins, key, keyIdx),\n maxCount: max(bins, (bin) => bin.length) ?? 0\n };\n}\n\nexport function createHistogramDataByFacets(\n data:DataFrame,\n facetKeysCombinations: GroupKey[][],\n groupingKeys: GroupKey[],\n valueColumn:ColumnName,\n binsCount:number,\n scale: 'linear' | 'log'\n) {\n const result:Record<string, GroupedHistogramData> = {};\n facetKeysCombinations.forEach((facetKeyCombination) => {\n const facetKey = getFacetStringKey(facetKeyCombination);\n result[facetKey] = {\n groupingKeys: groupingKeys.map(String),\n histogramByGroupingKey: {},\n minX: Infinity,\n maxX: -Infinity,\n maxCount: 0,\n maxCountFromGroups: 0\n };\n let minV: number | undefined;\n let maxV: number | undefined;\n for (let i = 0; i < data.getColumn(valueColumn.value).length; i++) {\n const v = data.getColumnValue(valueColumn.value, i) as number;\n if (v !== null && (minV === undefined || minV > v)) {\n minV = v;\n }\n if (v !== null && (maxV === undefined || maxV < v)) {\n maxV = v;\n }\n }\n // minV ??= (data.getColumnValue(valueColumn.value, allFacetRowsIndexes[0]) ?? 0) as number;\n // maxV ??= (data.getColumnValue(valueColumn.value, allFacetRowsIndexes[0]) ?? 0) as number;\n const domain:[number, number] = [minV ?? 0, maxV ?? 0];\n const forwardKeys = [...groupingKeys].reverse();\n forwardKeys.forEach((groupingKey, _forwardIdx) => {\n const indexes = Array.from(data.getRowsByGrouping([...facetKeyCombination, groupingKey]));\n const groupingKeyIdx = groupingKeys.indexOf(groupingKey);\n const groupingKeyStr = String(groupingKey);\n const histogram = scale === 'linear'\n ? createHistogramDataLinear(data, indexes, valueColumn, binsCount, domain, groupingKeyStr, groupingKeyIdx)\n : createHistogramDataLog(data, indexes, valueColumn, binsCount, domain, groupingKeyStr, groupingKeyIdx);\n result[facetKey].histogramByGroupingKey[groupingKeyStr] = histogram;\n result[facetKey].minX = domain[0];\n result[facetKey].maxX = domain[1];\n result[facetKey].maxCountFromGroups = Math.max(result[facetKey].maxCountFromGroups, histogram.maxCount);\n\n const previousKey = _forwardIdx > 0 ? forwardKeys[_forwardIdx - 1] : null;\n const previousHistogram = previousKey !== null ? result[facetKey].histogramByGroupingKey[String(previousKey)] : null;\n\n histogram.bins.forEach((bin, binIdx) => {\n bin.y.straight = (previousHistogram?.bins[binIdx].y.straight ?? 0) + bin.count;\n result[facetKey].maxCount = Math.max(result[facetKey].maxCount, bin.y.straight);\n });\n });\n\n const reversedKeys = groupingKeys;\n reversedKeys.forEach((groupingKey, idx) => {\n const previousKey = idx > 0 ? reversedKeys[idx - 1] : null;\n const histogram = result[facetKey].histogramByGroupingKey[String(groupingKey)];\n const previousHistogram = previousKey !== null ? result[facetKey].histogramByGroupingKey[String(previousKey)] : null;\n\n histogram.bins.forEach((bin, binIdx) => {\n bin.y.reverse = (previousHistogram?.bins[binIdx].y.reverse ?? 0) + bin.count;\n });\n });\n });\n return result;\n}"],"names":["getSteps","count","valueExtent","min","max","step","steps","i","createBinData","bins","key","keyIdx","b","createHistogramDataLinear","dataFrame","indexes","column","binsCount","domain","ticks","bin","idx","createHistogramDataLog","convertLog","scaleSymlog","ticksLog","t","createHistogramDataByFacets","data","facetKeysCombinations","groupingKeys","valueColumn","scale","result","facetKeyCombination","facetKey","getFacetStringKey","minV","maxV","v","forwardKeys","groupingKey","_forwardIdx","groupingKeyIdx","groupingKeyStr","histogram","previousKey","previousHistogram","binIdx","reversedKeys"],"mappings":"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"}
|
|
@@ -11,7 +11,6 @@ export declare class ChartHistogram extends AbstractChart {
|
|
|
11
11
|
onTooltipHintSwitch: (v: boolean) => void;
|
|
12
12
|
calculatedData: {
|
|
13
13
|
facetKeys: string[];
|
|
14
|
-
facetKeysCombinations: string[][];
|
|
15
14
|
histogramDataByFacets: Record<string, GroupedHistogramData>;
|
|
16
15
|
legendInfo: HistogramLegendInfo;
|
|
17
16
|
facetLabels: Record<string, string[]>;
|
|
@@ -28,3 +27,4 @@ export declare class ChartHistogram extends AbstractChart {
|
|
|
28
27
|
_updateAesInData(): void;
|
|
29
28
|
_updateChart(): void;
|
|
30
29
|
}
|
|
30
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/histogram/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAC,MAAM,cAAc,CAAC;AAG7C,OAAO,EAAuD,KAAK,sBAAsB,EAAE,KAAK,iBAAiB,EAAe,MAAM,UAAU,CAAC;AAEjJ,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AA0ChE,qBAAa,cAAe,SAAQ,aAAa;IAC7C,QAAQ,EAAE,qBAAqB,CAAC;IAChC,aAAa,gBAAuB;IAEpC,mBAAmB,EAAE,CAAC,CAAC,EAAC,OAAO,KAAK,IAAI,CAAmB;IAC3D,cAAc,EAAE;QACZ,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;QAC3D,UAAU,EAAE,mBAAmB,CAAC;QAChC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;KACzC,GAAG,IAAI,CAAQ;gBAEJ,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,CAAC,EAAE,sBAAsB;IAShG,KAAK,CAAC,IAAI,EAAE,WAAW;IAiBvB,OAAO;IAIP,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB;IA2BlE,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAIhD,MAAM,IAAI,MAAM;IAKhB,mCAAmC,CAAC,YAAY,EAAE,qBAAqB,EAAE,QAAQ,EAAE,qBAAqB;IAgBxG,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAUpE,WAAW;IA2CX,gBAAgB;IAOhB,YAAY;CA0Bf"}
|
package/dist/histogram/index.js
CHANGED
|
@@ -1,115 +1,114 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
import { l as
|
|
5
|
-
import { s as
|
|
6
|
-
import { AbstractChart as
|
|
7
|
-
import {
|
|
1
|
+
var B = Object.defineProperty;
|
|
2
|
+
var O = (l, u, e) => u in l ? B(l, u, { enumerable: !0, configurable: !0, writable: !0, value: e }) : l[u] = e;
|
|
3
|
+
var y = (l, u, e) => O(l, typeof u != "symbol" ? u + "" : u, e);
|
|
4
|
+
import { l as b } from "../_virtual/lodash.js";
|
|
5
|
+
import { s as R } from "../_virtual/server.browser.js";
|
|
6
|
+
import { AbstractChart as V } from "../AbstractChart.js";
|
|
7
|
+
import { NO_GROUPED as I } from "../DataFrame.js";
|
|
8
|
+
import { getUnknownErrorInfo as E, isErrorInfo as S } from "../types/common.js";
|
|
8
9
|
import "../types/discrete.js";
|
|
9
10
|
import "../types/scatterplot.js";
|
|
10
11
|
import "../types/heatmap.js";
|
|
11
12
|
import "../types/dendro.js";
|
|
12
13
|
import "../types/histogram.js";
|
|
13
14
|
import "../types/bubble.js";
|
|
14
|
-
import { getKeysCombinations as
|
|
15
|
-
import
|
|
16
|
-
import { createHistogramDataByFacets as
|
|
17
|
-
import { HistogramSettingsImpl as
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
15
|
+
import { getKeysCombinations as k } from "../utils/getKeysCombination.js";
|
|
16
|
+
import F from "./ChartRenderer.js";
|
|
17
|
+
import { createHistogramDataByFacets as U } from "./getHistogramData.js";
|
|
18
|
+
import { HistogramSettingsImpl as x } from "./HistogramSettingsImpl.js";
|
|
19
|
+
import { getFacetLabels as G } from "../discrete/utils/getFacetLabels.js";
|
|
20
|
+
import { getFacetStringKey as D } from "../discrete/utils/getFacetStringKey.js";
|
|
21
|
+
import { arraysAreDifferent as H } from "../utils/arraysAreDifferent.js";
|
|
22
|
+
function T(l, u, e = null) {
|
|
23
|
+
const t = u.value, a = l.getColumnCategories(t);
|
|
24
|
+
return b.intersection(e ?? a, a).map(String);
|
|
25
|
+
}
|
|
26
|
+
function K(l, u, e) {
|
|
27
|
+
return u.reduce((t, a) => {
|
|
28
|
+
const r = a.nullValueLabel ?? "NA", n = l.getColumnCategories(a.value, !1), d = (s) => a.valueLabels ? String(l.getColumnValue(
|
|
29
|
+
a.valueLabels,
|
|
30
|
+
l.getColumnCategoryRowIndex(a.value, s)
|
|
31
|
+
)) : s, c = n.reduce((s, o) => (s[o] = d(o), s[o] === "null" && (s[o] = r), s), {});
|
|
32
|
+
return t[a.value] = {
|
|
33
|
+
values: n.sort((s, o) => c[s].localeCompare(c[o], "en", { numeric: !0 })),
|
|
34
|
+
aesMap: e[a.value],
|
|
35
|
+
labels: c
|
|
30
36
|
}, t;
|
|
31
37
|
}, {});
|
|
32
38
|
}
|
|
33
|
-
class
|
|
34
|
-
constructor(
|
|
35
|
-
super(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
+
class nt extends V {
|
|
40
|
+
constructor(e, t, a) {
|
|
41
|
+
super(e, t);
|
|
42
|
+
y(this, "settings");
|
|
43
|
+
y(this, "chartRenderer", new F());
|
|
44
|
+
y(this, "onTooltipHintSwitch", () => {
|
|
39
45
|
});
|
|
40
|
-
|
|
41
|
-
this.settings = new
|
|
46
|
+
y(this, "calculatedData", null);
|
|
47
|
+
this.settings = new x(t), a && (this.onTooltipHintSwitch = a[0]);
|
|
42
48
|
}
|
|
43
|
-
mount(
|
|
49
|
+
mount(e) {
|
|
44
50
|
try {
|
|
45
|
-
this.chartRenderer.init(
|
|
51
|
+
this.chartRenderer.init(e), this._updateData(), this._updateChart(), this.hasError = !1, this.errorInfo = null;
|
|
46
52
|
} catch (t) {
|
|
47
|
-
this.hasError = !0, t instanceof Error && (this.errorInfo =
|
|
53
|
+
this.hasError = !0, t instanceof Error && (this.errorInfo = S(t.cause) ? t.cause : E(t), this.chartRenderer.renderError(t.message), console.error(t));
|
|
48
54
|
}
|
|
49
55
|
}
|
|
50
56
|
unmount() {
|
|
51
57
|
this.chartRenderer.clear();
|
|
52
58
|
}
|
|
53
|
-
updateSettingsAndData(
|
|
59
|
+
updateSettingsAndData(e, t) {
|
|
54
60
|
try {
|
|
55
|
-
const
|
|
56
|
-
this.settings = new
|
|
57
|
-
} catch (
|
|
58
|
-
this.hasError = !0,
|
|
61
|
+
const a = this.settings, r = this.data;
|
|
62
|
+
this.settings = new x(t), this.data = e, this._needUpdateCalculatedDataBySettings(a, this.settings) || this._needUpdateCalculatedDataByData(r, this.data) ? this._updateData() : this._updateAesInData(), this._updateChart(), this.hasError = !1, this.errorInfo = null;
|
|
63
|
+
} catch (a) {
|
|
64
|
+
this.hasError = !0, a instanceof Error && (this.errorInfo = S(a.cause) ? a.cause : E(a), this.chartRenderer.renderError(a.message), console.error(a));
|
|
59
65
|
}
|
|
60
66
|
}
|
|
61
|
-
updateChartState(
|
|
67
|
+
updateChartState(e, t) {
|
|
62
68
|
console.warn("no chart state for histogram");
|
|
63
69
|
}
|
|
64
70
|
export() {
|
|
65
|
-
return this._updateChart(),
|
|
71
|
+
return this._updateChart(), R.renderToString(this.chartRenderer.component);
|
|
66
72
|
}
|
|
67
|
-
_needUpdateCalculatedDataBySettings(
|
|
68
|
-
var
|
|
69
|
-
return
|
|
70
|
-
var
|
|
71
|
-
return
|
|
72
|
-
}) || ((
|
|
73
|
-
var
|
|
74
|
-
return
|
|
75
|
-
})) || ((i = t.groupingOrder) == null ? void 0 : i.some((
|
|
76
|
-
var
|
|
77
|
-
return
|
|
73
|
+
_needUpdateCalculatedDataBySettings(e, t) {
|
|
74
|
+
var a, r, n, d, c, s, o, i;
|
|
75
|
+
return e.valueColumn.value !== t.valueColumn.value || e.facetBy.some((h, p) => {
|
|
76
|
+
var g;
|
|
77
|
+
return h.value !== ((g = t.facetBy[p]) == null ? void 0 : g.value);
|
|
78
|
+
}) || H(((a = e.facetSettings) == null ? void 0 : a.order) ?? [], ((r = t.facetSettings) == null ? void 0 : r.order) ?? []) || ((n = e.grouping) == null ? void 0 : n.value) !== ((d = t.grouping) == null ? void 0 : d.value) || ((c = e.grouping) == null ? void 0 : c.nullValueLabel) !== ((s = t.grouping) == null ? void 0 : s.nullValueLabel) || e.layers.length !== t.layers.length || e.layers.some((h, p) => h.type !== t.layers[p].type) || e.binsCount !== t.binsCount || e.chartSettings.xAxis.scale !== t.chartSettings.xAxis.scale || ((o = e.groupingOrder) == null ? void 0 : o.some((h, p) => {
|
|
79
|
+
var g;
|
|
80
|
+
return h !== ((g = t.groupingOrder) == null ? void 0 : g[p]);
|
|
81
|
+
})) || ((i = t.groupingOrder) == null ? void 0 : i.some((h, p) => {
|
|
82
|
+
var g;
|
|
83
|
+
return h !== ((g = e.groupingOrder) == null ? void 0 : g[p]);
|
|
78
84
|
}));
|
|
79
85
|
}
|
|
80
|
-
_needUpdateCalculatedDataByData(
|
|
81
|
-
const
|
|
82
|
-
return
|
|
83
|
-
var
|
|
84
|
-
return
|
|
86
|
+
_needUpdateCalculatedDataByData(e, t) {
|
|
87
|
+
const a = Object.keys(e.data), r = Object.keys(t.data);
|
|
88
|
+
return e.id !== t.id || a.length !== r.length || a.some((n) => {
|
|
89
|
+
var d;
|
|
90
|
+
return e.data[n].length !== ((d = t.data[n]) == null ? void 0 : d.length);
|
|
85
91
|
});
|
|
86
92
|
}
|
|
87
93
|
_updateData() {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const m = t.map((c) => c.value) ?? null, p = e ? [e.value] : [];
|
|
97
|
-
let d = e ? this.data.getColumnCategories(e.value) : ["null"];
|
|
98
|
-
if (d.length > b) {
|
|
99
|
-
const c = {
|
|
100
|
-
type: "tooManyHistogramGroups",
|
|
101
|
-
info: { count: d.length, maxCount: b }
|
|
102
|
-
};
|
|
103
|
-
throw Error(c.type, { cause: c });
|
|
94
|
+
var _;
|
|
95
|
+
const { valueColumn: e, facetBy: t, facetSettings: a, grouping: r, binsCount: n, chartSettings: d, inheritedAes: c, groupingOrder: s } = this.settings, o = t.length ? t.map((m) => m.value) : [null];
|
|
96
|
+
let i = k(
|
|
97
|
+
t.map((m) => T(this.data, m))
|
|
98
|
+
);
|
|
99
|
+
if (i.length === 0 && (i = [[I]]), (_ = a == null ? void 0 : a.order) != null && _.length) {
|
|
100
|
+
const m = i.map(D);
|
|
101
|
+
i = b.intersection(a.order, m).map((f) => i.find((A) => D(A) === f)).filter((f) => f != null);
|
|
104
102
|
}
|
|
105
|
-
|
|
106
|
-
|
|
103
|
+
const h = i.map(D), p = G(this.data, t, h, i), g = t.length ? o.map((m, v) => [...new Set(i.map((f) => f[v]))]) : [void 0], L = [(r == null ? void 0 : r.value) ?? null];
|
|
104
|
+
let C = r ? this.data.getColumnCategories(r.value, !1).map(String) : [I];
|
|
105
|
+
r && s && (C = b.intersection(s, C.map(String))), this.data.setGrouping([...o, ...L], g);
|
|
106
|
+
const w = U(this.data, i, C, e, n, d.xAxis.scale);
|
|
107
107
|
this.calculatedData = {
|
|
108
|
-
facetKeys:
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
legendInfo: I(this.data, e ? [e] : [], i)
|
|
108
|
+
facetKeys: h,
|
|
109
|
+
facetLabels: p,
|
|
110
|
+
histogramDataByFacets: w,
|
|
111
|
+
legendInfo: K(this.data, r ? [r] : [], c)
|
|
113
112
|
};
|
|
114
113
|
}
|
|
115
114
|
_updateAesInData() {
|
|
@@ -118,27 +117,27 @@ class Y extends S {
|
|
|
118
117
|
_updateChart() {
|
|
119
118
|
if (!this.calculatedData)
|
|
120
119
|
return;
|
|
121
|
-
const { facetLabels:
|
|
122
|
-
this.calculatedData.legendInfo =
|
|
120
|
+
const { facetLabels: e } = this.calculatedData, { id: t, chartSettings: a, facetSettings: r, inheritedAes: n, layers: d, grouping: c, groupingDirection: s, groupingStack: o, facetBy: i } = this.settings;
|
|
121
|
+
this.calculatedData.legendInfo = K(this.data, c ? [c] : [], n), this.chartRenderer.render(
|
|
123
122
|
this.data,
|
|
124
123
|
t,
|
|
125
|
-
|
|
126
|
-
|
|
124
|
+
a,
|
|
125
|
+
r,
|
|
127
126
|
this.calculatedData.facetKeys,
|
|
128
|
-
this.calculatedData.facetKeys.map((
|
|
127
|
+
this.calculatedData.facetKeys.map((h) => e[h]),
|
|
129
128
|
//for titles, if facet by more than 1 column
|
|
130
129
|
this.calculatedData.histogramDataByFacets,
|
|
131
130
|
this.calculatedData.legendInfo,
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
s,
|
|
131
|
+
d,
|
|
132
|
+
n,
|
|
133
|
+
c,
|
|
136
134
|
o,
|
|
135
|
+
s,
|
|
137
136
|
this.onTooltipHintSwitch
|
|
138
137
|
);
|
|
139
138
|
}
|
|
140
139
|
}
|
|
141
140
|
export {
|
|
142
|
-
|
|
141
|
+
nt as ChartHistogram
|
|
143
142
|
};
|
|
144
143
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/histogram/index.ts"],"sourcesContent":["import {\n intersection\n} from 'lodash';\nimport { renderToString } from 'react-dom/server.browser';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport type { ErrorInfoHistogramGroups} from '../types';\nimport { type Category, type ColumnName, type ErrorInfoFacets, getUnknownErrorInfo, type HistogramEventHandlers, type HistogramSettings, isErrorInfo } from '../types';\nimport { getKeysCombinations } from '../utils/getKeysCombination';\nimport ChartRenderer from './ChartRenderer';\nimport type { HistogramLegendInfo } from './components/types';\nimport type { GroupedHistogramData } from './getHistogramData';\nimport { createHistogramDataByFacets } from './getHistogramData';\nimport { HistogramSettingsImpl } from './HistogramSettingsImpl';\nimport { MAX_FACETS_COUNT, MAX_GROUPS_COUNT } from '../constants';\nimport { getFacetLabels } from '../discrete/utils/getFacetLabels';\n\nfunction getLegendInfo(\n data: DataFrame,\n grouping: ColumnName[],\n inheritedAes: HistogramSettingsImpl['inheritedAes']\n): HistogramLegendInfo {\n return grouping.reduce((res: HistogramLegendInfo, column) => {\n const categories = data.getColumnCategories(column.value, false);\n const getValueLabel = (category: Category) => (column.valueLabels\n ? String(data.getColumnValue(\n column.valueLabels,\n data.getColumnCategoryRowIndex(column.value, category)\n ))\n : category\n );\n const labels = categories.reduce((res: Record<string, string>, category) => {\n res[category] = getValueLabel(category);\n return res;\n }, {});\n res[column.value] = {\n values: categories.sort((a, b) => labels[a].localeCompare(labels[b], 'en', {numeric: true})),\n aesMap: inheritedAes[column.value],\n labels,\n };\n return res;\n }, {});\n}\n\nexport class ChartHistogram extends AbstractChart {\n settings: HistogramSettingsImpl;\n chartRenderer = new ChartRenderer();\n\n onTooltipHintSwitch: (v:boolean) => void = () => undefined;\n calculatedData: {\n facetKeys: string[];\n facetKeysCombinations: string[][];\n histogramDataByFacets: Record<string, GroupedHistogramData>\n legendInfo: HistogramLegendInfo;\n facetLabels: Record<string, string[]>;\n } | null = null;\n\n constructor(data: DataFrame, settings: HistogramSettings, eventHandlers?: HistogramEventHandlers) {\n super(data, settings);\n\n this.settings = new HistogramSettingsImpl(settings);\n if (eventHandlers) {\n this.onTooltipHintSwitch = eventHandlers[0];\n }\n }\n\n mount(node: HTMLElement) {\n try {\n this.chartRenderer.init(node);\n this._updateData();\n this._updateChart();\n this.hasError = false;\n this.errorInfo = null;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.errorInfo = isErrorInfo(err.cause) ? err.cause : getUnknownErrorInfo(err);\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n unmount() {\n this.chartRenderer.clear();\n }\n\n updateSettingsAndData(data: DataFrame, settings: HistogramSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new HistogramSettingsImpl(settings);\n this.data = data;\n if (\n this._needUpdateCalculatedDataBySettings(previousSettings, this.settings) ||\n this._needUpdateCalculatedDataByData(previousData, this.data)\n ) {\n this._updateData();\n } else {\n this._updateAesInData();\n }\n this._updateChart();\n this.hasError = false;\n this.errorInfo = null;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.errorInfo = isErrorInfo(err.cause) ? err.cause : getUnknownErrorInfo(err);\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n updateChartState(_field: string, _value: unknown) {\n console.warn('no chart state for histogram');\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: HistogramSettingsImpl, settings: HistogramSettingsImpl) {\n return (\n prevSettings.valueColumn.value !== settings.valueColumn.value ||\n prevSettings.facetBy.some((el, idx) => el.value !== settings.facetBy[idx]?.value) ||\n prevSettings.grouping?.value !== settings.grouping?.value ||\n prevSettings.layers.length !== settings.layers.length ||\n prevSettings.layers.some((l, idx) => l.type !== settings.layers[idx].type) ||\n prevSettings.binsCount !== settings.binsCount ||\n prevSettings.chartSettings.xAxis.scale !== settings.chartSettings.xAxis.scale ||\n prevSettings.groupingOrder?.some((key, idx) => key !== settings.groupingOrder?.[idx]) ||\n settings.groupingOrder?.some((key, idx) => key !== prevSettings.groupingOrder?.[idx])\n );\n }\n\n _needUpdateCalculatedDataByData(prevData: DataFrame, data: DataFrame) {\n const prevKeys = Object.keys(prevData.data);\n const keys = Object.keys(data.data);\n return (\n prevData.id !== data.id ||\n prevKeys.length !== keys.length ||\n prevKeys.some(key => prevData.data[key].length !== data.data[key]?.length)\n );\n }\n\n _updateData() {\n const {valueColumn, facetBy, grouping, binsCount, chartSettings, inheritedAes, groupingOrder} = this.settings;\n\n const facetKeysLists = facetBy.map(column => this.data.getColumnCategories(column.value));\n const facetKeysCombinations = facetKeysLists.length ? getKeysCombinations([...facetKeysLists]) : [['null']];\n\n if (facetKeysCombinations.length > MAX_FACETS_COUNT) {\n const errorInfo: ErrorInfoFacets = {\n type: 'tooManyFacets',\n info: {count: facetKeysCombinations.length, maxCount: MAX_FACETS_COUNT}\n };\n throw Error(errorInfo.type, {cause: errorInfo});\n }\n\n const facetGroupingValues = facetBy.map(column => column.value) ?? null;\n const groupingValues = grouping ? [grouping.value] : [];\n let groupingKeys = grouping ? this.data.getColumnCategories(grouping.value) : ['null'];\n if (groupingKeys.length > MAX_GROUPS_COUNT) {\n const errorInfo: ErrorInfoHistogramGroups = {\n type: 'tooManyHistogramGroups',\n info: {count: groupingKeys.length, maxCount: MAX_GROUPS_COUNT}\n };\n throw Error(errorInfo.type, {cause: errorInfo});\n }\n if (groupingOrder) {\n groupingKeys = intersection(groupingOrder, groupingKeys);\n }\n\n this.data.setGrouping([...facetGroupingValues, ...groupingValues]);\n const histogramDataByFacets = createHistogramDataByFacets(this.data, facetKeysCombinations, groupingKeys, valueColumn, binsCount, chartSettings.xAxis.scale);\n\n const facetKeys = facetKeysCombinations.map(v => v.join(', '));\n const facetLabels = getFacetLabels(this.data, facetBy, facetKeys, facetKeysCombinations);\n this.calculatedData = {\n facetKeys,\n facetKeysCombinations,\n facetLabels,\n histogramDataByFacets,\n legendInfo: getLegendInfo(this.data, grouping ? [grouping] : [], inheritedAes)\n };\n }\n\n _updateAesInData() {\n const calculated = this.calculatedData;\n if (!calculated) {\n return;\n }\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {facetLabels} = this.calculatedData;\n const {id, chartSettings, facetSettings, inheritedAes, layers, grouping, groupingDirection, groupingStack, facetBy} = this.settings;\n this.calculatedData.legendInfo = getLegendInfo(this.data, grouping ? [grouping] : [], inheritedAes);\n\n this.chartRenderer.render(\n this.data,\n id,\n chartSettings,\n facetSettings,\n this.calculatedData.facetKeys,\n this.calculatedData.facetKeys.map(key => facetLabels[key]),\n //for titles, if facet by more than 1 column\n this.calculatedData.histogramDataByFacets,\n this.calculatedData.legendInfo,\n layers,\n inheritedAes,\n grouping,\n groupingStack,\n groupingDirection,\n this.onTooltipHintSwitch\n );\n }\n}\n"],"names":["getLegendInfo","data","grouping","inheritedAes","res","column","categories","getValueLabel","category","labels","a","b","ChartHistogram","AbstractChart","settings","eventHandlers","__publicField","ChartRenderer","HistogramSettingsImpl","node","err","isErrorInfo","getUnknownErrorInfo","previousSettings","previousData","_field","_value","renderToString","prevSettings","el","idx","_a","_b","l","_c","key","_d","prevData","prevKeys","keys","valueColumn","facetBy","binsCount","chartSettings","groupingOrder","facetKeysLists","facetKeysCombinations","getKeysCombinations","MAX_FACETS_COUNT","errorInfo","facetGroupingValues","groupingValues","groupingKeys","MAX_GROUPS_COUNT","intersection","histogramDataByFacets","createHistogramDataByFacets","facetKeys","v","facetLabels","getFacetLabels","id","facetSettings","layers","groupingDirection","groupingStack"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/histogram/index.ts"],"sourcesContent":["import { intersection } from 'lodash';\nimport { renderToString } from 'react-dom/server.browser';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame} from '../DataFrame';\nimport { type GroupKey, NO_GROUPED } from '../DataFrame';\nimport type { DataValue} from '../types';\nimport { type Category, type ColumnName, getUnknownErrorInfo, type HistogramEventHandlers, type HistogramSettings, isErrorInfo } from '../types';\nimport { getKeysCombinations } from '../utils/getKeysCombination';\nimport ChartRenderer from './ChartRenderer';\nimport type { HistogramLegendInfo } from './components/types';\nimport type { GroupedHistogramData } from './getHistogramData';\nimport { createHistogramDataByFacets } from './getHistogramData';\nimport { HistogramSettingsImpl } from './HistogramSettingsImpl';\nimport { getFacetLabels } from '../discrete/utils/getFacetLabels';\nimport { getFacetStringKey } from '../discrete/utils/getFacetStringKey';\nimport { arraysAreDifferent } from '../utils/arraysAreDifferent';\n\nfunction getGroupingKeys(data: DataFrame, column: ColumnName, order: DataValue[] | null = null) {\n const groupingColumn = column.value;\n const availableKeys = data.getColumnCategories(groupingColumn);\n return intersection(order ?? availableKeys, availableKeys).map(String);\n}\n\nfunction getLegendInfo(\n data: DataFrame,\n grouping: ColumnName[],\n inheritedAes: HistogramSettingsImpl['inheritedAes']\n): HistogramLegendInfo {\n return grouping.reduce((res: HistogramLegendInfo, column) => {\n const nullValueLabel = column.nullValueLabel ?? 'NA';\n const categories = data.getColumnCategories(column.value, false);\n const getValueLabel = (category: Category) => (column.valueLabels\n ? String(data.getColumnValue(\n column.valueLabels,\n data.getColumnCategoryRowIndex(column.value, category)\n ))\n : category\n );\n const labels = categories.reduce((res: Record<string, string>, category) => {\n res[category] = getValueLabel(category);\n if (res[category] === 'null') {\n res[category] = nullValueLabel;\n }\n return res;\n }, {});\n res[column.value] = {\n values: categories.sort((a, b) => labels[a].localeCompare(labels[b], 'en', {numeric: true})),\n aesMap: inheritedAes[column.value],\n labels,\n };\n return res;\n }, {});\n}\n\nexport class ChartHistogram extends AbstractChart {\n settings: HistogramSettingsImpl;\n chartRenderer = new ChartRenderer();\n\n onTooltipHintSwitch: (v:boolean) => void = () => undefined;\n calculatedData: {\n facetKeys: string[];\n histogramDataByFacets: Record<string, GroupedHistogramData>\n legendInfo: HistogramLegendInfo;\n facetLabels: Record<string, string[]>;\n } | null = null;\n\n constructor(data: DataFrame, settings: HistogramSettings, eventHandlers?: HistogramEventHandlers) {\n super(data, settings);\n\n this.settings = new HistogramSettingsImpl(settings);\n if (eventHandlers) {\n this.onTooltipHintSwitch = eventHandlers[0];\n }\n }\n\n mount(node: HTMLElement) {\n try {\n this.chartRenderer.init(node);\n this._updateData();\n this._updateChart();\n this.hasError = false;\n this.errorInfo = null;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.errorInfo = isErrorInfo(err.cause) ? err.cause : getUnknownErrorInfo(err);\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n unmount() {\n this.chartRenderer.clear();\n }\n\n updateSettingsAndData(data: DataFrame, settings: HistogramSettings) {\n try {\n const previousSettings = this.settings;\n const previousData = this.data;\n this.settings = new HistogramSettingsImpl(settings);\n this.data = data;\n if (\n this._needUpdateCalculatedDataBySettings(previousSettings, this.settings) ||\n this._needUpdateCalculatedDataByData(previousData, this.data)\n ) {\n this._updateData();\n } else {\n this._updateAesInData();\n }\n this._updateChart();\n this.hasError = false;\n this.errorInfo = null;\n } catch (err) {\n this.hasError = true;\n if (err instanceof Error) {\n this.errorInfo = isErrorInfo(err.cause) ? err.cause : getUnknownErrorInfo(err);\n this.chartRenderer.renderError(err.message as string);\n console.error(err);\n }\n }\n }\n\n updateChartState(_field: string, _value: unknown) {\n console.warn('no chart state for histogram');\n }\n\n export(): string {\n this._updateChart();\n return renderToString(this.chartRenderer.component);\n }\n\n _needUpdateCalculatedDataBySettings(prevSettings: HistogramSettingsImpl, settings: HistogramSettingsImpl) {\n return (\n prevSettings.valueColumn.value !== settings.valueColumn.value ||\n prevSettings.facetBy.some((el, idx) => el.value !== settings.facetBy[idx]?.value) ||\n arraysAreDifferent(prevSettings.facetSettings?.order ?? [], settings.facetSettings?.order ?? []) ||\n prevSettings.grouping?.value !== settings.grouping?.value ||\n prevSettings.grouping?.nullValueLabel !== settings.grouping?.nullValueLabel ||\n prevSettings.layers.length !== settings.layers.length ||\n prevSettings.layers.some((l, idx) => l.type !== settings.layers[idx].type) ||\n prevSettings.binsCount !== settings.binsCount ||\n prevSettings.chartSettings.xAxis.scale !== settings.chartSettings.xAxis.scale ||\n prevSettings.groupingOrder?.some((key, idx) => key !== settings.groupingOrder?.[idx]) ||\n settings.groupingOrder?.some((key, idx) => key !== prevSettings.groupingOrder?.[idx])\n );\n }\n\n _needUpdateCalculatedDataByData(prevData: DataFrame, data: DataFrame) {\n const prevKeys = Object.keys(prevData.data);\n const keys = Object.keys(data.data);\n return (\n prevData.id !== data.id ||\n prevKeys.length !== keys.length ||\n prevKeys.some(key => prevData.data[key].length !== data.data[key]?.length)\n );\n }\n\n _updateData() {\n const {valueColumn, facetBy, facetSettings, grouping, binsCount, chartSettings, inheritedAes, groupingOrder} = this.settings;\n\n const facetGroupingValues = facetBy.length ? facetBy.map(column => column.value) : [null];\n\n // if facet created by more than 1 data column facet key contains all of them, and all keys are used in data grouping;\n // after data preparing we need only complex keys from concatenated strings\n let facetKeyLists: (GroupKey)[][] = getKeysCombinations(\n facetBy.map(column => getGroupingKeys(this.data, column))\n );\n if (facetKeyLists.length === 0) {\n facetKeyLists = [[NO_GROUPED]];\n }\n if (facetSettings?.order?.length) {\n const allFacetKeys = facetKeyLists.map(getFacetStringKey);\n const keyOrder = intersection(facetSettings.order, allFacetKeys);\n facetKeyLists = keyOrder\n .map((keyStr) => facetKeyLists.find((fkl) => getFacetStringKey(fkl) === keyStr))\n .filter((x): x is GroupKey[] => x != null);\n }\n const facetKeys = facetKeyLists.map(getFacetStringKey);\n const facetLabels = getFacetLabels(this.data, facetBy, facetKeys, facetKeyLists);\n const facetGroupingKeys = facetBy.length\n ? facetGroupingValues.map((_, idx) => [...new Set(facetKeyLists.map(fkl => fkl[idx]))])\n : [undefined];\n const groupingValues = [grouping?.value ?? null];\n \n let groupingKeys: GroupKey[] = grouping ? this.data.getColumnCategories(grouping.value, false).map(String) : [NO_GROUPED];\n if (grouping && groupingOrder) {\n groupingKeys = intersection(groupingOrder, groupingKeys.map(String));\n }\n\n this.data.setGrouping([...facetGroupingValues, ...groupingValues], facetGroupingKeys);\n const histogramDataByFacets = createHistogramDataByFacets(this.data, facetKeyLists, groupingKeys, valueColumn, binsCount, chartSettings.xAxis.scale);\n\n this.calculatedData = {\n facetKeys,\n facetLabels,\n histogramDataByFacets,\n legendInfo: getLegendInfo(this.data, grouping ? [grouping] : [], inheritedAes)\n };\n }\n\n _updateAesInData() {\n const calculated = this.calculatedData;\n if (!calculated) {\n return;\n }\n }\n\n _updateChart() {\n if (!this.calculatedData) {\n return;\n }\n const {facetLabels} = this.calculatedData;\n const {id, chartSettings, facetSettings, inheritedAes, layers, grouping, groupingDirection, groupingStack, facetBy} = this.settings;\n this.calculatedData.legendInfo = getLegendInfo(this.data, grouping ? [grouping] : [], inheritedAes);\n\n this.chartRenderer.render(\n this.data,\n id,\n chartSettings,\n facetSettings,\n this.calculatedData.facetKeys,\n this.calculatedData.facetKeys.map(key => facetLabels[key]),\n //for titles, if facet by more than 1 column\n this.calculatedData.histogramDataByFacets,\n this.calculatedData.legendInfo,\n layers,\n inheritedAes,\n grouping,\n groupingStack,\n groupingDirection,\n this.onTooltipHintSwitch\n );\n }\n}\n"],"names":["getGroupingKeys","data","column","order","groupingColumn","availableKeys","intersection","getLegendInfo","grouping","inheritedAes","res","nullValueLabel","categories","getValueLabel","category","labels","a","b","ChartHistogram","AbstractChart","settings","eventHandlers","__publicField","ChartRenderer","HistogramSettingsImpl","node","err","isErrorInfo","getUnknownErrorInfo","previousSettings","previousData","_field","_value","renderToString","prevSettings","el","idx","_a","arraysAreDifferent","_b","_c","_d","_e","_f","l","_g","key","_h","prevData","prevKeys","keys","valueColumn","facetBy","facetSettings","binsCount","chartSettings","groupingOrder","facetGroupingValues","facetKeyLists","getKeysCombinations","NO_GROUPED","allFacetKeys","getFacetStringKey","keyStr","fkl","x","facetKeys","facetLabels","getFacetLabels","facetGroupingKeys","_","groupingValues","groupingKeys","histogramDataByFacets","createHistogramDataByFacets","id","layers","groupingDirection","groupingStack"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,4 +4,7 @@ import { MiPlots } from './MiPlots';
|
|
|
4
4
|
import { BubbleSettings, DendroSettings, DiscreteSettings, ErrorInfo, ErrorInfoUnknown, HeatmapSettings, HistogramSettings, ScatterplotSettings, ScatterplotUmapSettings, Settings, AxisSettingsContinuous, AxisSettingsDiscrete } from './types';
|
|
5
5
|
import { LassoControlsState, Polygon } from './scatterplot-umap/types';
|
|
6
6
|
import { SCATTERPLOT_CONTROLS_EVENTS } from './scatterplot-umap/constants';
|
|
7
|
-
|
|
7
|
+
import { getFacetKeysFromValueLists } from './utils/getFacetKeysFromValueLists';
|
|
8
|
+
import { getKeysCombinations } from './utils/getKeysCombination';
|
|
9
|
+
export { BubbleSettings, ChartInterface, DataByColumns, DendroSettings, DiscreteSettings, getFacetKeysFromValueLists, getKeysCombinations, HeatmapSettings, HistogramSettings, MiPlots, ScatterplotSettings, ScatterplotUmapSettings, Settings, AxisSettingsDiscrete, AxisSettingsContinuous, SCATTERPLOT_CONTROLS_EVENTS, LassoControlsState, Polygon, ErrorInfo, ErrorInfoUnknown };
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACzM,OAAO,KAAK,EAAC,kBAAkB,EAAE,OAAO,EAAC,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAC,2BAA2B,EAAC,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EACH,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,0BAA0B,EAAE,mBAAmB,EAChI,eAAe,EAAE,iBAAiB,EAAE,OAAO,EAAE,mBAAmB,EAChE,uBAAuB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,sBAAsB,EAC/E,2BAA2B,EAAE,kBAAkB,EAAE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EACxF,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import { MiPlots as
|
|
2
|
-
import { SCATTERPLOT_CONTROLS_EVENTS as
|
|
1
|
+
import { MiPlots as t } from "./MiPlots.js";
|
|
2
|
+
import { SCATTERPLOT_CONTROLS_EVENTS as m } from "./scatterplot-umap/constants.js";
|
|
3
|
+
import { getFacetKeysFromValueLists as T } from "./utils/getFacetKeysFromValueLists.js";
|
|
4
|
+
import { getKeysCombinations as i } from "./utils/getKeysCombination.js";
|
|
3
5
|
export {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
+
t as MiPlots,
|
|
7
|
+
m as SCATTERPLOT_CONTROLS_EVENTS,
|
|
8
|
+
T as getFacetKeysFromValueLists,
|
|
9
|
+
i as getKeysCombinations
|
|
6
10
|
};
|
|
7
11
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChartRenderer.d.ts","sourceRoot":"","sources":["../../src/scatterplot/ChartRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,8 @@ export declare class ScatterplotSettingsImpl implements SettingsInterface {
|
|
|
33
33
|
readonly facetSettings: {
|
|
34
34
|
sharedX: boolean;
|
|
35
35
|
sharedY: boolean;
|
|
36
|
+
/** Ordered list of facet keys; only these facets are shown, in this order */
|
|
37
|
+
order?: string[];
|
|
36
38
|
nRows?: number;
|
|
37
39
|
nCols?: number;
|
|
38
40
|
titlePosition: 'left' | 'center' | 'right';
|
|
@@ -86,3 +88,4 @@ export declare class ScatterplotSettingsImpl implements SettingsInterface {
|
|
|
86
88
|
readonly layers: ScatterplotLayer[];
|
|
87
89
|
constructor(settings: ScatterplotSettings);
|
|
88
90
|
}
|
|
91
|
+
//# sourceMappingURL=ScatterplotSettingsImpl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScatterplotSettingsImpl.d.ts","sourceRoot":"","sources":["../../src/scatterplot/ScatterplotSettingsImpl.ts"],"names":[],"mappings":"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"}
|