@milaboratories/graph-maker 1.1.138 → 1.1.139
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/GraphMaker/components/LassoControls/index.vue.js +15 -13
- package/dist/GraphMaker/components/LassoControls/index.vue.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +9 -3
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDendroSettings.d.ts +17 -2
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDendroSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +13 -4
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +28 -7
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.d.ts +6 -2
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts +16 -2
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts +14 -2
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/DataFrame.js +95 -72
- package/dist/node_modules/@milaboratories/miplots4/dist/DataFrame.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/MiPlots.js +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/ChartRenderer.js +124 -122
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/ChartRenderer.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/Chart.js +72 -91
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/Chart.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/ChartsGroup.js +43 -41
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/components/ChartsGroup.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCellTooltip.js +28 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCellTooltip.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getGroupedCellsData.js +94 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getGroupedCellsData.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/index.js +42 -38
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/utils/calculateCaptionTails.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/common/Legend.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/common/Tooltip.js +11 -11
- package/dist/node_modules/@milaboratories/miplots4/dist/common/Tooltip.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/common/useDataFrame.js +20 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/common/useDataFrame.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/ChartRenderer.js +181 -181
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/ChartRenderer.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/DendroSettingsImpl.js +2 -2
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/DendroSettingsImpl.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Chart.js +45 -45
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Chart.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Heatmap.js +27 -27
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Heatmap.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/Legend.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/LinksGroup.js +18 -18
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/LinksGroup.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/NodesGroup.js +36 -36
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/components/NodesGroup.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/getHeatmapData.js +45 -41
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/getHeatmapData.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/getHierarchyData.js +33 -33
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/getHierarchyData.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/index.js +90 -93
- package/dist/node_modules/@milaboratories/miplots4/dist/dendro/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/ChartRenderer.js +200 -199
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/ChartRenderer.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/DiscreteSettingsImpl.js +17 -17
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/DiscreteSettingsImpl.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/components/layers/BoxElement.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js +102 -99
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/bar.js +31 -36
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/bar.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/binnedDots.js +62 -74
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/binnedDots.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/boxes.js +52 -53
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/boxes.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/dots.js +32 -32
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/dots.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/lines.js +7 -6
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/lines.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/logo.js +23 -23
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/logo.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/pairedPoints.js +63 -63
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/pairedPoints.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/sina.js +60 -64
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/sina.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/stackedBar.js +23 -23
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/layers/stackedBar.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/getOutliersBounds.js +5 -5
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/getOutliersBounds.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/splitTextByWidth.js +13 -13
- package/dist/node_modules/@milaboratories/miplots4/dist/discrete/utils/splitTextByWidth.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/ChartRenderer.js +258 -256
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/ChartRenderer.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/HeatmapSettingsImpl.js +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/HeatmapSettingsImpl.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/Annotation.js +45 -44
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Annotations/Annotation.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js +107 -106
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/Chart.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/ChartsGroup.js +18 -18
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/components/ChartsGroup.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getCells.js +99 -95
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/getCells.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js +30 -29
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateAnnotationTitleSizes.js +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateAnnotationTitleSizes.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/heatmap/utils/calculateCaptionTails.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/histogram/ChartRenderer.js +143 -142
- package/dist/node_modules/@milaboratories/miplots4/dist/histogram/ChartRenderer.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/histogram/HistogramSettingsImpl.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/histogram/components/Chart.js +30 -30
- package/dist/node_modules/@milaboratories/miplots4/dist/histogram/components/Chart.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/histogram/components/ChartsGroup.js +7 -7
- package/dist/node_modules/@milaboratories/miplots4/dist/histogram/getHistogramData.js +53 -54
- package/dist/node_modules/@milaboratories/miplots4/dist/histogram/getHistogramData.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/histogram/index.js +59 -55
- package/dist/node_modules/@milaboratories/miplots4/dist/histogram/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/@d3fc/d3fc-axis/src/axisBase.js +7 -7
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-array/src/min.js +6 -12
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-array/src/min.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-shape/src/line.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/kdbush/index.js +148 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/kdbush/index.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ChartRenderer.js +172 -168
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ChartRenderer.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ScatterplotSettingsImpl.js +26 -26
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/ScatterplotSettingsImpl.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/Chart.js +11 -11
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartAxisTitles.js +30 -29
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartAxisTitles.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartLayersData.js +135 -153
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartLayersData.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTooltip.js +35 -32
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTooltip.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTrendsData.js +27 -27
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartTrendsData.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/components/ChartsGroup.js +14 -14
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/constants.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/dots.js +24 -22
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/dots.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/getLayersData.js +11 -14
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/getLayersData.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js +57 -58
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/linearRegression.js +85 -83
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/linearRegression.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createAesGetter.js +20 -20
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createAesGetter.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createLegendInfo.js +44 -37
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/createLegendInfo.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/formatColumnValue.js +11 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/formatColumnValue.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/getVisibleLabels.js +46 -56
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot/utils/getVisibleLabels.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/ChartRenderer.js +223 -205
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/ChartRenderer.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/SettingsImpl.js +22 -22
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/SettingsImpl.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/colors.js +42 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/colors.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/LowerSVG.js +84 -81
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/LowerSVG.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/SVGLayer.js +11 -11
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/UpperSVG.js +15 -14
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/UpperSVG.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/index.js +89 -114
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/index.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/common.js +3 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/common.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/dendro.js +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/dendro.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/discrete.js +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/discrete.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/heatmap.js +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/heatmap.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/histogram.js +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/histogram.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot-umap.js +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot-umap.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot.js +4 -4
- package/dist/node_modules/@milaboratories/miplots4/dist/types/scatterplot.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer/TextMeasurer.js +39 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer/TextMeasurer.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer/charToWidth.json.js +101 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer/charToWidth.json.js.map +1 -0
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/arrangeLegendParts.js +4 -4
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/arrangeLegendParts.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/getLegendWidth.js +3 -3
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/getLegendWidth.js.map +1 -1
- package/dist/node_modules/@milaboratories/pf-plots/dist/index.js +1031 -1023
- package/dist/node_modules/@milaboratories/pf-plots/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCells.js +0 -91
- package/dist/node_modules/@milaboratories/miplots4/dist/bubble/getCells.js.map +0 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/add.js +0 -30
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/add.js.map +0 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/cover.js +0 -29
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/cover.js.map +0 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/data.js +0 -12
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/data.js.map +0 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/extent.js +0 -7
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/extent.js.map +0 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/find.js +0 -26
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/find.js.map +0 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/quad.js +0 -7
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/quad.js.map +0 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/quadtree.js +0 -51
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/quadtree.js.map +0 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/remove.js +0 -21
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/remove.js.map +0 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/root.js +0 -7
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/root.js.map +0 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/size.js +0 -12
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/size.js.map +0 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/visit.js +0 -14
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/visit.js.map +0 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/visitAfter.js +0 -19
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/visitAfter.js.map +0 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/x.js +0 -11
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/x.js.map +0 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/y.js +0 -11
- package/dist/node_modules/@milaboratories/miplots4/dist/node_modules/d3-quadtree/src/y.js.map +0 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer.js +0 -24
- package/dist/node_modules/@milaboratories/miplots4/dist/utils/TextMeasurer.js.map +0 -1
package/dist/node_modules/@milaboratories/miplots4/dist/histogram/HistogramSettingsImpl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HistogramSettingsImpl.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/histogram/HistogramSettingsImpl.ts"],"sourcesContent":["import lodash from 'lodash';\nimport { BLACK, DEFAULT_HEIGHT, DEFAULT_HEIGHT_SMALL, DEFAULT_WIDTH, DEFAULT_WIDTH_SMALL } from '../constants';\nimport type {\n ColumnName,\n FrameType,\n HistogramSettings,\n InheritAesHistogram,\n LegendPosition,\n BinsLayer as OuterBinsLayer,\n BinsLineLayer as OuterLineLayer,\n SettingsInterface,\n TitlePosition,\n} from '../types';\nimport { type
|
|
1
|
+
{"version":3,"file":"HistogramSettingsImpl.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/histogram/HistogramSettingsImpl.ts"],"sourcesContent":["import lodash from 'lodash';\nimport { BLACK, DEFAULT_HEIGHT, DEFAULT_HEIGHT_SMALL, DEFAULT_WIDTH, DEFAULT_WIDTH_SMALL } from '../constants';\nimport type {\n ColumnName,\n FrameType,\n HistogramSettings,\n InheritAesHistogram,\n LegendPosition,\n BinsLayer as OuterBinsLayer,\n BinsLineLayer as OuterLineLayer,\n SettingsInterface,\n TitlePosition,\n} from '../types';\nimport { type AesRecord, type ContinuousAesHistogram, HistogramSettingsSchema } from '../types';\nimport { exhaustive } from '../utils';\nimport { MIN_MARGIN, PADDINGS } from './constants';\n\nconst DEFAULT_BINS_COUNT = 10;\n\nexport class BinsLayer {\n readonly type = 'bins';\n readonly aes: {\n fillColor: InheritAesHistogram | string | ContinuousAesHistogram;\n lineColor: string,\n opacity: number;\n } = {\n fillColor: 'white',\n lineColor: BLACK,\n opacity: 1,\n };\n\n constructor(layer: OuterBinsLayer) {\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n}\n\nexport class BinsLineLayer {\n readonly type = 'binsLine';\n readonly aes: {\n opacity: number;\n } = {\n opacity: 1,\n };\n\n constructor(layer: OuterLineLayer) {\n this.aes = {\n ...this.aes,\n ...layer.aes,\n };\n }\n}\n\nexport type HistogramLayer = BinsLayer;\n\nexport class HistogramSettingsImpl implements SettingsInterface {\n readonly id: string;\n readonly type = 'histogram';\n readonly valueColumn: ColumnName;\n readonly binsCount: number;\n readonly facetSettings: {\n sharedX: boolean;\n sharedY: boolean;\n nRows?: number;\n nCols?: number;\n titlePosition: 'left' | 'center' | 'right';\n };\n readonly facetBy: ColumnName[];\n readonly grouping: ColumnName | null;\n readonly groupingStack: 'vertical' | 'horizontal';\n readonly groupingDirection: 'straight' | 'reverse';\n readonly groupingOrder: string[] | null;\n readonly chartSettings: {\n readonly size: {width: number; height: number, innerOffset: number, outerOffset: number};\n readonly title: {name: string; show: boolean; position: TitlePosition};\n readonly yAxis: {showGrid: boolean; showTicks: boolean; hiddenLabels: boolean; scale: 'linear' | 'log'};\n readonly xAxis: {showGrid: boolean; showTicks: boolean; hiddenLabels: boolean; title: string | ColumnName; scale: 'linear' | 'log'};\n readonly frame: {type: FrameType};\n readonly legend: {show: boolean; position: LegendPosition};\n };\n readonly inheritedAes: Record<string, AesRecord>;\n readonly layers: HistogramLayer[];\n\n constructor(settings: HistogramSettings) {\n HistogramSettingsSchema.parse(settings);\n this.id = lodash.uniqueId('settings');\n this.facetSettings = {sharedX: true, sharedY: true, titlePosition: 'left', ...settings.facetSettings};\n this.valueColumn = settings.valueColumn;\n this.binsCount = settings.binsCount ?? DEFAULT_BINS_COUNT;\n this.facetBy = settings.facetBy ?? [];\n this.grouping = settings.grouping ?? null;\n this.groupingStack = settings.groupingStack ?? 'vertical';\n this.groupingDirection = settings.groupingDirection ?? 'straight';\n this.groupingOrder = settings.groupingOrder ?? null;\n this.chartSettings = {\n size: {\n width: settings?.size?.width ?? (this.facetBy.length ? DEFAULT_WIDTH_SMALL : DEFAULT_WIDTH),\n height: settings?.size?.height ?? (this.facetBy.length ? DEFAULT_HEIGHT_SMALL : DEFAULT_HEIGHT),\n outerOffset: settings?.size?.outerOffset ?? MIN_MARGIN,\n innerOffset: settings?.size?.innerOffset ?? PADDINGS.TOP\n },\n title: {\n position: 'center',\n show: true,\n ...settings.title,\n name: settings.title?.name ?? 'Chart',\n },\n yAxis: {\n showGrid: true,\n showTicks: true,\n scale: settings.xAxis?.scale ?? 'linear',\n hiddenLabels: false,\n ...settings.yAxis,\n },\n xAxis: {\n title: settings.valueColumn.label ?? settings.valueColumn.value ?? '',\n scale: settings.xAxis?.scale ?? 'linear',\n showGrid: settings.xAxis?.showGrid ?? true,\n showTicks: settings.xAxis?.showTicks ?? true,\n hiddenLabels: settings.xAxis?.hiddenLabels ?? false,\n ...settings.xAxis,\n },\n frame: {type: settings.frame?.type ?? 'full'},\n legend: {\n show: true,\n position: 'right',\n ...settings.legend,\n },\n };\n\n this.inheritedAes = settings.inheritedAes ?? {};\n\n this.layers = settings.layers\n .map(layer => {\n if (layer.type === 'bins') {\n return new BinsLayer(layer);\n }\n if (layer.type === 'binsLine') {\n return new BinsLineLayer(layer);\n }\n exhaustive(layer, 'Unknown layer type');\n })\n .filter(Boolean) as HistogramLayer[];\n }\n}\n"],"names":["DEFAULT_BINS_COUNT","BinsLayer","layer","__publicField","BLACK","BinsLineLayer","HistogramSettingsImpl","settings","HistogramSettingsSchema","lodash","_a","DEFAULT_WIDTH_SMALL","DEFAULT_WIDTH","_b","DEFAULT_HEIGHT_SMALL","DEFAULT_HEIGHT","_c","MIN_MARGIN","_d","PADDINGS","_e","_f","_g","_h","_i","_j","_k","exhaustive"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -6,7 +6,7 @@ import { ContinuousGrid as Q } from "../../common/ContinuousGrid.js";
|
|
|
6
6
|
import { Tooltip as V } from "../../common/Tooltip.js";
|
|
7
7
|
import { BLACK as C } from "../../constants.js";
|
|
8
8
|
import { numberFormat as F } from "../../utils/numberFormat.js";
|
|
9
|
-
import { DEFAULT_TICKS_SIZE as I, FACET_TITLE_LINE as
|
|
9
|
+
import { DEFAULT_TICKS_SIZE as I, FACET_TITLE_LINE as D, TITLE_LINE as $ } from "../constants.js";
|
|
10
10
|
function tt(t) {
|
|
11
11
|
return typeof t == "string" ? t : t.value;
|
|
12
12
|
}
|
|
@@ -29,35 +29,35 @@ function gt({
|
|
|
29
29
|
height: l,
|
|
30
30
|
dimensions: i,
|
|
31
31
|
scales: o,
|
|
32
|
-
xAxis:
|
|
32
|
+
xAxis: h,
|
|
33
33
|
yAxis: y,
|
|
34
|
-
frameType:
|
|
34
|
+
frameType: E,
|
|
35
35
|
histogramData: b,
|
|
36
36
|
facetSettings: g,
|
|
37
37
|
captionsSizes: it,
|
|
38
38
|
facetTitle: j,
|
|
39
39
|
layers: B,
|
|
40
|
-
aesColorGetter:
|
|
41
|
-
groupingDirection:
|
|
42
|
-
groupingStack:
|
|
43
|
-
groupingLabels:
|
|
40
|
+
aesColorGetter: _,
|
|
41
|
+
groupingDirection: A,
|
|
42
|
+
groupingStack: d,
|
|
43
|
+
groupingLabels: G,
|
|
44
44
|
chartSizes: p,
|
|
45
45
|
margins: f,
|
|
46
46
|
tooltipsContainer: M,
|
|
47
47
|
tooltipsData: s
|
|
48
48
|
}) {
|
|
49
|
-
const [L, W] = P.useState(), { padding: a } = i, X =
|
|
49
|
+
const [L, W] = P.useState(), { padding: a } = i, X = h.showTicks ? I : 0, H = y.showTicks ? I : 0, N = i.chartEdgeSides.includes("left") || !(g != null && g.sharedY), Y = i.chartEdgeSides.includes("bottom") || !(g != null && g.sharedX), O = i.chartEdgeSides.includes("bottom"), S = b.groupingKeys, U = b.histogramByGroupingKey[S[0]].bins[0], v = o.x(U.width) - o.x(0), x = d === "vertical" ? v : v / S.length, Z = {
|
|
50
50
|
left: f.left + i.left + a.left,
|
|
51
51
|
right: p.totalWidth - (f.left + i.left + a.left),
|
|
52
52
|
top: f.top + i.top + a.top,
|
|
53
53
|
bottom: p.totalHeight - (f.top + i.top + a.top)
|
|
54
|
-
}, q = L && s.fixed,
|
|
54
|
+
}, q = L && s.fixed, u = !1;
|
|
55
55
|
return /* @__PURE__ */ e.jsxs("g", { transform: `translate(${i.left + a.left},${i.top + a.top})`, children: [
|
|
56
|
-
|
|
56
|
+
u,
|
|
57
57
|
j.length && /* @__PURE__ */ e.jsxs("g", { children: [
|
|
58
|
-
|
|
58
|
+
E === "full" && /* @__PURE__ */ e.jsx("rect", { x: "0", y: -a.top, height: a.top, width: n, fill: "#F7F8FA", stroke: C }),
|
|
59
59
|
j.map((c, m) => {
|
|
60
|
-
const T = j.length, r = (a.top -
|
|
60
|
+
const T = j.length, r = (a.top - D * T) / 2;
|
|
61
61
|
return /* @__PURE__ */ e.jsx(
|
|
62
62
|
"text",
|
|
63
63
|
{
|
|
@@ -65,8 +65,8 @@ function gt({
|
|
|
65
65
|
fontWeight: "500",
|
|
66
66
|
fill: C,
|
|
67
67
|
x: n / 2,
|
|
68
|
-
dy: r +
|
|
69
|
-
y: m *
|
|
68
|
+
dy: r + D / 2 - a.top,
|
|
69
|
+
y: m * D,
|
|
70
70
|
textAnchor: "middle",
|
|
71
71
|
dominantBaseline: "central",
|
|
72
72
|
children: c
|
|
@@ -76,8 +76,8 @@ function gt({
|
|
|
76
76
|
})
|
|
77
77
|
] }),
|
|
78
78
|
/* @__PURE__ */ e.jsxs("g", { dominantBaseline: "central", textAnchor: "middle", fontWeight: "500", fontSize: "14px", fill: C, children: [
|
|
79
|
-
O &&
|
|
80
|
-
|
|
79
|
+
O && h.title && /* @__PURE__ */ e.jsx("text", { x: n / 2, y: l + a.bottom - $ / 2, children: tt(h.title) }),
|
|
80
|
+
u
|
|
81
81
|
] }),
|
|
82
82
|
/* @__PURE__ */ e.jsx(
|
|
83
83
|
Q,
|
|
@@ -86,29 +86,29 @@ function gt({
|
|
|
86
86
|
height: l,
|
|
87
87
|
scaleX: o.x,
|
|
88
88
|
scaleY: o.y,
|
|
89
|
-
axisX:
|
|
89
|
+
axisX: h,
|
|
90
90
|
axisY: y,
|
|
91
|
-
frameType:
|
|
91
|
+
frameType: E
|
|
92
92
|
}
|
|
93
93
|
),
|
|
94
94
|
Y && /* @__PURE__ */ e.jsxs("g", { transform: `translate(0,${l})`, children: [
|
|
95
|
-
/* @__PURE__ */ e.jsx(K, { scale: o.x, orient: "bottom", tickSize: X, hiddenLabels:
|
|
96
|
-
|
|
95
|
+
/* @__PURE__ */ e.jsx(K, { scale: o.x, orient: "bottom", tickSize: X, hiddenLabels: h.hiddenLabels }),
|
|
96
|
+
u
|
|
97
97
|
] }),
|
|
98
98
|
N && /* @__PURE__ */ e.jsxs("g", { children: [
|
|
99
99
|
/* @__PURE__ */ e.jsx(K, { scale: o.y, orient: "left", tickSize: H, hiddenLabels: y.hiddenLabels }),
|
|
100
|
-
|
|
100
|
+
u
|
|
101
101
|
] }),
|
|
102
102
|
B.map((c) => S.map(
|
|
103
103
|
(m, T) => b.histogramByGroupingKey[m].bins.map((r) => {
|
|
104
|
-
const J = q && s.selectedData === r,
|
|
104
|
+
const J = q && s.selectedData === r, w = /* @__PURE__ */ e.jsx(
|
|
105
105
|
"rect",
|
|
106
106
|
{
|
|
107
|
-
x: k(o.x(r.x),
|
|
108
|
-
y: z(r, o.y,
|
|
109
|
-
fill: r.
|
|
107
|
+
x: k(o.x(r.x), d, T, x),
|
|
108
|
+
y: z(r, o.y, d, A),
|
|
109
|
+
fill: r.indexes.length > 0 ? _(c.aes.fillColor, r.indexes[0], r.count) : "",
|
|
110
110
|
stroke: c.aes.lineColor,
|
|
111
|
-
width:
|
|
111
|
+
width: x,
|
|
112
112
|
height: o.y(0) - o.y(r.count),
|
|
113
113
|
opacity: c.aes.opacity ?? 1,
|
|
114
114
|
onMouseOver: () => s.onMouseEnter(r, t),
|
|
@@ -116,7 +116,7 @@ function gt({
|
|
|
116
116
|
},
|
|
117
117
|
r.x
|
|
118
118
|
);
|
|
119
|
-
return J ? R.createPortal(
|
|
119
|
+
return J ? R.createPortal(w, L) : w;
|
|
120
120
|
})
|
|
121
121
|
)),
|
|
122
122
|
s.fixed && /* @__PURE__ */ e.jsx("rect", { width: p.chartWidth, height: p.chartHeight, fill: "rgba(255,255,255,0.8)" }),
|
|
@@ -131,9 +131,9 @@ function gt({
|
|
|
131
131
|
s.selectedData && s.currentFacet === t && /* @__PURE__ */ e.jsx(
|
|
132
132
|
V,
|
|
133
133
|
{
|
|
134
|
-
content: et(s.selectedData,
|
|
135
|
-
x: k(o.x(s.selectedData.x),
|
|
136
|
-
y: z(s.selectedData, o.y,
|
|
134
|
+
content: et(s.selectedData, G),
|
|
135
|
+
x: k(o.x(s.selectedData.x), d, s.selectedData.groupingKeyIdx, x) + x,
|
|
136
|
+
y: z(s.selectedData, o.y, d, A) + o.y(0) - o.y(s.selectedData.count / 2),
|
|
137
137
|
offset: 0,
|
|
138
138
|
active: !0,
|
|
139
139
|
fixed: s.fixed,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chart.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/histogram/components/Chart.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { ContinuousAxis } from '../../common/ContinuousAxis';\nimport { ContinuousGrid } from '../../common/ContinuousGrid';\nimport type { TooltipsData } from '../../common/Tooltip';\nimport { Tooltip } from '../../common/Tooltip';\nimport { BLACK } from '../../constants';\nimport type { ColumnName, FrameType } from '../../types';\nimport { numberFormat } from '../../utils/numberFormat';\nimport { DEFAULT_TICKS_SIZE, FACET_TITLE_LINE, TICK_OFFSET, TITLE_LINE } from '../constants';\nimport type { BinData, GroupedHistogramData } from '../getHistogramData';\nimport type { HistogramLayer, HistogramSettingsImpl } from '../HistogramSettingsImpl';\nimport type {\n AesGetter, CaptionsSizes,\n ChartDimensionsData,\n ChartScales,\n ChartSizes,\n Margins\n} from './types';\n\nfunction getAxisTitle(title: string | ColumnName): string {\n if (typeof title === 'string') {\n return title;\n }\n return title.value;\n}\nfunction getTooltipContent(bin: BinData, groupingLabels:Record<string, string>) {\n const lines = [\n `Amount: ${bin.count}`,\n `(from ${numberFormat(bin.x)}, to ${numberFormat(bin.x + bin.width)})`\n ];\n if (bin.groupingKey !== 'null') {\n lines.push(`${groupingLabels[bin.groupingKey] ?? bin.groupingKey}`);\n }\n return lines;\n}\n\nfunction getBinX(xPx:number, groupingStack: HistogramSettingsImpl['groupingStack'], keyIdx:number, width:number) {\n return groupingStack === 'vertical'\n ? xPx\n : xPx + keyIdx * width;\n}\nfunction getBinY(bin:BinData, scaleY:ChartScales['y'], groupingStack: HistogramSettingsImpl['groupingStack'], groupingDirection: HistogramSettingsImpl['groupingDirection']) {\n return groupingStack === 'vertical'\n ? scaleY(groupingDirection === 'straight' ? bin.y.straight : bin.y.reverse)\n : scaleY(bin.count);\n}\ninterface ChartProps {\n facetKey: string;\n width: number;\n height: number;\n dimensions: ChartDimensionsData;\n scales: ChartScales;\n xAxis: HistogramSettingsImpl['chartSettings']['xAxis'];\n yAxis: HistogramSettingsImpl['chartSettings']['yAxis'];\n frameType: FrameType;\n facetSettings: HistogramSettingsImpl['facetSettings'];\n margins: Margins;\n chartSizes: ChartSizes;\n captionsSizes: CaptionsSizes;\n facetTitle: string[];\n histogramData: GroupedHistogramData;\n layers: HistogramLayer[];\n aesColorGetter: AesGetter;\n groupingDirection: HistogramSettingsImpl['groupingDirection'];\n groupingStack: HistogramSettingsImpl['groupingStack'];\n groupingLabels: Record<string, string>;\n tooltipsContainer?: Element;\n tooltipsData: TooltipsData<BinData>;\n}\n\nexport function Chart({\n facetKey,\n width,\n height,\n dimensions,\n scales,\n xAxis,\n yAxis,\n frameType,\n histogramData,\n facetSettings,\n captionsSizes,\n facetTitle,\n layers,\n aesColorGetter,\n groupingDirection,\n groupingStack,\n groupingLabels,\n chartSizes,\n margins,\n tooltipsContainer,\n tooltipsData\n}: ChartProps) {\n const [activeElementContainer, setActiveElementContainer] = useState<SVGGElement>();\n\n const {padding} = dimensions;\n const tickSizeX = xAxis.showTicks ? DEFAULT_TICKS_SIZE : 0;\n const tickSizeY = yAxis.showTicks ? DEFAULT_TICKS_SIZE : 0;\n const needLeftAxis = dimensions.chartEdgeSides.includes('left') || !facetSettings?.sharedY;\n const needBottomAxis = dimensions.chartEdgeSides.includes('bottom') || !facetSettings?.sharedX;\n const needBottomAxisTitle = dimensions.chartEdgeSides.includes('bottom');\n const groupingKeys = histogramData.groupingKeys;\n\n const firstBin = histogramData.histogramByGroupingKey[groupingKeys[0]].bins[0];\n const binWidth = scales.x(firstBin.width) - scales.x(0);\n const partialBinWidth = groupingStack === 'vertical' ? binWidth : binWidth / groupingKeys.length;\n\n const sideDistances = {\n left: margins.left + dimensions.left + padding.left,\n right: chartSizes.totalWidth - (margins.left + dimensions.left + padding.left),\n top: margins.top + dimensions.top + padding.top,\n bottom: chartSizes.totalHeight - (margins.top + dimensions.top + padding.top),\n };\n\n const dimmedBackground = activeElementContainer && tooltipsData.fixed;\n const debug = false;\n return (\n <g transform={`translate(${dimensions.left + padding.left},${dimensions.top + padding.top})`}>\n {debug && (\n <g fill=\"none\" stroke=\"green\" strokeWidth=\"2px\">\n <rect width={width} height={padding.top} x={0} y={-padding.top} />\n <rect width={width} height={padding.bottom} x={0} y={height} />\n <rect width={padding.left} height={height} x={-padding.left} y={0} />\n <rect width={padding.right} height={height} x={width} y={0} />\n </g>\n )}\n {facetTitle.length && (\n <g>\n {frameType === 'full' && (\n <rect x=\"0\" y={-padding.top} height={padding.top} width={width} fill=\"#F7F8FA\" stroke={BLACK} />\n )}\n {facetTitle.map((titleLine, idx) => {\n const linesCount = facetTitle.length;\n const topOffset = (padding.top - FACET_TITLE_LINE * linesCount) / 2;\n return (\n <text\n key={idx}\n fontSize=\"14px\"\n fontWeight=\"500\"\n fill={BLACK}\n x={width / 2}\n dy={topOffset + FACET_TITLE_LINE / 2 - padding.top}\n y={idx * FACET_TITLE_LINE}\n textAnchor=\"middle\"\n dominantBaseline=\"central\"\n >\n {titleLine}\n </text>\n );\n })}\n </g>\n )}\n <g dominantBaseline=\"central\" textAnchor=\"middle\" fontWeight=\"500\" fontSize=\"14px\" fill={BLACK}>\n {needBottomAxisTitle && xAxis.title && (\n <text x={width / 2} y={height + padding.bottom - TITLE_LINE / 2}>\n {getAxisTitle(xAxis.title)}\n </text>\n )}\n {debug && needBottomAxisTitle && (\n <rect\n x=\"0\"\n y={height + padding.bottom - TITLE_LINE}\n width={width}\n height={TITLE_LINE}\n fill=\"none\"\n stroke=\"black\"\n />\n )}\n </g>\n <ContinuousGrid\n width={width}\n height={height}\n scaleX={scales.x}\n scaleY={scales.y}\n axisX={xAxis}\n axisY={yAxis}\n frameType={frameType}\n />\n {needBottomAxis && (\n <g transform={`translate(0,${height})`}>\n <ContinuousAxis scale={scales.x} orient=\"bottom\" tickSize={tickSizeX} hiddenLabels={xAxis.hiddenLabels} />\n {debug && (\n <rect\n x=\"0\"\n y={tickSizeX + TICK_OFFSET}\n width={width}\n height={TITLE_LINE}\n fill=\"none\"\n stroke=\"black\"\n />\n )}\n </g>\n )}\n {needLeftAxis && (\n <g>\n <ContinuousAxis scale={scales.y} orient=\"left\" tickSize={tickSizeY} hiddenLabels={yAxis.hiddenLabels} />\n {debug && (\n <rect\n x={-tickSizeY - TICK_OFFSET - captionsSizes.yAxisCaptionsWidth}\n y=\"0\"\n width={captionsSizes.yAxisCaptionsWidth}\n height={height}\n fill=\"none\"\n stroke=\"black\"\n />\n )}\n </g>\n )}\n {layers.map(layer => groupingKeys.map((groupingKey, keyIdx) =>\n histogramData.histogramByGroupingKey[groupingKey].bins.map((bin) => {\n const highlighted = dimmedBackground && tooltipsData.selectedData === bin;\n const binElement = (\n <rect\n key={bin.x}\n x={getBinX(scales.x(bin.x), groupingStack, keyIdx, partialBinWidth)}\n y={getBinY(bin, scales.y, groupingStack, groupingDirection)}\n fill={bin.rows[0] ? aesColorGetter(layer.aes.fillColor, bin.rows[0], bin.count) : ''}\n stroke={layer.aes.lineColor}\n width={partialBinWidth}\n height={scales.y(0) - scales.y(bin.count)}\n opacity={layer.aes.opacity ?? 1}\n onMouseOver={() => tooltipsData.onMouseEnter(bin, facetKey)}\n onMouseLeave={() => tooltipsData.onMouseLeave()}\n />\n );\n return highlighted ? createPortal(binElement, activeElementContainer) : binElement;\n })\n ))}\n {tooltipsData.fixed && <rect width={chartSizes.chartWidth} height={chartSizes.chartHeight} fill=\"rgba(255,255,255,0.8)\"/>}\n <g ref={node => {\n if (node && !activeElementContainer) {\n setActiveElementContainer(node);\n }\n }}\n />\n {tooltipsData.selectedData && tooltipsData.currentFacet === facetKey && (\n <Tooltip\n content={getTooltipContent(tooltipsData.selectedData, groupingLabels)}\n x={getBinX(scales.x(tooltipsData.selectedData.x), groupingStack, tooltipsData.selectedData.groupingKeyIdx, partialBinWidth) + partialBinWidth}\n y={getBinY(tooltipsData.selectedData, scales.y, groupingStack, groupingDirection) + scales.y(0) - scales.y(tooltipsData.selectedData.count / 2)}\n offset={0}\n active\n fixed={tooltipsData.fixed}\n sideDistances={sideDistances}\n container={tooltipsContainer}\n onClose={tooltipsData.onClose}\n />\n )}\n </g>\n );\n}\n"],"names":["getAxisTitle","title","getTooltipContent","bin","groupingLabels","lines","numberFormat","getBinX","xPx","groupingStack","keyIdx","width","getBinY","scaleY","groupingDirection","Chart","facetKey","height","dimensions","scales","xAxis","yAxis","frameType","histogramData","facetSettings","captionsSizes","facetTitle","layers","aesColorGetter","chartSizes","margins","tooltipsContainer","tooltipsData","activeElementContainer","setActiveElementContainer","useState","padding","tickSizeX","DEFAULT_TICKS_SIZE","tickSizeY","needLeftAxis","needBottomAxis","needBottomAxisTitle","groupingKeys","firstBin","binWidth","partialBinWidth","sideDistances","dimmedBackground","debug","jsxs","jsx","BLACK","titleLine","idx","linesCount","topOffset","FACET_TITLE_LINE","TITLE_LINE","ContinuousGrid","ContinuousAxis","layer","groupingKey","highlighted","binElement","createPortal","node","Tooltip"],"mappings":";;;;;;;;;AAoBA,SAASA,GAAaC,GAAoC;AACtD,SAAI,OAAOA,KAAU,WACVA,IAEJA,EAAM;AACjB;AACA,SAASC,GAAkBC,GAAcC,GAAuC;AAC5E,QAAMC,IAAS;AAAA,IACX,WAAWF,EAAI,KAAK;AAAA,IACpB,SAASG,EAAaH,EAAI,CAAC,CAAC,QAAQG,EAAaH,EAAI,IAAIA,EAAI,KAAK,CAAC;AAAA,EAAA;AAEvE,SAAIA,EAAI,gBAAgB,UACpBE,EAAM,KAAK,GAAGD,EAAeD,EAAI,WAAW,KAAKA,EAAI,WAAW,EAAE,GAE/DE;AACX;AAEA,SAASE,EAAQC,GAAYC,GAAuDC,GAAeC,GAAc;AAC7G,SAAOF,MAAkB,aACnBD,IACAA,IAAME,IAASC;AACzB;AACA,SAASC,EAAQT,GAAaU,GAAyBJ,GAAuDK,GAA+D;AACzK,SACMD,EADCJ,MAAkB,aACZK,MAAsB,aAAaX,EAAI,EAAE,WAAWA,EAAI,EAAE,UAC1DA,EAAI,KAD6D;AAElF;AAyBO,SAASY,GAAM;AAAA,EAClB,UAAAC;AAAAA,EACA,OAAAL;AAAAA,EACA,QAAAM;AAAAA,EACA,YAAAC;AAAAA,EACA,QAAAC;AAAAA,EACA,OAAAC;AAAAA,EACA,OAAAC;AAAAA,EACA,WAAAC;AAAAA,EACA,eAAAC;AAAAA,EACA,eAAAC;AAAAA,EACA,eAAAC;AAAAA,EACA,YAAAC;AAAAA,EACA,QAAAC;AAAAA,EACA,gBAAAC;AAAAA,EACA,mBAAAd;AAAAA,EACA,eAAAL;AAAAA,EACA,gBAAAL;AAAAA,EACA,YAAAyB;AAAAA,EACA,SAAAC;AAAAA,EACA,mBAAAC;AAAAA,EACA,cAAAC;AACJ,GAAe;AACX,QAAM,CAACC,GAAwBC,CAAyB,IAAIC,EAAAA,SAAAA,GAEtD,EAAC,SAAAC,EAAAA,IAAWlB,GACZmB,IAAYjB,EAAM,YAAYkB,IAAqB,GACnDC,IAAYlB,EAAM,YAAYiB,IAAqB,GACnDE,IAAetB,EAAW,eAAe,SAAS,MAAM,KAAK,EAACM,KAAA,QAAAA,EAAe,UAC7EiB,IAAiBvB,EAAW,eAAe,SAAS,QAAQ,KAAK,EAACM,KAAA,QAAAA,EAAe,UACjFkB,IAAsBxB,EAAW,eAAe,SAAS,QAAQ,GACjEyB,IAAepB,EAAc,cAE7BqB,IAAWrB,EAAc,uBAAuBoB,EAAa,CAAC,CAAC,EAAE,KAAK,CAAC,GACvEE,IAAW1B,EAAO,EAAEyB,EAAS,KAAK,IAAIzB,EAAO,EAAE,CAAC,GAChD2B,IAAkBrC,MAAkB,aAAaoC,IAAWA,IAAWF,EAAa,QAEpFI,IAAgB;AAAA,IAClB,MAAMjB,EAAQ,OAAOZ,EAAW,OAAOkB,EAAQ;AAAA,IAC/C,OAAOP,EAAW,cAAcC,EAAQ,OAAOZ,EAAW,OAAOkB,EAAQ;AAAA,IACzE,KAAKN,EAAQ,MAAMZ,EAAW,MAAMkB,EAAQ;AAAA,IAC5C,QAAQP,EAAW,eAAeC,EAAQ,MAAMZ,EAAW,MAAMkB,EAAQ;AAAA,EAAA,GAGvEY,IAAmBf,KAA0BD,EAAa,OAC1DiB,IAAQ;AACd,SACIC,gBAAAA,EAAAA,KAAC,KAAA,EAAE,WAAW,aAAahC,EAAW,OAAOkB,EAAQ,IAAI,IAAIlB,EAAW,MAAMkB,EAAQ,GAAG,KACpF,UAAA;AAAA,IAAAa;AAAAA,IAQAvB,EAAW,UACRwB,gBAAAA,EAAAA,KAAC,KAAA,EACI,UAAA;AAAA,MAAA5B,MAAc,UACX6B,gBAAAA,EAAAA,IAAC,QAAA,EAAK,GAAE,KAAI,GAAG,CAACf,EAAQ,KAAK,QAAQA,EAAQ,KAAK,OAAAzB,GAAc,MAAK,WAAU,QAAQyC,GAAO;AAAA,MAEjG1B,EAAW,IAAI,CAAC2B,GAAWC,MAAQ;AAChC,cAAMC,IAAa7B,EAAW,QACxB8B,KAAapB,EAAQ,MAAMqB,IAAmBF,KAAc;AAClE,eACIJ,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YAEG,UAAS;AAAA,YACT,YAAW;AAAA,YACX,MAAMC;AAAAA,YACN,GAAGzC,IAAQ;AAAA,YACX,IAAI6C,IAAYC,IAAmB,IAAIrB,EAAQ;AAAA,YAC/C,GAAGkB,IAAMG;AAAAA,YACT,YAAW;AAAA,YACX,kBAAiB;AAAA,YAEhB,UAAAJ;AAAAA,UAAA;AAAA,UAVIC;AAAAA,QAAA;AAAA,MAajB,CAAC;AAAA,IAAA,GACL;AAAA,IAEJJ,gBAAAA,EAAAA,KAAC,KAAA,EAAE,kBAAiB,WAAU,YAAW,UAAS,YAAW,OAAM,UAAS,QAAO,MAAME,GACpF,UAAA;AAAA,MAAAV,KAAuBtB,EAAM,SAC1B+B,gBAAAA,EAAAA,IAAC,QAAA,EAAK,GAAGxC,IAAQ,GAAG,GAAGM,IAASmB,EAAQ,SAASsB,IAAa,GACzD,UAAA1D,GAAaoB,EAAM,KAAK,GAC7B;AAAA,MAEH6B;AAAAA,IAAA,GAUL;AAAA,IACAE,gBAAAA,EAAAA;AAAAA,MAACQ;AAAAA,MAAA;AAAA,QACG,OAAAhD;AAAAA,QACA,QAAAM;AAAAA,QACA,QAAQE,EAAO;AAAA,QACf,QAAQA,EAAO;AAAA,QACf,OAAOC;AAAAA,QACP,OAAOC;AAAAA,QACP,WAAAC;AAAAA,MAAA;AAAA,IAAA;AAAA,IAEHmB,KACGS,gBAAAA,EAAAA,KAAC,KAAA,EAAE,WAAW,eAAejC,CAAM,KAC/B,UAAA;AAAA,MAAAkC,gBAAAA,EAAAA,IAACS,GAAA,EAAe,OAAOzC,EAAO,GAAG,QAAO,UAAS,UAAUkB,GAAW,cAAcjB,EAAM,cAAc;AAAA,MACvG6B;AAAAA,IAAA,GAUL;AAAA,IAEHT,KAAAA,gBAAAA,EAAAA,KACI,KAAA,EACG,UAAA;AAAA,MAAAW,gBAAAA,EAAAA,IAACS,GAAA,EAAe,OAAOzC,EAAO,GAAG,QAAO,QAAO,UAAUoB,GAAW,cAAclB,EAAM,cAAc;AAAA,MACrG4B;AAAAA,IAAA,GAUL;AAAA,IAEHtB,EAAO,IAAI,CAAAkC,MAASlB,EAAa;AAAA,MAAI,CAACmB,GAAapD,MAChDa,EAAc,uBAAuBuC,CAAW,EAAE,KAAK,IAAI,CAAC3D,MAAQ;AAChE,cAAM4D,IAAcf,KAAoBhB,EAAa,iBAAiB7B,GAChE6D,IACFb,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YAEG,GAAG5C,EAAQY,EAAO,EAAEhB,EAAI,CAAC,GAAGM,GAAeC,GAAQoC,CAAe;AAAA,YAClE,GAAGlC,EAAQT,GAAKgB,EAAO,GAAGV,GAAeK,CAAiB;AAAA,YAC1D,MAAMX,EAAI,KAAK,CAAC,IAAIyB,EAAeiC,EAAM,IAAI,WAAW1D,EAAI,KAAK,CAAC,GAAGA,EAAI,KAAK,IAAI;AAAA,YAClF,QAAQ0D,EAAM,IAAI;AAAA,YAClB,OAAOf;AAAAA,YACP,QAAQ3B,EAAO,EAAE,CAAC,IAAIA,EAAO,EAAEhB,EAAI,KAAK;AAAA,YACxC,SAAS0D,EAAM,IAAI,WAAW;AAAA,YAC9B,aAAa,MAAM7B,EAAa,aAAa7B,GAAKa,CAAQ;AAAA,YAC1D,cAAc,MAAMgB,EAAa,aAAA;AAAA,UAAA;AAAA,UAT5B7B,EAAI;AAAA,QAAA;AAYjB,eAAO4D,IAAcE,EAAAA,aAAaD,GAAY/B,CAAsB,IAAI+B;AAAAA,MAC5E,CAAC;AAAA,IAAA,CACJ;AAAA,IACAhC,EAAa,SAASmB,gBAAAA,EAAAA,IAAC,QAAA,EAAK,OAAOtB,EAAW,YAAY,QAAQA,EAAW,aAAa,MAAK,yBAAuB;AAAA,IACvHsB,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QAAE,KAAK,CAAAe,MAAQ;AACRA,UAAAA,KAAQ,CAACjC,KACTC,EAA0BgC,CAAI;AAAA,QAEtC;AAAA,MAAA;AAAA,IAAA;AAAA,IAEClC,EAAa,gBAAgBA,EAAa,iBAAiBhB,KACxDmC,gBAAAA,EAAAA;AAAAA,MAACgB;AAAAA,MAAA;AAAA,QACG,SAASjE,GAAkB8B,EAAa,cAAc5B,CAAc;AAAA,QACpE,GAAGG,EAAQY,EAAO,EAAEa,EAAa,aAAa,CAAC,GAAGvB,GAAeuB,EAAa,aAAa,gBAAgBc,CAAe,IAAIA;AAAAA,QAC9H,GAAGlC,EAAQoB,EAAa,cAAcb,EAAO,GAAGV,GAAeK,CAAiB,IAAIK,EAAO,EAAE,CAAC,IAAIA,EAAO,EAAEa,EAAa,aAAa,QAAQ,CAAC;AAAA,QAC9I,QAAQ;AAAA,QACR,QAAM;AAAA,QACN,OAAOA,EAAa;AAAA,QACpB,eAAAe;AAAAA,QACA,WAAWhB;AAAAA,QACX,SAASC,EAAa;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA,GAGlC;AAER;","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"Chart.js","sources":["../../../../../../../node_modules/@milaboratories/miplots4/src/histogram/components/Chart.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { createPortal } from 'react-dom';\nimport { ContinuousAxis } from '../../common/ContinuousAxis';\nimport { ContinuousGrid } from '../../common/ContinuousGrid';\nimport type { TooltipsData } from '../../common/Tooltip';\nimport { Tooltip } from '../../common/Tooltip';\nimport { BLACK } from '../../constants';\nimport type { ColumnName, FrameType } from '../../types';\nimport { numberFormat } from '../../utils/numberFormat';\nimport { DEFAULT_TICKS_SIZE, FACET_TITLE_LINE, TICK_OFFSET, TITLE_LINE } from '../constants';\nimport type { BinData, GroupedHistogramData } from '../getHistogramData';\nimport type { HistogramLayer, HistogramSettingsImpl } from '../HistogramSettingsImpl';\nimport type {\n AesGetter, CaptionsSizes,\n ChartDimensionsData,\n ChartScales,\n ChartSizes,\n Margins\n} from './types';\n\nfunction getAxisTitle(title: string | ColumnName): string {\n if (typeof title === 'string') {\n return title;\n }\n return title.value;\n}\nfunction getTooltipContent(bin: BinData, groupingLabels:Record<string, string>) {\n const lines = [\n `Amount: ${bin.count}`,\n `(from ${numberFormat(bin.x)}, to ${numberFormat(bin.x + bin.width)})`\n ];\n if (bin.groupingKey !== 'null') {\n lines.push(`${groupingLabels[bin.groupingKey] ?? bin.groupingKey}`);\n }\n return lines;\n}\n\nfunction getBinX(xPx:number, groupingStack: HistogramSettingsImpl['groupingStack'], keyIdx:number, width:number) {\n return groupingStack === 'vertical'\n ? xPx\n : xPx + keyIdx * width;\n}\nfunction getBinY(bin:BinData, scaleY:ChartScales['y'], groupingStack: HistogramSettingsImpl['groupingStack'], groupingDirection: HistogramSettingsImpl['groupingDirection']) {\n return groupingStack === 'vertical'\n ? scaleY(groupingDirection === 'straight' ? bin.y.straight : bin.y.reverse)\n : scaleY(bin.count);\n}\ninterface ChartProps {\n facetKey: string;\n width: number;\n height: number;\n dimensions: ChartDimensionsData;\n scales: ChartScales;\n xAxis: HistogramSettingsImpl['chartSettings']['xAxis'];\n yAxis: HistogramSettingsImpl['chartSettings']['yAxis'];\n frameType: FrameType;\n facetSettings: HistogramSettingsImpl['facetSettings'];\n margins: Margins;\n chartSizes: ChartSizes;\n captionsSizes: CaptionsSizes;\n facetTitle: string[];\n histogramData: GroupedHistogramData;\n layers: HistogramLayer[];\n aesColorGetter: AesGetter;\n groupingDirection: HistogramSettingsImpl['groupingDirection'];\n groupingStack: HistogramSettingsImpl['groupingStack'];\n groupingLabels: Record<string, string>;\n tooltipsContainer?: Element;\n tooltipsData: TooltipsData<BinData>;\n}\n\nexport function Chart({\n facetKey,\n width,\n height,\n dimensions,\n scales,\n xAxis,\n yAxis,\n frameType,\n histogramData,\n facetSettings,\n captionsSizes,\n facetTitle,\n layers,\n aesColorGetter,\n groupingDirection,\n groupingStack,\n groupingLabels,\n chartSizes,\n margins,\n tooltipsContainer,\n tooltipsData\n}: ChartProps) {\n const [activeElementContainer, setActiveElementContainer] = useState<SVGGElement>();\n\n const {padding} = dimensions;\n const tickSizeX = xAxis.showTicks ? DEFAULT_TICKS_SIZE : 0;\n const tickSizeY = yAxis.showTicks ? DEFAULT_TICKS_SIZE : 0;\n const needLeftAxis = dimensions.chartEdgeSides.includes('left') || !facetSettings?.sharedY;\n const needBottomAxis = dimensions.chartEdgeSides.includes('bottom') || !facetSettings?.sharedX;\n const needBottomAxisTitle = dimensions.chartEdgeSides.includes('bottom');\n const groupingKeys = histogramData.groupingKeys;\n\n const firstBin = histogramData.histogramByGroupingKey[groupingKeys[0]].bins[0];\n const binWidth = scales.x(firstBin.width) - scales.x(0);\n const partialBinWidth = groupingStack === 'vertical' ? binWidth : binWidth / groupingKeys.length;\n\n const sideDistances = {\n left: margins.left + dimensions.left + padding.left,\n right: chartSizes.totalWidth - (margins.left + dimensions.left + padding.left),\n top: margins.top + dimensions.top + padding.top,\n bottom: chartSizes.totalHeight - (margins.top + dimensions.top + padding.top),\n };\n\n const dimmedBackground = activeElementContainer && tooltipsData.fixed;\n const debug = false;\n return (\n <g transform={`translate(${dimensions.left + padding.left},${dimensions.top + padding.top})`}>\n {debug && (\n <g fill=\"none\" stroke=\"green\" strokeWidth=\"2px\">\n <rect width={width} height={padding.top} x={0} y={-padding.top} />\n <rect width={width} height={padding.bottom} x={0} y={height} />\n <rect width={padding.left} height={height} x={-padding.left} y={0} />\n <rect width={padding.right} height={height} x={width} y={0} />\n </g>\n )}\n {facetTitle.length && (\n <g>\n {frameType === 'full' && (\n <rect x=\"0\" y={-padding.top} height={padding.top} width={width} fill=\"#F7F8FA\" stroke={BLACK} />\n )}\n {facetTitle.map((titleLine, idx) => {\n const linesCount = facetTitle.length;\n const topOffset = (padding.top - FACET_TITLE_LINE * linesCount) / 2;\n return (\n <text\n key={idx}\n fontSize=\"14px\"\n fontWeight=\"500\"\n fill={BLACK}\n x={width / 2}\n dy={topOffset + FACET_TITLE_LINE / 2 - padding.top}\n y={idx * FACET_TITLE_LINE}\n textAnchor=\"middle\"\n dominantBaseline=\"central\"\n >\n {titleLine}\n </text>\n );\n })}\n </g>\n )}\n <g dominantBaseline=\"central\" textAnchor=\"middle\" fontWeight=\"500\" fontSize=\"14px\" fill={BLACK}>\n {needBottomAxisTitle && xAxis.title && (\n <text x={width / 2} y={height + padding.bottom - TITLE_LINE / 2}>\n {getAxisTitle(xAxis.title)}\n </text>\n )}\n {debug && needBottomAxisTitle && (\n <rect\n x=\"0\"\n y={height + padding.bottom - TITLE_LINE}\n width={width}\n height={TITLE_LINE}\n fill=\"none\"\n stroke=\"black\"\n />\n )}\n </g>\n <ContinuousGrid\n width={width}\n height={height}\n scaleX={scales.x}\n scaleY={scales.y}\n axisX={xAxis}\n axisY={yAxis}\n frameType={frameType}\n />\n {needBottomAxis && (\n <g transform={`translate(0,${height})`}>\n <ContinuousAxis scale={scales.x} orient=\"bottom\" tickSize={tickSizeX} hiddenLabels={xAxis.hiddenLabels} />\n {debug && (\n <rect\n x=\"0\"\n y={tickSizeX + TICK_OFFSET}\n width={width}\n height={TITLE_LINE}\n fill=\"none\"\n stroke=\"black\"\n />\n )}\n </g>\n )}\n {needLeftAxis && (\n <g>\n <ContinuousAxis scale={scales.y} orient=\"left\" tickSize={tickSizeY} hiddenLabels={yAxis.hiddenLabels} />\n {debug && (\n <rect\n x={-tickSizeY - TICK_OFFSET - captionsSizes.yAxisCaptionsWidth}\n y=\"0\"\n width={captionsSizes.yAxisCaptionsWidth}\n height={height}\n fill=\"none\"\n stroke=\"black\"\n />\n )}\n </g>\n )}\n {layers.map(layer => groupingKeys.map((groupingKey, keyIdx) =>\n histogramData.histogramByGroupingKey[groupingKey].bins.map((bin) => {\n const highlighted = dimmedBackground && tooltipsData.selectedData === bin;\n const binElement = (\n <rect\n key={bin.x}\n x={getBinX(scales.x(bin.x), groupingStack, keyIdx, partialBinWidth)}\n y={getBinY(bin, scales.y, groupingStack, groupingDirection)}\n fill={bin.indexes.length > 0 ? aesColorGetter(layer.aes.fillColor, bin.indexes[0], bin.count) : ''}\n stroke={layer.aes.lineColor}\n width={partialBinWidth}\n height={scales.y(0) - scales.y(bin.count)}\n opacity={layer.aes.opacity ?? 1}\n onMouseOver={() => tooltipsData.onMouseEnter(bin, facetKey)}\n onMouseLeave={() => tooltipsData.onMouseLeave()}\n />\n );\n return highlighted ? createPortal(binElement, activeElementContainer) : binElement;\n })\n ))}\n {tooltipsData.fixed && <rect width={chartSizes.chartWidth} height={chartSizes.chartHeight} fill=\"rgba(255,255,255,0.8)\"/>}\n <g ref={node => {\n if (node && !activeElementContainer) {\n setActiveElementContainer(node);\n }\n }}\n />\n {tooltipsData.selectedData && tooltipsData.currentFacet === facetKey && (\n <Tooltip\n content={getTooltipContent(tooltipsData.selectedData, groupingLabels)}\n x={getBinX(scales.x(tooltipsData.selectedData.x), groupingStack, tooltipsData.selectedData.groupingKeyIdx, partialBinWidth) + partialBinWidth}\n y={getBinY(tooltipsData.selectedData, scales.y, groupingStack, groupingDirection) + scales.y(0) - scales.y(tooltipsData.selectedData.count / 2)}\n offset={0}\n active\n fixed={tooltipsData.fixed}\n sideDistances={sideDistances}\n container={tooltipsContainer}\n onClose={tooltipsData.onClose}\n />\n )}\n </g>\n );\n}\n"],"names":["getAxisTitle","title","getTooltipContent","bin","groupingLabels","lines","numberFormat","getBinX","xPx","groupingStack","keyIdx","width","getBinY","scaleY","groupingDirection","Chart","facetKey","height","dimensions","scales","xAxis","yAxis","frameType","histogramData","facetSettings","captionsSizes","facetTitle","layers","aesColorGetter","chartSizes","margins","tooltipsContainer","tooltipsData","activeElementContainer","setActiveElementContainer","useState","padding","tickSizeX","DEFAULT_TICKS_SIZE","tickSizeY","needLeftAxis","needBottomAxis","needBottomAxisTitle","groupingKeys","firstBin","binWidth","partialBinWidth","sideDistances","dimmedBackground","debug","jsxs","jsx","BLACK","titleLine","idx","linesCount","topOffset","FACET_TITLE_LINE","TITLE_LINE","ContinuousGrid","ContinuousAxis","layer","groupingKey","highlighted","binElement","createPortal","node","Tooltip"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -15,7 +15,7 @@ function X({
|
|
|
15
15
|
columnsCount: m,
|
|
16
16
|
facetKeys: o,
|
|
17
17
|
facetSettings: d,
|
|
18
|
-
scales:
|
|
18
|
+
scales: l,
|
|
19
19
|
margins: i,
|
|
20
20
|
mainTitle: f,
|
|
21
21
|
facetTitles: u,
|
|
@@ -29,11 +29,11 @@ function X({
|
|
|
29
29
|
legend: C,
|
|
30
30
|
onTooltipHintSwitch: W
|
|
31
31
|
}) {
|
|
32
|
-
const $ = I(W), { xAxis: A, yAxis: E, title:
|
|
32
|
+
const $ = I(W), { xAxis: A, yAxis: E, title: g, frame: F } = p, h = a[o[0]].padding, G = a[o[m - 1]].padding, [H, L] = n.useState(), r = n.useRef(null);
|
|
33
33
|
n.useEffect(() => {
|
|
34
34
|
r.current && L(r.current);
|
|
35
35
|
}, []);
|
|
36
|
-
const v = i.left + t.chartsWidth + K, z = i.top +
|
|
36
|
+
const v = i.left + t.chartsWidth + K, z = i.top + h.top;
|
|
37
37
|
return /* @__PURE__ */ e.jsx(R, { dataId: c, children: /* @__PURE__ */ e.jsxs(
|
|
38
38
|
"svg",
|
|
39
39
|
{
|
|
@@ -48,9 +48,9 @@ function X({
|
|
|
48
48
|
B,
|
|
49
49
|
{
|
|
50
50
|
title: f,
|
|
51
|
-
show:
|
|
52
|
-
position:
|
|
53
|
-
leftPadding:
|
|
51
|
+
show: g.show,
|
|
52
|
+
position: g.position,
|
|
53
|
+
leftPadding: h.left,
|
|
54
54
|
rightPadding: G.right,
|
|
55
55
|
chartsWidth: t.chartsWidth
|
|
56
56
|
}
|
|
@@ -59,7 +59,7 @@ function X({
|
|
|
59
59
|
P,
|
|
60
60
|
{
|
|
61
61
|
facetKey: s,
|
|
62
|
-
scales: { x:
|
|
62
|
+
scales: { x: l.x[s], y: l.y[s] },
|
|
63
63
|
width: t.chartWidth,
|
|
64
64
|
height: t.chartHeight,
|
|
65
65
|
dimensions: a[s],
|
|
@@ -1,83 +1,82 @@
|
|
|
1
1
|
import M from "../node_modules/d3-array/src/extent.js";
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
if (
|
|
8
|
-
return [
|
|
9
|
-
if (
|
|
10
|
-
return [(
|
|
11
|
-
const
|
|
12
|
-
for (let
|
|
13
|
-
|
|
14
|
-
return
|
|
2
|
+
import K from "../node_modules/d3-array/src/bin.js";
|
|
3
|
+
import G from "../node_modules/d3-array/src/max.js";
|
|
4
|
+
import V from "../node_modules/d3-scale/src/symlog.js";
|
|
5
|
+
const b = (o, u) => {
|
|
6
|
+
const a = Math.min(...u), n = Math.max(...u);
|
|
7
|
+
if (a === n)
|
|
8
|
+
return [a];
|
|
9
|
+
if (o < 2)
|
|
10
|
+
return [(a + n) / 2];
|
|
11
|
+
const e = (n - a) / o, s = [];
|
|
12
|
+
for (let r = 1; r < o; r++)
|
|
13
|
+
s.push(a + e * r);
|
|
14
|
+
return s;
|
|
15
15
|
};
|
|
16
|
-
function
|
|
17
|
-
return
|
|
18
|
-
|
|
16
|
+
function E(o, u, a) {
|
|
17
|
+
return o.map((n) => ({
|
|
18
|
+
indexes: n,
|
|
19
|
+
x: n.x0 ?? 0,
|
|
19
20
|
y: {
|
|
20
21
|
straight: n.length,
|
|
21
22
|
reverse: n.length
|
|
22
23
|
},
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
groupingKeyIdx: t,
|
|
24
|
+
count: n.length,
|
|
25
|
+
groupingKey: u,
|
|
26
|
+
groupingKeyIdx: a,
|
|
27
27
|
width: (n.x1 ?? 0) - (n.x0 ?? 0)
|
|
28
28
|
}));
|
|
29
29
|
}
|
|
30
|
-
function
|
|
31
|
-
const
|
|
30
|
+
function L(o, u, a, n, e, s, r) {
|
|
31
|
+
const g = b(n, e), t = K().domain(e).thresholds(g).value((i) => o.getColumnValue(a.value, i))(u);
|
|
32
32
|
return {
|
|
33
|
-
bins:
|
|
34
|
-
maxCount:
|
|
33
|
+
bins: E(t, s, r),
|
|
34
|
+
maxCount: G(t, (i) => i.length) ?? 0
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
-
function
|
|
38
|
-
const
|
|
37
|
+
function X(o, u, a, n, e, s, r) {
|
|
38
|
+
const g = b(n, e), t = V().domain(e).range(e), i = g.map((m) => t.invert(m)), c = K().domain(e).thresholds(i).value((m) => o.getColumnValue(a.value, m))(u);
|
|
39
39
|
return {
|
|
40
|
-
bins:
|
|
41
|
-
maxCount:
|
|
40
|
+
bins: E(c, s, r),
|
|
41
|
+
maxCount: G(c, (m) => m.length) ?? 0
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
|
-
function
|
|
45
|
-
const
|
|
46
|
-
return
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
groupingKeys: t,
|
|
44
|
+
function A(o, u, a, n, e, s) {
|
|
45
|
+
const r = {};
|
|
46
|
+
return u.forEach((g) => {
|
|
47
|
+
const t = g.join("_");
|
|
48
|
+
r[t] = {
|
|
49
|
+
groupingKeys: a,
|
|
51
50
|
histogramByGroupingKey: {},
|
|
52
51
|
minX: 1 / 0,
|
|
53
52
|
maxX: -1 / 0,
|
|
54
53
|
maxCount: 0,
|
|
55
54
|
maxCountFromGroups: 0
|
|
56
55
|
};
|
|
57
|
-
const
|
|
58
|
-
let [
|
|
59
|
-
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
const y =
|
|
65
|
-
x.bins.forEach((
|
|
66
|
-
|
|
56
|
+
const i = o.getRowsByGrouping([...g]);
|
|
57
|
+
let [c, m] = M(i, (l) => o.getColumnValue(n.value, l));
|
|
58
|
+
c ?? (c = o.getColumnValue(n.value, i[0]) ?? 0), m ?? (m = o.getColumnValue(n.value, i[0]) ?? 0);
|
|
59
|
+
const C = [c, m], d = [...a].reverse();
|
|
60
|
+
d.forEach((l, h) => {
|
|
61
|
+
const p = Array.from(o.getRowsByGrouping([...g, l])), x = s === "linear" ? L(o, p, n, e, C, l, h) : X(o, p, n, e, C, l, h);
|
|
62
|
+
r[t].histogramByGroupingKey[l] = x, r[t].minX = C[0], r[t].maxX = C[1], r[t].maxCountFromGroups = Math.max(r[t].maxCountFromGroups, x.maxCount);
|
|
63
|
+
const y = h > 0 ? d[h - 1] : null, f = y !== null ? r[t].histogramByGroupingKey[y] : null;
|
|
64
|
+
x.bins.forEach((v, F) => {
|
|
65
|
+
v.y.straight = ((f == null ? void 0 : f.bins[F].y.straight) ?? 0) + v.count, r[t].maxCount = Math.max(r[t].maxCount, v.y.straight);
|
|
67
66
|
});
|
|
68
67
|
});
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
const
|
|
72
|
-
x.bins.forEach((f,
|
|
73
|
-
f.y.reverse = ((y == null ? void 0 : y.bins[
|
|
68
|
+
const B = a;
|
|
69
|
+
B.forEach((l, h) => {
|
|
70
|
+
const p = h > 0 ? B[h - 1] : null, x = r[t].histogramByGroupingKey[l], y = p !== null ? r[t].histogramByGroupingKey[p] : null;
|
|
71
|
+
x.bins.forEach((f, v) => {
|
|
72
|
+
f.y.reverse = ((y == null ? void 0 : y.bins[v].y.reverse) ?? 0) + f.count;
|
|
74
73
|
});
|
|
75
74
|
});
|
|
76
|
-
}),
|
|
75
|
+
}), r;
|
|
77
76
|
}
|
|
78
77
|
export {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
78
|
+
A as createHistogramDataByFacets,
|
|
79
|
+
L as createHistogramDataLinear,
|
|
80
|
+
X as createHistogramDataLog
|
|
82
81
|
};
|
|
83
82
|
//# sourceMappingURL=getHistogramData.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getHistogramData.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/histogram/getHistogramData.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"getHistogramData.js","sources":["../../../../../../node_modules/@milaboratories/miplots4/src/histogram/getHistogramData.ts"],"sourcesContent":["import type { Bin } from 'd3-array';\nimport { bin, extent, 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, maxV] = extent(allFacetRowsIndexes, idx => data.getColumnValue(valueColumn.value, idx) as number);\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, maxV];\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","c","t","createHistogramDataByFacets","data","facetKeysCombinations","groupingKeys","valueColumn","scale","result","facetKeys","facetKey","allFacetRowsIndexes","minV","maxV","extent","forwardKeys","groupingKey","histogram","previousKey","previousHistogram","reversedKeys"],"mappings":";;;;AAgCA,MAAMA,IAAW,CAACC,GAAeC,MAA0B;AACvD,QAAMC,IAAM,KAAK,IAAI,GAAGD,CAAW,GAC7BE,IAAM,KAAK,IAAI,GAAGF,CAAW;AACnC,MAAIC,MAAQC;AACR,WAAO,CAACD,CAAG;AAEf,MAAIF,IAAQ;AACR,WAAO,EAAEE,IAAMC,KAAO,CAAC;AAE3B,QAAMC,KAAQD,IAAMD,KAAOF,GACrBK,IAAQ,CAAA;AACd,WAASC,IAAI,GAAGA,IAAIN,GAAOM;AACvBD,IAAAA,EAAM,KAAKH,IAAME,IAAOE,CAAC;AAE7B,SAAOD;AACX;AAEA,SAASE,EAAeC,GAA8BC,GAAYC,GAAyB;AACvF,SAAOF,EAAK,IAAI,CAACG,OAAO;AAAA,IACpB,SAASA;AAAAA,IACT,GAAGA,EAAE,MAAM;AAAA,IACX,GAAG;AAAA,MACC,UAAUA,EAAE;AAAA,MACZ,SAASA,EAAE;AAAA,IAAA;AAAA,IAEf,OAAOA,EAAE;AAAA,IACT,aAAaF;AAAAA,IACb,gBAAgBC;AAAAA,IAChB,QAAQC,EAAE,MAAM,MAAMA,EAAE,MAAM;AAAA,EAAA,EAChC;AACN;AACO,SAASC,EAA0BC,GAAsBC,GAAqBC,GAAoBC,GAAkBC,GAAyBR,GAAYC,GAA6B;AACzL,QAAMQ,IAAOnB,EAASiB,GAAWC,CAAM,GACjCT,IAAOW,EAAAA,EACR,OAAOF,CAAM,EACb,WAAWC,CAAK,EAChB,MAAM,CAACE,MAAkBP,EAAU,eAAeE,EAAO,OAAOK,CAAG,CAAW,EAAEN,CAAO;AAC5F,SAAO;AAAA,IACH,MAAMP,EAAcC,GAAMC,GAAKC,CAAM;AAAA,IACrC,UAAUP,EAAIK,GAAM,CAACW,MAAQA,EAAI,MAAM,KAAK;AAAA,EAAA;AAEpD;AACO,SAASE,EAAuBR,GAAsBC,GAAqBC,GAAoBC,GAAkBC,GAAyBR,GAAYC,GAA6B;AACtL,QAAMQ,IAAOnB,EAASiB,GAAWC,CAAM,GACjCK,IAAaC,IAAc,OAAON,CAAM,EAAE,MAAMA,CAAM,GACtDO,IAAWN,EAAM,IAAI,CAAAO,MAAKH,EAAW,OAAOI,CAAC,CAAC,GAC9ClB,IAAOW,EAAAA,EACR,OAAOF,CAAM,EACb,WAAWO,CAAQ,EACnB,MAAM,CAACJ,MAAkBP,EAAU,eAAeE,EAAO,OAAOK,CAAG,CAAW,EAAEN,CAAO;AAE5F,SAAO;AAAA,IACH,MAAMP,EAAcC,GAAMC,GAAKC,CAAM;AAAA,IACrC,UAAUP,EAAIK,GAAM,CAACW,MAAQA,EAAI,MAAM,KAAK;AAAA,EAAA;AAEpD;AAEO,SAASQ,EACZC,GACAC,GACAC,GACAC,GACAf,GACAgB,GACF;AACE,QAAMC,IAA8C,CAAA;AACpD,SAAAJ,EAAsB,QAAQ,CAACK,MAAc;AACzC,UAAMC,IAAWD,EAAU,KAAK,GAAG;AACnCD,IAAAA,EAAOE,CAAQ,IAAI;AAAA,MACf,cAAAL;AAAAA,MACA,wBAAwB,CAAA;AAAA,MACxB,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,MACV,oBAAoB;AAAA,IAAA;AAExB,UAAMM,IAAsBR,EAAK,kBAAkB,CAAC,GAAGM,CAAS,CAAC;AACjE,QAAI,CAACG,GAAMC,CAAI,IAAIC,EAAOH,GAAqB,CAAAhB,MAAOQ,EAAK,eAAeG,EAAY,OAAOX,CAAG,CAAW;AAC3GiB,IAAAA,UAAUT,EAAK,eAAeG,EAAY,OAAOK,EAAoB,CAAC,CAAC,KAAK,IAC5EE,MAAAA,IAAUV,EAAK,eAAeG,EAAY,OAAOK,EAAoB,CAAC,CAAC,KAAK;AAC5E,UAAMnB,IAA0B,CAACoB,GAAMC,CAAI,GACrCE,IAAc,CAAC,GAAGV,CAAY,EAAE,QAAA;AACtCU,IAAAA,EAAY,QAAQ,CAACC,GAAarB,MAAQ;AACtC,YAAMN,IAAU,MAAM,KAAKc,EAAK,kBAAkB,CAAC,GAAGM,GAAWO,CAAW,CAAC,CAAC,GACxEC,IAAYV,MAAU,WACtBpB,EAA0BgB,GAAMd,GAASiB,GAAaf,GAAWC,GAAQwB,GAAarB,CAAG,IACzFC,EAAuBO,GAAMd,GAASiB,GAAaf,GAAWC,GAAQwB,GAAarB,CAAG;AAC5Fa,MAAAA,EAAOE,CAAQ,EAAE,uBAAuBM,CAAW,IAAIC,GACvDT,EAAOE,CAAQ,EAAE,OAAOlB,EAAO,CAAC,GAChCgB,EAAOE,CAAQ,EAAE,OAAOlB,EAAO,CAAC,GAChCgB,EAAOE,CAAQ,EAAE,qBAAqB,KAAK,IAAIF,EAAOE,CAAQ,EAAE,oBAAoBO,EAAU,QAAQ;AAEtG,YAAMC,IAAcvB,IAAM,IAAIoB,EAAYpB,IAAM,CAAC,IAAI,MAC/CwB,IAAoBD,MAAgB,OAAOV,EAAOE,CAAQ,EAAE,uBAAuBQ,CAAW,IAAI;AAExGD,MAAAA,EAAU,KAAK,QAAQ,CAACvB,GAAKC,MAAQ;AACjCD,QAAAA,EAAI,EAAE,aAAYyB,KAAA,OAAA,SAAAA,EAAmB,KAAKxB,CAAAA,EAAK,EAAE,aAAY,KAAKD,EAAI,OACtEc,EAAOE,CAAQ,EAAE,WAAW,KAAK,IAAIF,EAAOE,CAAQ,EAAE,UAAUhB,EAAI,EAAE,QAAQ;AAAA,MAClF,CAAC;AAAA,IACL,CAAC;AAED,UAAM0B,IAAef;AACrBe,IAAAA,EAAa,QAAQ,CAACJ,GAAarB,MAAQ;AACvC,YAAMuB,IAAcvB,IAAM,IAAIyB,EAAazB,IAAM,CAAC,IAAI,MAChDsB,IAAYT,EAAOE,CAAQ,EAAE,uBAAuBM,CAAW,GAC/DG,IAAoBD,MAAgB,OAAOV,EAAOE,CAAQ,EAAE,uBAAuBQ,CAAW,IAAI;AAExGD,MAAAA,EAAU,KAAK,QAAQ,CAACvB,GAAKC,MAAQ;AACjCD,QAAAA,EAAI,EAAE,YAAWyB,KAAA,OAAA,SAAAA,EAAmB,KAAKxB,CAAAA,EAAK,EAAE,YAAW,KAAKD,EAAI;AAAA,MACxE,CAAC;AAAA,IACL,CAAC;AAAA,EACL,CAAC,GACMc;AACX;","x_google_ignoreList":[0]}
|