@visactor/vseed 0.1.50 → 0.2.0
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/cjs/index.cjs +3 -3
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/builder/builder/buildAdvanced.js +1 -1
- package/dist/esm/builder/builder/buildAdvanced.js.map +1 -1
- package/dist/esm/builder/builder/buildSpec.js +1 -1
- package/dist/esm/builder/builder/buildSpec.js.map +1 -1
- package/dist/esm/builder/builder/builder.d.ts +817 -1
- package/dist/esm/builder/builder/builder.js +5 -1
- package/dist/esm/builder/builder/builder.js.map +1 -1
- package/dist/esm/dataSelector/selector.d.ts +5 -0
- package/dist/esm/dataSelector/selector.js +92 -50
- package/dist/esm/dataSelector/selector.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/donut.js +3 -3
- package/dist/esm/pipeline/advanced/chart/pipeline/donut.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/histogram.js +1 -2
- package/dist/esm/pipeline/advanced/chart/pipeline/histogram.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/pie.js +3 -3
- package/dist/esm/pipeline/advanced/chart/pipeline/pie.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/boxplot.js +2 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/boxplot.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/column.js +2 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/column.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/dualAxis.js +2 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/dualAxis.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/histogram.js +2 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/histogram.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/line.js +2 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/line.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/scatter.js +2 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/scatter.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/pie.js +8 -6
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/pie.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/markStyle/markStyle.js +3 -1
- package/dist/esm/pipeline/advanced/chart/pipes/markStyle/markStyle.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasures.js +2 -1
- package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasures.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithBoxplotEncoding.js +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithBoxplotEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.js +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.js +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.js +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/area.js +3 -2
- package/dist/esm/pipeline/spec/chart/pipeline/area.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/areaPercent.js +3 -2
- package/dist/esm/pipeline/spec/chart/pipeline/areaPercent.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/bar.js +3 -2
- package/dist/esm/pipeline/spec/chart/pipeline/bar.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/barParallel.js +3 -2
- package/dist/esm/pipeline/spec/chart/pipeline/barParallel.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/barPercent.js +3 -2
- package/dist/esm/pipeline/spec/chart/pipeline/barPercent.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/boxplot.js +8 -6
- package/dist/esm/pipeline/spec/chart/pipeline/boxplot.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/column.js +3 -2
- package/dist/esm/pipeline/spec/chart/pipeline/column.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/columnParallel.js +3 -2
- package/dist/esm/pipeline/spec/chart/pipeline/columnParallel.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/columnPercent.js +3 -2
- package/dist/esm/pipeline/spec/chart/pipeline/columnPercent.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/dualAxis.js +19 -16
- package/dist/esm/pipeline/spec/chart/pipeline/dualAxis.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/histogram.js +3 -2
- package/dist/esm/pipeline/spec/chart/pipeline/histogram.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/line.js +3 -2
- package/dist/esm/pipeline/spec/chart/pipeline/line.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/scatter.js +6 -3
- package/dist/esm/pipeline/spec/chart/pipeline/scatter.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPointOfDualAxis.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPointOfDualAxis.js +94 -0
- package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPointOfDualAxis.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/annotation/index.d.ts +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/annotation/index.js +2 -1
- package/dist/esm/pipeline/spec/chart/pipes/annotation/utils.d.ts +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/annotation/utils.js +2 -1
- package/dist/esm/pipeline/spec/chart/pipes/annotation/utils.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js +12 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js +12 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/color/colorBoxPlotStyleFill.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/color/colorBoxPlotStyleFill.js +17 -0
- package/dist/esm/pipeline/spec/chart/pipes/color/colorBoxPlotStyleFill.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/color/index.d.ts +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/color/index.js +2 -1
- package/dist/esm/pipeline/spec/chart/pipes/crosshair/horizontalCrosshairLine.js +3 -0
- package/dist/esm/pipeline/spec/chart/pipes/crosshair/horizontalCrosshairLine.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/crosshair/horizontalCrosshairRect.js +4 -1
- package/dist/esm/pipeline/spec/chart/pipes/crosshair/horizontalCrosshairRect.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/crosshair/verticalCrosshairLine.js +3 -0
- package/dist/esm/pipeline/spec/chart/pipes/crosshair/verticalCrosshairLine.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/crosshair/verticalCrosshairRect.js +4 -1
- package/dist/esm/pipeline/spec/chart/pipes/crosshair/verticalCrosshairRect.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/index.d.ts +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/index.js +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/init/pivot.js +2 -2
- package/dist/esm/pipeline/spec/chart/pipes/init/pivot.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/boxPlotStyle.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/boxPlotStyle.js +52 -0
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/boxPlotStyle.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/index.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/index.js +3 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/outlierStyle.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/outlierStyle.js +67 -0
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/outlierStyle.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/areaStyleFilter.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/areaStyleFilter.js +7 -0
- package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/areaStyleFilter.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/barStyleFilter.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/barStyleFilter.js +7 -0
- package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/barStyleFilter.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/index.d.ts +4 -0
- package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/index.js +4 -0
- package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/lineStyleFilter.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/lineStyleFilter.js +7 -0
- package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/lineStyleFilter.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/pointStyleFilter.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/pointStyleFilter.js +7 -0
- package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/pointStyleFilter.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/dimensionLinkage.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/dimensionLinkage.js +47 -0
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/dimensionLinkage.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/index.d.ts +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/index.js +2 -1
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotAxisStyle.js +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotAxisStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotGridStyle.js +16 -1
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotGridStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotIndicators.js +3 -2
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotIndicators.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/columnRegressionLine.js +18 -12
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/columnRegressionLine.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/common.d.ts +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/common.js +2 -1
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/common.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.js +9 -5
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/kdeRegressionLine.js +14 -6
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/kdeRegressionLine.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/linearRegressionLine.js +69 -32
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/linearRegressionLine.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/stack/stackCornerRadius.js +2 -3
- package/dist/esm/pipeline/spec/chart/pipes/stack/stackCornerRadius.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/index.d.ts +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/index.js +2 -2
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js +8 -8
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.d.ts +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js +16 -2
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js.map +1 -1
- package/dist/esm/pipeline/utils/measures/find.d.ts +1 -0
- package/dist/esm/pipeline/utils/measures/find.js +13 -1
- package/dist/esm/pipeline/utils/measures/find.js.map +1 -1
- package/dist/esm/theme/common/axes.js +4 -4
- package/dist/esm/theme/common/axes.js.map +1 -1
- package/dist/esm/theme/common/boxPlot.d.ts +5 -0
- package/dist/esm/theme/common/boxPlot.js +15 -0
- package/dist/esm/theme/common/boxPlot.js.map +1 -0
- package/dist/esm/theme/common/crosshair.js +4 -4
- package/dist/esm/theme/common/crosshair.js.map +1 -1
- package/dist/esm/theme/common/table.js +2 -0
- package/dist/esm/theme/common/table.js.map +1 -1
- package/dist/esm/theme/dark/dark.js +4 -1
- package/dist/esm/theme/dark/dark.js.map +1 -1
- package/dist/esm/theme/light/light.js +4 -1
- package/dist/esm/theme/light/light.js.map +1 -1
- package/dist/esm/types/advancedVSeed.d.ts +533 -0
- package/dist/esm/types/advancedVSeed.js +1 -0
- package/dist/esm/types/advancedVSeed.js.map +1 -1
- package/dist/esm/types/chartType/area/area.d.ts +6 -1
- package/dist/esm/types/chartType/area/zArea.d.ts +5 -0
- package/dist/esm/types/chartType/area/zArea.js +2 -1
- package/dist/esm/types/chartType/area/zArea.js.map +1 -1
- package/dist/esm/types/chartType/areaPercent/areaPercent.d.ts +6 -1
- package/dist/esm/types/chartType/areaPercent/zAreaPercent.d.ts +5 -0
- package/dist/esm/types/chartType/areaPercent/zAreaPercent.js +2 -1
- package/dist/esm/types/chartType/areaPercent/zAreaPercent.js.map +1 -1
- package/dist/esm/types/chartType/bar/bar.d.ts +6 -1
- package/dist/esm/types/chartType/bar/zBar.d.ts +5 -0
- package/dist/esm/types/chartType/bar/zBar.js +2 -1
- package/dist/esm/types/chartType/bar/zBar.js.map +1 -1
- package/dist/esm/types/chartType/barParallel/barParallel.d.ts +6 -1
- package/dist/esm/types/chartType/barParallel/zBarParallel.d.ts +5 -0
- package/dist/esm/types/chartType/barParallel/zBarParallel.js +2 -1
- package/dist/esm/types/chartType/barParallel/zBarParallel.js.map +1 -1
- package/dist/esm/types/chartType/barPercent/barPercent.d.ts +6 -1
- package/dist/esm/types/chartType/barPercent/zBarPercent.d.ts +5 -0
- package/dist/esm/types/chartType/barPercent/zBarPercent.js +2 -1
- package/dist/esm/types/chartType/barPercent/zBarPercent.js.map +1 -1
- package/dist/esm/types/chartType/boxplot/boxplot.d.ts +14 -1
- package/dist/esm/types/chartType/boxplot/zBoxplot.d.ts +321 -0
- package/dist/esm/types/chartType/boxplot/zBoxplot.js +4 -1
- package/dist/esm/types/chartType/boxplot/zBoxplot.js.map +1 -1
- package/dist/esm/types/chartType/column/column.d.ts +6 -1
- package/dist/esm/types/chartType/column/zColumn.d.ts +5 -0
- package/dist/esm/types/chartType/column/zColumn.js +2 -1
- package/dist/esm/types/chartType/column/zColumn.js.map +1 -1
- package/dist/esm/types/chartType/columnParallel/columnParallel.d.ts +6 -1
- package/dist/esm/types/chartType/columnParallel/zColumnParallel.d.ts +5 -0
- package/dist/esm/types/chartType/columnParallel/zColumnParallel.js +2 -1
- package/dist/esm/types/chartType/columnParallel/zColumnParallel.js.map +1 -1
- package/dist/esm/types/chartType/columnPercent/columnPercent.d.ts +6 -1
- package/dist/esm/types/chartType/columnPercent/zColumnPercent.d.ts +5 -0
- package/dist/esm/types/chartType/columnPercent/zColumnPercent.js +2 -1
- package/dist/esm/types/chartType/columnPercent/zColumnPercent.js.map +1 -1
- package/dist/esm/types/chartType/dualAxis/dualAxis.d.ts +6 -1
- package/dist/esm/types/chartType/dualAxis/zDualAxis.d.ts +5 -0
- package/dist/esm/types/chartType/dualAxis/zDualAxis.js +2 -1
- package/dist/esm/types/chartType/dualAxis/zDualAxis.js.map +1 -1
- package/dist/esm/types/chartType/histogram/histogram.d.ts +6 -1
- package/dist/esm/types/chartType/histogram/zHistogram.d.ts +5 -0
- package/dist/esm/types/chartType/histogram/zHistogram.js +2 -1
- package/dist/esm/types/chartType/histogram/zHistogram.js.map +1 -1
- package/dist/esm/types/chartType/line/line.d.ts +6 -1
- package/dist/esm/types/chartType/line/zLine.d.ts +5 -0
- package/dist/esm/types/chartType/line/zLine.js +2 -1
- package/dist/esm/types/chartType/line/zLine.js.map +1 -1
- package/dist/esm/types/chartType/scatter/scatter.d.ts +6 -1
- package/dist/esm/types/chartType/scatter/zScatter.d.ts +5 -0
- package/dist/esm/types/chartType/scatter/zScatter.js +2 -1
- package/dist/esm/types/chartType/scatter/zScatter.js.map +1 -1
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.js +1 -0
- package/dist/esm/types/properties/config/area.d.ts +10 -0
- package/dist/esm/types/properties/config/area.js +3 -1
- package/dist/esm/types/properties/config/area.js.map +1 -1
- package/dist/esm/types/properties/config/bar.d.ts +15 -0
- package/dist/esm/types/properties/config/bar.js +3 -1
- package/dist/esm/types/properties/config/bar.js.map +1 -1
- package/dist/esm/types/properties/config/boxplot.d.ts +26 -0
- package/dist/esm/types/properties/config/boxplot.js +10 -1
- package/dist/esm/types/properties/config/boxplot.js.map +1 -1
- package/dist/esm/types/properties/config/column.d.ts +15 -0
- package/dist/esm/types/properties/config/column.js +3 -1
- package/dist/esm/types/properties/config/column.js.map +1 -1
- package/dist/esm/types/properties/config/config.d.ts +86 -0
- package/dist/esm/types/properties/config/dimensionLinkage/dimensionLinkage.d.ts +23 -0
- package/dist/esm/types/properties/config/dimensionLinkage/dimensionLinkage.js +9 -0
- package/dist/esm/types/properties/config/dimensionLinkage/dimensionLinkage.js.map +1 -0
- package/dist/esm/types/properties/config/dimensionLinkage/index.d.ts +1 -0
- package/dist/esm/types/properties/config/dimensionLinkage/index.js +1 -0
- package/dist/esm/types/properties/config/dualAxis.d.ts +5 -0
- package/dist/esm/types/properties/config/dualAxis.js +3 -1
- package/dist/esm/types/properties/config/dualAxis.js.map +1 -1
- package/dist/esm/types/properties/config/histogram.d.ts +5 -0
- package/dist/esm/types/properties/config/histogram.js +3 -1
- package/dist/esm/types/properties/config/histogram.js.map +1 -1
- package/dist/esm/types/properties/config/index.d.ts +1 -0
- package/dist/esm/types/properties/config/index.js +1 -0
- package/dist/esm/types/properties/config/label/pieLabel.d.ts +2 -2
- package/dist/esm/types/properties/config/line.d.ts +5 -0
- package/dist/esm/types/properties/config/line.js +3 -1
- package/dist/esm/types/properties/config/line.js.map +1 -1
- package/dist/esm/types/properties/config/scatter.d.ts +5 -0
- package/dist/esm/types/properties/config/scatter.js +3 -1
- package/dist/esm/types/properties/config/scatter.js.map +1 -1
- package/dist/esm/types/properties/markStyle/boxPlotStyle.d.ts +148 -0
- package/dist/esm/types/properties/markStyle/boxPlotStyle.js +14 -0
- package/dist/esm/types/properties/markStyle/boxPlotStyle.js.map +1 -0
- package/dist/esm/types/properties/markStyle/index.d.ts +2 -0
- package/dist/esm/types/properties/markStyle/index.js +2 -0
- package/dist/esm/types/properties/markStyle/markStyle.d.ts +316 -0
- package/dist/esm/types/properties/markStyle/markStyle.js +5 -1
- package/dist/esm/types/properties/markStyle/markStyle.js.map +1 -1
- package/dist/esm/types/properties/markStyle/outlierStyle.d.ts +161 -0
- package/dist/esm/types/properties/markStyle/outlierStyle.js +22 -0
- package/dist/esm/types/properties/markStyle/outlierStyle.js.map +1 -0
- package/dist/esm/types/properties/regressionLine/ecdfRegressionLine.d.ts +2 -2
- package/dist/esm/types/properties/regressionLine/kdeRegressionLine.d.ts +2 -2
- package/dist/esm/types/properties/regressionLine/linearRegressionLine.d.ts +2 -2
- package/dist/esm/types/properties/regressionLine/logisticRegressionLine.d.ts +2 -2
- package/dist/esm/types/properties/regressionLine/lowessRegressionLine.d.ts +2 -2
- package/dist/esm/types/properties/regressionLine/polynomialRegressionLine.d.ts +2 -2
- package/dist/esm/types/properties/theme/customTheme.d.ts +172 -0
- package/dist/esm/types/zVseed.d.ts +381 -0
- package/dist/umd/index.js +845 -279
- package/dist/umd/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -8,9 +8,13 @@ class Builder {
|
|
|
8
8
|
_advancedVSeed = null;
|
|
9
9
|
_spec = null;
|
|
10
10
|
_performance = {};
|
|
11
|
+
_locale;
|
|
11
12
|
constructor(vseed){
|
|
12
13
|
this._vseed = vseed;
|
|
13
|
-
this.
|
|
14
|
+
this._locale = vseed.locale || intl.getLocale();
|
|
15
|
+
}
|
|
16
|
+
get locale() {
|
|
17
|
+
return this._locale;
|
|
14
18
|
}
|
|
15
19
|
build = ()=>build(this);
|
|
16
20
|
buildSpec = (advanced)=>buildSpec(this, advanced);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder/builder/builder.js","sources":["webpack://@visactor/vseed/./src/builder/builder/builder.ts"],"sourcesContent":["import type {\n AdvancedPipe,\n AdvancedPipeline,\n AdvancedVSeed,\n ChartType,\n CustomThemeConfig,\n Spec,\n SpecPipe,\n SpecPipeline,\n VSeed,\n VSeedBuilder,\n} from 'src/types'\nimport { buildAdvanced } from './buildAdvanced'\nimport { buildSpec } from './buildSpec'\nimport { build } from './build'\nimport { intl } from 'src/i18n'\nimport { getColorIdMap, getColorItems } from './advanced'\n\nexport class Builder implements VSeedBuilder {\n private _vseed: VSeed\n private _advancedVSeed: AdvancedVSeed | null = null\n private _spec: Spec | null = null\n private _performance: Record<string, string | number> = {}\n\n constructor(vseed: VSeed) {\n this._vseed = vseed\n this.
|
|
1
|
+
{"version":3,"file":"builder/builder/builder.js","sources":["webpack://@visactor/vseed/./src/builder/builder/builder.ts"],"sourcesContent":["import type {\n AdvancedPipe,\n AdvancedPipeline,\n AdvancedVSeed,\n ChartType,\n CustomThemeConfig,\n Locale,\n Spec,\n SpecPipe,\n SpecPipeline,\n VSeed,\n VSeedBuilder,\n} from 'src/types'\nimport { buildAdvanced } from './buildAdvanced'\nimport { buildSpec } from './buildSpec'\nimport { build } from './build'\nimport { intl } from 'src/i18n'\nimport { getColorIdMap, getColorItems } from './advanced'\n\nexport class Builder implements VSeedBuilder {\n private _vseed: VSeed\n private _advancedVSeed: AdvancedVSeed | null = null\n private _spec: Spec | null = null\n private _performance: Record<string, string | number> = {}\n\n private _locale: Locale\n\n constructor(vseed: VSeed) {\n this._vseed = vseed\n this._locale = vseed.locale || intl.getLocale()\n }\n\n get locale() {\n return this._locale\n }\n\n /**\n * @description 构建spec\n * @returns spec\n */\n build = <T extends Spec>(): T => build(this) as T\n\n /**\n * @description 构建spec\n * @param advanced 高级配置\n * @returns spec\n */\n buildSpec = (advanced: AdvancedVSeed): Spec => buildSpec(this, advanced)\n\n /**\n * @description 构建spec\n * @returns AdvancedVSeed | null\n */\n buildAdvanced = (): AdvancedVSeed | null => buildAdvanced(this)\n\n /**\n * @description 获取颜色项, 颜色项可以重复,\n * @returns 颜色项\n */\n getColorItems = () => getColorItems(this)\n\n /**\n * @description 获取颜色id映射\n * @returns 颜色id映射\n */\n getColorIdMap = () => getColorIdMap(this)\n\n /**\n * @description 获取vseed\n * @returns vseed\n */\n get vseed() {\n return this._vseed\n }\n\n /**\n * @description 设置vseed\n * @param value vseed\n */\n set vseed(value) {\n this._vseed = value\n }\n\n /**\n * @description 获取advancedVSeed\n * @returns advancedVSeed\n */\n get advancedVSeed() {\n return this._advancedVSeed\n }\n\n /**\n *\n * @description 设置advancedVSeed\n * @param value advancedVSeed\n */\n set advancedVSeed(value) {\n this._advancedVSeed = value\n }\n\n /**\n * @description 获取spec\n * @returns spec\n */\n get spec() {\n return this._spec\n }\n\n /**\n * @description 设置spec\n * @param value spec\n */\n set spec(value) {\n this._spec = value\n }\n\n /**\n * @description 获取performance, 统计了构建spec和advancedVSeed的时间\n * @returns performance\n */\n get performance() {\n return this._performance\n }\n\n /**\n * @description 设置performance\n * @param value performance\n */\n set performance(value) {\n this._performance = value\n }\n\n /**\n * @description 获取advancedPipeline\n * @param chartType 图表类型\n * @returns advancedPipeline\n */\n static getAdvancedPipeline = (chartType: ChartType) => {\n const customPipe = Builder._customAdvancedPipe[chartType] as AdvancedPipe\n const pipeline = Builder._advancedPipelineMap[chartType] as AdvancedPipeline\n if (customPipe) {\n pipeline.push(customPipe)\n }\n return pipeline\n }\n\n /**\n * @description 获取specPipeline\n * @param chartType 图表类型\n * @returns specPipeline\n */\n\n static getSpecPipeline = (chartType: ChartType) => {\n const customPipe = Builder._customSpecPipe[chartType] as SpecPipe\n const pipeline = Builder._specPipelineMap[chartType] as SpecPipeline\n if (customPipe) {\n pipeline.push(customPipe)\n }\n return pipeline\n }\n\n /**\n * @description 根据主题key获取主题配置\n * @param themeKey 主题key\n * @example Builder.getTheme('light'), 获取浅色主题\n * @returns 主题配置\n */\n static getTheme = (themeKey?: string) => Builder._themeMap[themeKey || 'light']\n\n /**\n * @description 获取主题配置映射表\n * @example Builder.getThemeMap()\n * @returns 主题配置映射表\n */\n static getThemeMap = () => Builder._themeMap\n\n /**\n * @description 从vseed创建builder\n * @param vseed 完整的vseed DSL\n * @returns builder\n */\n static from = (vseed: VSeed) => new Builder(vseed)\n\n static _advancedPipelineMap: Partial<Record<ChartType, AdvancedPipeline>> = {}\n static _specPipelineMap: Partial<Record<ChartType, SpecPipeline>> = {}\n static _customAdvancedPipe: Partial<Record<ChartType, AdvancedPipe>> = {}\n static _customSpecPipe: Partial<Record<ChartType, SpecPipe>> = {}\n static _themeMap: Record<string, CustomThemeConfig> = {}\n}\n"],"names":["Builder","vseed","intl","build","advanced","buildSpec","buildAdvanced","getColorItems","getColorIdMap","value","chartType","customPipe","pipeline","themeKey"],"mappings":";;;;;AAmBO,MAAMA;IACH,OAAa;IACb,iBAAuC,KAAI;IAC3C,QAAqB,KAAI;IACzB,eAAgD,CAAC,EAAC;IAElD,QAAe;IAEvB,YAAYC,KAAY,CAAE;QACxB,IAAI,CAAC,MAAM,GAAGA;QACd,IAAI,CAAC,OAAO,GAAGA,MAAM,MAAM,IAAIC,KAAK,SAAS;IAC/C;IAEA,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO;IACrB;IAMA,QAAQ,IAAyBC,MAAM,IAAI,EAAM;IAOjD,YAAY,CAACC,WAAkCC,UAAU,IAAI,EAAED,UAAS;IAMxE,gBAAgB,IAA4BE,cAAc,IAAI,EAAC;IAM/D,gBAAgB,IAAMC,cAAc,IAAI,EAAC;IAMzC,gBAAgB,IAAMC,cAAc,IAAI,EAAC;IAMzC,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,MAAM;IACpB;IAMA,IAAI,MAAMC,KAAK,EAAE;QACf,IAAI,CAAC,MAAM,GAAGA;IAChB;IAMA,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,cAAc;IAC5B;IAOA,IAAI,cAAcA,KAAK,EAAE;QACvB,IAAI,CAAC,cAAc,GAAGA;IACxB;IAMA,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK;IACnB;IAMA,IAAI,KAAKA,KAAK,EAAE;QACd,IAAI,CAAC,KAAK,GAAGA;IACf;IAMA,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,YAAY;IAC1B;IAMA,IAAI,YAAYA,KAAK,EAAE;QACrB,IAAI,CAAC,YAAY,GAAGA;IACtB;IAOA,OAAO,sBAAsB,CAACC;QAC5B,MAAMC,aAAaX,QAAQ,mBAAmB,CAACU,UAAU;QACzD,MAAME,WAAWZ,QAAQ,oBAAoB,CAACU,UAAU;QACxD,IAAIC,YACFC,SAAS,IAAI,CAACD;QAEhB,OAAOC;IACT,EAAC;IAQD,OAAO,kBAAkB,CAACF;QACxB,MAAMC,aAAaX,QAAQ,eAAe,CAACU,UAAU;QACrD,MAAME,WAAWZ,QAAQ,gBAAgB,CAACU,UAAU;QACpD,IAAIC,YACFC,SAAS,IAAI,CAACD;QAEhB,OAAOC;IACT,EAAC;IAQD,OAAO,WAAW,CAACC,WAAsBb,QAAQ,SAAS,CAACa,YAAY,QAAQ;IAO/E,OAAO,cAAc,IAAMb,QAAQ,SAAS;IAO5C,OAAO,OAAO,CAACC,QAAiB,IAAID,QAAQC,OAAM;IAElD,OAAO,uBAAqE,CAAC,EAAC;IAC9E,OAAO,mBAA6D,CAAC,EAAC;IACtE,OAAO,sBAAgE,CAAC,EAAC;IACzE,OAAO,kBAAwD,CAAC,EAAC;IACjE,OAAO,YAA+C,CAAC,EAAC;AAC1D"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import type { Datum } from '../types';
|
|
2
2
|
import type { DimensionSelector, MeasureSelector, PartialDatumSelector, Selector, Selectors, ValueSelector } from '../types/dataSelector';
|
|
3
3
|
export declare const selector: (vchartDatum: Datum, selector: Selector | Selectors | undefined | null, selectorMode?: "And" | "Or") => boolean;
|
|
4
|
+
export declare const selectorDatum: (datum: Datum, selector: Selector | Selectors | undefined | null) => Datum[];
|
|
4
5
|
export declare const isValueSelector: (selector: Selector) => selector is ValueSelector;
|
|
5
6
|
export declare const isPartialDatumSelector: (selector: Selector) => selector is PartialDatumSelector;
|
|
6
7
|
export declare const isMeasureSelector: (selector: Selector) => selector is MeasureSelector;
|
|
7
8
|
export declare const isDimensionSelector: (selector: Selector) => selector is DimensionSelector;
|
|
9
|
+
export declare const selectByMeasure: (selector: MeasureSelector, datum: Datum) => boolean;
|
|
10
|
+
export declare const selectByDmension: (selector: DimensionSelector, datum: Datum) => boolean;
|
|
11
|
+
export declare const selectByPartial: (selector: PartialDatumSelector, datum: Datum) => boolean;
|
|
12
|
+
export declare const selectByValue: (selector: ValueSelector, datum: Datum) => boolean;
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import { omit } from "remeda";
|
|
2
|
+
function nearlyEqual(a, b, epsilon = 1e-8) {
|
|
3
|
+
if (Number.isNaN(a) || Number.isNaN(b)) return false;
|
|
4
|
+
if (a === b) return true;
|
|
5
|
+
const diff = Math.abs(a - b);
|
|
6
|
+
return diff <= epsilon;
|
|
7
|
+
}
|
|
2
8
|
const selector_selector = (vchartDatum, selector, selectorMode = 'And')=>{
|
|
3
9
|
if (!selector) return true;
|
|
4
10
|
const vchartKeys = Object.keys(vchartDatum).filter((k)=>k.toLocaleLowerCase().startsWith('__vchart'));
|
|
@@ -7,58 +13,44 @@ const selector_selector = (vchartDatum, selector, selectorMode = 'And')=>{
|
|
|
7
13
|
selector
|
|
8
14
|
];
|
|
9
15
|
return selectors['And' === selectorMode ? 'every' : 'some']((selector)=>{
|
|
10
|
-
if (isValueSelector(selector))
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const selectorValueArr = Array.isArray(selector.value) ? selector.value : [
|
|
15
|
-
selector.value
|
|
16
|
-
];
|
|
17
|
-
switch(op){
|
|
18
|
-
case '=':
|
|
19
|
-
if (String(datum[selector.field]) === String(selectorValueArr[0])) return true;
|
|
20
|
-
break;
|
|
21
|
-
case '==':
|
|
22
|
-
if (datum[selector.field] === selectorValueArr[0]) return true;
|
|
23
|
-
break;
|
|
24
|
-
case '!=':
|
|
25
|
-
if (datum[selector.field] !== selectorValueArr[0]) return true;
|
|
26
|
-
break;
|
|
27
|
-
case '>':
|
|
28
|
-
if (datum[selector.field] > selectorValueArr[0]) return true;
|
|
29
|
-
break;
|
|
30
|
-
case '<':
|
|
31
|
-
if (datum[selector.field] < selectorValueArr[0]) return true;
|
|
32
|
-
break;
|
|
33
|
-
case '>=':
|
|
34
|
-
if (datum[selector.field] >= selectorValueArr[0]) return true;
|
|
35
|
-
break;
|
|
36
|
-
case '<=':
|
|
37
|
-
if (datum[selector.field] <= selectorValueArr[0]) return true;
|
|
38
|
-
break;
|
|
39
|
-
case 'between':
|
|
40
|
-
if (Array.isArray(selector.value) && datum[selector.field] >= selectorValueArr[0] && datum[selector.field] <= selectorValueArr[1]) return true;
|
|
41
|
-
break;
|
|
42
|
-
}
|
|
43
|
-
} else if (isDimensionSelector(selector)) {
|
|
44
|
-
const op = selector.operator || selector.op;
|
|
45
|
-
const selectorValueArr = Array.isArray(selector.value) ? selector.value : [
|
|
46
|
-
selector.value
|
|
47
|
-
];
|
|
48
|
-
switch(op){
|
|
49
|
-
case 'in':
|
|
50
|
-
if (selectorValueArr.includes(datum[selector.field])) return true;
|
|
51
|
-
break;
|
|
52
|
-
case 'not in':
|
|
53
|
-
if (!selectorValueArr.includes(datum[selector.field])) return true;
|
|
54
|
-
break;
|
|
55
|
-
}
|
|
56
|
-
} else if (isPartialDatumSelector(selector)) {
|
|
57
|
-
if (Object.keys(selector).every((key)=>datum[key] === selector[key])) return true;
|
|
58
|
-
}
|
|
16
|
+
if (isValueSelector(selector)) return selectByValue(selector, datum);
|
|
17
|
+
if (isMeasureSelector(selector)) return selectByMeasure(selector, datum);
|
|
18
|
+
if (isDimensionSelector(selector)) return selectByDmension(selector, datum);
|
|
19
|
+
if (isPartialDatumSelector(selector)) return selectByPartial(selector, datum);
|
|
59
20
|
return false;
|
|
60
21
|
});
|
|
61
22
|
};
|
|
23
|
+
const selectorDatum = (datum, selector)=>{
|
|
24
|
+
if (!selector) return [];
|
|
25
|
+
const selectors = Array.isArray(selector) ? selector : [
|
|
26
|
+
selector
|
|
27
|
+
];
|
|
28
|
+
let finalResult = [];
|
|
29
|
+
for (const selector of selectors){
|
|
30
|
+
const results = [];
|
|
31
|
+
if (isValueSelector(selector)) Object.entries(datum).forEach(([key, value])=>{
|
|
32
|
+
if (value === selector) results.push({
|
|
33
|
+
[key]: value
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
else if (isMeasureSelector(selector) && selectByMeasure(selector, datum)) results.push({
|
|
37
|
+
[selector.field]: datum[selector.field]
|
|
38
|
+
});
|
|
39
|
+
else if (isDimensionSelector(selector) && selectByDmension(selector, datum)) results.push({
|
|
40
|
+
[selector.field]: datum[selector.field]
|
|
41
|
+
});
|
|
42
|
+
else if (isPartialDatumSelector(selector) && selectByPartial(selector, datum)) results.push(selector);
|
|
43
|
+
if (results.length) finalResult = finalResult.length ? finalResult.flatMap((prev)=>results.map((r)=>({
|
|
44
|
+
...prev,
|
|
45
|
+
...r
|
|
46
|
+
}))) : results;
|
|
47
|
+
else {
|
|
48
|
+
finalResult = [];
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return finalResult;
|
|
53
|
+
};
|
|
62
54
|
const isValueSelector = (selector)=>'string' == typeof selector || 'number' == typeof selector;
|
|
63
55
|
const isPartialDatumSelector = (selector)=>'object' == typeof selector && null !== selector;
|
|
64
56
|
const isMeasureSelector = (selector)=>'object' == typeof selector && null !== selector && 'field' in selector && ('operator' in selector || 'op' in selector) && 'value' in selector && ([
|
|
@@ -87,6 +79,56 @@ const isDimensionSelector = (selector)=>'object' == typeof selector && null !==
|
|
|
87
79
|
'in',
|
|
88
80
|
'not in'
|
|
89
81
|
].includes(selector.op));
|
|
90
|
-
|
|
82
|
+
const selectByMeasure = (selector, datum)=>{
|
|
83
|
+
const op = selector.operator || selector.op;
|
|
84
|
+
const selectorValueArr = Array.isArray(selector.value) ? selector.value : [
|
|
85
|
+
selector.value
|
|
86
|
+
];
|
|
87
|
+
switch(op){
|
|
88
|
+
case '=':
|
|
89
|
+
if (String(datum[selector.field]) === String(selectorValueArr[0]) || nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))) return true;
|
|
90
|
+
break;
|
|
91
|
+
case '==':
|
|
92
|
+
if (datum[selector.field] === selectorValueArr[0]) return true;
|
|
93
|
+
break;
|
|
94
|
+
case '!=':
|
|
95
|
+
if (datum[selector.field] !== selectorValueArr[0]) return true;
|
|
96
|
+
break;
|
|
97
|
+
case '>':
|
|
98
|
+
if (datum[selector.field] > selectorValueArr[0] && !nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))) return true;
|
|
99
|
+
break;
|
|
100
|
+
case '<':
|
|
101
|
+
if (datum[selector.field] < selectorValueArr[0] && !nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))) return true;
|
|
102
|
+
break;
|
|
103
|
+
case '>=':
|
|
104
|
+
if (datum[selector.field] >= selectorValueArr[0] || nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))) return true;
|
|
105
|
+
break;
|
|
106
|
+
case '<=':
|
|
107
|
+
if (datum[selector.field] <= selectorValueArr[0] || nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))) return true;
|
|
108
|
+
break;
|
|
109
|
+
case 'between':
|
|
110
|
+
if (Array.isArray(selector.value) && (datum[selector.field] >= selectorValueArr[0] || nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))) && (datum[selector.field] <= selectorValueArr[1] || nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[1])))) return true;
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
return false;
|
|
114
|
+
};
|
|
115
|
+
const selectByDmension = (selector, datum)=>{
|
|
116
|
+
const op = selector.operator || selector.op;
|
|
117
|
+
const selectorValueArr = Array.isArray(selector.value) ? selector.value : [
|
|
118
|
+
selector.value
|
|
119
|
+
];
|
|
120
|
+
switch(op){
|
|
121
|
+
case 'in':
|
|
122
|
+
if (selectorValueArr.includes(datum[selector.field])) return true;
|
|
123
|
+
break;
|
|
124
|
+
case 'not in':
|
|
125
|
+
if (!selectorValueArr.includes(datum[selector.field])) return true;
|
|
126
|
+
break;
|
|
127
|
+
}
|
|
128
|
+
return false;
|
|
129
|
+
};
|
|
130
|
+
const selectByPartial = (selector, datum)=>Object.keys(selector).every((key)=>datum[key] === selector[key]);
|
|
131
|
+
const selectByValue = (selector, datum)=>Object.values(datum).some((v)=>v === selector);
|
|
132
|
+
export { isDimensionSelector, isMeasureSelector, isPartialDatumSelector, isValueSelector, selectByDmension, selectByMeasure, selectByPartial, selectByValue, selector_selector as selector, selectorDatum };
|
|
91
133
|
|
|
92
134
|
//# sourceMappingURL=selector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataSelector/selector.js","sources":["webpack://@visactor/vseed/./src/dataSelector/selector.ts"],"sourcesContent":["import type { Datum } from 'src/types'\nimport type {\n DimensionSelector,\n MeasureSelector,\n PartialDatumSelector,\n Selector,\n Selectors,\n ValueSelector,\n} from '../types/dataSelector'\nimport { omit } from 'remeda'\n\nexport const selector = (\n vchartDatum: Datum,\n selector: Selector | Selectors | undefined | null,\n selectorMode: 'And' | 'Or' = 'And',\n) => {\n // 无有效选择器, 则认为全部匹配成功\n if (!selector) {\n return true\n }\n\n // 过滤掉 vchart 相关字段\n const vchartKeys = Object.keys(vchartDatum).filter((k) => k.toLocaleLowerCase().startsWith('__vchart'))\n const datum = omit(vchartDatum, vchartKeys) as Datum\n\n // 统一处理选择器为数组\n const selectors = (Array.isArray(selector) ? selector : [selector]) as Selectors\n\n return selectors[selectorMode === 'And' ? 'every' : 'some']((selector) => {\n // 1. 字符串或数字\n if (isValueSelector(selector)) {\n if (Object.values(datum).find((v) => v === selector)) {\n return true\n }\n }\n\n // 2. 指标选择器\n else if (isMeasureSelector(selector)) {\n const op = selector.operator || selector.op\n const selectorValueArr = Array.isArray(selector.value) ? selector.value : [selector.value]\n\n switch (op) {\n case '=':\n if (String(datum[selector.field]) === String(selectorValueArr[0])) {\n return true\n }\n break\n case '==':\n if (datum[selector.field] === selectorValueArr[0]) {\n return true\n }\n break\n case '!=':\n if (datum[selector.field] !== selectorValueArr[0]) {\n return true\n }\n break\n case '>':\n if (datum[selector.field] > selectorValueArr[0]) {\n return true\n }\n break\n case '<':\n if (datum[selector.field] < selectorValueArr[0]) {\n return true\n }\n break\n case '>=':\n if (datum[selector.field] >= selectorValueArr[0]) {\n return true\n }\n break\n case '<=':\n if (datum[selector.field] <= selectorValueArr[0]) {\n return true\n }\n break\n case 'between':\n if (\n Array.isArray(selector.value) &&\n datum[selector.field] >= selectorValueArr[0] &&\n datum[selector.field] <= selectorValueArr[1]\n ) {\n return true\n }\n break\n }\n }\n // 3. 维度选择器\n else if (isDimensionSelector(selector)) {\n const op = selector.operator || selector.op\n const selectorValueArr = Array.isArray(selector.value) ? selector.value : [selector.value]\n switch (op) {\n case 'in':\n if (selectorValueArr.includes(datum[selector.field] as string | number)) {\n return true\n }\n break\n case 'not in':\n if (!selectorValueArr.includes(datum[selector.field] as string | number)) {\n return true\n }\n break\n }\n }\n // 4. 部分数据对象选择器\n else if (isPartialDatumSelector(selector)) {\n if (Object.keys(selector).every((key) => datum[key] === selector[key])) {\n return true\n }\n }\n\n return false\n })\n}\n\nexport const isValueSelector = (selector: Selector): selector is ValueSelector => {\n return typeof selector === 'string' || typeof selector === 'number'\n}\n\nexport const isPartialDatumSelector = (selector: Selector): selector is PartialDatumSelector => {\n return typeof selector === 'object' && selector !== null\n}\n\nexport const isMeasureSelector = (selector: Selector): selector is MeasureSelector => {\n return (\n typeof selector === 'object' &&\n selector !== null &&\n 'field' in selector &&\n ('operator' in selector || 'op' in selector) &&\n 'value' in selector &&\n (['=', '==', '!=', '>', '<', '>=', '<=', 'between'].includes(selector.operator as string) ||\n ['=', '==', '!=', '>', '<', '>=', '<=', 'between'].includes(selector.op as string))\n )\n}\n\nexport const isDimensionSelector = (selector: Selector): selector is DimensionSelector => {\n return (\n typeof selector === 'object' &&\n selector !== null &&\n 'field' in selector &&\n ('operator' in selector || 'op' in selector) &&\n 'value' in selector &&\n (['in', 'not in'].includes(selector.operator as string) || ['in', 'not in'].includes(selector.op as string))\n )\n}\n"],"names":["selector","vchartDatum","selectorMode","vchartKeys","Object","k","datum","omit","selectors","Array","isValueSelector","v","isMeasureSelector","op","selectorValueArr","String","isDimensionSelector","isPartialDatumSelector","key"],"mappings":";AAWO,MAAMA,oBAAW,CACtBC,aACAD,UACAE,eAA6B,KAAK;IAGlC,IAAI,CAACF,UACH,OAAO;IAIT,MAAMG,aAAaC,OAAO,IAAI,CAACH,aAAa,MAAM,CAAC,CAACI,IAAMA,EAAE,iBAAiB,GAAG,UAAU,CAAC;IAC3F,MAAMC,QAAQC,KAAKN,aAAaE;IAGhC,MAAMK,YAAaC,MAAM,OAAO,CAACT,YAAYA,WAAW;QAACA;KAAS;IAElE,OAAOQ,SAAS,CAACN,AAAiB,UAAjBA,eAAyB,UAAU,OAAO,CAAC,CAACF;QAE3D,IAAIU,gBAAgBV,WAClB;YAAA,IAAII,OAAO,MAAM,CAACE,OAAO,IAAI,CAAC,CAACK,IAAMA,MAAMX,WACzC,OAAO;QACT,OAIG,IAAIY,kBAAkBZ,WAAW;YACpC,MAAMa,KAAKb,SAAS,QAAQ,IAAIA,SAAS,EAAE;YAC3C,MAAMc,mBAAmBL,MAAM,OAAO,CAACT,SAAS,KAAK,IAAIA,SAAS,KAAK,GAAG;gBAACA,SAAS,KAAK;aAAC;YAE1F,OAAQa;gBACN,KAAK;oBACH,IAAIE,OAAOT,KAAK,CAACN,SAAS,KAAK,CAAC,MAAMe,OAAOD,gBAAgB,CAAC,EAAE,GAC9D,OAAO;oBAET;gBACF,KAAK;oBACH,IAAIR,KAAK,CAACN,SAAS,KAAK,CAAC,KAAKc,gBAAgB,CAAC,EAAE,EAC/C,OAAO;oBAET;gBACF,KAAK;oBACH,IAAIR,KAAK,CAACN,SAAS,KAAK,CAAC,KAAKc,gBAAgB,CAAC,EAAE,EAC/C,OAAO;oBAET;gBACF,KAAK;oBACH,IAAIR,KAAK,CAACN,SAAS,KAAK,CAAC,GAAGc,gBAAgB,CAAC,EAAE,EAC7C,OAAO;oBAET;gBACF,KAAK;oBACH,IAAIR,KAAK,CAACN,SAAS,KAAK,CAAC,GAAGc,gBAAgB,CAAC,EAAE,EAC7C,OAAO;oBAET;gBACF,KAAK;oBACH,IAAIR,KAAK,CAACN,SAAS,KAAK,CAAC,IAAIc,gBAAgB,CAAC,EAAE,EAC9C,OAAO;oBAET;gBACF,KAAK;oBACH,IAAIR,KAAK,CAACN,SAAS,KAAK,CAAC,IAAIc,gBAAgB,CAAC,EAAE,EAC9C,OAAO;oBAET;gBACF,KAAK;oBACH,IACEL,MAAM,OAAO,CAACT,SAAS,KAAK,KAC5BM,KAAK,CAACN,SAAS,KAAK,CAAC,IAAIc,gBAAgB,CAAC,EAAE,IAC5CR,KAAK,CAACN,SAAS,KAAK,CAAC,IAAIc,gBAAgB,CAAC,EAAE,EAE5C,OAAO;oBAET;YACJ;QACF,OAEK,IAAIE,oBAAoBhB,WAAW;YACtC,MAAMa,KAAKb,SAAS,QAAQ,IAAIA,SAAS,EAAE;YAC3C,MAAMc,mBAAmBL,MAAM,OAAO,CAACT,SAAS,KAAK,IAAIA,SAAS,KAAK,GAAG;gBAACA,SAAS,KAAK;aAAC;YAC1F,OAAQa;gBACN,KAAK;oBACH,IAAIC,iBAAiB,QAAQ,CAACR,KAAK,CAACN,SAAS,KAAK,CAAC,GACjD,OAAO;oBAET;gBACF,KAAK;oBACH,IAAI,CAACc,iBAAiB,QAAQ,CAACR,KAAK,CAACN,SAAS,KAAK,CAAC,GAClD,OAAO;oBAET;YACJ;QACF,OAEK,IAAIiB,uBAAuBjB,WAC9B;YAAA,IAAII,OAAO,IAAI,CAACJ,UAAU,KAAK,CAAC,CAACkB,MAAQZ,KAAK,CAACY,IAAI,KAAKlB,QAAQ,CAACkB,IAAI,GACnE,OAAO;QACT;QAGF,OAAO;IACT;AACF;AAEO,MAAMR,kBAAkB,CAACV,WACvB,AAAoB,YAApB,OAAOA,YAAyB,AAAoB,YAApB,OAAOA;AAGzC,MAAMiB,yBAAyB,CAACjB,WAC9B,AAAoB,YAApB,OAAOA,YAAyBA,AAAa,SAAbA;AAGlC,MAAMY,oBAAoB,CAACZ,WAE9B,AAAoB,YAApB,OAAOA,YACPA,AAAa,SAAbA,YACA,WAAWA,YACV,eAAcA,YAAY,QAAQA,QAAO,KAC1C,WAAWA,YACV;QAAC;QAAK;QAAM;QAAM;QAAK;QAAK;QAAM;QAAM;KAAU,CAAC,QAAQ,CAACA,SAAS,QAAQ,KAC5E;QAAC;QAAK;QAAM;QAAM;QAAK;QAAK;QAAM;QAAM;KAAU,CAAC,QAAQ,CAACA,SAAS,EAAE;AAItE,MAAMgB,sBAAsB,CAAChB,WAEhC,AAAoB,YAApB,OAAOA,YACPA,AAAa,SAAbA,YACA,WAAWA,YACV,eAAcA,YAAY,QAAQA,QAAO,KAC1C,WAAWA,YACV;QAAC;QAAM;KAAS,CAAC,QAAQ,CAACA,SAAS,QAAQ,KAAe;QAAC;QAAM;KAAS,CAAC,QAAQ,CAACA,SAAS,EAAE"}
|
|
1
|
+
{"version":3,"file":"dataSelector/selector.js","sources":["webpack://@visactor/vseed/./src/dataSelector/selector.ts"],"sourcesContent":["import type { Datum } from 'src/types'\nimport type {\n DimensionSelector,\n MeasureSelector,\n PartialDatumSelector,\n Selector,\n Selectors,\n ValueSelector,\n} from '../types/dataSelector'\nimport { omit } from 'remeda'\n\n/**\n * 判断两个数字是否“近似相等”\n */\nfunction nearlyEqual(a: number, b: number, epsilon = 1e-8) {\n // NaN 直接不相等\n if (Number.isNaN(a) || Number.isNaN(b)) return false\n // 引用同一个数 或 完全相等\n if (a === b) return true\n const diff = Math.abs(a - b)\n return diff <= epsilon\n}\n\nexport const selector = (\n vchartDatum: Datum,\n selector: Selector | Selectors | undefined | null,\n selectorMode: 'And' | 'Or' = 'And',\n) => {\n // 无有效选择器, 则认为全部匹配成功\n if (!selector) {\n return true\n }\n\n // 过滤掉 vchart 相关字段\n const vchartKeys = Object.keys(vchartDatum).filter((k) => k.toLocaleLowerCase().startsWith('__vchart'))\n const datum = omit(vchartDatum, vchartKeys) as Datum\n\n // 统一处理选择器为数组\n const selectors = (Array.isArray(selector) ? selector : [selector]) as Selectors\n\n return selectors[selectorMode === 'And' ? 'every' : 'some']((selector) => {\n // 1. 字符串或数字\n if (isValueSelector(selector)) {\n return selectByValue(selector, datum)\n }\n\n // 2. 指标选择器\n else if (isMeasureSelector(selector)) {\n return selectByMeasure(selector, datum)\n }\n // 3. 维度选择器\n else if (isDimensionSelector(selector)) {\n return selectByDmension(selector, datum)\n }\n // 4. 部分数据对象选择器\n else if (isPartialDatumSelector(selector)) {\n return selectByPartial(selector, datum)\n }\n\n return false\n })\n}\n\nexport const selectorDatum = (datum: Datum, selector: Selector | Selectors | undefined | null): Datum[] => {\n // 无有效选择器, 则认为全部匹配成功\n if (!selector) {\n return []\n }\n\n // 统一处理选择器为数组\n const selectors = (Array.isArray(selector) ? selector : [selector]) as Selectors\n let finalResult: Datum[] = []\n\n for (const selector of selectors) {\n const results: Datum[] = []\n // 1. 字符串或数字\n if (isValueSelector(selector)) {\n Object.entries(datum).forEach(([key, value]) => {\n if (value === selector) {\n results.push({ [key]: value } as Datum)\n }\n })\n } else if (isMeasureSelector(selector) && selectByMeasure(selector, datum)) {\n results.push({ [selector.field]: datum[selector.field] } as Datum)\n } else if (isDimensionSelector(selector) && selectByDmension(selector, datum)) {\n results.push({ [selector.field]: datum[selector.field] } as Datum)\n } else if (isPartialDatumSelector(selector) && selectByPartial(selector, datum)) {\n results.push(selector)\n }\n\n if (results.length) {\n if (finalResult.length) {\n finalResult = finalResult.flatMap((prev) => {\n return results.map((r) => {\n return {\n ...prev,\n ...r,\n }\n })\n })\n } else {\n finalResult = results\n }\n } else {\n finalResult = []\n break\n }\n }\n\n return finalResult\n}\n\nexport const isValueSelector = (selector: Selector): selector is ValueSelector => {\n return typeof selector === 'string' || typeof selector === 'number'\n}\n\nexport const isPartialDatumSelector = (selector: Selector): selector is PartialDatumSelector => {\n return typeof selector === 'object' && selector !== null\n}\n\nexport const isMeasureSelector = (selector: Selector): selector is MeasureSelector => {\n return (\n typeof selector === 'object' &&\n selector !== null &&\n 'field' in selector &&\n ('operator' in selector || 'op' in selector) &&\n 'value' in selector &&\n (['=', '==', '!=', '>', '<', '>=', '<=', 'between'].includes(selector.operator as string) ||\n ['=', '==', '!=', '>', '<', '>=', '<=', 'between'].includes(selector.op as string))\n )\n}\n\nexport const isDimensionSelector = (selector: Selector): selector is DimensionSelector => {\n return (\n typeof selector === 'object' &&\n selector !== null &&\n 'field' in selector &&\n ('operator' in selector || 'op' in selector) &&\n 'value' in selector &&\n (['in', 'not in'].includes(selector.operator as string) || ['in', 'not in'].includes(selector.op as string))\n )\n}\n\nexport const selectByMeasure = (selector: MeasureSelector, datum: Datum) => {\n const op = selector.operator || selector.op\n const selectorValueArr = Array.isArray(selector.value) ? selector.value : [selector.value]\n\n switch (op) {\n case '=':\n if (\n String(datum[selector.field]) === String(selectorValueArr[0]) ||\n nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))\n ) {\n return true\n }\n break\n case '==':\n if (datum[selector.field] === selectorValueArr[0]) {\n return true\n }\n break\n case '!=':\n if (datum[selector.field] !== selectorValueArr[0]) {\n return true\n }\n break\n case '>':\n if (\n datum[selector.field] > selectorValueArr[0] &&\n !nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))\n ) {\n return true\n }\n break\n case '<':\n if (\n datum[selector.field] < selectorValueArr[0] &&\n !nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))\n ) {\n return true\n }\n break\n case '>=':\n if (\n datum[selector.field] >= selectorValueArr[0] ||\n nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))\n ) {\n return true\n }\n break\n case '<=':\n if (\n datum[selector.field] <= selectorValueArr[0] ||\n nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))\n ) {\n return true\n }\n break\n case 'between':\n if (\n Array.isArray(selector.value) &&\n (datum[selector.field] >= selectorValueArr[0] ||\n nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[0]))) &&\n (datum[selector.field] <= selectorValueArr[1] ||\n nearlyEqual(Number(datum[selector.field]), Number(selectorValueArr[1])))\n ) {\n return true\n }\n break\n }\n return false\n}\n\nexport const selectByDmension = (selector: DimensionSelector, datum: Datum) => {\n const op = selector.operator || selector.op\n const selectorValueArr = Array.isArray(selector.value) ? selector.value : [selector.value]\n switch (op) {\n case 'in':\n if (selectorValueArr.includes(datum[selector.field] as string | number)) {\n return true\n }\n break\n case 'not in':\n if (!selectorValueArr.includes(datum[selector.field] as string | number)) {\n return true\n }\n break\n }\n\n return false\n}\n\nexport const selectByPartial = (selector: PartialDatumSelector, datum: Datum) => {\n return Object.keys(selector).every((key) => datum[key] === selector[key])\n}\n\nexport const selectByValue = (selector: ValueSelector, datum: Datum) => {\n return Object.values(datum).some((v) => v === selector)\n}\n"],"names":["nearlyEqual","a","b","epsilon","Number","diff","Math","selector","vchartDatum","selectorMode","vchartKeys","Object","k","datum","omit","selectors","Array","isValueSelector","selectByValue","isMeasureSelector","selectByMeasure","isDimensionSelector","selectByDmension","isPartialDatumSelector","selectByPartial","selectorDatum","finalResult","results","key","value","prev","r","op","selectorValueArr","String","v"],"mappings":"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"}
|
|
@@ -5,11 +5,11 @@ const donutAdvancedPipeline = [
|
|
|
5
5
|
defaultDimensions,
|
|
6
6
|
defaultMeasureId,
|
|
7
7
|
encodingAdapter([
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
buildMeasures,
|
|
9
|
+
defaultEncodingForPie
|
|
10
10
|
], [
|
|
11
|
-
encodingForPie,
|
|
12
11
|
buildMeasures,
|
|
12
|
+
encodingForPie,
|
|
13
13
|
pickMeasuresForReshape([
|
|
14
14
|
'tooltip',
|
|
15
15
|
'label',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/chart/pipeline/donut.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/donut.ts"],"sourcesContent":["import type { AdvancedPipeline } from 'src/types'\nimport {\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n annotation,\n donutConfig,\n encodingForPie,\n reshapeWithEncoding,\n pivotReshapeWithEncoding,\n buildMeasures,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n encodingAdapter,\n defaultEncodingForPie,\n pickMeasuresForReshape,\n pickDimensionsForReshape,\n} from '../pipes'\n\nexport const donutAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n\n encodingAdapter(\n [
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipeline/donut.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/donut.ts"],"sourcesContent":["import type { AdvancedPipeline } from 'src/types'\nimport {\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n annotation,\n donutConfig,\n encodingForPie,\n reshapeWithEncoding,\n pivotReshapeWithEncoding,\n buildMeasures,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n encodingAdapter,\n defaultEncodingForPie,\n pickMeasuresForReshape,\n pickDimensionsForReshape,\n} from '../pipes'\n\nexport const donutAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n\n encodingAdapter(\n [buildMeasures, defaultEncodingForPie],\n [buildMeasures, encodingForPie, pickMeasuresForReshape(['tooltip', 'label', 'color']), pickDimensionsForReshape],\n ),\n pivotAdapter([reshapeWithEncoding], [pivotReshapeWithEncoding]),\n\n donutConfig,\n theme,\n annotation,\n]\n"],"names":["donutAdvancedPipeline","initAdvancedVSeed","defaultMeasures","defaultDimensions","defaultMeasureId","encodingAdapter","buildMeasures","defaultEncodingForPie","encodingForPie","pickMeasuresForReshape","pickDimensionsForReshape","pivotAdapter","reshapeWithEncoding","pivotReshapeWithEncoding","donutConfig","theme","annotation"],"mappings":";AAoBO,MAAMA,wBAA0C;IACrDC;IACAC;IACAC;IACAC;IAEAC,gBACE;QAACC;QAAeC;KAAsB,EACtC;QAACD;QAAeE;QAAgBC,uBAAuB;YAAC;YAAW;YAAS;SAAQ;QAAGC;KAAyB;IAElHC,aAAa;QAACC;KAAoB,EAAE;QAACC;KAAyB;IAE9DC;IACAC;IACAC;CACD"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { annotation, buildMeasures, defaultDimensions, defaultEncodingForHistogram,
|
|
1
|
+
import { annotation, buildMeasures, defaultDimensions, defaultEncodingForHistogram, defaultMeasures, encodingAdapter, encodingForHistogram, histogramConfig, initAdvancedVSeed, markStyle, pickDimensionsForReshape, pickMeasuresForReshape, pivotAdapter, pivotReshapeWithHistogramEncoding, regressionLine, reshapeWithHistogramEncoding, sortLegend, theme } from "../pipes/index.js";
|
|
2
2
|
import { histogramXAxisConfig } from "../pipes/config/histogram.js";
|
|
3
3
|
const histogramAdvancedPipeline = [
|
|
4
4
|
initAdvancedVSeed,
|
|
5
5
|
defaultMeasures,
|
|
6
6
|
defaultDimensions,
|
|
7
|
-
defaultMeasureId,
|
|
8
7
|
histogramConfig,
|
|
9
8
|
encodingAdapter([
|
|
10
9
|
defaultEncodingForHistogram,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/chart/pipeline/histogram.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/histogram.ts"],"sourcesContent":["import type { AdvancedPipeline } from 'src/types'\nimport {\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n histogramConfig,\n markStyle,\n annotation,\n sortLegend,\n pivotReshapeWithHistogramEncoding,\n buildMeasures,\n defaultMeasures,\n defaultDimensions,\n
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipeline/histogram.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/histogram.ts"],"sourcesContent":["import type { AdvancedPipeline } from 'src/types'\nimport {\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n histogramConfig,\n markStyle,\n annotation,\n sortLegend,\n pivotReshapeWithHistogramEncoding,\n buildMeasures,\n defaultMeasures,\n defaultDimensions,\n encodingAdapter,\n pickMeasuresForReshape,\n pickDimensionsForReshape,\n defaultEncodingForHistogram,\n encodingForHistogram,\n reshapeWithHistogramEncoding,\n regressionLine,\n} from '../pipes'\nimport { histogramXAxisConfig } from '../pipes/config/histogram'\n\nexport const histogramAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n defaultMeasures,\n defaultDimensions,\n histogramConfig,\n\n encodingAdapter(\n [defaultEncodingForHistogram, buildMeasures],\n [\n encodingForHistogram,\n buildMeasures,\n pickMeasuresForReshape(['tooltip', 'label', 'color']),\n pickDimensionsForReshape,\n ],\n ),\n pivotAdapter([reshapeWithHistogramEncoding], [pivotReshapeWithHistogramEncoding]),\n\n histogramXAxisConfig,\n sortLegend,\n theme,\n markStyle,\n annotation,\n regressionLine,\n]\n"],"names":["histogramAdvancedPipeline","initAdvancedVSeed","defaultMeasures","defaultDimensions","histogramConfig","encodingAdapter","defaultEncodingForHistogram","buildMeasures","encodingForHistogram","pickMeasuresForReshape","pickDimensionsForReshape","pivotAdapter","reshapeWithHistogramEncoding","pivotReshapeWithHistogramEncoding","histogramXAxisConfig","sortLegend","theme","markStyle","annotation","regressionLine"],"mappings":";;AAuBO,MAAMA,4BAA8C;IACzDC;IACAC;IACAC;IACAC;IAEAC,gBACE;QAACC;QAA6BC;KAAc,EAC5C;QACEC;QACAD;QACAE,uBAAuB;YAAC;YAAW;YAAS;SAAQ;QACpDC;KACD;IAEHC,aAAa;QAACC;KAA6B,EAAE;QAACC;KAAkC;IAEhFC;IACAC;IACAC;IACAC;IACAC;IACAC;CACD"}
|
|
@@ -5,11 +5,11 @@ const pieAdvancedPipeline = [
|
|
|
5
5
|
defaultDimensions,
|
|
6
6
|
defaultMeasureId,
|
|
7
7
|
encodingAdapter([
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
buildMeasures,
|
|
9
|
+
defaultEncodingForPie
|
|
10
10
|
], [
|
|
11
|
-
encodingForPie,
|
|
12
11
|
buildMeasures,
|
|
12
|
+
encodingForPie,
|
|
13
13
|
pickMeasuresForReshape([
|
|
14
14
|
'tooltip',
|
|
15
15
|
'label',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/chart/pipeline/pie.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/pie.ts"],"sourcesContent":["import type { AdvancedPipeline } from 'src/types'\nimport {\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n pieConfig,\n annotation,\n reshapeWithEncoding,\n pivotReshapeWithEncoding,\n encodingForPie,\n buildMeasures,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n encodingAdapter,\n defaultEncodingForPie,\n pickMeasuresForReshape,\n pickDimensionsForReshape,\n} from '../pipes'\n\nexport const pieAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n\n encodingAdapter(\n [
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipeline/pie.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/pie.ts"],"sourcesContent":["import type { AdvancedPipeline } from 'src/types'\nimport {\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n pieConfig,\n annotation,\n reshapeWithEncoding,\n pivotReshapeWithEncoding,\n encodingForPie,\n buildMeasures,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n encodingAdapter,\n defaultEncodingForPie,\n pickMeasuresForReshape,\n pickDimensionsForReshape,\n} from '../pipes'\n\nexport const pieAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n defaultMeasures,\n defaultDimensions,\n defaultMeasureId,\n\n encodingAdapter(\n [buildMeasures, defaultEncodingForPie],\n [buildMeasures, encodingForPie, pickMeasuresForReshape(['tooltip', 'label', 'color']), pickDimensionsForReshape],\n ),\n pivotAdapter([reshapeWithEncoding], [pivotReshapeWithEncoding]),\n\n pieConfig,\n theme,\n annotation,\n]\n"],"names":["pieAdvancedPipeline","initAdvancedVSeed","defaultMeasures","defaultDimensions","defaultMeasureId","encodingAdapter","buildMeasures","defaultEncodingForPie","encodingForPie","pickMeasuresForReshape","pickDimensionsForReshape","pivotAdapter","reshapeWithEncoding","pivotReshapeWithEncoding","pieConfig","theme","annotation"],"mappings":";AAoBO,MAAMA,sBAAwC;IACnDC;IACAC;IACAC;IACAC;IAEAC,gBACE;QAACC;QAAeC;KAAsB,EACtC;QAACD;QAAeE;QAAgBC,uBAAuB;YAAC;YAAW;YAAS;SAAQ;QAAGC;KAAyB;IAElHC,aAAa;QAACC;KAAoB,EAAE;QAACC;KAAyB;IAE9DC;IACAC;IACAC;CACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/chart/pipes/config/boxplot.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/boxplot.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const boxplotConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const pickedConfig = pick(vseed, [\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n 'xAxis',\n 'yAxis',\n 'crosshairRect',\n 'whiskers',\n ]) as Config['boxPlot']\n\n const config = replaceNullToUndefined(pickedConfig)\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n"],"names":["boxplotConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,gBAA8B,CAACC,eAAeC;IACzD,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IAEA,MAAMK,eAAeC,KAAKJ,OAAO;QAC/B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/config/boxplot.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/boxplot.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const boxplotConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const pickedConfig = pick(vseed, [\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n 'xAxis',\n 'yAxis',\n 'crosshairRect',\n 'whiskers',\n\n 'dimensionLinkage',\n ]) as Config['boxPlot']\n\n const config = replaceNullToUndefined(pickedConfig)\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n"],"names":["boxplotConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,gBAA8B,CAACC,eAAeC;IACzD,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IAEA,MAAMK,eAAeC,KAAKJ,OAAO;QAC/B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QAEA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/chart/pipes/config/column.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/column.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const columnConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const pickedConfig = pick(vseed, [\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n 'xAxis',\n 'yAxis',\n 'crosshairRect',\n 'stackCornerRadius',\n 'barMaxWidth',\n 'barGapInGroup',\n ]) as Config['column']\n\n const config = replaceNullToUndefined(pickedConfig)\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n"],"names":["columnConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,eAA6B,CAACC,eAAeC;IACxD,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IAEA,MAAMK,eAAeC,KAAKJ,OAAO;QAC/B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/config/column.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/column.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const columnConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const pickedConfig = pick(vseed, [\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n 'xAxis',\n 'yAxis',\n 'crosshairRect',\n 'stackCornerRadius',\n 'barMaxWidth',\n 'barGapInGroup',\n\n 'dimensionLinkage',\n ]) as Config['column']\n\n const config = replaceNullToUndefined(pickedConfig)\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n"],"names":["columnConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,eAA6B,CAACC,eAAeC;IACxD,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IAEA,MAAMK,eAAeC,KAAKJ,OAAO;QAC/B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QAEA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
|
|
@@ -21,7 +21,8 @@ const dualAxisConfig = (advancedVSeed, context)=>{
|
|
|
21
21
|
'crosshairRect',
|
|
22
22
|
'barGapInGroup',
|
|
23
23
|
'barMaxWidth',
|
|
24
|
-
'stackCornerRadius'
|
|
24
|
+
'stackCornerRadius',
|
|
25
|
+
'dimensionLinkage'
|
|
25
26
|
]);
|
|
26
27
|
const config = replaceNullToUndefined(pickedConfig);
|
|
27
28
|
result.config = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/chart/pipes/config/dualAxis.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/dualAxis.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const dualAxisConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const pickedConfig = pick(vseed, [\n // common\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n 'xAxis',\n\n // only for dualAxis\n 'dualChartType',\n 'alignTicks',\n 'primaryYAxis',\n 'secondaryYAxis',\n 'crosshairLine',\n 'crosshairRect',\n\n 'barGapInGroup',\n 'barMaxWidth',\n 'stackCornerRadius',\n ]) as Config['dualAxis']\n\n const config = replaceNullToUndefined(pickedConfig)\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n"],"names":["dualAxisConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,iBAA+B,CAACC,eAAeC;IAC1D,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IAEA,MAAMK,eAAeC,KAAKJ,OAAO;QAE/B;QACA;QACA;QACA;QACA;QACA;QAGA;QACA;QACA;QACA;QACA;QACA;QAEA;QACA;QACA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/config/dualAxis.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/dualAxis.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const dualAxisConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const pickedConfig = pick(vseed, [\n // common\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n 'xAxis',\n\n // only for dualAxis\n 'dualChartType',\n 'alignTicks',\n 'primaryYAxis',\n 'secondaryYAxis',\n 'crosshairLine',\n 'crosshairRect',\n\n 'barGapInGroup',\n 'barMaxWidth',\n 'stackCornerRadius',\n\n 'dimensionLinkage',\n ]) as Config['dualAxis']\n\n const config = replaceNullToUndefined(pickedConfig)\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n"],"names":["dualAxisConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,iBAA+B,CAACC,eAAeC;IAC1D,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IAEA,MAAMK,eAAeC,KAAKJ,OAAO;QAE/B;QACA;QACA;QACA;QACA;QACA;QAGA;QACA;QACA;QACA;QACA;QACA;QAEA;QACA;QACA;QAEA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
|
|
@@ -19,7 +19,8 @@ const histogramConfig = (advancedVSeed, context)=>{
|
|
|
19
19
|
'crosshairRect',
|
|
20
20
|
'binCount',
|
|
21
21
|
'binStep',
|
|
22
|
-
'binValueType'
|
|
22
|
+
'binValueType',
|
|
23
|
+
'dimensionLinkage'
|
|
23
24
|
]);
|
|
24
25
|
let config = replaceNullToUndefined(pickedConfig);
|
|
25
26
|
if (!hasColorEncoding && !config?.legend?.enable) config = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/chart/pipes/config/histogram.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/histogram.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { pick } from 'remeda'\nimport { BinEndMeasureId, BinStartMeasureId } from 'src/dataReshape'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config, Dimension } from 'src/types'\n\nexport const histogramConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n const hasColorEncoding = (advancedVSeed?.dimensions || []).find((field: Dimension) => field?.encoding === 'color')\n\n const pickedConfig = pick(vseed, [\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n 'xAxis',\n 'yAxis',\n 'crosshairRect',\n 'binCount',\n 'binStep',\n 'binValueType',\n ]) as Config['histogram']\n\n let config = replaceNullToUndefined(pickedConfig)\n\n if (!hasColorEncoding && !config?.legend?.enable) {\n config = {\n ...config,\n legend: {\n ...config?.legend,\n enable: false,\n },\n }\n }\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n\nexport const histogramXAxisConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n const { dataset = [] } = advancedVSeed\n const flattenDatasert = dataset.flat()\n const minValue = Math.min(...flattenDatasert.map((v) => +v[BinStartMeasureId]))\n const maxValue = Math.max(...flattenDatasert.map((v) => +v[BinEndMeasureId]))\n\n const chartConfig = result.config?.[chartType] as any\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...chartConfig,\n xAxis: {\n min: Number.isNaN(minValue) ? undefined : minValue,\n max: Number.isNaN(maxValue) ? undefined : maxValue,\n ...(chartConfig?.xAxis || {}),\n },\n },\n }\n\n return result as AdvancedVSeed\n}\n"],"names":["histogramConfig","advancedVSeed","context","vseed","chartType","result","hasColorEncoding","field","pickedConfig","pick","config","replaceNullToUndefined","histogramXAxisConfig","dataset","flattenDatasert","minValue","Math","v","BinStartMeasureId","maxValue","BinEndMeasureId","chartConfig","Number","undefined"],"mappings":";;;AAMO,MAAMA,kBAAgC,CAACC,eAAeC;IAC3D,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IACA,MAAMK,mBAAoBL,AAAAA,CAAAA,eAAe,cAAc,EAAC,EAAG,IAAI,CAAC,CAACM,QAAqBA,OAAO,aAAa;IAE1G,MAAMC,eAAeC,KAAKN,OAAO;QAC/B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD;IAED,IAAIO,SAASC,uBAAuBH;IAEpC,IAAI,CAACF,oBAAoB,CAACI,QAAQ,QAAQ,QACxCA,SAAS;QACP,GAAGA,MAAM;QACT,QAAQ;YACN,GAAGA,QAAQ,MAAM;YACjB,QAAQ;QACV;IACF;IAEFL,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGM,MAAM;QACX;IACF;IAEA,OAAOL;AACT;AAEO,MAAMO,uBAAqC,CAACX,eAAeC;IAChE,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IACA,MAAM,EAAEY,UAAU,EAAE,EAAE,GAAGZ;IACzB,MAAMa,kBAAkBD,QAAQ,IAAI;IACpC,MAAME,WAAWC,KAAK,GAAG,IAAIF,gBAAgB,GAAG,CAAC,CAACG,IAAM,CAACA,CAAC,CAACC,kBAAkB;IAC7E,MAAMC,WAAWH,KAAK,GAAG,IAAIF,gBAAgB,GAAG,CAAC,CAACG,IAAM,CAACA,CAAC,CAACG,gBAAgB;IAE3E,MAAMC,cAAchB,OAAO,MAAM,EAAE,CAACD,UAAU;IAC9CC,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGiB,WAAW;YACd,OAAO;gBACL,KAAKC,OAAO,KAAK,CAACP,YAAYQ,SAAYR;gBAC1C,KAAKO,OAAO,KAAK,CAACH,YAAYI,SAAYJ;gBAC1C,GAAIE,aAAa,SAAS,CAAC,CAAC;YAC9B;QACF;IACF;IAEA,OAAOhB;AACT"}
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/config/histogram.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/histogram.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport { pick } from 'remeda'\nimport { BinEndMeasureId, BinStartMeasureId } from 'src/dataReshape'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config, Dimension } from 'src/types'\n\nexport const histogramConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n const hasColorEncoding = (advancedVSeed?.dimensions || []).find((field: Dimension) => field?.encoding === 'color')\n\n const pickedConfig = pick(vseed, [\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n 'xAxis',\n 'yAxis',\n 'crosshairRect',\n 'binCount',\n 'binStep',\n 'binValueType',\n\n 'dimensionLinkage',\n ]) as Config['histogram']\n\n let config = replaceNullToUndefined(pickedConfig)\n\n if (!hasColorEncoding && !config?.legend?.enable) {\n config = {\n ...config,\n legend: {\n ...config?.legend,\n enable: false,\n },\n }\n }\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n\nexport const histogramXAxisConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n const { dataset = [] } = advancedVSeed\n const flattenDatasert = dataset.flat()\n const minValue = Math.min(...flattenDatasert.map((v) => +v[BinStartMeasureId]))\n const maxValue = Math.max(...flattenDatasert.map((v) => +v[BinEndMeasureId]))\n\n const chartConfig = result.config?.[chartType] as any\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...chartConfig,\n xAxis: {\n min: Number.isNaN(minValue) ? undefined : minValue,\n max: Number.isNaN(maxValue) ? undefined : maxValue,\n ...(chartConfig?.xAxis || {}),\n },\n },\n }\n\n return result as AdvancedVSeed\n}\n"],"names":["histogramConfig","advancedVSeed","context","vseed","chartType","result","hasColorEncoding","field","pickedConfig","pick","config","replaceNullToUndefined","histogramXAxisConfig","dataset","flattenDatasert","minValue","Math","v","BinStartMeasureId","maxValue","BinEndMeasureId","chartConfig","Number","undefined"],"mappings":";;;AAMO,MAAMA,kBAAgC,CAACC,eAAeC;IAC3D,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IACA,MAAMK,mBAAoBL,AAAAA,CAAAA,eAAe,cAAc,EAAC,EAAG,IAAI,CAAC,CAACM,QAAqBA,OAAO,aAAa;IAE1G,MAAMC,eAAeC,KAAKN,OAAO;QAC/B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QAEA;KACD;IAED,IAAIO,SAASC,uBAAuBH;IAEpC,IAAI,CAACF,oBAAoB,CAACI,QAAQ,QAAQ,QACxCA,SAAS;QACP,GAAGA,MAAM;QACT,QAAQ;YACN,GAAGA,QAAQ,MAAM;YACjB,QAAQ;QACV;IACF;IAEFL,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGM,MAAM;QACX;IACF;IAEA,OAAOL;AACT;AAEO,MAAMO,uBAAqC,CAACX,eAAeC;IAChE,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IACA,MAAM,EAAEY,UAAU,EAAE,EAAE,GAAGZ;IACzB,MAAMa,kBAAkBD,QAAQ,IAAI;IACpC,MAAME,WAAWC,KAAK,GAAG,IAAIF,gBAAgB,GAAG,CAAC,CAACG,IAAM,CAACA,CAAC,CAACC,kBAAkB;IAC7E,MAAMC,WAAWH,KAAK,GAAG,IAAIF,gBAAgB,GAAG,CAAC,CAACG,IAAM,CAACA,CAAC,CAACG,gBAAgB;IAE3E,MAAMC,cAAchB,OAAO,MAAM,EAAE,CAACD,UAAU;IAC9CC,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGiB,WAAW;YACd,OAAO;gBACL,KAAKC,OAAO,KAAK,CAACP,YAAYQ,SAAYR;gBAC1C,KAAKO,OAAO,KAAK,CAACH,YAAYI,SAAYJ;gBAC1C,GAAIE,aAAa,SAAS,CAAC,CAAC;YAC9B;QACF;IACF;IAEA,OAAOhB;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/chart/pipes/config/line.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/line.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const lineConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const pickedConfig = pick(vseed, [\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n 'xAxis',\n 'yAxis',\n 'crosshairLine',\n ]) as Config['line']\n\n const config = replaceNullToUndefined(pickedConfig)\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n"],"names":["lineConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,aAA2B,CAACC,eAAeC;IACtD,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IAEA,MAAMK,eAAeC,KAAKJ,OAAO;QAC/B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/config/line.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/line.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const lineConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const pickedConfig = pick(vseed, [\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n 'xAxis',\n 'yAxis',\n 'crosshairLine',\n 'dimensionLinkage',\n ]) as Config['line']\n\n const config = replaceNullToUndefined(pickedConfig)\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n"],"names":["lineConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,aAA2B,CAACC,eAAeC;IACtD,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IAEA,MAAMK,eAAeC,KAAKJ,OAAO;QAC/B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/chart/pipes/config/scatter.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/scatter.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const scatterConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const pickedConfig = pick(vseed, [\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n 'xAxis',\n 'yAxis',\n 'sizeRange',\n 'size',\n 'crosshairLine',\n ]) as Config['line']\n\n const config = replaceNullToUndefined(pickedConfig)\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n"],"names":["scatterConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,gBAA8B,CAACC,eAAeC;IACzD,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IAEA,MAAMK,eAAeC,KAAKJ,OAAO;QAC/B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/config/scatter.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/scatter.ts"],"sourcesContent":["import { pick } from 'remeda'\nimport { replaceNullToUndefined } from 'src/pipeline/utils'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const scatterConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const pickedConfig = pick(vseed, [\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n 'xAxis',\n 'yAxis',\n 'sizeRange',\n 'size',\n 'crosshairLine',\n\n 'dimensionLinkage',\n ]) as Config['line']\n\n const config = replaceNullToUndefined(pickedConfig)\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n"],"names":["scatterConfig","advancedVSeed","context","vseed","chartType","result","pickedConfig","pick","config","replaceNullToUndefined"],"mappings":";;AAIO,MAAMA,gBAA8B,CAACC,eAAeC;IACzD,MAAM,EAAEC,KAAK,EAAE,GAAGD;IAClB,MAAM,EAAEE,SAAS,EAAE,GAAGD;IACtB,MAAME,SAAS;QACb,GAAGJ,aAAa;IAClB;IAEA,MAAMK,eAAeC,KAAKJ,OAAO;QAC/B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QAEA;KACD;IAED,MAAMK,SAASC,uBAAuBH;IAEtCD,OAAO,MAAM,GAAG;QACd,GAAIA,OAAO,MAAM,IAAI,CAAC,CAAC;QACvB,CAACD,UAAU,EAAE;YACX,GAAGI,MAAM;QACX;IACF;IAEA,OAAOH;AACT"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { unique } from "remeda";
|
|
2
2
|
import { MeasureId } from "../../../../../dataReshape/index.js";
|
|
3
|
-
import { findAllMeasures } from "../../../../utils/index.js";
|
|
3
|
+
import { findAllMeasures, hasMultipleMeasureInSingleView } from "../../../../utils/index.js";
|
|
4
4
|
import { addColorToEncoding } from "./color/index.js";
|
|
5
5
|
const defaultEncodingForPie = (advancedVSeed)=>{
|
|
6
6
|
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
|
7
7
|
const measures = findAllMeasures(vseedMeasures);
|
|
8
8
|
const encoding = {};
|
|
9
|
-
generateDefaultDimensionEncoding(dimensions, encoding);
|
|
9
|
+
generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(vseedMeasures));
|
|
10
10
|
generateDefaultMeasureEncoding(measures, encoding);
|
|
11
11
|
return {
|
|
12
12
|
...advancedVSeed,
|
|
@@ -19,8 +19,9 @@ const encodingForPie = (advancedVSeed)=>{
|
|
|
19
19
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
20
20
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
21
21
|
const encoding = {};
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
const hasMulti = hasMultipleMeasureInSingleView(vseedMeasures);
|
|
23
|
+
if (hasDimensionEncoding) generateDimensionEncoding(dimensions, encoding, hasMulti);
|
|
24
|
+
else generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
|
|
24
25
|
if (hasMeasureEncoding) generateMeasureEncoding(measures, encoding);
|
|
25
26
|
else generateDefaultMeasureEncoding(measures, encoding);
|
|
26
27
|
return {
|
|
@@ -28,9 +29,10 @@ const encodingForPie = (advancedVSeed)=>{
|
|
|
28
29
|
encoding
|
|
29
30
|
};
|
|
30
31
|
};
|
|
31
|
-
const generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
|
32
|
+
const generateDefaultDimensionEncoding = (dimensions, encoding, isMultiMeasure)=>{
|
|
32
33
|
const uniqueDimIds = unique(dimensions.map((d)=>d.id));
|
|
33
|
-
encoding.color = uniqueDimIds.slice(0);
|
|
34
|
+
if (isMultiMeasure) encoding.color = uniqueDimIds.slice(0);
|
|
35
|
+
else encoding.color = uniqueDimIds.filter((d)=>d !== MeasureId);
|
|
34
36
|
encoding.detail = encoding.color;
|
|
35
37
|
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureId);
|
|
36
38
|
encoding.label = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/advanced/chart/pipes/encoding/pie.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/pie.ts"],"sourcesContent":["import { unique } from 'remeda'\nimport { MeasureId } from 'src/dataReshape'\nimport { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Dimension, Dimensions, Encoding, Measure, Measures } from 'src/types'\nimport { addColorToEncoding } from './color'\n\nexport const defaultEncodingForPie: AdvancedPipe = (advancedVSeed) => {\n const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed\n const measures = findAllMeasures(vseedMeasures)\n const encoding: Encoding = {}\n generateDefaultDimensionEncoding(dimensions, encoding)\n generateDefaultMeasureEncoding(measures, encoding)\n return { ...advancedVSeed, encoding }\n}\n\nexport const encodingForPie: AdvancedPipe = (advancedVSeed) => {\n const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed\n const measures = findAllMeasures(vseedMeasures)\n\n const hasDimensionEncoding = dimensions.some((item: Dimension) => item.encoding)\n const hasMeasureEncoding = measures.some((item: Measure) => item.encoding)\n const encoding: Encoding = {}\n\n if (hasDimensionEncoding) {\n generateDimensionEncoding(dimensions, encoding,
|
|
1
|
+
{"version":3,"file":"pipeline/advanced/chart/pipes/encoding/pie.js","sources":["webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/pie.ts"],"sourcesContent":["import { unique } from 'remeda'\nimport { MeasureId } from 'src/dataReshape'\nimport { findAllMeasures, hasMultipleMeasureInSingleView } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Dimension, Dimensions, Encoding, Measure, Measures } from 'src/types'\nimport { addColorToEncoding } from './color'\n\nexport const defaultEncodingForPie: AdvancedPipe = (advancedVSeed) => {\n const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed\n const measures = findAllMeasures(vseedMeasures)\n const encoding: Encoding = {}\n generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(vseedMeasures))\n generateDefaultMeasureEncoding(measures, encoding)\n return { ...advancedVSeed, encoding }\n}\n\nexport const encodingForPie: AdvancedPipe = (advancedVSeed) => {\n const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed\n const measures = findAllMeasures(vseedMeasures)\n\n const hasDimensionEncoding = dimensions.some((item: Dimension) => item.encoding)\n const hasMeasureEncoding = measures.some((item: Measure) => item.encoding)\n const encoding: Encoding = {}\n const hasMulti = hasMultipleMeasureInSingleView(vseedMeasures)\n\n if (hasDimensionEncoding) {\n generateDimensionEncoding(dimensions, encoding, hasMulti)\n } else {\n generateDefaultDimensionEncoding(dimensions, encoding, hasMulti)\n }\n\n if (hasMeasureEncoding) {\n generateMeasureEncoding(measures, encoding)\n } else {\n generateDefaultMeasureEncoding(measures, encoding)\n }\n\n return { ...advancedVSeed, encoding }\n}\n\n/**\n * --------------------维度--------------------\n */\nconst generateDefaultDimensionEncoding = (dimensions: Dimensions, encoding: Encoding, isMultiMeasure: boolean) => {\n const uniqueDimIds = unique(dimensions.map((d) => d.id))\n\n if (isMultiMeasure) {\n encoding.color = uniqueDimIds.slice(0) // 所有维度都用于color映射,包括MeasureId\n } else {\n encoding.color = uniqueDimIds.filter((d: string) => d !== MeasureId) // 除了MeasureId之外的所有维度用于color映射\n }\n\n encoding.detail = encoding.color\n encoding.tooltip = uniqueDimIds.filter((d) => d !== MeasureId) // 展示指标名称之外的所有维度\n encoding.label = [] // 默认不展示标签\n encoding.row = [] // 默认不进行行透视\n encoding.column = [] // 默认不进行列透视\n}\nconst generateDimensionEncoding = (dimensions: Dimensions, encoding: Encoding, isMultiMeasure: boolean) => {\n // color\n addColorToEncoding(dimensions, encoding, isMultiMeasure)\n\n // detail\n encoding.detail = unique(dimensions.filter((item) => item.encoding === 'detail').map((item) => item.id))\n if (encoding.detail.length === 0) {\n encoding.detail = [MeasureId]\n }\n\n // tooltip\n encoding.tooltip = unique(dimensions.map((item) => item.id))\n encoding.tooltip = encoding.tooltip.filter((d) => d !== MeasureId)\n\n // label\n encoding.label = unique(dimensions.filter((item) => item.encoding === 'label').map((item) => item.id))\n encoding.label = encoding.label.filter((d) => d !== MeasureId)\n}\n\n/**\n * --------------------指标--------------------\n */\nconst generateDefaultMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n encoding.angle = unique(measures.filter((item) => item.encoding === 'angle' || !item.encoding).map((item) => item.id))\n}\nconst generateMeasureEncoding = (measures: Measures, encoding: Encoding) => {\n // angle\n encoding.angle = unique(measures.filter((item) => item.encoding === 'angle' || !item.encoding).map((item) => item.id))\n\n // color\n const color = unique(measures.filter((item) => item.encoding === 'color').map((item) => item.id))\n if (color.length > 0) {\n encoding.color = color\n }\n\n // label\n const label = unique(measures.filter((item) => item.encoding === 'label').map((item) => item.id))\n encoding.label = unique([...(encoding.label || []), ...label])\n\n // tooltip\n const tooltip = unique(measures.filter((item) => item.encoding === 'tooltip').map((item) => item.id))\n encoding.tooltip = unique([...(encoding.tooltip || []), ...label, ...tooltip])\n}\n"],"names":["defaultEncodingForPie","advancedVSeed","vseedMeasures","dimensions","measures","findAllMeasures","encoding","generateDefaultDimensionEncoding","hasMultipleMeasureInSingleView","generateDefaultMeasureEncoding","encodingForPie","hasDimensionEncoding","item","hasMeasureEncoding","hasMulti","generateDimensionEncoding","generateMeasureEncoding","isMultiMeasure","uniqueDimIds","unique","d","MeasureId","addColorToEncoding","color","label","tooltip"],"mappings":"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"}
|