@visactor/vseed 0.2.9 → 0.3.1
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 +154 -118
- 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/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 +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/label/index.js +2 -2
- package/dist/esm/pipeline/spec/chart/pipes/label/label.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/label/labelBoxPlot.js.map +1 -1
- 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/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/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 +137 -68
- 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 +11 -2
- 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/config.d.ts +0 -31
- 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/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 +0 -62
- package/dist/esm/types/zVseed.d.ts +235 -704
- package/dist/umd/index.js +854 -1343
- package/dist/umd/index.js.map +1 -1
- package/package.json +14 -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);
|
|
@@ -3860,7 +3700,7 @@
|
|
|
3860
3700
|
...spec
|
|
3861
3701
|
};
|
|
3862
3702
|
const { advancedVSeed, vseed } = context;
|
|
3863
|
-
const { measures, datasetReshapeInfo, chartType, dimensions, encoding } = advancedVSeed;
|
|
3703
|
+
const { measures = [], datasetReshapeInfo, chartType, dimensions = [], encoding } = advancedVSeed;
|
|
3864
3704
|
const baseConfig = advancedVSeed.config[chartType];
|
|
3865
3705
|
const { tooltip = {
|
|
3866
3706
|
enable: true
|
|
@@ -3874,7 +3714,7 @@
|
|
|
3874
3714
|
title: {
|
|
3875
3715
|
visible: false
|
|
3876
3716
|
},
|
|
3877
|
-
content: createMarkContent(encoding.tooltip || [], dimensions,
|
|
3717
|
+
content: createMarkContent(encoding.tooltip || [], dimensions, vseed.measures, foldInfo, unfoldInfo)
|
|
3878
3718
|
},
|
|
3879
3719
|
dimension: {
|
|
3880
3720
|
title: {
|
|
@@ -3886,7 +3726,7 @@
|
|
|
3886
3726
|
};
|
|
3887
3727
|
return result;
|
|
3888
3728
|
};
|
|
3889
|
-
const createDimensionContent = (dimensions, measures, foldInfo, unfoldInfo)=>{
|
|
3729
|
+
const createDimensionContent = (dimensions = [], measures = [], foldInfo, unfoldInfo)=>{
|
|
3890
3730
|
const { measureId, measureValue, foldMap } = foldInfo;
|
|
3891
3731
|
const { encodingColor } = unfoldInfo;
|
|
3892
3732
|
return [
|
|
@@ -3915,7 +3755,7 @@
|
|
|
3915
3755
|
}
|
|
3916
3756
|
];
|
|
3917
3757
|
};
|
|
3918
|
-
const createMarkContent = (tooltip, dimensions, measures, foldInfo, unfoldInfo)=>{
|
|
3758
|
+
const createMarkContent = (tooltip, dimensions = [], measures = [], foldInfo, unfoldInfo)=>{
|
|
3919
3759
|
const dims = C(dimensions.filter((item)=>tooltip.includes(item.id)), T((item)=>item.id), T((item)=>item.alias));
|
|
3920
3760
|
const meas = C(measures.filter((item)=>tooltip.includes(item.id)), T((item)=>item.id), T((item)=>item.alias));
|
|
3921
3761
|
const dimContent = dims.map((item)=>({
|
|
@@ -5276,12 +5116,12 @@
|
|
|
5276
5116
|
...spec
|
|
5277
5117
|
};
|
|
5278
5118
|
const { advancedVSeed } = context;
|
|
5279
|
-
const {
|
|
5119
|
+
const { datasetReshapeInfo, dataset, encoding, reshapeMeasures = [] } = advancedVSeed;
|
|
5280
5120
|
const colorItems = chunk_QJLMYOTX_i(datasetReshapeInfo.flatMap((d)=>d.unfoldInfo.colorItems));
|
|
5281
5121
|
const allMeasureIds = chunk_QJLMYOTX_i(datasetReshapeInfo.flatMap((d)=>Object.keys(d.foldInfo.foldMap || {})));
|
|
5282
5122
|
const indicators = datasetReshapeInfo.map((reshapeInfo, index)=>{
|
|
5283
|
-
const
|
|
5284
|
-
const subMeasuresId = (
|
|
5123
|
+
const subMeasures = reshapeMeasures[index] || [];
|
|
5124
|
+
const subMeasuresId = (reshapeMeasures[index] || []).map((d)=>d.id);
|
|
5285
5125
|
const invalideMeasuresIds = allMeasureIds.filter((id)=>!subMeasuresId.includes(id));
|
|
5286
5126
|
const newDataset = dataset[index];
|
|
5287
5127
|
const newDatasetReshapeInfo = [
|
|
@@ -5309,7 +5149,7 @@
|
|
|
5309
5149
|
const chartSpec = execPipeline(chartPipeline, newContext, {});
|
|
5310
5150
|
return {
|
|
5311
5151
|
indicatorKey: `${reshapeInfo.id}`,
|
|
5312
|
-
title:
|
|
5152
|
+
title: isRectungularCoordinate(advancedVSeed.chartType) ? '' : subMeasures.map((m)=>m.alias ?? m.id).join('-'),
|
|
5313
5153
|
cellType: 'chart',
|
|
5314
5154
|
chartModule: 'vchart',
|
|
5315
5155
|
chartSpec: chartSpec,
|
|
@@ -5758,10 +5598,9 @@
|
|
|
5758
5598
|
Builder._specPipelineMap.line = lineSpecPipeline;
|
|
5759
5599
|
};
|
|
5760
5600
|
const defaultEncodingForColumn = (advancedVSeed)=>{
|
|
5761
|
-
const { measures
|
|
5762
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
5601
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
5763
5602
|
const encoding = {};
|
|
5764
|
-
column_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(
|
|
5603
|
+
column_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
|
|
5765
5604
|
column_generateDefaultMeasureEncoding(measures, encoding);
|
|
5766
5605
|
return {
|
|
5767
5606
|
...advancedVSeed,
|
|
@@ -5769,12 +5608,11 @@
|
|
|
5769
5608
|
};
|
|
5770
5609
|
};
|
|
5771
5610
|
const encodingForColumn = (advancedVSeed)=>{
|
|
5772
|
-
const { measures
|
|
5773
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
5611
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
5774
5612
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
5775
5613
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
5776
5614
|
const encoding = {};
|
|
5777
|
-
const hasMulti = hasMultipleMeasureInSingleView(
|
|
5615
|
+
const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures);
|
|
5778
5616
|
if (hasDimensionEncoding) column_generateDimensionEncoding(dimensions, encoding, hasMulti);
|
|
5779
5617
|
else column_generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
|
|
5780
5618
|
if (hasMeasureEncoding) column_generateMeasureEncoding(measures, encoding);
|
|
@@ -5893,16 +5731,17 @@
|
|
|
5893
5731
|
defaultDimensions_defaultDimensions,
|
|
5894
5732
|
defaultMeasureId_defaultMeasureId,
|
|
5895
5733
|
encodingAdapter([
|
|
5896
|
-
buildMeasures
|
|
5734
|
+
buildMeasures([
|
|
5735
|
+
'yAxis',
|
|
5736
|
+
'detail'
|
|
5737
|
+
]),
|
|
5897
5738
|
defaultEncodingForColumn
|
|
5898
5739
|
], [
|
|
5899
|
-
buildMeasures
|
|
5900
|
-
|
|
5901
|
-
|
|
5902
|
-
'tooltip',
|
|
5903
|
-
'label',
|
|
5904
|
-
'color'
|
|
5740
|
+
buildMeasures([
|
|
5741
|
+
'yAxis',
|
|
5742
|
+
'detail'
|
|
5905
5743
|
]),
|
|
5744
|
+
encodingForColumn,
|
|
5906
5745
|
pickDimensionsForReshape
|
|
5907
5746
|
]),
|
|
5908
5747
|
pivotAdapter([
|
|
@@ -6782,16 +6621,17 @@
|
|
|
6782
6621
|
defaultDimensions_defaultDimensions,
|
|
6783
6622
|
defaultMeasureId_defaultMeasureId,
|
|
6784
6623
|
encodingAdapter([
|
|
6785
|
-
buildMeasures
|
|
6624
|
+
buildMeasures([
|
|
6625
|
+
'yAxis',
|
|
6626
|
+
'detail'
|
|
6627
|
+
]),
|
|
6786
6628
|
defaultEncodingForColumn
|
|
6787
6629
|
], [
|
|
6788
|
-
buildMeasures
|
|
6789
|
-
|
|
6790
|
-
|
|
6791
|
-
'tooltip',
|
|
6792
|
-
'label',
|
|
6793
|
-
'color'
|
|
6630
|
+
buildMeasures([
|
|
6631
|
+
'yAxis',
|
|
6632
|
+
'detail'
|
|
6794
6633
|
]),
|
|
6634
|
+
encodingForColumn,
|
|
6795
6635
|
pickDimensionsForReshape
|
|
6796
6636
|
]),
|
|
6797
6637
|
pivotAdapter([
|
|
@@ -6948,16 +6788,17 @@
|
|
|
6948
6788
|
defaultDimensions_defaultDimensions,
|
|
6949
6789
|
defaultMeasureId_defaultMeasureId,
|
|
6950
6790
|
encodingAdapter([
|
|
6951
|
-
buildMeasures
|
|
6791
|
+
buildMeasures([
|
|
6792
|
+
'yAxis',
|
|
6793
|
+
'detail'
|
|
6794
|
+
]),
|
|
6952
6795
|
defaultEncodingForColumn
|
|
6953
6796
|
], [
|
|
6954
|
-
buildMeasures
|
|
6955
|
-
|
|
6956
|
-
|
|
6957
|
-
'tooltip',
|
|
6958
|
-
'label',
|
|
6959
|
-
'color'
|
|
6797
|
+
buildMeasures([
|
|
6798
|
+
'yAxis',
|
|
6799
|
+
'detail'
|
|
6960
6800
|
]),
|
|
6801
|
+
encodingForColumn,
|
|
6961
6802
|
pickDimensionsForReshape
|
|
6962
6803
|
]),
|
|
6963
6804
|
pivotAdapter([
|
|
@@ -7041,10 +6882,9 @@
|
|
|
7041
6882
|
Builder._specPipelineMap.columnPercent = columnPercentSpecPipeline;
|
|
7042
6883
|
};
|
|
7043
6884
|
const defaultEncodingForBar = (advancedVSeed)=>{
|
|
7044
|
-
const { measures
|
|
7045
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
6885
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
7046
6886
|
const encoding = {};
|
|
7047
|
-
bar_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(
|
|
6887
|
+
bar_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
|
|
7048
6888
|
bar_generateDefaultMeasureEncoding(measures, encoding);
|
|
7049
6889
|
return {
|
|
7050
6890
|
...advancedVSeed,
|
|
@@ -7052,12 +6892,11 @@
|
|
|
7052
6892
|
};
|
|
7053
6893
|
};
|
|
7054
6894
|
const encodingForBar = (advancedVSeed)=>{
|
|
7055
|
-
const { measures
|
|
7056
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
6895
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
7057
6896
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
7058
6897
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
7059
6898
|
const encoding = {};
|
|
7060
|
-
const hasMulti = hasMultipleMeasureInSingleView(
|
|
6899
|
+
const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures);
|
|
7061
6900
|
if (hasDimensionEncoding) bar_generateDimensionEncoding(dimensions, encoding, hasMulti);
|
|
7062
6901
|
else bar_generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
|
|
7063
6902
|
if (hasMeasureEncoding) bar_generateMeasureEncoding(measures, encoding);
|
|
@@ -7131,16 +6970,17 @@
|
|
|
7131
6970
|
defaultDimensions_defaultDimensions,
|
|
7132
6971
|
defaultMeasureId_defaultMeasureId,
|
|
7133
6972
|
encodingAdapter([
|
|
7134
|
-
buildMeasures
|
|
6973
|
+
buildMeasures([
|
|
6974
|
+
'xAxis',
|
|
6975
|
+
'detail'
|
|
6976
|
+
]),
|
|
7135
6977
|
defaultEncodingForBar
|
|
7136
6978
|
], [
|
|
7137
|
-
buildMeasures
|
|
7138
|
-
|
|
7139
|
-
|
|
7140
|
-
'tooltip',
|
|
7141
|
-
'label',
|
|
7142
|
-
'color'
|
|
6979
|
+
buildMeasures([
|
|
6980
|
+
'xAxis',
|
|
6981
|
+
'detail'
|
|
7143
6982
|
]),
|
|
6983
|
+
encodingForBar,
|
|
7144
6984
|
pickDimensionsForReshape
|
|
7145
6985
|
]),
|
|
7146
6986
|
pivotAdapter([
|
|
@@ -7225,7 +7065,7 @@
|
|
|
7225
7065
|
...spec
|
|
7226
7066
|
};
|
|
7227
7067
|
const { advancedVSeed, vseed } = context;
|
|
7228
|
-
const { encoding, dimensions, measures } = advancedVSeed;
|
|
7068
|
+
const { encoding, dimensions = [], measures = [] } = advancedVSeed;
|
|
7229
7069
|
const { chartType } = vseed;
|
|
7230
7070
|
const config = advancedVSeed.config?.[chartType]?.xAxis ?? {};
|
|
7231
7071
|
if (!result.axes) result.axes = [];
|
|
@@ -7259,7 +7099,7 @@
|
|
|
7259
7099
|
};
|
|
7260
7100
|
const { advancedVSeed, vseed } = context;
|
|
7261
7101
|
const { chartType } = vseed;
|
|
7262
|
-
const { measures, dimensions, encoding, datasetReshapeInfo, pivotAllDatasetReshapeInfo } = advancedVSeed;
|
|
7102
|
+
const { measures = [], dimensions = [], encoding, datasetReshapeInfo, pivotAllDatasetReshapeInfo } = advancedVSeed;
|
|
7263
7103
|
const config = advancedVSeed.config?.[chartType]?.yAxis ?? {};
|
|
7264
7104
|
if (!result.axes) result.axes = [];
|
|
7265
7105
|
const { labelAutoLimitLength = 80 } = config;
|
|
@@ -7398,16 +7238,17 @@
|
|
|
7398
7238
|
defaultDimensions_defaultDimensions,
|
|
7399
7239
|
defaultMeasureId_defaultMeasureId,
|
|
7400
7240
|
encodingAdapter([
|
|
7401
|
-
buildMeasures
|
|
7241
|
+
buildMeasures([
|
|
7242
|
+
'xAxis',
|
|
7243
|
+
'detail'
|
|
7244
|
+
]),
|
|
7402
7245
|
defaultEncodingForBar
|
|
7403
7246
|
], [
|
|
7404
|
-
buildMeasures
|
|
7405
|
-
|
|
7406
|
-
|
|
7407
|
-
'tooltip',
|
|
7408
|
-
'label',
|
|
7409
|
-
'color'
|
|
7247
|
+
buildMeasures([
|
|
7248
|
+
'xAxis',
|
|
7249
|
+
'detail'
|
|
7410
7250
|
]),
|
|
7251
|
+
encodingForBar,
|
|
7411
7252
|
pickDimensionsForReshape
|
|
7412
7253
|
]),
|
|
7413
7254
|
pivotAdapter([
|
|
@@ -7513,16 +7354,17 @@
|
|
|
7513
7354
|
defaultDimensions_defaultDimensions,
|
|
7514
7355
|
defaultMeasureId_defaultMeasureId,
|
|
7515
7356
|
encodingAdapter([
|
|
7516
|
-
buildMeasures
|
|
7517
|
-
|
|
7357
|
+
buildMeasures([
|
|
7358
|
+
'xAxis',
|
|
7359
|
+
'detail'
|
|
7360
|
+
]),
|
|
7361
|
+
defaultEncodingForBar
|
|
7518
7362
|
], [
|
|
7519
|
-
buildMeasures
|
|
7520
|
-
|
|
7521
|
-
|
|
7522
|
-
'tooltip',
|
|
7523
|
-
'label',
|
|
7524
|
-
'color'
|
|
7363
|
+
buildMeasures([
|
|
7364
|
+
'xAxis',
|
|
7365
|
+
'detail'
|
|
7525
7366
|
]),
|
|
7367
|
+
encodingForBar,
|
|
7526
7368
|
pickDimensionsForReshape
|
|
7527
7369
|
]),
|
|
7528
7370
|
pivotAdapter([
|
|
@@ -7601,16 +7443,17 @@
|
|
|
7601
7443
|
defaultDimensions_defaultDimensions,
|
|
7602
7444
|
defaultMeasureId_defaultMeasureId,
|
|
7603
7445
|
encodingAdapter([
|
|
7604
|
-
buildMeasures
|
|
7446
|
+
buildMeasures([
|
|
7447
|
+
'yAxis',
|
|
7448
|
+
'detail'
|
|
7449
|
+
]),
|
|
7605
7450
|
defaultEncodingForLine
|
|
7606
7451
|
], [
|
|
7607
|
-
buildMeasures
|
|
7608
|
-
|
|
7609
|
-
|
|
7610
|
-
'tooltip',
|
|
7611
|
-
'label',
|
|
7612
|
-
'color'
|
|
7452
|
+
buildMeasures([
|
|
7453
|
+
'yAxis',
|
|
7454
|
+
'detail'
|
|
7613
7455
|
]),
|
|
7456
|
+
encodingForLine,
|
|
7614
7457
|
pickDimensionsForReshape
|
|
7615
7458
|
]),
|
|
7616
7459
|
pivotAdapter([
|
|
@@ -7799,16 +7642,17 @@
|
|
|
7799
7642
|
defaultDimensions_defaultDimensions,
|
|
7800
7643
|
defaultMeasureId_defaultMeasureId,
|
|
7801
7644
|
encodingAdapter([
|
|
7802
|
-
buildMeasures
|
|
7645
|
+
buildMeasures([
|
|
7646
|
+
'yAxis',
|
|
7647
|
+
'detail'
|
|
7648
|
+
]),
|
|
7803
7649
|
defaultEncodingForLine
|
|
7804
7650
|
], [
|
|
7805
|
-
buildMeasures
|
|
7806
|
-
|
|
7807
|
-
|
|
7808
|
-
'tooltip',
|
|
7809
|
-
'label',
|
|
7810
|
-
'color'
|
|
7651
|
+
buildMeasures([
|
|
7652
|
+
'yAxis',
|
|
7653
|
+
'detail'
|
|
7811
7654
|
]),
|
|
7655
|
+
encodingForLine,
|
|
7812
7656
|
pickDimensionsForReshape
|
|
7813
7657
|
]),
|
|
7814
7658
|
pivotAdapter([
|
|
@@ -7886,130 +7730,44 @@
|
|
|
7886
7730
|
Builder._advancedPipelineMap.areaPercent = areaPercentAdvancedPipeline;
|
|
7887
7731
|
Builder._specPipelineMap.areaPercent = areaPercentSpecPipeline;
|
|
7888
7732
|
};
|
|
7889
|
-
const buildMeasuresForScatter = (advancedVSeed
|
|
7890
|
-
const {
|
|
7891
|
-
|
|
7892
|
-
|
|
7893
|
-
|
|
7894
|
-
|
|
7895
|
-
}
|
|
7896
|
-
if (vseed.scatterMeasures) {
|
|
7897
|
-
advancedVSeed.measures = scatterMeasuresToMeasureTree(chunk_BCBB46UE_d(vseed.scatterMeasures));
|
|
7898
|
-
return advancedVSeed;
|
|
7899
|
-
}
|
|
7900
|
-
const { scatterMeasures, encodedMeasures } = basicMeasuresToScatterMeasures(advancedVSeed.measures || []);
|
|
7901
|
-
advancedVSeed.measures = scatterMeasuresToMeasureTree(scatterMeasures);
|
|
7902
|
-
if (encodedMeasures.length) encodedMeasures.forEach((m)=>{
|
|
7903
|
-
advancedVSeed.measures.push(m);
|
|
7904
|
-
});
|
|
7905
|
-
return advancedVSeed;
|
|
7906
|
-
};
|
|
7907
|
-
const basicMeasuresToScatterMeasures = (basicMeasures)=>{
|
|
7908
|
-
const yMeasures = [];
|
|
7909
|
-
const xMeasures = [];
|
|
7910
|
-
const encodedMeasures = [];
|
|
7911
|
-
for(let index = 0; index < basicMeasures.length; index++){
|
|
7912
|
-
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];
|
|
7913
7739
|
const encoding = item.encoding;
|
|
7740
|
+
const parentId = item.parentId || DEFAULT_PARENT_ID;
|
|
7914
7741
|
const isYAxis = 'yAxis' === encoding;
|
|
7915
7742
|
const isXAxis = 'xAxis' === encoding;
|
|
7916
|
-
const
|
|
7917
|
-
|
|
7918
|
-
|
|
7919
|
-
|
|
7920
|
-
|
|
7921
|
-
|
|
7922
|
-
|
|
7923
|
-
|
|
7924
|
-
else if (isOther) encodedMeasures.push(item);
|
|
7925
|
-
else if (0 !== index) yMeasures.push(item);
|
|
7926
|
-
else xMeasures.push(item);
|
|
7927
|
-
}
|
|
7928
|
-
if (0 === yMeasures.length && xMeasures.length > 0) yMeasures.push(xMeasures[0]);
|
|
7929
|
-
return {
|
|
7930
|
-
scatterMeasures: [
|
|
7931
|
-
{
|
|
7932
|
-
id: 'scatterMeasures',
|
|
7933
|
-
xMeasures,
|
|
7934
|
-
yMeasures
|
|
7935
|
-
}
|
|
7936
|
-
],
|
|
7937
|
-
encodedMeasures
|
|
7938
|
-
};
|
|
7939
|
-
};
|
|
7940
|
-
const scatterMeasuresToMeasureTree = (scatterMeasures)=>{
|
|
7941
|
-
const measureTree = scatterMeasures.map((item, index)=>{
|
|
7942
|
-
const { id, xMeasures, yMeasures } = item;
|
|
7943
|
-
const groupChildren = [];
|
|
7944
|
-
let groupId = `${id}-`;
|
|
7945
|
-
if (xMeasures) {
|
|
7946
|
-
const arrPrimaryMeasures = Array.isArray(xMeasures) ? xMeasures : [
|
|
7947
|
-
xMeasures
|
|
7948
|
-
];
|
|
7949
|
-
const alias = arrPrimaryMeasures.map((item)=>item.alias || item.id).toString();
|
|
7950
|
-
groupId += alias;
|
|
7951
|
-
groupChildren.push({
|
|
7952
|
-
id: `${index}-x`,
|
|
7953
|
-
alias: arrPrimaryMeasures.map((item)=>item.alias || item.id).toString(),
|
|
7954
|
-
children: arrPrimaryMeasures
|
|
7955
|
-
});
|
|
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);
|
|
7956
7751
|
}
|
|
7957
|
-
|
|
7958
|
-
|
|
7959
|
-
|
|
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
|
|
7960
7763
|
];
|
|
7961
|
-
const alias = arrSecondaryMeasures.map((item)=>item.alias || item.id).toString();
|
|
7962
|
-
groupId += alias;
|
|
7963
|
-
groupChildren.push({
|
|
7964
|
-
id: `${index}-y`,
|
|
7965
|
-
alias: arrSecondaryMeasures.map((item)=>item.alias || item.id).toString(),
|
|
7966
|
-
children: arrSecondaryMeasures
|
|
7967
|
-
});
|
|
7968
7764
|
}
|
|
7969
|
-
return
|
|
7970
|
-
|
|
7971
|
-
|
|
7972
|
-
children: groupChildren
|
|
7973
|
-
};
|
|
7974
|
-
});
|
|
7975
|
-
if (1 === scatterMeasures.length) return measureTree[0].children || [];
|
|
7976
|
-
return measureTree;
|
|
7977
|
-
};
|
|
7978
|
-
const buildMeasuresForScatter_generateMeasuresByParentId = (measures)=>{
|
|
7979
|
-
const scatterMeasures = [];
|
|
7980
|
-
const encodedMeasures = [];
|
|
7981
|
-
measures.forEach((item)=>{
|
|
7982
|
-
const id = item.parentId || DEFAULT_PARENT_ID;
|
|
7983
|
-
if (!scatterMeasures.find((d)=>d.id === id)) scatterMeasures.push({
|
|
7984
|
-
id,
|
|
7985
|
-
yMeasures: [],
|
|
7986
|
-
xMeasures: []
|
|
7987
|
-
});
|
|
7988
|
-
const scatterChart = scatterMeasures.find((d)=>d.id === id);
|
|
7989
|
-
if (!scatterChart || !Array.isArray(scatterChart.yMeasures) || !Array.isArray(scatterChart.xMeasures)) return;
|
|
7990
|
-
const isYAxis = 'yAxis' === item.encoding;
|
|
7991
|
-
const isXAxis = 'xAxis' === item.encoding;
|
|
7992
|
-
const isOther = item.encoding && [
|
|
7993
|
-
'color',
|
|
7994
|
-
'label',
|
|
7995
|
-
'tooltip',
|
|
7996
|
-
'detail'
|
|
7997
|
-
].includes(item.encoding);
|
|
7998
|
-
if (isYAxis) scatterChart.yMeasures.push(item);
|
|
7999
|
-
else if (isXAxis) scatterChart.xMeasures.push(item);
|
|
8000
|
-
else if (isOther) encodedMeasures.push(item);
|
|
8001
|
-
else if (0 !== scatterChart.yMeasures.length) scatterChart.yMeasures.push(item);
|
|
8002
|
-
else scatterChart.xMeasures.push(item);
|
|
8003
|
-
});
|
|
8004
|
-
const res = scatterMeasuresToMeasureTree(scatterMeasures);
|
|
8005
|
-
if (encodedMeasures.length) encodedMeasures.forEach((m)=>{
|
|
8006
|
-
res.push(m);
|
|
8007
|
-
});
|
|
8008
|
-
return res;
|
|
7765
|
+
return basicMeasures;
|
|
7766
|
+
}).filter((m)=>m.length > 0);
|
|
7767
|
+
return advancedVSeed;
|
|
8009
7768
|
};
|
|
8010
7769
|
const defaultEncodingForScatter = (advancedVSeed)=>{
|
|
8011
|
-
const { measures
|
|
8012
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
7770
|
+
const { measures = [], dimensions = [] } = advancedVSeed;
|
|
8013
7771
|
const encoding = {};
|
|
8014
7772
|
scatter_generateDefaultDimensionEncoding(dimensions, encoding);
|
|
8015
7773
|
scatter_generateDefaultMeasureEncoding(measures, encoding);
|
|
@@ -8019,8 +7777,7 @@
|
|
|
8019
7777
|
};
|
|
8020
7778
|
};
|
|
8021
7779
|
const encodingForScatter = (advancedVSeed)=>{
|
|
8022
|
-
const { measures
|
|
8023
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
7780
|
+
const { measures = [], dimensions = [] } = advancedVSeed;
|
|
8024
7781
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
8025
7782
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
8026
7783
|
const encoding = {};
|
|
@@ -8109,37 +7866,32 @@
|
|
|
8109
7866
|
};
|
|
8110
7867
|
const { vseed } = context;
|
|
8111
7868
|
const { dataset } = vseed;
|
|
8112
|
-
const { encoding, chartType } = advancedVSeed;
|
|
8113
|
-
const measures = (advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? []).filter((m)=>m && m.children);
|
|
7869
|
+
const { encoding, chartType, reshapeMeasures } = advancedVSeed;
|
|
8114
7870
|
const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
|
|
8115
|
-
|
|
7871
|
+
const measures = reshapeMeasures?.[0] ?? [];
|
|
8116
7872
|
const foldInfoList = [];
|
|
8117
7873
|
const unfoldInfoList = [];
|
|
8118
7874
|
const datasets = [];
|
|
8119
|
-
const xMeasures = measures
|
|
8120
|
-
const yMeasures = measures
|
|
8121
|
-
|
|
8122
|
-
|
|
8123
|
-
|
|
8124
|
-
|
|
8125
|
-
|
|
8126
|
-
|
|
8127
|
-
|
|
8128
|
-
|
|
8129
|
-
|
|
8130
|
-
|
|
8131
|
-
|
|
8132
|
-
|
|
8133
|
-
|
|
8134
|
-
|
|
8135
|
-
|
|
8136
|
-
|
|
8137
|
-
|
|
8138
|
-
|
|
8139
|
-
datasets[0] = newDataset;
|
|
8140
|
-
foldInfoList.push(foldInfo);
|
|
8141
|
-
unfoldInfoList.push(unfoldInfo);
|
|
8142
|
-
}
|
|
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);
|
|
8143
7895
|
const unfoldInfo = {
|
|
8144
7896
|
...unfoldInfoList[0],
|
|
8145
7897
|
colorItems: unfoldInfoList.flatMap((d)=>d.colorItems),
|
|
@@ -8169,46 +7921,35 @@
|
|
|
8169
7921
|
const { vseed } = context;
|
|
8170
7922
|
const { dataset } = vseed;
|
|
8171
7923
|
const { encoding, chartType } = advancedVSeed;
|
|
8172
|
-
const
|
|
7924
|
+
const reshapeMeasures = advancedVSeed.reshapeMeasures ?? [];
|
|
8173
7925
|
const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
|
|
8174
|
-
const
|
|
8175
|
-
const measureGroups = [];
|
|
8176
|
-
const depth = measureDepth(measures);
|
|
8177
|
-
if (3 === depth) measures.forEach((measure)=>{
|
|
8178
|
-
measureGroups.push(measure.children);
|
|
8179
|
-
});
|
|
8180
|
-
else if (2 === depth) measureGroups.push(measures);
|
|
7926
|
+
const allMeasuresIds = reshapeMeasures.flatMap((measureGroup)=>measureGroup.map((m)=>m.id));
|
|
8181
7927
|
const datasetList = [];
|
|
8182
7928
|
const datasetReshapeInfo = [];
|
|
8183
|
-
|
|
8184
|
-
if (measures.length > 2) throw new Error('measures can not be more than 2 groups in scatter');
|
|
7929
|
+
reshapeMeasures.forEach((measures, index)=>{
|
|
8185
7930
|
const foldInfoList = [];
|
|
8186
7931
|
const unfoldInfoList = [];
|
|
8187
7932
|
const datasets = [];
|
|
8188
|
-
const xMeasures = measures
|
|
8189
|
-
const yMeasures = measures
|
|
8190
|
-
|
|
8191
|
-
|
|
8192
|
-
|
|
8193
|
-
|
|
8194
|
-
|
|
8195
|
-
|
|
8196
|
-
|
|
8197
|
-
|
|
8198
|
-
|
|
8199
|
-
|
|
8200
|
-
|
|
8201
|
-
|
|
8202
|
-
|
|
8203
|
-
|
|
8204
|
-
|
|
8205
|
-
|
|
8206
|
-
|
|
8207
|
-
|
|
8208
|
-
datasets.push(newDataset);
|
|
8209
|
-
foldInfoList.push(foldInfo);
|
|
8210
|
-
unfoldInfoList.push(unfoldInfo);
|
|
8211
|
-
}
|
|
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);
|
|
8212
7953
|
const unfoldInfo = {
|
|
8213
7954
|
...unfoldInfoList[0],
|
|
8214
7955
|
colorItems: unfoldInfoList.flatMap((d)=>d.colorItems),
|
|
@@ -8247,11 +7988,6 @@
|
|
|
8247
7988
|
], [
|
|
8248
7989
|
buildMeasuresForScatter,
|
|
8249
7990
|
encodingForScatter,
|
|
8250
|
-
pickMeasuresForReshape([
|
|
8251
|
-
'tooltip',
|
|
8252
|
-
'label',
|
|
8253
|
-
'size'
|
|
8254
|
-
]),
|
|
8255
7991
|
pickDimensionsForReshape
|
|
8256
7992
|
]),
|
|
8257
7993
|
pivotAdapter([
|
|
@@ -8338,7 +8074,7 @@
|
|
|
8338
8074
|
...spec
|
|
8339
8075
|
};
|
|
8340
8076
|
const { advancedVSeed, vseed } = context;
|
|
8341
|
-
const { datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
|
|
8077
|
+
const { datasetReshapeInfo, chartType, locale, dimensions = [], encoding } = advancedVSeed;
|
|
8342
8078
|
const baseConfig = advancedVSeed.config[chartType];
|
|
8343
8079
|
const { tooltip = {
|
|
8344
8080
|
enable: true
|
|
@@ -8352,7 +8088,7 @@
|
|
|
8352
8088
|
title: {
|
|
8353
8089
|
visible: false
|
|
8354
8090
|
},
|
|
8355
|
-
content: tooltipScatter_createMarkContent(encoding.tooltip || [], dimensions,
|
|
8091
|
+
content: tooltipScatter_createMarkContent(encoding.tooltip || [], dimensions, vseed.measures, locale, foldInfoList)
|
|
8356
8092
|
},
|
|
8357
8093
|
dimension: {
|
|
8358
8094
|
visible: false
|
|
@@ -8361,7 +8097,7 @@
|
|
|
8361
8097
|
};
|
|
8362
8098
|
return result;
|
|
8363
8099
|
};
|
|
8364
|
-
const tooltipScatter_createMarkContent = (tooltip, dimensions, measures, locale, foldInfoList)=>{
|
|
8100
|
+
const tooltipScatter_createMarkContent = (tooltip, dimensions, measures = [], locale, foldInfoList)=>{
|
|
8365
8101
|
const dims = T(dimensions.filter((item)=>tooltip.includes(item.id)), (item)=>item.id);
|
|
8366
8102
|
const meas = T(measures.filter((item)=>tooltip.includes(item.id)), (item)=>item.id);
|
|
8367
8103
|
const dimContent = dims.map((item)=>({
|
|
@@ -8976,140 +8712,38 @@
|
|
|
8976
8712
|
Builder._advancedPipelineMap.scatter = scatterAdvancedPipeline;
|
|
8977
8713
|
Builder._specPipelineMap.scatter = scatterSpecPipeline;
|
|
8978
8714
|
};
|
|
8979
|
-
const buildMeasuresForDualAxis = (advancedVSeed
|
|
8980
|
-
const {
|
|
8981
|
-
|
|
8982
|
-
|
|
8983
|
-
|
|
8984
|
-
|
|
8985
|
-
}
|
|
8986
|
-
if (vseed.dualMeasures) {
|
|
8987
|
-
advancedVSeed.measures = dualMeasuresToMeasureTree(chunk_BCBB46UE_d(vseed.dualMeasures));
|
|
8988
|
-
return advancedVSeed;
|
|
8989
|
-
}
|
|
8990
|
-
const { dualMeasures, encodedMeasures } = basicMeasuresToDualMeasures(advancedVSeed.measures || []);
|
|
8991
|
-
advancedVSeed.measures = dualMeasuresToMeasureTree(dualMeasures);
|
|
8992
|
-
if (encodedMeasures.length) encodedMeasures.forEach((m)=>{
|
|
8993
|
-
advancedVSeed.measures.push(m);
|
|
8994
|
-
});
|
|
8995
|
-
return advancedVSeed;
|
|
8996
|
-
};
|
|
8997
|
-
const basicMeasuresToDualMeasures = (basicMeasures)=>{
|
|
8998
|
-
const primaryMeasures = [];
|
|
8999
|
-
const secondaryMeasures = [];
|
|
9000
|
-
const encodedMeasures = [];
|
|
9001
|
-
for(let index = 0; index < basicMeasures.length; index++){
|
|
9002
|
-
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];
|
|
9003
8721
|
const encoding = item.encoding;
|
|
8722
|
+
const parentId = item.parentId || DEFAULT_PARENT_ID;
|
|
9004
8723
|
const isPrimaryYAxis = 'primaryYAxis' === encoding;
|
|
9005
8724
|
const isSecondaryYAxis = 'secondaryYAxis' === encoding;
|
|
9006
|
-
const isOtherEncoding = item.encoding &&
|
|
9007
|
-
|
|
9008
|
-
|
|
9009
|
-
|
|
9010
|
-
|
|
9011
|
-
|
|
9012
|
-
|
|
9013
|
-
|
|
9014
|
-
else if (isOtherEncoding)
|
|
9015
|
-
|
|
9016
|
-
|
|
9017
|
-
|
|
9018
|
-
|
|
9019
|
-
dualMeasures: [
|
|
9020
|
-
{
|
|
9021
|
-
id: 'dualMeasures',
|
|
9022
|
-
primaryMeasures,
|
|
9023
|
-
secondaryMeasures
|
|
9024
|
-
}
|
|
9025
|
-
],
|
|
9026
|
-
encodedMeasures
|
|
9027
|
-
};
|
|
9028
|
-
};
|
|
9029
|
-
const dualMeasuresToMeasureTree = (dualMeasures)=>{
|
|
9030
|
-
const measureTree = dualMeasures.map((item, index)=>{
|
|
9031
|
-
const { id, primaryMeasures, secondaryMeasures } = item;
|
|
9032
|
-
const groupChildren = [];
|
|
9033
|
-
let groupId = `${id}-`;
|
|
9034
|
-
if (primaryMeasures) {
|
|
9035
|
-
const arrPrimaryMeasures = Array.isArray(primaryMeasures) ? primaryMeasures : [
|
|
9036
|
-
primaryMeasures
|
|
9037
|
-
];
|
|
9038
|
-
const alias = arrPrimaryMeasures.map((item)=>item.alias || item.id).toString();
|
|
9039
|
-
groupId += alias;
|
|
9040
|
-
groupChildren.push({
|
|
9041
|
-
id: `${index}-primary`,
|
|
9042
|
-
alias: arrPrimaryMeasures.map((item)=>item.alias || item.id).toString(),
|
|
9043
|
-
children: arrPrimaryMeasures
|
|
9044
|
-
});
|
|
9045
|
-
}
|
|
9046
|
-
if (secondaryMeasures) {
|
|
9047
|
-
const arrSecondaryMeasures = Array.isArray(secondaryMeasures) ? secondaryMeasures : [
|
|
9048
|
-
secondaryMeasures
|
|
9049
|
-
];
|
|
9050
|
-
const alias = arrSecondaryMeasures.map((item)=>item.alias || item.id).toString();
|
|
9051
|
-
groupId += alias;
|
|
9052
|
-
groupChildren.push({
|
|
9053
|
-
id: `${index}-secondary`,
|
|
9054
|
-
alias: arrSecondaryMeasures.map((item)=>item.alias || item.id).toString(),
|
|
9055
|
-
children: arrSecondaryMeasures
|
|
9056
|
-
});
|
|
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);
|
|
9057
8738
|
}
|
|
9058
|
-
|
|
9059
|
-
|
|
9060
|
-
|
|
9061
|
-
children: groupChildren
|
|
9062
|
-
};
|
|
9063
|
-
});
|
|
9064
|
-
if (1 === dualMeasures.length) return measureTree[0].children || [];
|
|
9065
|
-
return measureTree;
|
|
9066
|
-
};
|
|
9067
|
-
const buildMeasuresForDualAxis_generateMeasuresByParentId = (measures)=>{
|
|
9068
|
-
const dualMeasures = [];
|
|
9069
|
-
const encodedMeasures = [];
|
|
9070
|
-
measures.forEach((item)=>{
|
|
9071
|
-
const id = item.parentId || DEFAULT_PARENT_ID;
|
|
9072
|
-
if (!dualMeasures.find((d)=>d.id === id)) dualMeasures.push({
|
|
9073
|
-
id,
|
|
9074
|
-
primaryMeasures: [],
|
|
9075
|
-
secondaryMeasures: []
|
|
9076
|
-
});
|
|
9077
|
-
const dualChart = dualMeasures.find((d)=>d.id === id);
|
|
9078
|
-
if (!dualChart || !Array.isArray(dualChart.primaryMeasures) || !Array.isArray(dualChart.secondaryMeasures)) return;
|
|
9079
|
-
const encoding = item.encoding;
|
|
9080
|
-
const isPrimaryYAxis = 'primaryYAxis' === encoding;
|
|
9081
|
-
const isSecondaryYAxis = 'secondaryYAxis' === encoding;
|
|
9082
|
-
const isOtherEncoding = item.encoding && [
|
|
9083
|
-
'color',
|
|
9084
|
-
'label',
|
|
9085
|
-
'tooltip',
|
|
9086
|
-
'detail'
|
|
9087
|
-
].includes(item.encoding);
|
|
9088
|
-
if (isPrimaryYAxis) dualChart.primaryMeasures.push(item);
|
|
9089
|
-
else if (isSecondaryYAxis) dualChart.secondaryMeasures.push(item);
|
|
9090
|
-
else if (isOtherEncoding) encodedMeasures.push(item);
|
|
9091
|
-
else if (0 === dualChart.primaryMeasures.length) dualChart.primaryMeasures.push(item);
|
|
9092
|
-
else dualChart.secondaryMeasures.push(item);
|
|
9093
|
-
});
|
|
9094
|
-
const res = dualMeasuresToMeasureTree(dualMeasures);
|
|
9095
|
-
if (encodedMeasures.length) encodedMeasures.forEach((m)=>{
|
|
9096
|
-
res.push(m);
|
|
9097
|
-
});
|
|
9098
|
-
return res;
|
|
9099
|
-
};
|
|
9100
|
-
const checkSingleViewMultiMeasures = (measures = [])=>measures.length <= 1 && (measures[0].children ?? []).length <= 1;
|
|
9101
|
-
const dualAxis_hasMultipleMeasureInSingleView = (measures = [])=>{
|
|
9102
|
-
const depth = measureDepth(measures);
|
|
9103
|
-
if (depth >= 3) return measures.some((m)=>m && m.children && !checkSingleViewMultiMeasures(m.children));
|
|
9104
|
-
if (2 === depth) return !checkSingleViewMultiMeasures(measures);
|
|
9105
|
-
if (1 === depth) return measures.length >= 1;
|
|
9106
|
-
return false;
|
|
8739
|
+
}
|
|
8740
|
+
advancedVSeed.reshapeMeasures = parentIds.map((pid)=>measuresByView[pid]).filter((m)=>m.length > 0);
|
|
8741
|
+
return advancedVSeed;
|
|
9107
8742
|
};
|
|
9108
8743
|
const defaultEncodingForDualAxis = (advancedVSeed)=>{
|
|
9109
|
-
const { measures
|
|
9110
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
8744
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
9111
8745
|
const encoding = {};
|
|
9112
|
-
dualAxis_generateDefaultDimensionEncoding(dimensions, encoding,
|
|
8746
|
+
dualAxis_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
|
|
9113
8747
|
dualAxis_generateDefaultMeasureEncoding(measures, encoding);
|
|
9114
8748
|
return {
|
|
9115
8749
|
...advancedVSeed,
|
|
@@ -9117,12 +8751,11 @@
|
|
|
9117
8751
|
};
|
|
9118
8752
|
};
|
|
9119
8753
|
const encodingForDualAxis = (advancedVSeed)=>{
|
|
9120
|
-
const { measures
|
|
9121
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
8754
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
9122
8755
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
9123
8756
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
9124
8757
|
const encoding = {};
|
|
9125
|
-
const hasMulti =
|
|
8758
|
+
const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures);
|
|
9126
8759
|
if (hasDimensionEncoding) dualAxis_generateDimensionEncoding(dimensions, encoding, hasMulti);
|
|
9127
8760
|
else dualAxis_generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
|
|
9128
8761
|
if (hasMeasureEncoding) dualAxis_generateMeasureEncoding(measures, encoding);
|
|
@@ -9181,34 +8814,37 @@
|
|
|
9181
8814
|
const { vseed } = context;
|
|
9182
8815
|
const { dataset } = vseed;
|
|
9183
8816
|
const { encoding, chartType } = advancedVSeed;
|
|
9184
|
-
const measures =
|
|
8817
|
+
const measures = advancedVSeed.reshapeMeasures?.[0] ?? [];
|
|
9185
8818
|
const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
|
|
9186
|
-
if (measures.length > 2) throw new Error('measures can not be more than 2 groups in dualAxis');
|
|
9187
8819
|
const foldInfoList = [];
|
|
9188
8820
|
const unfoldInfoList = [];
|
|
9189
8821
|
const datasets = [];
|
|
9190
|
-
const primaryMeasures = measures
|
|
9191
|
-
const secondaryMeasures = measures
|
|
9192
|
-
|
|
9193
|
-
|
|
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, {
|
|
9194
8830
|
colorItemAsId: false,
|
|
9195
8831
|
foldMeasureValue: FoldPrimaryMeasureValue,
|
|
9196
8832
|
colorMeasureId: getColorMeasureId(advancedVSeed, vseed)
|
|
9197
8833
|
});
|
|
9198
|
-
datasets.push(
|
|
9199
|
-
foldInfoList.push(foldInfo);
|
|
9200
|
-
unfoldInfoList.push(unfoldInfo);
|
|
9201
|
-
}
|
|
9202
|
-
|
|
9203
|
-
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, {
|
|
9204
8840
|
colorItemAsId: false,
|
|
9205
8841
|
foldMeasureValue: FoldSecondaryMeasureValue,
|
|
9206
8842
|
colorMeasureId: getColorMeasureId(advancedVSeed, vseed)
|
|
9207
8843
|
});
|
|
9208
|
-
datasets.push(
|
|
9209
|
-
foldInfoList.push(foldInfo);
|
|
9210
|
-
unfoldInfoList.push(unfoldInfo);
|
|
9211
|
-
}
|
|
8844
|
+
datasets.push(secondaryResult.dataset);
|
|
8845
|
+
foldInfoList.push(secondaryResult.foldInfo);
|
|
8846
|
+
unfoldInfoList.push(secondaryResult.unfoldInfo);
|
|
8847
|
+
});
|
|
9212
8848
|
const unfoldInfo = {
|
|
9213
8849
|
...unfoldInfoList[0],
|
|
9214
8850
|
colorItems: unfoldInfoList.flatMap((d)=>d.colorItems),
|
|
@@ -9238,46 +8874,43 @@
|
|
|
9238
8874
|
const { vseed } = context;
|
|
9239
8875
|
const { dataset } = vseed;
|
|
9240
8876
|
const { encoding, chartType } = advancedVSeed;
|
|
9241
|
-
const
|
|
8877
|
+
const reshapeMeasures = advancedVSeed.reshapeMeasures ?? [];
|
|
9242
8878
|
const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
|
|
9243
|
-
const
|
|
8879
|
+
const allMeasuresIds = reshapeMeasures.flatMap((measureGroup)=>measureGroup.map((m)=>m.id));
|
|
9244
8880
|
const datasetList = [];
|
|
9245
8881
|
const datasetReshapeInfo = [];
|
|
9246
|
-
|
|
9247
|
-
const depth = measureDepth(measures);
|
|
9248
|
-
if (3 === depth) measures.forEach((measure)=>{
|
|
9249
|
-
if (measure.children) measureGroups.push(measure.children);
|
|
9250
|
-
});
|
|
9251
|
-
else if (2 === depth) measureGroups.push(measures.filter((m)=>m && m.children));
|
|
9252
|
-
measureGroups.forEach((measures, index)=>{
|
|
9253
|
-
if (measures.length > 2) throw new Error('measures can not be more than 2 groups in dualAxis');
|
|
8882
|
+
reshapeMeasures.forEach((measures, index)=>{
|
|
9254
8883
|
const foldInfoList = [];
|
|
9255
8884
|
const unfoldInfoList = [];
|
|
9256
8885
|
const datasets = [];
|
|
9257
|
-
const primaryMeasures = measures
|
|
9258
|
-
const secondaryMeasures = measures
|
|
9259
|
-
|
|
9260
|
-
|
|
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, {
|
|
9261
8894
|
colorItemAsId: false,
|
|
9262
8895
|
foldMeasureValue: `${FoldPrimaryMeasureValue}${index}`,
|
|
9263
8896
|
colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
|
|
9264
|
-
omitIds:
|
|
8897
|
+
omitIds: allMeasuresIds
|
|
9265
8898
|
});
|
|
9266
|
-
datasets.push(
|
|
9267
|
-
foldInfoList.push(foldInfo);
|
|
9268
|
-
unfoldInfoList.push(unfoldInfo);
|
|
9269
|
-
}
|
|
9270
|
-
|
|
9271
|
-
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, {
|
|
9272
8905
|
colorItemAsId: false,
|
|
9273
8906
|
foldMeasureValue: `${FoldSecondaryMeasureValue}${index}`,
|
|
9274
8907
|
colorMeasureId: getColorMeasureId(advancedVSeed, vseed),
|
|
9275
|
-
omitIds:
|
|
8908
|
+
omitIds: allMeasuresIds
|
|
9276
8909
|
});
|
|
9277
|
-
datasets.push(
|
|
9278
|
-
foldInfoList.push(foldInfo);
|
|
9279
|
-
unfoldInfoList.push(unfoldInfo);
|
|
9280
|
-
}
|
|
8910
|
+
datasets.push(secondaryResult.dataset);
|
|
8911
|
+
foldInfoList.push(secondaryResult.foldInfo);
|
|
8912
|
+
unfoldInfoList.push(secondaryResult.unfoldInfo);
|
|
8913
|
+
});
|
|
9281
8914
|
const unfoldInfo = {
|
|
9282
8915
|
...unfoldInfoList[0],
|
|
9283
8916
|
colorItems: unfoldInfoList.flatMap((d)=>d.colorItems),
|
|
@@ -9315,7 +8948,6 @@
|
|
|
9315
8948
|
'legend',
|
|
9316
8949
|
'tooltip',
|
|
9317
8950
|
'xAxis',
|
|
9318
|
-
'dualChartType',
|
|
9319
8951
|
'alignTicks',
|
|
9320
8952
|
'primaryYAxis',
|
|
9321
8953
|
'secondaryYAxis',
|
|
@@ -9346,11 +8978,6 @@
|
|
|
9346
8978
|
], [
|
|
9347
8979
|
buildMeasuresForDualAxis,
|
|
9348
8980
|
encodingForDualAxis,
|
|
9349
|
-
pickMeasuresForReshape([
|
|
9350
|
-
'tooltip',
|
|
9351
|
-
'label',
|
|
9352
|
-
'color'
|
|
9353
|
-
]),
|
|
9354
8981
|
pickDimensionsForReshape
|
|
9355
8982
|
]),
|
|
9356
8983
|
pivotAdapter([
|
|
@@ -9365,7 +8992,7 @@
|
|
|
9365
8992
|
markStyle_markStyle,
|
|
9366
8993
|
annotation_annotation
|
|
9367
8994
|
];
|
|
9368
|
-
const series_series = (
|
|
8995
|
+
const series_series = (pipeByAxis, pipes)=>{
|
|
9369
8996
|
const result = {
|
|
9370
8997
|
type: 'common',
|
|
9371
8998
|
padding: 0,
|
|
@@ -9376,11 +9003,28 @@
|
|
|
9376
9003
|
]
|
|
9377
9004
|
};
|
|
9378
9005
|
return (_, context)=>{
|
|
9379
|
-
|
|
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
|
+
});
|
|
9380
9024
|
return result;
|
|
9381
9025
|
};
|
|
9382
9026
|
};
|
|
9383
|
-
const seriesDualAxis = (
|
|
9027
|
+
const seriesDualAxis = (pipeByAxis, pipes)=>{
|
|
9384
9028
|
const result = {
|
|
9385
9029
|
type: 'common',
|
|
9386
9030
|
padding: 0,
|
|
@@ -9391,129 +9035,52 @@
|
|
|
9391
9035
|
}
|
|
9392
9036
|
]
|
|
9393
9037
|
};
|
|
9394
|
-
const createDualContext = (context, index)=>{
|
|
9395
|
-
const { advancedVSeed } = context;
|
|
9396
|
-
const dataset = advancedVSeed.dataset[index];
|
|
9397
|
-
return {
|
|
9398
|
-
...context,
|
|
9399
|
-
advancedVSeed: {
|
|
9400
|
-
...advancedVSeed,
|
|
9401
|
-
dataset: dataset
|
|
9402
|
-
}
|
|
9403
|
-
};
|
|
9404
|
-
};
|
|
9405
9038
|
return (_, context)=>{
|
|
9406
|
-
|
|
9407
|
-
|
|
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
|
+
];
|
|
9408
9062
|
return execPipeline(pipeline, seriesContext, {});
|
|
9409
9063
|
});
|
|
9410
9064
|
return result;
|
|
9411
9065
|
};
|
|
9412
9066
|
};
|
|
9413
|
-
const
|
|
9414
|
-
|
|
9415
|
-
|
|
9416
|
-
|
|
9417
|
-
|
|
9418
|
-
|
|
9419
|
-
|
|
9420
|
-
|
|
9421
|
-
|
|
9422
|
-
|
|
9423
|
-
|
|
9424
|
-
|
|
9425
|
-
|
|
9426
|
-
|
|
9427
|
-
|
|
9428
|
-
};
|
|
9429
|
-
const initDualAxisSecondary = (spec, context)=>{
|
|
9430
|
-
const result = {
|
|
9431
|
-
...spec
|
|
9432
|
-
};
|
|
9433
|
-
const { advancedVSeed, vseed } = context;
|
|
9434
|
-
const { datasetReshapeInfo } = advancedVSeed;
|
|
9435
|
-
const { unfoldInfo, foldInfoList, id } = datasetReshapeInfo[0];
|
|
9436
|
-
result.id = `${id}-secondary-series`;
|
|
9437
|
-
result.type = 'line';
|
|
9438
|
-
result.direction = 'vertical';
|
|
9439
|
-
result.xField = unfoldInfo.encodingX;
|
|
9440
|
-
if (foldInfoList?.[1]) result.yField = foldInfoList[1].measureValue;
|
|
9441
|
-
result.seriesField = isLinearColor(advancedVSeed, vseed) ? unfoldInfo.encodingDetail : unfoldInfo.encodingColorId;
|
|
9442
|
-
result.animation = true;
|
|
9443
|
-
return result;
|
|
9444
|
-
};
|
|
9445
|
-
const DEFAULT_DUAL_CHART_TYPE = {
|
|
9446
|
-
primary: 'column',
|
|
9447
|
-
secondary: 'line'
|
|
9448
|
-
};
|
|
9449
|
-
const dualChartTypePrimary = (spec, context)=>{
|
|
9450
|
-
const result = {
|
|
9451
|
-
...spec,
|
|
9452
|
-
zIndex: 1001
|
|
9453
|
-
};
|
|
9454
|
-
const { advancedVSeed, vseed } = context;
|
|
9455
|
-
const { chartType } = vseed;
|
|
9456
|
-
const { datasetReshapeInfo } = advancedVSeed;
|
|
9457
|
-
const index = datasetReshapeInfo[0].index;
|
|
9458
|
-
const config = advancedVSeed.config?.[chartType]?.dualChartType || DEFAULT_DUAL_CHART_TYPE;
|
|
9459
|
-
const primary = (Array.isArray(config) ? config[index]?.primary || config[0]?.primary : config.primary) ?? DEFAULT_DUAL_CHART_TYPE.primary;
|
|
9460
|
-
const secondary = (Array.isArray(config) ? config[index]?.secondary || config[0]?.secondary : config.secondary) ?? DEFAULT_DUAL_CHART_TYPE.secondary;
|
|
9461
|
-
const bothColumn = 'column' === primary && 'column' === secondary;
|
|
9462
|
-
const type = bothColumn ? 'columnParallel' : primary;
|
|
9463
|
-
switch(type){
|
|
9464
|
-
case 'line':
|
|
9465
|
-
result.type = 'line';
|
|
9466
|
-
break;
|
|
9467
|
-
case 'column':
|
|
9468
|
-
result.type = 'bar';
|
|
9469
|
-
result.zIndex = 1000;
|
|
9470
|
-
break;
|
|
9471
|
-
case 'columnParallel':
|
|
9472
|
-
{
|
|
9473
|
-
const columnSpec = result;
|
|
9474
|
-
if (Array.isArray(columnSpec.xField)) columnSpec.xField.push(datasetReshapeInfo[0].unfoldInfo.encodingDetail);
|
|
9475
|
-
else if (columnSpec.xField) columnSpec.xField = [
|
|
9476
|
-
columnSpec.xField,
|
|
9477
|
-
datasetReshapeInfo[0].unfoldInfo.encodingDetail
|
|
9478
|
-
];
|
|
9479
|
-
columnSpec.type = 'bar';
|
|
9480
|
-
result.zIndex = 1000;
|
|
9481
|
-
break;
|
|
9482
|
-
}
|
|
9483
|
-
case 'columnPercent':
|
|
9484
|
-
result.type = 'bar';
|
|
9485
|
-
result.percent = true;
|
|
9486
|
-
result.zIndex = 1000;
|
|
9487
|
-
break;
|
|
9488
|
-
case 'area':
|
|
9489
|
-
result.type = 'area';
|
|
9490
|
-
break;
|
|
9491
|
-
case 'areaPercent':
|
|
9492
|
-
result.type = 'area';
|
|
9493
|
-
result.percent = true;
|
|
9494
|
-
break;
|
|
9495
|
-
case 'scatter':
|
|
9496
|
-
result.type = 'scatter';
|
|
9497
|
-
break;
|
|
9498
|
-
default:
|
|
9499
|
-
result.type = primary;
|
|
9500
|
-
}
|
|
9501
|
-
return result;
|
|
9502
|
-
};
|
|
9503
|
-
const dualChartTypeSecondary = (spec, context)=>{
|
|
9504
|
-
const result = {
|
|
9505
|
-
...spec,
|
|
9506
|
-
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;
|
|
9507
9082
|
};
|
|
9508
|
-
|
|
9509
|
-
const { chartType } = vseed;
|
|
9510
|
-
const { datasetReshapeInfo } = advancedVSeed;
|
|
9511
|
-
const config = advancedVSeed.config?.[chartType]?.dualChartType || DEFAULT_DUAL_CHART_TYPE;
|
|
9512
|
-
const index = datasetReshapeInfo[0].index;
|
|
9513
|
-
const primary = (Array.isArray(config) ? config[index]?.primary || config[0]?.primary : config.primary) ?? DEFAULT_DUAL_CHART_TYPE.primary;
|
|
9514
|
-
const secondary = (Array.isArray(config) ? config[index]?.secondary || config[0]?.secondary : config.secondary) ?? DEFAULT_DUAL_CHART_TYPE.secondary;
|
|
9515
|
-
const bothColumn = 'column' === primary && 'column' === secondary;
|
|
9516
|
-
const type = bothColumn ? 'columnParallel' : secondary;
|
|
9083
|
+
function applyChartType(result, type, datasetReshapeInfo) {
|
|
9517
9084
|
switch(type){
|
|
9518
9085
|
case 'line':
|
|
9519
9086
|
result.type = 'line';
|
|
@@ -9550,181 +9117,105 @@
|
|
|
9550
9117
|
result.type = 'scatter';
|
|
9551
9118
|
break;
|
|
9552
9119
|
default:
|
|
9553
|
-
result.type =
|
|
9554
|
-
}
|
|
9555
|
-
return result;
|
|
9556
|
-
};
|
|
9557
|
-
const datasetPrimary = (spec, context)=>{
|
|
9558
|
-
const { advancedVSeed, vseed } = context;
|
|
9559
|
-
const { analysis, datasetReshapeInfo } = advancedVSeed;
|
|
9560
|
-
const orderMapping = analysis?.orderMapping || {};
|
|
9561
|
-
const { unfoldInfo } = datasetReshapeInfo[0];
|
|
9562
|
-
const x = unfoldInfo.encodingX;
|
|
9563
|
-
const colorId = unfoldInfo.encodingColorId;
|
|
9564
|
-
const id = datasetReshapeInfo[0].id;
|
|
9565
|
-
const fields = {};
|
|
9566
|
-
if (x) {
|
|
9567
|
-
const order = orderMapping[x];
|
|
9568
|
-
if (order) fields[x] = {
|
|
9569
|
-
sortIndex: 0,
|
|
9570
|
-
domain: order,
|
|
9571
|
-
lockStatisticsByDomain: true
|
|
9572
|
-
};
|
|
9573
|
-
else fields[x] = {
|
|
9574
|
-
sortIndex: 0
|
|
9575
|
-
};
|
|
9120
|
+
result.type = type;
|
|
9576
9121
|
}
|
|
9577
|
-
|
|
9578
|
-
|
|
9579
|
-
|
|
9580
|
-
|
|
9581
|
-
|
|
9582
|
-
lockStatisticsByDomain: true
|
|
9583
|
-
};
|
|
9584
|
-
else fields[colorId] = {
|
|
9585
|
-
sortIndex: 0
|
|
9122
|
+
}
|
|
9123
|
+
const dualChartType = (options)=>(spec, context)=>{
|
|
9124
|
+
const result = {
|
|
9125
|
+
...spec,
|
|
9126
|
+
zIndex: 1001
|
|
9586
9127
|
};
|
|
9587
|
-
|
|
9588
|
-
|
|
9589
|
-
|
|
9590
|
-
|
|
9591
|
-
|
|
9592
|
-
|
|
9593
|
-
|
|
9594
|
-
}
|
|
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;
|
|
9595
9135
|
};
|
|
9596
|
-
|
|
9597
|
-
|
|
9598
|
-
|
|
9599
|
-
|
|
9600
|
-
|
|
9601
|
-
|
|
9602
|
-
|
|
9603
|
-
|
|
9604
|
-
|
|
9605
|
-
|
|
9606
|
-
|
|
9607
|
-
|
|
9608
|
-
|
|
9609
|
-
|
|
9610
|
-
|
|
9611
|
-
|
|
9612
|
-
|
|
9613
|
-
|
|
9614
|
-
|
|
9615
|
-
};
|
|
9616
|
-
}
|
|
9617
|
-
if (colorId) {
|
|
9618
|
-
const order = orderMapping[colorId];
|
|
9619
|
-
if (order) fields[colorId] = {
|
|
9620
|
-
sortIndex: 0,
|
|
9621
|
-
domain: order,
|
|
9622
|
-
lockStatisticsByDomain: true
|
|
9623
|
-
};
|
|
9624
|
-
else fields[colorId] = {
|
|
9625
|
-
sortIndex: 0
|
|
9626
|
-
};
|
|
9627
|
-
}
|
|
9628
|
-
return {
|
|
9629
|
-
...spec,
|
|
9630
|
-
data: {
|
|
9631
|
-
id: `${id}-secondary-dataset`,
|
|
9632
|
-
values: chatType_isPivotChart(vseed) ? void 0 : advancedVSeed.dataset,
|
|
9633
|
-
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
|
+
};
|
|
9634
9155
|
}
|
|
9635
|
-
|
|
9636
|
-
|
|
9637
|
-
|
|
9638
|
-
|
|
9639
|
-
|
|
9640
|
-
|
|
9641
|
-
|
|
9642
|
-
|
|
9643
|
-
|
|
9644
|
-
|
|
9645
|
-
const foldInfoList = datasetReshapeInfo[0].foldInfoList;
|
|
9646
|
-
result.label = buildLabel(baseConfig.label, vseed.measures, vseed.dimensions, advancedVSeed.dimensions, advancedVSeed.measures, encoding, [
|
|
9647
|
-
foldInfoList[0]
|
|
9648
|
-
]);
|
|
9649
|
-
result.label.zIndex = 1002;
|
|
9650
|
-
return result;
|
|
9651
|
-
};
|
|
9652
|
-
const labelSecondary = (spec, context)=>{
|
|
9653
|
-
const result = {
|
|
9654
|
-
...spec
|
|
9655
|
-
};
|
|
9656
|
-
const { advancedVSeed, vseed } = context;
|
|
9657
|
-
const { datasetReshapeInfo, encoding } = advancedVSeed;
|
|
9658
|
-
const { chartType } = advancedVSeed;
|
|
9659
|
-
const baseConfig = advancedVSeed.config[chartType];
|
|
9660
|
-
const foldInfoList = datasetReshapeInfo[0].foldInfoList;
|
|
9661
|
-
result.label = buildLabel(baseConfig.label, vseed.measures, vseed.dimensions, advancedVSeed.dimensions, advancedVSeed.measures, encoding, [
|
|
9662
|
-
foldInfoList[1]
|
|
9663
|
-
]);
|
|
9664
|
-
result.label.zIndex = 1002;
|
|
9665
|
-
return result;
|
|
9666
|
-
};
|
|
9667
|
-
const tooltipPrimary = (spec, context)=>{
|
|
9668
|
-
const result = {
|
|
9669
|
-
...spec
|
|
9670
|
-
};
|
|
9671
|
-
const { advancedVSeed, vseed } = context;
|
|
9672
|
-
const { measures, datasetReshapeInfo, chartType, dimensions, encoding } = advancedVSeed;
|
|
9673
|
-
const baseConfig = advancedVSeed.config[chartType];
|
|
9674
|
-
const { tooltip = {
|
|
9675
|
-
enable: true
|
|
9676
|
-
} } = baseConfig;
|
|
9677
|
-
const { enable } = tooltip;
|
|
9678
|
-
const foldInfoList = datasetReshapeInfo[0].foldInfoList;
|
|
9679
|
-
const unfoldInfo = datasetReshapeInfo[0].unfoldInfo;
|
|
9680
|
-
result.tooltip = {
|
|
9681
|
-
visible: enable,
|
|
9682
|
-
mark: {
|
|
9683
|
-
title: {
|
|
9684
|
-
visible: false
|
|
9685
|
-
},
|
|
9686
|
-
content: createMarkContent(encoding.tooltip || [], dimensions, findAllMeasures(vseed.measures), foldInfoList[0], unfoldInfo)
|
|
9687
|
-
},
|
|
9688
|
-
dimension: {
|
|
9689
|
-
title: {
|
|
9690
|
-
visible: true
|
|
9691
|
-
},
|
|
9692
|
-
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
|
+
};
|
|
9693
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
|
+
};
|
|
9694
9175
|
};
|
|
9695
|
-
|
|
9696
|
-
|
|
9697
|
-
|
|
9698
|
-
|
|
9699
|
-
|
|
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;
|
|
9700
9189
|
};
|
|
9701
|
-
|
|
9702
|
-
|
|
9703
|
-
|
|
9704
|
-
|
|
9705
|
-
|
|
9706
|
-
|
|
9707
|
-
|
|
9708
|
-
|
|
9709
|
-
|
|
9710
|
-
|
|
9711
|
-
|
|
9712
|
-
|
|
9713
|
-
|
|
9714
|
-
|
|
9715
|
-
|
|
9716
|
-
|
|
9717
|
-
|
|
9718
|
-
|
|
9719
|
-
|
|
9720
|
-
title: {
|
|
9721
|
-
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)
|
|
9722
9209
|
},
|
|
9723
|
-
|
|
9724
|
-
|
|
9210
|
+
dimension: {
|
|
9211
|
+
title: {
|
|
9212
|
+
visible: true
|
|
9213
|
+
},
|
|
9214
|
+
content: createDimensionContent(dimensions, measures, options.foldInfo, unfoldInfo)
|
|
9215
|
+
}
|
|
9216
|
+
};
|
|
9217
|
+
return result;
|
|
9725
9218
|
};
|
|
9726
|
-
return result;
|
|
9727
|
-
};
|
|
9728
9219
|
const tooltipDualAxis = (spec, context)=>{
|
|
9729
9220
|
const result = {
|
|
9730
9221
|
...spec
|
|
@@ -9763,25 +9254,29 @@
|
|
|
9763
9254
|
};
|
|
9764
9255
|
const { advancedVSeed, vseed } = context;
|
|
9765
9256
|
const { chartType } = vseed;
|
|
9766
|
-
const { datasetReshapeInfo,
|
|
9257
|
+
const { datasetReshapeInfo, reshapeMeasures = [] } = advancedVSeed;
|
|
9767
9258
|
const { index, id: reshapeInfoId, foldInfoList } = datasetReshapeInfo[0];
|
|
9768
9259
|
const primaryYAxis = advancedVSeed.config?.[chartType]?.primaryYAxis;
|
|
9769
9260
|
const yAxisConfig = Array.isArray(primaryYAxis) ? primaryYAxis[index] || primaryYAxis[0] : primaryYAxis;
|
|
9770
9261
|
const alignTicks = advancedVSeed.config?.[chartType]?.alignTicks;
|
|
9771
9262
|
const alignTicksConfig = Array.isArray(alignTicks) ? alignTicks[index] || alignTicks[0] : alignTicks;
|
|
9772
|
-
if (
|
|
9773
|
-
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);
|
|
9774
9266
|
const id = `${reshapeInfoId}-primary-axis`;
|
|
9775
|
-
const
|
|
9776
|
-
`${reshapeInfoId}-primary-series`,
|
|
9777
|
-
`${reshapeInfoId}-secondary-series`
|
|
9778
|
-
];
|
|
9779
|
-
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);
|
|
9780
9268
|
if (!result.axes) result.axes = [];
|
|
9781
9269
|
const { autoFormat, numFormat = {} } = yAxisConfig ?? {};
|
|
9782
9270
|
const formatter = createNumFormatter(numFormat);
|
|
9783
9271
|
const formatMethod = (value)=>createLinearFormat(value, autoFormat, numFormat, formatter);
|
|
9784
|
-
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(' & ');
|
|
9785
9280
|
const linearAxis = {
|
|
9786
9281
|
...linearAxisStyle({
|
|
9787
9282
|
...yAxisConfig,
|
|
@@ -9791,7 +9286,7 @@
|
|
|
9791
9286
|
id,
|
|
9792
9287
|
seriesId
|
|
9793
9288
|
}),
|
|
9794
|
-
visible:
|
|
9289
|
+
visible: isEmpty ? false : yAxisConfig?.visible ?? true
|
|
9795
9290
|
};
|
|
9796
9291
|
result.axes = [
|
|
9797
9292
|
...result.axes,
|
|
@@ -9805,30 +9300,28 @@
|
|
|
9805
9300
|
};
|
|
9806
9301
|
const { advancedVSeed, vseed } = context;
|
|
9807
9302
|
const { chartType } = vseed;
|
|
9808
|
-
const { datasetReshapeInfo,
|
|
9303
|
+
const { datasetReshapeInfo, reshapeMeasures = [] } = advancedVSeed;
|
|
9809
9304
|
const { index, id: reshapeInfoId, foldInfoList } = datasetReshapeInfo[0];
|
|
9810
9305
|
const secondaryYAxis = advancedVSeed.config?.[chartType]?.secondaryYAxis;
|
|
9811
9306
|
const yAxisConfig = Array.isArray(secondaryYAxis) ? secondaryYAxis[index] || secondaryYAxis[0] : secondaryYAxis;
|
|
9812
9307
|
const alignTicks = advancedVSeed.config?.[chartType]?.alignTicks;
|
|
9813
9308
|
const alignTicksConfig = Array.isArray(alignTicks) ? alignTicks[index] || alignTicks[0] : alignTicks;
|
|
9814
|
-
if (
|
|
9815
|
-
const
|
|
9816
|
-
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);
|
|
9817
9313
|
const sync = {
|
|
9818
9314
|
axisId: `${reshapeInfoId}-primary-axis`,
|
|
9819
9315
|
zeroAlign: true
|
|
9820
9316
|
};
|
|
9821
9317
|
const id = `${reshapeInfoId}-secondary-axis`;
|
|
9822
|
-
const
|
|
9823
|
-
`${reshapeInfoId}-primary-series`,
|
|
9824
|
-
`${reshapeInfoId}-secondary-series`
|
|
9825
|
-
];
|
|
9826
|
-
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);
|
|
9827
9319
|
if (!result.axes) result.axes = [];
|
|
9828
9320
|
const { autoFormat, numFormat = {} } = yAxisConfig ?? {};
|
|
9829
9321
|
const formatter = createNumFormatter(numFormat);
|
|
9830
9322
|
const formatMethod = (value)=>createLinearFormat(value, autoFormat, numFormat, formatter);
|
|
9831
|
-
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(' & ');
|
|
9832
9325
|
const baseStyle = linearAxisStyle({
|
|
9833
9326
|
...yAxisConfig,
|
|
9834
9327
|
orient: 'right',
|
|
@@ -9858,7 +9351,7 @@
|
|
|
9858
9351
|
};
|
|
9859
9352
|
const { advancedVSeed } = context;
|
|
9860
9353
|
const { datasetReshapeInfo, chartType } = advancedVSeed;
|
|
9861
|
-
const { unfoldInfo
|
|
9354
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
|
9862
9355
|
const baseConfig = advancedVSeed.config[chartType];
|
|
9863
9356
|
if (!baseConfig || !baseConfig.color) return result;
|
|
9864
9357
|
const { color } = baseConfig;
|
|
@@ -9866,20 +9359,12 @@
|
|
|
9866
9359
|
result.color = {
|
|
9867
9360
|
type: 'linear',
|
|
9868
9361
|
range: linearColorScheme || colorScheme || [],
|
|
9869
|
-
domain:
|
|
9870
|
-
|
|
9871
|
-
dataId: `${id}-primary-dataset`,
|
|
9872
|
-
fields: [
|
|
9873
|
-
unfoldInfo.encodingColor
|
|
9874
|
-
]
|
|
9875
|
-
},
|
|
9876
|
-
{
|
|
9877
|
-
dataId: `${id}-secondary-dataset`,
|
|
9362
|
+
domain: spec.series.map((s)=>({
|
|
9363
|
+
dataId: s.data.id,
|
|
9878
9364
|
fields: [
|
|
9879
9365
|
unfoldInfo.encodingColor
|
|
9880
9366
|
]
|
|
9881
|
-
}
|
|
9882
|
-
]
|
|
9367
|
+
}))
|
|
9883
9368
|
};
|
|
9884
9369
|
return result;
|
|
9885
9370
|
};
|
|
@@ -9912,14 +9397,14 @@
|
|
|
9912
9397
|
const annotationPointOfDualAxis = generateAnnotationPointPipe({
|
|
9913
9398
|
findSelectedDatas: (dataset, s, spec, context)=>dataset.reduce((res, d)=>{
|
|
9914
9399
|
const { advancedVSeed } = context;
|
|
9915
|
-
const allMeasureIds =
|
|
9400
|
+
const allMeasureIds = flatReshapeMeasures(advancedVSeed.reshapeMeasures ?? []).map((m)=>m.id);
|
|
9916
9401
|
const pickedDatum = pickWithout(d, allMeasureIds.filter((id)=>id !== d[MeasureId]));
|
|
9917
9402
|
if (selector_selector(pickedDatum, s)) res.push(pickedDatum);
|
|
9918
9403
|
return res;
|
|
9919
9404
|
}, []),
|
|
9920
9405
|
generateMarkPoint: (datum, spec, context)=>{
|
|
9921
9406
|
const { advancedVSeed } = context;
|
|
9922
|
-
const allMeasureIds =
|
|
9407
|
+
const allMeasureIds = flatReshapeMeasures(advancedVSeed.reshapeMeasures ?? []).map((m)=>m.id);
|
|
9923
9408
|
return spec.series?.map((s, index)=>({
|
|
9924
9409
|
relativeSeriesIndex: index,
|
|
9925
9410
|
coordinate: (data)=>data.find((item)=>isSubset(datum, item, allMeasureIds.filter((id)=>id !== item[MeasureId])))
|
|
@@ -9928,26 +9413,12 @@
|
|
|
9928
9413
|
});
|
|
9929
9414
|
const dualAxis = [
|
|
9930
9415
|
seriesDualAxis([
|
|
9931
|
-
|
|
9932
|
-
|
|
9933
|
-
|
|
9934
|
-
|
|
9935
|
-
|
|
9936
|
-
progressive,
|
|
9937
|
-
barMaxWidth_barMaxWidth,
|
|
9938
|
-
barGapInGroup_barGapInGroup,
|
|
9939
|
-
stackCornerRadius_stackCornerRadius,
|
|
9940
|
-
barStyleFilter(colorBarStyleFill(barStyle_barStyle)),
|
|
9941
|
-
pointStyleFilter(colorPointStyleFill(pointStyle_pointStyle)),
|
|
9942
|
-
pointStyleFilter(pointStateDimensionHover),
|
|
9943
|
-
lineStyleFilter(colorLineStyleFill(lineStyle_lineStyle)),
|
|
9944
|
-
areaStyleFilter(colorAreaStyleFill(areaStyle_areaStyle))
|
|
9416
|
+
initDualAxis,
|
|
9417
|
+
dualChartType,
|
|
9418
|
+
datasetDualAxis,
|
|
9419
|
+
labelDualAxis,
|
|
9420
|
+
tooltipOfDualAxisSeries
|
|
9945
9421
|
], [
|
|
9946
|
-
initDualAxisSecondary,
|
|
9947
|
-
dualChartTypeSecondary,
|
|
9948
|
-
datasetSecondary,
|
|
9949
|
-
labelSecondary,
|
|
9950
|
-
tooltipSecondary,
|
|
9951
9422
|
progressive,
|
|
9952
9423
|
barMaxWidth_barMaxWidth,
|
|
9953
9424
|
barGapInGroup_barGapInGroup,
|
|
@@ -9978,35 +9449,21 @@
|
|
|
9978
9449
|
datasetPivot,
|
|
9979
9450
|
pivotIndicators_pivotIndicators([
|
|
9980
9451
|
series_series([
|
|
9981
|
-
|
|
9982
|
-
|
|
9983
|
-
|
|
9984
|
-
|
|
9985
|
-
|
|
9986
|
-
progressive,
|
|
9987
|
-
stackCornerRadius_stackCornerRadius,
|
|
9988
|
-
barMaxWidth_barMaxWidth,
|
|
9989
|
-
barGapInGroup_barGapInGroup,
|
|
9990
|
-
colorBarStyleFill(barStyle_barStyle),
|
|
9991
|
-
colorPointStyleFill(pointStyle_pointStyle),
|
|
9992
|
-
pointStateDimensionHover,
|
|
9993
|
-
colorLineStyleFill(lineStyle_lineStyle),
|
|
9994
|
-
colorAreaStyleFill(areaStyle_areaStyle)
|
|
9452
|
+
initDualAxis,
|
|
9453
|
+
dualChartType,
|
|
9454
|
+
datasetDualAxis,
|
|
9455
|
+
labelDualAxis,
|
|
9456
|
+
tooltipOfDualAxisSeries
|
|
9995
9457
|
], [
|
|
9996
|
-
initDualAxisSecondary,
|
|
9997
|
-
dualChartTypeSecondary,
|
|
9998
|
-
datasetSecondary,
|
|
9999
|
-
labelSecondary,
|
|
10000
|
-
tooltipSecondary,
|
|
10001
9458
|
progressive,
|
|
10002
|
-
stackCornerRadius_stackCornerRadius,
|
|
10003
9459
|
barMaxWidth_barMaxWidth,
|
|
10004
9460
|
barGapInGroup_barGapInGroup,
|
|
10005
|
-
|
|
10006
|
-
|
|
10007
|
-
|
|
10008
|
-
|
|
10009
|
-
|
|
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))
|
|
10010
9467
|
]),
|
|
10011
9468
|
xBand,
|
|
10012
9469
|
yLinearPrimary,
|
|
@@ -10034,10 +9491,9 @@
|
|
|
10034
9491
|
Builder._specPipelineMap.dualAxis = dualAxisSpecPipeline;
|
|
10035
9492
|
};
|
|
10036
9493
|
const defaultEncodingForPie = (advancedVSeed)=>{
|
|
10037
|
-
const { measures
|
|
10038
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
9494
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
10039
9495
|
const encoding = {};
|
|
10040
|
-
pie_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(
|
|
9496
|
+
pie_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
|
|
10041
9497
|
pie_generateDefaultMeasureEncoding(measures, encoding);
|
|
10042
9498
|
return {
|
|
10043
9499
|
...advancedVSeed,
|
|
@@ -10045,12 +9501,11 @@
|
|
|
10045
9501
|
};
|
|
10046
9502
|
};
|
|
10047
9503
|
const encodingForPie = (advancedVSeed)=>{
|
|
10048
|
-
const { measures
|
|
10049
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
9504
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
10050
9505
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
10051
9506
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
10052
9507
|
const encoding = {};
|
|
10053
|
-
const hasMulti = hasMultipleMeasureInSingleView(
|
|
9508
|
+
const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures);
|
|
10054
9509
|
if (hasDimensionEncoding) pie_generateDimensionEncoding(dimensions, encoding, hasMulti);
|
|
10055
9510
|
else pie_generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
|
|
10056
9511
|
if (hasMeasureEncoding) pie_generateMeasureEncoding(measures, encoding);
|
|
@@ -10106,16 +9561,17 @@
|
|
|
10106
9561
|
defaultDimensions_defaultDimensions,
|
|
10107
9562
|
defaultMeasureId_defaultMeasureId,
|
|
10108
9563
|
encodingAdapter([
|
|
10109
|
-
buildMeasures
|
|
9564
|
+
buildMeasures([
|
|
9565
|
+
'angle',
|
|
9566
|
+
'detail'
|
|
9567
|
+
]),
|
|
10110
9568
|
defaultEncodingForPie
|
|
10111
9569
|
], [
|
|
10112
|
-
buildMeasures
|
|
10113
|
-
|
|
10114
|
-
|
|
10115
|
-
'tooltip',
|
|
10116
|
-
'label',
|
|
10117
|
-
'color'
|
|
9570
|
+
buildMeasures([
|
|
9571
|
+
'angle',
|
|
9572
|
+
'detail'
|
|
10118
9573
|
]),
|
|
9574
|
+
encodingForPie,
|
|
10119
9575
|
pickDimensionsForReshape
|
|
10120
9576
|
]),
|
|
10121
9577
|
pivotAdapter([
|
|
@@ -10271,16 +9727,17 @@
|
|
|
10271
9727
|
defaultDimensions_defaultDimensions,
|
|
10272
9728
|
defaultMeasureId_defaultMeasureId,
|
|
10273
9729
|
encodingAdapter([
|
|
10274
|
-
buildMeasures
|
|
9730
|
+
buildMeasures([
|
|
9731
|
+
'angle',
|
|
9732
|
+
'detail'
|
|
9733
|
+
]),
|
|
10275
9734
|
defaultEncodingForPie
|
|
10276
9735
|
], [
|
|
10277
|
-
buildMeasures
|
|
10278
|
-
|
|
10279
|
-
|
|
10280
|
-
'tooltip',
|
|
10281
|
-
'label',
|
|
10282
|
-
'color'
|
|
9736
|
+
buildMeasures([
|
|
9737
|
+
'angle',
|
|
9738
|
+
'detail'
|
|
10283
9739
|
]),
|
|
9740
|
+
encodingForPie,
|
|
10284
9741
|
pickDimensionsForReshape
|
|
10285
9742
|
]),
|
|
10286
9743
|
pivotAdapter([
|
|
@@ -10362,10 +9819,9 @@
|
|
|
10362
9819
|
Builder._specPipelineMap.donut = donutSpecPipeline;
|
|
10363
9820
|
};
|
|
10364
9821
|
const defaultEncodingForRose = (advancedVSeed)=>{
|
|
10365
|
-
const { measures
|
|
10366
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
9822
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
10367
9823
|
const encoding = {};
|
|
10368
|
-
rose_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(
|
|
9824
|
+
rose_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
|
|
10369
9825
|
rose_generateDefaultMeasureEncoding(measures, encoding);
|
|
10370
9826
|
return {
|
|
10371
9827
|
...advancedVSeed,
|
|
@@ -10373,12 +9829,11 @@
|
|
|
10373
9829
|
};
|
|
10374
9830
|
};
|
|
10375
9831
|
const encodingForRose = (advancedVSeed)=>{
|
|
10376
|
-
const { measures
|
|
10377
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
9832
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
10378
9833
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
10379
9834
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
10380
9835
|
const encoding = {};
|
|
10381
|
-
const hasMulti = hasMultipleMeasureInSingleView(
|
|
9836
|
+
const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures);
|
|
10382
9837
|
if (hasDimensionEncoding) rose_generateDimensionEncoding(dimensions, encoding, hasMulti);
|
|
10383
9838
|
else rose_generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
|
|
10384
9839
|
if (hasMeasureEncoding) rose_generateMeasureEncoding(measures, encoding);
|
|
@@ -10436,16 +9891,17 @@
|
|
|
10436
9891
|
defaultDimensions_defaultDimensions,
|
|
10437
9892
|
defaultMeasureId_defaultMeasureId,
|
|
10438
9893
|
encodingAdapter([
|
|
10439
|
-
buildMeasures
|
|
9894
|
+
buildMeasures([
|
|
9895
|
+
'angle',
|
|
9896
|
+
'detail'
|
|
9897
|
+
]),
|
|
10440
9898
|
defaultEncodingForRose
|
|
10441
9899
|
], [
|
|
10442
|
-
buildMeasures
|
|
10443
|
-
|
|
10444
|
-
|
|
10445
|
-
'tooltip',
|
|
10446
|
-
'label',
|
|
10447
|
-
'color'
|
|
9900
|
+
buildMeasures([
|
|
9901
|
+
'angle',
|
|
9902
|
+
'detail'
|
|
10448
9903
|
]),
|
|
9904
|
+
encodingForRose,
|
|
10449
9905
|
pickDimensionsForReshape
|
|
10450
9906
|
]),
|
|
10451
9907
|
pivotAdapter([
|
|
@@ -10589,16 +10045,17 @@
|
|
|
10589
10045
|
defaultDimensions_defaultDimensions,
|
|
10590
10046
|
defaultMeasureId_defaultMeasureId,
|
|
10591
10047
|
encodingAdapter([
|
|
10592
|
-
buildMeasures
|
|
10048
|
+
buildMeasures([
|
|
10049
|
+
'radius',
|
|
10050
|
+
'detail'
|
|
10051
|
+
]),
|
|
10593
10052
|
defaultEncodingForRose
|
|
10594
10053
|
], [
|
|
10595
|
-
buildMeasures
|
|
10596
|
-
|
|
10597
|
-
|
|
10598
|
-
'tooltip',
|
|
10599
|
-
'label',
|
|
10600
|
-
'color'
|
|
10054
|
+
buildMeasures([
|
|
10055
|
+
'radius',
|
|
10056
|
+
'detail'
|
|
10601
10057
|
]),
|
|
10058
|
+
encodingForRose,
|
|
10602
10059
|
pickDimensionsForReshape
|
|
10603
10060
|
]),
|
|
10604
10061
|
pivotAdapter([
|
|
@@ -10709,10 +10166,9 @@
|
|
|
10709
10166
|
Builder._specPipelineMap.roseParallel = roseParallelSpecPipeline;
|
|
10710
10167
|
};
|
|
10711
10168
|
const defaultEncodingForRadar = (advancedVSeed)=>{
|
|
10712
|
-
const { measures
|
|
10713
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
10169
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
10714
10170
|
const encoding = {};
|
|
10715
|
-
radar_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(
|
|
10171
|
+
radar_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
|
|
10716
10172
|
radar_generateDefaultMeasureEncoding(measures, encoding);
|
|
10717
10173
|
return {
|
|
10718
10174
|
...advancedVSeed,
|
|
@@ -10720,12 +10176,11 @@
|
|
|
10720
10176
|
};
|
|
10721
10177
|
};
|
|
10722
10178
|
const encodingForRadar = (advancedVSeed)=>{
|
|
10723
|
-
const { measures
|
|
10724
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
10179
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
10725
10180
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
10726
10181
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
10727
10182
|
const encoding = {};
|
|
10728
|
-
const hasMulti = hasMultipleMeasureInSingleView(
|
|
10183
|
+
const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures);
|
|
10729
10184
|
if (hasDimensionEncoding) radar_generateDimensionEncoding(dimensions, encoding, hasMulti);
|
|
10730
10185
|
else radar_generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
|
|
10731
10186
|
if (hasMeasureEncoding) radar_generateMeasureEncoding(measures, encoding);
|
|
@@ -10785,16 +10240,17 @@
|
|
|
10785
10240
|
defaultDimensions_defaultDimensions,
|
|
10786
10241
|
defaultMeasureId_defaultMeasureId,
|
|
10787
10242
|
encodingAdapter([
|
|
10788
|
-
buildMeasures
|
|
10243
|
+
buildMeasures([
|
|
10244
|
+
'radius',
|
|
10245
|
+
'detail'
|
|
10246
|
+
]),
|
|
10789
10247
|
defaultEncodingForRadar
|
|
10790
10248
|
], [
|
|
10791
|
-
buildMeasures
|
|
10792
|
-
|
|
10793
|
-
|
|
10794
|
-
'tooltip',
|
|
10795
|
-
'label',
|
|
10796
|
-
'color'
|
|
10249
|
+
buildMeasures([
|
|
10250
|
+
'radius',
|
|
10251
|
+
'detail'
|
|
10797
10252
|
]),
|
|
10253
|
+
encodingForRadar,
|
|
10798
10254
|
pickDimensionsForReshape
|
|
10799
10255
|
]),
|
|
10800
10256
|
pivotAdapter([
|
|
@@ -10928,10 +10384,9 @@
|
|
|
10928
10384
|
Builder._specPipelineMap.radar = radarSpecPipeline;
|
|
10929
10385
|
};
|
|
10930
10386
|
const defaultEncodingForFunnel = (advancedVSeed)=>{
|
|
10931
|
-
const { measures
|
|
10932
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
10387
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
10933
10388
|
const encoding = {};
|
|
10934
|
-
funnel_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(
|
|
10389
|
+
funnel_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
|
|
10935
10390
|
funnel_generateDefaultMeasureEncoding(measures, encoding);
|
|
10936
10391
|
return {
|
|
10937
10392
|
...advancedVSeed,
|
|
@@ -10939,12 +10394,11 @@
|
|
|
10939
10394
|
};
|
|
10940
10395
|
};
|
|
10941
10396
|
const encodingForFunnel = (advancedVSeed)=>{
|
|
10942
|
-
const { measures
|
|
10943
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
10397
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
10944
10398
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
10945
10399
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
10946
10400
|
const encoding = {};
|
|
10947
|
-
const hasMulti = hasMultipleMeasureInSingleView(
|
|
10401
|
+
const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures);
|
|
10948
10402
|
if (hasDimensionEncoding) funnel_generateDimensionEncoding(dimensions, encoding, hasMulti);
|
|
10949
10403
|
else funnel_generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
|
|
10950
10404
|
if (hasMeasureEncoding) funnel_generateMeasureEncoding(measures, encoding);
|
|
@@ -11001,16 +10455,17 @@
|
|
|
11001
10455
|
defaultDimensions_defaultDimensions,
|
|
11002
10456
|
defaultMeasureId_defaultMeasureId,
|
|
11003
10457
|
encodingAdapter([
|
|
11004
|
-
buildMeasures
|
|
10458
|
+
buildMeasures([
|
|
10459
|
+
'size',
|
|
10460
|
+
'detail'
|
|
10461
|
+
]),
|
|
11005
10462
|
defaultEncodingForFunnel
|
|
11006
10463
|
], [
|
|
11007
|
-
buildMeasures
|
|
11008
|
-
|
|
11009
|
-
|
|
11010
|
-
'tooltip',
|
|
11011
|
-
'label',
|
|
11012
|
-
'color'
|
|
10464
|
+
buildMeasures([
|
|
10465
|
+
'size',
|
|
10466
|
+
'detail'
|
|
11013
10467
|
]),
|
|
10468
|
+
encodingForFunnel,
|
|
11014
10469
|
pickDimensionsForReshape
|
|
11015
10470
|
]),
|
|
11016
10471
|
pivotAdapter([
|
|
@@ -11146,8 +10601,7 @@
|
|
|
11146
10601
|
Builder._specPipelineMap.funnel = funnelSpecPipeline;
|
|
11147
10602
|
};
|
|
11148
10603
|
const defaultEncodingForHeatmap = (advancedVSeed)=>{
|
|
11149
|
-
const { measures
|
|
11150
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
10604
|
+
const { measures = [], dimensions = [] } = advancedVSeed;
|
|
11151
10605
|
const encoding = {};
|
|
11152
10606
|
heatmap_generateDefaultDimensionEncoding(dimensions, encoding);
|
|
11153
10607
|
heatmap_generateDefaultMeasureEncoding(measures, encoding);
|
|
@@ -11157,12 +10611,11 @@
|
|
|
11157
10611
|
};
|
|
11158
10612
|
};
|
|
11159
10613
|
const encodingForHeatmap = (advancedVSeed)=>{
|
|
11160
|
-
const { measures
|
|
11161
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
10614
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
11162
10615
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
11163
10616
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
11164
10617
|
const encoding = {};
|
|
11165
|
-
if (hasDimensionEncoding) heatmap_generateDimensionEncoding(dimensions, encoding,
|
|
10618
|
+
if (hasDimensionEncoding) heatmap_generateDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
|
|
11166
10619
|
else heatmap_generateDefaultDimensionEncoding(dimensions, encoding);
|
|
11167
10620
|
if (hasMeasureEncoding) heatmap_generateMeasureEncoding(measures, encoding);
|
|
11168
10621
|
else heatmap_generateDefaultMeasureEncoding(measures, encoding);
|
|
@@ -11228,15 +10681,17 @@
|
|
|
11228
10681
|
defaultDimensions_defaultDimensions,
|
|
11229
10682
|
defaultMeasureId_defaultMeasureId,
|
|
11230
10683
|
encodingAdapter([
|
|
11231
|
-
buildMeasures
|
|
10684
|
+
buildMeasures([
|
|
10685
|
+
'color',
|
|
10686
|
+
'detail'
|
|
10687
|
+
]),
|
|
11232
10688
|
defaultEncodingForHeatmap
|
|
11233
10689
|
], [
|
|
11234
|
-
buildMeasures
|
|
11235
|
-
|
|
11236
|
-
|
|
11237
|
-
'tooltip',
|
|
11238
|
-
'label'
|
|
10690
|
+
buildMeasures([
|
|
10691
|
+
'color',
|
|
10692
|
+
'detail'
|
|
11239
10693
|
]),
|
|
10694
|
+
encodingForHeatmap,
|
|
11240
10695
|
pickDimensionsForReshape
|
|
11241
10696
|
]),
|
|
11242
10697
|
pivotAdapter([
|
|
@@ -11324,7 +10779,7 @@
|
|
|
11324
10779
|
...spec
|
|
11325
10780
|
};
|
|
11326
10781
|
const { advancedVSeed, vseed } = context;
|
|
11327
|
-
const { datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
|
|
10782
|
+
const { datasetReshapeInfo, chartType, locale, dimensions = [], encoding } = advancedVSeed;
|
|
11328
10783
|
const baseConfig = advancedVSeed.config[chartType];
|
|
11329
10784
|
const { tooltip = {
|
|
11330
10785
|
enable: true
|
|
@@ -11338,7 +10793,7 @@
|
|
|
11338
10793
|
title: {
|
|
11339
10794
|
visible: false
|
|
11340
10795
|
},
|
|
11341
|
-
content: tooltipHeatmap_createMarkContent(encoding.tooltip || [], dimensions,
|
|
10796
|
+
content: tooltipHeatmap_createMarkContent(encoding.tooltip || [], dimensions, vseed.measures, locale, foldInfo)
|
|
11342
10797
|
},
|
|
11343
10798
|
dimension: {
|
|
11344
10799
|
visible: false
|
|
@@ -11347,7 +10802,7 @@
|
|
|
11347
10802
|
};
|
|
11348
10803
|
return result;
|
|
11349
10804
|
};
|
|
11350
|
-
const tooltipHeatmap_createMarkContent = (tooltip, dimensions, measures, locale, foldInfo)=>{
|
|
10805
|
+
const tooltipHeatmap_createMarkContent = (tooltip, dimensions, measures = [], locale, foldInfo)=>{
|
|
11351
10806
|
const dims = T(dimensions.filter((item)=>tooltip.includes(item.id)), (item)=>item.id);
|
|
11352
10807
|
const meas = T(measures.filter((item)=>tooltip.includes(item.id)), (item)=>item.id);
|
|
11353
10808
|
const dimContent = dims.map((item)=>({
|
|
@@ -11508,10 +10963,9 @@
|
|
|
11508
10963
|
return result;
|
|
11509
10964
|
};
|
|
11510
10965
|
const defaultEncodingForBoxplot = (advancedVSeed)=>{
|
|
11511
|
-
const { measures
|
|
11512
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
10966
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
11513
10967
|
const encoding = {};
|
|
11514
|
-
boxplot_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(
|
|
10968
|
+
boxplot_generateDefaultDimensionEncoding(dimensions, encoding, hasMultipleMeasureInSingleView(reshapeMeasures));
|
|
11515
10969
|
boxplot_generateDefaultMeasureEncoding(measures, encoding);
|
|
11516
10970
|
return {
|
|
11517
10971
|
...advancedVSeed,
|
|
@@ -11519,12 +10973,11 @@
|
|
|
11519
10973
|
};
|
|
11520
10974
|
};
|
|
11521
10975
|
const encodingForBoxplot = (advancedVSeed)=>{
|
|
11522
|
-
const { measures
|
|
11523
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
10976
|
+
const { measures = [], reshapeMeasures = [], dimensions = [] } = advancedVSeed;
|
|
11524
10977
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
11525
10978
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
11526
10979
|
const encoding = {};
|
|
11527
|
-
const hasMulti = hasMultipleMeasureInSingleView(
|
|
10980
|
+
const hasMulti = hasMultipleMeasureInSingleView(reshapeMeasures);
|
|
11528
10981
|
if (hasDimensionEncoding) boxplot_generateDimensionEncoding(dimensions, encoding, hasMulti);
|
|
11529
10982
|
else boxplot_generateDefaultDimensionEncoding(dimensions, encoding, hasMulti);
|
|
11530
10983
|
if (hasMeasureEncoding) boxplot_generateMeasureEncoding(measures, encoding);
|
|
@@ -11642,19 +11095,17 @@
|
|
|
11642
11095
|
};
|
|
11643
11096
|
const { vseed } = context;
|
|
11644
11097
|
const { dataset, chartType } = vseed;
|
|
11645
|
-
const { encoding = {}, config } = advancedVSeed;
|
|
11646
|
-
const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? [];
|
|
11098
|
+
const { encoding = {}, config, measures = [] } = advancedVSeed;
|
|
11647
11099
|
const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
|
|
11648
11100
|
const uniqDims = T(dimensions, (item)=>item.id);
|
|
11649
11101
|
const whiskers = config?.[chartType]?.whiskers;
|
|
11650
11102
|
let newDatasets = [];
|
|
11651
11103
|
let foldInfo = {};
|
|
11652
11104
|
let unfoldInfo = {};
|
|
11653
|
-
const allMeasures = findAllMeasures(measures);
|
|
11654
11105
|
if (encoding.value?.length) {
|
|
11655
11106
|
const boxPlotDataList = [];
|
|
11656
11107
|
encoding.value.forEach((f)=>{
|
|
11657
|
-
const m =
|
|
11108
|
+
const m = measures.find((m)=>m.id === f);
|
|
11658
11109
|
const boxPlotData = boxplot_boxplot(dataset, {
|
|
11659
11110
|
field: f,
|
|
11660
11111
|
groupField: [
|
|
@@ -11713,9 +11164,7 @@
|
|
|
11713
11164
|
foldInfo,
|
|
11714
11165
|
unfoldInfo
|
|
11715
11166
|
}
|
|
11716
|
-
]
|
|
11717
|
-
dimensions,
|
|
11718
|
-
measures
|
|
11167
|
+
]
|
|
11719
11168
|
};
|
|
11720
11169
|
};
|
|
11721
11170
|
const revisedBoxPlotFieldKey = (fieldKey, groupId, isPivotChart = true)=>{
|
|
@@ -11729,30 +11178,24 @@
|
|
|
11729
11178
|
const { vseed } = context;
|
|
11730
11179
|
const { dataset, chartType } = vseed;
|
|
11731
11180
|
const { encoding = {}, config } = advancedVSeed;
|
|
11732
|
-
const
|
|
11181
|
+
const reshapeMeasures = advancedVSeed.reshapeMeasures ?? [];
|
|
11733
11182
|
const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
|
|
11734
11183
|
const uniqDims = T(dimensions, (item)=>item.id);
|
|
11735
11184
|
const chartConfig = config?.[chartType];
|
|
11736
11185
|
const whiskers = chartConfig?.whiskers;
|
|
11737
|
-
const measureGroups = [];
|
|
11738
|
-
if (measures) measures.forEach((measure)=>{
|
|
11739
|
-
if (measure.children && measure.children.length > 0) measureGroups.push(measure);
|
|
11740
|
-
});
|
|
11741
11186
|
const rowColumnFields = T(dimensions.filter((dim)=>'row' === dim.encoding || 'column' === dim.encoding), (item)=>item.id);
|
|
11742
11187
|
const datasets = [];
|
|
11743
11188
|
const datasetReshapeInfo = [];
|
|
11744
|
-
|
|
11745
|
-
const
|
|
11746
|
-
if (!subMeasures) return;
|
|
11747
|
-
const groupId = measureGroup.id;
|
|
11189
|
+
reshapeMeasures.forEach((measureGroup, index)=>{
|
|
11190
|
+
const groupId = measureGroup[0].parentId ?? DEFAULT_PARENT_ID;
|
|
11748
11191
|
let newDatasets = [];
|
|
11749
11192
|
let foldInfo = {};
|
|
11750
11193
|
let unfoldInfo = {};
|
|
11751
|
-
const validEncodingIds = (encoding.value || []).filter((id)=>
|
|
11194
|
+
const validEncodingIds = (encoding.value || []).filter((id)=>measureGroup.find((field)=>field.id === id));
|
|
11752
11195
|
if (validEncodingIds.length) {
|
|
11753
11196
|
const boxPlotDataList = [];
|
|
11754
11197
|
validEncodingIds.forEach((f)=>{
|
|
11755
|
-
const m =
|
|
11198
|
+
const m = measureGroup.find((m)=>m.id === f);
|
|
11756
11199
|
const boxPlotData = boxplot_boxplot(dataset, {
|
|
11757
11200
|
field: f,
|
|
11758
11201
|
groupField: [
|
|
@@ -11835,16 +11278,27 @@
|
|
|
11835
11278
|
defaultMeasureId_defaultMeasureId,
|
|
11836
11279
|
boxplotConfig,
|
|
11837
11280
|
encodingAdapter([
|
|
11838
|
-
buildMeasures
|
|
11281
|
+
buildMeasures([
|
|
11282
|
+
'value',
|
|
11283
|
+
'q1',
|
|
11284
|
+
'q3',
|
|
11285
|
+
'min',
|
|
11286
|
+
'max',
|
|
11287
|
+
'median',
|
|
11288
|
+
'outliers'
|
|
11289
|
+
]),
|
|
11839
11290
|
defaultEncodingForBoxplot
|
|
11840
11291
|
], [
|
|
11841
|
-
buildMeasures
|
|
11842
|
-
|
|
11843
|
-
|
|
11844
|
-
'
|
|
11845
|
-
'
|
|
11846
|
-
'
|
|
11292
|
+
buildMeasures([
|
|
11293
|
+
'value',
|
|
11294
|
+
'q1',
|
|
11295
|
+
'q3',
|
|
11296
|
+
'min',
|
|
11297
|
+
'max',
|
|
11298
|
+
'median',
|
|
11299
|
+
'outliers'
|
|
11847
11300
|
]),
|
|
11301
|
+
encodingForBoxplot,
|
|
11848
11302
|
pickDimensionsForReshape
|
|
11849
11303
|
]),
|
|
11850
11304
|
pivotAdapter([
|
|
@@ -11953,13 +11407,13 @@
|
|
|
11953
11407
|
...spec
|
|
11954
11408
|
};
|
|
11955
11409
|
const { advancedVSeed, vseed } = context;
|
|
11956
|
-
const { chartType, dimensions, encoding, datasetReshapeInfo } = advancedVSeed;
|
|
11410
|
+
const { chartType, dimensions = [], encoding, datasetReshapeInfo } = advancedVSeed;
|
|
11957
11411
|
const baseConfig = advancedVSeed.config[chartType];
|
|
11958
11412
|
const { tooltip = {
|
|
11959
11413
|
enable: true
|
|
11960
11414
|
} } = baseConfig;
|
|
11961
11415
|
const { enable } = tooltip;
|
|
11962
|
-
const meas =
|
|
11416
|
+
const meas = vseed.measures ?? [];
|
|
11963
11417
|
const valueMeasure = meas.find((item)=>'value' === item.encoding || chunk_JK3VNB42_n(item.encoding));
|
|
11964
11418
|
const defaultFormatter = valueMeasure ? createFormatterByMeasure(valueMeasure) : (v)=>v;
|
|
11965
11419
|
const measureAliasMapping = {
|
|
@@ -12383,8 +11837,7 @@
|
|
|
12383
11837
|
return result;
|
|
12384
11838
|
};
|
|
12385
11839
|
const defaultEncodingForHistogram = (advancedVSeed)=>{
|
|
12386
|
-
const { measures
|
|
12387
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
11840
|
+
const { measures = [], dimensions = [] } = advancedVSeed;
|
|
12388
11841
|
const encoding = {};
|
|
12389
11842
|
histogram_generateDefaultDimensionEncoding(dimensions, encoding);
|
|
12390
11843
|
histogram_generateDefaultMeasureEncoding(measures, encoding);
|
|
@@ -12394,8 +11847,7 @@
|
|
|
12394
11847
|
};
|
|
12395
11848
|
};
|
|
12396
11849
|
const encodingForHistogram = (advancedVSeed)=>{
|
|
12397
|
-
const { measures
|
|
12398
|
-
const measures = findAllMeasures(vseedMeasures);
|
|
11850
|
+
const { measures = [], dimensions = [] } = advancedVSeed;
|
|
12399
11851
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
|
12400
11852
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
|
12401
11853
|
const encoding = {};
|
|
@@ -12595,8 +12047,7 @@
|
|
|
12595
12047
|
};
|
|
12596
12048
|
const { vseed } = context;
|
|
12597
12049
|
const { dataset, chartType } = vseed;
|
|
12598
|
-
const { encoding = {}, config } = advancedVSeed;
|
|
12599
|
-
const measures = advancedVSeed.reshapeMeasures ?? advancedVSeed.measures ?? [];
|
|
12050
|
+
const { encoding = {}, config, measures = [] } = advancedVSeed;
|
|
12600
12051
|
const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
|
|
12601
12052
|
const uniqDims = T(dimensions, (item)=>item.id);
|
|
12602
12053
|
const chartConfig = config?.[chartType];
|
|
@@ -12620,10 +12071,9 @@
|
|
|
12620
12071
|
};
|
|
12621
12072
|
let unfoldInfo = {};
|
|
12622
12073
|
const colorMeasureId = getColorMeasureId(advancedVSeed, vseed);
|
|
12623
|
-
const allMeasures = findAllMeasures(measures);
|
|
12624
12074
|
if (encoding.value?.length) {
|
|
12625
12075
|
const valueField = encoding.value[0];
|
|
12626
|
-
const m =
|
|
12076
|
+
const m = measures.find((m)=>m.id === valueField);
|
|
12627
12077
|
const binData = bin_bin(dataset, {
|
|
12628
12078
|
field: valueField,
|
|
12629
12079
|
groupField: [
|
|
@@ -12661,7 +12111,7 @@
|
|
|
12661
12111
|
});
|
|
12662
12112
|
unfoldInfo = res.unfoldInfo;
|
|
12663
12113
|
} else if (encoding.x0?.length && encoding.x1?.length && encoding.y?.length) {
|
|
12664
|
-
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, {
|
|
12665
12115
|
colorItemAsId: false,
|
|
12666
12116
|
colorMeasureId
|
|
12667
12117
|
});
|
|
@@ -12683,9 +12133,7 @@
|
|
|
12683
12133
|
foldInfo,
|
|
12684
12134
|
unfoldInfo
|
|
12685
12135
|
}
|
|
12686
|
-
]
|
|
12687
|
-
dimensions,
|
|
12688
|
-
measures
|
|
12136
|
+
]
|
|
12689
12137
|
};
|
|
12690
12138
|
};
|
|
12691
12139
|
const pivotReshapeWithHistogramEncoding = (advancedVSeed, context)=>{
|
|
@@ -12695,7 +12143,7 @@
|
|
|
12695
12143
|
const { vseed } = context;
|
|
12696
12144
|
const { dataset, chartType } = vseed;
|
|
12697
12145
|
const { encoding = {}, config } = advancedVSeed;
|
|
12698
|
-
const
|
|
12146
|
+
const reshapeMeasures = advancedVSeed.reshapeMeasures ?? [];
|
|
12699
12147
|
const dimensions = advancedVSeed.reshapeDimensions ?? advancedVSeed.dimensions ?? [];
|
|
12700
12148
|
const colorMeasureId = getColorMeasureId(advancedVSeed, vseed);
|
|
12701
12149
|
const uniqDims = T(dimensions, (item)=>item.id);
|
|
@@ -12703,17 +12151,12 @@
|
|
|
12703
12151
|
const binCount = chartConfig?.binCount;
|
|
12704
12152
|
const binStep = chartConfig?.binStep;
|
|
12705
12153
|
const binValueType = chartConfig?.binValueType;
|
|
12706
|
-
const measureGroups = [];
|
|
12707
|
-
if (measures) measures.forEach((measure)=>{
|
|
12708
|
-
if (measure.children && measure.children.length > 0) measureGroups.push(measure);
|
|
12709
|
-
});
|
|
12710
12154
|
const rowColumnFields = T(dimensions.filter((dim)=>'row' === dim.encoding || 'column' === dim.encoding), (item)=>item.id);
|
|
12711
12155
|
const datasets = [];
|
|
12712
12156
|
const datasetReshapeInfo = [];
|
|
12713
|
-
|
|
12714
|
-
const subMeasures = measureGroup.children;
|
|
12157
|
+
reshapeMeasures.forEach((subMeasures, index)=>{
|
|
12715
12158
|
if (!subMeasures) return;
|
|
12716
|
-
const groupId =
|
|
12159
|
+
const groupId = subMeasures[0].id ?? DEFAULT_PARENT_ID;
|
|
12717
12160
|
let newDatasets = [];
|
|
12718
12161
|
let foldInfo = {
|
|
12719
12162
|
foldMap: {},
|
|
@@ -12805,16 +12248,23 @@
|
|
|
12805
12248
|
defaultDimensions_defaultDimensions,
|
|
12806
12249
|
histogramConfig,
|
|
12807
12250
|
encodingAdapter([
|
|
12808
|
-
buildMeasures
|
|
12251
|
+
buildMeasures([
|
|
12252
|
+
'value',
|
|
12253
|
+
'x0',
|
|
12254
|
+
'x1',
|
|
12255
|
+
'yAxis',
|
|
12256
|
+
'detail'
|
|
12257
|
+
]),
|
|
12809
12258
|
defaultEncodingForHistogram
|
|
12810
12259
|
], [
|
|
12811
|
-
buildMeasures
|
|
12812
|
-
|
|
12813
|
-
|
|
12814
|
-
'
|
|
12815
|
-
'
|
|
12816
|
-
'
|
|
12260
|
+
buildMeasures([
|
|
12261
|
+
'value',
|
|
12262
|
+
'x0',
|
|
12263
|
+
'x1',
|
|
12264
|
+
'yAxis',
|
|
12265
|
+
'detail'
|
|
12817
12266
|
]),
|
|
12267
|
+
encodingForHistogram,
|
|
12818
12268
|
pickDimensionsForReshape
|
|
12819
12269
|
]),
|
|
12820
12270
|
pivotAdapter([
|
|
@@ -12869,7 +12319,7 @@
|
|
|
12869
12319
|
...spec
|
|
12870
12320
|
};
|
|
12871
12321
|
const { advancedVSeed, vseed } = context;
|
|
12872
|
-
const { encoding, dimensions, measures, dataset } = advancedVSeed;
|
|
12322
|
+
const { encoding, dimensions = [], measures = [], dataset } = advancedVSeed;
|
|
12873
12323
|
const { chartType } = vseed;
|
|
12874
12324
|
const config = advancedVSeed.config?.[chartType]?.xAxis ?? {};
|
|
12875
12325
|
if (!result.axes) result.axes = [];
|
|
@@ -12922,7 +12372,7 @@
|
|
|
12922
12372
|
...spec
|
|
12923
12373
|
};
|
|
12924
12374
|
const { advancedVSeed } = context;
|
|
12925
|
-
const { chartType, dimensions, encoding } = advancedVSeed;
|
|
12375
|
+
const { chartType, dimensions = [], encoding } = advancedVSeed;
|
|
12926
12376
|
const baseConfig = advancedVSeed.config[chartType];
|
|
12927
12377
|
const { binValueType, tooltip = {
|
|
12928
12378
|
enable: true
|
|
@@ -13134,7 +12584,7 @@
|
|
|
13134
12584
|
...spec
|
|
13135
12585
|
};
|
|
13136
12586
|
const { advancedVSeed, vseed } = context;
|
|
13137
|
-
const { chartType, encoding = {}, dimensions, regressionLine } = advancedVSeed;
|
|
12587
|
+
const { chartType, encoding = {}, dimensions = [], regressionLine } = advancedVSeed;
|
|
13138
12588
|
const { dataset } = vseed;
|
|
13139
12589
|
const lineTheme = advancedVSeed.config[chartType]?.regressionLine;
|
|
13140
12590
|
const binValueType = advancedVSeed.config[chartType]?.binValueType;
|
|
@@ -13278,7 +12728,7 @@
|
|
|
13278
12728
|
...spec
|
|
13279
12729
|
};
|
|
13280
12730
|
const { advancedVSeed, vseed } = context;
|
|
13281
|
-
const { chartType, encoding = {}, dimensions, regressionLine } = advancedVSeed;
|
|
12731
|
+
const { chartType, encoding = {}, dimensions = [], regressionLine } = advancedVSeed;
|
|
13282
12732
|
const { dataset } = vseed;
|
|
13283
12733
|
const lineTheme = advancedVSeed.config[chartType]?.regressionLine;
|
|
13284
12734
|
if (!regressionLine || !regressionLine.ecdfRegressionLine) return result;
|
|
@@ -14211,10 +13661,6 @@
|
|
|
14211
13661
|
visible: false
|
|
14212
13662
|
}
|
|
14213
13663
|
},
|
|
14214
|
-
dualChartType: {
|
|
14215
|
-
primary: 'column',
|
|
14216
|
-
secondary: 'line'
|
|
14217
|
-
},
|
|
14218
13664
|
crosshairRect,
|
|
14219
13665
|
pivotGrid: getLightPivotChartGridConfig(),
|
|
14220
13666
|
annotation: getLightAnnotation()
|
|
@@ -14479,10 +13925,6 @@
|
|
|
14479
13925
|
visible: false
|
|
14480
13926
|
}
|
|
14481
13927
|
},
|
|
14482
|
-
dualChartType: {
|
|
14483
|
-
primary: 'column',
|
|
14484
|
-
secondary: 'line'
|
|
14485
|
-
},
|
|
14486
13928
|
crosshairRect,
|
|
14487
13929
|
pivotGrid: getDarkPivotChartGridConfig(),
|
|
14488
13930
|
annotation: getDarkAnnotation()
|
|
@@ -14613,6 +14055,91 @@
|
|
|
14613
14055
|
const updateSpec = (chartType, specPipe)=>{
|
|
14614
14056
|
Builder._customSpecPipe[chartType] = specPipe;
|
|
14615
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
|
+
};
|
|
14616
14143
|
Object.freeze({
|
|
14617
14144
|
status: "aborted"
|
|
14618
14145
|
});
|
|
@@ -17927,22 +17454,6 @@
|
|
|
17927
17454
|
'boxPlot',
|
|
17928
17455
|
'histogram'
|
|
17929
17456
|
]);
|
|
17930
|
-
const zDualChartType = schemas_object({
|
|
17931
|
-
primary: schemas_enum([
|
|
17932
|
-
'line',
|
|
17933
|
-
'column',
|
|
17934
|
-
'columnParallel',
|
|
17935
|
-
'area',
|
|
17936
|
-
'scatter'
|
|
17937
|
-
]).default('column'),
|
|
17938
|
-
secondary: schemas_enum([
|
|
17939
|
-
'line',
|
|
17940
|
-
'column',
|
|
17941
|
-
'columnParallel',
|
|
17942
|
-
'area',
|
|
17943
|
-
'scatter'
|
|
17944
|
-
]).default('line')
|
|
17945
|
-
});
|
|
17946
17457
|
const zDatum = record(schemas_string().or(schemas_number()), any());
|
|
17947
17458
|
const zDataset = schemas_array(zDatum);
|
|
17948
17459
|
const zDimension = schemas_object({
|
|
@@ -18028,7 +17539,16 @@
|
|
|
18028
17539
|
'x0',
|
|
18029
17540
|
'x1'
|
|
18030
17541
|
]).optional(),
|
|
18031
|
-
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()
|
|
18032
17552
|
});
|
|
18033
17553
|
const zMeasureGroup = schemas_object({
|
|
18034
17554
|
id: schemas_string(),
|
|
@@ -18039,30 +17559,23 @@
|
|
|
18039
17559
|
});
|
|
18040
17560
|
const zMeasures = schemas_array(zMeasure);
|
|
18041
17561
|
const zMeasureTree = schemas_array(zMeasureGroup.or(zMeasure));
|
|
18042
|
-
const zDualMeasure =
|
|
18043
|
-
|
|
18044
|
-
|
|
18045
|
-
|
|
18046
|
-
|
|
18047
|
-
|
|
18048
|
-
|
|
18049
|
-
|
|
18050
|
-
|
|
18051
|
-
|
|
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()
|
|
18052
17577
|
});
|
|
18053
17578
|
const zDualMeasures = schemas_array(zDualMeasure);
|
|
18054
|
-
const zScatterMeasure = schemas_object({
|
|
18055
|
-
id: schemas_string(),
|
|
18056
|
-
xMeasures: schemas_array(zMeasure.omit({
|
|
18057
|
-
parentId: true,
|
|
18058
|
-
encoding: true
|
|
18059
|
-
})).or(zMeasure).optional(),
|
|
18060
|
-
yMeasures: schemas_array(zMeasure.omit({
|
|
18061
|
-
parentId: true,
|
|
18062
|
-
encoding: true
|
|
18063
|
-
})).or(zMeasure).optional()
|
|
18064
|
-
});
|
|
18065
|
-
const zScatterMeasures = schemas_array(zScatterMeasure);
|
|
18066
17579
|
const zFoldInfo = schemas_object({
|
|
18067
17580
|
foldMap: record(schemas_string(), schemas_string().or(schemas_undefined())),
|
|
18068
17581
|
statistics: schemas_object({
|
|
@@ -18810,7 +18323,6 @@
|
|
|
18810
18323
|
color: zColor.nullish(),
|
|
18811
18324
|
tooltip: zTooltip.nullish(),
|
|
18812
18325
|
legend: zLegend.nullish(),
|
|
18813
|
-
dualChartType: schemas_array(zDualChartType).or(zDualChartType).nullish(),
|
|
18814
18326
|
alignTicks: schemas_array(schemas_boolean()).or(schemas_boolean()).nullish(),
|
|
18815
18327
|
primaryYAxis: schemas_array(zYLinearAxis).or(zYLinearAxis).nullish(),
|
|
18816
18328
|
secondaryYAxis: schemas_array(zYLinearAxis).or(zYLinearAxis).nullish(),
|
|
@@ -19189,7 +18701,7 @@
|
|
|
19189
18701
|
dataset: zDataset.nullish(),
|
|
19190
18702
|
encoding: zEncoding.nullish(),
|
|
19191
18703
|
dimensions: zDimensions.nullish(),
|
|
19192
|
-
measures:
|
|
18704
|
+
measures: zMeasures.nullish(),
|
|
19193
18705
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19194
18706
|
color: zColor.nullish(),
|
|
19195
18707
|
label: zLabel.nullish(),
|
|
@@ -19215,7 +18727,7 @@
|
|
|
19215
18727
|
dataset: zDataset.nullish(),
|
|
19216
18728
|
encoding: zEncoding.nullish(),
|
|
19217
18729
|
dimensions: zDimensions.nullish(),
|
|
19218
|
-
measures:
|
|
18730
|
+
measures: zMeasures.nullish(),
|
|
19219
18731
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19220
18732
|
color: zColor.nullish(),
|
|
19221
18733
|
label: zLabel.nullish(),
|
|
@@ -19243,7 +18755,7 @@
|
|
|
19243
18755
|
dataset: zDataset.nullish(),
|
|
19244
18756
|
encoding: zEncoding.nullish(),
|
|
19245
18757
|
dimensions: zDimensions.nullish(),
|
|
19246
|
-
measures:
|
|
18758
|
+
measures: zMeasures.nullish(),
|
|
19247
18759
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19248
18760
|
color: zColor.nullish(),
|
|
19249
18761
|
label: zLabel.nullish(),
|
|
@@ -19269,7 +18781,7 @@
|
|
|
19269
18781
|
dataset: zDataset.nullish(),
|
|
19270
18782
|
encoding: zEncoding.nullish(),
|
|
19271
18783
|
dimensions: zDimensions.nullish(),
|
|
19272
|
-
measures:
|
|
18784
|
+
measures: zMeasures.nullish(),
|
|
19273
18785
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19274
18786
|
color: zColor.nullish(),
|
|
19275
18787
|
label: zLabel.nullish(),
|
|
@@ -19294,7 +18806,7 @@
|
|
|
19294
18806
|
dataset: zDataset.nullish(),
|
|
19295
18807
|
encoding: zEncoding.nullish(),
|
|
19296
18808
|
dimensions: zDimensions.nullish(),
|
|
19297
|
-
measures:
|
|
18809
|
+
measures: zMeasures.nullish(),
|
|
19298
18810
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19299
18811
|
color: zColor.nullish(),
|
|
19300
18812
|
label: zLabel.nullish(),
|
|
@@ -19319,7 +18831,7 @@
|
|
|
19319
18831
|
dataset: zDataset.nullish(),
|
|
19320
18832
|
encoding: zEncoding.nullish(),
|
|
19321
18833
|
dimensions: zDimensions.nullish(),
|
|
19322
|
-
measures:
|
|
18834
|
+
measures: zMeasures.nullish(),
|
|
19323
18835
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19324
18836
|
color: zColor.nullish(),
|
|
19325
18837
|
label: zLabel.nullish(),
|
|
@@ -19345,7 +18857,7 @@
|
|
|
19345
18857
|
dataset: zDataset.nullish(),
|
|
19346
18858
|
encoding: zEncoding.nullish(),
|
|
19347
18859
|
dimensions: zDimensions.nullish(),
|
|
19348
|
-
measures:
|
|
18860
|
+
measures: zMeasures.nullish(),
|
|
19349
18861
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19350
18862
|
color: zColor.nullish(),
|
|
19351
18863
|
label: zLabel.nullish(),
|
|
@@ -19370,7 +18882,7 @@
|
|
|
19370
18882
|
dataset: zDataset.nullish(),
|
|
19371
18883
|
encoding: zEncoding.nullish(),
|
|
19372
18884
|
dimensions: zDimensions.nullish(),
|
|
19373
|
-
measures:
|
|
18885
|
+
measures: zMeasures.nullish(),
|
|
19374
18886
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19375
18887
|
color: zColor.nullish(),
|
|
19376
18888
|
label: zLabel.nullish(),
|
|
@@ -19395,7 +18907,7 @@
|
|
|
19395
18907
|
dataset: zDataset.nullish(),
|
|
19396
18908
|
encoding: zEncoding.nullish(),
|
|
19397
18909
|
dimensions: zDimensions.nullish(),
|
|
19398
|
-
measures:
|
|
18910
|
+
measures: zMeasures.nullish(),
|
|
19399
18911
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19400
18912
|
color: zColor.nullish(),
|
|
19401
18913
|
label: zLabel.nullish(),
|
|
@@ -19420,8 +18932,7 @@
|
|
|
19420
18932
|
dataset: zDataset.nullish(),
|
|
19421
18933
|
encoding: zEncoding.nullish(),
|
|
19422
18934
|
dimensions: zDimensions.nullish(),
|
|
19423
|
-
measures:
|
|
19424
|
-
scatterMeasures: zScatterMeasures.nullish(),
|
|
18935
|
+
measures: zMeasures.nullish(),
|
|
19425
18936
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19426
18937
|
size: schemas_number().or(schemas_array(schemas_number())).nullish(),
|
|
19427
18938
|
sizeRange: schemas_number().or(schemas_array(schemas_number())).nullish(),
|
|
@@ -19449,9 +18960,7 @@
|
|
|
19449
18960
|
chartType: literal('dualAxis'),
|
|
19450
18961
|
dataset: zDataset.nullish(),
|
|
19451
18962
|
dimensions: zDimensions.nullish(),
|
|
19452
|
-
measures:
|
|
19453
|
-
dualMeasures: zDualMeasures.nullish(),
|
|
19454
|
-
dualChartType: schemas_array(zDualChartType).or(zDualChartType).nullish(),
|
|
18963
|
+
measures: zDualMeasures.nullish(),
|
|
19455
18964
|
alignTicks: schemas_array(schemas_boolean()).or(schemas_boolean()).nullish(),
|
|
19456
18965
|
primaryYAxis: schemas_array(zYLinearAxis).or(zYLinearAxis).nullish(),
|
|
19457
18966
|
secondaryYAxis: schemas_array(zYLinearAxis).or(zYLinearAxis).nullish(),
|
|
@@ -19483,7 +18992,7 @@
|
|
|
19483
18992
|
dataset: zDataset.nullish(),
|
|
19484
18993
|
encoding: zEncoding.nullish(),
|
|
19485
18994
|
dimensions: zDimensions.nullish(),
|
|
19486
|
-
measures:
|
|
18995
|
+
measures: zMeasures.nullish(),
|
|
19487
18996
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19488
18997
|
color: zColor.nullish(),
|
|
19489
18998
|
label: zLabel.nullish(),
|
|
@@ -19511,7 +19020,7 @@
|
|
|
19511
19020
|
dataset: zDataset.nullish(),
|
|
19512
19021
|
encoding: zEncoding.nullish(),
|
|
19513
19022
|
dimensions: zDimensions.nullish(),
|
|
19514
|
-
measures:
|
|
19023
|
+
measures: zMeasures.nullish(),
|
|
19515
19024
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19516
19025
|
color: zColor.nullish(),
|
|
19517
19026
|
label: zLabel.nullish(),
|
|
@@ -19525,7 +19034,7 @@
|
|
|
19525
19034
|
dataset: zDataset.nullish(),
|
|
19526
19035
|
encoding: zEncoding.nullish(),
|
|
19527
19036
|
dimensions: zDimensions.nullish(),
|
|
19528
|
-
measures:
|
|
19037
|
+
measures: zMeasures.nullish(),
|
|
19529
19038
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19530
19039
|
color: zColor.nullish(),
|
|
19531
19040
|
label: zLabel.nullish(),
|
|
@@ -19539,7 +19048,7 @@
|
|
|
19539
19048
|
dataset: zDataset.nullish(),
|
|
19540
19049
|
encoding: zEncoding.nullish(),
|
|
19541
19050
|
dimensions: zDimensions.nullish(),
|
|
19542
|
-
measures:
|
|
19051
|
+
measures: zMeasures.nullish(),
|
|
19543
19052
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19544
19053
|
color: zColor.nullish(),
|
|
19545
19054
|
label: zPieLabel.nullish(),
|
|
@@ -19553,7 +19062,7 @@
|
|
|
19553
19062
|
dataset: zDataset.nullish(),
|
|
19554
19063
|
encoding: zEncoding.nullish(),
|
|
19555
19064
|
dimensions: zDimensions.nullish(),
|
|
19556
|
-
measures:
|
|
19065
|
+
measures: zMeasures.nullish(),
|
|
19557
19066
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19558
19067
|
color: zColor.nullish(),
|
|
19559
19068
|
label: zPieLabel.nullish(),
|
|
@@ -19567,7 +19076,7 @@
|
|
|
19567
19076
|
dataset: zDataset.nullish(),
|
|
19568
19077
|
encoding: zEncoding.nullish(),
|
|
19569
19078
|
dimensions: zDimensions.nullish(),
|
|
19570
|
-
measures:
|
|
19079
|
+
measures: zMeasures.nullish(),
|
|
19571
19080
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19572
19081
|
color: zColor.nullish(),
|
|
19573
19082
|
label: zLabel.nullish(),
|
|
@@ -19581,7 +19090,7 @@
|
|
|
19581
19090
|
dataset: zDataset.nullish(),
|
|
19582
19091
|
encoding: zEncoding.nullish(),
|
|
19583
19092
|
dimensions: zDimensions.nullish(),
|
|
19584
|
-
measures:
|
|
19093
|
+
measures: zMeasures.nullish(),
|
|
19585
19094
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19586
19095
|
color: zColor.nullish(),
|
|
19587
19096
|
label: zLabel.nullish(),
|
|
@@ -19594,7 +19103,7 @@
|
|
|
19594
19103
|
chartType: literal('heatmap'),
|
|
19595
19104
|
dataset: zDataset.nullish(),
|
|
19596
19105
|
dimensions: zDimensions.nullish(),
|
|
19597
|
-
measures:
|
|
19106
|
+
measures: zMeasures.nullish(),
|
|
19598
19107
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19599
19108
|
color: zColor.nullish(),
|
|
19600
19109
|
label: zLabel.nullish(),
|
|
@@ -19608,7 +19117,7 @@
|
|
|
19608
19117
|
dataset: zDataset.nullish(),
|
|
19609
19118
|
encoding: zEncoding.nullish(),
|
|
19610
19119
|
dimensions: zDimensions.nullish(),
|
|
19611
|
-
measures:
|
|
19120
|
+
measures: zMeasures.nullish(),
|
|
19612
19121
|
backgroundColor: zBackgroundColor.nullish(),
|
|
19613
19122
|
color: zColor.nullish(),
|
|
19614
19123
|
label: zLabel.nullish(),
|
|
@@ -19664,10 +19173,12 @@
|
|
|
19664
19173
|
dataset: zDataset,
|
|
19665
19174
|
datasetReshapeInfo: zDatasetReshapeInfo,
|
|
19666
19175
|
pivotAllDatasetReshapeInfo: zDatasetReshapeInfo,
|
|
19667
|
-
dimensions:
|
|
19668
|
-
measures:
|
|
19669
|
-
reshapeMeasures:
|
|
19670
|
-
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(),
|
|
19671
19182
|
encoding: zEncoding,
|
|
19672
19183
|
config: zConfig,
|
|
19673
19184
|
analysis: zAnalysis,
|