@visactor/vseed 0.2.8 → 0.3.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 +1 -1
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/esm/builder/builder/builder.d.ts +164 -128
- package/dist/esm/pipeline/advanced/chart/pipeline/area.js +9 -8
- package/dist/esm/pipeline/advanced/chart/pipeline/area.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/areaPercent.js +9 -8
- package/dist/esm/pipeline/advanced/chart/pipeline/areaPercent.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/bar.js +9 -8
- package/dist/esm/pipeline/advanced/chart/pipeline/bar.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/barParallel.js +9 -8
- package/dist/esm/pipeline/advanced/chart/pipeline/barParallel.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/barPercent.js +9 -8
- package/dist/esm/pipeline/advanced/chart/pipeline/barPercent.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/boxplot.js +19 -8
- package/dist/esm/pipeline/advanced/chart/pipeline/boxplot.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/column.js +9 -8
- package/dist/esm/pipeline/advanced/chart/pipeline/column.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/columnParallel.js +9 -8
- package/dist/esm/pipeline/advanced/chart/pipeline/columnParallel.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/columnPercent.js +9 -8
- package/dist/esm/pipeline/advanced/chart/pipeline/columnPercent.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/donut.js +9 -8
- package/dist/esm/pipeline/advanced/chart/pipeline/donut.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/dualAxis.js +1 -6
- package/dist/esm/pipeline/advanced/chart/pipeline/dualAxis.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/funnel.js +9 -8
- package/dist/esm/pipeline/advanced/chart/pipeline/funnel.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/heatmap.js +9 -7
- package/dist/esm/pipeline/advanced/chart/pipeline/heatmap.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/histogram.js +15 -8
- package/dist/esm/pipeline/advanced/chart/pipeline/histogram.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/line.js +9 -8
- package/dist/esm/pipeline/advanced/chart/pipeline/line.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/pie.js +9 -8
- package/dist/esm/pipeline/advanced/chart/pipeline/pie.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/radar.js +9 -8
- package/dist/esm/pipeline/advanced/chart/pipeline/radar.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/rose.js +9 -8
- package/dist/esm/pipeline/advanced/chart/pipeline/rose.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/roseParallel.js +9 -8
- package/dist/esm/pipeline/advanced/chart/pipeline/roseParallel.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js +1 -6
- package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/dualAxis.js +0 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/dualAxis.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/default/defaultDimensions.js +1 -2
- package/dist/esm/pipeline/advanced/chart/pipes/default/defaultDimensions.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/default/defaultMeasures.js +2 -4
- package/dist/esm/pipeline/advanced/chart/pipes/default/defaultMeasures.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/dimensions/pickDimensionsForReshape.js +4 -4
- package/dist/esm/pipeline/advanced/chart/pipes/dimensions/pickDimensionsForReshape.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/bar.js +5 -7
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/bar.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/boxplot.js +5 -7
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/boxplot.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/column.js +5 -7
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/column.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/dualAxis.js +5 -15
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/dualAxis.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/funnel.js +5 -7
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/funnel.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/heatmap.js +4 -6
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/heatmap.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/histogram.js +2 -5
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/histogram.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/line.js +7 -14
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/line.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/pie.js +5 -7
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/pie.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/radar.js +5 -7
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/radar.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/rose.js +5 -7
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/rose.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/scatter.js +2 -5
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/scatter.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasures.d.ts +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasures.js +19 -50
- package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasures.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasuresForDualAxis.js +25 -118
- package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasuresForDualAxis.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasuresForScatter.js +30 -115
- package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasuresForScatter.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/measures/index.d.ts +0 -1
- package/dist/esm/pipeline/advanced/chart/pipes/measures/index.js +1 -2
- package/dist/esm/pipeline/advanced/chart/pipes/measures/utils.d.ts +12 -1
- package/dist/esm/pipeline/advanced/chart/pipes/measures/utils.js +12 -1
- package/dist/esm/pipeline/advanced/chart/pipes/measures/utils.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithBoxplotEncoding.js +6 -12
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithBoxplotEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js +25 -28
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.js +6 -11
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.js +4 -8
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithScatterEncoding.js +23 -35
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithScatterEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithBoxplotEncoding.js +3 -8
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithBoxplotEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js +21 -17
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.js +1 -2
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithHistogramEncoding.js +4 -9
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithHistogramEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithScatterEncoding.js +22 -27
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithScatterEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipes/default/defaultDimensions.js +3 -3
- package/dist/esm/pipeline/advanced/table/pipes/default/defaultDimensions.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasureId.js +3 -2
- package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasureId.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasures.js +2 -2
- package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasures.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipes/encoding/pivotTable.js +5 -5
- package/dist/esm/pipeline/advanced/table/pipes/encoding/pivotTable.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipes/reshape/reshapePivotTable.js +3 -5
- package/dist/esm/pipeline/advanced/table/pipes/reshape/reshapePivotTable.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/boxplot.js +3 -3
- package/dist/esm/pipeline/spec/chart/pipeline/boxplot.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/dualAxis.js +17 -45
- package/dist/esm/pipeline/spec/chart/pipeline/dualAxis.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPointOfDualAxis.js +3 -3
- package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPointOfDualAxis.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/histogramXLinear.js +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/histogramXLinear.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/title/defaultTitleText.d.ts +2 -2
- package/dist/esm/pipeline/spec/chart/pipes/axes/title/defaultTitleText.js +2 -6
- package/dist/esm/pipeline/spec/chart/pipes/axes/title/defaultTitleText.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/xBand.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/yBand.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearPrimary.js +16 -13
- package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearPrimary.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearSecondary.js +10 -13
- package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearSecondary.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/color/colorAdapter.js +1 -3
- package/dist/esm/pipeline/spec/chart/pipes/color/colorAdapter.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/color/linearColorForDualAxis.js +4 -12
- package/dist/esm/pipeline/spec/chart/pipes/color/linearColorForDualAxis.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetDualAxis.d.ts +2 -3
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetDualAxis.js +38 -78
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetDualAxis.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/dataset/index.d.ts +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/dataset/index.js +2 -2
- package/dist/esm/pipeline/spec/chart/pipes/dual/dualChartType.d.ts +2 -2
- package/dist/esm/pipeline/spec/chart/pipes/dual/dualChartType.js +16 -75
- package/dist/esm/pipeline/spec/chart/pipes/dual/dualChartType.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/dual/index.d.ts +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/dual/index.js +2 -2
- package/dist/esm/pipeline/spec/chart/pipes/init/dualAxis.d.ts +2 -3
- package/dist/esm/pipeline/spec/chart/pipes/init/dualAxis.js +16 -32
- package/dist/esm/pipeline/spec/chart/pipes/init/dualAxis.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/index.d.ts +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/index.js +2 -2
- package/dist/esm/pipeline/spec/chart/pipes/label/index.d.ts +2 -1
- package/dist/esm/pipeline/spec/chart/pipes/label/index.js +3 -2
- package/dist/esm/pipeline/spec/chart/pipes/label/label.d.ts +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/label/label.js +4 -2
- package/dist/esm/pipeline/spec/chart/pipes/label/label.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/label/labelBoxPlot.d.ts +2 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/labelBoxPlot.js +21 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/labelBoxPlot.js.map +1 -0
- package/dist/esm/pipeline/spec/chart/pipes/label/labelDualAxis.d.ts +2 -3
- package/dist/esm/pipeline/spec/chart/pipes/label/labelDualAxis.js +14 -30
- package/dist/esm/pipeline/spec/chart/pipes/label/labelDualAxis.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/label/labelPie.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/label/labelScatter.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/boxPlotStyle.js +7 -5
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/boxPlotStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/outlierStyle.js +3 -6
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/outlierStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotIndicators.js +5 -5
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotIndicators.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.js +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/kdeRegressionLine.js +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/kdeRegressionLine.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/series/series.d.ts +3 -3
- package/dist/esm/pipeline/spec/chart/pipes/series/series.js +45 -17
- package/dist/esm/pipeline/spec/chart/pipes/series/series.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/tooltip.d.ts +2 -2
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js +5 -5
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js +3 -3
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.d.ts +2 -3
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js +28 -62
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHeatmap.d.ts +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHeatmap.js +4 -4
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHeatmap.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHistogram.js +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHistogram.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.d.ts +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.js +4 -4
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/columns/dimensionsToColumns.js +2 -2
- package/dist/esm/pipeline/spec/table/pipes/columns/dimensionsToColumns.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/columns/measuresToColumns.js +2 -2
- package/dist/esm/pipeline/spec/table/pipes/columns/measuresToColumns.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/columns/pivotColumns.js +1 -1
- package/dist/esm/pipeline/spec/table/pipes/columns/pivotColumns.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/indicators/pivotDataConfig.js +1 -1
- package/dist/esm/pipeline/spec/table/pipes/indicators/pivotDataConfig.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/indicators/pivotIndicators.js +4 -4
- package/dist/esm/pipeline/spec/table/pipes/indicators/pivotIndicators.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/rows/pivotRows.js +3 -3
- package/dist/esm/pipeline/spec/table/pipes/rows/pivotRows.js.map +1 -1
- package/dist/esm/pipeline/utils/chatType.d.ts +9 -0
- package/dist/esm/pipeline/utils/chatType.js +33 -21
- package/dist/esm/pipeline/utils/chatType.js.map +1 -1
- package/dist/esm/pipeline/utils/measures/find.d.ts +2 -1
- package/dist/esm/pipeline/utils/measures/find.js +3 -13
- package/dist/esm/pipeline/utils/measures/find.js.map +1 -1
- package/dist/esm/theme/common/boxPlot.js +10 -7
- package/dist/esm/theme/common/boxPlot.js.map +1 -1
- package/dist/esm/theme/dark/dark.js +0 -4
- package/dist/esm/theme/dark/dark.js.map +1 -1
- package/dist/esm/theme/light/light.js +0 -4
- package/dist/esm/theme/light/light.js.map +1 -1
- package/dist/esm/types/advancedVSeed.d.ts +141 -72
- package/dist/esm/types/advancedVSeed.js +8 -6
- package/dist/esm/types/advancedVSeed.js.map +1 -1
- package/dist/esm/types/chartType/area/area.d.ts +3 -5
- package/dist/esm/types/chartType/area/zArea.d.ts +11 -2
- package/dist/esm/types/chartType/area/zArea.js +2 -2
- package/dist/esm/types/chartType/area/zArea.js.map +1 -1
- package/dist/esm/types/chartType/areaPercent/areaPercent.d.ts +3 -5
- package/dist/esm/types/chartType/areaPercent/zAreaPercent.d.ts +11 -2
- package/dist/esm/types/chartType/areaPercent/zAreaPercent.js +2 -2
- package/dist/esm/types/chartType/areaPercent/zAreaPercent.js.map +1 -1
- package/dist/esm/types/chartType/bar/bar.d.ts +4 -6
- package/dist/esm/types/chartType/bar/zBar.d.ts +11 -2
- package/dist/esm/types/chartType/bar/zBar.js +2 -2
- package/dist/esm/types/chartType/bar/zBar.js.map +1 -1
- package/dist/esm/types/chartType/barParallel/barParallel.d.ts +3 -5
- package/dist/esm/types/chartType/barParallel/zBarParallel.d.ts +11 -2
- package/dist/esm/types/chartType/barParallel/zBarParallel.js +2 -2
- package/dist/esm/types/chartType/barParallel/zBarParallel.js.map +1 -1
- package/dist/esm/types/chartType/barPercent/barPercent.d.ts +3 -3
- package/dist/esm/types/chartType/barPercent/zBarPercent.d.ts +11 -2
- package/dist/esm/types/chartType/barPercent/zBarPercent.js +2 -2
- package/dist/esm/types/chartType/barPercent/zBarPercent.js.map +1 -1
- package/dist/esm/types/chartType/boxPlot/boxPlot.d.ts +3 -5
- package/dist/esm/types/chartType/boxPlot/zBoxPlot.d.ts +13 -4
- package/dist/esm/types/chartType/boxPlot/zBoxPlot.js +2 -2
- package/dist/esm/types/chartType/boxPlot/zBoxPlot.js.map +1 -1
- package/dist/esm/types/chartType/column/column.d.ts +3 -5
- package/dist/esm/types/chartType/column/zColumn.d.ts +11 -2
- package/dist/esm/types/chartType/column/zColumn.js +2 -2
- package/dist/esm/types/chartType/column/zColumn.js.map +1 -1
- package/dist/esm/types/chartType/columnParallel/columnParallel.d.ts +4 -6
- package/dist/esm/types/chartType/columnParallel/zColumnParallel.d.ts +11 -2
- package/dist/esm/types/chartType/columnParallel/zColumnParallel.js +2 -2
- package/dist/esm/types/chartType/columnParallel/zColumnParallel.js.map +1 -1
- package/dist/esm/types/chartType/columnPercent/columnPercent.d.ts +3 -5
- package/dist/esm/types/chartType/columnPercent/zColumnPercent.d.ts +11 -2
- package/dist/esm/types/chartType/columnPercent/zColumnPercent.js +2 -2
- package/dist/esm/types/chartType/columnPercent/zColumnPercent.js.map +1 -1
- package/dist/esm/types/chartType/donut/donut.d.ts +3 -5
- package/dist/esm/types/chartType/donut/zDonut.d.ts +11 -2
- package/dist/esm/types/chartType/donut/zDonut.js +2 -2
- package/dist/esm/types/chartType/donut/zDonut.js.map +1 -1
- package/dist/esm/types/chartType/dualAxis/dualAxis.d.ts +7 -88
- package/dist/esm/types/chartType/dualAxis/zDualAxis.d.ts +9 -358
- package/dist/esm/types/chartType/dualAxis/zDualAxis.js +2 -4
- package/dist/esm/types/chartType/dualAxis/zDualAxis.js.map +1 -1
- package/dist/esm/types/chartType/funnel/funnel.d.ts +3 -5
- package/dist/esm/types/chartType/funnel/zFunnel.d.ts +11 -2
- package/dist/esm/types/chartType/funnel/zFunnel.js +2 -2
- package/dist/esm/types/chartType/funnel/zFunnel.js.map +1 -1
- package/dist/esm/types/chartType/heatmap/heatmap.d.ts +4 -6
- package/dist/esm/types/chartType/heatmap/zHeatmap.d.ts +11 -2
- package/dist/esm/types/chartType/heatmap/zHeatmap.js +2 -2
- package/dist/esm/types/chartType/heatmap/zHeatmap.js.map +1 -1
- package/dist/esm/types/chartType/histogram/histogram.d.ts +3 -5
- package/dist/esm/types/chartType/histogram/zHistogram.d.ts +11 -2
- package/dist/esm/types/chartType/histogram/zHistogram.js +2 -2
- package/dist/esm/types/chartType/histogram/zHistogram.js.map +1 -1
- package/dist/esm/types/chartType/line/line.d.ts +3 -4
- package/dist/esm/types/chartType/line/zLine.d.ts +11 -2
- package/dist/esm/types/chartType/line/zLine.js +2 -2
- package/dist/esm/types/chartType/line/zLine.js.map +1 -1
- package/dist/esm/types/chartType/pie/pie.d.ts +3 -5
- package/dist/esm/types/chartType/pie/zPie.d.ts +11 -2
- package/dist/esm/types/chartType/pie/zPie.js +2 -2
- package/dist/esm/types/chartType/pie/zPie.js.map +1 -1
- package/dist/esm/types/chartType/pivotTable/pivotTable.d.ts +4 -4
- package/dist/esm/types/chartType/pivotTable/zPivotTable.d.ts +9 -0
- package/dist/esm/types/chartType/radar/radar.d.ts +4 -6
- package/dist/esm/types/chartType/radar/zRadar.d.ts +11 -2
- package/dist/esm/types/chartType/radar/zRadar.js +2 -2
- package/dist/esm/types/chartType/radar/zRadar.js.map +1 -1
- package/dist/esm/types/chartType/rose/rose.d.ts +4 -6
- package/dist/esm/types/chartType/rose/zRose.d.ts +11 -2
- package/dist/esm/types/chartType/rose/zRose.js +2 -2
- package/dist/esm/types/chartType/rose/zRose.js.map +1 -1
- package/dist/esm/types/chartType/roseParallel/roseParallel.d.ts +4 -6
- package/dist/esm/types/chartType/roseParallel/zRoseParallel.d.ts +11 -2
- package/dist/esm/types/chartType/roseParallel/zRoseParallel.js +2 -2
- package/dist/esm/types/chartType/roseParallel/zRoseParallel.js.map +1 -1
- package/dist/esm/types/chartType/scatter/scatter.d.ts +5 -75
- package/dist/esm/types/chartType/scatter/zScatter.d.ts +10 -310
- package/dist/esm/types/chartType/scatter/zScatter.js +2 -3
- package/dist/esm/types/chartType/scatter/zScatter.js.map +1 -1
- package/dist/esm/types/chartType/table/zTable.d.ts +9 -0
- package/dist/esm/types/properties/chartType/index.d.ts +0 -2
- package/dist/esm/types/properties/chartType/index.js +1 -2
- package/dist/esm/types/properties/config/boxplot.d.ts +1 -1
- package/dist/esm/types/properties/config/config.d.ts +1 -32
- package/dist/esm/types/properties/config/dualAxis.d.ts +7 -31
- package/dist/esm/types/properties/config/dualAxis.js +0 -2
- package/dist/esm/types/properties/config/dualAxis.js.map +1 -1
- package/dist/esm/types/properties/dimensions/areaDimension.d.ts +3 -0
- package/dist/esm/types/properties/dimensions/barDimension.d.ts +16 -0
- package/dist/esm/types/properties/dimensions/{dimensions.d.ts → baseDimension.d.ts} +13 -14
- package/dist/esm/types/properties/dimensions/boxPlotDimension.d.ts +13 -0
- package/dist/esm/types/properties/dimensions/columnDimension.d.ts +19 -0
- package/dist/esm/types/properties/dimensions/columnDimension.js +0 -0
- package/dist/esm/types/properties/dimensions/donutDimension.d.ts +2 -0
- package/dist/esm/types/properties/dimensions/donutDimension.js +0 -0
- package/dist/esm/types/properties/dimensions/dualAxisDimension.d.ts +2 -0
- package/dist/esm/types/properties/dimensions/dualAxisDimension.js +0 -0
- package/dist/esm/types/properties/dimensions/funnelDimension.d.ts +2 -0
- package/dist/esm/types/properties/dimensions/funnelDimension.js +0 -0
- package/dist/esm/types/properties/dimensions/heatmapDimension.d.ts +13 -0
- package/dist/esm/types/properties/dimensions/heatmapDimension.js +0 -0
- package/dist/esm/types/properties/dimensions/histogramDimension.d.ts +13 -0
- package/dist/esm/types/properties/dimensions/histogramDimension.js +0 -0
- package/dist/esm/types/properties/dimensions/index.d.ts +16 -1
- package/dist/esm/types/properties/dimensions/lineDimension.d.ts +2 -0
- package/dist/esm/types/properties/dimensions/lineDimension.js +0 -0
- package/dist/esm/types/properties/dimensions/pieDimension.d.ts +13 -0
- package/dist/esm/types/properties/dimensions/pieDimension.js +0 -0
- package/dist/esm/types/properties/dimensions/radarDimension.d.ts +14 -0
- package/dist/esm/types/properties/dimensions/radarDimension.js +0 -0
- package/dist/esm/types/properties/dimensions/roseDimension.d.ts +3 -0
- package/dist/esm/types/properties/dimensions/roseDimension.js +0 -0
- package/dist/esm/types/properties/dimensions/scatterDimension.d.ts +13 -0
- package/dist/esm/types/properties/dimensions/scatterDimension.js +0 -0
- package/dist/esm/types/properties/dimensions/tableDimension.d.ts +18 -0
- package/dist/esm/types/properties/dimensions/tableDimension.js +0 -0
- package/dist/esm/types/properties/dimensions/zDimensions.d.ts +1 -1
- package/dist/esm/types/properties/dimensions/zDimensions.js.map +1 -1
- package/dist/esm/types/properties/markStyle/boxPlotStyle.d.ts +5 -5
- package/dist/esm/types/properties/markStyle/boxPlotStyle.js +2 -2
- package/dist/esm/types/properties/markStyle/boxPlotStyle.js.map +1 -1
- package/dist/esm/types/properties/markStyle/markStyle.d.ts +2 -2
- package/dist/esm/types/properties/measures/areaMeasure.d.ts +2 -0
- package/dist/esm/types/properties/measures/areaMeasure.js +0 -0
- package/dist/esm/types/properties/measures/barMeasure.d.ts +14 -0
- package/dist/esm/types/properties/measures/barMeasure.js +0 -0
- package/dist/esm/types/properties/measures/{measures.d.ts → baseMeasure.d.ts} +29 -13
- package/dist/esm/types/properties/measures/baseMeasure.js +0 -0
- package/dist/esm/types/properties/measures/boxPlotMeasure.d.ts +18 -0
- package/dist/esm/types/properties/measures/boxPlotMeasure.js +0 -0
- package/dist/esm/types/properties/measures/columnMeasure.d.ts +14 -0
- package/dist/esm/types/properties/measures/columnMeasure.js +0 -0
- package/dist/esm/types/properties/measures/dualAxisMeasure.d.ts +23 -0
- package/dist/esm/types/properties/measures/dualAxisMeasure.js +0 -0
- package/dist/esm/types/properties/measures/funnelMeasure.d.ts +11 -0
- package/dist/esm/types/properties/measures/funnelMeasure.js +0 -0
- package/dist/esm/types/properties/measures/heatmapMeasure.d.ts +10 -0
- package/dist/esm/types/properties/measures/heatmapMeasure.js +0 -0
- package/dist/esm/types/properties/measures/histogramMeasure.d.ts +13 -0
- package/dist/esm/types/properties/measures/histogramMeasure.js +0 -0
- package/dist/esm/types/properties/measures/index.d.ts +15 -4
- package/dist/esm/types/properties/measures/index.js +0 -1
- package/dist/esm/types/properties/measures/lineMeasure.d.ts +2 -0
- package/dist/esm/types/properties/measures/lineMeasure.js +0 -0
- package/dist/esm/types/properties/measures/measureTree.d.ts +17 -0
- package/dist/esm/types/properties/measures/measureTree.js +0 -0
- package/dist/esm/types/properties/measures/pieMeasure.d.ts +12 -0
- package/dist/esm/types/properties/measures/pieMeasure.js +0 -0
- package/dist/esm/types/properties/measures/radarMeasure.d.ts +13 -0
- package/dist/esm/types/properties/measures/radarMeasure.js +0 -0
- package/dist/esm/types/properties/measures/scatterMeasure.d.ts +13 -0
- package/dist/esm/types/properties/measures/scatterMeasure.js +0 -0
- package/dist/esm/types/properties/measures/tableMeasure.d.ts +8 -0
- package/dist/esm/types/properties/measures/tableMeasure.js +0 -0
- package/dist/esm/types/properties/measures/zDualMeasures.d.ts +154 -612
- package/dist/esm/types/properties/measures/zDualMeasures.js +15 -10
- package/dist/esm/types/properties/measures/zDualMeasures.js.map +1 -1
- package/dist/esm/types/properties/measures/zMeasures.d.ts +28 -1
- package/dist/esm/types/properties/measures/zMeasures.js +10 -1
- package/dist/esm/types/properties/measures/zMeasures.js.map +1 -1
- package/dist/esm/types/properties/theme/customTheme.d.ts +2 -64
- package/dist/esm/types/zVseed.d.ts +237 -706
- package/dist/umd/index.js +899 -1368
- package/dist/umd/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/esm/pipeline/advanced/chart/pipes/measures/pickMeasuresForReshape.d.ts +0 -2
- package/dist/esm/pipeline/advanced/chart/pipes/measures/pickMeasuresForReshape.js +0 -14
- package/dist/esm/pipeline/advanced/chart/pipes/measures/pickMeasuresForReshape.js.map +0 -1
- package/dist/esm/types/properties/chartType/dualChartType.d.ts +0 -18
- package/dist/esm/types/properties/chartType/dualChartType.js +0 -20
- package/dist/esm/types/properties/chartType/dualChartType.js.map +0 -1
- package/dist/esm/types/properties/measures/dualMeasures.d.ts +0 -7
- package/dist/esm/types/properties/measures/scatterMeasures.d.ts +0 -7
- package/dist/esm/types/properties/measures/zScatterMeasures.d.ts +0 -619
- package/dist/esm/types/properties/measures/zScatterMeasures.js +0 -17
- package/dist/esm/types/properties/measures/zScatterMeasures.js.map +0 -1
- /package/dist/esm/types/properties/dimensions/{dimensions.js → areaDimension.js} +0 -0
- /package/dist/esm/types/properties/{measures/dualMeasures.js → dimensions/barDimension.js} +0 -0
- /package/dist/esm/types/properties/{measures/measures.js → dimensions/baseDimension.js} +0 -0
- /package/dist/esm/types/properties/{measures/scatterMeasures.js → dimensions/boxPlotDimension.js} +0 -0
package/dist/umd/index.js
CHANGED
|
@@ -115,7 +115,6 @@
|
|
|
115
115
|
zMeasures: ()=>zMeasures,
|
|
116
116
|
zDualAxis: ()=>zDualAxis,
|
|
117
117
|
FoldMeasureName: ()=>FoldMeasureName,
|
|
118
|
-
zDualChartType: ()=>zDualChartType,
|
|
119
118
|
darkTheme: ()=>darkTheme,
|
|
120
119
|
isVTable: ()=>isVTable,
|
|
121
120
|
BoxPlotPivotIndicator: ()=>BoxPlotPivotIndicator,
|
|
@@ -140,9 +139,9 @@
|
|
|
140
139
|
findMeasureById: ()=>findMeasureById,
|
|
141
140
|
AngleEncoding: ()=>AngleEncoding,
|
|
142
141
|
areaPercentAdvancedPipeline: ()=>areaPercentAdvancedPipeline,
|
|
143
|
-
findTreeNodesBy: ()=>findTreeNodesBy,
|
|
144
|
-
zAreaPercentConfig: ()=>zAreaPercentConfig,
|
|
145
142
|
zBackgroundColor: ()=>zBackgroundColor,
|
|
143
|
+
zAreaPercentConfig: ()=>zAreaPercentConfig,
|
|
144
|
+
findTreeNodesBy: ()=>findTreeNodesBy,
|
|
146
145
|
MeasureId: ()=>MeasureId,
|
|
147
146
|
registerRadar: ()=>registerRadar,
|
|
148
147
|
zLocale: ()=>zLocale,
|
|
@@ -163,14 +162,14 @@
|
|
|
163
162
|
zColumnPercent: ()=>zColumnPercent,
|
|
164
163
|
foldMeasures: ()=>foldMeasures,
|
|
165
164
|
isPivotTable: ()=>isPivotTable,
|
|
166
|
-
zDimensionEncoding: ()=>zDimensionEncoding,
|
|
167
165
|
registerPie: ()=>registerPie,
|
|
166
|
+
zDimensionEncoding: ()=>zDimensionEncoding,
|
|
168
167
|
LowerWhisker: ()=>LowerWhisker,
|
|
169
168
|
zEcdfRegressionLine: ()=>zEcdfRegressionLine,
|
|
170
169
|
zBarParallelConfig: ()=>zBarParallelConfig,
|
|
170
|
+
lineAdvancedPipeline: ()=>lineAdvancedPipeline,
|
|
171
171
|
AXIS_LABEL_SPACE: ()=>8,
|
|
172
172
|
FoldMeasureValue: ()=>FoldMeasureValue,
|
|
173
|
-
lineAdvancedPipeline: ()=>lineAdvancedPipeline,
|
|
174
173
|
zFunnel: ()=>zFunnel,
|
|
175
174
|
ANNOTATION_Z_INDEX: ()=>1000,
|
|
176
175
|
Q3MeasureValue: ()=>"__Q3__",
|
|
@@ -198,7 +197,6 @@
|
|
|
198
197
|
zLinearRegressionLine: ()=>zLinearRegressionLine,
|
|
199
198
|
zRoseConfig: ()=>zRoseConfig,
|
|
200
199
|
zBodyCellStyle: ()=>zBodyCellStyle,
|
|
201
|
-
zScatterMeasures: ()=>zScatterMeasures,
|
|
202
200
|
zAnnotation: ()=>zAnnotation,
|
|
203
201
|
selector: ()=>selector_selector,
|
|
204
202
|
zKdeRegressionLine: ()=>zKdeRegressionLine,
|
|
@@ -230,7 +228,6 @@
|
|
|
230
228
|
registerAreaPercent: ()=>registerAreaPercent,
|
|
231
229
|
zMeasureEncoding: ()=>zMeasureEncoding,
|
|
232
230
|
zBarPercent: ()=>zBarPercent,
|
|
233
|
-
zScatterMeasure: ()=>zScatterMeasure,
|
|
234
231
|
zTheme: ()=>zTheme,
|
|
235
232
|
zDatum: ()=>zDatum,
|
|
236
233
|
barAdvancedPipeline: ()=>barAdvancedPipeline,
|
|
@@ -239,9 +236,10 @@
|
|
|
239
236
|
registerHeatmap: ()=>registerHeatmap,
|
|
240
237
|
isBarPercent: ()=>isBarPercent,
|
|
241
238
|
checkVSeed: ()=>checkVSeed,
|
|
242
|
-
|
|
239
|
+
flatReshapeMeasures: ()=>flatReshapeMeasures,
|
|
243
240
|
registerLightTheme: ()=>registerLightTheme,
|
|
244
241
|
selectByDmension: ()=>selectByDmension,
|
|
242
|
+
zPivotTable: ()=>zPivotTable,
|
|
245
243
|
isPartialDatumSelector: ()=>isPartialDatumSelector,
|
|
246
244
|
isDimensionGroup: ()=>isDimensionGroup,
|
|
247
245
|
registerPivotTable: ()=>registerPivotTable,
|
|
@@ -312,7 +310,9 @@
|
|
|
312
310
|
ColorEncoding: ()=>ColorEncoding,
|
|
313
311
|
measureDepth: ()=>measureDepth,
|
|
314
312
|
BinCountMeasureId: ()=>BinCountMeasureId,
|
|
313
|
+
DEFAULT_DUAL_CHART_TYPE: ()=>DEFAULT_DUAL_CHART_TYPE,
|
|
315
314
|
zAdvancedVSeed: ()=>zAdvancedVSeed,
|
|
315
|
+
isRectungularCoordinate: ()=>isRectungularCoordinate,
|
|
316
316
|
zAreaPercent: ()=>zAreaPercent,
|
|
317
317
|
isValueSelector: ()=>isValueSelector,
|
|
318
318
|
donutAdvancedPipeline: ()=>donutAdvancedPipeline,
|
|
@@ -320,12 +320,13 @@
|
|
|
320
320
|
zScatterConfig: ()=>zScatterConfig,
|
|
321
321
|
zTooltip: ()=>zTooltip,
|
|
322
322
|
isBarLikeChart: ()=>isBarLikeChart,
|
|
323
|
+
isDualAxisChartType: ()=>isDualAxisChartType,
|
|
323
324
|
barParallelAdvancedPipeline: ()=>barParallelAdvancedPipeline,
|
|
324
|
-
barPercentSpecPipeline: ()=>barPercentSpecPipeline,
|
|
325
325
|
zBarPercentConfig: ()=>zBarPercentConfig,
|
|
326
|
-
|
|
326
|
+
barPercentSpecPipeline: ()=>barPercentSpecPipeline,
|
|
327
327
|
dataReshapeByEncoding: ()=>dataReshapeByEncoding,
|
|
328
328
|
lineSpecPipeline: ()=>lineSpecPipeline,
|
|
329
|
+
deleteMeasureTreeByCallback: ()=>deleteMeasureTreeByCallback,
|
|
329
330
|
zDimensionGroup: ()=>zDimensionGroup,
|
|
330
331
|
isPositionMeasure: ()=>isPositionMeasure
|
|
331
332
|
});
|
|
@@ -535,80 +536,20 @@
|
|
|
535
536
|
'tooltip',
|
|
536
537
|
'detail'
|
|
537
538
|
].includes(measure.encoding);
|
|
538
|
-
const preorderTraverse = (tree, callback, childrenKey = 'children')=>{
|
|
539
|
-
if (!tree || 0 === tree.length) return;
|
|
540
|
-
const stack = [
|
|
541
|
-
...tree
|
|
542
|
-
].reverse();
|
|
543
|
-
while(stack.length > 0){
|
|
544
|
-
const node = stack.pop();
|
|
545
|
-
const stop = callback(node);
|
|
546
|
-
if (true === stop) return;
|
|
547
|
-
const children = node[childrenKey];
|
|
548
|
-
if (Array.isArray(children) && children.length > 0) for(let i = children.length - 1; i >= 0; i--){
|
|
549
|
-
const child = children[i];
|
|
550
|
-
stack.push(child);
|
|
551
|
-
}
|
|
552
|
-
}
|
|
553
|
-
};
|
|
554
|
-
const findTreeNodesBy = (nodes = [], callback, childrenKey = 'children')=>{
|
|
555
|
-
if (!nodes) return [];
|
|
556
|
-
const result = [];
|
|
557
|
-
preorderTraverse(nodes, (node)=>{
|
|
558
|
-
if (!(childrenKey in node)) {
|
|
559
|
-
if (callback(node)) result.push(node);
|
|
560
|
-
}
|
|
561
|
-
return false;
|
|
562
|
-
});
|
|
563
|
-
return result;
|
|
564
|
-
};
|
|
565
|
-
const measureDepth = (measures = [])=>{
|
|
566
|
-
if (!measures) return 0;
|
|
567
|
-
let depth = 1;
|
|
568
|
-
preorderTraverse(measures, (node)=>{
|
|
569
|
-
if ('children' in node) depth = Math.max(depth, 1 + measureDepth(node.children));
|
|
570
|
-
return false;
|
|
571
|
-
});
|
|
572
|
-
return depth;
|
|
573
|
-
};
|
|
574
|
-
const isMeasureTreeWithChildren = (measures)=>{
|
|
575
|
-
if (!measures) return false;
|
|
576
|
-
return measures.some((measure)=>'children' in measure);
|
|
577
|
-
};
|
|
578
539
|
const isMeasureTreeWithParentId = (measures)=>{
|
|
579
540
|
if (!measures) return false;
|
|
580
541
|
return measures.some((measure)=>'parentId' in measure);
|
|
581
542
|
};
|
|
582
|
-
const
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
if (currentGroup.children?.length) {
|
|
592
|
-
currentGroup.id = [
|
|
593
|
-
currentGroup.id,
|
|
594
|
-
...currentGroup.children.map((item)=>item.id)
|
|
595
|
-
].join('-');
|
|
596
|
-
currentGroup.alias = currentGroup.children.map((item)=>item.alias).join('-');
|
|
597
|
-
measureGroups.push(currentGroup);
|
|
598
|
-
currentGroup = createEmptyMeasureGroup();
|
|
599
|
-
}
|
|
600
|
-
measureGroups.push(measure);
|
|
601
|
-
} else currentGroup.children?.push(measure);
|
|
602
|
-
if (currentGroup.children?.length) {
|
|
603
|
-
currentGroup.id = [
|
|
604
|
-
currentGroup.id,
|
|
605
|
-
...currentGroup.children.map((item)=>item.id)
|
|
606
|
-
].join('-');
|
|
607
|
-
currentGroup.alias = currentGroup.children.map((item)=>item.alias).join('-');
|
|
608
|
-
measureGroups.push(currentGroup);
|
|
609
|
-
currentGroup = createEmptyMeasureGroup();
|
|
543
|
+
const isCommonMeasureEncoding = (encoding)=>[
|
|
544
|
+
'color',
|
|
545
|
+
'label',
|
|
546
|
+
'tooltip'
|
|
547
|
+
].includes(encoding);
|
|
548
|
+
const ensureParentIdInitialized = (parentId, measuresByView, parentIds)=>{
|
|
549
|
+
if (!measuresByView[parentId]) {
|
|
550
|
+
measuresByView[parentId] = [];
|
|
551
|
+
parentIds.push(parentId);
|
|
610
552
|
}
|
|
611
|
-
return measureGroups;
|
|
612
553
|
};
|
|
613
554
|
const DEFAULT_PARENT_ID = '__DefaultParentId__';
|
|
614
555
|
const ChartTypeEnum = {
|
|
@@ -662,28 +603,40 @@
|
|
|
662
603
|
const parentIds = vseed.measures?.filter(isPositionMeasure).map((measure)=>measure.parentId || DEFAULT_PARENT_ID);
|
|
663
604
|
return parentIds && chunk_QJLMYOTX_i(parentIds).length > 1;
|
|
664
605
|
}
|
|
665
|
-
if ('dualAxis' === vseed.chartType || 'scatter' === vseed.chartType) {
|
|
666
|
-
if ('scatter' === vseed.chartType) {
|
|
667
|
-
if (isMeasureTreeWithChildren(vseed.measures)) {
|
|
668
|
-
const depth = measureDepth(vseed.measures);
|
|
669
|
-
return 3 === depth;
|
|
670
|
-
}
|
|
671
|
-
if (vseed.scatterMeasures && vseed.scatterMeasures.length > 1) return true;
|
|
672
|
-
return false;
|
|
673
|
-
}
|
|
674
|
-
if ('dualAxis' === vseed.chartType) {
|
|
675
|
-
if (isMeasureTreeWithChildren(vseed.measures)) {
|
|
676
|
-
const depth = measureDepth(vseed.measures);
|
|
677
|
-
return 3 === depth;
|
|
678
|
-
}
|
|
679
|
-
if (vseed.dualMeasures && vseed.dualMeasures.length > 1) return true;
|
|
680
|
-
}
|
|
681
|
-
return false;
|
|
682
|
-
}
|
|
683
606
|
const { measures = [] } = vseed;
|
|
684
607
|
const hasMeasureGroup = measures && measures.some((measure)=>measure && measure.children);
|
|
685
608
|
return hasMeasureGroup;
|
|
686
609
|
};
|
|
610
|
+
const isRectungularCoordinate = (chartType)=>[
|
|
611
|
+
ChartTypeEnum.Bar,
|
|
612
|
+
ChartTypeEnum.BarPercent,
|
|
613
|
+
ChartTypeEnum.BarParallel,
|
|
614
|
+
ChartTypeEnum.Column,
|
|
615
|
+
ChartTypeEnum.ColumnPercent,
|
|
616
|
+
ChartTypeEnum.ColumnParallel,
|
|
617
|
+
ChartTypeEnum.Line,
|
|
618
|
+
ChartTypeEnum.Area,
|
|
619
|
+
ChartTypeEnum.AreaPercent,
|
|
620
|
+
ChartTypeEnum.DualAxis,
|
|
621
|
+
ChartTypeEnum.Boxplot,
|
|
622
|
+
ChartTypeEnum.DualAxis,
|
|
623
|
+
ChartTypeEnum.Scatter,
|
|
624
|
+
ChartTypeEnum.Heatmap,
|
|
625
|
+
ChartTypeEnum.Boxplot
|
|
626
|
+
].includes(chartType);
|
|
627
|
+
const DEFAULT_DUAL_CHART_TYPE = {
|
|
628
|
+
primary: 'column',
|
|
629
|
+
secondary: 'line'
|
|
630
|
+
};
|
|
631
|
+
const isDualAxisChartType = (chartType)=>chartType && [
|
|
632
|
+
'column',
|
|
633
|
+
'columnParallel',
|
|
634
|
+
'columnPercent',
|
|
635
|
+
'line',
|
|
636
|
+
'area',
|
|
637
|
+
'areaPercent',
|
|
638
|
+
'scatter'
|
|
639
|
+
].includes(chartType);
|
|
687
640
|
const getColorItems = (builder)=>{
|
|
688
641
|
const advancedVSeed = builder.advancedVSeed;
|
|
689
642
|
if (!advancedVSeed || isTable(builder.vseed) || isPivotTable(builder.vseed)) return [];
|
|
@@ -827,6 +780,33 @@
|
|
|
827
780
|
for (let [e, c] of n.entries())r[e] = chunk_BCBB46UE_u(c, o, t);
|
|
828
781
|
return r;
|
|
829
782
|
}
|
|
783
|
+
const preorderTraverse = (tree, callback, childrenKey = 'children')=>{
|
|
784
|
+
if (!tree || 0 === tree.length) return;
|
|
785
|
+
const stack = [
|
|
786
|
+
...tree
|
|
787
|
+
].reverse();
|
|
788
|
+
while(stack.length > 0){
|
|
789
|
+
const node = stack.pop();
|
|
790
|
+
const stop = callback(node);
|
|
791
|
+
if (true === stop) return;
|
|
792
|
+
const children = node[childrenKey];
|
|
793
|
+
if (Array.isArray(children) && children.length > 0) for(let i = children.length - 1; i >= 0; i--){
|
|
794
|
+
const child = children[i];
|
|
795
|
+
stack.push(child);
|
|
796
|
+
}
|
|
797
|
+
}
|
|
798
|
+
};
|
|
799
|
+
const findTreeNodesBy = (nodes = [], callback, childrenKey = 'children')=>{
|
|
800
|
+
if (!nodes) return [];
|
|
801
|
+
const result = [];
|
|
802
|
+
preorderTraverse(nodes, (node)=>{
|
|
803
|
+
if (!(childrenKey in node)) {
|
|
804
|
+
if (callback(node)) result.push(node);
|
|
805
|
+
}
|
|
806
|
+
return false;
|
|
807
|
+
});
|
|
808
|
+
return result;
|
|
809
|
+
};
|
|
830
810
|
const defaultMeasures_defaultMeasures = (advancedVSeed, context)=>{
|
|
831
811
|
const { vseed } = context;
|
|
832
812
|
const { measures, dataset } = vseed;
|
|
@@ -838,7 +818,7 @@
|
|
|
838
818
|
});
|
|
839
819
|
return {
|
|
840
820
|
...advancedVSeed,
|
|
841
|
-
|
|
821
|
+
measureTree: clonedMeasures
|
|
842
822
|
};
|
|
843
823
|
}
|
|
844
824
|
const top100dataset = dataset.slice(0, 100);
|
|
@@ -856,7 +836,7 @@
|
|
|
856
836
|
}));
|
|
857
837
|
return {
|
|
858
838
|
...advancedVSeed,
|
|
859
|
-
|
|
839
|
+
measureTree: defaultMeasures
|
|
860
840
|
};
|
|
861
841
|
};
|
|
862
842
|
const isDimension = (dimension)=>!('children' in dimension);
|
|
@@ -896,18 +876,8 @@
|
|
|
896
876
|
});
|
|
897
877
|
return result;
|
|
898
878
|
};
|
|
899
|
-
const hasMultipleMeasureInSingleView = (
|
|
900
|
-
|
|
901
|
-
let found = false;
|
|
902
|
-
preorderTraverse(measures, (node)=>{
|
|
903
|
-
if (node.children && node.children.length > 1) {
|
|
904
|
-
found = true;
|
|
905
|
-
return true;
|
|
906
|
-
}
|
|
907
|
-
return false;
|
|
908
|
-
});
|
|
909
|
-
return found;
|
|
910
|
-
};
|
|
879
|
+
const hasMultipleMeasureInSingleView = (reshapeMeasures)=>reshapeMeasures.some((m)=>m.length > 1);
|
|
880
|
+
const flatReshapeMeasures = (reshapeMeasures)=>reshapeMeasures.flat();
|
|
911
881
|
const defaultDimensions = (advancedVSeed, context)=>{
|
|
912
882
|
const result = {
|
|
913
883
|
...advancedVSeed
|
|
@@ -922,10 +892,10 @@
|
|
|
922
892
|
});
|
|
923
893
|
return {
|
|
924
894
|
...advancedVSeed,
|
|
925
|
-
|
|
895
|
+
dimensionTree: clonedDimensions
|
|
926
896
|
};
|
|
927
897
|
}
|
|
928
|
-
const measures = findAllMeasures(advancedVSeed.
|
|
898
|
+
const measures = findAllMeasures(advancedVSeed.measureTree);
|
|
929
899
|
const top100dataset = dataset.slice(0, 100);
|
|
930
900
|
const sample = top100dataset.reduce((prev, cur)=>({
|
|
931
901
|
...prev,
|
|
@@ -941,7 +911,7 @@
|
|
|
941
911
|
}));
|
|
942
912
|
return {
|
|
943
913
|
...result,
|
|
944
|
-
|
|
914
|
+
dimensionTree: newDimensions
|
|
945
915
|
};
|
|
946
916
|
};
|
|
947
917
|
function chunk_2T7K3PFL_i(...e) {
|
|
@@ -1129,7 +1099,7 @@
|
|
|
1129
1099
|
};
|
|
1130
1100
|
const dimensionTreeToColumns = (spec, context)=>{
|
|
1131
1101
|
const { advancedVSeed } = context;
|
|
1132
|
-
const
|
|
1102
|
+
const dimensionTree = advancedVSeed.dimensionTree;
|
|
1133
1103
|
const result = {
|
|
1134
1104
|
...spec
|
|
1135
1105
|
};
|
|
@@ -1139,7 +1109,7 @@
|
|
|
1139
1109
|
};
|
|
1140
1110
|
return {};
|
|
1141
1111
|
};
|
|
1142
|
-
const columns = treeTreeToColumns(
|
|
1112
|
+
const columns = treeTreeToColumns(dimensionTree, eachNode);
|
|
1143
1113
|
return {
|
|
1144
1114
|
...result,
|
|
1145
1115
|
columns: [
|
|
@@ -1249,7 +1219,7 @@
|
|
|
1249
1219
|
};
|
|
1250
1220
|
const measureTreeToColumns = (spec, context)=>{
|
|
1251
1221
|
const { advancedVSeed } = context;
|
|
1252
|
-
const
|
|
1222
|
+
const measureTree = advancedVSeed.measureTree;
|
|
1253
1223
|
const result = {
|
|
1254
1224
|
...spec
|
|
1255
1225
|
};
|
|
@@ -1260,7 +1230,7 @@
|
|
|
1260
1230
|
};
|
|
1261
1231
|
return {};
|
|
1262
1232
|
};
|
|
1263
|
-
const columns = measuresToColumns_treeTreeToColumns(
|
|
1233
|
+
const columns = measuresToColumns_treeTreeToColumns(measureTree, eachNode);
|
|
1264
1234
|
return {
|
|
1265
1235
|
...result,
|
|
1266
1236
|
columns: [
|
|
@@ -1692,8 +1662,8 @@
|
|
|
1692
1662
|
const result = {
|
|
1693
1663
|
...advancedVSeed
|
|
1694
1664
|
};
|
|
1695
|
-
const measures = findAllMeasures(advancedVSeed.
|
|
1696
|
-
if (measures.length > 1 && !
|
|
1665
|
+
const measures = findAllMeasures(advancedVSeed.measureTree);
|
|
1666
|
+
if (measures.length > 1 && !findTreeNodesBy(advancedVSeed.dimensionTree, (dim)=>dim.id === MeasureId || dim.id === MeasureName).length) result.dimensionTree.push({
|
|
1697
1667
|
id: MeasureId,
|
|
1698
1668
|
alias: intl.i18n`指标名称`,
|
|
1699
1669
|
encoding: 'row'
|
|
@@ -1701,13 +1671,13 @@
|
|
|
1701
1671
|
return result;
|
|
1702
1672
|
};
|
|
1703
1673
|
const encodingForPivotTable = (advancedVSeed)=>{
|
|
1704
|
-
const {
|
|
1705
|
-
const measures = findAllMeasures(
|
|
1706
|
-
const hasDimensionEncoding =
|
|
1674
|
+
const { measureTree = [], dimensionTree = [] } = advancedVSeed;
|
|
1675
|
+
const measures = findAllMeasures(measureTree);
|
|
1676
|
+
const hasDimensionEncoding = dimensionTree.some((item)=>item.encoding);
|
|
1707
1677
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
1708
1678
|
const encoding = {};
|
|
1709
|
-
if (hasDimensionEncoding) generateDimensionEncoding(
|
|
1710
|
-
else generateDefaultDimensionEncoding(
|
|
1679
|
+
if (hasDimensionEncoding) generateDimensionEncoding(dimensionTree, encoding);
|
|
1680
|
+
else generateDefaultDimensionEncoding(dimensionTree, encoding);
|
|
1711
1681
|
if (hasMeasureEncoding) generateMeasureEncoding(measures, encoding);
|
|
1712
1682
|
else generateDefaultMeasureEncoding(measures, encoding);
|
|
1713
1683
|
return {
|
|
@@ -1810,8 +1780,8 @@
|
|
|
1810
1780
|
};
|
|
1811
1781
|
const { vseed } = context;
|
|
1812
1782
|
const { dataset, chartType } = vseed;
|
|
1813
|
-
const {
|
|
1814
|
-
const { dataset: newDatasets, foldInfo } = foldMeasures(dataset, findAllMeasures(
|
|
1783
|
+
const { measureTree } = advancedVSeed;
|
|
1784
|
+
const { dataset: newDatasets, foldInfo } = foldMeasures(dataset, findAllMeasures(measureTree), {
|
|
1815
1785
|
measureId: FoldMeasureId,
|
|
1816
1786
|
measureName: FoldMeasureName,
|
|
1817
1787
|
measureValue: FoldMeasureValue,
|
|
@@ -1827,9 +1797,7 @@
|
|
|
1827
1797
|
return {
|
|
1828
1798
|
...result,
|
|
1829
1799
|
dataset: newDatasets,
|
|
1830
|
-
datasetReshapeInfo: datasetReshapeInfo
|
|
1831
|
-
dimensions,
|
|
1832
|
-
measures
|
|
1800
|
+
datasetReshapeInfo: datasetReshapeInfo
|
|
1833
1801
|
};
|
|
1834
1802
|
};
|
|
1835
1803
|
const pivotTableConfig = (advancedVSeed, context)=>{
|
|
@@ -1915,7 +1883,7 @@
|
|
|
1915
1883
|
const pivotColumns = (spec, context)=>{
|
|
1916
1884
|
const { advancedVSeed } = context;
|
|
1917
1885
|
const { encoding } = advancedVSeed;
|
|
1918
|
-
const dimensions = advancedVSeed.
|
|
1886
|
+
const dimensions = advancedVSeed.dimensionTree;
|
|
1919
1887
|
const columns = dimensions.filter((item)=>encoding.column?.includes(item.id));
|
|
1920
1888
|
return {
|
|
1921
1889
|
...spec,
|
|
@@ -1928,10 +1896,10 @@
|
|
|
1928
1896
|
};
|
|
1929
1897
|
const pivotRows = (spec, context)=>{
|
|
1930
1898
|
const { advancedVSeed } = context;
|
|
1931
|
-
const dimensions = advancedVSeed.
|
|
1932
|
-
const { encoding
|
|
1899
|
+
const dimensions = advancedVSeed.dimensionTree;
|
|
1900
|
+
const { encoding } = advancedVSeed;
|
|
1933
1901
|
const rows = dimensions.filter((item)=>encoding.row?.includes(item.id));
|
|
1934
|
-
const allMeasures = findAllMeasures(
|
|
1902
|
+
const allMeasures = findAllMeasures(advancedVSeed.measureTree);
|
|
1935
1903
|
return {
|
|
1936
1904
|
...spec,
|
|
1937
1905
|
rows: rows.map((item)=>{
|
|
@@ -1959,7 +1927,7 @@
|
|
|
1959
1927
|
};
|
|
1960
1928
|
const pivotIndicators = (spec, context)=>{
|
|
1961
1929
|
const { advancedVSeed } = context;
|
|
1962
|
-
const {
|
|
1930
|
+
const { measureTree, datasetReshapeInfo } = advancedVSeed;
|
|
1963
1931
|
const { foldInfo } = datasetReshapeInfo[0];
|
|
1964
1932
|
const hasRow = spec?.rows?.length > 0;
|
|
1965
1933
|
const foldMapValues = Object.values(foldInfo.foldMap);
|
|
@@ -1974,18 +1942,18 @@
|
|
|
1974
1942
|
indicatorKey: foldInfo.measureValue,
|
|
1975
1943
|
title: foldMapValues.length > 1 ? '' : foldMapValues[0],
|
|
1976
1944
|
width: 'auto',
|
|
1977
|
-
format: pivotIndicators_fieldFormat(
|
|
1945
|
+
format: pivotIndicators_fieldFormat(measureTree, foldInfo)
|
|
1978
1946
|
}
|
|
1979
1947
|
]
|
|
1980
1948
|
};
|
|
1981
1949
|
};
|
|
1982
|
-
const pivotIndicators_fieldFormat = (
|
|
1950
|
+
const pivotIndicators_fieldFormat = (measureTree, foldInfo)=>(value, col, row, table)=>{
|
|
1983
1951
|
if (!chunk_6GTAPB47_e(col) || !chunk_6GTAPB47_e(row) || !table) return value;
|
|
1984
1952
|
const datum = table.getCellOriginRecord(col, row);
|
|
1985
1953
|
if (!datum[0]) return value;
|
|
1986
1954
|
const { measureId: foldMeasureId } = foldInfo;
|
|
1987
1955
|
const measureId = datum[0][foldMeasureId];
|
|
1988
|
-
const measure = findMeasureById(
|
|
1956
|
+
const measure = findMeasureById(measureTree, measureId);
|
|
1989
1957
|
const formatter = createFormatterByMeasure(measure);
|
|
1990
1958
|
return formatter(value);
|
|
1991
1959
|
};
|
|
@@ -2143,7 +2111,7 @@
|
|
|
2143
2111
|
};
|
|
2144
2112
|
const dataConfig = (spec, context)=>{
|
|
2145
2113
|
const { advancedVSeed } = context;
|
|
2146
|
-
const measures = findAllMeasures(advancedVSeed.
|
|
2114
|
+
const measures = findAllMeasures(advancedVSeed.measureTree);
|
|
2147
2115
|
const aggregationRules = measures.map((measure)=>({
|
|
2148
2116
|
field: measure.id,
|
|
2149
2117
|
aggregationType: 'NONE',
|
|
@@ -2190,9 +2158,8 @@
|
|
|
2190
2158
|
const { measures, dataset } = vseed;
|
|
2191
2159
|
if (measures && measures.length > 0) {
|
|
2192
2160
|
const clonedMeasures = chunk_BCBB46UE_d(measures);
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
return false;
|
|
2161
|
+
clonedMeasures.forEach((m)=>{
|
|
2162
|
+
m.alias = m.alias ?? m.id;
|
|
2196
2163
|
});
|
|
2197
2164
|
return {
|
|
2198
2165
|
...advancedVSeed,
|
|
@@ -2230,7 +2197,7 @@
|
|
|
2230
2197
|
alias: dim.alias || dim.id
|
|
2231
2198
|
})))
|
|
2232
2199
|
};
|
|
2233
|
-
const measures =
|
|
2200
|
+
const measures = advancedVSeed.measures;
|
|
2234
2201
|
const top100dataset = dataset.slice(0, 100);
|
|
2235
2202
|
const sample = top100dataset.reduce((prev, cur)=>({
|
|
2236
2203
|
...prev,
|
|
@@ -2268,54 +2235,25 @@
|
|
|
2268
2235
|
if (hasEncoding) return execPipeline(hasEncodingPipeline, context, advancedVSeed);
|
|
2269
2236
|
return execPipeline(noEncodingPipeline, context, advancedVSeed);
|
|
2270
2237
|
};
|
|
2271
|
-
const buildMeasures = (advancedVSeed)=>{
|
|
2272
|
-
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
const parent = measureTree.find((item)=>item.id === measure.parentId);
|
|
2287
|
-
if (parent && 'children' in parent) {
|
|
2288
|
-
parent.children = parent.children || [];
|
|
2289
|
-
if (parent.children.length > 0) parent.alias += `-${measure.alias ?? measure.id}`;
|
|
2290
|
-
parent.children.push(measure);
|
|
2291
|
-
} else if (common_isValid(measure.parentId)) measureTree.push({
|
|
2292
|
-
id: measure.parentId,
|
|
2293
|
-
alias: measure.alias ?? measure.id,
|
|
2294
|
-
children: [
|
|
2295
|
-
measure
|
|
2296
|
-
]
|
|
2297
|
-
});
|
|
2298
|
-
else measureTree.push({
|
|
2299
|
-
id: DEFAULT_PARENT_ID,
|
|
2300
|
-
alias: measure.alias ?? measure.id,
|
|
2301
|
-
children: [
|
|
2302
|
-
measure
|
|
2303
|
-
]
|
|
2304
|
-
});
|
|
2305
|
-
});
|
|
2306
|
-
return measureTree;
|
|
2307
|
-
};
|
|
2308
|
-
const basicMeasuresToMeasureTree = (measures)=>{
|
|
2309
|
-
const id = measures.map((item)=>item.id).join('-');
|
|
2310
|
-
const alias = measures.map((item)=>item.alias || item.id).join('-');
|
|
2311
|
-
return [
|
|
2312
|
-
{
|
|
2313
|
-
id,
|
|
2314
|
-
alias,
|
|
2315
|
-
children: measures
|
|
2238
|
+
const buildMeasures = (encodingKeys)=>(advancedVSeed)=>{
|
|
2239
|
+
const { measures = [] } = advancedVSeed;
|
|
2240
|
+
const measuresByView = {};
|
|
2241
|
+
const parentIds = [];
|
|
2242
|
+
for(let index = 0; index < measures.length; index++){
|
|
2243
|
+
const item = measures[index];
|
|
2244
|
+
const encoding = item.encoding;
|
|
2245
|
+
const parentId = item.parentId || DEFAULT_PARENT_ID;
|
|
2246
|
+
const isOtherEncoding = item.encoding && isCommonMeasureEncoding(encoding);
|
|
2247
|
+
ensureParentIdInitialized(parentId, measuresByView, parentIds);
|
|
2248
|
+
if (encodingKeys.includes(encoding)) measuresByView[parentId].push(item);
|
|
2249
|
+
else if (!isOtherEncoding) {
|
|
2250
|
+
item.encoding = encodingKeys[0];
|
|
2251
|
+
measuresByView[parentId].push(item);
|
|
2252
|
+
}
|
|
2316
2253
|
}
|
|
2317
|
-
|
|
2318
|
-
|
|
2254
|
+
advancedVSeed.reshapeMeasures = parentIds.map((pid)=>measuresByView[pid]).filter((m)=>m.length > 0);
|
|
2255
|
+
return advancedVSeed;
|
|
2256
|
+
};
|
|
2319
2257
|
const addColorToEncoding = (dimensions, encoding, isMultiMeasure)=>{
|
|
2320
2258
|
encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
|
2321
2259
|
const measureId = dimensions.find((item)=>item.id === MeasureId);
|
|
@@ -2333,27 +2271,23 @@
|
|
|
2333
2271
|
];
|
|
2334
2272
|
};
|
|
2335
2273
|
const defaultEncodingForLine = (advancedVSeed)=>{
|
|
2336
|
-
const { measures
|
|
2337
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
2274
|
+
const { reshapeMeasures = [], measures = [], dimensions = [] } = advancedVSeed;
|
|
2338
2275
|
const encoding = {};
|
|
2339
|
-
line_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(
|
|
2340
|
-
|
|
2276
|
+
line_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
|
|
2277
|
+
line_generateMeasureEncoding(measures, encoding);
|
|
2341
2278
|
return {
|
|
2342
2279
|
...advancedVSeed,
|
|
2343
2280
|
encoding
|
|
2344
2281
|
};
|
|
2345
2282
|
};
|
|
2346
2283
|
const encodingForLine = (advancedVSeed)=>{
|
|
2347
|
-
const { measures
|
|
2348
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
2284
|
+
const { reshapeMeasures = [], measures = [], dimensions = [] } = advancedVSeed;
|
|
2349
2285
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
2350
|
-
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
2351
2286
|
const encoding = {};
|
|
2352
|
-
const hasMulti = hasMultipleMeasureInSingleView(
|
|
2287
|
+
const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures);
|
|
2353
2288
|
if (hasDimensionEncoding) line_generateDimensionEncoding(dimensions, encoding, hasMulti);
|
|
2354
2289
|
else line_generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
|
|
2355
|
-
|
|
2356
|
-
else line_generateDefaultMeasureEncoding(measures, encoding);
|
|
2290
|
+
line_generateMeasureEncoding(measures, encoding);
|
|
2357
2291
|
return {
|
|
2358
2292
|
...advancedVSeed,
|
|
2359
2293
|
encoding
|
|
@@ -2384,9 +2318,6 @@
|
|
|
2384
2318
|
encoding.label = chunk_QJLMYOTX_i(dimensions.filter((item)=>'label' === item.encoding).map((item)=>item.id));
|
|
2385
2319
|
encoding.label = encoding.label.filter((d)=>d !== MeasureId);
|
|
2386
2320
|
};
|
|
2387
|
-
const line_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
|
2388
|
-
encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
|
2389
|
-
};
|
|
2390
2321
|
const line_generateMeasureEncoding = (measures, encoding)=>{
|
|
2391
2322
|
encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
|
2392
2323
|
const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
|
@@ -2403,95 +2334,12 @@
|
|
|
2403
2334
|
...tooltip
|
|
2404
2335
|
]);
|
|
2405
2336
|
};
|
|
2406
|
-
const deleteMeasureTreeByCallback = (measureTree, callback)=>{
|
|
2407
|
-
if (!measureTree) return;
|
|
2408
|
-
const stack = [
|
|
2409
|
-
...measureTree
|
|
2410
|
-
].reverse();
|
|
2411
|
-
const parents = new Map();
|
|
2412
|
-
measureTree.forEach((node)=>{
|
|
2413
|
-
parents.set(node, measureTree);
|
|
2414
|
-
});
|
|
2415
|
-
const nodesToProcess = [];
|
|
2416
|
-
const visited = new Set();
|
|
2417
|
-
while(stack.length > 0){
|
|
2418
|
-
const node = stack[stack.length - 1];
|
|
2419
|
-
if (isMeasureGroup(node) && node.children && !visited.has(node)) {
|
|
2420
|
-
visited.add(node);
|
|
2421
|
-
const children = node.children.slice().reverse();
|
|
2422
|
-
for (const child of children){
|
|
2423
|
-
parents.set(child, node.children);
|
|
2424
|
-
stack.push(child);
|
|
2425
|
-
}
|
|
2426
|
-
} else {
|
|
2427
|
-
stack.pop();
|
|
2428
|
-
nodesToProcess.push(node);
|
|
2429
|
-
}
|
|
2430
|
-
}
|
|
2431
|
-
const deleted = [];
|
|
2432
|
-
for (const node of nodesToProcess){
|
|
2433
|
-
const parentList = parents.get(node);
|
|
2434
|
-
if (parentList) {
|
|
2435
|
-
const index = parentList.indexOf(node);
|
|
2436
|
-
if (isMeasure(node)) {
|
|
2437
|
-
if (callback?.(node, index, parentList)) {
|
|
2438
|
-
parentList.splice(index, 1);
|
|
2439
|
-
deleted.push(node);
|
|
2440
|
-
}
|
|
2441
|
-
}
|
|
2442
|
-
}
|
|
2443
|
-
}
|
|
2444
|
-
return deleted;
|
|
2445
|
-
};
|
|
2446
|
-
const pickMeasuresForReshape = (encodingKeys)=>(advancedVSeed)=>{
|
|
2447
|
-
const clonedMeasures = chunk_BCBB46UE_d(advancedVSeed.measures);
|
|
2448
|
-
const deleteBy = (measure)=>encodingKeys.includes(measure.encoding);
|
|
2449
|
-
deleteMeasureTreeByCallback(clonedMeasures, deleteBy);
|
|
2450
|
-
return {
|
|
2451
|
-
...advancedVSeed,
|
|
2452
|
-
reshapeMeasures: clonedMeasures
|
|
2453
|
-
};
|
|
2454
|
-
};
|
|
2455
|
-
const deleteDimensionTreeByCallback = (dimensionTree, callback)=>{
|
|
2456
|
-
if (!dimensionTree) return dimensionTree;
|
|
2457
|
-
const stack = [
|
|
2458
|
-
...dimensionTree
|
|
2459
|
-
].reverse();
|
|
2460
|
-
const parents = new Map();
|
|
2461
|
-
dimensionTree.forEach((node)=>{
|
|
2462
|
-
parents.set(node, dimensionTree);
|
|
2463
|
-
});
|
|
2464
|
-
const nodesToProcess = [];
|
|
2465
|
-
const visited = new Set();
|
|
2466
|
-
while(stack.length > 0){
|
|
2467
|
-
const node = stack[stack.length - 1];
|
|
2468
|
-
if (isDimensionGroup(node) && node.children && !visited.has(node)) {
|
|
2469
|
-
visited.add(node);
|
|
2470
|
-
const children = node.children.slice().reverse();
|
|
2471
|
-
for (const child of children){
|
|
2472
|
-
parents.set(child, node.children);
|
|
2473
|
-
stack.push(child);
|
|
2474
|
-
}
|
|
2475
|
-
} else {
|
|
2476
|
-
stack.pop();
|
|
2477
|
-
nodesToProcess.push(node);
|
|
2478
|
-
}
|
|
2479
|
-
}
|
|
2480
|
-
for (const node of nodesToProcess){
|
|
2481
|
-
const parentList = parents.get(node);
|
|
2482
|
-
if (parentList) {
|
|
2483
|
-
const index = parentList.indexOf(node);
|
|
2484
|
-
if (isDimension(node)) {
|
|
2485
|
-
if (callback?.(node, index, parentList)) parentList.splice(index, 1);
|
|
2486
|
-
}
|
|
2487
|
-
}
|
|
2488
|
-
}
|
|
2489
|
-
return dimensionTree;
|
|
2490
|
-
};
|
|
2491
2337
|
const pickDimensionsForReshape = (advancedVSeed)=>{
|
|
2492
2338
|
const deleteBy = (dimension)=>'tooltip' === dimension.encoding || 'label' === dimension.encoding;
|
|
2493
|
-
const reshapeDimensions =
|
|
2494
|
-
|
|
2339
|
+
const reshapeDimensions = [];
|
|
2340
|
+
(advancedVSeed.dimensions ?? []).forEach((d)=>{
|
|
2341
|
+
if (!deleteBy(d)) reshapeDimensions.push(d);
|
|
2342
|
+
});
|
|
2495
2343
|
return {
|
|
2496
2344
|
...advancedVSeed,
|
|
2497
2345
|
reshapeDimensions
|
|
@@ -2599,8 +2447,7 @@
|
|
|
2599
2447
|
}
|
|
2600
2448
|
const isLinearColor = (advancedVSeed, vseed)=>{
|
|
2601
2449
|
const { encoding } = advancedVSeed;
|
|
2602
|
-
const
|
|
2603
|
-
const measureIdList = findAllMeasures(measures).map((measure)=>measure.id);
|
|
2450
|
+
const measureIdList = (vseed.measures || advancedVSeed.measures).map((measure)=>measure.id);
|
|
2604
2451
|
const { color } = encoding;
|
|
2605
2452
|
return color?.length === 1 && measureIdList.includes(color[0]);
|
|
2606
2453
|
};
|
|
@@ -2619,7 +2466,7 @@
|
|
|
2619
2466
|
const { dataset, chartType } = vseed;
|
|
2620
2467
|
const { encoding } = advancedVSeed;
|
|
2621
2468
|
const colorMeasureId = getColorMeasureId(advancedVSeed, vseed);
|
|
2622
|
-
const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, T(advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [], (item)=>item.id), T(
|
|
2469
|
+
const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, T(advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [], (item)=>item.id), T(advancedVSeed.reshapeMeasures?.[0] ?? [], (item)=>item.id), encoding, {
|
|
2623
2470
|
colorItemAsId: false,
|
|
2624
2471
|
colorMeasureId
|
|
2625
2472
|
});
|
|
@@ -2643,24 +2490,19 @@
|
|
|
2643
2490
|
const { vseed } = context;
|
|
2644
2491
|
const { dataset } = vseed;
|
|
2645
2492
|
const { encoding } = advancedVSeed;
|
|
2646
|
-
const
|
|
2493
|
+
const reshapeMeasures = advancedVSeed.reshapeMeasures ?? [];
|
|
2647
2494
|
const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
|
|
2648
|
-
const
|
|
2649
|
-
const measureGroups = [];
|
|
2650
|
-
if (measures) measures.forEach((measure)=>{
|
|
2651
|
-
if (measure.children && measure.children.length > 0) measureGroups.push(measure);
|
|
2652
|
-
});
|
|
2495
|
+
const allMeasuresIds = reshapeMeasures.flatMap((measureGroup)=>measureGroup.map((m)=>m.id));
|
|
2653
2496
|
const datasets = [];
|
|
2654
2497
|
const datasetReshapeInfo = [];
|
|
2655
|
-
|
|
2656
|
-
const measures = measureGroup.children;
|
|
2498
|
+
reshapeMeasures.forEach((measures, index)=>{
|
|
2657
2499
|
if (!measures) return;
|
|
2658
|
-
const groupId =
|
|
2500
|
+
const groupId = measures[0].parentId ?? DEFAULT_PARENT_ID;
|
|
2659
2501
|
const { dataset: newSubDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, T(dimensions, (item)=>item.id), T(measures, (item)=>item.id), encoding, {
|
|
2660
2502
|
colorItemAsId: false,
|
|
2661
2503
|
foldMeasureValue: `${FoldMeasureValue}${groupId}`,
|
|
2662
2504
|
colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
|
|
2663
|
-
omitIds:
|
|
2505
|
+
omitIds: allMeasuresIds
|
|
2664
2506
|
});
|
|
2665
2507
|
const reshapeInfo = {
|
|
2666
2508
|
id: `${groupId}`,
|
|
@@ -2804,16 +2646,17 @@
|
|
|
2804
2646
|
defaultDimensions_defaultDimensions,
|
|
2805
2647
|
defaultMeasureId_defaultMeasureId,
|
|
2806
2648
|
encodingAdapter([
|
|
2807
|
-
buildMeasures
|
|
2649
|
+
buildMeasures([
|
|
2650
|
+
'yAxis',
|
|
2651
|
+
'detail'
|
|
2652
|
+
]),
|
|
2808
2653
|
defaultEncodingForLine
|
|
2809
2654
|
], [
|
|
2810
|
-
buildMeasures
|
|
2811
|
-
|
|
2812
|
-
|
|
2813
|
-
'tooltip',
|
|
2814
|
-
'label',
|
|
2815
|
-
'color'
|
|
2655
|
+
buildMeasures([
|
|
2656
|
+
'yAxis',
|
|
2657
|
+
'detail'
|
|
2816
2658
|
]),
|
|
2659
|
+
encodingForLine,
|
|
2817
2660
|
pickDimensionsForReshape
|
|
2818
2661
|
]),
|
|
2819
2662
|
pivotAdapter([
|
|
@@ -2992,16 +2835,13 @@
|
|
|
2992
2835
|
result.progressiveThreshold = 1 / 0;
|
|
2993
2836
|
return result;
|
|
2994
2837
|
};
|
|
2995
|
-
const defaultTitleText = (measures, dimensions, idList = [])=>{
|
|
2996
|
-
const allMeasures = findAllMeasures(measures);
|
|
2997
|
-
return idList.map((id)=>{
|
|
2838
|
+
const defaultTitleText = (measures, dimensions, idList = [])=>idList.map((id)=>{
|
|
2998
2839
|
const alias = [
|
|
2999
|
-
...
|
|
2840
|
+
...measures,
|
|
3000
2841
|
...dimensions
|
|
3001
2842
|
].find((f)=>f.id === id)?.alias || '';
|
|
3002
2843
|
return alias;
|
|
3003
2844
|
}).join(' & ');
|
|
3004
|
-
};
|
|
3005
2845
|
const isNull = (value)=>null === value;
|
|
3006
2846
|
const common_isNull = isNull;
|
|
3007
2847
|
const bandAxisStyle = (config)=>{
|
|
@@ -3071,7 +2911,7 @@
|
|
|
3071
2911
|
};
|
|
3072
2912
|
const { advancedVSeed, vseed } = context;
|
|
3073
2913
|
const { chartType } = vseed;
|
|
3074
|
-
const { measures, dimensions, encoding, datasetReshapeInfo, pivotAllDatasetReshapeInfo } = advancedVSeed;
|
|
2914
|
+
const { measures = [], dimensions = [], encoding, datasetReshapeInfo, pivotAllDatasetReshapeInfo } = advancedVSeed;
|
|
3075
2915
|
const config = advancedVSeed.config?.[chartType]?.xAxis ?? {};
|
|
3076
2916
|
if (!result.axes) result.axes = [];
|
|
3077
2917
|
const { labelAutoLimitLength = 80 } = config;
|
|
@@ -3194,7 +3034,7 @@
|
|
|
3194
3034
|
};
|
|
3195
3035
|
const { advancedVSeed, vseed } = context;
|
|
3196
3036
|
const { chartType } = vseed;
|
|
3197
|
-
const { measures, dimensions, encoding } = advancedVSeed;
|
|
3037
|
+
const { measures = [], dimensions = [], encoding } = advancedVSeed;
|
|
3198
3038
|
const config = advancedVSeed.config?.[chartType]?.yAxis ?? {};
|
|
3199
3039
|
if (!result.axes) result.axes = [];
|
|
3200
3040
|
const isPivot = chatType_isPivotChart(vseed);
|
|
@@ -3745,9 +3585,11 @@
|
|
|
3745
3585
|
const measure = findMeasureById(advancedVSeedMeasures, datum[measureId]);
|
|
3746
3586
|
if (measure) {
|
|
3747
3587
|
const measureValueLabel = generateMeasureValue(datum[measureValue], measure, autoFormat, numFormat);
|
|
3748
|
-
const measurePercentLabel = chunk_6GTAPB47_e(datum['__VCHART_ARC_RATIO']) ? generateMeasurePercent(datum['__VCHART_ARC_RATIO'], 1, percentFormatter) : generateMeasurePercent(datum[measureValue], statistics.sum, percentFormatter);
|
|
3749
3588
|
if (showValue) result.push(measureValueLabel);
|
|
3750
|
-
if (showValuePercent)
|
|
3589
|
+
if (showValuePercent) {
|
|
3590
|
+
if (chunk_6GTAPB47_e(datum['__VCHART_ARC_RATIO'])) result.push(generateMeasurePercent(datum['__VCHART_ARC_RATIO'], 1, percentFormatter));
|
|
3591
|
+
else if (statistics && chunk_6GTAPB47_e(statistics.sum)) result.push(generateMeasurePercent(datum[measureValue], statistics.sum, percentFormatter));
|
|
3592
|
+
}
|
|
3751
3593
|
}
|
|
3752
3594
|
});
|
|
3753
3595
|
result.push(...meaLabels);
|
|
@@ -3858,7 +3700,7 @@
|
|
|
3858
3700
|
...spec
|
|
3859
3701
|
};
|
|
3860
3702
|
const { advancedVSeed, vseed } = context;
|
|
3861
|
-
const { measures, datasetReshapeInfo, chartType, dimensions, encoding } = advancedVSeed;
|
|
3703
|
+
const { measures = [], datasetReshapeInfo, chartType, dimensions = [], encoding } = advancedVSeed;
|
|
3862
3704
|
const baseConfig = advancedVSeed.config[chartType];
|
|
3863
3705
|
const { tooltip = {
|
|
3864
3706
|
enable: true
|
|
@@ -3872,7 +3714,7 @@
|
|
|
3872
3714
|
title: {
|
|
3873
3715
|
visible: false
|
|
3874
3716
|
},
|
|
3875
|
-
content: createMarkContent(encoding.tooltip || [], dimensions,
|
|
3717
|
+
content: createMarkContent(encoding.tooltip || [], dimensions, vseed.measures, foldInfo, unfoldInfo)
|
|
3876
3718
|
},
|
|
3877
3719
|
dimension: {
|
|
3878
3720
|
title: {
|
|
@@ -3884,7 +3726,7 @@
|
|
|
3884
3726
|
};
|
|
3885
3727
|
return result;
|
|
3886
3728
|
};
|
|
3887
|
-
const createDimensionContent = (dimensions, measures, foldInfo, unfoldInfo)=>{
|
|
3729
|
+
const createDimensionContent = (dimensions = [], measures = [], foldInfo, unfoldInfo)=>{
|
|
3888
3730
|
const { measureId, measureValue, foldMap } = foldInfo;
|
|
3889
3731
|
const { encodingColor } = unfoldInfo;
|
|
3890
3732
|
return [
|
|
@@ -3913,7 +3755,7 @@
|
|
|
3913
3755
|
}
|
|
3914
3756
|
];
|
|
3915
3757
|
};
|
|
3916
|
-
const createMarkContent = (tooltip, dimensions, measures, foldInfo, unfoldInfo)=>{
|
|
3758
|
+
const createMarkContent = (tooltip, dimensions = [], measures = [], foldInfo, unfoldInfo)=>{
|
|
3917
3759
|
const dims = C(dimensions.filter((item)=>tooltip.includes(item.id)), T((item)=>item.id), T((item)=>item.alias));
|
|
3918
3760
|
const meas = C(measures.filter((item)=>tooltip.includes(item.id)), T((item)=>item.id), T((item)=>item.alias));
|
|
3919
3761
|
const dimContent = dims.map((item)=>({
|
|
@@ -5274,12 +5116,12 @@
|
|
|
5274
5116
|
...spec
|
|
5275
5117
|
};
|
|
5276
5118
|
const { advancedVSeed } = context;
|
|
5277
|
-
const {
|
|
5119
|
+
const { datasetReshapeInfo, dataset, encoding, reshapeMeasures = [] } = advancedVSeed;
|
|
5278
5120
|
const colorItems = chunk_QJLMYOTX_i(datasetReshapeInfo.flatMap((d)=>d.unfoldInfo.colorItems));
|
|
5279
5121
|
const allMeasureIds = chunk_QJLMYOTX_i(datasetReshapeInfo.flatMap((d)=>Object.keys(d.foldInfo.foldMap || {})));
|
|
5280
5122
|
const indicators = datasetReshapeInfo.map((reshapeInfo, index)=>{
|
|
5281
|
-
const
|
|
5282
|
-
const subMeasuresId = (
|
|
5123
|
+
const subMeasures = reshapeMeasures[index] || [];
|
|
5124
|
+
const subMeasuresId = (reshapeMeasures[index] || []).map((d)=>d.id);
|
|
5283
5125
|
const invalideMeasuresIds = allMeasureIds.filter((id)=>!subMeasuresId.includes(id));
|
|
5284
5126
|
const newDataset = dataset[index];
|
|
5285
5127
|
const newDatasetReshapeInfo = [
|
|
@@ -5307,7 +5149,7 @@
|
|
|
5307
5149
|
const chartSpec = execPipeline(chartPipeline, newContext, {});
|
|
5308
5150
|
return {
|
|
5309
5151
|
indicatorKey: `${reshapeInfo.id}`,
|
|
5310
|
-
title:
|
|
5152
|
+
title: isRectungularCoordinate(advancedVSeed.chartType) ? '' : subMeasures.map((m)=>m.alias ?? m.id).join('-'),
|
|
5311
5153
|
cellType: 'chart',
|
|
5312
5154
|
chartModule: 'vchart',
|
|
5313
5155
|
chartSpec: chartSpec,
|
|
@@ -5756,10 +5598,9 @@
|
|
|
5756
5598
|
Builder._specPipelineMap.line = lineSpecPipeline;
|
|
5757
5599
|
};
|
|
5758
5600
|
const defaultEncodingForColumn = (advancedVSeed)=>{
|
|
5759
|
-
const { measures
|
|
5760
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
5601
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
5761
5602
|
const encoding = {};
|
|
5762
|
-
column_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(
|
|
5603
|
+
column_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
|
|
5763
5604
|
column_generateDefaultMeasureEncoding(measures, encoding);
|
|
5764
5605
|
return {
|
|
5765
5606
|
...advancedVSeed,
|
|
@@ -5767,12 +5608,11 @@
|
|
|
5767
5608
|
};
|
|
5768
5609
|
};
|
|
5769
5610
|
const encodingForColumn = (advancedVSeed)=>{
|
|
5770
|
-
const { measures
|
|
5771
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
5611
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
5772
5612
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
5773
5613
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
5774
5614
|
const encoding = {};
|
|
5775
|
-
const hasMulti = hasMultipleMeasureInSingleView(
|
|
5615
|
+
const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures);
|
|
5776
5616
|
if (hasDimensionEncoding) column_generateDimensionEncoding(dimensions, encoding, hasMulti);
|
|
5777
5617
|
else column_generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
|
|
5778
5618
|
if (hasMeasureEncoding) column_generateMeasureEncoding(measures, encoding);
|
|
@@ -5891,16 +5731,17 @@
|
|
|
5891
5731
|
defaultDimensions_defaultDimensions,
|
|
5892
5732
|
defaultMeasureId_defaultMeasureId,
|
|
5893
5733
|
encodingAdapter([
|
|
5894
|
-
buildMeasures
|
|
5734
|
+
buildMeasures([
|
|
5735
|
+
'yAxis',
|
|
5736
|
+
'detail'
|
|
5737
|
+
]),
|
|
5895
5738
|
defaultEncodingForColumn
|
|
5896
5739
|
], [
|
|
5897
|
-
buildMeasures
|
|
5898
|
-
|
|
5899
|
-
|
|
5900
|
-
'tooltip',
|
|
5901
|
-
'label',
|
|
5902
|
-
'color'
|
|
5740
|
+
buildMeasures([
|
|
5741
|
+
'yAxis',
|
|
5742
|
+
'detail'
|
|
5903
5743
|
]),
|
|
5744
|
+
encodingForColumn,
|
|
5904
5745
|
pickDimensionsForReshape
|
|
5905
5746
|
]),
|
|
5906
5747
|
pivotAdapter([
|
|
@@ -6780,16 +6621,17 @@
|
|
|
6780
6621
|
defaultDimensions_defaultDimensions,
|
|
6781
6622
|
defaultMeasureId_defaultMeasureId,
|
|
6782
6623
|
encodingAdapter([
|
|
6783
|
-
buildMeasures
|
|
6624
|
+
buildMeasures([
|
|
6625
|
+
'yAxis',
|
|
6626
|
+
'detail'
|
|
6627
|
+
]),
|
|
6784
6628
|
defaultEncodingForColumn
|
|
6785
6629
|
], [
|
|
6786
|
-
buildMeasures
|
|
6787
|
-
|
|
6788
|
-
|
|
6789
|
-
'tooltip',
|
|
6790
|
-
'label',
|
|
6791
|
-
'color'
|
|
6630
|
+
buildMeasures([
|
|
6631
|
+
'yAxis',
|
|
6632
|
+
'detail'
|
|
6792
6633
|
]),
|
|
6634
|
+
encodingForColumn,
|
|
6793
6635
|
pickDimensionsForReshape
|
|
6794
6636
|
]),
|
|
6795
6637
|
pivotAdapter([
|
|
@@ -6946,16 +6788,17 @@
|
|
|
6946
6788
|
defaultDimensions_defaultDimensions,
|
|
6947
6789
|
defaultMeasureId_defaultMeasureId,
|
|
6948
6790
|
encodingAdapter([
|
|
6949
|
-
buildMeasures
|
|
6791
|
+
buildMeasures([
|
|
6792
|
+
'yAxis',
|
|
6793
|
+
'detail'
|
|
6794
|
+
]),
|
|
6950
6795
|
defaultEncodingForColumn
|
|
6951
6796
|
], [
|
|
6952
|
-
buildMeasures
|
|
6953
|
-
|
|
6954
|
-
|
|
6955
|
-
'tooltip',
|
|
6956
|
-
'label',
|
|
6957
|
-
'color'
|
|
6797
|
+
buildMeasures([
|
|
6798
|
+
'yAxis',
|
|
6799
|
+
'detail'
|
|
6958
6800
|
]),
|
|
6801
|
+
encodingForColumn,
|
|
6959
6802
|
pickDimensionsForReshape
|
|
6960
6803
|
]),
|
|
6961
6804
|
pivotAdapter([
|
|
@@ -7039,10 +6882,9 @@
|
|
|
7039
6882
|
Builder._specPipelineMap.columnPercent = columnPercentSpecPipeline;
|
|
7040
6883
|
};
|
|
7041
6884
|
const defaultEncodingForBar = (advancedVSeed)=>{
|
|
7042
|
-
const { measures
|
|
7043
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
6885
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
7044
6886
|
const encoding = {};
|
|
7045
|
-
bar_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(
|
|
6887
|
+
bar_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
|
|
7046
6888
|
bar_generateDefaultMeasureEncoding(measures, encoding);
|
|
7047
6889
|
return {
|
|
7048
6890
|
...advancedVSeed,
|
|
@@ -7050,12 +6892,11 @@
|
|
|
7050
6892
|
};
|
|
7051
6893
|
};
|
|
7052
6894
|
const encodingForBar = (advancedVSeed)=>{
|
|
7053
|
-
const { measures
|
|
7054
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
6895
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
7055
6896
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
7056
6897
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
7057
6898
|
const encoding = {};
|
|
7058
|
-
const hasMulti = hasMultipleMeasureInSingleView(
|
|
6899
|
+
const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures);
|
|
7059
6900
|
if (hasDimensionEncoding) bar_generateDimensionEncoding(dimensions, encoding, hasMulti);
|
|
7060
6901
|
else bar_generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
|
|
7061
6902
|
if (hasMeasureEncoding) bar_generateMeasureEncoding(measures, encoding);
|
|
@@ -7129,16 +6970,17 @@
|
|
|
7129
6970
|
defaultDimensions_defaultDimensions,
|
|
7130
6971
|
defaultMeasureId_defaultMeasureId,
|
|
7131
6972
|
encodingAdapter([
|
|
7132
|
-
buildMeasures
|
|
6973
|
+
buildMeasures([
|
|
6974
|
+
'xAxis',
|
|
6975
|
+
'detail'
|
|
6976
|
+
]),
|
|
7133
6977
|
defaultEncodingForBar
|
|
7134
6978
|
], [
|
|
7135
|
-
buildMeasures
|
|
7136
|
-
|
|
7137
|
-
|
|
7138
|
-
'tooltip',
|
|
7139
|
-
'label',
|
|
7140
|
-
'color'
|
|
6979
|
+
buildMeasures([
|
|
6980
|
+
'xAxis',
|
|
6981
|
+
'detail'
|
|
7141
6982
|
]),
|
|
6983
|
+
encodingForBar,
|
|
7142
6984
|
pickDimensionsForReshape
|
|
7143
6985
|
]),
|
|
7144
6986
|
pivotAdapter([
|
|
@@ -7223,7 +7065,7 @@
|
|
|
7223
7065
|
...spec
|
|
7224
7066
|
};
|
|
7225
7067
|
const { advancedVSeed, vseed } = context;
|
|
7226
|
-
const { encoding, dimensions, measures } = advancedVSeed;
|
|
7068
|
+
const { encoding, dimensions = [], measures = [] } = advancedVSeed;
|
|
7227
7069
|
const { chartType } = vseed;
|
|
7228
7070
|
const config = advancedVSeed.config?.[chartType]?.xAxis ?? {};
|
|
7229
7071
|
if (!result.axes) result.axes = [];
|
|
@@ -7257,7 +7099,7 @@
|
|
|
7257
7099
|
};
|
|
7258
7100
|
const { advancedVSeed, vseed } = context;
|
|
7259
7101
|
const { chartType } = vseed;
|
|
7260
|
-
const { measures, dimensions, encoding, datasetReshapeInfo, pivotAllDatasetReshapeInfo } = advancedVSeed;
|
|
7102
|
+
const { measures = [], dimensions = [], encoding, datasetReshapeInfo, pivotAllDatasetReshapeInfo } = advancedVSeed;
|
|
7261
7103
|
const config = advancedVSeed.config?.[chartType]?.yAxis ?? {};
|
|
7262
7104
|
if (!result.axes) result.axes = [];
|
|
7263
7105
|
const { labelAutoLimitLength = 80 } = config;
|
|
@@ -7396,16 +7238,17 @@
|
|
|
7396
7238
|
defaultDimensions_defaultDimensions,
|
|
7397
7239
|
defaultMeasureId_defaultMeasureId,
|
|
7398
7240
|
encodingAdapter([
|
|
7399
|
-
buildMeasures
|
|
7241
|
+
buildMeasures([
|
|
7242
|
+
'xAxis',
|
|
7243
|
+
'detail'
|
|
7244
|
+
]),
|
|
7400
7245
|
defaultEncodingForBar
|
|
7401
7246
|
], [
|
|
7402
|
-
buildMeasures
|
|
7403
|
-
|
|
7404
|
-
|
|
7405
|
-
'tooltip',
|
|
7406
|
-
'label',
|
|
7407
|
-
'color'
|
|
7247
|
+
buildMeasures([
|
|
7248
|
+
'xAxis',
|
|
7249
|
+
'detail'
|
|
7408
7250
|
]),
|
|
7251
|
+
encodingForBar,
|
|
7409
7252
|
pickDimensionsForReshape
|
|
7410
7253
|
]),
|
|
7411
7254
|
pivotAdapter([
|
|
@@ -7511,16 +7354,17 @@
|
|
|
7511
7354
|
defaultDimensions_defaultDimensions,
|
|
7512
7355
|
defaultMeasureId_defaultMeasureId,
|
|
7513
7356
|
encodingAdapter([
|
|
7514
|
-
buildMeasures
|
|
7357
|
+
buildMeasures([
|
|
7358
|
+
'xAxis',
|
|
7359
|
+
'detail'
|
|
7360
|
+
]),
|
|
7515
7361
|
defaultEncodingForBar
|
|
7516
7362
|
], [
|
|
7517
|
-
buildMeasures
|
|
7518
|
-
|
|
7519
|
-
|
|
7520
|
-
'tooltip',
|
|
7521
|
-
'label',
|
|
7522
|
-
'color'
|
|
7363
|
+
buildMeasures([
|
|
7364
|
+
'xAxis',
|
|
7365
|
+
'detail'
|
|
7523
7366
|
]),
|
|
7367
|
+
encodingForBar,
|
|
7524
7368
|
pickDimensionsForReshape
|
|
7525
7369
|
]),
|
|
7526
7370
|
pivotAdapter([
|
|
@@ -7599,16 +7443,17 @@
|
|
|
7599
7443
|
defaultDimensions_defaultDimensions,
|
|
7600
7444
|
defaultMeasureId_defaultMeasureId,
|
|
7601
7445
|
encodingAdapter([
|
|
7602
|
-
buildMeasures
|
|
7446
|
+
buildMeasures([
|
|
7447
|
+
'yAxis',
|
|
7448
|
+
'detail'
|
|
7449
|
+
]),
|
|
7603
7450
|
defaultEncodingForLine
|
|
7604
7451
|
], [
|
|
7605
|
-
buildMeasures
|
|
7606
|
-
|
|
7607
|
-
|
|
7608
|
-
'tooltip',
|
|
7609
|
-
'label',
|
|
7610
|
-
'color'
|
|
7452
|
+
buildMeasures([
|
|
7453
|
+
'yAxis',
|
|
7454
|
+
'detail'
|
|
7611
7455
|
]),
|
|
7456
|
+
encodingForLine,
|
|
7612
7457
|
pickDimensionsForReshape
|
|
7613
7458
|
]),
|
|
7614
7459
|
pivotAdapter([
|
|
@@ -7797,16 +7642,17 @@
|
|
|
7797
7642
|
defaultDimensions_defaultDimensions,
|
|
7798
7643
|
defaultMeasureId_defaultMeasureId,
|
|
7799
7644
|
encodingAdapter([
|
|
7800
|
-
buildMeasures
|
|
7645
|
+
buildMeasures([
|
|
7646
|
+
'yAxis',
|
|
7647
|
+
'detail'
|
|
7648
|
+
]),
|
|
7801
7649
|
defaultEncodingForLine
|
|
7802
7650
|
], [
|
|
7803
|
-
buildMeasures
|
|
7804
|
-
|
|
7805
|
-
|
|
7806
|
-
'tooltip',
|
|
7807
|
-
'label',
|
|
7808
|
-
'color'
|
|
7651
|
+
buildMeasures([
|
|
7652
|
+
'yAxis',
|
|
7653
|
+
'detail'
|
|
7809
7654
|
]),
|
|
7655
|
+
encodingForLine,
|
|
7810
7656
|
pickDimensionsForReshape
|
|
7811
7657
|
]),
|
|
7812
7658
|
pivotAdapter([
|
|
@@ -7884,130 +7730,44 @@
|
|
|
7884
7730
|
Builder._advancedPipelineMap.areaPercent = areaPercentAdvancedPipeline;
|
|
7885
7731
|
Builder._specPipelineMap.areaPercent = areaPercentSpecPipeline;
|
|
7886
7732
|
};
|
|
7887
|
-
const buildMeasuresForScatter = (advancedVSeed
|
|
7888
|
-
const {
|
|
7889
|
-
|
|
7890
|
-
|
|
7891
|
-
|
|
7892
|
-
|
|
7893
|
-
}
|
|
7894
|
-
if (vseed.scatterMeasures) {
|
|
7895
|
-
advancedVSeed.measures = scatterMeasuresToMeasureTree(chunk_BCBB46UE_d(vseed.scatterMeasures));
|
|
7896
|
-
return advancedVSeed;
|
|
7897
|
-
}
|
|
7898
|
-
const { scatterMeasures, encodedMeasures } = basicMeasuresToScatterMeasures(advancedVSeed.measures || []);
|
|
7899
|
-
advancedVSeed.measures = scatterMeasuresToMeasureTree(scatterMeasures);
|
|
7900
|
-
if (encodedMeasures.length) encodedMeasures.forEach((m)=>{
|
|
7901
|
-
advancedVSeed.measures.push(m);
|
|
7902
|
-
});
|
|
7903
|
-
return advancedVSeed;
|
|
7904
|
-
};
|
|
7905
|
-
const basicMeasuresToScatterMeasures = (basicMeasures)=>{
|
|
7906
|
-
const yMeasures = [];
|
|
7907
|
-
const xMeasures = [];
|
|
7908
|
-
const encodedMeasures = [];
|
|
7909
|
-
for(let index = 0; index < basicMeasures.length; index++){
|
|
7910
|
-
const item = basicMeasures[index];
|
|
7733
|
+
const buildMeasuresForScatter = (advancedVSeed)=>{
|
|
7734
|
+
const { measures = [] } = advancedVSeed;
|
|
7735
|
+
const measuresByView = {};
|
|
7736
|
+
const parentIds = [];
|
|
7737
|
+
for(let index = 0; index < measures.length; index++){
|
|
7738
|
+
const item = measures[index];
|
|
7911
7739
|
const encoding = item.encoding;
|
|
7740
|
+
const parentId = item.parentId || DEFAULT_PARENT_ID;
|
|
7912
7741
|
const isYAxis = 'yAxis' === encoding;
|
|
7913
7742
|
const isXAxis = 'xAxis' === encoding;
|
|
7914
|
-
const
|
|
7915
|
-
|
|
7916
|
-
|
|
7917
|
-
|
|
7918
|
-
|
|
7919
|
-
|
|
7920
|
-
|
|
7921
|
-
|
|
7922
|
-
else if (isOther) encodedMeasures.push(item);
|
|
7923
|
-
else if (0 !== index) yMeasures.push(item);
|
|
7924
|
-
else xMeasures.push(item);
|
|
7925
|
-
}
|
|
7926
|
-
if (0 === yMeasures.length && xMeasures.length > 0) yMeasures.push(xMeasures[0]);
|
|
7927
|
-
return {
|
|
7928
|
-
scatterMeasures: [
|
|
7929
|
-
{
|
|
7930
|
-
id: 'scatterMeasures',
|
|
7931
|
-
xMeasures,
|
|
7932
|
-
yMeasures
|
|
7933
|
-
}
|
|
7934
|
-
],
|
|
7935
|
-
encodedMeasures
|
|
7936
|
-
};
|
|
7937
|
-
};
|
|
7938
|
-
const scatterMeasuresToMeasureTree = (scatterMeasures)=>{
|
|
7939
|
-
const measureTree = scatterMeasures.map((item, index)=>{
|
|
7940
|
-
const { id, xMeasures, yMeasures } = item;
|
|
7941
|
-
const groupChildren = [];
|
|
7942
|
-
let groupId = `${id}-`;
|
|
7943
|
-
if (xMeasures) {
|
|
7944
|
-
const arrPrimaryMeasures = Array.isArray(xMeasures) ? xMeasures : [
|
|
7945
|
-
xMeasures
|
|
7946
|
-
];
|
|
7947
|
-
const alias = arrPrimaryMeasures.map((item)=>item.alias || item.id).toString();
|
|
7948
|
-
groupId += alias;
|
|
7949
|
-
groupChildren.push({
|
|
7950
|
-
id: `${index}-x`,
|
|
7951
|
-
alias: arrPrimaryMeasures.map((item)=>item.alias || item.id).toString(),
|
|
7952
|
-
children: arrPrimaryMeasures
|
|
7953
|
-
});
|
|
7743
|
+
const isOtherEncoding = item.encoding && isCommonMeasureEncoding(encoding);
|
|
7744
|
+
ensureParentIdInitialized(parentId, measuresByView, parentIds);
|
|
7745
|
+
if (isYAxis) measuresByView[parentId].push(item);
|
|
7746
|
+
else if (isXAxis) measuresByView[parentId].push(item);
|
|
7747
|
+
else if (!isOtherEncoding && 'size' !== encoding) {
|
|
7748
|
+
const xCount = measuresByView[parentId].filter((m)=>'xAxis' === m.encoding).length;
|
|
7749
|
+
item.encoding = 0 === xCount ? 'xAxis' : 'yAxis';
|
|
7750
|
+
measuresByView[parentId].push(item);
|
|
7954
7751
|
}
|
|
7955
|
-
|
|
7956
|
-
|
|
7957
|
-
|
|
7752
|
+
}
|
|
7753
|
+
advancedVSeed.reshapeMeasures = parentIds.map((pid)=>{
|
|
7754
|
+
const basicMeasures = measuresByView[pid];
|
|
7755
|
+
const xCount = basicMeasures.filter((m)=>'xAxis' === m.encoding).length;
|
|
7756
|
+
const yCount = basicMeasures.filter((m)=>'yAxis' === m.encoding).length;
|
|
7757
|
+
if (0 === yCount && xCount > 0) {
|
|
7758
|
+
const cloneMeasure = chunk_BCBB46UE_d(basicMeasures[0]);
|
|
7759
|
+
cloneMeasure.encoding = 'yAxis';
|
|
7760
|
+
return [
|
|
7761
|
+
...basicMeasures,
|
|
7762
|
+
cloneMeasure
|
|
7958
7763
|
];
|
|
7959
|
-
const alias = arrSecondaryMeasures.map((item)=>item.alias || item.id).toString();
|
|
7960
|
-
groupId += alias;
|
|
7961
|
-
groupChildren.push({
|
|
7962
|
-
id: `${index}-y`,
|
|
7963
|
-
alias: arrSecondaryMeasures.map((item)=>item.alias || item.id).toString(),
|
|
7964
|
-
children: arrSecondaryMeasures
|
|
7965
|
-
});
|
|
7966
7764
|
}
|
|
7967
|
-
return
|
|
7968
|
-
|
|
7969
|
-
|
|
7970
|
-
children: groupChildren
|
|
7971
|
-
};
|
|
7972
|
-
});
|
|
7973
|
-
if (1 === scatterMeasures.length) return measureTree[0].children || [];
|
|
7974
|
-
return measureTree;
|
|
7975
|
-
};
|
|
7976
|
-
const buildMeasuresForScatter_generateMeasuresByParentId = (measures)=>{
|
|
7977
|
-
const scatterMeasures = [];
|
|
7978
|
-
const encodedMeasures = [];
|
|
7979
|
-
measures.forEach((item)=>{
|
|
7980
|
-
const id = item.parentId || DEFAULT_PARENT_ID;
|
|
7981
|
-
if (!scatterMeasures.find((d)=>d.id === id)) scatterMeasures.push({
|
|
7982
|
-
id,
|
|
7983
|
-
yMeasures: [],
|
|
7984
|
-
xMeasures: []
|
|
7985
|
-
});
|
|
7986
|
-
const scatterChart = scatterMeasures.find((d)=>d.id === id);
|
|
7987
|
-
if (!scatterChart || !Array.isArray(scatterChart.yMeasures) || !Array.isArray(scatterChart.xMeasures)) return;
|
|
7988
|
-
const isYAxis = 'yAxis' === item.encoding;
|
|
7989
|
-
const isXAxis = 'xAxis' === item.encoding;
|
|
7990
|
-
const isOther = item.encoding && [
|
|
7991
|
-
'color',
|
|
7992
|
-
'label',
|
|
7993
|
-
'tooltip',
|
|
7994
|
-
'detail'
|
|
7995
|
-
].includes(item.encoding);
|
|
7996
|
-
if (isYAxis) scatterChart.yMeasures.push(item);
|
|
7997
|
-
else if (isXAxis) scatterChart.xMeasures.push(item);
|
|
7998
|
-
else if (isOther) encodedMeasures.push(item);
|
|
7999
|
-
else if (0 !== scatterChart.yMeasures.length) scatterChart.yMeasures.push(item);
|
|
8000
|
-
else scatterChart.xMeasures.push(item);
|
|
8001
|
-
});
|
|
8002
|
-
const res = scatterMeasuresToMeasureTree(scatterMeasures);
|
|
8003
|
-
if (encodedMeasures.length) encodedMeasures.forEach((m)=>{
|
|
8004
|
-
res.push(m);
|
|
8005
|
-
});
|
|
8006
|
-
return res;
|
|
7765
|
+
return basicMeasures;
|
|
7766
|
+
}).filter((m)=>m.length > 0);
|
|
7767
|
+
return advancedVSeed;
|
|
8007
7768
|
};
|
|
8008
7769
|
const defaultEncodingForScatter = (advancedVSeed)=>{
|
|
8009
|
-
const { measures
|
|
8010
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
7770
|
+
const { measures = [], dimensions = [] } = advancedVSeed;
|
|
8011
7771
|
const encoding = {};
|
|
8012
7772
|
scatter_generateDefaultDimensionEncoding(dimensions, encoding);
|
|
8013
7773
|
scatter_generateDefaultMeasureEncoding(measures, encoding);
|
|
@@ -8017,8 +7777,7 @@
|
|
|
8017
7777
|
};
|
|
8018
7778
|
};
|
|
8019
7779
|
const encodingForScatter = (advancedVSeed)=>{
|
|
8020
|
-
const { measures
|
|
8021
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
7780
|
+
const { measures = [], dimensions = [] } = advancedVSeed;
|
|
8022
7781
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
8023
7782
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
8024
7783
|
const encoding = {};
|
|
@@ -8107,37 +7866,32 @@
|
|
|
8107
7866
|
};
|
|
8108
7867
|
const { vseed } = context;
|
|
8109
7868
|
const { dataset } = vseed;
|
|
8110
|
-
const { encoding, chartType } = advancedVSeed;
|
|
8111
|
-
const measures = (advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? []).filter((m)=>m && m.children);
|
|
7869
|
+
const { encoding, chartType, reshapeMeasures } = advancedVSeed;
|
|
8112
7870
|
const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
|
|
8113
|
-
|
|
7871
|
+
const measures = reshapeMeasures?.[0] ?? [];
|
|
8114
7872
|
const foldInfoList = [];
|
|
8115
7873
|
const unfoldInfoList = [];
|
|
8116
7874
|
const datasets = [];
|
|
8117
|
-
const xMeasures = measures
|
|
8118
|
-
const yMeasures = measures
|
|
8119
|
-
|
|
8120
|
-
|
|
8121
|
-
|
|
8122
|
-
|
|
8123
|
-
|
|
8124
|
-
|
|
8125
|
-
|
|
8126
|
-
|
|
8127
|
-
|
|
8128
|
-
|
|
8129
|
-
|
|
8130
|
-
|
|
8131
|
-
|
|
8132
|
-
|
|
8133
|
-
|
|
8134
|
-
|
|
8135
|
-
|
|
8136
|
-
|
|
8137
|
-
datasets[0] = newDataset;
|
|
8138
|
-
foldInfoList.push(foldInfo);
|
|
8139
|
-
unfoldInfoList.push(unfoldInfo);
|
|
8140
|
-
}
|
|
7875
|
+
const xMeasures = measures.filter((m)=>'xAxis' === m.encoding);
|
|
7876
|
+
const yMeasures = measures.filter((m)=>'yAxis' === m.encoding);
|
|
7877
|
+
const xResult = dataReshapeByEncoding(dataset, T(dimensions, (d)=>d.id), T(xMeasures, (d)=>d.id), encoding, {
|
|
7878
|
+
foldMeasureValue: FoldXMeasureValue,
|
|
7879
|
+
foldMeasureId: FoldXMeasureId,
|
|
7880
|
+
colorItemAsId: true,
|
|
7881
|
+
colorMeasureId: getColorMeasureId(advancedVSeed, vseed)
|
|
7882
|
+
});
|
|
7883
|
+
datasets.push(xResult.dataset);
|
|
7884
|
+
foldInfoList.push(xResult.foldInfo);
|
|
7885
|
+
unfoldInfoList.push(xResult.unfoldInfo);
|
|
7886
|
+
const yResult = dataReshapeByEncoding(datasets[0], T(dimensions, (d)=>d.id), T(yMeasures, (d)=>d.id), encoding, {
|
|
7887
|
+
foldMeasureValue: FoldYMeasureValue,
|
|
7888
|
+
foldMeasureId: FoldYMeasureId,
|
|
7889
|
+
colorItemAsId: true,
|
|
7890
|
+
colorMeasureId: getColorMeasureId(advancedVSeed, vseed)
|
|
7891
|
+
});
|
|
7892
|
+
datasets[0] = yResult.dataset;
|
|
7893
|
+
foldInfoList.push(yResult.foldInfo);
|
|
7894
|
+
unfoldInfoList.push(yResult.unfoldInfo);
|
|
8141
7895
|
const unfoldInfo = {
|
|
8142
7896
|
...unfoldInfoList[0],
|
|
8143
7897
|
colorItems: unfoldInfoList.flatMap((d)=>d.colorItems),
|
|
@@ -8167,46 +7921,35 @@
|
|
|
8167
7921
|
const { vseed } = context;
|
|
8168
7922
|
const { dataset } = vseed;
|
|
8169
7923
|
const { encoding, chartType } = advancedVSeed;
|
|
8170
|
-
const
|
|
7924
|
+
const reshapeMeasures = advancedVSeed.reshapeMeasures ?? [];
|
|
8171
7925
|
const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
|
|
8172
|
-
const
|
|
8173
|
-
const measureGroups = [];
|
|
8174
|
-
const depth = measureDepth(measures);
|
|
8175
|
-
if (3 === depth) measures.forEach((measure)=>{
|
|
8176
|
-
measureGroups.push(measure.children);
|
|
8177
|
-
});
|
|
8178
|
-
else if (2 === depth) measureGroups.push(measures);
|
|
7926
|
+
const allMeasuresIds = reshapeMeasures.flatMap((measureGroup)=>measureGroup.map((m)=>m.id));
|
|
8179
7927
|
const datasetList = [];
|
|
8180
7928
|
const datasetReshapeInfo = [];
|
|
8181
|
-
|
|
8182
|
-
if (measures.length > 2) throw new Error('measures can not be more than 2 groups in scatter');
|
|
7929
|
+
reshapeMeasures.forEach((measures, index)=>{
|
|
8183
7930
|
const foldInfoList = [];
|
|
8184
7931
|
const unfoldInfoList = [];
|
|
8185
7932
|
const datasets = [];
|
|
8186
|
-
const xMeasures = measures
|
|
8187
|
-
const yMeasures = measures
|
|
8188
|
-
|
|
8189
|
-
|
|
8190
|
-
|
|
8191
|
-
|
|
8192
|
-
|
|
8193
|
-
|
|
8194
|
-
|
|
8195
|
-
|
|
8196
|
-
|
|
8197
|
-
|
|
8198
|
-
|
|
8199
|
-
|
|
8200
|
-
|
|
8201
|
-
|
|
8202
|
-
|
|
8203
|
-
|
|
8204
|
-
|
|
8205
|
-
|
|
8206
|
-
datasets.push(newDataset);
|
|
8207
|
-
foldInfoList.push(foldInfo);
|
|
8208
|
-
unfoldInfoList.push(unfoldInfo);
|
|
8209
|
-
}
|
|
7933
|
+
const xMeasures = measures.filter((m)=>'xAxis' === m.encoding);
|
|
7934
|
+
const yMeasures = measures.filter((m)=>'yAxis' === m.encoding);
|
|
7935
|
+
const xResult = dataReshapeByEncoding(dataset, dimensions, xMeasures, encoding, {
|
|
7936
|
+
foldMeasureValue: `${FoldXMeasureValue}${index}`,
|
|
7937
|
+
colorItemAsId: true,
|
|
7938
|
+
colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
|
|
7939
|
+
omitIds: allMeasuresIds
|
|
7940
|
+
});
|
|
7941
|
+
datasets.push(xResult.dataset);
|
|
7942
|
+
foldInfoList.push(xResult.foldInfo);
|
|
7943
|
+
unfoldInfoList.push(xResult.unfoldInfo);
|
|
7944
|
+
const yResult = dataReshapeByEncoding(dataset, dimensions, yMeasures, encoding, {
|
|
7945
|
+
foldMeasureValue: `${FoldYMeasureValue}${index}`,
|
|
7946
|
+
colorItemAsId: true,
|
|
7947
|
+
colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
|
|
7948
|
+
omitIds: allMeasuresIds
|
|
7949
|
+
});
|
|
7950
|
+
datasets.push(yResult.dataset);
|
|
7951
|
+
foldInfoList.push(yResult.foldInfo);
|
|
7952
|
+
unfoldInfoList.push(yResult.unfoldInfo);
|
|
8210
7953
|
const unfoldInfo = {
|
|
8211
7954
|
...unfoldInfoList[0],
|
|
8212
7955
|
colorItems: unfoldInfoList.flatMap((d)=>d.colorItems),
|
|
@@ -8245,11 +7988,6 @@
|
|
|
8245
7988
|
], [
|
|
8246
7989
|
buildMeasuresForScatter,
|
|
8247
7990
|
encodingForScatter,
|
|
8248
|
-
pickMeasuresForReshape([
|
|
8249
|
-
'tooltip',
|
|
8250
|
-
'label',
|
|
8251
|
-
'size'
|
|
8252
|
-
]),
|
|
8253
7991
|
pickDimensionsForReshape
|
|
8254
7992
|
]),
|
|
8255
7993
|
pivotAdapter([
|
|
@@ -8336,7 +8074,7 @@
|
|
|
8336
8074
|
...spec
|
|
8337
8075
|
};
|
|
8338
8076
|
const { advancedVSeed, vseed } = context;
|
|
8339
|
-
const { datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
|
|
8077
|
+
const { datasetReshapeInfo, chartType, locale, dimensions = [], encoding } = advancedVSeed;
|
|
8340
8078
|
const baseConfig = advancedVSeed.config[chartType];
|
|
8341
8079
|
const { tooltip = {
|
|
8342
8080
|
enable: true
|
|
@@ -8350,7 +8088,7 @@
|
|
|
8350
8088
|
title: {
|
|
8351
8089
|
visible: false
|
|
8352
8090
|
},
|
|
8353
|
-
content: tooltipScatter_createMarkContent(encoding.tooltip || [], dimensions,
|
|
8091
|
+
content: tooltipScatter_createMarkContent(encoding.tooltip || [], dimensions, vseed.measures, locale, foldInfoList)
|
|
8354
8092
|
},
|
|
8355
8093
|
dimension: {
|
|
8356
8094
|
visible: false
|
|
@@ -8359,7 +8097,7 @@
|
|
|
8359
8097
|
};
|
|
8360
8098
|
return result;
|
|
8361
8099
|
};
|
|
8362
|
-
const tooltipScatter_createMarkContent = (tooltip, dimensions, measures, locale, foldInfoList)=>{
|
|
8100
|
+
const tooltipScatter_createMarkContent = (tooltip, dimensions, measures = [], locale, foldInfoList)=>{
|
|
8363
8101
|
const dims = T(dimensions.filter((item)=>tooltip.includes(item.id)), (item)=>item.id);
|
|
8364
8102
|
const meas = T(measures.filter((item)=>tooltip.includes(item.id)), (item)=>item.id);
|
|
8365
8103
|
const dimContent = dims.map((item)=>({
|
|
@@ -8974,140 +8712,38 @@
|
|
|
8974
8712
|
Builder._advancedPipelineMap.scatter = scatterAdvancedPipeline;
|
|
8975
8713
|
Builder._specPipelineMap.scatter = scatterSpecPipeline;
|
|
8976
8714
|
};
|
|
8977
|
-
const buildMeasuresForDualAxis = (advancedVSeed
|
|
8978
|
-
const {
|
|
8979
|
-
|
|
8980
|
-
|
|
8981
|
-
|
|
8982
|
-
|
|
8983
|
-
}
|
|
8984
|
-
if (vseed.dualMeasures) {
|
|
8985
|
-
advancedVSeed.measures = dualMeasuresToMeasureTree(chunk_BCBB46UE_d(vseed.dualMeasures));
|
|
8986
|
-
return advancedVSeed;
|
|
8987
|
-
}
|
|
8988
|
-
const { dualMeasures, encodedMeasures } = basicMeasuresToDualMeasures(advancedVSeed.measures || []);
|
|
8989
|
-
advancedVSeed.measures = dualMeasuresToMeasureTree(dualMeasures);
|
|
8990
|
-
if (encodedMeasures.length) encodedMeasures.forEach((m)=>{
|
|
8991
|
-
advancedVSeed.measures.push(m);
|
|
8992
|
-
});
|
|
8993
|
-
return advancedVSeed;
|
|
8994
|
-
};
|
|
8995
|
-
const basicMeasuresToDualMeasures = (basicMeasures)=>{
|
|
8996
|
-
const primaryMeasures = [];
|
|
8997
|
-
const secondaryMeasures = [];
|
|
8998
|
-
const encodedMeasures = [];
|
|
8999
|
-
for(let index = 0; index < basicMeasures.length; index++){
|
|
9000
|
-
const item = basicMeasures[index];
|
|
8715
|
+
const buildMeasuresForDualAxis = (advancedVSeed)=>{
|
|
8716
|
+
const { measures = [] } = advancedVSeed;
|
|
8717
|
+
const measuresByView = {};
|
|
8718
|
+
const parentIds = [];
|
|
8719
|
+
for(let index = 0; index < measures.length; index++){
|
|
8720
|
+
const item = measures[index];
|
|
9001
8721
|
const encoding = item.encoding;
|
|
8722
|
+
const parentId = item.parentId || DEFAULT_PARENT_ID;
|
|
9002
8723
|
const isPrimaryYAxis = 'primaryYAxis' === encoding;
|
|
9003
8724
|
const isSecondaryYAxis = 'secondaryYAxis' === encoding;
|
|
9004
|
-
const isOtherEncoding = item.encoding &&
|
|
9005
|
-
|
|
9006
|
-
|
|
9007
|
-
|
|
9008
|
-
|
|
9009
|
-
|
|
9010
|
-
|
|
9011
|
-
|
|
9012
|
-
else if (isOtherEncoding)
|
|
9013
|
-
|
|
9014
|
-
|
|
9015
|
-
|
|
9016
|
-
|
|
9017
|
-
dualMeasures: [
|
|
9018
|
-
{
|
|
9019
|
-
id: 'dualMeasures',
|
|
9020
|
-
primaryMeasures,
|
|
9021
|
-
secondaryMeasures
|
|
9022
|
-
}
|
|
9023
|
-
],
|
|
9024
|
-
encodedMeasures
|
|
9025
|
-
};
|
|
9026
|
-
};
|
|
9027
|
-
const dualMeasuresToMeasureTree = (dualMeasures)=>{
|
|
9028
|
-
const measureTree = dualMeasures.map((item, index)=>{
|
|
9029
|
-
const { id, primaryMeasures, secondaryMeasures } = item;
|
|
9030
|
-
const groupChildren = [];
|
|
9031
|
-
let groupId = `${id}-`;
|
|
9032
|
-
if (primaryMeasures) {
|
|
9033
|
-
const arrPrimaryMeasures = Array.isArray(primaryMeasures) ? primaryMeasures : [
|
|
9034
|
-
primaryMeasures
|
|
9035
|
-
];
|
|
9036
|
-
const alias = arrPrimaryMeasures.map((item)=>item.alias || item.id).toString();
|
|
9037
|
-
groupId += alias;
|
|
9038
|
-
groupChildren.push({
|
|
9039
|
-
id: `${index}-primary`,
|
|
9040
|
-
alias: arrPrimaryMeasures.map((item)=>item.alias || item.id).toString(),
|
|
9041
|
-
children: arrPrimaryMeasures
|
|
9042
|
-
});
|
|
8725
|
+
const isOtherEncoding = item.encoding && isCommonMeasureEncoding(encoding);
|
|
8726
|
+
ensureParentIdInitialized(parentId, measuresByView, parentIds);
|
|
8727
|
+
if (isPrimaryYAxis) {
|
|
8728
|
+
measuresByView[parentId].push(item);
|
|
8729
|
+
if (!isDualAxisChartType(item.chartType)) item.chartType = DEFAULT_DUAL_CHART_TYPE.primary;
|
|
8730
|
+
} else if (isSecondaryYAxis) {
|
|
8731
|
+
measuresByView[parentId].push(item);
|
|
8732
|
+
if (!isDualAxisChartType(item.chartType)) item.chartType = DEFAULT_DUAL_CHART_TYPE.secondary;
|
|
8733
|
+
} else if (!isOtherEncoding) {
|
|
8734
|
+
const primaryCount = measuresByView[parentId].filter((m)=>'primaryYAxis' === m.encoding).length;
|
|
8735
|
+
item.encoding = 0 === primaryCount ? 'primaryYAxis' : 'secondaryYAxis';
|
|
8736
|
+
if (!isDualAxisChartType(item.chartType)) item.chartType = 'primaryYAxis' === item.encoding ? DEFAULT_DUAL_CHART_TYPE.primary : DEFAULT_DUAL_CHART_TYPE.secondary;
|
|
8737
|
+
measuresByView[parentId].push(item);
|
|
9043
8738
|
}
|
|
9044
|
-
|
|
9045
|
-
|
|
9046
|
-
|
|
9047
|
-
];
|
|
9048
|
-
const alias = arrSecondaryMeasures.map((item)=>item.alias || item.id).toString();
|
|
9049
|
-
groupId += alias;
|
|
9050
|
-
groupChildren.push({
|
|
9051
|
-
id: `${index}-secondary`,
|
|
9052
|
-
alias: arrSecondaryMeasures.map((item)=>item.alias || item.id).toString(),
|
|
9053
|
-
children: arrSecondaryMeasures
|
|
9054
|
-
});
|
|
9055
|
-
}
|
|
9056
|
-
return {
|
|
9057
|
-
id: groupId,
|
|
9058
|
-
alias: groupId,
|
|
9059
|
-
children: groupChildren
|
|
9060
|
-
};
|
|
9061
|
-
});
|
|
9062
|
-
if (1 === dualMeasures.length) return measureTree[0].children || [];
|
|
9063
|
-
return measureTree;
|
|
9064
|
-
};
|
|
9065
|
-
const buildMeasuresForDualAxis_generateMeasuresByParentId = (measures)=>{
|
|
9066
|
-
const dualMeasures = [];
|
|
9067
|
-
const encodedMeasures = [];
|
|
9068
|
-
measures.forEach((item)=>{
|
|
9069
|
-
const id = item.parentId || DEFAULT_PARENT_ID;
|
|
9070
|
-
if (!dualMeasures.find((d)=>d.id === id)) dualMeasures.push({
|
|
9071
|
-
id,
|
|
9072
|
-
primaryMeasures: [],
|
|
9073
|
-
secondaryMeasures: []
|
|
9074
|
-
});
|
|
9075
|
-
const dualChart = dualMeasures.find((d)=>d.id === id);
|
|
9076
|
-
if (!dualChart || !Array.isArray(dualChart.primaryMeasures) || !Array.isArray(dualChart.secondaryMeasures)) return;
|
|
9077
|
-
const encoding = item.encoding;
|
|
9078
|
-
const isPrimaryYAxis = 'primaryYAxis' === encoding;
|
|
9079
|
-
const isSecondaryYAxis = 'secondaryYAxis' === encoding;
|
|
9080
|
-
const isOtherEncoding = item.encoding && [
|
|
9081
|
-
'color',
|
|
9082
|
-
'label',
|
|
9083
|
-
'tooltip',
|
|
9084
|
-
'detail'
|
|
9085
|
-
].includes(item.encoding);
|
|
9086
|
-
if (isPrimaryYAxis) dualChart.primaryMeasures.push(item);
|
|
9087
|
-
else if (isSecondaryYAxis) dualChart.secondaryMeasures.push(item);
|
|
9088
|
-
else if (isOtherEncoding) encodedMeasures.push(item);
|
|
9089
|
-
else if (0 === dualChart.primaryMeasures.length) dualChart.primaryMeasures.push(item);
|
|
9090
|
-
else dualChart.secondaryMeasures.push(item);
|
|
9091
|
-
});
|
|
9092
|
-
const res = dualMeasuresToMeasureTree(dualMeasures);
|
|
9093
|
-
if (encodedMeasures.length) encodedMeasures.forEach((m)=>{
|
|
9094
|
-
res.push(m);
|
|
9095
|
-
});
|
|
9096
|
-
return res;
|
|
9097
|
-
};
|
|
9098
|
-
const checkSingleViewMultiMeasures = (measures = [])=>measures.length <= 1 && (measures[0].children ?? []).length <= 1;
|
|
9099
|
-
const dualAxis_hasMultipleMeasureInSingleView = (measures = [])=>{
|
|
9100
|
-
const depth = measureDepth(measures);
|
|
9101
|
-
if (depth >= 3) return measures.some((m)=>m && m.children && !checkSingleViewMultiMeasures(m.children));
|
|
9102
|
-
if (2 === depth) return !checkSingleViewMultiMeasures(measures);
|
|
9103
|
-
if (1 === depth) return measures.length >= 1;
|
|
9104
|
-
return false;
|
|
8739
|
+
}
|
|
8740
|
+
advancedVSeed.reshapeMeasures = parentIds.map((pid)=>measuresByView[pid]).filter((m)=>m.length > 0);
|
|
8741
|
+
return advancedVSeed;
|
|
9105
8742
|
};
|
|
9106
8743
|
const defaultEncodingForDualAxis = (advancedVSeed)=>{
|
|
9107
|
-
const { measures
|
|
9108
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
8744
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
9109
8745
|
const encoding = {};
|
|
9110
|
-
dualAxis_generateDefaultDimensionEncoding(dimensions, encoding,
|
|
8746
|
+
dualAxis_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
|
|
9111
8747
|
dualAxis_generateDefaultMeasureEncoding(measures, encoding);
|
|
9112
8748
|
return {
|
|
9113
8749
|
...advancedVSeed,
|
|
@@ -9115,12 +8751,11 @@
|
|
|
9115
8751
|
};
|
|
9116
8752
|
};
|
|
9117
8753
|
const encodingForDualAxis = (advancedVSeed)=>{
|
|
9118
|
-
const { measures
|
|
9119
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
8754
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
9120
8755
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
9121
8756
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
9122
8757
|
const encoding = {};
|
|
9123
|
-
const hasMulti =
|
|
8758
|
+
const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures);
|
|
9124
8759
|
if (hasDimensionEncoding) dualAxis_generateDimensionEncoding(dimensions, encoding, hasMulti);
|
|
9125
8760
|
else dualAxis_generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
|
|
9126
8761
|
if (hasMeasureEncoding) dualAxis_generateMeasureEncoding(measures, encoding);
|
|
@@ -9179,34 +8814,37 @@
|
|
|
9179
8814
|
const { vseed } = context;
|
|
9180
8815
|
const { dataset } = vseed;
|
|
9181
8816
|
const { encoding, chartType } = advancedVSeed;
|
|
9182
|
-
const measures =
|
|
8817
|
+
const measures = advancedVSeed.reshapeMeasures?.[0] ?? [];
|
|
9183
8818
|
const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
|
|
9184
|
-
if (measures.length > 2) throw new Error('measures can not be more than 2 groups in dualAxis');
|
|
9185
8819
|
const foldInfoList = [];
|
|
9186
8820
|
const unfoldInfoList = [];
|
|
9187
8821
|
const datasets = [];
|
|
9188
|
-
const primaryMeasures = measures
|
|
9189
|
-
const secondaryMeasures = measures
|
|
9190
|
-
|
|
9191
|
-
|
|
8822
|
+
const primaryMeasures = measures.filter((m)=>'primaryYAxis' === m.encoding);
|
|
8823
|
+
const secondaryMeasures = measures.filter((m)=>'secondaryYAxis' === m.encoding);
|
|
8824
|
+
const primaryChartTypes = chunk_QJLMYOTX_i(primaryMeasures.map((m)=>m.chartType));
|
|
8825
|
+
const secondaryChartTypes = chunk_QJLMYOTX_i(secondaryMeasures.map((m)=>m.chartType));
|
|
8826
|
+
if (!primaryChartTypes.length) primaryChartTypes.push(DEFAULT_DUAL_CHART_TYPE.primary);
|
|
8827
|
+
if (!secondaryChartTypes.length) secondaryChartTypes.push(DEFAULT_DUAL_CHART_TYPE.secondary);
|
|
8828
|
+
primaryChartTypes.forEach((chartType)=>{
|
|
8829
|
+
const primaryResult = dataReshapeByEncoding(dataset, T(dimensions, (item)=>item.id), T(primaryMeasures.filter((m)=>m.chartType === chartType), (item)=>item.id), encoding, {
|
|
9192
8830
|
colorItemAsId: false,
|
|
9193
8831
|
foldMeasureValue: FoldPrimaryMeasureValue,
|
|
9194
8832
|
colorMeasureId: getColorMeasureId(advancedVSeed, vseed)
|
|
9195
8833
|
});
|
|
9196
|
-
datasets.push(
|
|
9197
|
-
foldInfoList.push(foldInfo);
|
|
9198
|
-
unfoldInfoList.push(unfoldInfo);
|
|
9199
|
-
}
|
|
9200
|
-
|
|
9201
|
-
const
|
|
8834
|
+
datasets.push(primaryResult.dataset);
|
|
8835
|
+
foldInfoList.push(primaryResult.foldInfo);
|
|
8836
|
+
unfoldInfoList.push(primaryResult.unfoldInfo);
|
|
8837
|
+
});
|
|
8838
|
+
secondaryChartTypes.forEach((chartType)=>{
|
|
8839
|
+
const secondaryResult = dataReshapeByEncoding(dataset, T(dimensions, (item)=>item.id), T(secondaryMeasures.filter((m)=>m.chartType === chartType), (item)=>item.id), encoding, {
|
|
9202
8840
|
colorItemAsId: false,
|
|
9203
8841
|
foldMeasureValue: FoldSecondaryMeasureValue,
|
|
9204
8842
|
colorMeasureId: getColorMeasureId(advancedVSeed, vseed)
|
|
9205
8843
|
});
|
|
9206
|
-
datasets.push(
|
|
9207
|
-
foldInfoList.push(foldInfo);
|
|
9208
|
-
unfoldInfoList.push(unfoldInfo);
|
|
9209
|
-
}
|
|
8844
|
+
datasets.push(secondaryResult.dataset);
|
|
8845
|
+
foldInfoList.push(secondaryResult.foldInfo);
|
|
8846
|
+
unfoldInfoList.push(secondaryResult.unfoldInfo);
|
|
8847
|
+
});
|
|
9210
8848
|
const unfoldInfo = {
|
|
9211
8849
|
...unfoldInfoList[0],
|
|
9212
8850
|
colorItems: unfoldInfoList.flatMap((d)=>d.colorItems),
|
|
@@ -9236,46 +8874,43 @@
|
|
|
9236
8874
|
const { vseed } = context;
|
|
9237
8875
|
const { dataset } = vseed;
|
|
9238
8876
|
const { encoding, chartType } = advancedVSeed;
|
|
9239
|
-
const
|
|
8877
|
+
const reshapeMeasures = advancedVSeed.reshapeMeasures ?? [];
|
|
9240
8878
|
const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
|
|
9241
|
-
const
|
|
8879
|
+
const allMeasuresIds = reshapeMeasures.flatMap((measureGroup)=>measureGroup.map((m)=>m.id));
|
|
9242
8880
|
const datasetList = [];
|
|
9243
8881
|
const datasetReshapeInfo = [];
|
|
9244
|
-
|
|
9245
|
-
const depth = measureDepth(measures);
|
|
9246
|
-
if (3 === depth) measures.forEach((measure)=>{
|
|
9247
|
-
if (measure.children) measureGroups.push(measure.children);
|
|
9248
|
-
});
|
|
9249
|
-
else if (2 === depth) measureGroups.push(measures.filter((m)=>m && m.children));
|
|
9250
|
-
measureGroups.forEach((measures, index)=>{
|
|
9251
|
-
if (measures.length > 2) throw new Error('measures can not be more than 2 groups in dualAxis');
|
|
8882
|
+
reshapeMeasures.forEach((measures, index)=>{
|
|
9252
8883
|
const foldInfoList = [];
|
|
9253
8884
|
const unfoldInfoList = [];
|
|
9254
8885
|
const datasets = [];
|
|
9255
|
-
const primaryMeasures = measures
|
|
9256
|
-
const secondaryMeasures = measures
|
|
9257
|
-
|
|
9258
|
-
|
|
8886
|
+
const primaryMeasures = measures.filter((m)=>'primaryYAxis' === m.encoding);
|
|
8887
|
+
const secondaryMeasures = measures.filter((m)=>'secondaryYAxis' === m.encoding);
|
|
8888
|
+
const primaryChartTypes = chunk_QJLMYOTX_i(primaryMeasures.map((m)=>m.chartType));
|
|
8889
|
+
const secondaryChartTypes = chunk_QJLMYOTX_i(secondaryMeasures.map((m)=>m.chartType));
|
|
8890
|
+
if (!primaryChartTypes.length) primaryChartTypes.push(DEFAULT_DUAL_CHART_TYPE.primary);
|
|
8891
|
+
if (!secondaryChartTypes.length) secondaryChartTypes.push(DEFAULT_DUAL_CHART_TYPE.secondary);
|
|
8892
|
+
primaryChartTypes.forEach((chartType)=>{
|
|
8893
|
+
const primaryResult = dataReshapeByEncoding(dataset, T(dimensions, (item)=>item.id), T(primaryMeasures.filter((m)=>m.chartType === chartType), (item)=>item.id), encoding, {
|
|
9259
8894
|
colorItemAsId: false,
|
|
9260
8895
|
foldMeasureValue: `${FoldPrimaryMeasureValue}${index}`,
|
|
9261
8896
|
colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
|
|
9262
|
-
omitIds:
|
|
8897
|
+
omitIds: allMeasuresIds
|
|
9263
8898
|
});
|
|
9264
|
-
datasets.push(
|
|
9265
|
-
foldInfoList.push(foldInfo);
|
|
9266
|
-
unfoldInfoList.push(unfoldInfo);
|
|
9267
|
-
}
|
|
9268
|
-
|
|
9269
|
-
const
|
|
8899
|
+
datasets.push(primaryResult.dataset);
|
|
8900
|
+
foldInfoList.push(primaryResult.foldInfo);
|
|
8901
|
+
unfoldInfoList.push(primaryResult.unfoldInfo);
|
|
8902
|
+
});
|
|
8903
|
+
secondaryChartTypes.forEach((chartType)=>{
|
|
8904
|
+
const secondaryResult = dataReshapeByEncoding(dataset, T(dimensions, (item)=>item.id), T(secondaryMeasures.filter((m)=>m.chartType === chartType), (item)=>item.id), encoding, {
|
|
9270
8905
|
colorItemAsId: false,
|
|
9271
8906
|
foldMeasureValue: `${FoldSecondaryMeasureValue}${index}`,
|
|
9272
8907
|
colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
|
|
9273
|
-
omitIds:
|
|
8908
|
+
omitIds: allMeasuresIds
|
|
9274
8909
|
});
|
|
9275
|
-
datasets.push(
|
|
9276
|
-
foldInfoList.push(foldInfo);
|
|
9277
|
-
unfoldInfoList.push(unfoldInfo);
|
|
9278
|
-
}
|
|
8910
|
+
datasets.push(secondaryResult.dataset);
|
|
8911
|
+
foldInfoList.push(secondaryResult.foldInfo);
|
|
8912
|
+
unfoldInfoList.push(secondaryResult.unfoldInfo);
|
|
8913
|
+
});
|
|
9279
8914
|
const unfoldInfo = {
|
|
9280
8915
|
...unfoldInfoList[0],
|
|
9281
8916
|
colorItems: unfoldInfoList.flatMap((d)=>d.colorItems),
|
|
@@ -9313,7 +8948,6 @@
|
|
|
9313
8948
|
'legend',
|
|
9314
8949
|
'tooltip',
|
|
9315
8950
|
'xAxis',
|
|
9316
|
-
'dualChartType',
|
|
9317
8951
|
'alignTicks',
|
|
9318
8952
|
'primaryYAxis',
|
|
9319
8953
|
'secondaryYAxis',
|
|
@@ -9344,11 +8978,6 @@
|
|
|
9344
8978
|
], [
|
|
9345
8979
|
buildMeasuresForDualAxis,
|
|
9346
8980
|
encodingForDualAxis,
|
|
9347
|
-
pickMeasuresForReshape([
|
|
9348
|
-
'tooltip',
|
|
9349
|
-
'label',
|
|
9350
|
-
'color'
|
|
9351
|
-
]),
|
|
9352
8981
|
pickDimensionsForReshape
|
|
9353
8982
|
]),
|
|
9354
8983
|
pivotAdapter([
|
|
@@ -9363,7 +8992,7 @@
|
|
|
9363
8992
|
markStyle_markStyle,
|
|
9364
8993
|
annotation_annotation
|
|
9365
8994
|
];
|
|
9366
|
-
const series_series = (
|
|
8995
|
+
const series_series = (pipeByAxis, pipes)=>{
|
|
9367
8996
|
const result = {
|
|
9368
8997
|
type: 'common',
|
|
9369
8998
|
padding: 0,
|
|
@@ -9374,11 +9003,28 @@
|
|
|
9374
9003
|
]
|
|
9375
9004
|
};
|
|
9376
9005
|
return (_, context)=>{
|
|
9377
|
-
|
|
9006
|
+
const { advancedVSeed } = context;
|
|
9007
|
+
const { datasetReshapeInfo, reshapeMeasures = [] } = advancedVSeed;
|
|
9008
|
+
const { foldInfoList = [], index } = datasetReshapeInfo[0];
|
|
9009
|
+
result.series = foldInfoList.map((foldInfo)=>{
|
|
9010
|
+
const measureId = Object.keys(foldInfo.foldMap)[0];
|
|
9011
|
+
const axisType = foldInfo.measureValue === `${FoldPrimaryMeasureValue}${index}` ? 'primary' : 'secondary';
|
|
9012
|
+
const measure = (reshapeMeasures[index] ?? []).find((m)=>m.id === measureId);
|
|
9013
|
+
const options = {
|
|
9014
|
+
axisType,
|
|
9015
|
+
chartType: measure?.chartType ?? ('primary' === axisType ? DEFAULT_DUAL_CHART_TYPE.primary : DEFAULT_DUAL_CHART_TYPE.secondary),
|
|
9016
|
+
foldInfo
|
|
9017
|
+
};
|
|
9018
|
+
const pipeline = [
|
|
9019
|
+
...pipeByAxis.map((p)=>p(options)),
|
|
9020
|
+
...pipes
|
|
9021
|
+
];
|
|
9022
|
+
return execPipeline(pipeline, context, {});
|
|
9023
|
+
});
|
|
9378
9024
|
return result;
|
|
9379
9025
|
};
|
|
9380
9026
|
};
|
|
9381
|
-
const seriesDualAxis = (
|
|
9027
|
+
const seriesDualAxis = (pipeByAxis, pipes)=>{
|
|
9382
9028
|
const result = {
|
|
9383
9029
|
type: 'common',
|
|
9384
9030
|
padding: 0,
|
|
@@ -9389,129 +9035,52 @@
|
|
|
9389
9035
|
}
|
|
9390
9036
|
]
|
|
9391
9037
|
};
|
|
9392
|
-
const createDualContext = (context, index)=>{
|
|
9393
|
-
const { advancedVSeed } = context;
|
|
9394
|
-
const dataset = advancedVSeed.dataset[index];
|
|
9395
|
-
return {
|
|
9396
|
-
...context,
|
|
9397
|
-
advancedVSeed: {
|
|
9398
|
-
...advancedVSeed,
|
|
9399
|
-
dataset: dataset
|
|
9400
|
-
}
|
|
9401
|
-
};
|
|
9402
|
-
};
|
|
9403
9038
|
return (_, context)=>{
|
|
9404
|
-
|
|
9405
|
-
|
|
9039
|
+
const { advancedVSeed } = context;
|
|
9040
|
+
const { datasetReshapeInfo, dataset, reshapeMeasures = [] } = advancedVSeed;
|
|
9041
|
+
result.series = dataset.map((d, index)=>{
|
|
9042
|
+
const seriesContext = {
|
|
9043
|
+
...context,
|
|
9044
|
+
advancedVSeed: {
|
|
9045
|
+
...advancedVSeed,
|
|
9046
|
+
dataset: d
|
|
9047
|
+
}
|
|
9048
|
+
};
|
|
9049
|
+
const foldInfo = datasetReshapeInfo[0].foldInfoList[index];
|
|
9050
|
+
const measureId = Object.keys(foldInfo.foldMap)[0];
|
|
9051
|
+
const axisType = foldInfo.measureValue === FoldPrimaryMeasureValue ? 'primary' : 'secondary';
|
|
9052
|
+
const measure = (reshapeMeasures[0] ?? []).find((m)=>m.id === measureId);
|
|
9053
|
+
const options = {
|
|
9054
|
+
axisType,
|
|
9055
|
+
chartType: measure?.chartType ?? ('primary' === axisType ? DEFAULT_DUAL_CHART_TYPE.primary : DEFAULT_DUAL_CHART_TYPE.secondary),
|
|
9056
|
+
foldInfo
|
|
9057
|
+
};
|
|
9058
|
+
const pipeline = [
|
|
9059
|
+
...pipeByAxis.map((p)=>p(options)),
|
|
9060
|
+
...pipes
|
|
9061
|
+
];
|
|
9406
9062
|
return execPipeline(pipeline, seriesContext, {});
|
|
9407
9063
|
});
|
|
9408
9064
|
return result;
|
|
9409
9065
|
};
|
|
9410
9066
|
};
|
|
9411
|
-
const
|
|
9412
|
-
|
|
9413
|
-
|
|
9414
|
-
|
|
9415
|
-
|
|
9416
|
-
|
|
9417
|
-
|
|
9418
|
-
|
|
9419
|
-
|
|
9420
|
-
|
|
9421
|
-
|
|
9422
|
-
|
|
9423
|
-
|
|
9424
|
-
|
|
9425
|
-
|
|
9426
|
-
};
|
|
9427
|
-
const initDualAxisSecondary = (spec, context)=>{
|
|
9428
|
-
const result = {
|
|
9429
|
-
...spec
|
|
9430
|
-
};
|
|
9431
|
-
const { advancedVSeed, vseed } = context;
|
|
9432
|
-
const { datasetReshapeInfo } = advancedVSeed;
|
|
9433
|
-
const { unfoldInfo, foldInfoList, id } = datasetReshapeInfo[0];
|
|
9434
|
-
result.id = `${id}-secondary-series`;
|
|
9435
|
-
result.type = 'line';
|
|
9436
|
-
result.direction = 'vertical';
|
|
9437
|
-
result.xField = unfoldInfo.encodingX;
|
|
9438
|
-
if (foldInfoList?.[1]) result.yField = foldInfoList[1].measureValue;
|
|
9439
|
-
result.seriesField = isLinearColor(advancedVSeed, vseed) ? unfoldInfo.encodingDetail : unfoldInfo.encodingColorId;
|
|
9440
|
-
result.animation = true;
|
|
9441
|
-
return result;
|
|
9442
|
-
};
|
|
9443
|
-
const DEFAULT_DUAL_CHART_TYPE = {
|
|
9444
|
-
primary: 'column',
|
|
9445
|
-
secondary: 'line'
|
|
9446
|
-
};
|
|
9447
|
-
const dualChartTypePrimary = (spec, context)=>{
|
|
9448
|
-
const result = {
|
|
9449
|
-
...spec,
|
|
9450
|
-
zIndex: 1001
|
|
9451
|
-
};
|
|
9452
|
-
const { advancedVSeed, vseed } = context;
|
|
9453
|
-
const { chartType } = vseed;
|
|
9454
|
-
const { datasetReshapeInfo } = advancedVSeed;
|
|
9455
|
-
const index = datasetReshapeInfo[0].index;
|
|
9456
|
-
const config = advancedVSeed.config?.[chartType]?.dualChartType || DEFAULT_DUAL_CHART_TYPE;
|
|
9457
|
-
const primary = (Array.isArray(config) ? config[index]?.primary || config[0]?.primary : config.primary) ?? DEFAULT_DUAL_CHART_TYPE.primary;
|
|
9458
|
-
const secondary = (Array.isArray(config) ? config[index]?.secondary || config[0]?.secondary : config.secondary) ?? DEFAULT_DUAL_CHART_TYPE.secondary;
|
|
9459
|
-
const bothColumn = 'column' === primary && 'column' === secondary;
|
|
9460
|
-
const type = bothColumn ? 'columnParallel' : primary;
|
|
9461
|
-
switch(type){
|
|
9462
|
-
case 'line':
|
|
9463
|
-
result.type = 'line';
|
|
9464
|
-
break;
|
|
9465
|
-
case 'column':
|
|
9466
|
-
result.type = 'bar';
|
|
9467
|
-
result.zIndex = 1000;
|
|
9468
|
-
break;
|
|
9469
|
-
case 'columnParallel':
|
|
9470
|
-
{
|
|
9471
|
-
const columnSpec = result;
|
|
9472
|
-
if (Array.isArray(columnSpec.xField)) columnSpec.xField.push(datasetReshapeInfo[0].unfoldInfo.encodingDetail);
|
|
9473
|
-
else if (columnSpec.xField) columnSpec.xField = [
|
|
9474
|
-
columnSpec.xField,
|
|
9475
|
-
datasetReshapeInfo[0].unfoldInfo.encodingDetail
|
|
9476
|
-
];
|
|
9477
|
-
columnSpec.type = 'bar';
|
|
9478
|
-
result.zIndex = 1000;
|
|
9479
|
-
break;
|
|
9480
|
-
}
|
|
9481
|
-
case 'columnPercent':
|
|
9482
|
-
result.type = 'bar';
|
|
9483
|
-
result.percent = true;
|
|
9484
|
-
result.zIndex = 1000;
|
|
9485
|
-
break;
|
|
9486
|
-
case 'area':
|
|
9487
|
-
result.type = 'area';
|
|
9488
|
-
break;
|
|
9489
|
-
case 'areaPercent':
|
|
9490
|
-
result.type = 'area';
|
|
9491
|
-
result.percent = true;
|
|
9492
|
-
break;
|
|
9493
|
-
case 'scatter':
|
|
9494
|
-
result.type = 'scatter';
|
|
9495
|
-
break;
|
|
9496
|
-
default:
|
|
9497
|
-
result.type = primary;
|
|
9498
|
-
}
|
|
9499
|
-
return result;
|
|
9500
|
-
};
|
|
9501
|
-
const dualChartTypeSecondary = (spec, context)=>{
|
|
9502
|
-
const result = {
|
|
9503
|
-
...spec,
|
|
9504
|
-
zIndex: 1001
|
|
9067
|
+
const initDualAxis = (options)=>(spec, context)=>{
|
|
9068
|
+
const result = {
|
|
9069
|
+
...spec
|
|
9070
|
+
};
|
|
9071
|
+
const { advancedVSeed, vseed } = context;
|
|
9072
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
|
9073
|
+
const { unfoldInfo, id } = datasetReshapeInfo[0];
|
|
9074
|
+
result.id = `${id}-${options.axisType}-${options.chartType}`;
|
|
9075
|
+
result.type = 'line' === options.chartType ? 'line' : 'bar';
|
|
9076
|
+
result.direction = 'vertical';
|
|
9077
|
+
result.xField = unfoldInfo.encodingX;
|
|
9078
|
+
result.seriesField = isLinearColor(advancedVSeed, vseed) ? unfoldInfo.encodingDetail : unfoldInfo.encodingColorId;
|
|
9079
|
+
result.yField = options.foldInfo.measureValue;
|
|
9080
|
+
result.animation = true;
|
|
9081
|
+
return result;
|
|
9505
9082
|
};
|
|
9506
|
-
|
|
9507
|
-
const { chartType } = vseed;
|
|
9508
|
-
const { datasetReshapeInfo } = advancedVSeed;
|
|
9509
|
-
const config = advancedVSeed.config?.[chartType]?.dualChartType || DEFAULT_DUAL_CHART_TYPE;
|
|
9510
|
-
const index = datasetReshapeInfo[0].index;
|
|
9511
|
-
const primary = (Array.isArray(config) ? config[index]?.primary || config[0]?.primary : config.primary) ?? DEFAULT_DUAL_CHART_TYPE.primary;
|
|
9512
|
-
const secondary = (Array.isArray(config) ? config[index]?.secondary || config[0]?.secondary : config.secondary) ?? DEFAULT_DUAL_CHART_TYPE.secondary;
|
|
9513
|
-
const bothColumn = 'column' === primary && 'column' === secondary;
|
|
9514
|
-
const type = bothColumn ? 'columnParallel' : secondary;
|
|
9083
|
+
function applyChartType(result, type, datasetReshapeInfo) {
|
|
9515
9084
|
switch(type){
|
|
9516
9085
|
case 'line':
|
|
9517
9086
|
result.type = 'line';
|
|
@@ -9548,181 +9117,105 @@
|
|
|
9548
9117
|
result.type = 'scatter';
|
|
9549
9118
|
break;
|
|
9550
9119
|
default:
|
|
9551
|
-
result.type =
|
|
9552
|
-
}
|
|
9553
|
-
return result;
|
|
9554
|
-
};
|
|
9555
|
-
const datasetPrimary = (spec, context)=>{
|
|
9556
|
-
const { advancedVSeed, vseed } = context;
|
|
9557
|
-
const { analysis, datasetReshapeInfo } = advancedVSeed;
|
|
9558
|
-
const orderMapping = analysis?.orderMapping || {};
|
|
9559
|
-
const { unfoldInfo } = datasetReshapeInfo[0];
|
|
9560
|
-
const x = unfoldInfo.encodingX;
|
|
9561
|
-
const colorId = unfoldInfo.encodingColorId;
|
|
9562
|
-
const id = datasetReshapeInfo[0].id;
|
|
9563
|
-
const fields = {};
|
|
9564
|
-
if (x) {
|
|
9565
|
-
const order = orderMapping[x];
|
|
9566
|
-
if (order) fields[x] = {
|
|
9567
|
-
sortIndex: 0,
|
|
9568
|
-
domain: order,
|
|
9569
|
-
lockStatisticsByDomain: true
|
|
9570
|
-
};
|
|
9571
|
-
else fields[x] = {
|
|
9572
|
-
sortIndex: 0
|
|
9573
|
-
};
|
|
9120
|
+
result.type = type;
|
|
9574
9121
|
}
|
|
9575
|
-
|
|
9576
|
-
|
|
9577
|
-
|
|
9578
|
-
|
|
9579
|
-
|
|
9580
|
-
lockStatisticsByDomain: true
|
|
9581
|
-
};
|
|
9582
|
-
else fields[colorId] = {
|
|
9583
|
-
sortIndex: 0
|
|
9122
|
+
}
|
|
9123
|
+
const dualChartType = (options)=>(spec, context)=>{
|
|
9124
|
+
const result = {
|
|
9125
|
+
...spec,
|
|
9126
|
+
zIndex: 1001
|
|
9584
9127
|
};
|
|
9585
|
-
|
|
9586
|
-
|
|
9587
|
-
|
|
9588
|
-
|
|
9589
|
-
|
|
9590
|
-
|
|
9591
|
-
|
|
9592
|
-
}
|
|
9128
|
+
const { advancedVSeed } = context;
|
|
9129
|
+
const { datasetReshapeInfo, reshapeMeasures = [] } = advancedVSeed;
|
|
9130
|
+
const index = datasetReshapeInfo[0].index;
|
|
9131
|
+
const chartTypes = reshapeMeasures[index].map((m)=>m.chartType);
|
|
9132
|
+
const type = chartTypes.every((ct)=>'column' === ct) && reshapeMeasures[index].length > 1 && reshapeMeasures[index].some((m)=>'primaryYAxis' === m.encoding) && reshapeMeasures[index].some((m)=>'secondaryYAxis' === m.encoding) ? 'columnParallel' : options.chartType;
|
|
9133
|
+
applyChartType(result, type, datasetReshapeInfo);
|
|
9134
|
+
return result;
|
|
9593
9135
|
};
|
|
9594
|
-
|
|
9595
|
-
|
|
9596
|
-
|
|
9597
|
-
|
|
9598
|
-
|
|
9599
|
-
|
|
9600
|
-
|
|
9601
|
-
|
|
9602
|
-
|
|
9603
|
-
|
|
9604
|
-
|
|
9605
|
-
|
|
9606
|
-
|
|
9607
|
-
|
|
9608
|
-
|
|
9609
|
-
|
|
9610
|
-
|
|
9611
|
-
|
|
9612
|
-
|
|
9613
|
-
};
|
|
9614
|
-
}
|
|
9615
|
-
if (colorId) {
|
|
9616
|
-
const order = orderMapping[colorId];
|
|
9617
|
-
if (order) fields[colorId] = {
|
|
9618
|
-
sortIndex: 0,
|
|
9619
|
-
domain: order,
|
|
9620
|
-
lockStatisticsByDomain: true
|
|
9621
|
-
};
|
|
9622
|
-
else fields[colorId] = {
|
|
9623
|
-
sortIndex: 0
|
|
9624
|
-
};
|
|
9625
|
-
}
|
|
9626
|
-
return {
|
|
9627
|
-
...spec,
|
|
9628
|
-
data: {
|
|
9629
|
-
id: `${id}-secondary-dataset`,
|
|
9630
|
-
values: chatType_isPivotChart(vseed) ? void 0 : advancedVSeed.dataset,
|
|
9631
|
-
fields: fields
|
|
9136
|
+
const datasetDualAxis = (options)=>(spec, context)=>{
|
|
9137
|
+
const { advancedVSeed, vseed } = context;
|
|
9138
|
+
const { analysis, datasetReshapeInfo } = advancedVSeed;
|
|
9139
|
+
const orderMapping = analysis?.orderMapping || {};
|
|
9140
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
|
9141
|
+
const x = unfoldInfo.encodingX;
|
|
9142
|
+
const colorId = unfoldInfo.encodingColorId;
|
|
9143
|
+
const id = datasetReshapeInfo[0].id;
|
|
9144
|
+
const fields = {};
|
|
9145
|
+
if (x) {
|
|
9146
|
+
const order = orderMapping[x];
|
|
9147
|
+
if (order) fields[x] = {
|
|
9148
|
+
sortIndex: 0,
|
|
9149
|
+
domain: order,
|
|
9150
|
+
lockStatisticsByDomain: true
|
|
9151
|
+
};
|
|
9152
|
+
else fields[x] = {
|
|
9153
|
+
sortIndex: 0
|
|
9154
|
+
};
|
|
9632
9155
|
}
|
|
9633
|
-
|
|
9634
|
-
|
|
9635
|
-
|
|
9636
|
-
|
|
9637
|
-
|
|
9638
|
-
|
|
9639
|
-
|
|
9640
|
-
|
|
9641
|
-
|
|
9642
|
-
|
|
9643
|
-
const foldInfoList = datasetReshapeInfo[0].foldInfoList;
|
|
9644
|
-
result.label = buildLabel(baseConfig.label, vseed.measures, vseed.dimensions, advancedVSeed.dimensions, advancedVSeed.measures, encoding, [
|
|
9645
|
-
foldInfoList[0]
|
|
9646
|
-
]);
|
|
9647
|
-
result.label.zIndex = 1002;
|
|
9648
|
-
return result;
|
|
9649
|
-
};
|
|
9650
|
-
const labelSecondary = (spec, context)=>{
|
|
9651
|
-
const result = {
|
|
9652
|
-
...spec
|
|
9653
|
-
};
|
|
9654
|
-
const { advancedVSeed, vseed } = context;
|
|
9655
|
-
const { datasetReshapeInfo, encoding } = advancedVSeed;
|
|
9656
|
-
const { chartType } = advancedVSeed;
|
|
9657
|
-
const baseConfig = advancedVSeed.config[chartType];
|
|
9658
|
-
const foldInfoList = datasetReshapeInfo[0].foldInfoList;
|
|
9659
|
-
result.label = buildLabel(baseConfig.label, vseed.measures, vseed.dimensions, advancedVSeed.dimensions, advancedVSeed.measures, encoding, [
|
|
9660
|
-
foldInfoList[1]
|
|
9661
|
-
]);
|
|
9662
|
-
result.label.zIndex = 1002;
|
|
9663
|
-
return result;
|
|
9664
|
-
};
|
|
9665
|
-
const tooltipPrimary = (spec, context)=>{
|
|
9666
|
-
const result = {
|
|
9667
|
-
...spec
|
|
9668
|
-
};
|
|
9669
|
-
const { advancedVSeed, vseed } = context;
|
|
9670
|
-
const { measures, datasetReshapeInfo, chartType, dimensions, encoding } = advancedVSeed;
|
|
9671
|
-
const baseConfig = advancedVSeed.config[chartType];
|
|
9672
|
-
const { tooltip = {
|
|
9673
|
-
enable: true
|
|
9674
|
-
} } = baseConfig;
|
|
9675
|
-
const { enable } = tooltip;
|
|
9676
|
-
const foldInfoList = datasetReshapeInfo[0].foldInfoList;
|
|
9677
|
-
const unfoldInfo = datasetReshapeInfo[0].unfoldInfo;
|
|
9678
|
-
result.tooltip = {
|
|
9679
|
-
visible: enable,
|
|
9680
|
-
mark: {
|
|
9681
|
-
title: {
|
|
9682
|
-
visible: false
|
|
9683
|
-
},
|
|
9684
|
-
content: createMarkContent(encoding.tooltip || [], dimensions, findAllMeasures(vseed.measures), foldInfoList[0], unfoldInfo)
|
|
9685
|
-
},
|
|
9686
|
-
dimension: {
|
|
9687
|
-
title: {
|
|
9688
|
-
visible: true
|
|
9689
|
-
},
|
|
9690
|
-
content: createDimensionContent(dimensions, measures, foldInfoList[0], unfoldInfo)
|
|
9156
|
+
if (colorId) {
|
|
9157
|
+
const order = orderMapping[colorId];
|
|
9158
|
+
if (order) fields[colorId] = {
|
|
9159
|
+
sortIndex: 0,
|
|
9160
|
+
domain: order,
|
|
9161
|
+
lockStatisticsByDomain: true
|
|
9162
|
+
};
|
|
9163
|
+
else fields[colorId] = {
|
|
9164
|
+
sortIndex: 0
|
|
9165
|
+
};
|
|
9691
9166
|
}
|
|
9167
|
+
return {
|
|
9168
|
+
...spec,
|
|
9169
|
+
data: {
|
|
9170
|
+
id: `${id}-${options.axisType}-${options.chartType}`,
|
|
9171
|
+
values: chatType_isPivotChart(vseed) ? void 0 : advancedVSeed.dataset,
|
|
9172
|
+
fields: fields
|
|
9173
|
+
}
|
|
9174
|
+
};
|
|
9692
9175
|
};
|
|
9693
|
-
|
|
9694
|
-
|
|
9695
|
-
|
|
9696
|
-
|
|
9697
|
-
|
|
9176
|
+
const labelDualAxis = (options)=>(spec, context)=>{
|
|
9177
|
+
const result = {
|
|
9178
|
+
...spec
|
|
9179
|
+
};
|
|
9180
|
+
const { advancedVSeed, vseed } = context;
|
|
9181
|
+
const { encoding } = advancedVSeed;
|
|
9182
|
+
const { chartType } = advancedVSeed;
|
|
9183
|
+
const baseConfig = advancedVSeed.config[chartType];
|
|
9184
|
+
result.label = buildLabel(baseConfig.label, vseed.measures, vseed.dimensions, advancedVSeed.dimensions, advancedVSeed.measures, encoding, [
|
|
9185
|
+
options.foldInfo
|
|
9186
|
+
]);
|
|
9187
|
+
result.label.zIndex = 1002;
|
|
9188
|
+
return result;
|
|
9698
9189
|
};
|
|
9699
|
-
|
|
9700
|
-
|
|
9701
|
-
|
|
9702
|
-
|
|
9703
|
-
|
|
9704
|
-
|
|
9705
|
-
|
|
9706
|
-
|
|
9707
|
-
|
|
9708
|
-
|
|
9709
|
-
|
|
9710
|
-
|
|
9711
|
-
|
|
9712
|
-
|
|
9713
|
-
|
|
9714
|
-
|
|
9715
|
-
|
|
9716
|
-
|
|
9717
|
-
|
|
9718
|
-
title: {
|
|
9719
|
-
visible: true
|
|
9190
|
+
const tooltipOfDualAxisSeries = (options)=>(spec, context)=>{
|
|
9191
|
+
const result = {
|
|
9192
|
+
...spec
|
|
9193
|
+
};
|
|
9194
|
+
const { advancedVSeed, vseed } = context;
|
|
9195
|
+
const { measures = [], datasetReshapeInfo, chartType, dimensions = [], encoding } = advancedVSeed;
|
|
9196
|
+
const baseConfig = advancedVSeed.config[chartType];
|
|
9197
|
+
const { tooltip = {
|
|
9198
|
+
enable: true
|
|
9199
|
+
} } = baseConfig;
|
|
9200
|
+
const { enable } = tooltip;
|
|
9201
|
+
const unfoldInfo = datasetReshapeInfo[0].unfoldInfo;
|
|
9202
|
+
result.tooltip = {
|
|
9203
|
+
visible: enable,
|
|
9204
|
+
mark: {
|
|
9205
|
+
title: {
|
|
9206
|
+
visible: false
|
|
9207
|
+
},
|
|
9208
|
+
content: createMarkContent(encoding.tooltip || [], dimensions, vseed.measures, options.foldInfo, unfoldInfo)
|
|
9720
9209
|
},
|
|
9721
|
-
|
|
9722
|
-
|
|
9210
|
+
dimension: {
|
|
9211
|
+
title: {
|
|
9212
|
+
visible: true
|
|
9213
|
+
},
|
|
9214
|
+
content: createDimensionContent(dimensions, measures, options.foldInfo, unfoldInfo)
|
|
9215
|
+
}
|
|
9216
|
+
};
|
|
9217
|
+
return result;
|
|
9723
9218
|
};
|
|
9724
|
-
return result;
|
|
9725
|
-
};
|
|
9726
9219
|
const tooltipDualAxis = (spec, context)=>{
|
|
9727
9220
|
const result = {
|
|
9728
9221
|
...spec
|
|
@@ -9761,25 +9254,29 @@
|
|
|
9761
9254
|
};
|
|
9762
9255
|
const { advancedVSeed, vseed } = context;
|
|
9763
9256
|
const { chartType } = vseed;
|
|
9764
|
-
const { datasetReshapeInfo,
|
|
9257
|
+
const { datasetReshapeInfo, reshapeMeasures = [] } = advancedVSeed;
|
|
9765
9258
|
const { index, id: reshapeInfoId, foldInfoList } = datasetReshapeInfo[0];
|
|
9766
9259
|
const primaryYAxis = advancedVSeed.config?.[chartType]?.primaryYAxis;
|
|
9767
9260
|
const yAxisConfig = Array.isArray(primaryYAxis) ? primaryYAxis[index] || primaryYAxis[0] : primaryYAxis;
|
|
9768
9261
|
const alignTicks = advancedVSeed.config?.[chartType]?.alignTicks;
|
|
9769
9262
|
const alignTicksConfig = Array.isArray(alignTicks) ? alignTicks[index] || alignTicks[0] : alignTicks;
|
|
9770
|
-
if (
|
|
9771
|
-
const
|
|
9263
|
+
if (!foldInfoList) return result;
|
|
9264
|
+
const primaryFoldInfoList = foldInfoList.filter((f)=>f.measureValue.startsWith(FoldPrimaryMeasureValue));
|
|
9265
|
+
const isEmpty = !primaryFoldInfoList.length || primaryFoldInfoList.every((foldInfo)=>!Object.keys(foldInfo.foldMap).length);
|
|
9772
9266
|
const id = `${reshapeInfoId}-primary-axis`;
|
|
9773
|
-
const
|
|
9774
|
-
`${reshapeInfoId}-primary-series`,
|
|
9775
|
-
`${reshapeInfoId}-secondary-series`
|
|
9776
|
-
];
|
|
9777
|
-
const seriesId = alignTicksConfig ? seriesIds : seriesIds[0];
|
|
9267
|
+
const seriesId = alignTicksConfig ? spec.series.map((s)=>s.id) : spec.series.filter((s)=>s.yField.startsWith(FoldPrimaryMeasureValue)).map((s)=>s.id);
|
|
9778
9268
|
if (!result.axes) result.axes = [];
|
|
9779
9269
|
const { autoFormat, numFormat = {} } = yAxisConfig ?? {};
|
|
9780
9270
|
const formatter = createNumFormatter(numFormat);
|
|
9781
9271
|
const formatMethod = (value)=>createLinearFormat(value, autoFormat, numFormat, formatter);
|
|
9782
|
-
const
|
|
9272
|
+
const measures = flatReshapeMeasures(reshapeMeasures);
|
|
9273
|
+
const measureIds = primaryFoldInfoList.reduce((res, foldInfo)=>{
|
|
9274
|
+
Object.keys(foldInfo.foldMap).forEach((k)=>{
|
|
9275
|
+
if (!res.includes(k)) res.push(k);
|
|
9276
|
+
});
|
|
9277
|
+
return res;
|
|
9278
|
+
}, []);
|
|
9279
|
+
const titleText = yAxisConfig?.title?.titleText || measures.filter((m)=>'primaryYAxis' === m.encoding && measureIds.includes(m.id)).map((m)=>m.alias ?? m.id).join(' & ');
|
|
9783
9280
|
const linearAxis = {
|
|
9784
9281
|
...linearAxisStyle({
|
|
9785
9282
|
...yAxisConfig,
|
|
@@ -9789,7 +9286,7 @@
|
|
|
9789
9286
|
id,
|
|
9790
9287
|
seriesId
|
|
9791
9288
|
}),
|
|
9792
|
-
visible:
|
|
9289
|
+
visible: isEmpty ? false : yAxisConfig?.visible ?? true
|
|
9793
9290
|
};
|
|
9794
9291
|
result.axes = [
|
|
9795
9292
|
...result.axes,
|
|
@@ -9803,30 +9300,28 @@
|
|
|
9803
9300
|
};
|
|
9804
9301
|
const { advancedVSeed, vseed } = context;
|
|
9805
9302
|
const { chartType } = vseed;
|
|
9806
|
-
const { datasetReshapeInfo,
|
|
9303
|
+
const { datasetReshapeInfo, reshapeMeasures = [] } = advancedVSeed;
|
|
9807
9304
|
const { index, id: reshapeInfoId, foldInfoList } = datasetReshapeInfo[0];
|
|
9808
9305
|
const secondaryYAxis = advancedVSeed.config?.[chartType]?.secondaryYAxis;
|
|
9809
9306
|
const yAxisConfig = Array.isArray(secondaryYAxis) ? secondaryYAxis[index] || secondaryYAxis[0] : secondaryYAxis;
|
|
9810
9307
|
const alignTicks = advancedVSeed.config?.[chartType]?.alignTicks;
|
|
9811
9308
|
const alignTicksConfig = Array.isArray(alignTicks) ? alignTicks[index] || alignTicks[0] : alignTicks;
|
|
9812
|
-
if (
|
|
9813
|
-
const
|
|
9814
|
-
const
|
|
9309
|
+
if (!foldInfoList) return result;
|
|
9310
|
+
const secondaryFoldInfoList = foldInfoList.filter((f)=>f.measureValue.startsWith(FoldSecondaryMeasureValue));
|
|
9311
|
+
const isEmptySecondary = !secondaryFoldInfoList.length || secondaryFoldInfoList.every((foldInfo)=>!Object.keys(foldInfo.foldMap).length);
|
|
9312
|
+
const onlySecondary = !isEmptySecondary && foldInfoList.length && foldInfoList.every((f)=>f.measureValue.startsWith(FoldSecondaryMeasureValue) || 0 === Object.keys(f.foldMap).length);
|
|
9815
9313
|
const sync = {
|
|
9816
9314
|
axisId: `${reshapeInfoId}-primary-axis`,
|
|
9817
9315
|
zeroAlign: true
|
|
9818
9316
|
};
|
|
9819
9317
|
const id = `${reshapeInfoId}-secondary-axis`;
|
|
9820
|
-
const
|
|
9821
|
-
`${reshapeInfoId}-primary-series`,
|
|
9822
|
-
`${reshapeInfoId}-secondary-series`
|
|
9823
|
-
];
|
|
9824
|
-
const seriesId = alignTicksConfig ? seriesIds : seriesIds[1];
|
|
9318
|
+
const seriesId = alignTicksConfig ? spec.series.map((s)=>s.id) : spec.series.filter((s)=>s.yField.startsWith(FoldSecondaryMeasureValue)).map((s)=>s.id);
|
|
9825
9319
|
if (!result.axes) result.axes = [];
|
|
9826
9320
|
const { autoFormat, numFormat = {} } = yAxisConfig ?? {};
|
|
9827
9321
|
const formatter = createNumFormatter(numFormat);
|
|
9828
9322
|
const formatMethod = (value)=>createLinearFormat(value, autoFormat, numFormat, formatter);
|
|
9829
|
-
const
|
|
9323
|
+
const measures = flatReshapeMeasures(reshapeMeasures);
|
|
9324
|
+
const titleText = yAxisConfig?.title?.titleText || measures.filter((m)=>'secondaryYAxis' === m.encoding).map((m)=>m.alias ?? m.id).join(' & ');
|
|
9830
9325
|
const baseStyle = linearAxisStyle({
|
|
9831
9326
|
...yAxisConfig,
|
|
9832
9327
|
orient: 'right',
|
|
@@ -9856,28 +9351,20 @@
|
|
|
9856
9351
|
};
|
|
9857
9352
|
const { advancedVSeed } = context;
|
|
9858
9353
|
const { datasetReshapeInfo, chartType } = advancedVSeed;
|
|
9859
|
-
const { unfoldInfo
|
|
9354
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
|
9860
9355
|
const baseConfig = advancedVSeed.config[chartType];
|
|
9861
9356
|
if (!baseConfig || !baseConfig.color) return result;
|
|
9862
9357
|
const { color } = baseConfig;
|
|
9863
9358
|
const { colorScheme, linearColorScheme } = color;
|
|
9864
9359
|
result.color = {
|
|
9865
|
-
type: 'linear',
|
|
9866
|
-
range: linearColorScheme || colorScheme || [],
|
|
9867
|
-
domain:
|
|
9868
|
-
|
|
9869
|
-
dataId: `${id}-primary-dataset`,
|
|
9870
|
-
fields: [
|
|
9871
|
-
unfoldInfo.encodingColor
|
|
9872
|
-
]
|
|
9873
|
-
},
|
|
9874
|
-
{
|
|
9875
|
-
dataId: `${id}-secondary-dataset`,
|
|
9360
|
+
type: 'linear',
|
|
9361
|
+
range: linearColorScheme || colorScheme || [],
|
|
9362
|
+
domain: spec.series.map((s)=>({
|
|
9363
|
+
dataId: s.data.id,
|
|
9876
9364
|
fields: [
|
|
9877
9365
|
unfoldInfo.encodingColor
|
|
9878
9366
|
]
|
|
9879
|
-
}
|
|
9880
|
-
]
|
|
9367
|
+
}))
|
|
9881
9368
|
};
|
|
9882
9369
|
return result;
|
|
9883
9370
|
};
|
|
@@ -9910,14 +9397,14 @@
|
|
|
9910
9397
|
const annotationPointOfDualAxis = generateAnnotationPointPipe({
|
|
9911
9398
|
findSelectedDatas: (dataset, s, spec, context)=>dataset.reduce((res, d)=>{
|
|
9912
9399
|
const { advancedVSeed } = context;
|
|
9913
|
-
const allMeasureIds =
|
|
9400
|
+
const allMeasureIds = flatReshapeMeasures(advancedVSeed.reshapeMeasures ?? []).map((m)=>m.id);
|
|
9914
9401
|
const pickedDatum = pickWithout(d, allMeasureIds.filter((id)=>id !== d[MeasureId]));
|
|
9915
9402
|
if (selector_selector(pickedDatum, s)) res.push(pickedDatum);
|
|
9916
9403
|
return res;
|
|
9917
9404
|
}, []),
|
|
9918
9405
|
generateMarkPoint: (datum, spec, context)=>{
|
|
9919
9406
|
const { advancedVSeed } = context;
|
|
9920
|
-
const allMeasureIds =
|
|
9407
|
+
const allMeasureIds = flatReshapeMeasures(advancedVSeed.reshapeMeasures ?? []).map((m)=>m.id);
|
|
9921
9408
|
return spec.series?.map((s, index)=>({
|
|
9922
9409
|
relativeSeriesIndex: index,
|
|
9923
9410
|
coordinate: (data)=>data.find((item)=>isSubset(datum, item, allMeasureIds.filter((id)=>id !== item[MeasureId])))
|
|
@@ -9926,26 +9413,12 @@
|
|
|
9926
9413
|
});
|
|
9927
9414
|
const dualAxis = [
|
|
9928
9415
|
seriesDualAxis([
|
|
9929
|
-
|
|
9930
|
-
|
|
9931
|
-
|
|
9932
|
-
|
|
9933
|
-
|
|
9934
|
-
progressive,
|
|
9935
|
-
barMaxWidth_barMaxWidth,
|
|
9936
|
-
barGapInGroup_barGapInGroup,
|
|
9937
|
-
stackCornerRadius_stackCornerRadius,
|
|
9938
|
-
barStyleFilter(colorBarStyleFill(barStyle_barStyle)),
|
|
9939
|
-
pointStyleFilter(colorPointStyleFill(pointStyle_pointStyle)),
|
|
9940
|
-
pointStyleFilter(pointStateDimensionHover),
|
|
9941
|
-
lineStyleFilter(colorLineStyleFill(lineStyle_lineStyle)),
|
|
9942
|
-
areaStyleFilter(colorAreaStyleFill(areaStyle_areaStyle))
|
|
9416
|
+
initDualAxis,
|
|
9417
|
+
dualChartType,
|
|
9418
|
+
datasetDualAxis,
|
|
9419
|
+
labelDualAxis,
|
|
9420
|
+
tooltipOfDualAxisSeries
|
|
9943
9421
|
], [
|
|
9944
|
-
initDualAxisSecondary,
|
|
9945
|
-
dualChartTypeSecondary,
|
|
9946
|
-
datasetSecondary,
|
|
9947
|
-
labelSecondary,
|
|
9948
|
-
tooltipSecondary,
|
|
9949
9422
|
progressive,
|
|
9950
9423
|
barMaxWidth_barMaxWidth,
|
|
9951
9424
|
barGapInGroup_barGapInGroup,
|
|
@@ -9976,35 +9449,21 @@
|
|
|
9976
9449
|
datasetPivot,
|
|
9977
9450
|
pivotIndicators_pivotIndicators([
|
|
9978
9451
|
series_series([
|
|
9979
|
-
|
|
9980
|
-
|
|
9981
|
-
|
|
9982
|
-
|
|
9983
|
-
|
|
9984
|
-
progressive,
|
|
9985
|
-
stackCornerRadius_stackCornerRadius,
|
|
9986
|
-
barMaxWidth_barMaxWidth,
|
|
9987
|
-
barGapInGroup_barGapInGroup,
|
|
9988
|
-
colorBarStyleFill(barStyle_barStyle),
|
|
9989
|
-
colorPointStyleFill(pointStyle_pointStyle),
|
|
9990
|
-
pointStateDimensionHover,
|
|
9991
|
-
colorLineStyleFill(lineStyle_lineStyle),
|
|
9992
|
-
colorAreaStyleFill(areaStyle_areaStyle)
|
|
9452
|
+
initDualAxis,
|
|
9453
|
+
dualChartType,
|
|
9454
|
+
datasetDualAxis,
|
|
9455
|
+
labelDualAxis,
|
|
9456
|
+
tooltipOfDualAxisSeries
|
|
9993
9457
|
], [
|
|
9994
|
-
initDualAxisSecondary,
|
|
9995
|
-
dualChartTypeSecondary,
|
|
9996
|
-
datasetSecondary,
|
|
9997
|
-
labelSecondary,
|
|
9998
|
-
tooltipSecondary,
|
|
9999
9458
|
progressive,
|
|
10000
|
-
stackCornerRadius_stackCornerRadius,
|
|
10001
9459
|
barMaxWidth_barMaxWidth,
|
|
10002
9460
|
barGapInGroup_barGapInGroup,
|
|
10003
|
-
|
|
10004
|
-
|
|
10005
|
-
|
|
10006
|
-
|
|
10007
|
-
|
|
9461
|
+
stackCornerRadius_stackCornerRadius,
|
|
9462
|
+
barStyleFilter(colorBarStyleFill(barStyle_barStyle)),
|
|
9463
|
+
pointStyleFilter(colorPointStyleFill(pointStyle_pointStyle)),
|
|
9464
|
+
pointStyleFilter(pointStateDimensionHover),
|
|
9465
|
+
lineStyleFilter(colorLineStyleFill(lineStyle_lineStyle)),
|
|
9466
|
+
areaStyleFilter(colorAreaStyleFill(areaStyle_areaStyle))
|
|
10008
9467
|
]),
|
|
10009
9468
|
xBand,
|
|
10010
9469
|
yLinearPrimary,
|
|
@@ -10032,10 +9491,9 @@
|
|
|
10032
9491
|
Builder._specPipelineMap.dualAxis = dualAxisSpecPipeline;
|
|
10033
9492
|
};
|
|
10034
9493
|
const defaultEncodingForPie = (advancedVSeed)=>{
|
|
10035
|
-
const { measures
|
|
10036
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
9494
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
10037
9495
|
const encoding = {};
|
|
10038
|
-
pie_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(
|
|
9496
|
+
pie_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
|
|
10039
9497
|
pie_generateDefaultMeasureEncoding(measures, encoding);
|
|
10040
9498
|
return {
|
|
10041
9499
|
...advancedVSeed,
|
|
@@ -10043,12 +9501,11 @@
|
|
|
10043
9501
|
};
|
|
10044
9502
|
};
|
|
10045
9503
|
const encodingForPie = (advancedVSeed)=>{
|
|
10046
|
-
const { measures
|
|
10047
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
9504
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
10048
9505
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
10049
9506
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
10050
9507
|
const encoding = {};
|
|
10051
|
-
const hasMulti = hasMultipleMeasureInSingleView(
|
|
9508
|
+
const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures);
|
|
10052
9509
|
if (hasDimensionEncoding) pie_generateDimensionEncoding(dimensions, encoding, hasMulti);
|
|
10053
9510
|
else pie_generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
|
|
10054
9511
|
if (hasMeasureEncoding) pie_generateMeasureEncoding(measures, encoding);
|
|
@@ -10104,16 +9561,17 @@
|
|
|
10104
9561
|
defaultDimensions_defaultDimensions,
|
|
10105
9562
|
defaultMeasureId_defaultMeasureId,
|
|
10106
9563
|
encodingAdapter([
|
|
10107
|
-
buildMeasures
|
|
9564
|
+
buildMeasures([
|
|
9565
|
+
'angle',
|
|
9566
|
+
'detail'
|
|
9567
|
+
]),
|
|
10108
9568
|
defaultEncodingForPie
|
|
10109
9569
|
], [
|
|
10110
|
-
buildMeasures
|
|
10111
|
-
|
|
10112
|
-
|
|
10113
|
-
'tooltip',
|
|
10114
|
-
'label',
|
|
10115
|
-
'color'
|
|
9570
|
+
buildMeasures([
|
|
9571
|
+
'angle',
|
|
9572
|
+
'detail'
|
|
10116
9573
|
]),
|
|
9574
|
+
encodingForPie,
|
|
10117
9575
|
pickDimensionsForReshape
|
|
10118
9576
|
]),
|
|
10119
9577
|
pivotAdapter([
|
|
@@ -10269,16 +9727,17 @@
|
|
|
10269
9727
|
defaultDimensions_defaultDimensions,
|
|
10270
9728
|
defaultMeasureId_defaultMeasureId,
|
|
10271
9729
|
encodingAdapter([
|
|
10272
|
-
buildMeasures
|
|
9730
|
+
buildMeasures([
|
|
9731
|
+
'angle',
|
|
9732
|
+
'detail'
|
|
9733
|
+
]),
|
|
10273
9734
|
defaultEncodingForPie
|
|
10274
9735
|
], [
|
|
10275
|
-
buildMeasures
|
|
10276
|
-
|
|
10277
|
-
|
|
10278
|
-
'tooltip',
|
|
10279
|
-
'label',
|
|
10280
|
-
'color'
|
|
9736
|
+
buildMeasures([
|
|
9737
|
+
'angle',
|
|
9738
|
+
'detail'
|
|
10281
9739
|
]),
|
|
9740
|
+
encodingForPie,
|
|
10282
9741
|
pickDimensionsForReshape
|
|
10283
9742
|
]),
|
|
10284
9743
|
pivotAdapter([
|
|
@@ -10360,10 +9819,9 @@
|
|
|
10360
9819
|
Builder._specPipelineMap.donut = donutSpecPipeline;
|
|
10361
9820
|
};
|
|
10362
9821
|
const defaultEncodingForRose = (advancedVSeed)=>{
|
|
10363
|
-
const { measures
|
|
10364
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
9822
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
10365
9823
|
const encoding = {};
|
|
10366
|
-
rose_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(
|
|
9824
|
+
rose_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
|
|
10367
9825
|
rose_generateDefaultMeasureEncoding(measures, encoding);
|
|
10368
9826
|
return {
|
|
10369
9827
|
...advancedVSeed,
|
|
@@ -10371,12 +9829,11 @@
|
|
|
10371
9829
|
};
|
|
10372
9830
|
};
|
|
10373
9831
|
const encodingForRose = (advancedVSeed)=>{
|
|
10374
|
-
const { measures
|
|
10375
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
9832
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
10376
9833
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
10377
9834
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
10378
9835
|
const encoding = {};
|
|
10379
|
-
const hasMulti = hasMultipleMeasureInSingleView(
|
|
9836
|
+
const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures);
|
|
10380
9837
|
if (hasDimensionEncoding) rose_generateDimensionEncoding(dimensions, encoding, hasMulti);
|
|
10381
9838
|
else rose_generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
|
|
10382
9839
|
if (hasMeasureEncoding) rose_generateMeasureEncoding(measures, encoding);
|
|
@@ -10434,16 +9891,17 @@
|
|
|
10434
9891
|
defaultDimensions_defaultDimensions,
|
|
10435
9892
|
defaultMeasureId_defaultMeasureId,
|
|
10436
9893
|
encodingAdapter([
|
|
10437
|
-
buildMeasures
|
|
9894
|
+
buildMeasures([
|
|
9895
|
+
'angle',
|
|
9896
|
+
'detail'
|
|
9897
|
+
]),
|
|
10438
9898
|
defaultEncodingForRose
|
|
10439
9899
|
], [
|
|
10440
|
-
buildMeasures
|
|
10441
|
-
|
|
10442
|
-
|
|
10443
|
-
'tooltip',
|
|
10444
|
-
'label',
|
|
10445
|
-
'color'
|
|
9900
|
+
buildMeasures([
|
|
9901
|
+
'angle',
|
|
9902
|
+
'detail'
|
|
10446
9903
|
]),
|
|
9904
|
+
encodingForRose,
|
|
10447
9905
|
pickDimensionsForReshape
|
|
10448
9906
|
]),
|
|
10449
9907
|
pivotAdapter([
|
|
@@ -10587,16 +10045,17 @@
|
|
|
10587
10045
|
defaultDimensions_defaultDimensions,
|
|
10588
10046
|
defaultMeasureId_defaultMeasureId,
|
|
10589
10047
|
encodingAdapter([
|
|
10590
|
-
buildMeasures
|
|
10048
|
+
buildMeasures([
|
|
10049
|
+
'radius',
|
|
10050
|
+
'detail'
|
|
10051
|
+
]),
|
|
10591
10052
|
defaultEncodingForRose
|
|
10592
10053
|
], [
|
|
10593
|
-
buildMeasures
|
|
10594
|
-
|
|
10595
|
-
|
|
10596
|
-
'tooltip',
|
|
10597
|
-
'label',
|
|
10598
|
-
'color'
|
|
10054
|
+
buildMeasures([
|
|
10055
|
+
'radius',
|
|
10056
|
+
'detail'
|
|
10599
10057
|
]),
|
|
10058
|
+
encodingForRose,
|
|
10600
10059
|
pickDimensionsForReshape
|
|
10601
10060
|
]),
|
|
10602
10061
|
pivotAdapter([
|
|
@@ -10707,10 +10166,9 @@
|
|
|
10707
10166
|
Builder._specPipelineMap.roseParallel = roseParallelSpecPipeline;
|
|
10708
10167
|
};
|
|
10709
10168
|
const defaultEncodingForRadar = (advancedVSeed)=>{
|
|
10710
|
-
const { measures
|
|
10711
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
10169
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
10712
10170
|
const encoding = {};
|
|
10713
|
-
radar_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(
|
|
10171
|
+
radar_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
|
|
10714
10172
|
radar_generateDefaultMeasureEncoding(measures, encoding);
|
|
10715
10173
|
return {
|
|
10716
10174
|
...advancedVSeed,
|
|
@@ -10718,12 +10176,11 @@
|
|
|
10718
10176
|
};
|
|
10719
10177
|
};
|
|
10720
10178
|
const encodingForRadar = (advancedVSeed)=>{
|
|
10721
|
-
const { measures
|
|
10722
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
10179
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
10723
10180
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
10724
10181
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
10725
10182
|
const encoding = {};
|
|
10726
|
-
const hasMulti = hasMultipleMeasureInSingleView(
|
|
10183
|
+
const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures);
|
|
10727
10184
|
if (hasDimensionEncoding) radar_generateDimensionEncoding(dimensions, encoding, hasMulti);
|
|
10728
10185
|
else radar_generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
|
|
10729
10186
|
if (hasMeasureEncoding) radar_generateMeasureEncoding(measures, encoding);
|
|
@@ -10783,16 +10240,17 @@
|
|
|
10783
10240
|
defaultDimensions_defaultDimensions,
|
|
10784
10241
|
defaultMeasureId_defaultMeasureId,
|
|
10785
10242
|
encodingAdapter([
|
|
10786
|
-
buildMeasures
|
|
10243
|
+
buildMeasures([
|
|
10244
|
+
'radius',
|
|
10245
|
+
'detail'
|
|
10246
|
+
]),
|
|
10787
10247
|
defaultEncodingForRadar
|
|
10788
10248
|
], [
|
|
10789
|
-
buildMeasures
|
|
10790
|
-
|
|
10791
|
-
|
|
10792
|
-
'tooltip',
|
|
10793
|
-
'label',
|
|
10794
|
-
'color'
|
|
10249
|
+
buildMeasures([
|
|
10250
|
+
'radius',
|
|
10251
|
+
'detail'
|
|
10795
10252
|
]),
|
|
10253
|
+
encodingForRadar,
|
|
10796
10254
|
pickDimensionsForReshape
|
|
10797
10255
|
]),
|
|
10798
10256
|
pivotAdapter([
|
|
@@ -10926,10 +10384,9 @@
|
|
|
10926
10384
|
Builder._specPipelineMap.radar = radarSpecPipeline;
|
|
10927
10385
|
};
|
|
10928
10386
|
const defaultEncodingForFunnel = (advancedVSeed)=>{
|
|
10929
|
-
const { measures
|
|
10930
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
10387
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
10931
10388
|
const encoding = {};
|
|
10932
|
-
funnel_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(
|
|
10389
|
+
funnel_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
|
|
10933
10390
|
funnel_generateDefaultMeasureEncoding(measures, encoding);
|
|
10934
10391
|
return {
|
|
10935
10392
|
...advancedVSeed,
|
|
@@ -10937,12 +10394,11 @@
|
|
|
10937
10394
|
};
|
|
10938
10395
|
};
|
|
10939
10396
|
const encodingForFunnel = (advancedVSeed)=>{
|
|
10940
|
-
const { measures
|
|
10941
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
10397
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
10942
10398
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
10943
10399
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
10944
10400
|
const encoding = {};
|
|
10945
|
-
const hasMulti = hasMultipleMeasureInSingleView(
|
|
10401
|
+
const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures);
|
|
10946
10402
|
if (hasDimensionEncoding) funnel_generateDimensionEncoding(dimensions, encoding, hasMulti);
|
|
10947
10403
|
else funnel_generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
|
|
10948
10404
|
if (hasMeasureEncoding) funnel_generateMeasureEncoding(measures, encoding);
|
|
@@ -10999,16 +10455,17 @@
|
|
|
10999
10455
|
defaultDimensions_defaultDimensions,
|
|
11000
10456
|
defaultMeasureId_defaultMeasureId,
|
|
11001
10457
|
encodingAdapter([
|
|
11002
|
-
buildMeasures
|
|
10458
|
+
buildMeasures([
|
|
10459
|
+
'size',
|
|
10460
|
+
'detail'
|
|
10461
|
+
]),
|
|
11003
10462
|
defaultEncodingForFunnel
|
|
11004
10463
|
], [
|
|
11005
|
-
buildMeasures
|
|
11006
|
-
|
|
11007
|
-
|
|
11008
|
-
'tooltip',
|
|
11009
|
-
'label',
|
|
11010
|
-
'color'
|
|
10464
|
+
buildMeasures([
|
|
10465
|
+
'size',
|
|
10466
|
+
'detail'
|
|
11011
10467
|
]),
|
|
10468
|
+
encodingForFunnel,
|
|
11012
10469
|
pickDimensionsForReshape
|
|
11013
10470
|
]),
|
|
11014
10471
|
pivotAdapter([
|
|
@@ -11144,8 +10601,7 @@
|
|
|
11144
10601
|
Builder._specPipelineMap.funnel = funnelSpecPipeline;
|
|
11145
10602
|
};
|
|
11146
10603
|
const defaultEncodingForHeatmap = (advancedVSeed)=>{
|
|
11147
|
-
const { measures
|
|
11148
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
10604
|
+
const { measures = [], dimensions = [] } = advancedVSeed;
|
|
11149
10605
|
const encoding = {};
|
|
11150
10606
|
heatmap_generateDefaultDimensionEncoding(dimensions, encoding);
|
|
11151
10607
|
heatmap_generateDefaultMeasureEncoding(measures, encoding);
|
|
@@ -11155,12 +10611,11 @@
|
|
|
11155
10611
|
};
|
|
11156
10612
|
};
|
|
11157
10613
|
const encodingForHeatmap = (advancedVSeed)=>{
|
|
11158
|
-
const { measures
|
|
11159
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
10614
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
11160
10615
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
11161
10616
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
11162
10617
|
const encoding = {};
|
|
11163
|
-
if (hasDimensionEncoding) heatmap_generateDimensionEncoding(dimensions, encoding,
|
|
10618
|
+
if (hasDimensionEncoding) heatmap_generateDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
|
|
11164
10619
|
else heatmap_generateDefaultDimensionEncoding(dimensions, encoding);
|
|
11165
10620
|
if (hasMeasureEncoding) heatmap_generateMeasureEncoding(measures, encoding);
|
|
11166
10621
|
else heatmap_generateDefaultMeasureEncoding(measures, encoding);
|
|
@@ -11226,15 +10681,17 @@
|
|
|
11226
10681
|
defaultDimensions_defaultDimensions,
|
|
11227
10682
|
defaultMeasureId_defaultMeasureId,
|
|
11228
10683
|
encodingAdapter([
|
|
11229
|
-
buildMeasures
|
|
10684
|
+
buildMeasures([
|
|
10685
|
+
'color',
|
|
10686
|
+
'detail'
|
|
10687
|
+
]),
|
|
11230
10688
|
defaultEncodingForHeatmap
|
|
11231
10689
|
], [
|
|
11232
|
-
buildMeasures
|
|
11233
|
-
|
|
11234
|
-
|
|
11235
|
-
'tooltip',
|
|
11236
|
-
'label'
|
|
10690
|
+
buildMeasures([
|
|
10691
|
+
'color',
|
|
10692
|
+
'detail'
|
|
11237
10693
|
]),
|
|
10694
|
+
encodingForHeatmap,
|
|
11238
10695
|
pickDimensionsForReshape
|
|
11239
10696
|
]),
|
|
11240
10697
|
pivotAdapter([
|
|
@@ -11322,7 +10779,7 @@
|
|
|
11322
10779
|
...spec
|
|
11323
10780
|
};
|
|
11324
10781
|
const { advancedVSeed, vseed } = context;
|
|
11325
|
-
const { datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
|
|
10782
|
+
const { datasetReshapeInfo, chartType, locale, dimensions = [], encoding } = advancedVSeed;
|
|
11326
10783
|
const baseConfig = advancedVSeed.config[chartType];
|
|
11327
10784
|
const { tooltip = {
|
|
11328
10785
|
enable: true
|
|
@@ -11336,7 +10793,7 @@
|
|
|
11336
10793
|
title: {
|
|
11337
10794
|
visible: false
|
|
11338
10795
|
},
|
|
11339
|
-
content: tooltipHeatmap_createMarkContent(encoding.tooltip || [], dimensions,
|
|
10796
|
+
content: tooltipHeatmap_createMarkContent(encoding.tooltip || [], dimensions, vseed.measures, locale, foldInfo)
|
|
11340
10797
|
},
|
|
11341
10798
|
dimension: {
|
|
11342
10799
|
visible: false
|
|
@@ -11345,7 +10802,7 @@
|
|
|
11345
10802
|
};
|
|
11346
10803
|
return result;
|
|
11347
10804
|
};
|
|
11348
|
-
const tooltipHeatmap_createMarkContent = (tooltip, dimensions, measures, locale, foldInfo)=>{
|
|
10805
|
+
const tooltipHeatmap_createMarkContent = (tooltip, dimensions, measures = [], locale, foldInfo)=>{
|
|
11349
10806
|
const dims = T(dimensions.filter((item)=>tooltip.includes(item.id)), (item)=>item.id);
|
|
11350
10807
|
const meas = T(measures.filter((item)=>tooltip.includes(item.id)), (item)=>item.id);
|
|
11351
10808
|
const dimContent = dims.map((item)=>({
|
|
@@ -11506,10 +10963,9 @@
|
|
|
11506
10963
|
return result;
|
|
11507
10964
|
};
|
|
11508
10965
|
const defaultEncodingForBoxplot = (advancedVSeed)=>{
|
|
11509
|
-
const { measures
|
|
11510
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
10966
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
11511
10967
|
const encoding = {};
|
|
11512
|
-
boxplot_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(
|
|
10968
|
+
boxplot_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
|
|
11513
10969
|
boxplot_generateDefaultMeasureEncoding(measures, encoding);
|
|
11514
10970
|
return {
|
|
11515
10971
|
...advancedVSeed,
|
|
@@ -11517,12 +10973,11 @@
|
|
|
11517
10973
|
};
|
|
11518
10974
|
};
|
|
11519
10975
|
const encodingForBoxplot = (advancedVSeed)=>{
|
|
11520
|
-
const { measures
|
|
11521
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
10976
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
11522
10977
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
11523
10978
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
11524
10979
|
const encoding = {};
|
|
11525
|
-
const hasMulti = hasMultipleMeasureInSingleView(
|
|
10980
|
+
const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures);
|
|
11526
10981
|
if (hasDimensionEncoding) boxplot_generateDimensionEncoding(dimensions, encoding, hasMulti);
|
|
11527
10982
|
else boxplot_generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
|
|
11528
10983
|
if (hasMeasureEncoding) boxplot_generateMeasureEncoding(measures, encoding);
|
|
@@ -11640,19 +11095,17 @@
|
|
|
11640
11095
|
};
|
|
11641
11096
|
const { vseed } = context;
|
|
11642
11097
|
const { dataset, chartType } = vseed;
|
|
11643
|
-
const { encoding = {}, config } = advancedVSeed;
|
|
11644
|
-
const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? [];
|
|
11098
|
+
const { encoding = {}, config, measures = [] } = advancedVSeed;
|
|
11645
11099
|
const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
|
|
11646
11100
|
const uniqDims = T(dimensions, (item)=>item.id);
|
|
11647
11101
|
const whiskers = config?.[chartType]?.whiskers;
|
|
11648
11102
|
let newDatasets = [];
|
|
11649
11103
|
let foldInfo = {};
|
|
11650
11104
|
let unfoldInfo = {};
|
|
11651
|
-
const allMeasures = findAllMeasures(measures);
|
|
11652
11105
|
if (encoding.value?.length) {
|
|
11653
11106
|
const boxPlotDataList = [];
|
|
11654
11107
|
encoding.value.forEach((f)=>{
|
|
11655
|
-
const m =
|
|
11108
|
+
const m = measures.find((m)=>m.id === f);
|
|
11656
11109
|
const boxPlotData = boxplot_boxplot(dataset, {
|
|
11657
11110
|
field: f,
|
|
11658
11111
|
groupField: [
|
|
@@ -11711,9 +11164,7 @@
|
|
|
11711
11164
|
foldInfo,
|
|
11712
11165
|
unfoldInfo
|
|
11713
11166
|
}
|
|
11714
|
-
]
|
|
11715
|
-
dimensions,
|
|
11716
|
-
measures
|
|
11167
|
+
]
|
|
11717
11168
|
};
|
|
11718
11169
|
};
|
|
11719
11170
|
const revisedBoxPlotFieldKey = (fieldKey, groupId, isPivotChart = true)=>{
|
|
@@ -11727,30 +11178,24 @@
|
|
|
11727
11178
|
const { vseed } = context;
|
|
11728
11179
|
const { dataset, chartType } = vseed;
|
|
11729
11180
|
const { encoding = {}, config } = advancedVSeed;
|
|
11730
|
-
const
|
|
11181
|
+
const reshapeMeasures = advancedVSeed.reshapeMeasures ?? [];
|
|
11731
11182
|
const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
|
|
11732
11183
|
const uniqDims = T(dimensions, (item)=>item.id);
|
|
11733
11184
|
const chartConfig = config?.[chartType];
|
|
11734
11185
|
const whiskers = chartConfig?.whiskers;
|
|
11735
|
-
const measureGroups = [];
|
|
11736
|
-
if (measures) measures.forEach((measure)=>{
|
|
11737
|
-
if (measure.children && measure.children.length > 0) measureGroups.push(measure);
|
|
11738
|
-
});
|
|
11739
11186
|
const rowColumnFields = T(dimensions.filter((dim)=>'row' === dim.encoding || 'column' === dim.encoding), (item)=>item.id);
|
|
11740
11187
|
const datasets = [];
|
|
11741
11188
|
const datasetReshapeInfo = [];
|
|
11742
|
-
|
|
11743
|
-
const
|
|
11744
|
-
if (!subMeasures) return;
|
|
11745
|
-
const groupId = measureGroup.id;
|
|
11189
|
+
reshapeMeasures.forEach((measureGroup, index)=>{
|
|
11190
|
+
const groupId = measureGroup[0].parentId ?? DEFAULT_PARENT_ID;
|
|
11746
11191
|
let newDatasets = [];
|
|
11747
11192
|
let foldInfo = {};
|
|
11748
11193
|
let unfoldInfo = {};
|
|
11749
|
-
const validEncodingIds = (encoding.value || []).filter((id)=>
|
|
11194
|
+
const validEncodingIds = (encoding.value || []).filter((id)=>measureGroup.find((field)=>field.id === id));
|
|
11750
11195
|
if (validEncodingIds.length) {
|
|
11751
11196
|
const boxPlotDataList = [];
|
|
11752
11197
|
validEncodingIds.forEach((f)=>{
|
|
11753
|
-
const m =
|
|
11198
|
+
const m = measureGroup.find((m)=>m.id === f);
|
|
11754
11199
|
const boxPlotData = boxplot_boxplot(dataset, {
|
|
11755
11200
|
field: f,
|
|
11756
11201
|
groupField: [
|
|
@@ -11833,16 +11278,27 @@
|
|
|
11833
11278
|
defaultMeasureId_defaultMeasureId,
|
|
11834
11279
|
boxplotConfig,
|
|
11835
11280
|
encodingAdapter([
|
|
11836
|
-
buildMeasures
|
|
11281
|
+
buildMeasures([
|
|
11282
|
+
'value',
|
|
11283
|
+
'q1',
|
|
11284
|
+
'q3',
|
|
11285
|
+
'min',
|
|
11286
|
+
'max',
|
|
11287
|
+
'median',
|
|
11288
|
+
'outliers'
|
|
11289
|
+
]),
|
|
11837
11290
|
defaultEncodingForBoxplot
|
|
11838
11291
|
], [
|
|
11839
|
-
buildMeasures
|
|
11840
|
-
|
|
11841
|
-
|
|
11842
|
-
'
|
|
11843
|
-
'
|
|
11844
|
-
'
|
|
11292
|
+
buildMeasures([
|
|
11293
|
+
'value',
|
|
11294
|
+
'q1',
|
|
11295
|
+
'q3',
|
|
11296
|
+
'min',
|
|
11297
|
+
'max',
|
|
11298
|
+
'median',
|
|
11299
|
+
'outliers'
|
|
11845
11300
|
]),
|
|
11301
|
+
encodingForBoxplot,
|
|
11846
11302
|
pickDimensionsForReshape
|
|
11847
11303
|
]),
|
|
11848
11304
|
pivotAdapter([
|
|
@@ -11922,6 +11378,22 @@
|
|
|
11922
11378
|
}
|
|
11923
11379
|
};
|
|
11924
11380
|
};
|
|
11381
|
+
const labelBoxPlot = (spec, context)=>{
|
|
11382
|
+
const result = {
|
|
11383
|
+
...spec
|
|
11384
|
+
};
|
|
11385
|
+
const { advancedVSeed, vseed } = context;
|
|
11386
|
+
const { chartType, encoding } = advancedVSeed;
|
|
11387
|
+
const baseConfig = advancedVSeed.config[chartType];
|
|
11388
|
+
const { label } = baseConfig;
|
|
11389
|
+
result.label = buildLabel(label, vseed.measures, vseed.dimensions, advancedVSeed.dimensions, advancedVSeed.measures, encoding, [
|
|
11390
|
+
{
|
|
11391
|
+
measureId: FoldMeasureId,
|
|
11392
|
+
measureValue: MedianMeasureId
|
|
11393
|
+
}
|
|
11394
|
+
]);
|
|
11395
|
+
return result;
|
|
11396
|
+
};
|
|
11925
11397
|
const boxPlotMeasureKeys = [
|
|
11926
11398
|
UpperWhisker,
|
|
11927
11399
|
"__Q3__",
|
|
@@ -11935,13 +11407,13 @@
|
|
|
11935
11407
|
...spec
|
|
11936
11408
|
};
|
|
11937
11409
|
const { advancedVSeed, vseed } = context;
|
|
11938
|
-
const { chartType, dimensions, encoding, datasetReshapeInfo } = advancedVSeed;
|
|
11410
|
+
const { chartType, dimensions = [], encoding, datasetReshapeInfo } = advancedVSeed;
|
|
11939
11411
|
const baseConfig = advancedVSeed.config[chartType];
|
|
11940
11412
|
const { tooltip = {
|
|
11941
11413
|
enable: true
|
|
11942
11414
|
} } = baseConfig;
|
|
11943
11415
|
const { enable } = tooltip;
|
|
11944
|
-
const meas =
|
|
11416
|
+
const meas = vseed.measures ?? [];
|
|
11945
11417
|
const valueMeasure = meas.find((item)=>'value' === item.encoding || chunk_JK3VNB42_n(item.encoding));
|
|
11946
11418
|
const defaultFormatter = valueMeasure ? createFormatterByMeasure(valueMeasure) : (v)=>v;
|
|
11947
11419
|
const measureAliasMapping = {
|
|
@@ -12080,9 +11552,8 @@
|
|
|
12080
11552
|
shaftShape: 'filled-line',
|
|
12081
11553
|
visible: true,
|
|
12082
11554
|
shaftWidth: '50%',
|
|
12083
|
-
stroke: theme?.
|
|
11555
|
+
stroke: theme?.whiskerBorderColor,
|
|
12084
11556
|
boxStroke: theme?.boxBorderColor,
|
|
12085
|
-
whiskerStroke: theme?.whiskerBorderColor,
|
|
12086
11557
|
boxCornerRadius: theme?.boxCornerRadius,
|
|
12087
11558
|
medianStroke: theme?.medianBorderColor ?? theme?.boxBorderColor
|
|
12088
11559
|
}
|
|
@@ -12093,7 +11564,7 @@
|
|
|
12093
11564
|
boxPlotStyle
|
|
12094
11565
|
];
|
|
12095
11566
|
const customMap = boxPlotStyles.reduce((result, style, index)=>{
|
|
12096
|
-
const { boxColor, boxColorOpacity, boxBorderColor, boxBorderWidth = 1, boxVisible = true, boxBorderOpacity } = style;
|
|
11567
|
+
const { boxColor, boxColorOpacity, boxBorderColor, boxBorderWidth = 1, boxVisible = true, boxBorderOpacity, medianBorderColor, whiskerBorderColor, boxCornerRadius } = style;
|
|
12097
11568
|
return {
|
|
12098
11569
|
...result,
|
|
12099
11570
|
[`custom${index + 1}`]: {
|
|
@@ -12107,8 +11578,11 @@
|
|
|
12107
11578
|
fill: boxColor,
|
|
12108
11579
|
fillOpacity: boxColorOpacity,
|
|
12109
11580
|
lineWidth: boxBorderWidth,
|
|
12110
|
-
stroke:
|
|
12111
|
-
|
|
11581
|
+
stroke: whiskerBorderColor,
|
|
11582
|
+
boxStroke: boxBorderColor,
|
|
11583
|
+
boxCornerRadius: boxCornerRadius,
|
|
11584
|
+
strokeOpacity: boxBorderOpacity,
|
|
11585
|
+
medianStroke: medianBorderColor ?? boxBorderColor
|
|
12112
11586
|
}
|
|
12113
11587
|
}
|
|
12114
11588
|
};
|
|
@@ -12163,12 +11637,9 @@
|
|
|
12163
11637
|
size: pointSize,
|
|
12164
11638
|
fill: pointColor,
|
|
12165
11639
|
fillOpacity: pointColorOpacity,
|
|
12166
|
-
|
|
12167
|
-
|
|
12168
|
-
|
|
12169
|
-
distance: (pointBorderWidth || 0) / 2,
|
|
12170
|
-
lineDash: lineDash
|
|
12171
|
-
}
|
|
11640
|
+
stroke: pointBorderColor,
|
|
11641
|
+
lineWidth: pointBorderWidth,
|
|
11642
|
+
lineDash: lineDash
|
|
12172
11643
|
}
|
|
12173
11644
|
}
|
|
12174
11645
|
};
|
|
@@ -12194,7 +11665,7 @@
|
|
|
12194
11665
|
progressive,
|
|
12195
11666
|
xBand,
|
|
12196
11667
|
yLinear,
|
|
12197
|
-
|
|
11668
|
+
labelBoxPlot,
|
|
12198
11669
|
tooltipBoxplot,
|
|
12199
11670
|
colorAdapter(discreteLegend, colorLegend),
|
|
12200
11671
|
verticalCrosshairRect,
|
|
@@ -12220,7 +11691,7 @@
|
|
|
12220
11691
|
progressive,
|
|
12221
11692
|
xBand,
|
|
12222
11693
|
pivotAxisStyle(yLinear),
|
|
12223
|
-
|
|
11694
|
+
labelBoxPlot,
|
|
12224
11695
|
tooltipBoxplot,
|
|
12225
11696
|
colorBoxPlotStyleFill(boxPlotStyle_boxPlotStyle),
|
|
12226
11697
|
outlierStyle_outlierStyle,
|
|
@@ -12366,8 +11837,7 @@
|
|
|
12366
11837
|
return result;
|
|
12367
11838
|
};
|
|
12368
11839
|
const defaultEncodingForHistogram = (advancedVSeed)=>{
|
|
12369
|
-
const { measures
|
|
12370
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
11840
|
+
const { measures = [], dimensions = [] } = advancedVSeed;
|
|
12371
11841
|
const encoding = {};
|
|
12372
11842
|
histogram_generateDefaultDimensionEncoding(dimensions, encoding);
|
|
12373
11843
|
histogram_generateDefaultMeasureEncoding(measures, encoding);
|
|
@@ -12377,8 +11847,7 @@
|
|
|
12377
11847
|
};
|
|
12378
11848
|
};
|
|
12379
11849
|
const encodingForHistogram = (advancedVSeed)=>{
|
|
12380
|
-
const { measures
|
|
12381
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
11850
|
+
const { measures = [], dimensions = [] } = advancedVSeed;
|
|
12382
11851
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
12383
11852
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
12384
11853
|
const encoding = {};
|
|
@@ -12578,8 +12047,7 @@
|
|
|
12578
12047
|
};
|
|
12579
12048
|
const { vseed } = context;
|
|
12580
12049
|
const { dataset, chartType } = vseed;
|
|
12581
|
-
const { encoding = {}, config } = advancedVSeed;
|
|
12582
|
-
const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? [];
|
|
12050
|
+
const { encoding = {}, config, measures = [] } = advancedVSeed;
|
|
12583
12051
|
const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
|
|
12584
12052
|
const uniqDims = T(dimensions, (item)=>item.id);
|
|
12585
12053
|
const chartConfig = config?.[chartType];
|
|
@@ -12603,10 +12071,9 @@
|
|
|
12603
12071
|
};
|
|
12604
12072
|
let unfoldInfo = {};
|
|
12605
12073
|
const colorMeasureId = getColorMeasureId(advancedVSeed, vseed);
|
|
12606
|
-
const allMeasures = findAllMeasures(measures);
|
|
12607
12074
|
if (encoding.value?.length) {
|
|
12608
12075
|
const valueField = encoding.value[0];
|
|
12609
|
-
const m =
|
|
12076
|
+
const m = measures.find((m)=>m.id === valueField);
|
|
12610
12077
|
const binData = bin_bin(dataset, {
|
|
12611
12078
|
field: valueField,
|
|
12612
12079
|
groupField: [
|
|
@@ -12644,7 +12111,7 @@
|
|
|
12644
12111
|
});
|
|
12645
12112
|
unfoldInfo = res.unfoldInfo;
|
|
12646
12113
|
} else if (encoding.x0?.length && encoding.x1?.length && encoding.y?.length) {
|
|
12647
|
-
const res = dataReshapeByEncoding(dataset, T(dimensions, (item)=>item.id),
|
|
12114
|
+
const res = dataReshapeByEncoding(dataset, T(dimensions, (item)=>item.id), measures.filter((item)=>encoding.y?.includes(item.id)).slice(0, 1), encoding, {
|
|
12648
12115
|
colorItemAsId: false,
|
|
12649
12116
|
colorMeasureId
|
|
12650
12117
|
});
|
|
@@ -12666,9 +12133,7 @@
|
|
|
12666
12133
|
foldInfo,
|
|
12667
12134
|
unfoldInfo
|
|
12668
12135
|
}
|
|
12669
|
-
]
|
|
12670
|
-
dimensions,
|
|
12671
|
-
measures
|
|
12136
|
+
]
|
|
12672
12137
|
};
|
|
12673
12138
|
};
|
|
12674
12139
|
const pivotReshapeWithHistogramEncoding = (advancedVSeed, context)=>{
|
|
@@ -12678,7 +12143,7 @@
|
|
|
12678
12143
|
const { vseed } = context;
|
|
12679
12144
|
const { dataset, chartType } = vseed;
|
|
12680
12145
|
const { encoding = {}, config } = advancedVSeed;
|
|
12681
|
-
const
|
|
12146
|
+
const reshapeMeasures = advancedVSeed.reshapeMeasures ?? [];
|
|
12682
12147
|
const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
|
|
12683
12148
|
const colorMeasureId = getColorMeasureId(advancedVSeed, vseed);
|
|
12684
12149
|
const uniqDims = T(dimensions, (item)=>item.id);
|
|
@@ -12686,17 +12151,12 @@
|
|
|
12686
12151
|
const binCount = chartConfig?.binCount;
|
|
12687
12152
|
const binStep = chartConfig?.binStep;
|
|
12688
12153
|
const binValueType = chartConfig?.binValueType;
|
|
12689
|
-
const measureGroups = [];
|
|
12690
|
-
if (measures) measures.forEach((measure)=>{
|
|
12691
|
-
if (measure.children && measure.children.length > 0) measureGroups.push(measure);
|
|
12692
|
-
});
|
|
12693
12154
|
const rowColumnFields = T(dimensions.filter((dim)=>'row' === dim.encoding || 'column' === dim.encoding), (item)=>item.id);
|
|
12694
12155
|
const datasets = [];
|
|
12695
12156
|
const datasetReshapeInfo = [];
|
|
12696
|
-
|
|
12697
|
-
const subMeasures = measureGroup.children;
|
|
12157
|
+
reshapeMeasures.forEach((subMeasures, index)=>{
|
|
12698
12158
|
if (!subMeasures) return;
|
|
12699
|
-
const groupId =
|
|
12159
|
+
const groupId = subMeasures[0].id ?? DEFAULT_PARENT_ID;
|
|
12700
12160
|
let newDatasets = [];
|
|
12701
12161
|
let foldInfo = {
|
|
12702
12162
|
foldMap: {},
|
|
@@ -12788,16 +12248,23 @@
|
|
|
12788
12248
|
defaultDimensions_defaultDimensions,
|
|
12789
12249
|
histogramConfig,
|
|
12790
12250
|
encodingAdapter([
|
|
12791
|
-
buildMeasures
|
|
12251
|
+
buildMeasures([
|
|
12252
|
+
'value',
|
|
12253
|
+
'x0',
|
|
12254
|
+
'x1',
|
|
12255
|
+
'yAxis',
|
|
12256
|
+
'detail'
|
|
12257
|
+
]),
|
|
12792
12258
|
defaultEncodingForHistogram
|
|
12793
12259
|
], [
|
|
12794
|
-
buildMeasures
|
|
12795
|
-
|
|
12796
|
-
|
|
12797
|
-
'
|
|
12798
|
-
'
|
|
12799
|
-
'
|
|
12260
|
+
buildMeasures([
|
|
12261
|
+
'value',
|
|
12262
|
+
'x0',
|
|
12263
|
+
'x1',
|
|
12264
|
+
'yAxis',
|
|
12265
|
+
'detail'
|
|
12800
12266
|
]),
|
|
12267
|
+
encodingForHistogram,
|
|
12801
12268
|
pickDimensionsForReshape
|
|
12802
12269
|
]),
|
|
12803
12270
|
pivotAdapter([
|
|
@@ -12852,7 +12319,7 @@
|
|
|
12852
12319
|
...spec
|
|
12853
12320
|
};
|
|
12854
12321
|
const { advancedVSeed, vseed } = context;
|
|
12855
|
-
const { encoding, dimensions, measures, dataset } = advancedVSeed;
|
|
12322
|
+
const { encoding, dimensions = [], measures = [], dataset } = advancedVSeed;
|
|
12856
12323
|
const { chartType } = vseed;
|
|
12857
12324
|
const config = advancedVSeed.config?.[chartType]?.xAxis ?? {};
|
|
12858
12325
|
if (!result.axes) result.axes = [];
|
|
@@ -12905,7 +12372,7 @@
|
|
|
12905
12372
|
...spec
|
|
12906
12373
|
};
|
|
12907
12374
|
const { advancedVSeed } = context;
|
|
12908
|
-
const { chartType, dimensions, encoding } = advancedVSeed;
|
|
12375
|
+
const { chartType, dimensions = [], encoding } = advancedVSeed;
|
|
12909
12376
|
const baseConfig = advancedVSeed.config[chartType];
|
|
12910
12377
|
const { binValueType, tooltip = {
|
|
12911
12378
|
enable: true
|
|
@@ -13117,7 +12584,7 @@
|
|
|
13117
12584
|
...spec
|
|
13118
12585
|
};
|
|
13119
12586
|
const { advancedVSeed, vseed } = context;
|
|
13120
|
-
const { chartType, encoding = {}, dimensions, regressionLine } = advancedVSeed;
|
|
12587
|
+
const { chartType, encoding = {}, dimensions = [], regressionLine } = advancedVSeed;
|
|
13121
12588
|
const { dataset } = vseed;
|
|
13122
12589
|
const lineTheme = advancedVSeed.config[chartType]?.regressionLine;
|
|
13123
12590
|
const binValueType = advancedVSeed.config[chartType]?.binValueType;
|
|
@@ -13261,7 +12728,7 @@
|
|
|
13261
12728
|
...spec
|
|
13262
12729
|
};
|
|
13263
12730
|
const { advancedVSeed, vseed } = context;
|
|
13264
|
-
const { chartType, encoding = {}, dimensions, regressionLine } = advancedVSeed;
|
|
12731
|
+
const { chartType, encoding = {}, dimensions = [], regressionLine } = advancedVSeed;
|
|
13265
12732
|
const { dataset } = vseed;
|
|
13266
12733
|
const lineTheme = advancedVSeed.config[chartType]?.regressionLine;
|
|
13267
12734
|
if (!regressionLine || !regressionLine.ecdfRegressionLine) return result;
|
|
@@ -13984,27 +13451,30 @@
|
|
|
13984
13451
|
}
|
|
13985
13452
|
});
|
|
13986
13453
|
const getCommonBoxPlotStyle = ()=>({
|
|
13987
|
-
boxCornerRadius:
|
|
13454
|
+
boxCornerRadius: 2
|
|
13988
13455
|
});
|
|
13989
13456
|
const getLightBoxPlotStyle = ()=>({
|
|
13990
13457
|
...getCommonBoxPlotStyle(),
|
|
13991
|
-
boxBorderColor: '#
|
|
13458
|
+
boxBorderColor: '#606773',
|
|
13992
13459
|
whiskerBorderColor: '#606773'
|
|
13993
13460
|
});
|
|
13994
13461
|
const getDarkBoxPlotStyle = ()=>({
|
|
13995
13462
|
...getCommonBoxPlotStyle(),
|
|
13996
|
-
boxBorderColor: '#
|
|
13997
|
-
whiskerBorderColor: '#
|
|
13463
|
+
boxBorderColor: '#888C93',
|
|
13464
|
+
whiskerBorderColor: '#888C93'
|
|
13998
13465
|
});
|
|
13999
13466
|
const getCommonOutlierStyle = ()=>({
|
|
14000
|
-
|
|
13467
|
+
pointSize: 10,
|
|
13468
|
+
pointBorderWidth: 1.5,
|
|
14001
13469
|
pointColor: 'transparent'
|
|
14002
13470
|
});
|
|
14003
13471
|
const getLightOutlierStyle = ()=>({
|
|
14004
|
-
...getCommonOutlierStyle()
|
|
13472
|
+
...getCommonOutlierStyle(),
|
|
13473
|
+
pointBorderColor: '#606773'
|
|
14005
13474
|
});
|
|
14006
13475
|
const getDarkOutlierStyle = ()=>({
|
|
14007
|
-
...getCommonOutlierStyle()
|
|
13476
|
+
...getCommonOutlierStyle(),
|
|
13477
|
+
pointBorderColor: '#888C93'
|
|
14008
13478
|
});
|
|
14009
13479
|
const lightTheme = ()=>{
|
|
14010
13480
|
const linearAxis = getLightLinearAxis();
|
|
@@ -14191,10 +13661,6 @@
|
|
|
14191
13661
|
visible: false
|
|
14192
13662
|
}
|
|
14193
13663
|
},
|
|
14194
|
-
dualChartType: {
|
|
14195
|
-
primary: 'column',
|
|
14196
|
-
secondary: 'line'
|
|
14197
|
-
},
|
|
14198
13664
|
crosshairRect,
|
|
14199
13665
|
pivotGrid: getLightPivotChartGridConfig(),
|
|
14200
13666
|
annotation: getLightAnnotation()
|
|
@@ -14459,10 +13925,6 @@
|
|
|
14459
13925
|
visible: false
|
|
14460
13926
|
}
|
|
14461
13927
|
},
|
|
14462
|
-
dualChartType: {
|
|
14463
|
-
primary: 'column',
|
|
14464
|
-
secondary: 'line'
|
|
14465
|
-
},
|
|
14466
13928
|
crosshairRect,
|
|
14467
13929
|
pivotGrid: getDarkPivotChartGridConfig(),
|
|
14468
13930
|
annotation: getDarkAnnotation()
|
|
@@ -14593,6 +14055,91 @@
|
|
|
14593
14055
|
const updateSpec = (chartType, specPipe)=>{
|
|
14594
14056
|
Builder._customSpecPipe[chartType] = specPipe;
|
|
14595
14057
|
};
|
|
14058
|
+
const measureDepth = (measures = [])=>{
|
|
14059
|
+
if (!measures) return 0;
|
|
14060
|
+
let depth = 1;
|
|
14061
|
+
preorderTraverse(measures, (node)=>{
|
|
14062
|
+
if ('children' in node) depth = Math.max(depth, 1 + measureDepth(node.children));
|
|
14063
|
+
return false;
|
|
14064
|
+
});
|
|
14065
|
+
return depth;
|
|
14066
|
+
};
|
|
14067
|
+
const deleteMeasureTreeByCallback = (measureTree, callback)=>{
|
|
14068
|
+
if (!measureTree) return;
|
|
14069
|
+
const stack = [
|
|
14070
|
+
...measureTree
|
|
14071
|
+
].reverse();
|
|
14072
|
+
const parents = new Map();
|
|
14073
|
+
measureTree.forEach((node)=>{
|
|
14074
|
+
parents.set(node, measureTree);
|
|
14075
|
+
});
|
|
14076
|
+
const nodesToProcess = [];
|
|
14077
|
+
const visited = new Set();
|
|
14078
|
+
while(stack.length > 0){
|
|
14079
|
+
const node = stack[stack.length - 1];
|
|
14080
|
+
if (isMeasureGroup(node) && node.children && !visited.has(node)) {
|
|
14081
|
+
visited.add(node);
|
|
14082
|
+
const children = node.children.slice().reverse();
|
|
14083
|
+
for (const child of children){
|
|
14084
|
+
parents.set(child, node.children);
|
|
14085
|
+
stack.push(child);
|
|
14086
|
+
}
|
|
14087
|
+
} else {
|
|
14088
|
+
stack.pop();
|
|
14089
|
+
nodesToProcess.push(node);
|
|
14090
|
+
}
|
|
14091
|
+
}
|
|
14092
|
+
const deleted = [];
|
|
14093
|
+
for (const node of nodesToProcess){
|
|
14094
|
+
const parentList = parents.get(node);
|
|
14095
|
+
if (parentList) {
|
|
14096
|
+
const index = parentList.indexOf(node);
|
|
14097
|
+
if (isMeasure(node)) {
|
|
14098
|
+
if (callback?.(node, index, parentList)) {
|
|
14099
|
+
parentList.splice(index, 1);
|
|
14100
|
+
deleted.push(node);
|
|
14101
|
+
}
|
|
14102
|
+
}
|
|
14103
|
+
}
|
|
14104
|
+
}
|
|
14105
|
+
return deleted;
|
|
14106
|
+
};
|
|
14107
|
+
const deleteDimensionTreeByCallback = (dimensionTree, callback)=>{
|
|
14108
|
+
if (!dimensionTree) return dimensionTree;
|
|
14109
|
+
const stack = [
|
|
14110
|
+
...dimensionTree
|
|
14111
|
+
].reverse();
|
|
14112
|
+
const parents = new Map();
|
|
14113
|
+
dimensionTree.forEach((node)=>{
|
|
14114
|
+
parents.set(node, dimensionTree);
|
|
14115
|
+
});
|
|
14116
|
+
const nodesToProcess = [];
|
|
14117
|
+
const visited = new Set();
|
|
14118
|
+
while(stack.length > 0){
|
|
14119
|
+
const node = stack[stack.length - 1];
|
|
14120
|
+
if (isDimensionGroup(node) && node.children && !visited.has(node)) {
|
|
14121
|
+
visited.add(node);
|
|
14122
|
+
const children = node.children.slice().reverse();
|
|
14123
|
+
for (const child of children){
|
|
14124
|
+
parents.set(child, node.children);
|
|
14125
|
+
stack.push(child);
|
|
14126
|
+
}
|
|
14127
|
+
} else {
|
|
14128
|
+
stack.pop();
|
|
14129
|
+
nodesToProcess.push(node);
|
|
14130
|
+
}
|
|
14131
|
+
}
|
|
14132
|
+
for (const node of nodesToProcess){
|
|
14133
|
+
const parentList = parents.get(node);
|
|
14134
|
+
if (parentList) {
|
|
14135
|
+
const index = parentList.indexOf(node);
|
|
14136
|
+
if (isDimension(node)) {
|
|
14137
|
+
if (callback?.(node, index, parentList)) parentList.splice(index, 1);
|
|
14138
|
+
}
|
|
14139
|
+
}
|
|
14140
|
+
}
|
|
14141
|
+
return dimensionTree;
|
|
14142
|
+
};
|
|
14596
14143
|
Object.freeze({
|
|
14597
14144
|
status: "aborted"
|
|
14598
14145
|
});
|
|
@@ -17907,22 +17454,6 @@
|
|
|
17907
17454
|
'boxPlot',
|
|
17908
17455
|
'histogram'
|
|
17909
17456
|
]);
|
|
17910
|
-
const zDualChartType = schemas_object({
|
|
17911
|
-
primary: schemas_enum([
|
|
17912
|
-
'line',
|
|
17913
|
-
'column',
|
|
17914
|
-
'columnParallel',
|
|
17915
|
-
'area',
|
|
17916
|
-
'scatter'
|
|
17917
|
-
]).default('column'),
|
|
17918
|
-
secondary: schemas_enum([
|
|
17919
|
-
'line',
|
|
17920
|
-
'column',
|
|
17921
|
-
'columnParallel',
|
|
17922
|
-
'area',
|
|
17923
|
-
'scatter'
|
|
17924
|
-
]).default('line')
|
|
17925
|
-
});
|
|
17926
17457
|
const zDatum = record(schemas_string().or(schemas_number()), any());
|
|
17927
17458
|
const zDataset = schemas_array(zDatum);
|
|
17928
17459
|
const zDimension = schemas_object({
|
|
@@ -18008,7 +17539,16 @@
|
|
|
18008
17539
|
'x0',
|
|
18009
17540
|
'x1'
|
|
18010
17541
|
]).optional(),
|
|
18011
|
-
parentId: schemas_string().optional()
|
|
17542
|
+
parentId: schemas_string().optional(),
|
|
17543
|
+
chartType: schemas_enum([
|
|
17544
|
+
'line',
|
|
17545
|
+
'column',
|
|
17546
|
+
'columnParallel',
|
|
17547
|
+
'columnPercent',
|
|
17548
|
+
'area',
|
|
17549
|
+
'areaPercent',
|
|
17550
|
+
'scatter'
|
|
17551
|
+
]).optional()
|
|
18012
17552
|
});
|
|
18013
17553
|
const zMeasureGroup = schemas_object({
|
|
18014
17554
|
id: schemas_string(),
|
|
@@ -18019,30 +17559,23 @@
|
|
|
18019
17559
|
});
|
|
18020
17560
|
const zMeasures = schemas_array(zMeasure);
|
|
18021
17561
|
const zMeasureTree = schemas_array(zMeasureGroup.or(zMeasure));
|
|
18022
|
-
const zDualMeasure =
|
|
18023
|
-
|
|
18024
|
-
|
|
18025
|
-
|
|
18026
|
-
|
|
18027
|
-
|
|
18028
|
-
|
|
18029
|
-
|
|
18030
|
-
|
|
18031
|
-
|
|
17562
|
+
const zDualMeasure = zMeasure.extend({
|
|
17563
|
+
chartType: schemas_enum([
|
|
17564
|
+
'line',
|
|
17565
|
+
'column',
|
|
17566
|
+
'columnParallel',
|
|
17567
|
+
'area',
|
|
17568
|
+
'scatter'
|
|
17569
|
+
]).optional(),
|
|
17570
|
+
encoding: schemas_enum([
|
|
17571
|
+
'primaryYAxis',
|
|
17572
|
+
'secondaryYAxis',
|
|
17573
|
+
'color',
|
|
17574
|
+
'label',
|
|
17575
|
+
'tooltip'
|
|
17576
|
+
]).optional()
|
|
18032
17577
|
});
|
|
18033
17578
|
const zDualMeasures = schemas_array(zDualMeasure);
|
|
18034
|
-
const zScatterMeasure = schemas_object({
|
|
18035
|
-
id: schemas_string(),
|
|
18036
|
-
xMeasures: schemas_array(zMeasure.omit({
|
|
18037
|
-
parentId: true,
|
|
18038
|
-
encoding: true
|
|
18039
|
-
})).or(zMeasure).optional(),
|
|
18040
|
-
yMeasures: schemas_array(zMeasure.omit({
|
|
18041
|
-
parentId: true,
|
|
18042
|
-
encoding: true
|
|
18043
|
-
})).or(zMeasure).optional()
|
|
18044
|
-
});
|
|
18045
|
-
const zScatterMeasures = schemas_array(zScatterMeasure);
|
|
18046
17579
|
const zFoldInfo = schemas_object({
|
|
18047
17580
|
foldMap: record(schemas_string(), schemas_string().or(schemas_undefined())),
|
|
18048
17581
|
statistics: schemas_object({
|
|
@@ -18790,7 +18323,6 @@
|
|
|
18790
18323
|
color: zColor.nullish(),
|
|
18791
18324
|
tooltip: zTooltip.nullish(),
|
|
18792
18325
|
legend: zLegend.nullish(),
|
|
18793
|
-
dualChartType: schemas_array(zDualChartType).or(zDualChartType).nullish(),
|
|
18794
18326
|
alignTicks: schemas_array(schemas_boolean()).or(schemas_boolean()).nullish(),
|
|
18795
18327
|
primaryYAxis: schemas_array(zYLinearAxis).or(zYLinearAxis).nullish(),
|
|
18796
18328
|
secondaryYAxis: schemas_array(zYLinearAxis).or(zYLinearAxis).nullish(),
|
|
@@ -18867,8 +18399,8 @@
|
|
|
18867
18399
|
boxBorderWidth: schemas_number().min(0).nullish(),
|
|
18868
18400
|
boxBorderOpacity: schemas_number().min(0).max(1).nullish(),
|
|
18869
18401
|
boxCornerRadius: schemas_number().nullish(),
|
|
18870
|
-
|
|
18871
|
-
|
|
18402
|
+
medianBorderColor: schemas_string().nullish(),
|
|
18403
|
+
whiskerBorderColor: schemas_string().nullish()
|
|
18872
18404
|
});
|
|
18873
18405
|
const zOutlierStyle = schemas_object({
|
|
18874
18406
|
selector: union([
|
|
@@ -19169,7 +18701,7 @@
|
|
|
19169
18701
|
dataset: zDataset.nullish(),
|
|
19170
18702
|
encoding: zEncoding.nullish(),
|
|
19171
18703
|
dimensions: zDimensions.nullish(),
|
|
19172
|
-
measures:
|
|
18704
|
+
measures: zMeasures.nullish(),
|
|
19173
18705
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19174
18706
|
color: zColor.nullish(),
|
|
19175
18707
|
label: zLabel.nullish(),
|
|
@@ -19195,7 +18727,7 @@
|
|
|
19195
18727
|
dataset: zDataset.nullish(),
|
|
19196
18728
|
encoding: zEncoding.nullish(),
|
|
19197
18729
|
dimensions: zDimensions.nullish(),
|
|
19198
|
-
measures:
|
|
18730
|
+
measures: zMeasures.nullish(),
|
|
19199
18731
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19200
18732
|
color: zColor.nullish(),
|
|
19201
18733
|
label: zLabel.nullish(),
|
|
@@ -19223,7 +18755,7 @@
|
|
|
19223
18755
|
dataset: zDataset.nullish(),
|
|
19224
18756
|
encoding: zEncoding.nullish(),
|
|
19225
18757
|
dimensions: zDimensions.nullish(),
|
|
19226
|
-
measures:
|
|
18758
|
+
measures: zMeasures.nullish(),
|
|
19227
18759
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19228
18760
|
color: zColor.nullish(),
|
|
19229
18761
|
label: zLabel.nullish(),
|
|
@@ -19249,7 +18781,7 @@
|
|
|
19249
18781
|
dataset: zDataset.nullish(),
|
|
19250
18782
|
encoding: zEncoding.nullish(),
|
|
19251
18783
|
dimensions: zDimensions.nullish(),
|
|
19252
|
-
measures:
|
|
18784
|
+
measures: zMeasures.nullish(),
|
|
19253
18785
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19254
18786
|
color: zColor.nullish(),
|
|
19255
18787
|
label: zLabel.nullish(),
|
|
@@ -19274,7 +18806,7 @@
|
|
|
19274
18806
|
dataset: zDataset.nullish(),
|
|
19275
18807
|
encoding: zEncoding.nullish(),
|
|
19276
18808
|
dimensions: zDimensions.nullish(),
|
|
19277
|
-
measures:
|
|
18809
|
+
measures: zMeasures.nullish(),
|
|
19278
18810
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19279
18811
|
color: zColor.nullish(),
|
|
19280
18812
|
label: zLabel.nullish(),
|
|
@@ -19299,7 +18831,7 @@
|
|
|
19299
18831
|
dataset: zDataset.nullish(),
|
|
19300
18832
|
encoding: zEncoding.nullish(),
|
|
19301
18833
|
dimensions: zDimensions.nullish(),
|
|
19302
|
-
measures:
|
|
18834
|
+
measures: zMeasures.nullish(),
|
|
19303
18835
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19304
18836
|
color: zColor.nullish(),
|
|
19305
18837
|
label: zLabel.nullish(),
|
|
@@ -19325,7 +18857,7 @@
|
|
|
19325
18857
|
dataset: zDataset.nullish(),
|
|
19326
18858
|
encoding: zEncoding.nullish(),
|
|
19327
18859
|
dimensions: zDimensions.nullish(),
|
|
19328
|
-
measures:
|
|
18860
|
+
measures: zMeasures.nullish(),
|
|
19329
18861
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19330
18862
|
color: zColor.nullish(),
|
|
19331
18863
|
label: zLabel.nullish(),
|
|
@@ -19350,7 +18882,7 @@
|
|
|
19350
18882
|
dataset: zDataset.nullish(),
|
|
19351
18883
|
encoding: zEncoding.nullish(),
|
|
19352
18884
|
dimensions: zDimensions.nullish(),
|
|
19353
|
-
measures:
|
|
18885
|
+
measures: zMeasures.nullish(),
|
|
19354
18886
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19355
18887
|
color: zColor.nullish(),
|
|
19356
18888
|
label: zLabel.nullish(),
|
|
@@ -19375,7 +18907,7 @@
|
|
|
19375
18907
|
dataset: zDataset.nullish(),
|
|
19376
18908
|
encoding: zEncoding.nullish(),
|
|
19377
18909
|
dimensions: zDimensions.nullish(),
|
|
19378
|
-
measures:
|
|
18910
|
+
measures: zMeasures.nullish(),
|
|
19379
18911
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19380
18912
|
color: zColor.nullish(),
|
|
19381
18913
|
label: zLabel.nullish(),
|
|
@@ -19400,8 +18932,7 @@
|
|
|
19400
18932
|
dataset: zDataset.nullish(),
|
|
19401
18933
|
encoding: zEncoding.nullish(),
|
|
19402
18934
|
dimensions: zDimensions.nullish(),
|
|
19403
|
-
measures:
|
|
19404
|
-
scatterMeasures: zScatterMeasures.nullish(),
|
|
18935
|
+
measures: zMeasures.nullish(),
|
|
19405
18936
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19406
18937
|
size: schemas_number().or(schemas_array(schemas_number())).nullish(),
|
|
19407
18938
|
sizeRange: schemas_number().or(schemas_array(schemas_number())).nullish(),
|
|
@@ -19429,9 +18960,7 @@
|
|
|
19429
18960
|
chartType: literal('dualAxis'),
|
|
19430
18961
|
dataset: zDataset.nullish(),
|
|
19431
18962
|
dimensions: zDimensions.nullish(),
|
|
19432
|
-
measures:
|
|
19433
|
-
dualMeasures: zDualMeasures.nullish(),
|
|
19434
|
-
dualChartType: schemas_array(zDualChartType).or(zDualChartType).nullish(),
|
|
18963
|
+
measures: zDualMeasures.nullish(),
|
|
19435
18964
|
alignTicks: schemas_array(schemas_boolean()).or(schemas_boolean()).nullish(),
|
|
19436
18965
|
primaryYAxis: schemas_array(zYLinearAxis).or(zYLinearAxis).nullish(),
|
|
19437
18966
|
secondaryYAxis: schemas_array(zYLinearAxis).or(zYLinearAxis).nullish(),
|
|
@@ -19463,7 +18992,7 @@
|
|
|
19463
18992
|
dataset: zDataset.nullish(),
|
|
19464
18993
|
encoding: zEncoding.nullish(),
|
|
19465
18994
|
dimensions: zDimensions.nullish(),
|
|
19466
|
-
measures:
|
|
18995
|
+
measures: zMeasures.nullish(),
|
|
19467
18996
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19468
18997
|
color: zColor.nullish(),
|
|
19469
18998
|
label: zLabel.nullish(),
|
|
@@ -19491,7 +19020,7 @@
|
|
|
19491
19020
|
dataset: zDataset.nullish(),
|
|
19492
19021
|
encoding: zEncoding.nullish(),
|
|
19493
19022
|
dimensions: zDimensions.nullish(),
|
|
19494
|
-
measures:
|
|
19023
|
+
measures: zMeasures.nullish(),
|
|
19495
19024
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19496
19025
|
color: zColor.nullish(),
|
|
19497
19026
|
label: zLabel.nullish(),
|
|
@@ -19505,7 +19034,7 @@
|
|
|
19505
19034
|
dataset: zDataset.nullish(),
|
|
19506
19035
|
encoding: zEncoding.nullish(),
|
|
19507
19036
|
dimensions: zDimensions.nullish(),
|
|
19508
|
-
measures:
|
|
19037
|
+
measures: zMeasures.nullish(),
|
|
19509
19038
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19510
19039
|
color: zColor.nullish(),
|
|
19511
19040
|
label: zLabel.nullish(),
|
|
@@ -19519,7 +19048,7 @@
|
|
|
19519
19048
|
dataset: zDataset.nullish(),
|
|
19520
19049
|
encoding: zEncoding.nullish(),
|
|
19521
19050
|
dimensions: zDimensions.nullish(),
|
|
19522
|
-
measures:
|
|
19051
|
+
measures: zMeasures.nullish(),
|
|
19523
19052
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19524
19053
|
color: zColor.nullish(),
|
|
19525
19054
|
label: zPieLabel.nullish(),
|
|
@@ -19533,7 +19062,7 @@
|
|
|
19533
19062
|
dataset: zDataset.nullish(),
|
|
19534
19063
|
encoding: zEncoding.nullish(),
|
|
19535
19064
|
dimensions: zDimensions.nullish(),
|
|
19536
|
-
measures:
|
|
19065
|
+
measures: zMeasures.nullish(),
|
|
19537
19066
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19538
19067
|
color: zColor.nullish(),
|
|
19539
19068
|
label: zPieLabel.nullish(),
|
|
@@ -19547,7 +19076,7 @@
|
|
|
19547
19076
|
dataset: zDataset.nullish(),
|
|
19548
19077
|
encoding: zEncoding.nullish(),
|
|
19549
19078
|
dimensions: zDimensions.nullish(),
|
|
19550
|
-
measures:
|
|
19079
|
+
measures: zMeasures.nullish(),
|
|
19551
19080
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19552
19081
|
color: zColor.nullish(),
|
|
19553
19082
|
label: zLabel.nullish(),
|
|
@@ -19561,7 +19090,7 @@
|
|
|
19561
19090
|
dataset: zDataset.nullish(),
|
|
19562
19091
|
encoding: zEncoding.nullish(),
|
|
19563
19092
|
dimensions: zDimensions.nullish(),
|
|
19564
|
-
measures:
|
|
19093
|
+
measures: zMeasures.nullish(),
|
|
19565
19094
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19566
19095
|
color: zColor.nullish(),
|
|
19567
19096
|
label: zLabel.nullish(),
|
|
@@ -19574,7 +19103,7 @@
|
|
|
19574
19103
|
chartType: literal('heatmap'),
|
|
19575
19104
|
dataset: zDataset.nullish(),
|
|
19576
19105
|
dimensions: zDimensions.nullish(),
|
|
19577
|
-
measures:
|
|
19106
|
+
measures: zMeasures.nullish(),
|
|
19578
19107
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19579
19108
|
color: zColor.nullish(),
|
|
19580
19109
|
label: zLabel.nullish(),
|
|
@@ -19588,7 +19117,7 @@
|
|
|
19588
19117
|
dataset: zDataset.nullish(),
|
|
19589
19118
|
encoding: zEncoding.nullish(),
|
|
19590
19119
|
dimensions: zDimensions.nullish(),
|
|
19591
|
-
measures:
|
|
19120
|
+
measures: zMeasures.nullish(),
|
|
19592
19121
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19593
19122
|
color: zColor.nullish(),
|
|
19594
19123
|
label: zLabel.nullish(),
|
|
@@ -19644,10 +19173,12 @@
|
|
|
19644
19173
|
dataset: zDataset,
|
|
19645
19174
|
datasetReshapeInfo: zDatasetReshapeInfo,
|
|
19646
19175
|
pivotAllDatasetReshapeInfo: zDatasetReshapeInfo,
|
|
19647
|
-
dimensions:
|
|
19648
|
-
measures:
|
|
19649
|
-
reshapeMeasures:
|
|
19650
|
-
reshapeDimensions:
|
|
19176
|
+
dimensions: zDimensions.optional(),
|
|
19177
|
+
measures: zMeasures.optional(),
|
|
19178
|
+
reshapeMeasures: schemas_array(zMeasures).optional(),
|
|
19179
|
+
reshapeDimensions: zDimensions.optional(),
|
|
19180
|
+
measureTree: zMeasureTree.optional(),
|
|
19181
|
+
dimensionTree: zDimensionTree.optional(),
|
|
19651
19182
|
encoding: zEncoding,
|
|
19652
19183
|
config: zConfig,
|
|
19653
19184
|
analysis: zAnalysis,
|