@milaboratories/miplots4 1.0.129 → 1.0.131
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DataFrame.d.ts +15 -9
- package/dist/DataFrame.d.ts.map +1 -1
- package/dist/DataFrame.js +105 -81
- package/dist/DataFrame.js.map +1 -1
- package/dist/bubble/ChartRenderer.d.ts +6 -5
- package/dist/bubble/ChartRenderer.d.ts.map +1 -1
- package/dist/bubble/ChartRenderer.js +123 -121
- package/dist/bubble/ChartRenderer.js.map +1 -1
- package/dist/bubble/components/Chart.d.ts +3 -2
- package/dist/bubble/components/Chart.d.ts.map +1 -1
- package/dist/bubble/components/Chart.js +78 -97
- package/dist/bubble/components/Chart.js.map +1 -1
- package/dist/bubble/components/ChartsGroup.d.ts +6 -5
- package/dist/bubble/components/ChartsGroup.d.ts.map +1 -1
- package/dist/bubble/components/ChartsGroup.js +39 -37
- package/dist/bubble/components/ChartsGroup.js.map +1 -1
- package/dist/bubble/getCellTooltip.d.ts +5 -0
- package/dist/bubble/getCellTooltip.d.ts.map +1 -0
- package/dist/bubble/getCellTooltip.js +28 -0
- package/dist/bubble/getCellTooltip.js.map +1 -0
- package/dist/bubble/{getCells.d.ts → getGroupedCellsData.d.ts} +4 -4
- package/dist/bubble/getGroupedCellsData.d.ts.map +1 -0
- package/dist/bubble/getGroupedCellsData.js +94 -0
- package/dist/bubble/getGroupedCellsData.js.map +1 -0
- package/dist/bubble/index.d.ts +4 -4
- package/dist/bubble/index.d.ts.map +1 -1
- package/dist/bubble/index.js +47 -42
- package/dist/bubble/index.js.map +1 -1
- package/dist/bubble/utils/calculateCaptionTails.d.ts +2 -2
- package/dist/bubble/utils/calculateCaptionTails.d.ts.map +1 -1
- package/dist/bubble/utils/calculateCaptionTails.js.map +1 -1
- package/dist/common/Legend.d.ts.map +1 -1
- package/dist/common/Legend.js.map +1 -1
- package/dist/common/Tooltip.js +1 -1
- package/dist/common/Tooltip.js.map +1 -1
- package/dist/common/types.d.ts +1 -1
- package/dist/common/types.d.ts.map +1 -1
- package/dist/common/useDataFrame.d.ts +11 -0
- package/dist/common/useDataFrame.d.ts.map +1 -0
- package/dist/common/useDataFrame.js +20 -0
- package/dist/common/useDataFrame.js.map +1 -0
- package/dist/dendro/ChartRenderer.d.ts +9 -8
- package/dist/dendro/ChartRenderer.d.ts.map +1 -1
- package/dist/dendro/ChartRenderer.js +187 -187
- package/dist/dendro/ChartRenderer.js.map +1 -1
- package/dist/dendro/components/Chart.d.ts +8 -8
- package/dist/dendro/components/Chart.d.ts.map +1 -1
- package/dist/dendro/components/Chart.js +35 -35
- package/dist/dendro/components/Chart.js.map +1 -1
- package/dist/dendro/components/Heatmap.d.ts +3 -3
- package/dist/dendro/components/Heatmap.d.ts.map +1 -1
- package/dist/dendro/components/Heatmap.js +23 -23
- package/dist/dendro/components/Heatmap.js.map +1 -1
- package/dist/dendro/components/Legend.d.ts.map +1 -1
- package/dist/dendro/components/Legend.js.map +1 -1
- package/dist/dendro/components/LinksGroup.d.ts +6 -6
- package/dist/dendro/components/LinksGroup.d.ts.map +1 -1
- package/dist/dendro/components/LinksGroup.js +17 -17
- package/dist/dendro/components/LinksGroup.js.map +1 -1
- package/dist/dendro/components/NodesGroup.d.ts +7 -7
- package/dist/dendro/components/NodesGroup.d.ts.map +1 -1
- package/dist/dendro/components/NodesGroup.js +29 -29
- package/dist/dendro/components/NodesGroup.js.map +1 -1
- package/dist/dendro/components/types.d.ts +2 -2
- package/dist/dendro/components/types.d.ts.map +1 -1
- package/dist/dendro/getHeatmapData.d.ts +2 -2
- package/dist/dendro/getHeatmapData.d.ts.map +1 -1
- package/dist/dendro/getHeatmapData.js +48 -44
- package/dist/dendro/getHeatmapData.js.map +1 -1
- package/dist/dendro/getHierarchyData.d.ts +3 -3
- package/dist/dendro/getHierarchyData.d.ts.map +1 -1
- package/dist/dendro/getHierarchyData.js +31 -31
- package/dist/dendro/getHierarchyData.js.map +1 -1
- package/dist/dendro/index.d.ts +5 -5
- package/dist/dendro/index.d.ts.map +1 -1
- package/dist/dendro/index.js +86 -89
- package/dist/dendro/index.js.map +1 -1
- package/dist/discrete/ChartRenderer.d.ts +6 -6
- package/dist/discrete/ChartRenderer.d.ts.map +1 -1
- package/dist/discrete/ChartRenderer.js +197 -196
- package/dist/discrete/ChartRenderer.js.map +1 -1
- package/dist/discrete/DiscreteSettingsImpl.d.ts +3 -3
- package/dist/discrete/DiscreteSettingsImpl.d.ts.map +1 -1
- package/dist/discrete/DiscreteSettingsImpl.js +8 -8
- package/dist/discrete/DiscreteSettingsImpl.js.map +1 -1
- package/dist/discrete/components/layers/BoxElement.js.map +1 -1
- package/dist/discrete/index.d.ts +1 -1
- package/dist/discrete/index.d.ts.map +1 -1
- package/dist/discrete/index.js +109 -106
- package/dist/discrete/index.js.map +1 -1
- package/dist/discrete/layers/bar.d.ts +2 -2
- package/dist/discrete/layers/bar.d.ts.map +1 -1
- package/dist/discrete/layers/bar.js +32 -37
- package/dist/discrete/layers/bar.js.map +1 -1
- package/dist/discrete/layers/binnedDots.d.ts +3 -3
- package/dist/discrete/layers/binnedDots.d.ts.map +1 -1
- package/dist/discrete/layers/binnedDots.js +66 -78
- package/dist/discrete/layers/binnedDots.js.map +1 -1
- package/dist/discrete/layers/boxes.d.ts +3 -4
- package/dist/discrete/layers/boxes.d.ts.map +1 -1
- package/dist/discrete/layers/boxes.js +59 -60
- package/dist/discrete/layers/boxes.js.map +1 -1
- package/dist/discrete/layers/dots.d.ts +2 -3
- package/dist/discrete/layers/dots.d.ts.map +1 -1
- package/dist/discrete/layers/dots.js +30 -30
- package/dist/discrete/layers/dots.js.map +1 -1
- package/dist/discrete/layers/lines.js +11 -10
- package/dist/discrete/layers/lines.js.map +1 -1
- package/dist/discrete/layers/logo.d.ts +2 -2
- package/dist/discrete/layers/logo.d.ts.map +1 -1
- package/dist/discrete/layers/logo.js +21 -21
- package/dist/discrete/layers/logo.js.map +1 -1
- package/dist/discrete/layers/pairedPoints.d.ts +2 -2
- package/dist/discrete/layers/pairedPoints.d.ts.map +1 -1
- package/dist/discrete/layers/pairedPoints.js +62 -62
- package/dist/discrete/layers/pairedPoints.js.map +1 -1
- package/dist/discrete/layers/sina.d.ts +3 -4
- package/dist/discrete/layers/sina.d.ts.map +1 -1
- package/dist/discrete/layers/sina.js +67 -71
- package/dist/discrete/layers/sina.js.map +1 -1
- package/dist/discrete/layers/stackedBar.d.ts +1 -1
- package/dist/discrete/layers/stackedBar.d.ts.map +1 -1
- package/dist/discrete/layers/stackedBar.js +25 -25
- package/dist/discrete/layers/stackedBar.js.map +1 -1
- package/dist/discrete/layers/violins.js +13 -13
- package/dist/discrete/utils/getOutliersBounds.d.ts +1 -1
- package/dist/discrete/utils/getOutliersBounds.d.ts.map +1 -1
- package/dist/discrete/utils/getOutliersBounds.js +5 -5
- package/dist/discrete/utils/getOutliersBounds.js.map +1 -1
- package/dist/discrete/utils/splitTextByWidth.js +1 -1
- package/dist/discrete/utils/splitTextByWidth.js.map +1 -1
- package/dist/heatmap/ChartRenderer.d.ts +7 -6
- package/dist/heatmap/ChartRenderer.d.ts.map +1 -1
- package/dist/heatmap/ChartRenderer.js +232 -230
- package/dist/heatmap/ChartRenderer.js.map +1 -1
- package/dist/heatmap/HeatmapSettingsImpl.d.ts +2 -2
- package/dist/heatmap/HeatmapSettingsImpl.d.ts.map +1 -1
- package/dist/heatmap/HeatmapSettingsImpl.js +1 -1
- package/dist/heatmap/HeatmapSettingsImpl.js.map +1 -1
- package/dist/heatmap/components/Annotations/Annotation.d.ts.map +1 -1
- package/dist/heatmap/components/Annotations/Annotation.js +40 -39
- package/dist/heatmap/components/Annotations/Annotation.js.map +1 -1
- package/dist/heatmap/components/Chart.d.ts.map +1 -1
- package/dist/heatmap/components/Chart.js +90 -89
- package/dist/heatmap/components/Chart.js.map +1 -1
- package/dist/heatmap/components/ChartsGroup.d.ts +2 -2
- package/dist/heatmap/components/ChartsGroup.d.ts.map +1 -1
- package/dist/heatmap/components/ChartsGroup.js +14 -14
- package/dist/heatmap/components/ChartsGroup.js.map +1 -1
- package/dist/heatmap/components/types.d.ts +3 -2
- package/dist/heatmap/components/types.d.ts.map +1 -1
- package/dist/heatmap/getCells.d.ts +3 -2
- package/dist/heatmap/getCells.d.ts.map +1 -1
- package/dist/heatmap/getCells.js +97 -93
- package/dist/heatmap/getCells.js.map +1 -1
- package/dist/heatmap/index.d.ts +3 -3
- package/dist/heatmap/index.d.ts.map +1 -1
- package/dist/heatmap/index.js +13 -12
- package/dist/heatmap/index.js.map +1 -1
- package/dist/heatmap/utils/calculateAnnotationTitleSizes.d.ts.map +1 -1
- package/dist/heatmap/utils/calculateAnnotationTitleSizes.js +1 -1
- package/dist/heatmap/utils/calculateAnnotationTitleSizes.js.map +1 -1
- package/dist/heatmap/utils/calculateCaptionTails.d.ts +1 -1
- package/dist/heatmap/utils/calculateCaptionTails.d.ts.map +1 -1
- package/dist/heatmap/utils/calculateCaptionTails.js.map +1 -1
- package/dist/histogram/ChartRenderer.d.ts +6 -5
- package/dist/histogram/ChartRenderer.d.ts.map +1 -1
- package/dist/histogram/ChartRenderer.js +154 -153
- package/dist/histogram/ChartRenderer.js.map +1 -1
- package/dist/histogram/HistogramSettingsImpl.d.ts +2 -2
- package/dist/histogram/HistogramSettingsImpl.d.ts.map +1 -1
- package/dist/histogram/HistogramSettingsImpl.js.map +1 -1
- package/dist/histogram/components/Chart.js +48 -48
- package/dist/histogram/components/Chart.js.map +1 -1
- package/dist/histogram/components/types.d.ts +4 -3
- package/dist/histogram/components/types.d.ts.map +1 -1
- package/dist/histogram/getHistogramData.d.ts +7 -7
- package/dist/histogram/getHistogramData.d.ts.map +1 -1
- package/dist/histogram/getHistogramData.js +52 -53
- package/dist/histogram/getHistogramData.js.map +1 -1
- package/dist/histogram/index.d.ts +3 -3
- package/dist/histogram/index.d.ts.map +1 -1
- package/dist/histogram/index.js +49 -45
- package/dist/histogram/index.js.map +1 -1
- package/dist/node_modules/@d3fc/d3fc-axis/src/axisBase.js +10 -10
- package/dist/node_modules/d3-array/src/min.js +5 -11
- package/dist/node_modules/d3-array/src/min.js.map +1 -1
- package/dist/node_modules/d3-shape/src/area.js +30 -30
- package/dist/node_modules/d3-shape/src/line.js +6 -6
- package/dist/node_modules/d3-shape/src/line.js.map +1 -1
- package/dist/node_modules/kdbush/index.js +148 -0
- package/dist/node_modules/kdbush/index.js.map +1 -0
- package/dist/scatterplot/ChartRenderer.d.ts +7 -6
- package/dist/scatterplot/ChartRenderer.d.ts.map +1 -1
- package/dist/scatterplot/ChartRenderer.js +213 -209
- package/dist/scatterplot/ChartRenderer.js.map +1 -1
- package/dist/scatterplot/ScatterplotSettingsImpl.d.ts +2 -2
- package/dist/scatterplot/ScatterplotSettingsImpl.d.ts.map +1 -1
- package/dist/scatterplot/ScatterplotSettingsImpl.js +28 -28
- package/dist/scatterplot/ScatterplotSettingsImpl.js.map +1 -1
- package/dist/scatterplot/components/ChartAxisTitles.d.ts.map +1 -1
- package/dist/scatterplot/components/ChartAxisTitles.js +31 -30
- package/dist/scatterplot/components/ChartAxisTitles.js.map +1 -1
- package/dist/scatterplot/components/ChartLayersData.d.ts.map +1 -1
- package/dist/scatterplot/components/ChartLayersData.js +138 -156
- package/dist/scatterplot/components/ChartLayersData.js.map +1 -1
- package/dist/scatterplot/components/ChartTooltip.d.ts.map +1 -1
- package/dist/scatterplot/components/ChartTooltip.js +41 -38
- package/dist/scatterplot/components/ChartTooltip.js.map +1 -1
- package/dist/scatterplot/components/ChartTrendsData.js +21 -21
- package/dist/scatterplot/components/ChartTrendsData.js.map +1 -1
- package/dist/scatterplot/components/types.d.ts +7 -7
- package/dist/scatterplot/components/types.d.ts.map +1 -1
- package/dist/scatterplot/constants.d.ts +1 -1
- package/dist/scatterplot/constants.d.ts.map +1 -1
- package/dist/scatterplot/constants.js.map +1 -1
- package/dist/scatterplot/dots.d.ts +2 -2
- package/dist/scatterplot/dots.d.ts.map +1 -1
- package/dist/scatterplot/dots.js +27 -25
- package/dist/scatterplot/dots.js.map +1 -1
- package/dist/scatterplot/getLayersData.d.ts +3 -3
- package/dist/scatterplot/getLayersData.d.ts.map +1 -1
- package/dist/scatterplot/getLayersData.js +12 -15
- package/dist/scatterplot/getLayersData.js.map +1 -1
- package/dist/scatterplot/index.d.ts +4 -4
- package/dist/scatterplot/index.d.ts.map +1 -1
- package/dist/scatterplot/index.js +71 -72
- package/dist/scatterplot/index.js.map +1 -1
- package/dist/scatterplot/linearRegression.d.ts +5 -4
- package/dist/scatterplot/linearRegression.d.ts.map +1 -1
- package/dist/scatterplot/linearRegression.js +88 -86
- package/dist/scatterplot/linearRegression.js.map +1 -1
- package/dist/scatterplot/utils/createAesGetter.d.ts +3 -2
- package/dist/scatterplot/utils/createAesGetter.d.ts.map +1 -1
- package/dist/scatterplot/utils/createAesGetter.js +21 -21
- package/dist/scatterplot/utils/createAesGetter.js.map +1 -1
- package/dist/scatterplot/utils/createLegendInfo.d.ts +2 -10
- package/dist/scatterplot/utils/createLegendInfo.d.ts.map +1 -1
- package/dist/scatterplot/utils/createLegendInfo.js +44 -37
- package/dist/scatterplot/utils/createLegendInfo.js.map +1 -1
- package/dist/scatterplot/utils/formatColumnValue.d.ts +5 -0
- package/dist/scatterplot/utils/formatColumnValue.d.ts.map +1 -0
- package/dist/scatterplot/utils/formatColumnValue.js +11 -0
- package/dist/scatterplot/utils/formatColumnValue.js.map +1 -0
- package/dist/scatterplot/utils/getVisibleLabels.d.ts +6 -9
- package/dist/scatterplot/utils/getVisibleLabels.d.ts.map +1 -1
- package/dist/scatterplot/utils/getVisibleLabels.js +46 -56
- package/dist/scatterplot/utils/getVisibleLabels.js.map +1 -1
- package/dist/scatterplot-umap/ChartRenderer.d.ts +18 -15
- package/dist/scatterplot-umap/ChartRenderer.d.ts.map +1 -1
- package/dist/scatterplot-umap/ChartRenderer.js +231 -214
- package/dist/scatterplot-umap/ChartRenderer.js.map +1 -1
- package/dist/scatterplot-umap/SettingsImpl.d.ts +2 -2
- package/dist/scatterplot-umap/SettingsImpl.d.ts.map +1 -1
- package/dist/scatterplot-umap/SettingsImpl.js +25 -25
- package/dist/scatterplot-umap/SettingsImpl.js.map +1 -1
- package/dist/scatterplot-umap/colors.d.ts +6 -0
- package/dist/scatterplot-umap/colors.d.ts.map +1 -0
- package/dist/scatterplot-umap/colors.js +42 -0
- package/dist/scatterplot-umap/colors.js.map +1 -0
- package/dist/scatterplot-umap/components/LowerSVG.d.ts +2 -2
- package/dist/scatterplot-umap/components/LowerSVG.d.ts.map +1 -1
- package/dist/scatterplot-umap/components/LowerSVG.js +97 -94
- package/dist/scatterplot-umap/components/LowerSVG.js.map +1 -1
- package/dist/scatterplot-umap/components/UpperSVG.d.ts.map +1 -1
- package/dist/scatterplot-umap/components/UpperSVG.js +20 -19
- package/dist/scatterplot-umap/components/UpperSVG.js.map +1 -1
- package/dist/scatterplot-umap/index.d.ts +0 -2
- package/dist/scatterplot-umap/index.d.ts.map +1 -1
- package/dist/scatterplot-umap/index.js +77 -102
- package/dist/scatterplot-umap/index.js.map +1 -1
- package/dist/scatterplot-umap/types.d.ts +7 -10
- package/dist/scatterplot-umap/types.d.ts.map +1 -1
- package/dist/types/bubble.d.ts +44 -12
- package/dist/types/bubble.d.ts.map +1 -1
- package/dist/types/common.d.ts +22 -3
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/common.js +3 -1
- package/dist/types/common.js.map +1 -1
- package/dist/types/dendro.d.ts +113 -10
- package/dist/types/dendro.d.ts.map +1 -1
- package/dist/types/dendro.js +1 -1
- package/dist/types/dendro.js.map +1 -1
- package/dist/types/discrete.d.ts +99 -22
- package/dist/types/discrete.d.ts.map +1 -1
- package/dist/types/discrete.js +3 -3
- package/dist/types/discrete.js.map +1 -1
- package/dist/types/heatmap.d.ts +187 -28
- package/dist/types/heatmap.d.ts.map +1 -1
- package/dist/types/heatmap.js +1 -1
- package/dist/types/heatmap.js.map +1 -1
- package/dist/types/histogram.d.ts +30 -8
- package/dist/types/histogram.d.ts.map +1 -1
- package/dist/types/histogram.js +1 -1
- package/dist/types/histogram.js.map +1 -1
- package/dist/types/scatterplot-umap.d.ts +149 -15
- package/dist/types/scatterplot-umap.d.ts.map +1 -1
- package/dist/types/scatterplot-umap.js +9 -9
- package/dist/types/scatterplot-umap.js.map +1 -1
- package/dist/types/scatterplot.d.ts +164 -12
- package/dist/types/scatterplot.d.ts.map +1 -1
- package/dist/types/scatterplot.js +1 -1
- package/dist/types/scatterplot.js.map +1 -1
- package/dist/utils/TextMeasurer/TextMeasurer.d.ts +7 -0
- package/dist/utils/TextMeasurer/TextMeasurer.d.ts.map +1 -0
- package/dist/utils/TextMeasurer/TextMeasurer.js +42 -0
- package/dist/utils/TextMeasurer/TextMeasurer.js.map +1 -0
- package/dist/utils/TextMeasurer/charToWidth.json.js +155 -0
- package/dist/utils/TextMeasurer/charToWidth.json.js.map +1 -0
- package/dist/utils/arrangeLegendParts.js +1 -1
- package/dist/utils/arrangeLegendParts.js.map +1 -1
- package/dist/utils/getChartEdgeSides.d.ts +1 -1
- package/dist/utils/getLegendWidth.d.ts.map +1 -1
- package/dist/utils/getLegendWidth.js +1 -1
- package/dist/utils/getLegendWidth.js.map +1 -1
- package/package.json +5 -3
- package/dist/bubble/getCells.d.ts.map +0 -1
- package/dist/bubble/getCells.js +0 -91
- package/dist/bubble/getCells.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/add.js +0 -30
- package/dist/node_modules/d3-quadtree/src/add.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/cover.js +0 -29
- package/dist/node_modules/d3-quadtree/src/cover.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/data.js +0 -12
- package/dist/node_modules/d3-quadtree/src/data.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/extent.js +0 -7
- package/dist/node_modules/d3-quadtree/src/extent.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/find.js +0 -26
- package/dist/node_modules/d3-quadtree/src/find.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/quad.js +0 -7
- package/dist/node_modules/d3-quadtree/src/quad.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/quadtree.js +0 -51
- package/dist/node_modules/d3-quadtree/src/quadtree.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/remove.js +0 -21
- package/dist/node_modules/d3-quadtree/src/remove.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/root.js +0 -7
- package/dist/node_modules/d3-quadtree/src/root.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/size.js +0 -12
- package/dist/node_modules/d3-quadtree/src/size.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/visit.js +0 -14
- package/dist/node_modules/d3-quadtree/src/visit.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/visitAfter.js +0 -19
- package/dist/node_modules/d3-quadtree/src/visitAfter.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/x.js +0 -11
- package/dist/node_modules/d3-quadtree/src/x.js.map +0 -1
- package/dist/node_modules/d3-quadtree/src/y.js +0 -11
- package/dist/node_modules/d3-quadtree/src/y.js.map +0 -1
- package/dist/utils/TextMeasurer.d.ts +0 -8
- package/dist/utils/TextMeasurer.d.ts.map +0 -1
- package/dist/utils/TextMeasurer.js +0 -27
- package/dist/utils/TextMeasurer.js.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { AbstractChart } from '../AbstractChart';
|
|
2
|
-
import {
|
|
3
|
-
import { GroupedHistogramData } from './getHistogramData';
|
|
2
|
+
import { DataFrame } from '../DataFrame';
|
|
4
3
|
import { HistogramEventHandlers, HistogramSettings } from '../types';
|
|
5
4
|
import { default as ChartRenderer } from './ChartRenderer';
|
|
5
|
+
import { HistogramLegendInfo } from './components/types';
|
|
6
|
+
import { GroupedHistogramData } from './getHistogramData';
|
|
6
7
|
import { HistogramSettingsImpl } from './HistogramSettingsImpl';
|
|
7
|
-
import { DataFrame } from '../DataFrame';
|
|
8
8
|
export declare class ChartHistogram extends AbstractChart {
|
|
9
9
|
settings: HistogramSettingsImpl;
|
|
10
10
|
chartRenderer: ChartRenderer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/histogram/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/histogram/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAwB,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEhG,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;AA6BhE,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,EAAE,EAAE,CAAC;QAClC,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAA;QAC3D,UAAU,EAAE,mBAAmB,CAAA;KAClC,GAAG,IAAI,CAAQ;gBAEJ,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,aAAa,CAAC,EAAE,sBAAsB;IAShG,KAAK,CAAC,IAAI,EAAE,WAAW;IAavB,OAAO;IAIP,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB;IAuBlE,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO;IAIhD,MAAM,IAAI,MAAM;IAKhB,mCAAmC,CAAC,YAAY,EAAE,qBAAqB,EAAE,QAAQ,EAAE,qBAAqB;IAcxG,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAUpE,WAAW;IAuBX,gBAAgB;IAOhB,YAAY;CAsBf"}
|
package/dist/histogram/index.js
CHANGED
|
@@ -1,28 +1,31 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var d = (
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import { renderToString as B } from "../node_modules/react-dom/server.browser.js";
|
|
8
|
-
import S from "./ChartRenderer.js";
|
|
9
|
-
import { HistogramSettingsImpl as p } from "./HistogramSettingsImpl.js";
|
|
1
|
+
var y = Object.defineProperty;
|
|
2
|
+
var D = (u, c, t) => c in u ? y(u, c, { enumerable: !0, configurable: !0, writable: !0, value: t }) : u[c] = t;
|
|
3
|
+
var d = (u, c, t) => D(u, typeof c != "symbol" ? c + "" : c, t);
|
|
4
|
+
import { l as _ } from "../node_modules/lodash/lodash.js";
|
|
5
|
+
import { renderToString as v } from "../node_modules/react-dom/server.browser.js";
|
|
6
|
+
import { AbstractChart as b } from "../AbstractChart.js";
|
|
10
7
|
import { getKeysCombinations as x } from "../utils/getKeysCombination.js";
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
import B from "./ChartRenderer.js";
|
|
9
|
+
import { createHistogramDataByFacets as A } from "./getHistogramData.js";
|
|
10
|
+
import { HistogramSettingsImpl as p } from "./HistogramSettingsImpl.js";
|
|
11
|
+
function R(u, c, t) {
|
|
12
|
+
return c.reduce((e, a) => {
|
|
13
|
+
const n = u.getColumnCategories(a.value, !1), l = (r) => a.valueLabels ? String(u.getColumnValue(
|
|
14
|
+
a.valueLabels,
|
|
15
|
+
u.getColumnCategoryRowIndex(a.value, r)
|
|
16
|
+
)) : r, i = n.reduce((r, s) => (r[s] = l(s), r), {});
|
|
14
17
|
return e[a.value] = {
|
|
15
|
-
values:
|
|
18
|
+
values: n.sort((r, s) => i[r].localeCompare(i[s], "en", { numeric: !0 })),
|
|
16
19
|
aesMap: t[a.value],
|
|
17
|
-
labels:
|
|
20
|
+
labels: i
|
|
18
21
|
}, e;
|
|
19
22
|
}, {});
|
|
20
23
|
}
|
|
21
|
-
class T extends
|
|
24
|
+
class T extends b {
|
|
22
25
|
constructor(t, e, a) {
|
|
23
26
|
super(t, e);
|
|
24
27
|
d(this, "settings");
|
|
25
|
-
d(this, "chartRenderer", new
|
|
28
|
+
d(this, "chartRenderer", new B());
|
|
26
29
|
d(this, "onTooltipHintSwitch", () => {
|
|
27
30
|
});
|
|
28
31
|
d(this, "calculatedData", null);
|
|
@@ -32,7 +35,7 @@ class T extends v {
|
|
|
32
35
|
try {
|
|
33
36
|
this.chartRenderer.init(t), this._updateData(), this._updateChart();
|
|
34
37
|
} catch (e) {
|
|
35
|
-
e instanceof Error && this.chartRenderer.renderError(e.message);
|
|
38
|
+
e instanceof Error && (this.chartRenderer.renderError(e.message), console.error(e));
|
|
36
39
|
}
|
|
37
40
|
}
|
|
38
41
|
unmount() {
|
|
@@ -40,48 +43,48 @@ class T extends v {
|
|
|
40
43
|
}
|
|
41
44
|
updateSettingsAndData(t, e) {
|
|
42
45
|
try {
|
|
43
|
-
const a = this.settings,
|
|
44
|
-
this.settings = new p(e), this.data = t, this._needUpdateCalculatedDataBySettings(a, this.settings) || this._needUpdateCalculatedDataByData(
|
|
46
|
+
const a = this.settings, n = this.data;
|
|
47
|
+
this.settings = new p(e), this.data = t, this._needUpdateCalculatedDataBySettings(a, this.settings) || this._needUpdateCalculatedDataByData(n, this.data) ? this._updateData() : this._updateAesInData(), this._updateChart();
|
|
45
48
|
} catch (a) {
|
|
46
|
-
a instanceof Error && this.chartRenderer.renderError(a.message);
|
|
49
|
+
a instanceof Error && (this.chartRenderer.renderError(a.message), console.error(a));
|
|
47
50
|
}
|
|
48
51
|
}
|
|
49
52
|
updateChartState(t, e) {
|
|
50
53
|
console.warn("no chart state for histogram");
|
|
51
54
|
}
|
|
52
55
|
export() {
|
|
53
|
-
return this._updateChart(),
|
|
56
|
+
return this._updateChart(), v(this.chartRenderer.component);
|
|
54
57
|
}
|
|
55
58
|
_needUpdateCalculatedDataBySettings(t, e) {
|
|
56
|
-
var a,
|
|
57
|
-
return t.valueColumn.value !== e.valueColumn.value || t.facetBy.some((
|
|
58
|
-
var
|
|
59
|
-
return
|
|
60
|
-
}) || ((a = t.grouping) == null ? void 0 : a.value) !== ((
|
|
61
|
-
var
|
|
62
|
-
return
|
|
63
|
-
})) || ((
|
|
64
|
-
var
|
|
65
|
-
return
|
|
59
|
+
var a, n, l, i;
|
|
60
|
+
return t.valueColumn.value !== e.valueColumn.value || t.facetBy.some((r, s) => {
|
|
61
|
+
var o;
|
|
62
|
+
return r.value !== ((o = e.facetBy[s]) == null ? void 0 : o.value);
|
|
63
|
+
}) || ((a = t.grouping) == null ? void 0 : a.value) !== ((n = e.grouping) == null ? void 0 : n.value) || t.layers.length !== e.layers.length || t.layers.some((r, s) => r.type !== e.layers[s].type) || t.binsCount !== e.binsCount || t.chartSettings.xAxis.scale !== e.chartSettings.xAxis.scale || ((l = t.groupingOrder) == null ? void 0 : l.some((r, s) => {
|
|
64
|
+
var o;
|
|
65
|
+
return r !== ((o = e.groupingOrder) == null ? void 0 : o[s]);
|
|
66
|
+
})) || ((i = e.groupingOrder) == null ? void 0 : i.some((r, s) => {
|
|
67
|
+
var o;
|
|
68
|
+
return r !== ((o = t.groupingOrder) == null ? void 0 : o[s]);
|
|
66
69
|
}));
|
|
67
70
|
}
|
|
68
71
|
_needUpdateCalculatedDataByData(t, e) {
|
|
69
|
-
const a = Object.keys(t.data),
|
|
70
|
-
return t.id !== e.id || a.length !==
|
|
71
|
-
var
|
|
72
|
-
return t.data[
|
|
72
|
+
const a = Object.keys(t.data), n = Object.keys(e.data);
|
|
73
|
+
return t.id !== e.id || a.length !== n.length || a.some((l) => {
|
|
74
|
+
var i;
|
|
75
|
+
return t.data[l].length !== ((i = e.data[l]) == null ? void 0 : i.length);
|
|
73
76
|
});
|
|
74
77
|
}
|
|
75
78
|
_updateData() {
|
|
76
|
-
const { valueColumn: t, facetBy: e, grouping: a, binsCount:
|
|
79
|
+
const { valueColumn: t, facetBy: e, grouping: a, binsCount: n, chartSettings: l, inheritedAes: i, groupingOrder: r } = this.settings, s = e.map((h) => this.data.getColumnCategories(h.value)), o = s.length ? x([...s]) : [["null"]], m = e.map((h) => h.value) ?? null, f = a ? [a.value] : [];
|
|
77
80
|
let g = a ? this.data.getColumnCategories(a.value) : ["null"];
|
|
78
|
-
|
|
79
|
-
const C =
|
|
81
|
+
r && (g = _.intersection(r, g)), this.data.setGrouping([...m, ...f]);
|
|
82
|
+
const C = A(this.data, o, g, t, n, l.xAxis.scale);
|
|
80
83
|
this.calculatedData = {
|
|
81
|
-
facetKeys:
|
|
82
|
-
facetKeysCombinations:
|
|
84
|
+
facetKeys: o.map((h) => h.join(", ")),
|
|
85
|
+
facetKeysCombinations: o,
|
|
83
86
|
histogramDataByFacets: C,
|
|
84
|
-
legendInfo:
|
|
87
|
+
legendInfo: R(this.data, a ? [a] : [], i)
|
|
85
88
|
};
|
|
86
89
|
}
|
|
87
90
|
_updateAesInData() {
|
|
@@ -90,8 +93,9 @@ class T extends v {
|
|
|
90
93
|
_updateChart() {
|
|
91
94
|
if (!this.calculatedData)
|
|
92
95
|
return;
|
|
93
|
-
const { id: t, chartSettings: e, facetSettings: a, inheritedAes:
|
|
96
|
+
const { id: t, chartSettings: e, facetSettings: a, inheritedAes: n, layers: l, grouping: i, groupingDirection: r, groupingStack: s } = this.settings;
|
|
94
97
|
this.chartRenderer.render(
|
|
98
|
+
this.data,
|
|
95
99
|
t,
|
|
96
100
|
e,
|
|
97
101
|
a,
|
|
@@ -100,11 +104,11 @@ class T extends v {
|
|
|
100
104
|
//for titles, if facet by more than 1 column
|
|
101
105
|
this.calculatedData.histogramDataByFacets,
|
|
102
106
|
this.calculatedData.legendInfo,
|
|
103
|
-
o,
|
|
104
|
-
i,
|
|
105
107
|
l,
|
|
106
|
-
r,
|
|
107
108
|
n,
|
|
109
|
+
i,
|
|
110
|
+
s,
|
|
111
|
+
r,
|
|
108
112
|
this.onTooltipHintSwitch
|
|
109
113
|
);
|
|
110
114
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/histogram/index.ts"],"sourcesContent":["import {AbstractChart} from '../AbstractChart';\nimport type {HistogramLegendInfo} from './components/types';\nimport type {GroupedHistogramData} from './getHistogramData';\nimport {createHistogramDataByFacets} from './getHistogramData';\nimport type {ColumnName, HistogramEventHandlers, Row} from '../types';\nimport type {HistogramSettings} from '../types';\nimport lodash from 'lodash';\nimport {renderToString} from 'react-dom/server';\nimport ChartRenderer from './ChartRenderer';\nimport {HistogramSettingsImpl} from './HistogramSettingsImpl';\nimport type {DataFrame} from '../DataFrame';\nimport {getKeysCombinations} from '../utils/getKeysCombination';\n\nfunction getLegendInfo(\n data: DataFrame,\n grouping: ColumnName[],\n inheritedAes: HistogramSettingsImpl['inheritedAes']\n): HistogramLegendInfo {\n return grouping.reduce((res: HistogramLegendInfo, column) => {\n const uniqRowsByGrouping = lodash.uniqBy(data.rows, row => row[column.value]);\n const getValue = (row: Row) => String(row[column.value]);\n const getValueLabel = (row: Row) => (column.valueLabels ? String(row[column.valueLabels]) : getValue(row));\n const labels = uniqRowsByGrouping.reduce((res: Record<string, string>, row) => {\n res[getValue(row)] = getValueLabel(row);\n return res;\n }, {});\n res[column.value] = {\n values: uniqRowsByGrouping.map(getValue).filter((v) => v !== 'null').sort((a, b) => labels[a].localeCompare(labels[b], 'en', {numeric: true})),\n aesMap: inheritedAes[column.value],\n labels,\n };\n return res;\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 } | 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 } catch (err) {\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\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 } catch (err) {\n if (err instanceof Error) {\n this.chartRenderer.renderError(err.message as string);\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 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 (groupingOrder) {\n groupingKeys = lodash.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 this.calculatedData = {\n facetKeys: facetKeysCombinations.map(v => v.join(', ')),\n facetKeysCombinations,\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 {id, chartSettings, facetSettings, inheritedAes, layers, grouping, groupingDirection, groupingStack} = this.settings;\n this.chartRenderer.render(\n id,\n chartSettings,\n facetSettings,\n this.calculatedData.facetKeys,\n this.calculatedData.facetKeysCombinations, //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","uniqRowsByGrouping","lodash","row","getValue","getValueLabel","labels","v","a","b","ChartHistogram","AbstractChart","settings","eventHandlers","__publicField","ChartRenderer","HistogramSettingsImpl","node","err","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","facetGroupingValues","groupingValues","groupingKeys","histogramDataByFacets","createHistogramDataByFacets","id","facetSettings","layers","groupingDirection","groupingStack"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/histogram/index.ts"],"sourcesContent":["import {\n intersection\n} from 'lodash';\nimport { renderToString } from 'react-dom/server';\nimport { AbstractChart } from '../AbstractChart';\nimport type { DataFrame } from '../DataFrame';\nimport type { Category, ColumnName, HistogramEventHandlers, HistogramSettings } 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';\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 } | 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 } catch (err) {\n if (err instanceof Error) {\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 } catch (err) {\n if (err instanceof Error) {\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 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 (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 this.calculatedData = {\n facetKeys: facetKeysCombinations.map(v => v.join(', ')),\n facetKeysCombinations,\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 {id, chartSettings, facetSettings, inheritedAes, layers, grouping, groupingDirection, groupingStack} = this.settings;\n this.chartRenderer.render(\n this.data,\n id,\n chartSettings,\n facetSettings,\n this.calculatedData.facetKeys,\n this.calculatedData.facetKeysCombinations, //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","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","facetGroupingValues","groupingValues","groupingKeys","intersection","histogramDataByFacets","createHistogramDataByFacets","v","id","facetSettings","layers","groupingDirection","groupingStack"],"mappings":"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"}
|
|
@@ -2,36 +2,36 @@ import L, { isTransition as C } from "../../d3fc-data-join/src/dataJoin.js";
|
|
|
2
2
|
import { ticksArrayForAxis as E, tickFormatterForAxis as G } from "./axisTickUtils.js";
|
|
3
3
|
import H from "../../../d3-shape/src/line.js";
|
|
4
4
|
import K from "../../../d3-selection/src/select.js";
|
|
5
|
-
const Q = (i) => i, Y = (i, o,
|
|
5
|
+
const Q = (i) => i, Y = (i, o, F = {}) => {
|
|
6
6
|
let m = [10], p = null, b = () => {
|
|
7
|
-
},
|
|
8
|
-
const $ = H(), T = L("g", "tick").key(Q), v = L("path", "domain"), N = () => ({ offset: [0, c + g] }), V = () => ({ path: [[0, 0], [0, c]] }), I =
|
|
7
|
+
}, S = null, f = 6, c = 6, g = 3;
|
|
8
|
+
const $ = H(), T = L("g", "tick").key(Q), v = L("path", "domain"), N = () => ({ offset: [0, c + g] }), V = () => ({ path: [[0, 0], [0, c]] }), I = F.labelOffset || N, B = F.tickPath || V, _ = (t, a) => {
|
|
9
9
|
let s = 0;
|
|
10
10
|
return t.bandwidth && (s = t.bandwidth() / 2, t.round() && (s = Math.round(s))), (y) => a(t(y) + s, 0);
|
|
11
|
-
}, u = (t, a) => x() ? `translate(${a}, ${t})` : `translate(${t}, ${a})`, w = (t) => x() ? t.map((a) => [a[1], a[0]]) : t, x = () => i === "left" || i === "right",
|
|
11
|
+
}, u = (t, a) => x() ? `translate(${a}, ${t})` : `translate(${t}, ${a})`, w = (t) => x() ? t.map((a) => [a[1], a[0]]) : t, x = () => i === "left" || i === "right", n = (t) => {
|
|
12
12
|
C(t) && (T.transition(t), v.transition(t)), t.each((a, s, y) => {
|
|
13
13
|
const h = y[s], P = K(h);
|
|
14
14
|
h.__scale__ || P.attr("fill", "none").attr("font-size", 10).attr("font-family", "sans-serif").attr("text-anchor", i === "right" ? "start" : i === "left" ? "end" : "middle");
|
|
15
15
|
const M = h.__scale__ || o;
|
|
16
16
|
h.__scale__ = o.copy();
|
|
17
|
-
const d = E(
|
|
17
|
+
const d = E(n), j = G(n), O = i === "bottom" || i === "right" ? 1 : -1, z = ([r, e]) => [r, O * e], k = o.range(), q = w([
|
|
18
18
|
[k[0], O * f],
|
|
19
19
|
[k[0], 0],
|
|
20
20
|
[k[1], 0],
|
|
21
21
|
[k[1], O * f]
|
|
22
22
|
]), D = v(P, [a]);
|
|
23
23
|
D.enter().attr("stroke", "#000"), D.attr("d", $(q));
|
|
24
|
-
const l = T(P, d),
|
|
25
|
-
l.enter().attr("transform", _(M, u)).append("path").attr("stroke", "#000"), l.enter().append("text").attr("transform", (r,
|
|
24
|
+
const l = T(P, d), A = d.map((r, e) => I(r, e, d)), J = d.map((r, e) => B(r, e, d));
|
|
25
|
+
l.enter().attr("transform", _(M, u)).append("path").attr("stroke", "#000"), l.enter().append("text").attr("transform", (r, e) => u(...z(A[e].offset))).attr("fill", "#000"), l.exit().attr("transform", _(o, u)), l.select("path").attr("visibility", (r, e) => J[e].hidden && "hidden").attr(
|
|
26
26
|
"d",
|
|
27
|
-
(r,
|
|
28
|
-
), l.select("text").attr("visibility", (r,
|
|
27
|
+
(r, e) => $(w(J[e].path.map(z)))
|
|
28
|
+
), l.select("text").attr("visibility", (r, e) => A[e].hidden && "hidden").attr("transform", (r, e) => u(...z(A[e].offset))).attr("dy", () => {
|
|
29
29
|
let r = "0em";
|
|
30
30
|
return x() ? r = "0.32em" : i === "bottom" && (r = "0.71em"), r;
|
|
31
31
|
}).text(j), l.attr("transform", _(o, u)), b(l, a, s);
|
|
32
32
|
});
|
|
33
33
|
};
|
|
34
|
-
return
|
|
34
|
+
return n.tickFormat = (...t) => t.length ? (S = t[0], n) : S, n.tickSize = (...t) => t.length ? (c = f = Number(t[0]), n) : c, n.tickSizeInner = (...t) => t.length ? (c = Number(t[0]), n) : c, n.tickSizeOuter = (...t) => t.length ? (f = Number(t[0]), n) : f, n.tickPadding = (...t) => t.length ? (g = t[0], n) : g, n.decorate = (...t) => t.length ? (b = t[0], n) : b, n.scale = (...t) => t.length ? (o = t[0], n) : o, n.ticks = (...t) => (m = [...t], n), n.tickArguments = (...t) => t.length ? (m = t[0] == null ? [] : [...t[0]], n) : m !== null ? m.slice() : null, n.tickValues = (...t) => t.length ? (p = t[0] == null ? [] : [...t[0]], n) : p !== null ? p.slice() : null, n.orient = () => i, n;
|
|
35
35
|
};
|
|
36
36
|
export {
|
|
37
37
|
Y as axisBase
|
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
function l(
|
|
2
|
-
let
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
else {
|
|
7
|
-
let e = -1;
|
|
8
|
-
for (let f of i)
|
|
9
|
-
(f = d(f, ++e, i)) != null && (n > f || n === void 0 && f >= f) && (n = f);
|
|
10
|
-
}
|
|
11
|
-
return n;
|
|
1
|
+
function l(f, u) {
|
|
2
|
+
let e;
|
|
3
|
+
for (const n of f)
|
|
4
|
+
n != null && (e > n || e === void 0 && n >= n) && (e = n);
|
|
5
|
+
return e;
|
|
12
6
|
}
|
|
13
7
|
export {
|
|
14
8
|
l as default
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"min.js","sources":["../../../../node_modules/d3-array/src/min.js"],"sourcesContent":["export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n"],"names":["min","values","valueof","value"
|
|
1
|
+
{"version":3,"file":"min.js","sources":["../../../../node_modules/d3-array/src/min.js"],"sourcesContent":["export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n"],"names":["min","values","valueof","value"],"mappings":"AAAe,SAASA,EAAIC,GAAQC,GAAS;AAC3C,MAAIF;AAEF,aAAWG,KAASF;AAClB,IAAIE,KAAS,SACLH,IAAMG,KAAUH,MAAQ,UAAaG,KAASA,OACpDH,IAAMG;AAYZ,SAAOH;AACT;","x_google_ignoreList":[0]}
|
|
@@ -5,51 +5,51 @@ import X from "./line.js";
|
|
|
5
5
|
import { withPath as Y } from "./path.js";
|
|
6
6
|
import { x as b, y as j } from "./point.js";
|
|
7
7
|
function C(u, f, o) {
|
|
8
|
-
var c = null, g = i(!0), l = null, a = A, r = null, x = Y(
|
|
8
|
+
var c = null, g = i(!0), l = null, a = A, r = null, x = Y(t);
|
|
9
9
|
u = typeof u == "function" ? u : u === void 0 ? b : i(+u), f = typeof f == "function" ? f : f === void 0 ? i(0) : i(+f), o = typeof o == "function" ? o : o === void 0 ? j : i(+o);
|
|
10
|
-
function
|
|
11
|
-
var
|
|
12
|
-
for (l == null && (r = a(v = x())),
|
|
13
|
-
if (!(
|
|
10
|
+
function t(n) {
|
|
11
|
+
var e, E, p, h = (n = z(n)).length, m, s = !1, v, S = new Array(h), w = new Array(h);
|
|
12
|
+
for (l == null && (r = a(v = x())), e = 0; e <= h; ++e) {
|
|
13
|
+
if (!(e < h && g(m = n[e], e, n)) === s)
|
|
14
14
|
if (s = !s)
|
|
15
|
-
E =
|
|
15
|
+
E = e, r.areaStart(), r.lineStart();
|
|
16
16
|
else {
|
|
17
|
-
for (r.lineEnd(), r.lineStart(), p =
|
|
17
|
+
for (r.lineEnd(), r.lineStart(), p = e - 1; p >= E; --p)
|
|
18
18
|
r.point(S[p], w[p]);
|
|
19
19
|
r.lineEnd(), r.areaEnd();
|
|
20
20
|
}
|
|
21
|
-
s && (S[
|
|
21
|
+
s && (S[e] = +u(m, e, n), w[e] = +f(m, e, n), r.point(c ? +c(m, e, n) : S[e], o ? +o(m, e, n) : w[e]));
|
|
22
22
|
}
|
|
23
23
|
if (v) return r = null, v + "" || null;
|
|
24
24
|
}
|
|
25
25
|
function d() {
|
|
26
26
|
return X().defined(g).curve(a).context(l);
|
|
27
27
|
}
|
|
28
|
-
return
|
|
29
|
-
return arguments.length ? (u = typeof n == "function" ? n : i(+n), c = null,
|
|
30
|
-
},
|
|
31
|
-
return arguments.length ? (u = typeof n == "function" ? n : i(+n),
|
|
32
|
-
},
|
|
33
|
-
return arguments.length ? (c = n == null ? null : typeof n == "function" ? n : i(+n),
|
|
34
|
-
},
|
|
35
|
-
return arguments.length ? (f = typeof n == "function" ? n : i(+n), o = null,
|
|
36
|
-
},
|
|
37
|
-
return arguments.length ? (f = typeof n == "function" ? n : i(+n),
|
|
38
|
-
},
|
|
39
|
-
return arguments.length ? (o = n == null ? null : typeof n == "function" ? n : i(+n),
|
|
40
|
-
},
|
|
28
|
+
return t.x = function(n) {
|
|
29
|
+
return arguments.length ? (u = typeof n == "function" ? n : i(+n), c = null, t) : u;
|
|
30
|
+
}, t.x0 = function(n) {
|
|
31
|
+
return arguments.length ? (u = typeof n == "function" ? n : i(+n), t) : u;
|
|
32
|
+
}, t.x1 = function(n) {
|
|
33
|
+
return arguments.length ? (c = n == null ? null : typeof n == "function" ? n : i(+n), t) : c;
|
|
34
|
+
}, t.y = function(n) {
|
|
35
|
+
return arguments.length ? (f = typeof n == "function" ? n : i(+n), o = null, t) : f;
|
|
36
|
+
}, t.y0 = function(n) {
|
|
37
|
+
return arguments.length ? (f = typeof n == "function" ? n : i(+n), t) : f;
|
|
38
|
+
}, t.y1 = function(n) {
|
|
39
|
+
return arguments.length ? (o = n == null ? null : typeof n == "function" ? n : i(+n), t) : o;
|
|
40
|
+
}, t.lineX0 = t.lineY0 = function() {
|
|
41
41
|
return d().x(u).y(f);
|
|
42
|
-
},
|
|
42
|
+
}, t.lineY1 = function() {
|
|
43
43
|
return d().x(u).y(o);
|
|
44
|
-
},
|
|
44
|
+
}, t.lineX1 = function() {
|
|
45
45
|
return d().x(c).y(f);
|
|
46
|
-
},
|
|
47
|
-
return arguments.length ? (g = typeof n == "function" ? n : i(!!n),
|
|
48
|
-
},
|
|
49
|
-
return arguments.length ? (a = n, l != null && (r = a(l)),
|
|
50
|
-
},
|
|
51
|
-
return arguments.length ? (n == null ? l = r = null : r = a(l = n),
|
|
52
|
-
},
|
|
46
|
+
}, t.defined = function(n) {
|
|
47
|
+
return arguments.length ? (g = typeof n == "function" ? n : i(!!n), t) : g;
|
|
48
|
+
}, t.curve = function(n) {
|
|
49
|
+
return arguments.length ? (a = n, l != null && (r = a(l)), t) : a;
|
|
50
|
+
}, t.context = function(n) {
|
|
51
|
+
return arguments.length ? (n == null ? l = r = null : r = a(l = n), t) : l;
|
|
52
|
+
}, t;
|
|
53
53
|
}
|
|
54
54
|
export {
|
|
55
55
|
C as default
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import d from "./array.js";
|
|
2
2
|
import o from "./constant.js";
|
|
3
|
-
import
|
|
3
|
+
import a from "./curve/linear.js";
|
|
4
4
|
import { withPath as v } from "./path.js";
|
|
5
|
-
import { x as
|
|
5
|
+
import { x as b, y as w } from "./point.js";
|
|
6
6
|
function j(e, r) {
|
|
7
|
-
var m = o(!0), i = null, l =
|
|
8
|
-
e = typeof e == "function" ? e : e === void 0 ?
|
|
7
|
+
var m = o(!0), i = null, l = a, u = null, s = v(t);
|
|
8
|
+
e = typeof e == "function" ? e : e === void 0 ? b : o(e), r = typeof r == "function" ? r : r === void 0 ? w : o(r);
|
|
9
9
|
function t(n) {
|
|
10
|
-
var f, h = (n =
|
|
10
|
+
var f, h = (n = d(n)).length, p, c = !1, g;
|
|
11
11
|
for (i == null && (u = l(g = s())), f = 0; f <= h; ++f)
|
|
12
12
|
!(f < h && m(p = n[f], f, n)) === c && ((c = !c) ? u.lineStart() : u.lineEnd()), c && u.point(+e(p, f, n), +r(p, f, n));
|
|
13
13
|
if (g) return u = null, g + "" || null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"line.js","sources":["../../../../node_modules/d3-shape/src/line.js"],"sourcesContent":["import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n"],"names":["
|
|
1
|
+
{"version":3,"file":"line.js","sources":["../../../../node_modules/d3-shape/src/line.js"],"sourcesContent":["import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n"],"names":["line","x","y","defined","constant","context","curve","curveLinear","output","path","withPath","pointX","pointY","data","i","n","array","d","defined0","buffer","_"],"mappings":";;;;;AAMe,SAAAA,EAASC,GAAGC,GAAG;AAC5B,MAAIC,IAAUC,EAAS,EAAI,GACvBC,IAAU,MACVC,IAAQC,GACRC,IAAS,MACTC,IAAOC,EAASV,CAAI;AAExBC,EAAAA,IAAI,OAAOA,KAAM,aAAaA,IAAKA,MAAM,SAAaU,IAASP,EAASH,CAAC,GACzEC,IAAI,OAAOA,KAAM,aAAaA,IAAKA,MAAM,SAAaU,IAASR,EAASF,CAAC;AAEzE,WAASF,EAAKa,GAAM;AAClB,QAAIC,GACAC,KAAKF,IAAOG,EAAMH,CAAI,GAAG,QACzBI,GACAC,IAAW,IACXC;AAIJ,SAFId,KAAW,SAAMG,IAASF,EAAMa,IAASV,GAAM,IAE9CK,IAAI,GAAGA,KAAKC,GAAG,EAAED;AACpB,MAAI,EAAEA,IAAIC,KAAKZ,EAAQc,IAAIJ,EAAKC,CAAC,GAAGA,GAAGD,CAAI,OAAOK,OAC5CA,IAAW,CAACA,KAAUV,EAAO,UAAS,IACrCA,EAAO,QAAO,IAEjBU,KAAUV,EAAO,MAAM,CAACP,EAAEgB,GAAGH,GAAGD,CAAI,GAAG,CAACX,EAAEe,GAAGH,GAAGD,CAAI,CAAC;AAG3D,QAAIM,EAAQ,QAAOX,IAAS,MAAMW,IAAS,MAAM;AAAA,EACnD;AAEA,SAAAnB,EAAK,IAAI,SAASoB,GAAG;AACnB,WAAO,UAAU,UAAUnB,IAAI,OAAOmB,KAAM,aAAaA,IAAIhB,EAAS,CAACgB,CAAC,GAAGpB,KAAQC;AAAAA,EACrF,GAEAD,EAAK,IAAI,SAASoB,GAAG;AACnB,WAAO,UAAU,UAAUlB,IAAI,OAAOkB,KAAM,aAAaA,IAAIhB,EAAS,CAACgB,CAAC,GAAGpB,KAAQE;AAAAA,EACrF,GAEAF,EAAK,UAAU,SAASoB,GAAG;AACzB,WAAO,UAAU,UAAUjB,IAAU,OAAOiB,KAAM,aAAaA,IAAIhB,EAAS,CAAC,CAACgB,CAAC,GAAGpB,KAAQG;AAAA,EAC5F,GAEAH,EAAK,QAAQ,SAASoB,GAAG;AACvB,WAAO,UAAU,UAAUd,IAAQc,GAAGf,KAAW,SAASG,IAASF,EAAMD,CAAO,IAAIL,KAAQM;AAAA,EAC9F,GAEAN,EAAK,UAAU,SAASoB,GAAG;AACzB,WAAO,UAAU,UAAUA,KAAK,OAAOf,IAAUG,IAAS,OAAOA,IAASF,EAAMD,IAAUe,CAAC,GAAGpB,KAAQK;AAAA,EACxG,GAEOL;AACT;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
const B = [
|
|
2
|
+
Int8Array,
|
|
3
|
+
Uint8Array,
|
|
4
|
+
Uint8ClampedArray,
|
|
5
|
+
Int16Array,
|
|
6
|
+
Uint16Array,
|
|
7
|
+
Int32Array,
|
|
8
|
+
Uint32Array,
|
|
9
|
+
Float32Array,
|
|
10
|
+
Float64Array
|
|
11
|
+
], T = 1, l = 8;
|
|
12
|
+
class D {
|
|
13
|
+
/**
|
|
14
|
+
* Creates an index from raw `ArrayBuffer` data.
|
|
15
|
+
* @param {ArrayBuffer} data
|
|
16
|
+
*/
|
|
17
|
+
static from(t) {
|
|
18
|
+
if (!(t instanceof ArrayBuffer))
|
|
19
|
+
throw new Error("Data must be an instance of ArrayBuffer.");
|
|
20
|
+
const [s, n] = new Uint8Array(t, 0, 2);
|
|
21
|
+
if (s !== 219)
|
|
22
|
+
throw new Error("Data does not appear to be in a KDBush format.");
|
|
23
|
+
const i = n >> 4;
|
|
24
|
+
if (i !== T)
|
|
25
|
+
throw new Error(`Got v${i} data when expected v${T}.`);
|
|
26
|
+
const r = B[n & 15];
|
|
27
|
+
if (!r)
|
|
28
|
+
throw new Error("Unrecognized array type.");
|
|
29
|
+
const [a] = new Uint16Array(t, 2, 1), [o] = new Uint32Array(t, 4, 1);
|
|
30
|
+
return new D(o, a, r, t);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Creates an index that will hold a given number of items.
|
|
34
|
+
* @param {number} numItems
|
|
35
|
+
* @param {number} [nodeSize=64] Size of the KD-tree node (64 by default).
|
|
36
|
+
* @param {TypedArrayConstructor} [ArrayType=Float64Array] The array type used for coordinates storage (`Float64Array` by default).
|
|
37
|
+
* @param {ArrayBuffer} [data] (For internal use only)
|
|
38
|
+
*/
|
|
39
|
+
constructor(t, s = 64, n = Float64Array, i) {
|
|
40
|
+
if (isNaN(t) || t < 0) throw new Error(`Unpexpected numItems value: ${t}.`);
|
|
41
|
+
this.numItems = +t, this.nodeSize = Math.min(Math.max(+s, 2), 65535), this.ArrayType = n, this.IndexArrayType = t < 65536 ? Uint16Array : Uint32Array;
|
|
42
|
+
const r = B.indexOf(this.ArrayType), a = t * 2 * this.ArrayType.BYTES_PER_ELEMENT, o = t * this.IndexArrayType.BYTES_PER_ELEMENT, e = (8 - o % 8) % 8;
|
|
43
|
+
if (r < 0)
|
|
44
|
+
throw new Error(`Unexpected typed array class: ${n}.`);
|
|
45
|
+
i && i instanceof ArrayBuffer ? (this.data = i, this.ids = new this.IndexArrayType(this.data, l, t), this.coords = new this.ArrayType(this.data, l + o + e, t * 2), this._pos = t * 2, this._finished = !0) : (this.data = new ArrayBuffer(l + a + o + e), this.ids = new this.IndexArrayType(this.data, l, t), this.coords = new this.ArrayType(this.data, l + o + e, t * 2), this._pos = 0, this._finished = !1, new Uint8Array(this.data, 0, 2).set([219, (T << 4) + r]), new Uint16Array(this.data, 2, 1)[0] = s, new Uint32Array(this.data, 4, 1)[0] = t);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Add a point to the index.
|
|
49
|
+
* @param {number} x
|
|
50
|
+
* @param {number} y
|
|
51
|
+
* @returns {number} An incremental index associated with the added item (starting from `0`).
|
|
52
|
+
*/
|
|
53
|
+
add(t, s) {
|
|
54
|
+
const n = this._pos >> 1;
|
|
55
|
+
return this.ids[n] = n, this.coords[this._pos++] = t, this.coords[this._pos++] = s, n;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Perform indexing of the added points.
|
|
59
|
+
*/
|
|
60
|
+
finish() {
|
|
61
|
+
const t = this._pos >> 1;
|
|
62
|
+
if (t !== this.numItems)
|
|
63
|
+
throw new Error(`Added ${t} items when expected ${this.numItems}.`);
|
|
64
|
+
return U(this.ids, this.coords, this.nodeSize, 0, this.numItems - 1, 0), this._finished = !0, this;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Search the index for items within a given bounding box.
|
|
68
|
+
* @param {number} minX
|
|
69
|
+
* @param {number} minY
|
|
70
|
+
* @param {number} maxX
|
|
71
|
+
* @param {number} maxY
|
|
72
|
+
* @returns {number[]} An array of indices correponding to the found items.
|
|
73
|
+
*/
|
|
74
|
+
range(t, s, n, i) {
|
|
75
|
+
if (!this._finished) throw new Error("Data not yet indexed - call index.finish().");
|
|
76
|
+
const { ids: r, coords: a, nodeSize: o } = this, e = [0, r.length - 1, 0], c = [];
|
|
77
|
+
for (; e.length; ) {
|
|
78
|
+
const f = e.pop() || 0, d = e.pop() || 0, p = e.pop() || 0;
|
|
79
|
+
if (d - p <= o) {
|
|
80
|
+
for (let w = p; w <= d; w++) {
|
|
81
|
+
const x = a[2 * w], M = a[2 * w + 1];
|
|
82
|
+
x >= t && x <= n && M >= s && M <= i && c.push(r[w]);
|
|
83
|
+
}
|
|
84
|
+
continue;
|
|
85
|
+
}
|
|
86
|
+
const y = p + d >> 1, u = a[2 * y], A = a[2 * y + 1];
|
|
87
|
+
u >= t && u <= n && A >= s && A <= i && c.push(r[y]), (f === 0 ? t <= u : s <= A) && (e.push(p), e.push(y - 1), e.push(1 - f)), (f === 0 ? n >= u : i >= A) && (e.push(y + 1), e.push(d), e.push(1 - f));
|
|
88
|
+
}
|
|
89
|
+
return c;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Search the index for items within a given radius.
|
|
93
|
+
* @param {number} qx
|
|
94
|
+
* @param {number} qy
|
|
95
|
+
* @param {number} r Query radius.
|
|
96
|
+
* @returns {number[]} An array of indices correponding to the found items.
|
|
97
|
+
*/
|
|
98
|
+
within(t, s, n) {
|
|
99
|
+
if (!this._finished) throw new Error("Data not yet indexed - call index.finish().");
|
|
100
|
+
const { ids: i, coords: r, nodeSize: a } = this, o = [0, i.length - 1, 0], e = [], c = n * n;
|
|
101
|
+
for (; o.length; ) {
|
|
102
|
+
const f = o.pop() || 0, d = o.pop() || 0, p = o.pop() || 0;
|
|
103
|
+
if (d - p <= a) {
|
|
104
|
+
for (let w = p; w <= d; w++)
|
|
105
|
+
S(r[2 * w], r[2 * w + 1], t, s) <= c && e.push(i[w]);
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
const y = p + d >> 1, u = r[2 * y], A = r[2 * y + 1];
|
|
109
|
+
S(u, A, t, s) <= c && e.push(i[y]), (f === 0 ? t - n <= u : s - n <= A) && (o.push(p), o.push(y - 1), o.push(1 - f)), (f === 0 ? t + n >= u : s + n >= A) && (o.push(y + 1), o.push(d), o.push(1 - f));
|
|
110
|
+
}
|
|
111
|
+
return e;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
function U(h, t, s, n, i, r) {
|
|
115
|
+
if (i - n <= s) return;
|
|
116
|
+
const a = n + i >> 1;
|
|
117
|
+
R(h, t, a, n, i, r), U(h, t, s, n, a - 1, 1 - r), U(h, t, s, a + 1, i, 1 - r);
|
|
118
|
+
}
|
|
119
|
+
function R(h, t, s, n, i, r) {
|
|
120
|
+
for (; i > n; ) {
|
|
121
|
+
if (i - n > 600) {
|
|
122
|
+
const c = i - n + 1, f = s - n + 1, d = Math.log(c), p = 0.5 * Math.exp(2 * d / 3), y = 0.5 * Math.sqrt(d * p * (c - p) / c) * (f - c / 2 < 0 ? -1 : 1), u = Math.max(n, Math.floor(s - f * p / c + y)), A = Math.min(i, Math.floor(s + (c - f) * p / c + y));
|
|
123
|
+
R(h, t, s, u, A, r);
|
|
124
|
+
}
|
|
125
|
+
const a = t[2 * s + r];
|
|
126
|
+
let o = n, e = i;
|
|
127
|
+
for (E(h, t, n, s), t[2 * i + r] > a && E(h, t, n, i); o < e; ) {
|
|
128
|
+
for (E(h, t, o, e), o++, e--; t[2 * o + r] < a; ) o++;
|
|
129
|
+
for (; t[2 * e + r] > a; ) e--;
|
|
130
|
+
}
|
|
131
|
+
t[2 * n + r] === a ? E(h, t, n, e) : (e++, E(h, t, e, i)), e <= s && (n = e + 1), s <= e && (i = e - 1);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
function E(h, t, s, n) {
|
|
135
|
+
_(h, s, n), _(t, 2 * s, 2 * n), _(t, 2 * s + 1, 2 * n + 1);
|
|
136
|
+
}
|
|
137
|
+
function _(h, t, s) {
|
|
138
|
+
const n = h[t];
|
|
139
|
+
h[t] = h[s], h[s] = n;
|
|
140
|
+
}
|
|
141
|
+
function S(h, t, s, n) {
|
|
142
|
+
const i = h - s, r = t - n;
|
|
143
|
+
return i * i + r * r;
|
|
144
|
+
}
|
|
145
|
+
export {
|
|
146
|
+
D as default
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=index.js.map
|