@visactor/vseed 0.2.6 → 0.2.8
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/advanced/colorItems.js.map +1 -1
- package/dist/esm/builder/builder/build.js.map +1 -1
- package/dist/esm/builder/builder/buildAdvanced.js.map +1 -1
- package/dist/esm/builder/builder/buildSpec.js.map +1 -1
- package/dist/esm/builder/builder/builder.d.ts +670 -0
- package/dist/esm/builder/builder/builder.js.map +1 -1
- package/dist/esm/builder/register/all.js.map +1 -1
- package/dist/esm/builder/register/chartType/area.js.map +1 -1
- package/dist/esm/builder/register/chartType/areaPercent.js.map +1 -1
- package/dist/esm/builder/register/chartType/bar.js.map +1 -1
- package/dist/esm/builder/register/chartType/barParallel.js.map +1 -1
- package/dist/esm/builder/register/chartType/barPercent.js.map +1 -1
- package/dist/esm/builder/register/chartType/boxplot.js.map +1 -1
- package/dist/esm/builder/register/chartType/column.js.map +1 -1
- package/dist/esm/builder/register/chartType/columnParallel.js.map +1 -1
- package/dist/esm/builder/register/chartType/columnPercent.js.map +1 -1
- package/dist/esm/builder/register/chartType/donut.js.map +1 -1
- package/dist/esm/builder/register/chartType/dualAxis.js.map +1 -1
- package/dist/esm/builder/register/chartType/funnel.js.map +1 -1
- package/dist/esm/builder/register/chartType/heatmap.js.map +1 -1
- package/dist/esm/builder/register/chartType/histogram.js.map +1 -1
- package/dist/esm/builder/register/chartType/line.js.map +1 -1
- package/dist/esm/builder/register/chartType/pie.js.map +1 -1
- package/dist/esm/builder/register/chartType/pivotTable.js.map +1 -1
- package/dist/esm/builder/register/chartType/radar.js.map +1 -1
- package/dist/esm/builder/register/chartType/rose.js.map +1 -1
- package/dist/esm/builder/register/chartType/roseParallel.js.map +1 -1
- package/dist/esm/builder/register/chartType/scatter.js.map +1 -1
- package/dist/esm/builder/register/chartType/table.js.map +1 -1
- package/dist/esm/builder/register/custom.js.map +1 -1
- package/dist/esm/builder/register/theme/custom.js.map +1 -1
- package/dist/esm/builder/register/theme/dark.js.map +1 -1
- package/dist/esm/builder/register/theme/light.js.map +1 -1
- package/dist/esm/dataReshape/constant.js.map +1 -1
- package/dist/esm/dataReshape/dataReshapeByEncoding.js.map +1 -1
- package/dist/esm/dataReshape/foldMeasures.js.map +1 -1
- package/dist/esm/dataReshape/unfoldDimensions.js.map +1 -1
- package/dist/esm/dataSelector/selector.js.map +1 -1
- package/dist/esm/i18n/i18n.js.map +1 -1
- package/dist/esm/i18n/i18nData.js.map +1 -1
- package/dist/esm/i18n/index.d.ts +1 -0
- package/dist/esm/i18n/index.js +4 -0
- package/dist/esm/i18n/index.js.map +1 -0
- package/dist/esm/pipeline/advanced/chart/pipeline/area.js +3 -3
- package/dist/esm/pipeline/advanced/chart/pipeline/area.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/areaPercent.js +3 -3
- package/dist/esm/pipeline/advanced/chart/pipeline/areaPercent.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/bar.js +3 -3
- package/dist/esm/pipeline/advanced/chart/pipeline/bar.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/barParallel.js +3 -3
- package/dist/esm/pipeline/advanced/chart/pipeline/barParallel.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/barPercent.js +3 -3
- package/dist/esm/pipeline/advanced/chart/pipeline/barPercent.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/boxplot.js +3 -3
- package/dist/esm/pipeline/advanced/chart/pipeline/boxplot.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/column.js +3 -3
- package/dist/esm/pipeline/advanced/chart/pipeline/column.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/columnParallel.js +3 -3
- package/dist/esm/pipeline/advanced/chart/pipeline/columnParallel.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/columnPercent.js +3 -3
- package/dist/esm/pipeline/advanced/chart/pipeline/columnPercent.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/donut.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/dualAxis.js +3 -3
- package/dist/esm/pipeline/advanced/chart/pipeline/dualAxis.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/funnel.js +3 -3
- package/dist/esm/pipeline/advanced/chart/pipeline/funnel.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/heatmap.js +3 -3
- package/dist/esm/pipeline/advanced/chart/pipeline/heatmap.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/histogram.js +3 -3
- package/dist/esm/pipeline/advanced/chart/pipeline/histogram.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/line.js +3 -3
- package/dist/esm/pipeline/advanced/chart/pipeline/line.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/pie.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/radar.js +3 -3
- package/dist/esm/pipeline/advanced/chart/pipeline/radar.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/rose.js +3 -3
- package/dist/esm/pipeline/advanced/chart/pipeline/rose.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/roseParallel.js +3 -3
- package/dist/esm/pipeline/advanced/chart/pipeline/roseParallel.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js +3 -3
- package/dist/esm/pipeline/advanced/chart/pipeline/scatter.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/analysis/common.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/analysis/sortLegend.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/analysis/sortXBand.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/analysis/sortYBand.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/annotation/annotation.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/boxplot.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/column.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/dualAxis.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/histogram.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/index.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/line.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/pie.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/config/scatter.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/default/defaultDimensions.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/default/defaultMeasureId.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/default/defaultMeasures.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/dimensions/pickDimensionsForReshape.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/adapter/encodingAdapter.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/bar.js +8 -7
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/bar.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/boxplot.js +8 -7
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/boxplot.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/color/addColorToEncoding.d.ts +7 -0
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/color/addColorToEncoding.js +9 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/color/addColorToEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/column.js +8 -7
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/column.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/dualAxis.js +16 -7
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/dualAxis.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/funnel.js +7 -6
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/funnel.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/heatmap.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/histogram.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/line.js +8 -6
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/line.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/pie.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/radar.js +8 -6
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/radar.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/rose.js +8 -7
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/rose.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/encoding/scatter.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/init/initAdvancedVSeed.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/markStyle/markStyle.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasures.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasuresForDualAxis.js +48 -23
- package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasuresForDualAxis.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasuresForScatter.js +47 -23
- package/dist/esm/pipeline/advanced/chart/pipes/measures/buildMeasuresForScatter.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/measures/pickMeasuresForReshape.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/measures/utils.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/pivot/pivotAdapter.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/regressionLine/regressionLine.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithBoxplotEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js +2 -2
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithDualEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithHistogramEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/pivotReshapeWithScatterEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithBoxplotEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithDualEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithHistogramEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithScatterEncoding.js +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/reshape/reshapeWithScatterEncoding.js.map +1 -1
- package/dist/esm/pipeline/advanced/chart/pipes/theme/theme.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipeline/pivotTable.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipeline/table.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipes/cellStyle/cellStyle.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipes/config/pivotTableConfig.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipes/config/tableConfig.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipes/default/defaultDimensions.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasureId.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipes/default/defaultMeasures.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipes/encoding/pivotTable.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipes/init/initAdvancedVSeed.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipes/records/records.js.map +1 -1
- package/dist/esm/pipeline/advanced/table/pipes/reshape/reshapePivotTable.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/area.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/areaPercent.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/bar.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/barParallel.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/barPercent.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/boxplot.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/column.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/columnParallel.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/columnPercent.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/donut.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/dualAxis.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/funnel.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/heatmap.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/histogram.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/line.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/pie.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/radar.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/rose.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/roseParallel.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipeline/scatter.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationArea.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationAreaBand.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationHorizontalLine.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPoint.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPointCommon.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPointOfDualAxis.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationPointOfHistogram.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/annotation/annotationVerticalLine.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/annotation/splitLine.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/annotation/utils.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/bandAxisStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/format/linearFormat.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/heatmapBandAxis.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/histogramXLinear.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/linearAxisStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/radarAngle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/radarRadius.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/radius.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/title/defaultTitleText.js.map +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.map +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.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearPrimary.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearSecondary.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/backgroundColor/background.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/barWidth/barGapInGroup.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/barWidth/barMaxWidth.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/boxWidth/boxGapInGroup.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/boxWidth/boxMaxWidth.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/color/color.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/color/colorAdapter.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/color/colorAreaStyleFill.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/color/colorBarStyleFill.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/color/colorBoxPlotStyleFill.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/color/colorCellStyleFill.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/color/colorFunnelStyleFill.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/color/colorLineStyleFill.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/color/colorPieStyleFill.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/color/colorPointStyleFill.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/color/colorRoseStyleFill.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/color/linearColor.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/color/linearColorForDualAxis.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/crosshair/histogramCrosshair.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/crosshair/horizontalCrosshairLine.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/crosshair/horizontalCrosshairRect.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/crosshair/verticalCrosshairLine.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/crosshair/verticalCrosshairRect.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetBoxplot.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetDualAxis.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetHistogram.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetPivot.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetScatter.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetXY.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/dataset/datasetYX.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/dataset/progressive.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/dual/dualChartType.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/area.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/bar.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/barParallel.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/boxplot.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/column.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/columnParallel.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/donut.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/dualAxis.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/funnel.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/heatmap.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/histogram.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/line.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/pie.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/pivot.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/radar.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/rose.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/roseParallel.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/init/scatter.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/label/label.js.map +1 -1
- 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/legend/boxLegend.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/legend/colorLegend.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/legend/discreteLegend.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/legend/heatmapColorLegend.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/legend/pivotColorLegend.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/legend/pivotDiscreteLegend.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/areaStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/barStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/boxPlotStyle.js +5 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/boxPlotStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/cellStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/curve/curve.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/funnelStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/funnelTransformStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/lineStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/outlierStyle.js +3 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/outlierStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/pieStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/pointState.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/pointStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/markStyle/roseStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/percent/percent.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/areaStyleFilter.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/barStyleFilter.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/lineStyleFilter.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/pipeFilter/pointStyleFilter.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/dimensionLinkage.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotAdapter.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotAxisStyle.js +3 -1
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotAxisStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotColumnDimensions.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotGridStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotHideIndicatorName.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotIndicators.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotRowDimensions.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/pivotChart/pivotTitle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/region/addRegionPadding.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/columnRegressionLine.js +6 -1
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/columnRegressionLine.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/common.js.map +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.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/linearRegressionLine.js +5 -1
- package/dist/esm/pipeline/spec/chart/pipes/regressionLine/linearRegressionLine.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/series/series.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/size/scatterSize.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/stack/stack.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/stack/stackCornerRadius.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js +35 -4
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipBoxplot.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipElement.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHeatmap.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHistogram.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/chart/utils/histogram.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipeline/pivotTable.js +2 -2
- package/dist/esm/pipeline/spec/table/pipeline/pivotTable.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipeline/table.js +2 -2
- package/dist/esm/pipeline/spec/table/pipeline/table.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/cellStyle/common.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/cellStyle/pivot.js +16 -4
- package/dist/esm/pipeline/spec/table/pipes/cellStyle/pivot.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/cellStyle/table.js +16 -4
- package/dist/esm/pipeline/spec/table/pipes/cellStyle/table.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/columns/dimensionsToColumns.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/columns/measuresToColumns.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/columns/pivotColumns.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/corner/titleOnDimension.js.map +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.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/init/pivotTable.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/init/table.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/rows/pivotRows.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/theme/bodyStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/theme/cornerHeaderStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/theme/frameStyle.d.ts +1 -1
- package/dist/esm/pipeline/spec/table/pipes/theme/frameStyle.js +6 -2
- package/dist/esm/pipeline/spec/table/pipes/theme/frameStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/theme/headerStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/theme/rowHeaderStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/theme/scrollStyle.js.map +1 -1
- package/dist/esm/pipeline/spec/table/pipes/theme/selectionStyle.js.map +1 -1
- package/dist/esm/pipeline/utils/boxplot.js.map +1 -1
- package/dist/esm/pipeline/utils/chatType.js +2 -2
- package/dist/esm/pipeline/utils/chatType.js.map +1 -1
- package/dist/esm/pipeline/utils/constant.js.map +1 -1
- package/dist/esm/pipeline/utils/dimensions/delete.js.map +1 -1
- package/dist/esm/pipeline/utils/dimensions/typeGuard.js.map +1 -1
- package/dist/esm/pipeline/utils/format/createFormatter.js.map +1 -1
- package/dist/esm/pipeline/utils/format/createFormatterByMeasure.js.map +1 -1
- package/dist/esm/pipeline/utils/format/createNumFormatter.js.map +1 -1
- package/dist/esm/pipeline/utils/measures/delete.js.map +1 -1
- package/dist/esm/pipeline/utils/measures/depth.js.map +1 -1
- package/dist/esm/pipeline/utils/measures/find.js.map +1 -1
- package/dist/esm/pipeline/utils/measures/typeGuard.d.ts +1 -0
- package/dist/esm/pipeline/utils/measures/typeGuard.js +8 -1
- package/dist/esm/pipeline/utils/measures/typeGuard.js.map +1 -1
- package/dist/esm/pipeline/utils/pipeline.js.map +1 -1
- package/dist/esm/pipeline/utils/replaceNullToUndefined.js.map +1 -1
- package/dist/esm/pipeline/utils/tree/traverse.js.map +1 -1
- package/dist/esm/pipeline/utils/valid/checkVSeed.js.map +1 -1
- package/dist/esm/theme/common/annotaion.js.map +1 -1
- package/dist/esm/theme/common/axes.js.map +1 -1
- package/dist/esm/theme/common/boxPlot.js +15 -4
- package/dist/esm/theme/common/boxPlot.js.map +1 -1
- package/dist/esm/theme/common/color.js.map +1 -1
- package/dist/esm/theme/common/crosshair.js.map +1 -1
- package/dist/esm/theme/common/funnelTransform.js.map +1 -1
- package/dist/esm/theme/common/heatmapCell.js.map +1 -1
- package/dist/esm/theme/common/label.js.map +1 -1
- package/dist/esm/theme/common/legend.js.map +1 -1
- package/dist/esm/theme/common/regressionLine.js.map +1 -1
- package/dist/esm/theme/common/table.js.map +1 -1
- package/dist/esm/theme/common/tooltip.js.map +1 -1
- package/dist/esm/theme/dark/dark.js.map +1 -1
- package/dist/esm/theme/light/light.js.map +1 -1
- package/dist/esm/types/advancedVSeed.d.ts +236 -0
- package/dist/esm/types/advancedVSeed.js.map +1 -1
- package/dist/esm/types/builder/builder.js.map +1 -1
- package/dist/esm/types/chartType/area/zArea.js.map +1 -1
- package/dist/esm/types/chartType/areaPercent/zAreaPercent.js.map +1 -1
- package/dist/esm/types/chartType/bar/zBar.js.map +1 -1
- package/dist/esm/types/chartType/barParallel/zBarParallel.js.map +1 -1
- package/dist/esm/types/chartType/barPercent/zBarPercent.js.map +1 -1
- package/dist/esm/types/chartType/boxPlot/zBoxPlot.d.ts +6 -0
- package/dist/esm/types/chartType/boxPlot/zBoxPlot.js.map +1 -1
- package/dist/esm/types/chartType/column/zColumn.d.ts +8 -0
- package/dist/esm/types/chartType/column/zColumn.js.map +1 -1
- package/dist/esm/types/chartType/columnParallel/zColumnParallel.js.map +1 -1
- package/dist/esm/types/chartType/columnPercent/zColumnPercent.js.map +1 -1
- package/dist/esm/types/chartType/donut/zDonut.js.map +1 -1
- package/dist/esm/types/chartType/dualAxis/zDualAxis.js.map +1 -1
- package/dist/esm/types/chartType/funnel/zFunnel.js.map +1 -1
- package/dist/esm/types/chartType/heatmap/zHeatmap.js.map +1 -1
- package/dist/esm/types/chartType/histogram/zHistogram.js.map +1 -1
- package/dist/esm/types/chartType/line/zLine.js.map +1 -1
- package/dist/esm/types/chartType/pie/zPie.js.map +1 -1
- package/dist/esm/types/chartType/pivotTable/zPivotTable.js.map +1 -1
- package/dist/esm/types/chartType/radar/zRadar.js.map +1 -1
- package/dist/esm/types/chartType/rose/zRose.js.map +1 -1
- package/dist/esm/types/chartType/roseParallel/zRoseParallel.js.map +1 -1
- package/dist/esm/types/chartType/scatter/zScatter.d.ts +32 -0
- package/dist/esm/types/chartType/scatter/zScatter.js.map +1 -1
- package/dist/esm/types/chartType/table/zTable.js.map +1 -1
- package/dist/esm/types/dataSelector/selector.js.map +1 -1
- package/dist/esm/types/i18n/i18n.js.map +1 -1
- package/dist/esm/types/properties/analysis/analysis.js.map +1 -1
- package/dist/esm/types/properties/analysis/sort.js.map +1 -1
- package/dist/esm/types/properties/analysis/sortLegend.js.map +1 -1
- package/dist/esm/types/properties/annotation/annotation.js.map +1 -1
- package/dist/esm/types/properties/annotation/zAnnotationArea.js.map +1 -1
- package/dist/esm/types/properties/annotation/zAnnotationHorizontalLine.js.map +1 -1
- package/dist/esm/types/properties/annotation/zAnnotationPoint.js.map +1 -1
- package/dist/esm/types/properties/annotation/zAnnotationVerticalLine.js.map +1 -1
- package/dist/esm/types/properties/cellStyle/bodyCellStyle.js.map +1 -1
- package/dist/esm/types/properties/cellStyle/cellStyle.js.map +1 -1
- package/dist/esm/types/properties/chartType/chartType.js.map +1 -1
- package/dist/esm/types/properties/chartType/dualChartType.js.map +1 -1
- package/dist/esm/types/properties/config/annotation/zAnnotaion.js.map +1 -1
- package/dist/esm/types/properties/config/area.js.map +1 -1
- package/dist/esm/types/properties/config/axes/zBandAxis.js.map +1 -1
- package/dist/esm/types/properties/config/axes/zLinearAxis.js.map +1 -1
- package/dist/esm/types/properties/config/backgroundColor/backgroundColor.js.map +1 -1
- package/dist/esm/types/properties/config/bar.js.map +1 -1
- package/dist/esm/types/properties/config/barWidth/index.js.map +1 -1
- package/dist/esm/types/properties/config/boxWidth/zBoxWidth.js.map +1 -1
- package/dist/esm/types/properties/config/boxplot.d.ts +3 -0
- package/dist/esm/types/properties/config/boxplot.js.map +1 -1
- package/dist/esm/types/properties/config/color/color.js.map +1 -1
- package/dist/esm/types/properties/config/column.d.ts +32 -0
- package/dist/esm/types/properties/config/column.js.map +1 -1
- package/dist/esm/types/properties/config/config.d.ts +99 -0
- package/dist/esm/types/properties/config/config.js.map +1 -1
- package/dist/esm/types/properties/config/crosshair/zCrosshair.js.map +1 -1
- package/dist/esm/types/properties/config/dimensionLinkage/dimensionLinkage.js.map +1 -1
- package/dist/esm/types/properties/config/dualAxis.js.map +1 -1
- package/dist/esm/types/properties/config/funnel.js.map +1 -1
- package/dist/esm/types/properties/config/funnelTransform/zFunnelTransform.js.map +1 -1
- package/dist/esm/types/properties/config/heatmap/zHeatmap.js.map +1 -1
- package/dist/esm/types/properties/config/heatmap.js.map +1 -1
- package/dist/esm/types/properties/config/histogram.d.ts +32 -0
- package/dist/esm/types/properties/config/histogram.js.map +1 -1
- package/dist/esm/types/properties/config/label/zLabel.js.map +1 -1
- package/dist/esm/types/properties/config/label/zPieLabel.js.map +1 -1
- package/dist/esm/types/properties/config/legend/legend.js.map +1 -1
- package/dist/esm/types/properties/config/line.js.map +1 -1
- package/dist/esm/types/properties/config/pie.js.map +1 -1
- package/dist/esm/types/properties/config/pivotGrid/pivotGrid.js.map +1 -1
- package/dist/esm/types/properties/config/pivotTable.js.map +1 -1
- package/dist/esm/types/properties/config/rose.js.map +1 -1
- package/dist/esm/types/properties/config/scatter.d.ts +32 -0
- package/dist/esm/types/properties/config/scatter.js.map +1 -1
- package/dist/esm/types/properties/config/stackCornerRadius/stackCornerRadius.js.map +1 -1
- package/dist/esm/types/properties/config/table.js.map +1 -1
- package/dist/esm/types/properties/config/tooltip/tooltip.js.map +1 -1
- package/dist/esm/types/properties/config/whiskers/index.js.map +1 -1
- package/dist/esm/types/properties/dataset/dataset.js.map +1 -1
- package/dist/esm/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.js.map +1 -1
- package/dist/esm/types/properties/dimensions/zDimensions.js.map +1 -1
- package/dist/esm/types/properties/encoding/zDimensionEncoding.js.map +1 -1
- package/dist/esm/types/properties/encoding/zEncoding.js.map +1 -1
- package/dist/esm/types/properties/encoding/zMeasureEncoding.js.map +1 -1
- package/dist/esm/types/properties/format/numFormat.js.map +1 -1
- package/dist/esm/types/properties/markStyle/barStyle.js.map +1 -1
- package/dist/esm/types/properties/markStyle/boxPlotStyle.d.ts +15 -0
- package/dist/esm/types/properties/markStyle/boxPlotStyle.js +4 -1
- package/dist/esm/types/properties/markStyle/boxPlotStyle.js.map +1 -1
- package/dist/esm/types/properties/markStyle/lineStyle.js.map +1 -1
- package/dist/esm/types/properties/markStyle/markStyle.d.ts +6 -0
- package/dist/esm/types/properties/markStyle/markStyle.js.map +1 -1
- package/dist/esm/types/properties/markStyle/outlierStyle.js.map +1 -1
- package/dist/esm/types/properties/markStyle/pointStyle.js.map +1 -1
- package/dist/esm/types/properties/markStyle/zAreaStyle.js.map +1 -1
- package/dist/esm/types/properties/measures/zDualMeasures.js.map +1 -1
- package/dist/esm/types/properties/measures/zMeasures.js.map +1 -1
- package/dist/esm/types/properties/measures/zScatterMeasures.js.map +1 -1
- package/dist/esm/types/properties/regressionLine/linearRegressionLine.d.ts +20 -0
- package/dist/esm/types/properties/regressionLine/zRegressionLine.d.ts +48 -0
- package/dist/esm/types/properties/regressionLine/zRegressionLine.js +5 -1
- package/dist/esm/types/properties/regressionLine/zRegressionLine.js.map +1 -1
- package/dist/esm/types/properties/theme/customTheme.d.ts +198 -0
- package/dist/esm/types/properties/theme/customTheme.js.map +1 -1
- package/dist/esm/types/properties/theme/theme.js.map +1 -1
- package/dist/esm/types/zVseed.d.ts +46 -0
- package/dist/esm/types/zVseed.js.map +1 -1
- package/dist/umd/index.js +826 -655
- package/dist/umd/index.js.map +1 -1
- package/package.json +6 -5
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { MeasureId } from "../../../../../dataReshape/index.js";
|
|
1
2
|
import { BAND_AXIS_INNER_OFFSET_IN_PIVOT } from "../../../../utils/constant.js";
|
|
2
3
|
const pivotAxisStyle = (axisStyle)=>(spec, context)=>{
|
|
3
4
|
const result = axisStyle(spec, context);
|
|
4
5
|
if (result.axes) {
|
|
5
6
|
const { advancedVSeed } = context;
|
|
6
|
-
const { config, chartType } = advancedVSeed;
|
|
7
|
+
const { config, chartType, encoding, reshapeMeasures } = advancedVSeed;
|
|
7
8
|
const themConfig = config?.[chartType]?.pivotGrid ?? {};
|
|
8
9
|
result.axes.forEach((axis)=>{
|
|
9
10
|
axis.domainLine = {
|
|
@@ -22,6 +23,7 @@ const pivotAxisStyle = (axisStyle)=>(spec, context)=>{
|
|
|
22
23
|
};
|
|
23
24
|
} else if ('linear' === axis.type) {
|
|
24
25
|
if ('top' === axis.orient || 'bottom' === axis.orient) axis.label.flush = true;
|
|
26
|
+
if (reshapeMeasures && reshapeMeasures.length > 1 && axis.title.text && encoding.color && encoding.color.length && !encoding.color.includes(MeasureId)) axis.title.visible = true;
|
|
25
27
|
}
|
|
26
28
|
});
|
|
27
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/pivotChart/pivotAxisStyle.js","sources":["
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/pivotChart/pivotAxisStyle.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/pivotChart/pivotAxisStyle.ts"],"sourcesContent":["import type { ILineChartSpec } from '@visactor/vchart'\nimport { MeasureId } from 'src/dataReshape'\nimport { BAND_AXIS_INNER_OFFSET_IN_PIVOT } from 'src/pipeline/utils/constant'\nimport type { Config, VChartSpecPipe } from 'src/types'\n\nexport const pivotAxisStyle = (axisStyle: VChartSpecPipe): VChartSpecPipe => {\n return (spec, context) => {\n const result = axisStyle(spec, context) as ILineChartSpec\n\n if (result.axes) {\n const { advancedVSeed } = context\n const { config, chartType, encoding, reshapeMeasures } = advancedVSeed\n const themConfig = (config?.[chartType] as Config['line'])?.pivotGrid ?? {}\n\n result.axes.forEach((axis: any) => {\n axis.domainLine = {\n visible: false,\n }\n\n if (themConfig.chartGridColor && axis.grid && axis.grid.visible && axis.grid.style) {\n axis.grid.style.stroke = themConfig.chartGridColor\n }\n\n if (themConfig.axisLabelColor && axis.label && axis.label.visible && axis.label.style) {\n axis.label.style.fill = themConfig.axisLabelColor\n }\n\n if (axis.type === 'band') {\n if (axis.orient === 'left' || axis.orient === 'right') {\n axis.innerOffset = {\n top: BAND_AXIS_INNER_OFFSET_IN_PIVOT,\n bottom: BAND_AXIS_INNER_OFFSET_IN_PIVOT,\n }\n } else if (axis.orient === 'top' || axis.orient === 'bottom') {\n axis.innerOffset = {\n left: BAND_AXIS_INNER_OFFSET_IN_PIVOT,\n right: BAND_AXIS_INNER_OFFSET_IN_PIVOT,\n }\n }\n } else if (axis.type === 'linear') {\n if (axis.orient === 'top' || axis.orient === 'bottom') {\n axis.label.flush = true\n }\n\n if (\n reshapeMeasures &&\n reshapeMeasures.length > 1 &&\n axis.title.text &&\n encoding.color &&\n encoding.color.length &&\n !encoding.color.includes(MeasureId)\n ) {\n axis.title.visible = true\n }\n }\n })\n }\n\n return result\n }\n}\n"],"names":["pivotAxisStyle","axisStyle","spec","context","result","advancedVSeed","config","chartType","encoding","reshapeMeasures","themConfig","axis","BAND_AXIS_INNER_OFFSET_IN_PIVOT","MeasureId"],"mappings":";;AAKO,MAAMA,iBAAiB,CAACC,YACtB,CAACC,MAAMC;QACZ,MAAMC,SAASH,UAAUC,MAAMC;QAE/B,IAAIC,OAAO,IAAI,EAAE;YACf,MAAM,EAAEC,aAAa,EAAE,GAAGF;YAC1B,MAAM,EAAEG,MAAM,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,eAAe,EAAE,GAAGJ;YACzD,MAAMK,aAAcJ,QAAQ,CAACC,UAAU,EAAqB,aAAa,CAAC;YAE1EH,OAAO,IAAI,CAAC,OAAO,CAAC,CAACO;gBACnBA,KAAK,UAAU,GAAG;oBAChB,SAAS;gBACX;gBAEA,IAAID,WAAW,cAAc,IAAIC,KAAK,IAAI,IAAIA,KAAK,IAAI,CAAC,OAAO,IAAIA,KAAK,IAAI,CAAC,KAAK,EAChFA,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,GAAGD,WAAW,cAAc;gBAGpD,IAAIA,WAAW,cAAc,IAAIC,KAAK,KAAK,IAAIA,KAAK,KAAK,CAAC,OAAO,IAAIA,KAAK,KAAK,CAAC,KAAK,EACnFA,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,GAAGD,WAAW,cAAc;gBAGnD,IAAIC,AAAc,WAAdA,KAAK,IAAI,EACX;oBAAA,IAAIA,AAAgB,WAAhBA,KAAK,MAAM,IAAeA,AAAgB,YAAhBA,KAAK,MAAM,EACvCA,KAAK,WAAW,GAAG;wBACjB,KAAKC;wBACL,QAAQA;oBACV;yBACK,IAAID,AAAgB,UAAhBA,KAAK,MAAM,IAAcA,AAAgB,aAAhBA,KAAK,MAAM,EAC7CA,KAAK,WAAW,GAAG;wBACjB,MAAMC;wBACN,OAAOA;oBACT;gBACF,OACK,IAAID,AAAc,aAAdA,KAAK,IAAI,EAAe;oBACjC,IAAIA,AAAgB,UAAhBA,KAAK,MAAM,IAAcA,AAAgB,aAAhBA,KAAK,MAAM,EACtCA,KAAK,KAAK,CAAC,KAAK,GAAG;oBAGrB,IACEF,mBACAA,gBAAgB,MAAM,GAAG,KACzBE,KAAK,KAAK,CAAC,IAAI,IACfH,SAAS,KAAK,IACdA,SAAS,KAAK,CAAC,MAAM,IACrB,CAACA,SAAS,KAAK,CAAC,QAAQ,CAACK,YAEzBF,KAAK,KAAK,CAAC,OAAO,GAAG;gBAEzB;YACF;QACF;QAEA,OAAOP;IACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/pivotChart/pivotColumnDimensions.js","sources":["
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/pivotChart/pivotColumnDimensions.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/pivotChart/pivotColumnDimensions.ts"],"sourcesContent":["import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { Dimensions, PivotChartSpecPipe } from 'src/types'\n\nexport const pivotColumnDimensions: PivotChartSpecPipe = (spec, context): Partial<PivotChartConstructorOptions> => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const dimensions = advancedVSeed.dimensions as Dimensions\n\n if (!dimensions) {\n return result\n }\n const columnDimensions = dimensions.filter((dim) => dim.encoding === 'column')\n const columns = columnDimensions.map((dim) => ({\n dimensionKey: dim.id,\n title: dim.alias || dim.id,\n })) as unknown\n\n return {\n ...result,\n columns: columns,\n } as Partial<PivotChartConstructorOptions>\n}\n"],"names":["pivotColumnDimensions","spec","context","result","advancedVSeed","dimensions","columnDimensions","dim","columns"],"mappings":"AAGO,MAAMA,wBAA4C,CAACC,MAAMC;IAC9D,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAMG,aAAaD,cAAc,UAAU;IAE3C,IAAI,CAACC,YACH,OAAOF;IAET,MAAMG,mBAAmBD,WAAW,MAAM,CAAC,CAACE,MAAQA,AAAiB,aAAjBA,IAAI,QAAQ;IAChE,MAAMC,UAAUF,iBAAiB,GAAG,CAAC,CAACC,MAAS;YAC7C,cAAcA,IAAI,EAAE;YACpB,OAAOA,IAAI,KAAK,IAAIA,IAAI,EAAE;QAC5B;IAEA,OAAO;QACL,GAAGJ,MAAM;QACT,SAASK;IACX;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/pivotChart/pivotGridStyle.js","sources":["../../../../../../../src/pipeline/spec/chart/pipes/pivotChart/pivotGridStyle.ts"],"sourcesContent":["import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport { isCombination, isPivot } from 'src/pipeline/utils'\nimport type { Config, PivotChartSpecPipe } from 'src/types'\nimport { isNullish } from 'remeda'\n\nexport const pivotGridStyle: PivotChartSpecPipe = (spec, context) => {\n const { vseed, advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = (config?.[chartType] as Config['line'])?.pivotGrid ?? {}\n\n const onlyCombination = !isPivot(vseed) && isCombination(vseed)\n\n const result = { ...spec } as PivotChartConstructorOptions\n const transparent = 'rgba(0,0,0,0)'\n\n const borderColor = themConfig.borderColor ?? '#e3e5eb'\n const bodyFontColor = themConfig.bodyFontColor ?? '#141414'\n const headerFontColor = themConfig.headerFontColor ?? '#21252c'\n const headerBackgroundColor = themConfig.headerBackgroundColor ?? 'rgba(0,0,0,0)'\n const hoverHeaderBackgroundColor = onlyCombination\n ? transparent\n : (themConfig.hoverHeaderBackgroundColor ?? '#D9DDE4')\n const hoverHeaderInlineBackgroundColor = onlyCombination\n ? transparent\n : (themConfig.hoverHeaderInlineBackgroundColor ?? '#D9DDE455')\n const outlineBorderLineWidth = themConfig.outlineBorderLineWidth ?? 0\n const frameCornerRadius = themConfig.frameCornerRadius ?? 0\n\n if (!isNullish(themConfig.minChartWidth)) {\n result.defaultColWidth = themConfig.minChartWidth\n }\n\n if (!isNullish(themConfig.minChartHeight)) {\n result.defaultRowHeight = themConfig.minChartHeight\n }\n\n return {\n ...result,\n theme: {\n underlayBackgroundColor: transparent,\n bodyStyle: {\n borderColor,\n color: bodyFontColor,\n borderLineWidth: (arg: { row: number; col: number; table: any }) => {\n const noYAxis =\n chartType === 'pie' ||\n chartType === 'rose' ||\n chartType === 'donut' ||\n chartType === 'funnel' ||\n chartType === 'radar' ||\n chartType === 'roseParallel'\n\n return [\n arg.row === 0 ? outlineBorderLineWidth : 1,\n outlineBorderLineWidth,\n 0,\n arg.col === 0 || (noYAxis && arg.col === 1 && arg.table.colCount <= 2) ? outlineBorderLineWidth : 1,\n ]\n },\n bgColor: transparent,\n hover: {\n cellBgColor: 'transparent',\n },\n },\n headerStyle: {\n borderColor,\n fontSize: 12,\n // borderLineWidth: [outlineBorderLineWidth, outlineBorderLineWidth, 1, 1],\n borderLineWidth: (arg: { row: number; col: number }) => {\n return [outlineBorderLineWidth, outlineBorderLineWidth, 1, arg.col === 0 ? outlineBorderLineWidth : 1]\n },\n color: headerFontColor,\n textAlign: 'center',\n bgColor: headerBackgroundColor,\n hover: {\n cellBgColor: hoverHeaderBackgroundColor,\n inlineRowBgColor: hoverHeaderInlineBackgroundColor || undefined,\n inlineColumnBgColor: hoverHeaderInlineBackgroundColor || undefined,\n },\n },\n rowHeaderStyle: {\n borderColor,\n fontSize: 12,\n color: headerFontColor,\n padding: [0, 12, 0, 4],\n borderLineWidth: (arg: { row: number }) => {\n return [arg.row === 0 ? outlineBorderLineWidth : 1, 1, 0, outlineBorderLineWidth]\n },\n bgColor: headerBackgroundColor,\n hover: {\n cellBgColor: hoverHeaderBackgroundColor,\n inlineRowBgColor: hoverHeaderInlineBackgroundColor || undefined,\n inlineColumnBgColor: hoverHeaderInlineBackgroundColor || undefined,\n },\n },\n cornerHeaderStyle: {\n borderColor,\n textAlign: 'center',\n fontSize: 12,\n color: headerFontColor,\n padding: [0, 12, 0, 4],\n fontWeight: 'bold',\n borderLineWidth: [outlineBorderLineWidth, 1, 1, outlineBorderLineWidth],\n bgColor: headerBackgroundColor,\n frameStyle: {\n borderColor,\n },\n hover: {\n cellBgColor: hoverHeaderBackgroundColor,\n inlineRowBgColor: hoverHeaderInlineBackgroundColor || undefined,\n inlineColumnBgColor: hoverHeaderInlineBackgroundColor || undefined,\n },\n },\n cornerLeftBottomCellStyle: {\n borderColor,\n borderLineWidth: [outlineBorderLineWidth, 0, outlineBorderLineWidth, outlineBorderLineWidth],\n bgColor: headerBackgroundColor,\n frameStyle: {\n borderColor,\n borderLineWidth: [1, 0, outlineBorderLineWidth, outlineBorderLineWidth],\n },\n hover: {\n cellBgColor: hoverHeaderBackgroundColor,\n },\n },\n cornerRightTopCellStyle: {\n borderColor,\n borderLineWidth: [outlineBorderLineWidth, outlineBorderLineWidth, 1, 1],\n frameStyle: {\n borderColor,\n borderLineWidth: 0,\n },\n bgColor: headerBackgroundColor,\n hover: {\n cellBgColor: hoverHeaderBackgroundColor,\n },\n },\n rightFrozenStyle: {\n borderColor,\n bgColor: headerBackgroundColor,\n borderLineWidth: (arg: { row: number }) => {\n return [arg.row === 0 ? outlineBorderLineWidth : 1, outlineBorderLineWidth, 0, 1]\n },\n frameStyle: {\n borderLineWidth: 0,\n },\n hover: {\n borderLineWidth: 0,\n cellBgColor: hoverHeaderBackgroundColor,\n },\n },\n cornerRightBottomCellStyle: {\n borderColor,\n bgColor: headerBackgroundColor,\n borderLineWidth: [1, outlineBorderLineWidth, outlineBorderLineWidth, 1],\n frameStyle: {\n borderColor,\n borderLineWidth: [1, outlineBorderLineWidth, outlineBorderLineWidth, 1],\n },\n hover: {\n cellBgColor: hoverHeaderBackgroundColor,\n },\n },\n\n bottomFrozenStyle: {\n borderColor,\n borderLineWidth: [1, outlineBorderLineWidth, outlineBorderLineWidth, 1],\n bgColor: headerBackgroundColor,\n hover: {\n cellBgColor: hoverHeaderBackgroundColor,\n },\n },\n selectionStyle: {\n cellBgColor: '',\n cellBorderColor: '',\n },\n frameStyle: {\n borderColor,\n cornerRadius: frameCornerRadius,\n borderLineWidth: outlineBorderLineWidth,\n },\n\n axisStyle: {\n leftAxisStyle: {\n cellPaddingLeft: 10,\n },\n bottomAxisStyle: {\n cellPaddingBottom: 4,\n },\n rightAxisStyle: {\n cellPaddingRight: 4,\n },\n },\n scrollStyle: {\n visible: 'scrolling',\n hoverOn: false,\n },\n },\n }\n}\n"],"names":["pivotGridStyle","spec","context","vseed","advancedVSeed","config","chartType","themConfig","onlyCombination","isPivot","isCombination","result","transparent","borderColor","bodyFontColor","headerFontColor","headerBackgroundColor","hoverHeaderBackgroundColor","hoverHeaderInlineBackgroundColor","outlineBorderLineWidth","frameCornerRadius","isNullish","arg","noYAxis","undefined"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/pivotChart/pivotGridStyle.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/pivotChart/pivotGridStyle.ts"],"sourcesContent":["import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport { isCombination, isPivot } from 'src/pipeline/utils'\nimport type { Config, PivotChartSpecPipe } from 'src/types'\nimport { isNullish } from 'remeda'\n\nexport const pivotGridStyle: PivotChartSpecPipe = (spec, context) => {\n const { vseed, advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = (config?.[chartType] as Config['line'])?.pivotGrid ?? {}\n\n const onlyCombination = !isPivot(vseed) && isCombination(vseed)\n\n const result = { ...spec } as PivotChartConstructorOptions\n const transparent = 'rgba(0,0,0,0)'\n\n const borderColor = themConfig.borderColor ?? '#e3e5eb'\n const bodyFontColor = themConfig.bodyFontColor ?? '#141414'\n const headerFontColor = themConfig.headerFontColor ?? '#21252c'\n const headerBackgroundColor = themConfig.headerBackgroundColor ?? 'rgba(0,0,0,0)'\n const hoverHeaderBackgroundColor = onlyCombination\n ? transparent\n : (themConfig.hoverHeaderBackgroundColor ?? '#D9DDE4')\n const hoverHeaderInlineBackgroundColor = onlyCombination\n ? transparent\n : (themConfig.hoverHeaderInlineBackgroundColor ?? '#D9DDE455')\n const outlineBorderLineWidth = themConfig.outlineBorderLineWidth ?? 0\n const frameCornerRadius = themConfig.frameCornerRadius ?? 0\n\n if (!isNullish(themConfig.minChartWidth)) {\n result.defaultColWidth = themConfig.minChartWidth\n }\n\n if (!isNullish(themConfig.minChartHeight)) {\n result.defaultRowHeight = themConfig.minChartHeight\n }\n\n return {\n ...result,\n theme: {\n underlayBackgroundColor: transparent,\n bodyStyle: {\n borderColor,\n color: bodyFontColor,\n borderLineWidth: (arg: { row: number; col: number; table: any }) => {\n const noYAxis =\n chartType === 'pie' ||\n chartType === 'rose' ||\n chartType === 'donut' ||\n chartType === 'funnel' ||\n chartType === 'radar' ||\n chartType === 'roseParallel'\n\n return [\n arg.row === 0 ? outlineBorderLineWidth : 1,\n outlineBorderLineWidth,\n 0,\n arg.col === 0 || (noYAxis && arg.col === 1 && arg.table.colCount <= 2) ? outlineBorderLineWidth : 1,\n ]\n },\n bgColor: transparent,\n hover: {\n cellBgColor: 'transparent',\n },\n },\n headerStyle: {\n borderColor,\n fontSize: 12,\n // borderLineWidth: [outlineBorderLineWidth, outlineBorderLineWidth, 1, 1],\n borderLineWidth: (arg: { row: number; col: number }) => {\n return [outlineBorderLineWidth, outlineBorderLineWidth, 1, arg.col === 0 ? outlineBorderLineWidth : 1]\n },\n color: headerFontColor,\n textAlign: 'center',\n bgColor: headerBackgroundColor,\n hover: {\n cellBgColor: hoverHeaderBackgroundColor,\n inlineRowBgColor: hoverHeaderInlineBackgroundColor || undefined,\n inlineColumnBgColor: hoverHeaderInlineBackgroundColor || undefined,\n },\n },\n rowHeaderStyle: {\n borderColor,\n fontSize: 12,\n color: headerFontColor,\n padding: [0, 12, 0, 4],\n borderLineWidth: (arg: { row: number }) => {\n return [arg.row === 0 ? outlineBorderLineWidth : 1, 1, 0, outlineBorderLineWidth]\n },\n bgColor: headerBackgroundColor,\n hover: {\n cellBgColor: hoverHeaderBackgroundColor,\n inlineRowBgColor: hoverHeaderInlineBackgroundColor || undefined,\n inlineColumnBgColor: hoverHeaderInlineBackgroundColor || undefined,\n },\n },\n cornerHeaderStyle: {\n borderColor,\n textAlign: 'center',\n fontSize: 12,\n color: headerFontColor,\n padding: [0, 12, 0, 4],\n fontWeight: 'bold',\n borderLineWidth: [outlineBorderLineWidth, 1, 1, outlineBorderLineWidth],\n bgColor: headerBackgroundColor,\n frameStyle: {\n borderColor,\n },\n hover: {\n cellBgColor: hoverHeaderBackgroundColor,\n inlineRowBgColor: hoverHeaderInlineBackgroundColor || undefined,\n inlineColumnBgColor: hoverHeaderInlineBackgroundColor || undefined,\n },\n },\n cornerLeftBottomCellStyle: {\n borderColor,\n borderLineWidth: [outlineBorderLineWidth, 0, outlineBorderLineWidth, outlineBorderLineWidth],\n bgColor: headerBackgroundColor,\n frameStyle: {\n borderColor,\n borderLineWidth: [1, 0, outlineBorderLineWidth, outlineBorderLineWidth],\n },\n hover: {\n cellBgColor: hoverHeaderBackgroundColor,\n },\n },\n cornerRightTopCellStyle: {\n borderColor,\n borderLineWidth: [outlineBorderLineWidth, outlineBorderLineWidth, 1, 1],\n frameStyle: {\n borderColor,\n borderLineWidth: 0,\n },\n bgColor: headerBackgroundColor,\n hover: {\n cellBgColor: hoverHeaderBackgroundColor,\n },\n },\n rightFrozenStyle: {\n borderColor,\n bgColor: headerBackgroundColor,\n borderLineWidth: (arg: { row: number }) => {\n return [arg.row === 0 ? outlineBorderLineWidth : 1, outlineBorderLineWidth, 0, 1]\n },\n frameStyle: {\n borderLineWidth: 0,\n },\n hover: {\n borderLineWidth: 0,\n cellBgColor: hoverHeaderBackgroundColor,\n },\n },\n cornerRightBottomCellStyle: {\n borderColor,\n bgColor: headerBackgroundColor,\n borderLineWidth: [1, outlineBorderLineWidth, outlineBorderLineWidth, 1],\n frameStyle: {\n borderColor,\n borderLineWidth: [1, outlineBorderLineWidth, outlineBorderLineWidth, 1],\n },\n hover: {\n cellBgColor: hoverHeaderBackgroundColor,\n },\n },\n\n bottomFrozenStyle: {\n borderColor,\n borderLineWidth: [1, outlineBorderLineWidth, outlineBorderLineWidth, 1],\n bgColor: headerBackgroundColor,\n hover: {\n cellBgColor: hoverHeaderBackgroundColor,\n },\n },\n selectionStyle: {\n cellBgColor: '',\n cellBorderColor: '',\n },\n frameStyle: {\n borderColor,\n cornerRadius: frameCornerRadius,\n borderLineWidth: outlineBorderLineWidth,\n },\n\n axisStyle: {\n leftAxisStyle: {\n cellPaddingLeft: 10,\n },\n bottomAxisStyle: {\n cellPaddingBottom: 4,\n },\n rightAxisStyle: {\n cellPaddingRight: 4,\n },\n },\n scrollStyle: {\n visible: 'scrolling',\n hoverOn: false,\n },\n },\n }\n}\n"],"names":["pivotGridStyle","spec","context","vseed","advancedVSeed","config","chartType","themConfig","onlyCombination","isPivot","isCombination","result","transparent","borderColor","bodyFontColor","headerFontColor","headerBackgroundColor","hoverHeaderBackgroundColor","hoverHeaderInlineBackgroundColor","outlineBorderLineWidth","frameCornerRadius","isNullish","arg","noYAxis","undefined"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/pivotChart/pivotHideIndicatorName.js","sources":["
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/pivotChart/pivotHideIndicatorName.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/pivotChart/pivotHideIndicatorName.ts"],"sourcesContent":["import type { PivotChartSpecPipe } from 'src/types'\n\nexport const pivotHideIndicatorName: PivotChartSpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { datasetReshapeInfo } = advancedVSeed\n\n return {\n ...spec,\n hideIndicatorName: datasetReshapeInfo.length <= 1,\n }\n}\n"],"names":["pivotHideIndicatorName","spec","context","advancedVSeed","datasetReshapeInfo"],"mappings":"AAEO,MAAMA,yBAA6C,CAACC,MAAMC;IAC/D,MAAM,EAAEC,aAAa,EAAE,GAAGD;IAC1B,MAAM,EAAEE,kBAAkB,EAAE,GAAGD;IAE/B,OAAO;QACL,GAAGF,IAAI;QACP,mBAAmBG,mBAAmB,MAAM,IAAI;IAClD;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/pivotChart/pivotIndicators.js","sources":["
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/pivotChart/pivotIndicators.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/pivotChart/pivotIndicators.ts"],"sourcesContent":["import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport { execPipeline } from '../../../../utils'\nimport type {\n Dataset,\n Encoding,\n MeasureGroup,\n PivotChartSpecPipe,\n SpecPipelineContext,\n VChartSpecPipe,\n} from 'src/types'\nimport { unique } from 'remeda'\n\nexport const pivotIndicators =\n (chartPipeline: VChartSpecPipe[]): PivotChartSpecPipe =>\n (spec, context): Partial<PivotChartConstructorOptions> => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo, dataset, encoding } = advancedVSeed\n\n const colorItems = unique(datasetReshapeInfo.flatMap((d) => d.unfoldInfo.colorItems))\n const allMeasureIds = unique(datasetReshapeInfo.flatMap((d) => Object.keys(d.foldInfo.foldMap || {})))\n\n const indicators = datasetReshapeInfo.map((reshapeInfo, index) => {\n const measureGroup = measures?.find((d) => `${d.id}` === reshapeInfo.id) as MeasureGroup\n const subMeasuresId = (measureGroup?.children || []).map((d) => d.id)\n const invalideMeasuresIds = allMeasureIds.filter((id) => !subMeasuresId.includes(id))\n\n const newDataset = dataset[index] as Dataset\n const newDatasetReshapeInfo = [\n {\n ...reshapeInfo,\n unfoldInfo: { ...reshapeInfo.unfoldInfo, colorItems },\n },\n ]\n const newContext: SpecPipelineContext = {\n ...context,\n advancedVSeed: {\n ...advancedVSeed,\n pivotAllDatasetReshapeInfo: datasetReshapeInfo,\n datasetReshapeInfo: newDatasetReshapeInfo,\n encoding: Object.keys(encoding).reduce((res, key) => {\n res[key as keyof Encoding] = encoding[key as keyof Encoding]?.filter((e) => {\n return !invalideMeasuresIds.includes(e)\n }) as string[]\n\n return res\n }, {} as Encoding),\n dataset: newDataset,\n },\n }\n\n const chartSpec = execPipeline(chartPipeline, newContext, {})\n return {\n indicatorKey: `${reshapeInfo.id}`,\n title: measureGroup?.alias,\n cellType: 'chart',\n chartModule: 'vchart',\n chartSpec: chartSpec,\n style: {\n padding: [1, 1, 0, 1],\n },\n }\n })\n\n return {\n ...result,\n indicators: indicators,\n } as Partial<PivotChartConstructorOptions>\n }\n\nexport const pivotIndicatorsAsRow: PivotChartSpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n\n return {\n ...result,\n indicatorsAsCol: false,\n }\n}\n\nexport const pivotIndicatorsAsCol: PivotChartSpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n\n return {\n ...result,\n indicatorsAsCol: true,\n }\n}\n"],"names":["pivotIndicators","chartPipeline","spec","context","result","advancedVSeed","measures","datasetReshapeInfo","dataset","encoding","colorItems","unique","d","allMeasureIds","Object","indicators","reshapeInfo","index","measureGroup","subMeasuresId","invalideMeasuresIds","id","newDataset","newDatasetReshapeInfo","newContext","res","key","e","chartSpec","execPipeline","pivotIndicatorsAsRow","pivotIndicatorsAsCol"],"mappings":";;AAYO,MAAMA,kBACX,CAACC,gBACD,CAACC,MAAMC;QACL,MAAMC,SAAS;YAAE,GAAGF,IAAI;QAAC;QACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;QAC1B,MAAM,EAAEG,QAAQ,EAAEC,kBAAkB,EAAEC,OAAO,EAAEC,QAAQ,EAAE,GAAGJ;QAE5D,MAAMK,aAAaC,OAAOJ,mBAAmB,OAAO,CAAC,CAACK,IAAMA,EAAE,UAAU,CAAC,UAAU;QACnF,MAAMC,gBAAgBF,OAAOJ,mBAAmB,OAAO,CAAC,CAACK,IAAME,OAAO,IAAI,CAACF,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC;QAElG,MAAMG,aAAaR,mBAAmB,GAAG,CAAC,CAACS,aAAaC;YACtD,MAAMC,eAAeZ,UAAU,KAAK,CAACM,IAAM,GAAGA,EAAE,EAAE,EAAE,KAAKI,YAAY,EAAE;YACvE,MAAMG,gBAAiBD,AAAAA,CAAAA,cAAc,YAAY,EAAC,EAAG,GAAG,CAAC,CAACN,IAAMA,EAAE,EAAE;YACpE,MAAMQ,sBAAsBP,cAAc,MAAM,CAAC,CAACQ,KAAO,CAACF,cAAc,QAAQ,CAACE;YAEjF,MAAMC,aAAad,OAAO,CAACS,MAAM;YACjC,MAAMM,wBAAwB;gBAC5B;oBACE,GAAGP,WAAW;oBACd,YAAY;wBAAE,GAAGA,YAAY,UAAU;wBAAEN;oBAAW;gBACtD;aACD;YACD,MAAMc,aAAkC;gBACtC,GAAGrB,OAAO;gBACV,eAAe;oBACb,GAAGE,aAAa;oBAChB,4BAA4BE;oBAC5B,oBAAoBgB;oBACpB,UAAUT,OAAO,IAAI,CAACL,UAAU,MAAM,CAAC,CAACgB,KAAKC;wBAC3CD,GAAG,CAACC,IAAsB,GAAGjB,QAAQ,CAACiB,IAAsB,EAAE,OAAO,CAACC,IAC7D,CAACP,oBAAoB,QAAQ,CAACO;wBAGvC,OAAOF;oBACT,GAAG,CAAC;oBACJ,SAASH;gBACX;YACF;YAEA,MAAMM,YAAYC,aAAa5B,eAAeuB,YAAY,CAAC;YAC3D,OAAO;gBACL,cAAc,GAAGR,YAAY,EAAE,EAAE;gBACjC,OAAOE,cAAc;gBACrB,UAAU;gBACV,aAAa;gBACb,WAAWU;gBACX,OAAO;oBACL,SAAS;wBAAC;wBAAG;wBAAG;wBAAG;qBAAE;gBACvB;YACF;QACF;QAEA,OAAO;YACL,GAAGxB,MAAM;YACT,YAAYW;QACd;IACF;AAEK,MAAMe,uBAA2C,CAAC5B;IACvD,MAAME,SAAS;QAAE,GAAGF,IAAI;IAAC;IAEzB,OAAO;QACL,GAAGE,MAAM;QACT,iBAAiB;IACnB;AACF;AAEO,MAAM2B,uBAA2C,CAAC7B;IACvD,MAAME,SAAS;QAAE,GAAGF,IAAI;IAAC;IAEzB,OAAO;QACL,GAAGE,MAAM;QACT,iBAAiB;IACnB;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/pivotChart/pivotRowDimensions.js","sources":["
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/pivotChart/pivotRowDimensions.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/pivotChart/pivotRowDimensions.ts"],"sourcesContent":["import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { Dimensions, PivotChartSpecPipe } from 'src/types'\n\nexport const pivotRowDimensions: PivotChartSpecPipe = (spec, context) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const dimensions = advancedVSeed.dimensions as Dimensions\n if (!dimensions) {\n return result\n }\n const rowDimensions = dimensions.filter((dim) => dim.encoding === 'row')\n const rows = rowDimensions.map((dim) => ({\n dimensionKey: dim.id,\n title: dim.alias || dim.id,\n }))\n return {\n ...result,\n rows: rows,\n } as Partial<PivotChartConstructorOptions>\n}\n"],"names":["pivotRowDimensions","spec","context","result","advancedVSeed","dimensions","rowDimensions","dim","rows"],"mappings":"AAGO,MAAMA,qBAAyC,CAACC,MAAMC;IAC3D,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAMG,aAAaD,cAAc,UAAU;IAC3C,IAAI,CAACC,YACH,OAAOF;IAET,MAAMG,gBAAgBD,WAAW,MAAM,CAAC,CAACE,MAAQA,AAAiB,UAAjBA,IAAI,QAAQ;IAC7D,MAAMC,OAAOF,cAAc,GAAG,CAAC,CAACC,MAAS;YACvC,cAAcA,IAAI,EAAE;YACpB,OAAOA,IAAI,KAAK,IAAIA,IAAI,EAAE;QAC5B;IACA,OAAO;QACL,GAAGJ,MAAM;QACT,MAAMK;IACR;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/pivotChart/pivotTitle.js","sources":["
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/pivotChart/pivotTitle.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/pivotChart/pivotTitle.ts"],"sourcesContent":["import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { Config, PivotChartSpecPipe } from 'src/types'\n\nexport const pivotTitle: PivotChartSpecPipe = (spec, context) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = (config?.[chartType] as Config['line'])?.pivotGrid ?? {}\n\n if (result.columns && result.columns.length > 0) {\n result.title = {\n text: (spec as unknown as { columns: { title: string }[] }).columns.map((entry) => entry.title).join('/'),\n align: 'center',\n orient: 'top',\n padding: [2, 0, 0, 0],\n textStyle: {\n fontSize: themConfig.titleFontSize ?? 12,\n fill: themConfig.titleFontColor ?? '#000',\n fontWeight: themConfig.titleFontWeight ?? 'bold',\n },\n }\n }\n\n return result\n}\n"],"names":["pivotTitle","spec","context","result","advancedVSeed","config","chartType","themConfig","entry"],"mappings":"AAGO,MAAMA,aAAiC,CAACC,MAAMC;IACnD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,MAAM,EAAEC,SAAS,EAAE,GAAGF;IAC9B,MAAMG,aAAcF,QAAQ,CAACC,UAAU,EAAqB,aAAa,CAAC;IAE1E,IAAIH,OAAO,OAAO,IAAIA,OAAO,OAAO,CAAC,MAAM,GAAG,GAC5CA,OAAO,KAAK,GAAG;QACb,MAAOF,KAAqD,OAAO,CAAC,GAAG,CAAC,CAACO,QAAUA,MAAM,KAAK,EAAE,IAAI,CAAC;QACrG,OAAO;QACP,QAAQ;QACR,SAAS;YAAC;YAAG;YAAG;YAAG;SAAE;QACrB,WAAW;YACT,UAAUD,WAAW,aAAa,IAAI;YACtC,MAAMA,WAAW,cAAc,IAAI;YACnC,YAAYA,WAAW,eAAe,IAAI;QAC5C;IACF;IAGF,OAAOJ;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/region/addRegionPadding.js","sources":["
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/region/addRegionPadding.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/region/addRegionPadding.ts"],"sourcesContent":["import type { IPieChartSpec } from '@visactor/vchart'\nimport type { VChartSpecPipe } from 'src/types'\n\nexport const addRegionPadding: VChartSpecPipe = (spec) => {\n const result = { ...spec } as IPieChartSpec\n\n if (result.region && result.region.length > 0) {\n result.region[0].padding = 10\n }\n\n return result\n}\n"],"names":["addRegionPadding","spec","result"],"mappings":"AAGO,MAAMA,mBAAmC,CAACC;IAC/C,MAAMC,SAAS;QAAE,GAAGD,IAAI;IAAC;IAEzB,IAAIC,OAAO,MAAM,IAAIA,OAAO,MAAM,CAAC,MAAM,GAAG,GAC1CA,OAAO,MAAM,CAAC,EAAE,CAAC,OAAO,GAAG;IAG7B,OAAOA;AACT"}
|
|
@@ -14,7 +14,7 @@ const columnPolynomialRegressionLine = (spec, context)=>{
|
|
|
14
14
|
lineList.forEach((line, lineIndex)=>{
|
|
15
15
|
if (false === line.enable) return;
|
|
16
16
|
const theme = lineTheme.linearRegressionLine ?? {};
|
|
17
|
-
const { color, lineWidth, lineDash, text, textColor, textFontSize, textFontWeight, confidenceIntervalOpacity, confidenceLevel = 0.95, confidenceIntervalVisible = theme.confidenceIntervalVisible } = line;
|
|
17
|
+
const { color, lineWidth, lineDash, text, textColor, textFontSize, textFontWeight, confidenceIntervalOpacity, confidenceLevel = 0.95, shadowBlur, shadowColor, shadowOffsetX, shadowOffsetY, confidenceIntervalVisible = theme.confidenceIntervalVisible } = line;
|
|
18
18
|
const childrenMarks = [];
|
|
19
19
|
result.extensionMark.push({
|
|
20
20
|
type: 'group',
|
|
@@ -95,6 +95,7 @@ const columnPolynomialRegressionLine = (spec, context)=>{
|
|
|
95
95
|
zIndex: 500,
|
|
96
96
|
dataId: spec.data?.id,
|
|
97
97
|
style: {
|
|
98
|
+
stroke: false,
|
|
98
99
|
lineWidth: lineWidth ?? theme.lineWidth,
|
|
99
100
|
lineDash: lineDash ?? theme.lineDash,
|
|
100
101
|
fillOpacity: confidenceIntervalOpacity ?? theme.confidenceIntervalOpacity,
|
|
@@ -115,6 +116,10 @@ const columnPolynomialRegressionLine = (spec, context)=>{
|
|
|
115
116
|
lineWidth: lineWidth ?? theme.lineWidth,
|
|
116
117
|
lineDash: lineDash ?? theme.lineDash,
|
|
117
118
|
stroke: color ?? defaultRegressionLineColor,
|
|
119
|
+
shadowBlur: shadowBlur ?? theme.shadowBlur,
|
|
120
|
+
shadowColor: shadowColor ?? theme.shadowColor,
|
|
121
|
+
shadowOffsetX: shadowOffsetX ?? theme.shadowOffsetX,
|
|
122
|
+
shadowOffsetY: shadowOffsetY ?? theme.shadowOffsetY,
|
|
118
123
|
points: (datum, ctx, opt)=>{
|
|
119
124
|
const parentNode = opt.mark?._product?.parent;
|
|
120
125
|
if (parentNode?.attribute?.data) return parentNode.attribute.data.linePoints;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/regressionLine/columnRegressionLine.js","sources":["../../../../../../../src/pipeline/spec/chart/pipes/regressionLine/columnRegressionLine.ts"],"sourcesContent":["import type { IBarChartSpec, ICartesianSeries, IChart, IVChart } from '@visactor/vchart'\nimport { isNullish } from 'remeda'\nimport { array, clamper, regressionPolynomial } from '@visactor/vutils'\nimport type {\n Datum,\n VChartSpecPipe,\n RegressionLineConfig,\n LinearRegressionLine,\n PolynomialRegressionLine,\n} from 'src/types'\nimport { defaultRegressionLineColor, getAlphaByConfidenceLevel } from './common'\n\nexport const columnPolynomialRegressionLine: VChartSpecPipe = (spec, context): Partial<IBarChartSpec> => {\n const result = { ...spec } as Partial<IBarChartSpec>\n const { advancedVSeed } = context\n const { chartType, regressionLine } = advancedVSeed\n const lineTheme = advancedVSeed.config[chartType as 'scatter']?.regressionLine as RegressionLineConfig\n\n if (!regressionLine || !regressionLine.polynomialRegressionLine) {\n return result\n }\n\n const lineList = array(regressionLine.polynomialRegressionLine)\n\n if (!result.extensionMark) {\n result.extensionMark = []\n }\n\n lineList.forEach((line, lineIndex) => {\n if (line.enable === false) {\n return\n }\n const theme = (lineTheme.linearRegressionLine ?? {}) as LinearRegressionLine\n const {\n color,\n lineWidth,\n lineDash,\n text,\n textColor,\n textFontSize,\n textFontWeight,\n confidenceIntervalOpacity,\n confidenceLevel = 0.95,\n confidenceIntervalVisible = theme.confidenceIntervalVisible,\n } = line as LinearRegressionLine\n\n const childrenMarks: any[] = []\n\n ;(result.extensionMark as any[]).push({\n type: 'group',\n interactive: false,\n zIndex: 500,\n name: `polynomialRegressionLine-${lineIndex}`,\n dataId: (spec.data as any)?.id,\n style: {\n data: (datum: any, ctx: any) => {\n const vchart = ctx.vchart as IVChart\n const chart = vchart.getChart() as IChart\n const s = chart.getAllSeries()[0] as ICartesianSeries\n\n if (s) {\n const rect = s.getRegion().getLayoutRect()\n\n if (rect.width === 0 || rect.height === 0) {\n return null\n }\n\n const yClamper = clamper(0, 0 + rect.height)\n const data = s.getViewData()?.latestData as Datum[]\n const fieldX = s.fieldX?.[0]\n const fieldY = s.fieldY?.[0]\n const xValues = s.getRawDataStatisticsByField(fieldX).values as string[]\n const degree = (line as PolynomialRegressionLine).degree ?? 2\n // 多项式拟合需要至少 degree + 1 个点\n const minPoints = degree + 1\n\n if (!fieldX || !fieldY || !data || data.length < minPoints || xValues.length < minPoints) {\n return null\n }\n\n // eslint-disable-next-line @typescript-eslint/unbound-method\n const { confidenceInterval, evaluateGrid } = regressionPolynomial(\n xValues.map((xVal, index: number) => {\n const filteredData = data.filter((d) => d[fieldX] === xVal)\n\n return {\n x: index,\n y: Math.max(...filteredData.map((d) => d[fieldY] as number)),\n }\n }),\n undefined,\n undefined,\n {\n degree: (line as PolynomialRegressionLine).degree ?? 2,\n alpha: getAlphaByConfidenceLevel(confidenceLevel),\n },\n )\n const N = xValues.length\n const xAxisHelper = s.getXAxisHelper()\n const halfBandWidth = xAxisHelper ? xAxisHelper.getBandwidth!(0) / 2 : 0\n const lineData = evaluateGrid(N)\n const linePoints = lineData.map((datum: Datum, index: number) => {\n const d = { [fieldX]: xValues[index], [fieldY]: datum.y }\n return {\n x: s.dataToPositionX(d)! + halfBandWidth,\n y: yClamper(s.dataToPositionY(d)!),\n }\n })\n const result: {\n linePoints: { x: number; y: number }[]\n areaPoints?: { x: number; y: number; y1: number }[]\n color: string\n } = {\n linePoints,\n color: s.getOption().globalScale.getScale('color')?.scale(s.getSeriesKeys()[0]),\n }\n\n if (confidenceIntervalVisible) {\n const intervalData = confidenceInterval(N)\n\n result.areaPoints = intervalData.map((datum: Datum, index: number) => {\n const d = { [fieldX]: xValues[index], [fieldY]: datum.lower }\n return {\n x: s.dataToPositionX(d)! + halfBandWidth,\n y: yClamper(s.dataToPositionY(d)!),\n y1: yClamper(s.dataToPositionY({ [fieldY]: datum.upper })!),\n }\n })\n }\n\n return result\n }\n return null\n },\n },\n children: childrenMarks,\n })\n\n if (confidenceIntervalVisible) {\n childrenMarks.push({\n type: 'area',\n interactive: false,\n zIndex: 500,\n dataId: (spec.data as any)?.id,\n style: {\n lineWidth: lineWidth ?? theme.lineWidth,\n lineDash: lineDash ?? theme.lineDash,\n fillOpacity: confidenceIntervalOpacity ?? theme.confidenceIntervalOpacity,\n fill: color ?? defaultRegressionLineColor,\n points: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode?.attribute?.data) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return parentNode.attribute.data.areaPoints\n }\n\n return []\n },\n },\n })\n }\n\n childrenMarks.push({\n type: 'line',\n interactive: false,\n zIndex: 500,\n dataId: (spec.data as any)?.id,\n style: {\n lineWidth: lineWidth ?? theme.lineWidth,\n lineDash: lineDash ?? theme.lineDash,\n stroke: color ?? defaultRegressionLineColor,\n points: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode?.attribute?.data) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return parentNode.attribute.data.linePoints\n }\n\n return []\n },\n },\n })\n\n if (!isNullish(text)) {\n childrenMarks.push({\n type: 'text',\n interactive: false,\n zIndex: 500,\n dataId: (spec.data as any)?.id,\n dataKey: () => {\n return `polynomialRegressionLine-label-${lineIndex}`\n },\n style: {\n textAlign: 'end',\n fill: textColor ?? theme.textColor,\n fontSize: textFontSize ?? theme.textFontSize,\n fontWeight: textFontWeight ?? theme.textFontWeight,\n text: text,\n x: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode?.attribute?.data?.linePoints) {\n const points = parentNode.attribute.data.linePoints\n return points[points.length - 1]?.x\n }\n\n return undefined\n },\n y: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode?.attribute?.data?.linePoints) {\n const points = parentNode.attribute.data.linePoints\n return points[points.length - 1]?.y\n }\n\n return undefined\n },\n },\n })\n }\n })\n\n return result\n}\n"],"names":["columnPolynomialRegressionLine","spec","context","result","advancedVSeed","chartType","regressionLine","lineTheme","lineList","array","line","lineIndex","theme","color","lineWidth","lineDash","text","textColor","textFontSize","textFontWeight","confidenceIntervalOpacity","confidenceLevel","confidenceIntervalVisible","childrenMarks","datum","ctx","vchart","chart","s","rect","yClamper","clamper","data","fieldX","fieldY","xValues","degree","minPoints","confidenceInterval","evaluateGrid","regressionPolynomial","xVal","index","filteredData","d","Math","undefined","getAlphaByConfidenceLevel","N","xAxisHelper","halfBandWidth","lineData","linePoints","intervalData","defaultRegressionLineColor","opt","parentNode","isNullish","points"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/regressionLine/columnRegressionLine.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/regressionLine/columnRegressionLine.ts"],"sourcesContent":["import type { IBarChartSpec, ICartesianSeries, IChart, IVChart } from '@visactor/vchart'\nimport { isNullish } from 'remeda'\nimport { array, clamper, regressionPolynomial } from '@visactor/vutils'\nimport type {\n Datum,\n VChartSpecPipe,\n RegressionLineConfig,\n LinearRegressionLine,\n PolynomialRegressionLine,\n} from 'src/types'\nimport { defaultRegressionLineColor, getAlphaByConfidenceLevel } from './common'\n\nexport const columnPolynomialRegressionLine: VChartSpecPipe = (spec, context): Partial<IBarChartSpec> => {\n const result = { ...spec } as Partial<IBarChartSpec>\n const { advancedVSeed } = context\n const { chartType, regressionLine } = advancedVSeed\n const lineTheme = advancedVSeed.config[chartType as 'scatter']?.regressionLine as RegressionLineConfig\n\n if (!regressionLine || !regressionLine.polynomialRegressionLine) {\n return result\n }\n\n const lineList = array(regressionLine.polynomialRegressionLine)\n\n if (!result.extensionMark) {\n result.extensionMark = []\n }\n\n lineList.forEach((line, lineIndex) => {\n if (line.enable === false) {\n return\n }\n const theme = (lineTheme.linearRegressionLine ?? {}) as LinearRegressionLine\n const {\n color,\n lineWidth,\n lineDash,\n text,\n textColor,\n textFontSize,\n textFontWeight,\n confidenceIntervalOpacity,\n confidenceLevel = 0.95,\n shadowBlur,\n shadowColor,\n shadowOffsetX,\n shadowOffsetY,\n confidenceIntervalVisible = theme.confidenceIntervalVisible,\n } = line as LinearRegressionLine\n\n const childrenMarks: any[] = []\n\n ;(result.extensionMark as any[]).push({\n type: 'group',\n interactive: false,\n zIndex: 500,\n name: `polynomialRegressionLine-${lineIndex}`,\n dataId: (spec.data as any)?.id,\n style: {\n data: (datum: any, ctx: any) => {\n const vchart = ctx.vchart as IVChart\n const chart = vchart.getChart() as IChart\n const s = chart.getAllSeries()[0] as ICartesianSeries\n\n if (s) {\n const rect = s.getRegion().getLayoutRect()\n\n if (rect.width === 0 || rect.height === 0) {\n return null\n }\n\n const yClamper = clamper(0, 0 + rect.height)\n const data = s.getViewData()?.latestData as Datum[]\n const fieldX = s.fieldX?.[0]\n const fieldY = s.fieldY?.[0]\n const xValues = s.getRawDataStatisticsByField(fieldX).values as string[]\n const degree = (line as PolynomialRegressionLine).degree ?? 2\n // 多项式拟合需要至少 degree + 1 个点\n const minPoints = degree + 1\n\n if (!fieldX || !fieldY || !data || data.length < minPoints || xValues.length < minPoints) {\n return null\n }\n\n const { confidenceInterval, evaluateGrid } = regressionPolynomial(\n xValues.map((xVal, index: number) => {\n const filteredData = data.filter((d) => d[fieldX] === xVal)\n\n return {\n x: index,\n y: Math.max(...filteredData.map((d) => d[fieldY] as number)),\n }\n }),\n undefined,\n undefined,\n {\n degree: (line as PolynomialRegressionLine).degree ?? 2,\n alpha: getAlphaByConfidenceLevel(confidenceLevel),\n },\n )\n const N = xValues.length\n const xAxisHelper = s.getXAxisHelper()\n const halfBandWidth = xAxisHelper ? xAxisHelper.getBandwidth!(0) / 2 : 0\n const lineData = evaluateGrid(N)\n const linePoints = lineData.map((datum: Datum, index: number) => {\n const d = { [fieldX]: xValues[index], [fieldY]: datum.y }\n return {\n x: s.dataToPositionX(d)! + halfBandWidth,\n y: yClamper(s.dataToPositionY(d)!),\n }\n })\n const result: {\n linePoints: { x: number; y: number }[]\n areaPoints?: { x: number; y: number; y1: number }[]\n color: string\n } = {\n linePoints,\n color: s.getOption().globalScale.getScale('color')?.scale(s.getSeriesKeys()[0]),\n }\n\n if (confidenceIntervalVisible) {\n const intervalData = confidenceInterval(N)\n\n result.areaPoints = intervalData.map((datum: Datum, index: number) => {\n const d = { [fieldX]: xValues[index], [fieldY]: datum.lower }\n return {\n x: s.dataToPositionX(d)! + halfBandWidth,\n y: yClamper(s.dataToPositionY(d)!),\n y1: yClamper(s.dataToPositionY({ [fieldY]: datum.upper })!),\n }\n })\n }\n\n return result\n }\n return null\n },\n },\n children: childrenMarks,\n })\n\n if (confidenceIntervalVisible) {\n childrenMarks.push({\n type: 'area',\n interactive: false,\n zIndex: 500,\n dataId: (spec.data as any)?.id,\n style: {\n stroke: false,\n lineWidth: lineWidth ?? theme.lineWidth,\n lineDash: lineDash ?? theme.lineDash,\n fillOpacity: confidenceIntervalOpacity ?? theme.confidenceIntervalOpacity,\n fill: color ?? defaultRegressionLineColor,\n points: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode?.attribute?.data) {\n return parentNode.attribute.data.areaPoints\n }\n\n return []\n },\n },\n })\n }\n\n childrenMarks.push({\n type: 'line',\n interactive: false,\n zIndex: 500,\n dataId: (spec.data as any)?.id,\n style: {\n lineWidth: lineWidth ?? theme.lineWidth,\n lineDash: lineDash ?? theme.lineDash,\n stroke: color ?? defaultRegressionLineColor,\n shadowBlur: shadowBlur ?? theme.shadowBlur,\n shadowColor: shadowColor ?? theme.shadowColor,\n shadowOffsetX: shadowOffsetX ?? theme.shadowOffsetX,\n shadowOffsetY: shadowOffsetY ?? theme.shadowOffsetY,\n points: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode?.attribute?.data) {\n return parentNode.attribute.data.linePoints\n }\n\n return []\n },\n },\n })\n\n if (!isNullish(text)) {\n childrenMarks.push({\n type: 'text',\n interactive: false,\n zIndex: 500,\n dataId: (spec.data as any)?.id,\n dataKey: () => {\n return `polynomialRegressionLine-label-${lineIndex}`\n },\n style: {\n textAlign: 'end',\n fill: textColor ?? theme.textColor,\n fontSize: textFontSize ?? theme.textFontSize,\n fontWeight: textFontWeight ?? theme.textFontWeight,\n text: text,\n x: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode?.attribute?.data?.linePoints) {\n const points = parentNode.attribute.data.linePoints\n return points[points.length - 1]?.x\n }\n\n return undefined\n },\n y: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode?.attribute?.data?.linePoints) {\n const points = parentNode.attribute.data.linePoints\n return points[points.length - 1]?.y\n }\n\n return undefined\n },\n },\n })\n }\n })\n\n return result\n}\n"],"names":["columnPolynomialRegressionLine","spec","context","result","advancedVSeed","chartType","regressionLine","lineTheme","lineList","array","line","lineIndex","theme","color","lineWidth","lineDash","text","textColor","textFontSize","textFontWeight","confidenceIntervalOpacity","confidenceLevel","shadowBlur","shadowColor","shadowOffsetX","shadowOffsetY","confidenceIntervalVisible","childrenMarks","datum","ctx","vchart","chart","s","rect","yClamper","clamper","data","fieldX","fieldY","xValues","degree","minPoints","confidenceInterval","evaluateGrid","regressionPolynomial","xVal","index","filteredData","d","Math","undefined","getAlphaByConfidenceLevel","N","xAxisHelper","halfBandWidth","lineData","linePoints","intervalData","defaultRegressionLineColor","opt","parentNode","isNullish","points"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/regressionLine/common.js","sources":["
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/regressionLine/common.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/regressionLine/common.ts"],"sourcesContent":["import type { Datum } from '@visactor/vchart'\n\nexport const defaultRegressionLineColor = (datum: Datum, ctx: any, opt: any): string | undefined => {\n const parentNode = opt.mark?._product?.parent\n if (parentNode?.attribute?.data) {\n return parentNode.attribute.data.color\n }\n return undefined\n}\n\nexport const defaultRegressionLineLabelX = (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode?.attribute?.data?.linePoints) {\n const points = parentNode.attribute.data.linePoints\n return points[points.length - 1]?.x\n }\n\n return undefined\n}\n\nexport const defaultRegressionLineLabelY = (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode?.attribute?.data?.linePoints) {\n const points = parentNode.attribute.data.linePoints\n return points[points.length - 1]?.y\n }\n\n return undefined\n}\n\nexport const getAlphaByConfidenceLevel = (confidenceLevel: number = 0.95) => {\n return 1 - Math.max(Math.min(1, confidenceLevel), 0)\n}\n"],"names":["defaultRegressionLineColor","datum","ctx","opt","parentNode","defaultRegressionLineLabelX","points","defaultRegressionLineLabelY","getAlphaByConfidenceLevel","confidenceLevel","Math"],"mappings":"AAEO,MAAMA,6BAA6B,CAACC,OAAcC,KAAUC;IACjE,MAAMC,aAAaD,IAAI,IAAI,EAAE,UAAU;IACvC,IAAIC,YAAY,WAAW,MACzB,OAAOA,WAAW,SAAS,CAAC,IAAI,CAAC,KAAK;AAG1C;AAEO,MAAMC,8BAA8B,CAACJ,OAAYC,KAAUC;IAChE,MAAMC,aAAaD,IAAI,IAAI,EAAE,UAAU;IAEvC,IAAIC,YAAY,WAAW,MAAM,YAAY;QAC3C,MAAME,SAASF,WAAW,SAAS,CAAC,IAAI,CAAC,UAAU;QACnD,OAAOE,MAAM,CAACA,OAAO,MAAM,GAAG,EAAE,EAAE;IACpC;AAGF;AAEO,MAAMC,8BAA8B,CAACN,OAAYC,KAAUC;IAChE,MAAMC,aAAaD,IAAI,IAAI,EAAE,UAAU;IAEvC,IAAIC,YAAY,WAAW,MAAM,YAAY;QAC3C,MAAME,SAASF,WAAW,SAAS,CAAC,IAAI,CAAC,UAAU;QACnD,OAAOE,MAAM,CAACA,OAAO,MAAM,GAAG,EAAE,EAAE;IACpC;AAGF;AAEO,MAAME,4BAA4B,CAACC,kBAA0B,IAAI,GAC/D,IAAIC,KAAK,GAAG,CAACA,KAAK,GAAG,CAAC,GAAGD,kBAAkB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.js","sources":["../../../../../../../src/pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.ts"],"sourcesContent":["import type { ICartesianSeries, IChart, IHistogramChartSpec, IVChart } from '@visactor/vchart'\nimport { isNullish, uniqueBy } from 'remeda'\nimport { ecdf, array, isArray } from '@visactor/vutils'\nimport type { Datum, Dimension, VChartSpecPipe, Encoding, RegressionLineConfig, EcdfRegressionLine } from 'src/types'\nimport { defaultRegressionLineColor, defaultRegressionLineLabelX, defaultRegressionLineLabelY } from './common'\n\nexport const ecdfRegressionLine: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as IHistogramChartSpec\n const { advancedVSeed, vseed } = context\n const { chartType, encoding = {} as Encoding, dimensions, regressionLine } = advancedVSeed\n const { dataset } = vseed\n const lineTheme = advancedVSeed.config[chartType as 'histogram']?.regressionLine as RegressionLineConfig\n\n if (!regressionLine || !regressionLine.ecdfRegressionLine) {\n return result\n }\n\n const rowColumnFields = uniqueBy(\n dimensions.filter((dim: Dimension) => dim.encoding === 'row' || dim.encoding === 'column'),\n (item: Dimension) => item.id,\n )\n\n const lineList = array(regressionLine.ecdfRegressionLine).filter((ecdfLine) => ecdfLine.enable !== false)\n\n if (!result.extensionMark) {\n result.extensionMark = []\n }\n\n lineList.forEach((line, lineIndex) => {\n if (line.enable === false) {\n return\n }\n const theme = (lineTheme?.ecdfRegressionLine ?? {}) as EcdfRegressionLine\n const { color, lineWidth, lineDash, text, textColor, textFontSize, textFontWeight } = line as EcdfRegressionLine\n\n const childrenMarks: any[] = []\n\n ;(result.extensionMark as any[]).push({\n type: 'group',\n interactive: false,\n zIndex: 500,\n name: `ecdfRegressionLine-${lineIndex}`,\n dataId: (spec.data as any)?.id,\n style: {\n data: (datum: any, ctx: any) => {\n const vchart = ctx.vchart as IVChart\n const chart = vchart.getChart() as IChart\n const series = chart.getAllSeries().filter((s: any) => s.type === 'bar')\n\n // 直方图使用的是bar系列\n if (series && series.length) {\n const s = series[0] as ICartesianSeries\n\n const fieldX = s.fieldX?.[0]\n const scaleY = s.getYAxisHelper().getScale?.(0)\n const viewData = s.getViewData()?.latestData\n\n if (!dataset || !dataset.length || !viewData || !viewData.length || !scaleY) {\n return null\n }\n const simpleData = dataset\n .filter((entry: Datum) => {\n return rowColumnFields.length\n ? rowColumnFields.every((dim: Dimension) => {\n return entry[dim.id] === viewData[0][dim.id]\n })\n : true\n })\n .map((d: Datum) => +(d as any)[encoding.value?.[0] as string])\n const res = ecdf(simpleData)\n const N = Math.max(3, Math.floor(simpleData.length / 4))\n const lineData = res.evaluateGrid(N)\n const yRange = scaleY.range()\n const y0 = yRange[0]\n const y1 = yRange[yRange.length - 1]\n const scaleR = (e: number) => {\n return y0 + (y1 - y0) * e\n }\n\n const linePoints = lineData.map((ld: Datum) => {\n const d = { [fieldX]: ld.x }\n return {\n x: s.dataToPositionX(d)!,\n y: scaleR(ld.y as number),\n }\n })\n\n return {\n linePoints,\n color: color ?? s.getOption().globalScale.getScale('color')?.scale(s.getSeriesKeys()[0]),\n }\n }\n return null\n },\n },\n children: childrenMarks,\n })\n\n childrenMarks.push({\n type: 'line',\n interactive: false,\n zIndex: 500,\n dataId: (spec.data as any)?.id,\n style: {\n lineWidth: lineWidth ?? theme.lineWidth,\n lineDash: lineDash ?? theme.lineDash,\n stroke: color ?? defaultRegressionLineColor,\n points: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode?.attribute?.data) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return parentNode.attribute.data.linePoints\n }\n\n return []\n },\n },\n })\n\n if (!isNullish(text)) {\n childrenMarks.push({\n type: 'text',\n interactive: false,\n zIndex: 500,\n dataId: (spec.data as any)?.id,\n dataKey: () => {\n return `ecdfRegressionLine-label-${lineIndex}`\n },\n style: {\n textAlign: 'end',\n fill: textColor ?? theme.textColor,\n fontSize: textFontSize ?? theme.textFontSize,\n fontWeight: textFontWeight ?? theme.textFontWeight,\n text: text,\n x: defaultRegressionLineLabelX,\n y: defaultRegressionLineLabelY,\n },\n })\n }\n })\n\n // add percent axis of ecdf\n const leftAxis = result.axes?.find((v) => v.orient === 'left')\n if (leftAxis && lineList.length) {\n result.axes?.push({\n visible: true,\n orient: 'right',\n type: 'linear',\n base: 10,\n min: 0,\n max: 1,\n domainLine: {\n ...leftAxis.domainLine,\n },\n grid: {\n visible: false,\n },\n tick: {\n ...leftAxis.tick,\n },\n title: {\n ...leftAxis.title,\n visible: false,\n },\n label: {\n ...leftAxis.label,\n visible: true,\n formatMethod: (v) => {\n const text = isArray(v) ? v[0] : v\n return `${(+text * 100).toFixed(1)}%`\n },\n },\n })\n }\n\n return result\n}\n"],"names":["ecdfRegressionLine","spec","context","result","advancedVSeed","vseed","chartType","encoding","dimensions","regressionLine","dataset","lineTheme","rowColumnFields","uniqueBy","dim","item","lineList","array","ecdfLine","line","lineIndex","theme","color","lineWidth","lineDash","text","textColor","textFontSize","textFontWeight","childrenMarks","datum","ctx","vchart","chart","series","s","fieldX","scaleY","viewData","simpleData","entry","d","res","ecdf","N","Math","lineData","yRange","y0","y1","scaleR","e","linePoints","ld","defaultRegressionLineColor","opt","parentNode","isNullish","defaultRegressionLineLabelX","defaultRegressionLineLabelY","leftAxis","v","isArray"],"mappings":";;;AAMO,MAAMA,qBAAqC,CAACC,MAAMC;IACvD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAEC,KAAK,EAAE,GAAGH;IACjC,MAAM,EAAEI,SAAS,EAAEC,WAAW,CAAC,CAAa,EAAEC,UAAU,EAAEC,cAAc,EAAE,GAAGL;IAC7E,MAAM,EAAEM,OAAO,EAAE,GAAGL;IACpB,MAAMM,YAAYP,cAAc,MAAM,CAACE,UAAyB,EAAE;IAElE,IAAI,CAACG,kBAAkB,CAACA,eAAe,kBAAkB,EACvD,OAAON;IAGT,MAAMS,kBAAkBC,SACtBL,WAAW,MAAM,CAAC,CAACM,MAAmBA,AAAiB,UAAjBA,IAAI,QAAQ,IAAcA,AAAiB,aAAjBA,IAAI,QAAQ,GAC5E,CAACC,OAAoBA,KAAK,EAAE;IAG9B,MAAMC,WAAWC,MAAMR,eAAe,kBAAkB,EAAE,MAAM,CAAC,CAACS,WAAaA,AAAoB,UAApBA,SAAS,MAAM;IAE9F,IAAI,CAACf,OAAO,aAAa,EACvBA,OAAO,aAAa,GAAG,EAAE;IAG3Ba,SAAS,OAAO,CAAC,CAACG,MAAMC;QACtB,IAAID,AAAgB,UAAhBA,KAAK,MAAM,EACb;QAEF,MAAME,QAASV,WAAW,sBAAsB,CAAC;QACjD,MAAM,EAAEW,KAAK,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,SAAS,EAAEC,YAAY,EAAEC,cAAc,EAAE,GAAGT;QAEtF,MAAMU,gBAAuB,EAAE;QAE7B1B,OAAO,aAAa,CAAW,IAAI,CAAC;YACpC,MAAM;YACN,aAAa;YACb,QAAQ;YACR,MAAM,CAAC,mBAAmB,EAAEiB,WAAW;YACvC,QAASnB,KAAK,IAAI,EAAU;YAC5B,OAAO;gBACL,MAAM,CAAC6B,OAAYC;oBACjB,MAAMC,SAASD,IAAI,MAAM;oBACzB,MAAME,QAAQD,OAAO,QAAQ;oBAC7B,MAAME,SAASD,MAAM,YAAY,GAAG,MAAM,CAAC,CAACE,IAAWA,AAAW,UAAXA,EAAE,IAAI;oBAG7D,IAAID,UAAUA,OAAO,MAAM,EAAE;wBAC3B,MAAMC,IAAID,MAAM,CAAC,EAAE;wBAEnB,MAAME,SAASD,EAAE,MAAM,EAAE,CAAC,EAAE;wBAC5B,MAAME,SAASF,EAAE,cAAc,GAAG,QAAQ,GAAG;wBAC7C,MAAMG,WAAWH,EAAE,WAAW,IAAI;wBAElC,IAAI,CAACzB,WAAW,CAACA,QAAQ,MAAM,IAAI,CAAC4B,YAAY,CAACA,SAAS,MAAM,IAAI,CAACD,QACnE,OAAO;wBAET,MAAME,aAAa7B,QAChB,MAAM,CAAC,CAAC8B,QACA5B,gBAAgB,MAAM,GACzBA,gBAAgB,KAAK,CAAC,CAACE,MACd0B,KAAK,CAAC1B,IAAI,EAAE,CAAC,KAAKwB,QAAQ,CAAC,EAAE,CAACxB,IAAI,EAAE,CAAC,IAE9C,MAEL,GAAG,CAAC,CAAC2B,IAAa,CAAEA,CAAS,CAAClC,SAAS,KAAK,EAAE,CAAC,EAAE,CAAW;wBAC/D,MAAMmC,MAAMC,KAAKJ;wBACjB,MAAMK,IAAIC,KAAK,GAAG,CAAC,GAAGA,KAAK,KAAK,CAACN,WAAW,MAAM,GAAG;wBACrD,MAAMO,WAAWJ,IAAI,YAAY,CAACE;wBAClC,MAAMG,SAASV,OAAO,KAAK;wBAC3B,MAAMW,KAAKD,MAAM,CAAC,EAAE;wBACpB,MAAME,KAAKF,MAAM,CAACA,OAAO,MAAM,GAAG,EAAE;wBACpC,MAAMG,SAAS,CAACC,IACPH,KAAMC,AAAAA,CAAAA,KAAKD,EAAC,IAAKG;wBAG1B,MAAMC,aAAaN,SAAS,GAAG,CAAC,CAACO;4BAC/B,MAAMZ,IAAI;gCAAE,CAACL,OAAO,EAAEiB,GAAG,CAAC;4BAAC;4BAC3B,OAAO;gCACL,GAAGlB,EAAE,eAAe,CAACM;gCACrB,GAAGS,OAAOG,GAAG,CAAC;4BAChB;wBACF;wBAEA,OAAO;4BACLD;4BACA,OAAO9B,SAASa,EAAE,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,UAAU,MAAMA,EAAE,aAAa,EAAE,CAAC,EAAE;wBACzF;oBACF;oBACA,OAAO;gBACT;YACF;YACA,UAAUN;QACZ;QAEAA,cAAc,IAAI,CAAC;YACjB,MAAM;YACN,aAAa;YACb,QAAQ;YACR,QAAS5B,KAAK,IAAI,EAAU;YAC5B,OAAO;gBACL,WAAWsB,aAAaF,MAAM,SAAS;gBACvC,UAAUG,YAAYH,MAAM,QAAQ;gBACpC,QAAQC,SAASgC;gBACjB,QAAQ,CAACxB,OAAYC,KAAUwB;oBAC7B,MAAMC,aAAaD,IAAI,IAAI,EAAE,UAAU;oBAEvC,IAAIC,YAAY,WAAW,MAEzB,OAAOA,WAAW,SAAS,CAAC,IAAI,CAAC,UAAU;oBAG7C,OAAO,EAAE;gBACX;YACF;QACF;QAEA,IAAI,CAACC,UAAUhC,OACbI,cAAc,IAAI,CAAC;YACjB,MAAM;YACN,aAAa;YACb,QAAQ;YACR,QAAS5B,KAAK,IAAI,EAAU;YAC5B,SAAS,IACA,CAAC,yBAAyB,EAAEmB,WAAW;YAEhD,OAAO;gBACL,WAAW;gBACX,MAAMM,aAAaL,MAAM,SAAS;gBAClC,UAAUM,gBAAgBN,MAAM,YAAY;gBAC5C,YAAYO,kBAAkBP,MAAM,cAAc;gBAClD,MAAMI;gBACN,GAAGiC;gBACH,GAAGC;YACL;QACF;IAEJ;IAGA,MAAMC,WAAWzD,OAAO,IAAI,EAAE,KAAK,CAAC0D,IAAMA,AAAa,WAAbA,EAAE,MAAM;IAClD,IAAID,YAAY5C,SAAS,MAAM,EAC7Bb,OAAO,IAAI,EAAE,KAAK;QAChB,SAAS;QACT,QAAQ;QACR,MAAM;QACN,MAAM;QACN,KAAK;QACL,KAAK;QACL,YAAY;YACV,GAAGyD,SAAS,UAAU;QACxB;QACA,MAAM;YACJ,SAAS;QACX;QACA,MAAM;YACJ,GAAGA,SAAS,IAAI;QAClB;QACA,OAAO;YACL,GAAGA,SAAS,KAAK;YACjB,SAAS;QACX;QACA,OAAO;YACL,GAAGA,SAAS,KAAK;YACjB,SAAS;YACT,cAAc,CAACC;gBACb,MAAMpC,OAAOqC,QAAQD,KAAKA,CAAC,CAAC,EAAE,GAAGA;gBACjC,OAAO,GAAI,CAAQ,MAAPpC,IAAS,EAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YACvC;QACF;IACF;IAGF,OAAOtB;AACT"}
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/regressionLine/ecdfRegressionLine.ts"],"sourcesContent":["import type { ICartesianSeries, IChart, IHistogramChartSpec, IVChart } from '@visactor/vchart'\nimport { isNullish, uniqueBy } from 'remeda'\nimport { ecdf, array, isArray } from '@visactor/vutils'\nimport type { Datum, Dimension, VChartSpecPipe, Encoding, RegressionLineConfig, EcdfRegressionLine } from 'src/types'\nimport { defaultRegressionLineColor, defaultRegressionLineLabelX, defaultRegressionLineLabelY } from './common'\n\nexport const ecdfRegressionLine: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as IHistogramChartSpec\n const { advancedVSeed, vseed } = context\n const { chartType, encoding = {} as Encoding, dimensions, regressionLine } = advancedVSeed\n const { dataset } = vseed\n const lineTheme = advancedVSeed.config[chartType as 'histogram']?.regressionLine as RegressionLineConfig\n\n if (!regressionLine || !regressionLine.ecdfRegressionLine) {\n return result\n }\n\n const rowColumnFields = uniqueBy(\n dimensions.filter((dim: Dimension) => dim.encoding === 'row' || dim.encoding === 'column'),\n (item: Dimension) => item.id,\n )\n\n const lineList = array(regressionLine.ecdfRegressionLine).filter((ecdfLine) => ecdfLine.enable !== false)\n\n if (!result.extensionMark) {\n result.extensionMark = []\n }\n\n lineList.forEach((line, lineIndex) => {\n if (line.enable === false) {\n return\n }\n const theme = (lineTheme?.ecdfRegressionLine ?? {}) as EcdfRegressionLine\n const { color, lineWidth, lineDash, text, textColor, textFontSize, textFontWeight } = line as EcdfRegressionLine\n\n const childrenMarks: any[] = []\n\n ;(result.extensionMark as any[]).push({\n type: 'group',\n interactive: false,\n zIndex: 500,\n name: `ecdfRegressionLine-${lineIndex}`,\n dataId: (spec.data as any)?.id,\n style: {\n data: (datum: any, ctx: any) => {\n const vchart = ctx.vchart as IVChart\n const chart = vchart.getChart() as IChart\n const series = chart.getAllSeries().filter((s: any) => s.type === 'bar')\n\n // 直方图使用的是bar系列\n if (series && series.length) {\n const s = series[0] as ICartesianSeries\n\n const fieldX = s.fieldX?.[0]\n const scaleY = s.getYAxisHelper().getScale?.(0)\n const viewData = s.getViewData()?.latestData\n\n if (!dataset || !dataset.length || !viewData || !viewData.length || !scaleY) {\n return null\n }\n const simpleData = dataset\n .filter((entry: Datum) => {\n return rowColumnFields.length\n ? rowColumnFields.every((dim: Dimension) => {\n return entry[dim.id] === viewData[0][dim.id]\n })\n : true\n })\n .map((d: Datum) => +(d as any)[encoding.value?.[0] as string])\n const res = ecdf(simpleData)\n const N = Math.max(3, Math.floor(simpleData.length / 4))\n const lineData = res.evaluateGrid(N)\n const yRange = scaleY.range()\n const y0 = yRange[0]\n const y1 = yRange[yRange.length - 1]\n const scaleR = (e: number) => {\n return y0 + (y1 - y0) * e\n }\n\n const linePoints = lineData.map((ld: Datum) => {\n const d = { [fieldX]: ld.x }\n return {\n x: s.dataToPositionX(d)!,\n y: scaleR(ld.y as number),\n }\n })\n\n return {\n linePoints,\n color: color ?? s.getOption().globalScale.getScale('color')?.scale(s.getSeriesKeys()[0]),\n }\n }\n return null\n },\n },\n children: childrenMarks,\n })\n\n childrenMarks.push({\n type: 'line',\n interactive: false,\n zIndex: 500,\n dataId: (spec.data as any)?.id,\n style: {\n lineWidth: lineWidth ?? theme.lineWidth,\n lineDash: lineDash ?? theme.lineDash,\n stroke: color ?? defaultRegressionLineColor,\n points: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode?.attribute?.data) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return parentNode.attribute.data.linePoints\n }\n\n return []\n },\n },\n })\n\n if (!isNullish(text)) {\n childrenMarks.push({\n type: 'text',\n interactive: false,\n zIndex: 500,\n dataId: (spec.data as any)?.id,\n dataKey: () => {\n return `ecdfRegressionLine-label-${lineIndex}`\n },\n style: {\n textAlign: 'end',\n fill: textColor ?? theme.textColor,\n fontSize: textFontSize ?? theme.textFontSize,\n fontWeight: textFontWeight ?? theme.textFontWeight,\n text: text,\n x: defaultRegressionLineLabelX,\n y: defaultRegressionLineLabelY,\n },\n })\n }\n })\n\n // add percent axis of ecdf\n const leftAxis = result.axes?.find((v) => v.orient === 'left')\n if (leftAxis && lineList.length) {\n result.axes?.push({\n visible: true,\n orient: 'right',\n type: 'linear',\n base: 10,\n min: 0,\n max: 1,\n domainLine: {\n ...leftAxis.domainLine,\n },\n grid: {\n visible: false,\n },\n tick: {\n ...leftAxis.tick,\n },\n title: {\n ...leftAxis.title,\n visible: false,\n },\n label: {\n ...leftAxis.label,\n visible: true,\n formatMethod: (v) => {\n const text = isArray(v) ? v[0] : v\n return `${(+text * 100).toFixed(1)}%`\n },\n },\n })\n }\n\n return result\n}\n"],"names":["ecdfRegressionLine","spec","context","result","advancedVSeed","vseed","chartType","encoding","dimensions","regressionLine","dataset","lineTheme","rowColumnFields","uniqueBy","dim","item","lineList","array","ecdfLine","line","lineIndex","theme","color","lineWidth","lineDash","text","textColor","textFontSize","textFontWeight","childrenMarks","datum","ctx","vchart","chart","series","s","fieldX","scaleY","viewData","simpleData","entry","d","res","ecdf","N","Math","lineData","yRange","y0","y1","scaleR","e","linePoints","ld","defaultRegressionLineColor","opt","parentNode","isNullish","defaultRegressionLineLabelX","defaultRegressionLineLabelY","leftAxis","v","isArray"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/regressionLine/kdeRegressionLine.js","sources":["
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/regressionLine/kdeRegressionLine.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/regressionLine/kdeRegressionLine.ts"],"sourcesContent":["import type { ICartesianSeries, IChart, IHistogramChartSpec, IVChart } from '@visactor/vchart'\nimport type { KDEOptions } from '@visactor/vutils'\nimport { isNullish, uniqueBy } from 'remeda'\nimport { kde, array } from '@visactor/vutils'\nimport { BinEndMeasureId, BinStartMeasureId } from 'src/dataReshape'\nimport type { Datum, Dimension, VChartSpecPipe, Encoding, RegressionLineConfig, KdeRegressionLine } from 'src/types'\nimport { defaultRegressionLineColor, defaultRegressionLineLabelX, defaultRegressionLineLabelY } from './common'\n\nexport const kdeRegressionLine: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as IHistogramChartSpec\n const { advancedVSeed, vseed } = context\n const { chartType, encoding = {} as Encoding, dimensions, regressionLine } = advancedVSeed\n const { dataset } = vseed\n const lineTheme = advancedVSeed.config[chartType as 'histogram']?.regressionLine as RegressionLineConfig\n const binValueType = advancedVSeed.config[chartType as 'histogram']?.binValueType\n\n if (!regressionLine || !regressionLine.kdeRegressionLine) {\n return result\n }\n\n const rowColumnFields = uniqueBy(\n dimensions.filter((dim: Dimension) => dim.encoding === 'row' || dim.encoding === 'column'),\n (item: Dimension) => item.id,\n )\n\n const lineList = array(regressionLine.kdeRegressionLine).filter((kdeLine) => kdeLine.enable !== false)\n\n if (!result.extensionMark) {\n result.extensionMark = []\n }\n\n lineList.forEach((line, lineIndex) => {\n if (line.enable === false) {\n return\n }\n const theme = (lineTheme.kdeRegressionLine ?? {}) as KdeRegressionLine\n const { color, lineWidth, lineDash, text, textColor, textFontSize, textFontWeight } = line as KdeRegressionLine\n\n const childrenMarks: any[] = []\n\n ;(result.extensionMark as any[]).push({\n type: 'group',\n interactive: false,\n zIndex: 500,\n name: `kdeRegressionLine-${lineIndex}`,\n dataId: (spec.data as any)?.id,\n style: {\n data: (datum: any, ctx: any) => {\n const vchart = ctx.vchart as IVChart\n const chart = vchart.getChart() as IChart\n const series = chart.getAllSeries().filter((s: any) => s.type === 'bar')\n\n // 直方图使用的是bar系列\n if (series && series.length) {\n const s = series[0] as ICartesianSeries\n\n const fieldX = s.fieldX?.[0]\n const scaleY = s.getYAxisHelper().getScale?.(0)\n const viewData = s.getViewData()?.latestData\n\n if (!dataset || !dataset.length || !viewData || !viewData.length || !scaleY) {\n return null\n }\n const simpleData = dataset\n .filter((entry: Datum) => {\n return rowColumnFields.length\n ? rowColumnFields.every((dim: Dimension) => {\n return entry[dim.id] === viewData[0][dim.id]\n })\n : true\n })\n .map((d: Datum) => +(d as any)[encoding.value?.[0] as string])\n const res = kde(simpleData, {\n bandwidth: Math.abs(viewData[0][BinEndMeasureId] - viewData[0][BinStartMeasureId]),\n } as KDEOptions)\n const N = Math.max(3, Math.floor(simpleData.length / 4))\n const lineData = res.evaluateGrid(N)\n\n // 根据 binValueType 决定如何转换 KDE 密度值\n // - 频次模式 (count): 频次 = 密度 × 样本数 × 带宽\n // - 百分比模式 (percentage): 百分比 = 密度 × 带宽\n const scaleR = (k: number) => {\n if (binValueType === 'percentage') {\n // 百分比模式:y轴是0-1的百分比,KDE密度值乘以带宽即可\n return scaleY.scale(k * res.bandwidth)\n } else {\n // 频次模式:y轴是实际计数,需要乘以样本数量\n return scaleY.scale(k * simpleData.length * res.bandwidth)\n }\n }\n\n const linePoints = lineData.map((ld: Datum) => {\n const d = { [fieldX]: ld.x }\n return {\n x: s.dataToPositionX(d)!,\n y: scaleR(ld.y as number),\n }\n })\n\n return {\n linePoints,\n color: color ?? s.getOption().globalScale.getScale('color')?.scale(s.getSeriesKeys()[0]),\n }\n }\n return null\n },\n },\n children: childrenMarks,\n })\n\n childrenMarks.push({\n type: 'line',\n interactive: false,\n zIndex: 500,\n dataId: (spec.data as any)?.id,\n style: {\n lineWidth: lineWidth ?? theme.lineWidth,\n lineDash: lineDash ?? theme.lineDash,\n stroke: color ?? defaultRegressionLineColor,\n points: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode?.attribute?.data) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n return parentNode.attribute.data.linePoints\n }\n\n return []\n },\n },\n })\n\n if (!isNullish(text)) {\n childrenMarks.push({\n type: 'text',\n interactive: false,\n zIndex: 500,\n dataId: (spec.data as any)?.id,\n dataKey: () => {\n return `kdeRegressionLine-label-${lineIndex}`\n },\n style: {\n textAlign: 'end',\n fill: textColor ?? theme.textColor,\n fontSize: textFontSize ?? theme.textFontSize,\n fontWeight: textFontWeight ?? theme.textFontWeight,\n text: text,\n x: defaultRegressionLineLabelX,\n y: defaultRegressionLineLabelY,\n },\n })\n }\n })\n\n return result\n}\n"],"names":["kdeRegressionLine","spec","context","result","advancedVSeed","vseed","chartType","encoding","dimensions","regressionLine","dataset","lineTheme","binValueType","rowColumnFields","uniqueBy","dim","item","lineList","array","kdeLine","line","lineIndex","theme","color","lineWidth","lineDash","text","textColor","textFontSize","textFontWeight","childrenMarks","datum","ctx","vchart","chart","series","s","fieldX","scaleY","viewData","simpleData","entry","d","res","kde","Math","BinEndMeasureId","BinStartMeasureId","N","lineData","scaleR","k","linePoints","ld","defaultRegressionLineColor","opt","parentNode","isNullish","defaultRegressionLineLabelX","defaultRegressionLineLabelY"],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ const generateRegressionLinePipe = (type, regressionFunction, getOptions = getDe
|
|
|
14
14
|
lineList.forEach((line, lineIndex)=>{
|
|
15
15
|
if (false === line.enable) return;
|
|
16
16
|
const theme = lineTheme.linearRegressionLine ?? {};
|
|
17
|
-
const { color, lineWidth, lineDash, text, textColor, textFontSize, textFontWeight, confidenceIntervalOpacity, confidenceIntervalVisible = theme.confidenceIntervalVisible } = line;
|
|
17
|
+
const { color, lineWidth, lineDash, text, textColor, textFontSize, textFontWeight, confidenceIntervalOpacity, shadowBlur, shadowColor, shadowOffsetX, shadowOffsetY, confidenceIntervalVisible = theme.confidenceIntervalVisible } = line;
|
|
18
18
|
const childrenMarks = [];
|
|
19
19
|
result.extensionMark.push({
|
|
20
20
|
type: 'group',
|
|
@@ -138,6 +138,10 @@ const generateRegressionLinePipe = (type, regressionFunction, getOptions = getDe
|
|
|
138
138
|
lineWidth: lineWidth ?? theme.lineWidth,
|
|
139
139
|
lineDash: lineDash ?? theme.lineDash,
|
|
140
140
|
stroke: 'red',
|
|
141
|
+
shadowBlur: shadowBlur ?? theme.shadowBlur,
|
|
142
|
+
shadowColor: shadowColor ?? theme.shadowColor,
|
|
143
|
+
shadowOffsetX: shadowOffsetX ?? theme.shadowOffsetX,
|
|
144
|
+
shadowOffsetY: shadowOffsetY ?? theme.shadowOffsetY,
|
|
141
145
|
segments: (datum, ctx, opt)=>{
|
|
142
146
|
const parentNode = opt.mark?._product?.parent;
|
|
143
147
|
if (parentNode) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/regressionLine/linearRegressionLine.js","sources":["../../../../../../../src/pipeline/spec/chart/pipes/regressionLine/linearRegressionLine.ts"],"sourcesContent":["import type { ICartesianSeries, IChart, IScatterChartSpec, IVChart } from '@visactor/vchart'\nimport { isNullish } from 'remeda'\nimport {\n array,\n clamper,\n regressionLinear,\n regressionLowess,\n regressionPolynomial,\n regressionLogistic,\n} from '@visactor/vutils'\nimport type {\n Datum,\n VChartSpecPipe,\n RegressionLineConfig,\n LinearRegressionLine,\n PolynomialRegressionLine,\n SpecPipelineContext,\n LogisticRegressionLine,\n LowessRegressionLine,\n} from 'src/types'\nimport { getAlphaByConfidenceLevel } from './common'\n\nexport const generateRegressionLinePipe = (\n type: 'linearRegressionLine' | 'lowessRegressionLine' | 'polynomialRegressionLine' | 'logisticRegressionLine',\n regressionFunction: (\n arr: Datum[],\n xAccessor: (d: Datum) => number,\n yAccessor: (d: Datum) => number,\n options?: any,\n ) => {\n confidenceInterval: (N: number) => { lower: number; upper: number; x: number }[]\n evaluateGrid: (N: number) => { x: number; y: number }[]\n },\n getOptions: (lineConfig: any) => any = getDefaultRegressionOptions,\n getMinPoints: (lineConfig: any) => number = () => 2,\n): VChartSpecPipe => {\n return ((spec: Partial<IScatterChartSpec>, context: SpecPipelineContext): Partial<IScatterChartSpec> => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { chartType, regressionLine } = advancedVSeed\n const lineTheme = advancedVSeed.config[chartType as 'scatter']?.regressionLine as RegressionLineConfig\n\n if (!regressionLine || !regressionLine[type]) {\n return result\n }\n\n const lineList = array(regressionLine[type])\n\n if (!result.extensionMark) {\n result.extensionMark = []\n }\n\n lineList.forEach((line, lineIndex) => {\n if (line.enable === false) {\n return\n }\n\n const theme = (lineTheme.linearRegressionLine ?? {}) as LinearRegressionLine\n const {\n color,\n lineWidth,\n lineDash,\n text,\n textColor,\n textFontSize,\n textFontWeight,\n confidenceIntervalOpacity,\n confidenceIntervalVisible = theme.confidenceIntervalVisible,\n } = line as LinearRegressionLine\n\n const childrenMarks: any[] = []\n\n ;(result.extensionMark as any[]).push({\n type: 'group',\n interactive: false,\n zIndex: 500,\n name: `${type}-${lineIndex}`,\n layoutType: 'region-relative',\n dataId: (spec.data as any)?.id,\n animation: false,\n style: {\n data: (datum: any, ctx: any) => {\n const vchart = ctx.vchart as IVChart\n const chart = vchart.getChart() as IChart\n const s = chart.getAllSeries()[0] as ICartesianSeries\n\n if (s) {\n const rect = s.getRegion().getLayoutRect()\n const segments: {\n areaPoints?: { x: number; y: number; y1: number }[]\n linePoints: { x: number; y: number }[]\n color: string\n }[] = []\n\n if (rect.width === 0 || rect.height === 0) {\n return segments\n }\n\n const yClamper = clamper(0, rect.height)\n const colorAttrOptions = s.getColorAttribute()\n const groups: (string | undefined)[] = s.getSeriesKeys()\n const data = s.getViewData()?.latestData as Datum[]\n const fieldX = s.fieldX?.[0]\n const fieldY = s.fieldY?.[0]\n\n if (!groups.length) {\n groups.push(undefined)\n }\n\n groups.forEach((group) => {\n const groupData = data.filter((d: Datum) => d[colorAttrOptions?.field] === group)\n\n const minPoints = getMinPoints(line)\n\n if (groupData.length < minPoints) {\n return\n }\n const { confidenceInterval, evaluateGrid } = regressionFunction(\n groupData,\n (datum: Datum) => datum?.[fieldX],\n (datum: Datum) => datum?.[fieldY],\n getOptions?.(line),\n )\n const N = Math.max(3, Math.floor(groupData.length / 4))\n const mainColor = color ?? colorAttrOptions?.scale?.scale(group)\n\n const lineData = evaluateGrid(N)\n const linePoints: { x: number; y: number }[] = []\n\n lineData.forEach((ld: Datum, index: number) => {\n const d = { [fieldX]: ld.x, [fieldY]: ld.y }\n const x = s.dataToPositionX(d)!\n const y = yClamper(s.dataToPositionY(d)!)\n\n if (segments.length && index === 0) {\n segments[segments.length - 1].linePoints.push({ x, y: NaN }) // 断开线段用的\n }\n\n linePoints.push({\n x,\n y,\n })\n })\n\n const segment: {\n color: string\n linePoints: { x: number; y: number }[]\n areaPoints?: { x: number; y: number; y1: number }[]\n } = {\n color: mainColor,\n linePoints,\n }\n\n if (confidenceIntervalVisible) {\n const intervalData = confidenceInterval(N)\n const areaPoints: { x: number; y: number; y1: number }[] = []\n\n intervalData.map((datum: Datum, index: number) => {\n const d = { [fieldX]: datum.x, [fieldY]: datum.lower }\n const x = s.dataToPositionX(d)!\n const y = yClamper(s.dataToPositionY(d)!)\n const y1 = yClamper(s.dataToPositionY({ [fieldY]: datum.upper })!)\n\n if (segments.length && index === 0) {\n segments[segments.length - 1].areaPoints!.push({ x, y: NaN, y1: NaN }) // 断开线段用的\n }\n\n areaPoints.push({ x, y, y1 })\n })\n\n segment.areaPoints = areaPoints\n }\n\n segments.push(segment)\n })\n\n return segments\n }\n return []\n },\n },\n children: childrenMarks,\n })\n\n if (confidenceIntervalVisible) {\n childrenMarks.push({\n type: 'area',\n interactive: false,\n zIndex: 500,\n dataId: (spec.data as any)?.id,\n style: {\n stroke: false,\n lineWidth: lineWidth ?? theme.lineWidth,\n lineDash: lineDash ?? theme.lineDash,\n fillOpacity: confidenceIntervalOpacity ?? theme.confidenceIntervalOpacity,\n fill: 'red', // vrender bug,必须要设置一个全局的fill,才会绘制\n segments: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode) {\n const data = parentNode.finalAttribute?.data ?? parentNode.attribute?.data\n\n if (data?.length) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call\n return data.map((d: any) => {\n return {\n points: d.areaPoints ?? [],\n fill: d.color,\n }\n })\n }\n }\n\n return []\n },\n },\n })\n }\n\n childrenMarks.push({\n type: 'line',\n interactive: false,\n zIndex: 500,\n animation: false,\n dataId: (spec.data as any)?.id,\n style: {\n lineWidth: lineWidth ?? theme.lineWidth,\n lineDash: lineDash ?? theme.lineDash,\n stroke: 'red', // vrender bug,必须要设置一个全局的stroke,才会绘制\n segments: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode) {\n const data = parentNode.finalAttribute?.data ?? parentNode.attribute?.data\n if (data?.length) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call\n return data.map((d: any) => {\n return {\n points: d.linePoints,\n stroke: d.color,\n }\n })\n }\n }\n\n return []\n },\n },\n })\n\n if (!isNullish(text)) {\n childrenMarks.push({\n type: 'text',\n interactive: false,\n zIndex: 500,\n animation: false,\n dataId: (spec.data as any)?.id,\n dataKey: () => {\n return `regressionLine-label-${lineIndex}`\n },\n style: {\n textAlign: 'end',\n fill: textColor ?? theme.textColor,\n fontSize: textFontSize ?? theme.textFontSize,\n fontWeight: textFontWeight ?? theme.textFontWeight,\n text: text,\n x: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode?.attribute?.data?.length) {\n const point = parentNode.attribute.data[parentNode.attribute.data.length - 1].linePoints\n return point[point.length - 1]?.x\n }\n\n return undefined\n },\n y: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode?.attribute?.data?.length) {\n const point = parentNode.attribute.data[parentNode.attribute.data.length - 1].linePoints\n return point[point.length - 1]?.y\n }\n\n return undefined\n },\n },\n })\n }\n })\n\n return result\n }) as VChartSpecPipe\n}\n\nconst getDefaultRegressionOptions = (\n lineConfig: PolynomialRegressionLine | LinearRegressionLine | LogisticRegressionLine | LowessRegressionLine,\n) => {\n const alpha = getAlphaByConfidenceLevel(lineConfig?.confidenceLevel)\n return { alpha }\n}\n\nexport const linearRegressionLine: VChartSpecPipe = generateRegressionLinePipe(\n 'linearRegressionLine',\n regressionLinear,\n getDefaultRegressionOptions,\n)\nexport const lowessRegressionLine: VChartSpecPipe = generateRegressionLinePipe(\n 'lowessRegressionLine',\n regressionLowess,\n getDefaultRegressionOptions,\n)\nexport const polynomialRegressionLine: VChartSpecPipe = generateRegressionLinePipe(\n 'polynomialRegressionLine',\n regressionPolynomial,\n (lineConfig: PolynomialRegressionLine) => {\n return { ...getDefaultRegressionOptions(lineConfig), degree: lineConfig.degree ?? 2 }\n },\n (lineConfig: PolynomialRegressionLine) => (lineConfig.degree ?? 2) + 1,\n)\nexport const logisticRegressionLine: VChartSpecPipe = generateRegressionLinePipe(\n 'logisticRegressionLine',\n regressionLogistic,\n getDefaultRegressionOptions,\n)\n"],"names":["generateRegressionLinePipe","type","regressionFunction","getOptions","getDefaultRegressionOptions","getMinPoints","spec","context","result","advancedVSeed","chartType","regressionLine","lineTheme","lineList","array","line","lineIndex","theme","color","lineWidth","lineDash","text","textColor","textFontSize","textFontWeight","confidenceIntervalOpacity","confidenceIntervalVisible","childrenMarks","datum","ctx","vchart","chart","s","rect","segments","yClamper","clamper","colorAttrOptions","groups","data","fieldX","fieldY","undefined","group","groupData","d","minPoints","confidenceInterval","evaluateGrid","N","Math","mainColor","lineData","linePoints","ld","index","x","y","NaN","segment","intervalData","areaPoints","y1","opt","parentNode","isNullish","point","lineConfig","alpha","getAlphaByConfidenceLevel","linearRegressionLine","regressionLinear","lowessRegressionLine","regressionLowess","polynomialRegressionLine","regressionPolynomial","logisticRegressionLine","regressionLogistic"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/regressionLine/linearRegressionLine.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/regressionLine/linearRegressionLine.ts"],"sourcesContent":["import type { ICartesianSeries, IChart, IScatterChartSpec, IVChart } from '@visactor/vchart'\nimport { isNullish } from 'remeda'\nimport {\n array,\n clamper,\n regressionLinear,\n regressionLowess,\n regressionPolynomial,\n regressionLogistic,\n} from '@visactor/vutils'\nimport type {\n Datum,\n VChartSpecPipe,\n RegressionLineConfig,\n LinearRegressionLine,\n PolynomialRegressionLine,\n SpecPipelineContext,\n LogisticRegressionLine,\n LowessRegressionLine,\n} from 'src/types'\nimport { getAlphaByConfidenceLevel } from './common'\n\nexport const generateRegressionLinePipe = (\n type: 'linearRegressionLine' | 'lowessRegressionLine' | 'polynomialRegressionLine' | 'logisticRegressionLine',\n regressionFunction: (\n arr: Datum[],\n xAccessor: (d: Datum) => number,\n yAccessor: (d: Datum) => number,\n options?: any,\n ) => {\n confidenceInterval: (N: number) => { lower: number; upper: number; x: number }[]\n evaluateGrid: (N: number) => { x: number; y: number }[]\n },\n getOptions: (lineConfig: any) => any = getDefaultRegressionOptions,\n getMinPoints: (lineConfig: any) => number = () => 2,\n): VChartSpecPipe => {\n return ((spec: Partial<IScatterChartSpec>, context: SpecPipelineContext): Partial<IScatterChartSpec> => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { chartType, regressionLine } = advancedVSeed\n const lineTheme = advancedVSeed.config[chartType as 'scatter']?.regressionLine as RegressionLineConfig\n\n if (!regressionLine || !regressionLine[type]) {\n return result\n }\n\n const lineList = array(regressionLine[type])\n\n if (!result.extensionMark) {\n result.extensionMark = []\n }\n\n lineList.forEach((line, lineIndex) => {\n if (line.enable === false) {\n return\n }\n\n const theme = (lineTheme.linearRegressionLine ?? {}) as LinearRegressionLine\n const {\n color,\n lineWidth,\n lineDash,\n text,\n textColor,\n textFontSize,\n textFontWeight,\n confidenceIntervalOpacity,\n shadowBlur,\n shadowColor,\n shadowOffsetX,\n shadowOffsetY,\n confidenceIntervalVisible = theme.confidenceIntervalVisible,\n } = line as LinearRegressionLine\n\n const childrenMarks: any[] = []\n\n ;(result.extensionMark as any[]).push({\n type: 'group',\n interactive: false,\n zIndex: 500,\n name: `${type}-${lineIndex}`,\n layoutType: 'region-relative',\n dataId: (spec.data as any)?.id,\n animation: false,\n style: {\n data: (datum: any, ctx: any) => {\n const vchart = ctx.vchart as IVChart\n const chart = vchart.getChart() as IChart\n const s = chart.getAllSeries()[0] as ICartesianSeries\n\n if (s) {\n const rect = s.getRegion().getLayoutRect()\n const segments: {\n areaPoints?: { x: number; y: number; y1: number }[]\n linePoints: { x: number; y: number }[]\n color: string\n }[] = []\n\n if (rect.width === 0 || rect.height === 0) {\n return segments\n }\n\n const yClamper = clamper(0, rect.height)\n const colorAttrOptions = s.getColorAttribute()\n const groups: (string | undefined)[] = s.getSeriesKeys()\n const data = s.getViewData()?.latestData as Datum[]\n const fieldX = s.fieldX?.[0]\n const fieldY = s.fieldY?.[0]\n\n if (!groups.length) {\n groups.push(undefined)\n }\n\n groups.forEach((group) => {\n const groupData = data.filter((d: Datum) => d[colorAttrOptions?.field] === group)\n\n const minPoints = getMinPoints(line)\n\n if (groupData.length < minPoints) {\n return\n }\n const { confidenceInterval, evaluateGrid } = regressionFunction(\n groupData,\n (datum: Datum) => datum?.[fieldX],\n (datum: Datum) => datum?.[fieldY],\n getOptions?.(line),\n )\n const N = Math.max(3, Math.floor(groupData.length / 4))\n const mainColor = color ?? colorAttrOptions?.scale?.scale(group)\n\n const lineData = evaluateGrid(N)\n const linePoints: { x: number; y: number }[] = []\n\n lineData.forEach((ld: Datum, index: number) => {\n const d = { [fieldX]: ld.x, [fieldY]: ld.y }\n const x = s.dataToPositionX(d)!\n const y = yClamper(s.dataToPositionY(d)!)\n\n if (segments.length && index === 0) {\n segments[segments.length - 1].linePoints.push({ x, y: NaN }) // 断开线段用的\n }\n\n linePoints.push({\n x,\n y,\n })\n })\n\n const segment: {\n color: string\n linePoints: { x: number; y: number }[]\n areaPoints?: { x: number; y: number; y1: number }[]\n } = {\n color: mainColor,\n linePoints,\n }\n\n if (confidenceIntervalVisible) {\n const intervalData = confidenceInterval(N)\n const areaPoints: { x: number; y: number; y1: number }[] = []\n\n intervalData.map((datum: Datum, index: number) => {\n const d = { [fieldX]: datum.x, [fieldY]: datum.lower }\n const x = s.dataToPositionX(d)!\n const y = yClamper(s.dataToPositionY(d)!)\n const y1 = yClamper(s.dataToPositionY({ [fieldY]: datum.upper })!)\n\n if (segments.length && index === 0) {\n segments[segments.length - 1].areaPoints!.push({ x, y: NaN, y1: NaN }) // 断开线段用的\n }\n\n areaPoints.push({ x, y, y1 })\n })\n\n segment.areaPoints = areaPoints\n }\n\n segments.push(segment)\n })\n\n return segments\n }\n return []\n },\n },\n children: childrenMarks,\n })\n\n if (confidenceIntervalVisible) {\n childrenMarks.push({\n type: 'area',\n interactive: false,\n zIndex: 500,\n dataId: (spec.data as any)?.id,\n style: {\n stroke: false,\n lineWidth: lineWidth ?? theme.lineWidth,\n lineDash: lineDash ?? theme.lineDash,\n fillOpacity: confidenceIntervalOpacity ?? theme.confidenceIntervalOpacity,\n fill: 'red', // vrender bug,必须要设置一个全局的fill,才会绘制\n segments: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode) {\n const data = parentNode.finalAttribute?.data ?? parentNode.attribute?.data\n\n if (data?.length) {\n return data.map((d: any) => {\n return {\n points: d.areaPoints ?? [],\n fill: d.color,\n }\n })\n }\n }\n\n return []\n },\n },\n })\n }\n\n childrenMarks.push({\n type: 'line',\n interactive: false,\n zIndex: 500,\n animation: false,\n dataId: (spec.data as any)?.id,\n style: {\n lineWidth: lineWidth ?? theme.lineWidth,\n lineDash: lineDash ?? theme.lineDash,\n stroke: 'red', // vrender bug,必须要设置一个全局的stroke,才会绘制\n shadowBlur: shadowBlur ?? theme.shadowBlur,\n shadowColor: shadowColor ?? theme.shadowColor,\n shadowOffsetX: shadowOffsetX ?? theme.shadowOffsetX,\n shadowOffsetY: shadowOffsetY ?? theme.shadowOffsetY,\n segments: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode) {\n const data = parentNode.finalAttribute?.data ?? parentNode.attribute?.data\n if (data?.length) {\n return data.map((d: any) => {\n return {\n points: d.linePoints,\n stroke: d.color,\n }\n })\n }\n }\n\n return []\n },\n },\n })\n\n if (!isNullish(text)) {\n childrenMarks.push({\n type: 'text',\n interactive: false,\n zIndex: 500,\n animation: false,\n dataId: (spec.data as any)?.id,\n dataKey: () => {\n return `regressionLine-label-${lineIndex}`\n },\n style: {\n textAlign: 'end',\n fill: textColor ?? theme.textColor,\n fontSize: textFontSize ?? theme.textFontSize,\n fontWeight: textFontWeight ?? theme.textFontWeight,\n text: text,\n x: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode?.attribute?.data?.length) {\n const point = parentNode.attribute.data[parentNode.attribute.data.length - 1].linePoints\n return point[point.length - 1]?.x\n }\n\n return undefined\n },\n y: (datum: any, ctx: any, opt: any) => {\n const parentNode = opt.mark?._product?.parent\n\n if (parentNode?.attribute?.data?.length) {\n const point = parentNode.attribute.data[parentNode.attribute.data.length - 1].linePoints\n return point[point.length - 1]?.y\n }\n\n return undefined\n },\n },\n })\n }\n })\n\n return result\n }) as VChartSpecPipe\n}\n\nconst getDefaultRegressionOptions = (\n lineConfig: PolynomialRegressionLine | LinearRegressionLine | LogisticRegressionLine | LowessRegressionLine,\n) => {\n const alpha = getAlphaByConfidenceLevel(lineConfig?.confidenceLevel)\n return { alpha }\n}\n\nexport const linearRegressionLine: VChartSpecPipe = generateRegressionLinePipe(\n 'linearRegressionLine',\n regressionLinear,\n getDefaultRegressionOptions,\n)\nexport const lowessRegressionLine: VChartSpecPipe = generateRegressionLinePipe(\n 'lowessRegressionLine',\n regressionLowess,\n getDefaultRegressionOptions,\n)\nexport const polynomialRegressionLine: VChartSpecPipe = generateRegressionLinePipe(\n 'polynomialRegressionLine',\n regressionPolynomial,\n (lineConfig: PolynomialRegressionLine) => {\n return { ...getDefaultRegressionOptions(lineConfig), degree: lineConfig.degree ?? 2 }\n },\n (lineConfig: PolynomialRegressionLine) => (lineConfig.degree ?? 2) + 1,\n)\nexport const logisticRegressionLine: VChartSpecPipe = generateRegressionLinePipe(\n 'logisticRegressionLine',\n regressionLogistic,\n getDefaultRegressionOptions,\n)\n"],"names":["generateRegressionLinePipe","type","regressionFunction","getOptions","getDefaultRegressionOptions","getMinPoints","spec","context","result","advancedVSeed","chartType","regressionLine","lineTheme","lineList","array","line","lineIndex","theme","color","lineWidth","lineDash","text","textColor","textFontSize","textFontWeight","confidenceIntervalOpacity","shadowBlur","shadowColor","shadowOffsetX","shadowOffsetY","confidenceIntervalVisible","childrenMarks","datum","ctx","vchart","chart","s","rect","segments","yClamper","clamper","colorAttrOptions","groups","data","fieldX","fieldY","undefined","group","groupData","d","minPoints","confidenceInterval","evaluateGrid","N","Math","mainColor","lineData","linePoints","ld","index","x","y","NaN","segment","intervalData","areaPoints","y1","opt","parentNode","isNullish","point","lineConfig","alpha","getAlphaByConfidenceLevel","linearRegressionLine","regressionLinear","lowessRegressionLine","regressionLowess","polynomialRegressionLine","regressionPolynomial","logisticRegressionLine","regressionLogistic"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/series/series.js","sources":["
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/series/series.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/series/series.ts"],"sourcesContent":["import type { SpecPipelineContext, VChartSpecPipe, VChartSpecPipeline } from 'src/types'\nimport { execPipeline } from '../../../../utils'\nimport type { ICommonChartSpec, ILineSeriesSpec, ISpec } from '@visactor/vchart'\n\nexport const series = (...args: VChartSpecPipeline[]): VChartSpecPipe => {\n const result = {\n type: 'common',\n padding: 0,\n region: [\n {\n clip: true,\n },\n ],\n } as ICommonChartSpec\n\n return (_: Partial<ISpec>, context: SpecPipelineContext) => {\n result.series = args.map((pipeline) => {\n return execPipeline<Partial<ISpec>, SpecPipelineContext>(pipeline, context, {})\n }) as ILineSeriesSpec[]\n\n return result as Partial<ISpec>\n }\n}\n\n/**\n * @description 双轴图的透视场景, 不能使用此pipe, 请使用series\n * 因为VTable.PivotVChart会自行解析数据, 而非VChart解析.\n */\nexport const seriesDualAxis = (...args: VChartSpecPipeline[]): VChartSpecPipe => {\n const result = {\n type: 'common',\n padding: 0,\n labelLayout: 'region',\n region: [\n {\n clip: true,\n },\n ],\n } as ICommonChartSpec\n\n const createDualContext = <T extends SpecPipelineContext>(context: T, index: number): T => {\n const { advancedVSeed } = context\n const dataset = advancedVSeed.dataset[index]\n return {\n ...context,\n advancedVSeed: {\n ...advancedVSeed,\n dataset: dataset,\n },\n }\n }\n\n return (_: Partial<ISpec>, context: SpecPipelineContext) => {\n result.series = args.map((pipeline, index) => {\n const seriesContext = createDualContext(context, index)\n return execPipeline<ISpec, SpecPipelineContext>(pipeline, seriesContext, {})\n }) as ILineSeriesSpec[]\n\n return result\n }\n}\n"],"names":["series","args","result","_","context","pipeline","execPipeline","seriesDualAxis","createDualContext","index","advancedVSeed","dataset","seriesContext"],"mappings":";AAIO,MAAMA,SAAS,CAAC,GAAGC;IACxB,MAAMC,SAAS;QACb,MAAM;QACN,SAAS;QACT,QAAQ;YACN;gBACE,MAAM;YACR;SACD;IACH;IAEA,OAAO,CAACC,GAAmBC;QACzBF,OAAO,MAAM,GAAGD,KAAK,GAAG,CAAC,CAACI,WACjBC,aAAkDD,UAAUD,SAAS,CAAC;QAG/E,OAAOF;IACT;AACF;AAMO,MAAMK,iBAAiB,CAAC,GAAGN;IAChC,MAAMC,SAAS;QACb,MAAM;QACN,SAAS;QACT,aAAa;QACb,QAAQ;YACN;gBACE,MAAM;YACR;SACD;IACH;IAEA,MAAMM,oBAAoB,CAAgCJ,SAAYK;QACpE,MAAM,EAAEC,aAAa,EAAE,GAAGN;QAC1B,MAAMO,UAAUD,cAAc,OAAO,CAACD,MAAM;QAC5C,OAAO;YACL,GAAGL,OAAO;YACV,eAAe;gBACb,GAAGM,aAAa;gBAChB,SAASC;YACX;QACF;IACF;IAEA,OAAO,CAACR,GAAmBC;QACzBF,OAAO,MAAM,GAAGD,KAAK,GAAG,CAAC,CAACI,UAAUI;YAClC,MAAMG,gBAAgBJ,kBAAkBJ,SAASK;YACjD,OAAOH,aAAyCD,UAAUO,eAAe,CAAC;QAC5E;QAEA,OAAOV;IACT;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/size/scatterSize.js","sources":["
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/size/scatterSize.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/size/scatterSize.ts"],"sourcesContent":["import type { IScatterChartSpec } from '@visactor/vchart'\nimport type { VChartSpecPipe } from 'src/types'\n\nexport const scatterSize: VChartSpecPipe = (spec, context) => {\n const result = { ...spec } as IScatterChartSpec\n const { advancedVSeed } = context\n const { chartType, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as {\n sizeRange: number | number[]\n size?: number | number[]\n }\n const hasSizeEncoding = encoding?.size?.[0]\n if (!hasSizeEncoding) {\n return result\n }\n\n const size = baseConfig.size ?? baseConfig.sizeRange\n\n result.size = {\n type: 'linear',\n range: Array.isArray(size) ? size : [size, size],\n } as IScatterChartSpec['size']\n\n result.sizeField = encoding?.size?.[0] || undefined\n\n return result\n}\n"],"names":["scatterSize","spec","context","result","advancedVSeed","chartType","encoding","baseConfig","hasSizeEncoding","size","Array","undefined"],"mappings":"AAGO,MAAMA,cAA8B,CAACC,MAAMC;IAChD,MAAMC,SAAS;QAAE,GAAGF,IAAI;IAAC;IACzB,MAAM,EAAEG,aAAa,EAAE,GAAGF;IAC1B,MAAM,EAAEG,SAAS,EAAEC,QAAQ,EAAE,GAAGF;IAChC,MAAMG,aAAaH,cAAc,MAAM,CAACC,UAAU;IAIlD,MAAMG,kBAAkBF,UAAU,MAAM,CAAC,EAAE;IAC3C,IAAI,CAACE,iBACH,OAAOL;IAGT,MAAMM,OAAOF,WAAW,IAAI,IAAIA,WAAW,SAAS;IAEpDJ,OAAO,IAAI,GAAG;QACZ,MAAM;QACN,OAAOO,MAAM,OAAO,CAACD,QAAQA,OAAO;YAACA;YAAMA;SAAK;IAClD;IAEAN,OAAO,SAAS,GAAGG,UAAU,MAAM,CAAC,EAAE,IAAIK;IAE1C,OAAOR;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/stack/stack.js","sources":["
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/stack/stack.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/stack/stack.ts"],"sourcesContent":["import type { IAreaChartSpec, IBarChartSpec } from '@visactor/vchart'\nimport type { VChartSpecPipe } from 'src/types'\n\nexport const stackInverse: VChartSpecPipe = (spec) => {\n const result = { ...spec } as IAreaChartSpec | IBarChartSpec\n result.stackInverse = true\n return result\n}\n"],"names":["stackInverse","spec","result"],"mappings":"AAGO,MAAMA,eAA+B,CAACC;IAC3C,MAAMC,SAAS;QAAE,GAAGD,IAAI;IAAC;IACzBC,OAAO,YAAY,GAAG;IACtB,OAAOA;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline/spec/chart/pipes/stack/stackCornerRadius.js","sources":["
|
|
1
|
+
{"version":3,"file":"pipeline/spec/chart/pipes/stack/stackCornerRadius.js","sources":["webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/stack/stackCornerRadius.ts"],"sourcesContent":["import type { IBarChartSpec } from '@visactor/vchart'\nimport { FoldMeasureId } from 'src/dataReshape/constant'\nimport type { Datum, VChartSpecPipe, StackCornerRadius } from 'src/types'\n\nexport const stackCornerRadius: VChartSpecPipe = (spec, context) => {\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const stackCornerRadius = advancedVSeed.config?.[chartType as 'column']?.stackCornerRadius as StackCornerRadius\n\n if (chartType === 'dualAxis' && (spec as any).type !== 'bar') {\n return spec\n }\n\n return {\n ...spec,\n stackCornerRadius: (_: unknown, datum: Datum) => {\n if (datum && datum[datum[FoldMeasureId]] > 0) {\n return stackCornerRadius\n }\n\n return 0\n },\n } as IBarChartSpec\n}\n"],"names":["stackCornerRadius","spec","context","advancedVSeed","vseed","chartType","_","datum","FoldMeasureId"],"mappings":";AAIO,MAAMA,sCAAoC,CAACC,MAAMC;IACtD,MAAM,EAAEC,aAAa,EAAEC,KAAK,EAAE,GAAGF;IACjC,MAAM,EAAEG,SAAS,EAAE,GAAGD;IACtB,MAAMJ,oBAAoBG,cAAc,MAAM,EAAE,CAACE,UAAsB,EAAE;IAEzE,IAAIA,AAAc,eAAdA,aAA6BJ,AAAsB,UAAtBA,KAAa,IAAI,EAChD,OAAOA;IAGT,OAAO;QACL,GAAGA,IAAI;QACP,mBAAmB,CAACK,GAAYC;YAC9B,IAAIA,SAASA,KAAK,CAACA,KAAK,CAACC,cAAc,CAAC,GAAG,GACzC,OAAOR;YAGT,OAAO;QACT;IACF;AACF"}
|