@visactor/vseed 0.0.37 → 0.0.38

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.
Files changed (64) hide show
  1. package/dist/builder/builder/builder.d.ts +6 -24
  2. package/dist/index.cjs +98 -57
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.js +98 -57
  5. package/dist/index.js.map +1 -1
  6. package/dist/pipeline/utils/constant.d.ts +2 -0
  7. package/dist/types/advancedVSeed.d.ts +2 -12
  8. package/dist/types/chartType/area/area.d.ts +11 -2
  9. package/dist/types/chartType/area/zArea.d.ts +0 -12
  10. package/dist/types/chartType/areaPercent/areaPercent.d.ts +4 -0
  11. package/dist/types/chartType/areaPercent/zAreaPercent.d.ts +0 -12
  12. package/dist/types/chartType/areaRange/areaRange.d.ts +4 -0
  13. package/dist/types/chartType/areaRange/zAreaRange.d.ts +0 -12
  14. package/dist/types/chartType/bar/bar.d.ts +4 -0
  15. package/dist/types/chartType/bar/zBar.d.ts +0 -12
  16. package/dist/types/chartType/barParallel/barParallel.d.ts +4 -0
  17. package/dist/types/chartType/barParallel/zBarParallel.d.ts +0 -12
  18. package/dist/types/chartType/barPercent/barPercent.d.ts +4 -0
  19. package/dist/types/chartType/barPercent/zBarPercent.d.ts +0 -12
  20. package/dist/types/chartType/column/column.d.ts +4 -0
  21. package/dist/types/chartType/column/zColumn.d.ts +0 -12
  22. package/dist/types/chartType/columnParallel/columnParallel.d.ts +4 -0
  23. package/dist/types/chartType/columnParallel/zColumnParallel.d.ts +0 -12
  24. package/dist/types/chartType/columnPercent/columnPercent.d.ts +4 -0
  25. package/dist/types/chartType/columnPercent/zColumnPercent.d.ts +0 -12
  26. package/dist/types/chartType/donut/donut.d.ts +4 -0
  27. package/dist/types/chartType/dualAxis/dualAxis.d.ts +9 -0
  28. package/dist/types/chartType/dualAxis/zDualAxis.d.ts +1 -12
  29. package/dist/types/chartType/funnel/funnel.d.ts +4 -0
  30. package/dist/types/chartType/heatmap/heatmap.d.ts +4 -0
  31. package/dist/types/chartType/line/line.d.ts +8 -2
  32. package/dist/types/chartType/line/zLine.d.ts +0 -12
  33. package/dist/types/chartType/pie/pie.d.ts +4 -0
  34. package/dist/types/chartType/pivotTable/pivotTable.d.ts +4 -0
  35. package/dist/types/chartType/radar/radar.d.ts +4 -0
  36. package/dist/types/chartType/rose/rose.d.ts +4 -0
  37. package/dist/types/chartType/roseParallel/roseParallel.d.ts +4 -0
  38. package/dist/types/chartType/scatter/scatter.d.ts +4 -0
  39. package/dist/types/chartType/scatter/zScatter.d.ts +0 -12
  40. package/dist/types/chartType/table/table.d.ts +4 -0
  41. package/dist/types/dataSelector/selector.d.ts +54 -0
  42. package/dist/types/properties/annotation/annotation.d.ts +0 -12
  43. package/dist/types/properties/annotation/annotationArea.d.ts +6 -21
  44. package/dist/types/properties/annotation/annotationHorizontalLine.d.ts +0 -14
  45. package/dist/types/properties/annotation/annotationVerticalLine.d.ts +0 -14
  46. package/dist/types/properties/annotation/zAnnotationArea.d.ts +0 -2
  47. package/dist/types/properties/annotation/zAnnotationHorizontalLine.d.ts +0 -2
  48. package/dist/types/properties/annotation/zAnnotationVerticalLine.d.ts +0 -2
  49. package/dist/types/properties/config/axes/axis.d.ts +0 -14
  50. package/dist/types/properties/config/color/color.d.ts +4 -6
  51. package/dist/types/properties/config/config.d.ts +2 -0
  52. package/dist/types/properties/config/crosshair/crosshair.d.ts +14 -17
  53. package/dist/types/properties/config/crosshair/index.d.ts +2 -1
  54. package/dist/types/properties/config/crosshair/zCrosshair.d.ts +15 -0
  55. package/dist/types/properties/config/legend/legend.d.ts +0 -4
  56. package/dist/types/properties/dimensions/dimensions.d.ts +6 -29
  57. package/dist/types/properties/dimensions/index.d.ts +2 -1
  58. package/dist/types/properties/dimensions/zDimensions.d.ts +30 -0
  59. package/dist/types/properties/measures/measures.d.ts +3 -0
  60. package/dist/types/properties/theme/customTheme.d.ts +2 -0
  61. package/dist/types/vseed.d.ts +1 -144
  62. package/dist/umd/index.js +98 -57
  63. package/dist/umd/index.js.map +1 -1
  64. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["webpack://@visactor/vseed/webpack/runtime/define_property_getters","webpack://@visactor/vseed/webpack/runtime/has_own_property","webpack://@visactor/vseed/webpack/runtime/make_namespace_object","webpack://@visactor/vseed/./src/pipeline/utils/pipeline.ts","webpack://@visactor/vseed/./src/builder/builder/buildAdvanced.ts","webpack://@visactor/vseed/./src/builder/builder/buildSpec.ts","webpack://@visactor/vseed/./src/builder/builder/build.ts","webpack://@visactor/vseed/./src/i18n/i18n.ts","webpack://@visactor/vseed/./src/builder/builder/advanced/colorItems.ts","webpack://@visactor/vseed/./src/builder/builder/builder.ts","webpack://@visactor/vseed/./src/pipeline/advanced/table/pipes/init/initAdvancedVSeed.ts","webpack://@visactor/vseed/./src/pipeline/advanced/table/pipes/init/autoMeasures.ts","webpack://@visactor/vseed/./src/pipeline/utils/tree/traverse.ts","webpack://@visactor/vseed/./src/pipeline/utils/measures/find.ts","webpack://@visactor/vseed/./src/pipeline/advanced/table/pipes/init/autoDimensions.ts","webpack://@visactor/vseed/./src/pipeline/advanced/table/pipes/records/records.ts","webpack://@visactor/vseed/./src/pipeline/advanced/table/pipes/config/tableConfig.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/theme/theme.ts","webpack://@visactor/vseed/./src/pipeline/advanced/table/pipeline/table.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/init/table.ts","webpack://@visactor/vseed/./src/pipeline/utils/measures/typeGuard.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/columns/dimensionsToColumns.ts","webpack://@visactor/vseed/./src/pipeline/utils/format/createNumFormatter.ts","webpack://@visactor/vseed/./src/pipeline/utils/format/createFormatter.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/columns/measuresToColumns.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/theme/bodyStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/theme/headerStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/theme/frameStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/theme/selectionStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipeline/table.ts","webpack://@visactor/vseed/./src/builder/register/chartType/table.ts","webpack://@visactor/vseed/./src/pipeline/advanced/table/pipes/init/autoPivotMeasures.ts","webpack://@visactor/vseed/./src/pipeline/utils/dimensions/find.ts","webpack://@visactor/vseed/./src/pipeline/advanced/table/pipes/init/autoPivotDimensions.ts","webpack://@visactor/vseed/./src/pipeline/advanced/table/pipes/config/pivotTableConfig.ts","webpack://@visactor/vseed/./src/pipeline/advanced/table/pipeline/pivotTable.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/init/pivotTable.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/columns/pivotColumns.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/rows/pivotRows.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/indicators/pivotIndicators.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/theme/rowHeaderStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/theme/cornerHeaderStyle.ts","webpack://@visactor/vseed/../../node_modules/.pnpm/@visactor+vtable@1.19.7/node_modules/@visactor/vtable/es/ts-types/new-data-set.js","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/indicators/pivotDataConfig.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipeline/pivotTable.ts","webpack://@visactor/vseed/./src/builder/register/chartType/pivotTable.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/init/initAdvancedVSeed.ts","webpack://@visactor/vseed/./src/pipeline/utils/measures/depth.ts","webpack://@visactor/vseed/./src/pipeline/utils/chatType.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/init/autoMeasures.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/init/autoDimensions.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/pivot/pivotAdapter.ts","webpack://@visactor/vseed/./src/dataReshape/constant.ts","webpack://@visactor/vseed/./src/dataReshape/foldMeasures.ts","webpack://@visactor/vseed/./src/dataReshape/unfoldDimensions.ts","webpack://@visactor/vseed/./src/dataReshape/unfoldZeroDimensions.ts","webpack://@visactor/vseed/./src/dataReshape/dataReshapeFor2D1M0Name.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeTo2D1M0Name.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeTo2D1M0Name.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/encodingXY.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/analysis/sort.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/config.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/markStyle/markStyle.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/annotation/annotation.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/line.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/line.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/color/color.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/backgroundColor/background.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/dataset/datasetXY.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/dataset/progressive.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/xBand.ts","webpack://@visactor/vseed/./src/pipeline/utils/constant.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/yLinear.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/label/label.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltip.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/crosshair/verticalCrosshairLine.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/legend/discreteLegend.ts","webpack://@visactor/vseed/./src/dataSelector/selector.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/markStyle/pointStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/markStyle/pointState.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/markStyle/lineStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/annotation/utils.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/annotation/annotationPoint.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/annotation/annotationVerticalLine.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/annotation/annotationHorizontalLine.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/annotation/annotationArea.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/pivot.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/pivotChart/pivotGridStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/pivotChart/pivotIndicators.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/dataset/datasetPivot.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/pivotChart/pivotRowDimensions.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/pivotChart/pivotColumnDimensions.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/legend/pivotDiscreteLegend.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/pivotChart/pivotAdapter.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/line.ts","webpack://@visactor/vseed/./src/builder/register/chartType/line.ts","webpack://@visactor/vseed/./src/dataReshape/dataReshapeFor2D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeTo2D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeTo2D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/column.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/column.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/stack/stackCornerRadius.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/stack/stack.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/crosshair/verticalCrosshairRect.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/markStyle/barStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/annotation/annotationAreaBand.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/column.ts","webpack://@visactor/vseed/./src/builder/register/chartType/column.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/columnParallel.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/columnParallel.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/columnParallel.ts","webpack://@visactor/vseed/./src/builder/register/chartType/columnParallel.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/columnPercent.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/percent/percent.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/columnPercent.ts","webpack://@visactor/vseed/./src/builder/register/chartType/columnPercent.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/encodingYX.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/bar.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/bar.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/dataset/datasetYX.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/xLinear.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/yBand.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/crosshair/horizontalCrosshairRect.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/bar.ts","webpack://@visactor/vseed/./src/builder/register/chartType/bar.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/barParallel.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/barParallel.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/barParallel.ts","webpack://@visactor/vseed/./src/builder/register/chartType/barParallel.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/barPercent.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/barPercent.ts","webpack://@visactor/vseed/./src/builder/register/chartType/barPercent.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/area.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/area.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/markStyle/areaStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/area.ts","webpack://@visactor/vseed/./src/builder/register/chartType/area.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/areaPercent.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/areaPercent.ts","webpack://@visactor/vseed/./src/builder/register/chartType/areaPercent.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/init/autoMeasuresBy2M1Group.ts","webpack://@visactor/vseed/./src/dataReshape/dataReshapeFor1D.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeTo1D.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeTo1D.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/encodingAreaRange.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/areaRange.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/series/series.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/areaRange.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltipDisable.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltipAreaRange.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/areaRange.ts","webpack://@visactor/vseed/./src/builder/register/chartType/areaRange.ts","webpack://@visactor/vseed/./src/dataReshape/dataReshapeFor1D2M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeTo1D2M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeTo1D2M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/encodingYY.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/scatter.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/scatter.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/crosshair/horizontalCrosshairLine.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/scatter.ts","webpack://@visactor/vseed/./src/builder/register/chartType/scatter.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeTo2D2M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeTo2D2M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/encodingXYY.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/dualAxis.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/init/autoDualMeasures.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/dualAxis.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/initDualAxis.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/dual/dualChartType.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/dataset/datasetDualAxis.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/label/labelDualAxis.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/yLinearPrimary.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/yLinearSecondary.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/dualAxis.ts","webpack://@visactor/vseed/./src/builder/register/chartType/dualAxis.ts","webpack://@visactor/vseed/./src/dataReshape/dataReshapeFor1D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeTo1D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeTo1D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/encodingPie.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/pie.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/pie.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/pie.ts","webpack://@visactor/vseed/./src/builder/register/chartType/pie.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/donut.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/donut.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/donut.ts","webpack://@visactor/vseed/./src/builder/register/chartType/donut.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/encodingRose.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/rose.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/rose.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/radius.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/angle.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/rose.ts","webpack://@visactor/vseed/./src/builder/register/chartType/rose.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/roseParallel.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/roseParallel.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/roseParallel.ts","webpack://@visactor/vseed/./src/builder/register/chartType/roseParallel.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/encodingAR.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/radar.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/radar.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/radarAngle.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/radarRadius.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/radar.ts","webpack://@visactor/vseed/./src/builder/register/chartType/radar.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/encodingFunnel.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/funnel.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/funnel.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/color/linearColor.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/legend/colorLegend.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/funnel.ts","webpack://@visactor/vseed/./src/builder/register/chartType/funnel.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/encodingMatrix.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/heatmap.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/label/labelColorInversion.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/heatmap.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/heatmap.ts","webpack://@visactor/vseed/./src/builder/register/chartType/heatmap.ts","webpack://@visactor/vseed/./src/theme/light.ts","webpack://@visactor/vseed/./src/theme/dark.ts","webpack://@visactor/vseed/./src/builder/register/theme/custom.ts","webpack://@visactor/vseed/./src/builder/register/theme/light.ts","webpack://@visactor/vseed/./src/builder/register/theme/dark.ts","webpack://@visactor/vseed/./src/builder/register/all.ts","webpack://@visactor/vseed/./src/builder/register/custom.ts","webpack://@visactor/vseed/./src/pipeline/utils/dimensions/typeGuard.ts","webpack://@visactor/vseed/./src/types/properties/chartType/chartType.ts","webpack://@visactor/vseed/./src/types/properties/chartType/dualChartType.ts","webpack://@visactor/vseed/./src/types/properties/dataset/dataset.ts","webpack://@visactor/vseed/./src/types/properties/dimensions/dimensions.ts","webpack://@visactor/vseed/./src/types/properties/measures/format/numFormat.ts","webpack://@visactor/vseed/./src/types/properties/measures/zMeasures.ts","webpack://@visactor/vseed/./src/types/properties/measures/zDualMeasures.ts","webpack://@visactor/vseed/./src/types/properties/datasetReshapeInfo/datasetReshapeInfo.ts","webpack://@visactor/vseed/./src/types/properties/encoding/encoding.ts","webpack://@visactor/vseed/./src/types/properties/config/axes/bandAxis.ts","webpack://@visactor/vseed/./src/types/properties/config/axes/linearAxis.ts","webpack://@visactor/vseed/./src/types/properties/config/crosshair/crosshair.ts","webpack://@visactor/vseed/./src/types/properties/config/stackCornerRadius/stackCornerRadius.ts","webpack://@visactor/vseed/./src/types/properties/config/backgroundColor/backgroundColor.ts","webpack://@visactor/vseed/./src/types/properties/config/color/color.ts","webpack://@visactor/vseed/./src/types/properties/config/label/label.ts","webpack://@visactor/vseed/./src/types/properties/config/legend/legend.ts","webpack://@visactor/vseed/./src/types/properties/config/tooltip/tooltip.ts","webpack://@visactor/vseed/./src/types/properties/config/config.ts","webpack://@visactor/vseed/./src/types/properties/config/axes/axis.ts","webpack://@visactor/vseed/./src/types/properties/theme/customTheme.ts","webpack://@visactor/vseed/./src/types/properties/theme/theme.ts","webpack://@visactor/vseed/./src/types/dataSelector/selector.ts","webpack://@visactor/vseed/./src/types/properties/markStyle/barStyle.ts","webpack://@visactor/vseed/./src/types/properties/markStyle/pointStyle.ts","webpack://@visactor/vseed/./src/types/properties/markStyle/lineStyle.ts","webpack://@visactor/vseed/./src/types/properties/markStyle/areaStyle.ts","webpack://@visactor/vseed/./src/types/properties/markStyle/markStyle.ts","webpack://@visactor/vseed/./src/types/properties/annotation/zAnnotationPoint.ts","webpack://@visactor/vseed/./src/types/properties/annotation/zAnnotationVerticalLine.ts","webpack://@visactor/vseed/./src/types/properties/annotation/zAnnotationHorizontalLine.ts","webpack://@visactor/vseed/./src/types/properties/annotation/zAnnotationArea.ts","webpack://@visactor/vseed/./src/types/properties/annotation/annotation.ts","webpack://@visactor/vseed/./src/types/properties/analysis/sort.ts","webpack://@visactor/vseed/./src/types/properties/analysis/sortLegend.ts","webpack://@visactor/vseed/./src/types/properties/analysis/analysis.ts","webpack://@visactor/vseed/./src/types/i18n/i18n.ts","webpack://@visactor/vseed/./src/types/chartType/table/zTable.ts","webpack://@visactor/vseed/./src/types/chartType/pivotTable/zPivotTable.ts","webpack://@visactor/vseed/./src/types/chartType/line/zLine.ts","webpack://@visactor/vseed/./src/types/chartType/column/zColumn.ts","webpack://@visactor/vseed/./src/types/chartType/columnParallel/zColumnParallel.ts","webpack://@visactor/vseed/./src/types/chartType/columnPercent/zColumnPercent.ts","webpack://@visactor/vseed/./src/types/chartType/bar/zBar.ts","webpack://@visactor/vseed/./src/types/chartType/barParallel/zBarParallel.ts","webpack://@visactor/vseed/./src/types/chartType/barPercent/zBarPercent.ts","webpack://@visactor/vseed/./src/types/chartType/area/zArea.ts","webpack://@visactor/vseed/./src/types/chartType/areaPercent/zAreaPercent.ts","webpack://@visactor/vseed/./src/types/chartType/areaRange/zAreaRange.ts","webpack://@visactor/vseed/./src/types/chartType/scatter/zScatter.ts","webpack://@visactor/vseed/./src/types/chartType/dualAxis/zDualAxis.ts","webpack://@visactor/vseed/./src/types/chartType/rose/zRose.ts","webpack://@visactor/vseed/./src/types/chartType/roseParallel/zRoseParallel.ts","webpack://@visactor/vseed/./src/types/chartType/pie/zPie.ts","webpack://@visactor/vseed/./src/types/chartType/donut/zDonut.ts","webpack://@visactor/vseed/./src/types/chartType/radar/zRadar.ts","webpack://@visactor/vseed/./src/types/chartType/funnel/zFunnel.ts","webpack://@visactor/vseed/./src/types/chartType/heatmap/zHeatmap.ts","webpack://@visactor/vseed/./src/types/vseed.ts","webpack://@visactor/vseed/./src/types/advancedVSeed.ts"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import type { ExecPipelineType, Pipe } from 'src/types'\n\n/**\n * 执行pipeline, 每个pipe负责构建结果的一部分, 构建完成后得到完整的目标结果\n * @param pipeline pipeline数组, 每个pipe负责构建结果的一部分\n * @param initialValue 初始值\n * @param context 上下文\n * @returns 执行后的结果\n */\nexport const execPipeline: ExecPipelineType = <T, U>(\n pipeline: Array<Pipe<T, U>>,\n context: U,\n initialValue: Partial<T> = {},\n): T => {\n const result = pipeline.reduce((prev, cur) => {\n return cur(prev, context)\n }, initialValue)\n return result as T\n}\n","import type { AdvancedPipelineContext, AdvancedVSeed } from 'src/types'\nimport { execPipeline } from '../../pipeline'\nimport { Builder } from './builder'\n\nexport const buildAdvanced = (builder: Builder): AdvancedVSeed | null => {\n const start = typeof performance !== 'undefined' ? performance.now() : Date.now()\n const { chartType } = builder.vseed\n if (!chartType) {\n throw new Error('chartType is nil in buildAdvanced')\n }\n\n const pipeline = Builder.getAdvancedPipeline(chartType)\n if (!pipeline) {\n throw new Error(`no advanced pipeline for chartType ${chartType}`)\n }\n\n const context: AdvancedPipelineContext = {\n vseed: builder.vseed,\n customTheme: Builder.getThemeMap(),\n }\n\n try {\n return execPipeline<AdvancedVSeed, AdvancedPipelineContext>(pipeline, context)\n } catch (e) {\n console.error(e)\n throw new Error(`buildAdvanced error, see error info in console`)\n } finally {\n const end = typeof performance !== 'undefined' ? performance.now() : Date.now()\n builder.performance['buildAdvanced'] = `${(end - start).toFixed(4)}ms`\n }\n}\n","import type { Spec } from 'src/types'\nimport { Builder } from './builder'\nimport type { AdvancedVSeed, SpecPipelineContext } from 'src/types'\nimport { execPipeline } from '../../pipeline'\n\nexport const buildSpec = (builder: Builder, advancedVSeed: AdvancedVSeed): Spec => {\n const start = typeof performance !== 'undefined' ? performance.now() : Date.now()\n\n const { chartType } = builder.vseed\n if (!chartType) {\n throw new Error('chartType is nil in buildSpec')\n }\n\n const pipeline = Builder.getSpecPipeline(chartType)\n if (!pipeline) {\n throw new Error(`no spec pipeline for chartType ${chartType}`)\n }\n\n const context: SpecPipelineContext = {\n vseed: builder.vseed,\n advancedVSeed,\n }\n try {\n return execPipeline<Spec, SpecPipelineContext>(pipeline, context)\n } catch (e) {\n console.error(e)\n throw new Error(`buildSpec error, see error info in console`)\n } finally {\n const end = typeof performance !== 'undefined' ? performance.now() : Date.now()\n builder.performance['buildSpec'] = `${(end - start).toFixed(4)}ms`\n }\n}\n","import type { Spec } from 'src/types'\nimport type { Builder } from './builder'\n\nexport const build = (builder: Builder): Spec => {\n // console.log('debug vseed', builder.vseed)\n const advancedVSeed = builder.buildAdvanced()\n builder.advancedVSeed = advancedVSeed\n // console.log('debug advancedVSeed', advancedVSeed)\n if (!advancedVSeed) {\n throw new Error('advancedVSeed is null')\n }\n const spec = builder.buildSpec(advancedVSeed)\n builder.spec = spec\n // console.log('debug spec', spec)\n return spec\n}\n","import { isNullish } from 'remeda'\nimport translateMap from './i18n.json'\nimport type { Locale, TranslateRecordType } from '../types'\n\nclass Intl {\n private static instance: Intl\n\n private translateMap: TranslateRecordType = translateMap as unknown as TranslateRecordType\n private locale: Locale = 'zh-CN'\n\n canTranslate = (value: string) => !!this.translateMap[value]\n\n /**\n * @example i18n`指标名称`\n */\n i18n = (segments: TemplateStringsArray, ...values: Array<number | string>) => {\n const text = segments.map((segment, index) => segment + (values[index] || '')).join('')\n\n const translatedText = this.translateMap?.[text]?.[this.locale]\n if (isNullish(translatedText)) {\n console.warn(`i18n ${this.locale} no translate: ${text}`)\n return text\n }\n return translatedText\n }\n\n setLocale = (locale: Locale): void => {\n this.locale = locale\n }\n\n getLocale: () => Locale = () => this.locale\n\n public static getInstance() {\n if (!Intl.instance) {\n Intl.instance = new Intl()\n }\n\n return Intl.instance\n }\n}\n\nconst intl = Intl.getInstance()\n\nconst i18n = intl.i18n\n\nexport { intl, i18n }\n","import { unique } from 'remeda'\nimport type { Builder } from '../builder'\n\nexport const getColorItems = (builder: Builder): string[] => {\n const advancedVSeed = builder.advancedVSeed\n if (!advancedVSeed) {\n return []\n }\n\n const { datasetReshapeInfo } = advancedVSeed\n const colorItems = unique(datasetReshapeInfo.flatMap((d) => d.unfoldInfo.colorItems))\n const colorIdMap = datasetReshapeInfo.reduce<Record<string, string>>((prev, cur) => {\n return { ...prev, ...cur.unfoldInfo.colorIdMap }\n }, {})\n\n return colorItems.map((d) => colorIdMap[d])\n}\n\nexport const getColorIdMap = (builder: Builder): Record<string, string> => {\n const advancedVSeed = builder.advancedVSeed\n if (!advancedVSeed) {\n return {}\n }\n\n const { datasetReshapeInfo } = advancedVSeed\n const colorIdMap = datasetReshapeInfo.reduce<Record<string, string>>((prev, cur) => {\n return { ...prev, ...cur.unfoldInfo.colorIdMap }\n }, {})\n\n return colorIdMap\n}\n","import type {\n AdvancedPipe,\n AdvancedPipeline,\n AdvancedVSeed,\n ChartType,\n CustomThemeConfig,\n Spec,\n SpecPipe,\n SpecPipeline,\n VSeed,\n VSeedBuilder,\n} from 'src/types'\nimport { buildAdvanced } from './buildAdvanced'\nimport { buildSpec } from './buildSpec'\nimport { build } from './build'\nimport { intl } from 'src/i18n'\nimport { getColorIdMap, getColorItems } from './advanced'\n\nexport class Builder implements VSeedBuilder {\n private _vseed: VSeed\n private _advancedVSeed: AdvancedVSeed | null = null\n private _spec: Spec | null = null\n private _performance: Record<string, string | number> = {}\n\n constructor(vseed: VSeed) {\n this._vseed = vseed\n this._vseed.locale = vseed.locale || intl.getLocale()\n }\n\n /**\n * @description 构建spec\n * @returns spec\n */\n build = <T extends Spec>(): T => build(this) as T\n\n /**\n * @description 构建spec\n * @param advanced 高级配置\n * @returns spec\n */\n buildSpec = (advanced: AdvancedVSeed): Spec => buildSpec(this, advanced)\n\n /**\n * @description 构建spec\n * @returns AdvancedVSeed | null\n */\n buildAdvanced = (): AdvancedVSeed | null => buildAdvanced(this)\n\n /**\n * @description 获取颜色项, 颜色项可以重复,\n * @returns 颜色项\n */\n getColorItems = () => getColorItems(this)\n\n /**\n * @description 获取颜色id映射\n * @returns 颜色id映射\n */\n getColorIdMap = () => getColorIdMap(this)\n\n /**\n * @description 获取vseed\n * @returns vseed\n */\n get vseed() {\n return this._vseed\n }\n\n /**\n * @description 设置vseed\n * @param value vseed\n */\n set vseed(value) {\n this._vseed = value\n }\n\n /**\n * @description 获取advancedVSeed\n * @returns advancedVSeed\n */\n get advancedVSeed() {\n return this._advancedVSeed\n }\n\n /**\n *\n * @description 设置advancedVSeed\n * @param value advancedVSeed\n */\n set advancedVSeed(value) {\n this._advancedVSeed = value\n }\n\n /**\n * @description 获取spec\n * @returns spec\n */\n get spec() {\n return this._spec\n }\n\n /**\n * @description 设置spec\n * @param value spec\n */\n set spec(value) {\n this._spec = value\n }\n\n /**\n * @description 获取performance, 统计了构建spec和advancedVSeed的时间\n * @returns performance\n */\n get performance() {\n return this._performance\n }\n\n /**\n * @description 设置performance\n * @param value performance\n */\n set performance(value) {\n this._performance = value\n }\n\n /**\n * @description 获取advancedPipeline\n * @param chartType 图表类型\n * @returns advancedPipeline\n */\n static getAdvancedPipeline = (chartType: ChartType) => {\n const customPipe = Builder._customAdvancedPipe[chartType] as AdvancedPipe\n const pipeline = Builder._advancedPipelineMap[chartType] as AdvancedPipeline\n if (customPipe) {\n pipeline.push(customPipe)\n }\n return pipeline\n }\n\n /**\n * @description 获取specPipeline\n * @param chartType 图表类型\n * @returns specPipeline\n */\n\n static getSpecPipeline = (chartType: ChartType) => {\n const customPipe = Builder._customSpecPipe[chartType] as SpecPipe\n const pipeline = Builder._specPipelineMap[chartType] as SpecPipeline\n if (customPipe) {\n pipeline.push(customPipe)\n }\n return pipeline\n }\n\n /**\n * @description 根据主题key获取主题配置\n * @param themeKey 主题key\n * @example Builder.getTheme('light'), 获取浅色主题\n * @returns 主题配置\n */\n static getTheme = (themeKey: string) => Builder._themeMap[themeKey]\n\n /**\n * @description 获取主题配置映射表\n * @example Builder.getThemeMap()\n * @returns 主题配置映射表\n */\n static getThemeMap = () => Builder._themeMap\n\n /**\n * @description 从vseed创建builder\n * @param vseed 完整的vseed DSL\n * @returns builder\n */\n static from = (vseed: VSeed) => new Builder(vseed)\n\n static _advancedPipelineMap: Partial<Record<ChartType, AdvancedPipeline>> = {}\n static _specPipelineMap: Partial<Record<ChartType, SpecPipeline>> = {}\n static _customAdvancedPipe: Partial<Record<ChartType, AdvancedPipe>> = {}\n static _customSpecPipe: Partial<Record<ChartType, SpecPipe>> = {}\n static _themeMap: Record<string, CustomThemeConfig> = {}\n}\n","import type { AdvancedPipe, AdvancedVSeed } from 'src/types'\n\nexport const initAdvancedVSeed: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType, locale } = vseed\n return {\n ...advancedVSeed,\n chartType,\n locale: locale || 'zh-CN',\n } as AdvancedVSeed\n}\n","import type { AdvancedPipe, Datum, MeasureTree } from 'src/types'\n\nexport const autoMeasures: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { measures, dataset } = vseed\n\n if (!dataset) {\n throw new Error('dataset is required')\n }\n\n if (dataset.length === 0) {\n return result\n }\n\n if (measures) {\n result.measures = measures as MeasureTree\n return result\n }\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n result.measures = Object.keys(sample)\n .filter((key) => {\n return top100dataset.some((item) => typeof item[key] === 'number') && !['', null, undefined].includes(key)\n })\n .map((measure) => ({\n id: measure,\n alias: measure,\n }))\n\n return result\n}\n","/**\n * 支持泛型的非递归前序遍历\n * @param tree 根节点数组\n * @param callback 遍历时对每个节点执行的回调,返回 true 时停止遍历\n */\nexport const preorderTraverse = <T extends { id: string }, U extends { id: string; children?: (T | U)[] }>(\n tree: (T | U)[],\n callback: (node: T | U) => boolean,\n) => {\n if (!tree || tree.length === 0) return\n\n const stack: (T | U)[] = [...tree].reverse()\n\n while (stack.length > 0) {\n const node = stack.pop()!\n const stop = callback(node)\n if (stop === true) {\n return\n }\n if (!('children' in node)) {\n continue\n }\n const children = node.children\n if (children && children.length > 0) {\n for (let i = children.length - 1; i >= 0; i--) {\n const child = children[i]\n stack.push(child)\n }\n }\n }\n}\n","import type { Measure, MeasureGroup, MeasureTree } from 'src/types'\nimport { preorderTraverse } from '../tree'\n\nexport const findMeasureById = (measures: MeasureTree = [], id: string): Measure | undefined => {\n if (!measures) return undefined\n let result: Measure | undefined\n preorderTraverse<Measure, MeasureGroup>(measures, (node) => {\n if (!('children' in node)) {\n if (node.id === id) {\n result = node as Measure\n return true\n }\n }\n return false\n })\n return result\n}\n\nexport const findFirstMeasure = (measures: MeasureTree = []): Measure | undefined => {\n if (!measures) return undefined\n let result: Measure | undefined\n preorderTraverse<Measure, MeasureGroup>(measures, (node) => {\n if (!('children' in node)) {\n result = node as Measure\n return true\n }\n return false\n })\n return result\n}\n\nexport const findAllMeasures = (measures: MeasureTree = []): Measure[] => {\n if (!measures) return []\n const result: Measure[] = []\n preorderTraverse<Measure, MeasureGroup>(measures, (node) => {\n if (!('children' in node)) {\n result.push(node as Measure)\n }\n return false\n })\n return result\n}\n","import { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Datum } from 'src/types'\n\nexport const autoDimensions: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dimensions, dataset } = vseed\n\n const measures = findAllMeasures(advancedVSeed.measures)\n\n if (!dataset) {\n throw new Error('dataset is required')\n }\n\n if (dataset.length === 0) {\n return result\n }\n\n if (dimensions) {\n result.dimensions = dimensions.map((dim) => ({\n location: 'dimension',\n ...dim,\n }))\n return result\n }\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n result.dimensions = Object.keys(sample)\n .filter(\n (key) =>\n top100dataset.some((item) => typeof item[key] === 'string') &&\n !['', null, undefined].includes(key) &&\n !measures.some((measure) => measure.id === key),\n )\n .map((dim) => ({\n id: dim,\n alias: dim,\n location: 'dimension',\n }))\n\n return result\n}\n","import type { AdvancedPipe } from 'src/types'\n\nexport const records: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { dataset } = vseed\n return {\n ...advancedVSeed,\n dataset,\n }\n}\n","import { pick } from 'remeda'\nimport type { AdvancedPipe, Config } from 'src/types'\n\nexport const tableConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const config = pick(vseed, [\n 'backgroundColor',\n 'bodyFontSize',\n 'bodyFontColor',\n 'bodyBackgroundColor',\n 'headerFontSize',\n 'headerFontColor',\n 'headerBackgroundColor',\n 'hoverHeaderBackgroundColor',\n 'hoverHeaderInlineBackgroundColor',\n 'selectedBorderColor',\n 'selectedBackgroundColor',\n ]) as Config['pivotTable']\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result\n}\n","import { clone, isNullish, isNumber, isObjectType, isString, merge, mergeDeep } from 'remeda'\nimport type { AdvancedPipe, AdvancedVSeed } from 'src/types'\n\nexport const theme: AdvancedPipe = (advancedVSeed, context) => {\n const { customTheme, vseed } = context\n const { theme = 'light', chartType } = vseed\n const result = {\n ...advancedVSeed,\n } as AdvancedVSeed\n\n if (!customTheme || !customTheme[theme]) {\n return result\n }\n\n const chartConfigTheme = customTheme?.[theme].config?.[chartType]\n if (chartConfigTheme) {\n const chartConfig = result.config?.[chartType] || {}\n const mergedConfig = mergeDeep(chartConfigTheme, clone(chartConfig))\n\n // 数组项不会被Merge, 需要将1个主题配置, 合并到数组的每一项\n for (const _k in mergedConfig) {\n const key = _k as keyof typeof mergedConfig\n // 配置的第一层, 如果是数组, 则数组的每一项目和主题配置合并\n if (Array.isArray(mergedConfig[key])) {\n mergedConfig[key] = mergeArray(mergedConfig[key], chartConfigTheme[key])\n }\n }\n\n result.config = {\n [chartType]: mergedConfig,\n }\n }\n\n const chartCustomTheme = customTheme?.[theme]?.config?.[chartType]\n\n result.customTheme = {\n config: {\n [chartType]: chartCustomTheme,\n },\n }\n\n return result\n}\n\nconst mergeArray = <Destination extends Array<object>, Source extends object | number | string | undefined | null>(\n arr: Destination,\n themeItem: Source,\n): Destination => {\n if (isNullish(themeItem) || isString(themeItem) || isNumber(themeItem)) {\n return arr\n }\n\n if (!Array.isArray(arr)) {\n return arr\n }\n\n if (arr.some((d) => !isObjectType(d))) {\n return arr\n }\n\n return arr.map((item) => {\n return merge(themeItem, item)\n }) as Destination\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport { initAdvancedVSeed, autoDimensions, autoMeasures, records, tableConfig } from '../pipes'\nimport { theme } from '../../chart/pipes'\n\nexport const tableAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n records,\n tableConfig,\n theme,\n]\n","import type { ListTableConstructorOptions } from '@visactor/vtable'\nimport type { SpecPipe } from 'src/types'\n\nexport const initTable: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { dataset } = advancedVSeed\n const { config } = advancedVSeed\n const { backgroundColor = 'transparent' } = config.table || {}\n\n return {\n ...spec,\n records: dataset,\n widthMode: 'standard',\n heightMode: 'autoHeight',\n autoWrapText: true,\n columnResizeMode: 'all',\n showHeader: true,\n tooltip: {\n isShowOverflowTextTooltip: true,\n },\n animationAppear: {\n duration: 300,\n delay: 250,\n type: 'one-by-one',\n direction: 'row',\n },\n hover: {\n highlightMode: 'row',\n },\n theme: {\n underlayBackgroundColor: backgroundColor,\n },\n } as ListTableConstructorOptions\n}\n","import type { Measure, MeasureGroup } from 'src/types'\n\nexport const isMeasure = (measure: Measure | MeasureGroup): measure is Measure => {\n return !('children' in measure)\n}\n\nexport const isMeasureGroup = (measure: Measure | MeasureGroup): measure is MeasureGroup => {\n return 'children' in measure\n}\n\nexport const isMeasures = (measures: Measure[] | MeasureGroup[]): measures is Measure[] => {\n return measures.every(isMeasure)\n}\n","import type { ColumnsDefine, ListTableConstructorOptions } from '@visactor/vtable'\nimport { isMeasure } from 'src/pipeline/utils'\nimport type { Dimension, DimensionGroup, DimensionTree, SpecPipe } from 'src/types'\n\nexport const dimensionTreeToColumns: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const dimensions = (advancedVSeed as unknown as { dimensions: DimensionTree }).dimensions\n const result = { ...spec } as ListTableConstructorOptions\n const eachNode = (node: Dimension | DimensionGroup) => {\n if (isMeasure(node)) {\n return {\n width: 'auto',\n }\n }\n\n return {}\n }\n const columns = treeTreeToColumns<Dimension, DimensionGroup>(dimensions, eachNode)\n\n return {\n ...result,\n columns: [...(result.columns || []), ...columns] as ListTableConstructorOptions['columns'],\n }\n}\n\nconst treeTreeToColumns = <\n T extends { id: string; alias?: string },\n U extends { id: string; alias?: string; children?: (T | U)[] },\n>(\n tree: (T | U)[],\n callback?: (node: T | U) => object,\n): ColumnsDefine[] => {\n const result = tree.map((item) => {\n if ('children' in item && Array.isArray(item.children)) {\n const groupNode = item as unknown as U\n const field = groupNode.id\n const title = groupNode.alias ?? groupNode.id\n const props = callback?.(groupNode) || {}\n // group\n return {\n field,\n title,\n columns: treeTreeToColumns(item.children, callback),\n ...props,\n }\n } else {\n const field = item.id\n const title = item.alias ?? item.id\n const props = callback?.(item) || {}\n // leaf\n return {\n field,\n title,\n ...props,\n }\n }\n }) as unknown as ColumnsDefine[]\n\n return result || []\n}\n","import { isNumber } from 'remeda'\nimport { intl } from '../../../i18n'\nimport type { Formatter, Locale, NumFormat } from 'src/types'\n\nexport const createNumFormatter = (format: NumFormat, locale: Locale = intl.getLocale()): Formatter => {\n const {\n type = 'number',\n ratio = 1,\n symbol = '',\n thousandSeparator = true,\n prefix = '',\n suffix = '',\n\n fractionDigits = 2,\n significantDigits,\n roundingMode = 'halfExpand',\n roundingPriority = 'auto',\n } = format || {}\n\n const numFormatterOptions: Intl.NumberFormatOptions = {\n style: 'decimal',\n notation: type === 'scientific' ? 'scientific' : 'standard',\n // @ts-expect-error roundingMode is not in NumberFormatOptions\n roundingMode,\n roundingPriority,\n }\n\n if (isNumber(fractionDigits)) {\n if (fractionDigits >= 0) {\n numFormatterOptions.minimumFractionDigits = fractionDigits\n numFormatterOptions.maximumFractionDigits = fractionDigits\n }\n }\n if (isNumber(significantDigits) && significantDigits > 0) {\n if (significantDigits > 0) {\n numFormatterOptions.minimumSignificantDigits = significantDigits\n numFormatterOptions.maximumSignificantDigits = significantDigits\n }\n }\n\n const numFormatter = new Intl.NumberFormat(locale, numFormatterOptions)\n\n return (value?: number | string) => {\n let num = Number(value)\n let typeSymbol = ''\n if (Number.isNaN(num)) {\n return String(value)\n }\n\n // apply ratio for percent/permille\n if (type === 'percent') {\n num *= 100\n typeSymbol = '%'\n } else if (type === 'permille') {\n num *= 1000\n typeSymbol = '‰'\n } else if (type === 'number') {\n num = num / (ratio || 1)\n }\n\n // format value\n let numStr = numFormatter.format(num)\n\n // add thousand separator\n if (thousandSeparator) {\n const parts = numStr.split('.')\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\n numStr = parts.join('.')\n }\n\n // add symbol, typeSymbol, prefix and suffix\n return `${prefix}${numStr}${typeSymbol}${symbol}${suffix}`\n }\n}\n\nexport const autoNumFormatter = (value?: number | string, locale: Locale = intl.getLocale()): string => {\n if (value === undefined || value === null) return String(value)\n const num = Number(value)\n if (Number.isNaN(num)) return String(value)\n\n const numFormatterOptions: Intl.NumberFormatOptions = {\n style: 'decimal',\n notation: 'compact',\n }\n numFormatterOptions.minimumFractionDigits = 0\n numFormatterOptions.maximumFractionDigits = 2\n\n const numFormatter = new Intl.NumberFormat(locale, { ...numFormatterOptions })\n\n return numFormatter.format(Number(value))\n}\n","import type { Formatter, Locale, NumFormat } from 'src/types'\nimport { autoNumFormatter, createNumFormatter } from './createNumFormatter'\n\nexport const createFormatter = (format: Partial<NumFormat>): Formatter => {\n return createNumFormatter(format)\n}\n\nexport const autoFormatter = (value?: number | string, locale?: Locale): string => {\n return autoNumFormatter(value, locale)\n}\n","import type { ColumnsDefine, ListTableConstructorOptions } from '@visactor/vtable'\nimport type { FieldFormat } from '@visactor/vtable/es/ts-types'\nimport { isEmpty } from 'remeda'\nimport { autoFormatter, createFormatter, isMeasure } from 'src/pipeline/utils'\nimport type { MeasureGroup, Measure, MeasureTree, SpecPipe, Datum, Locale } from 'src/types'\n\nexport const measureTreeToColumns: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { locale } = advancedVSeed\n const measures = (advancedVSeed as unknown as { measures: MeasureTree }).measures\n const result = { ...spec } as ListTableConstructorOptions\n\n const eachNode = (node: Measure | MeasureGroup) => {\n if (isMeasure(node)) {\n return {\n width: 'auto',\n fieldFormat: fieldFormat(node, locale),\n }\n }\n\n return {}\n }\n const columns = treeTreeToColumns<Measure, MeasureGroup>(measures, eachNode)\n return {\n ...result,\n columns: [...(result.columns || []), ...columns] as ListTableConstructorOptions['columns'],\n }\n}\n\nconst fieldFormat =\n (node: Measure, locale: Locale): FieldFormat =>\n (datum: Datum) => {\n const { format = {}, autoFormat = true, id } = node\n const value = datum[id] as number | string | undefined\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n\n return\n }\n\nconst treeTreeToColumns = <\n T extends { id: string; alias?: string },\n U extends { id: string; alias?: string; children?: (T | U)[] },\n>(\n tree: (T | U)[],\n callback?: (node: T | U) => object,\n): ColumnsDefine[] => {\n const result = tree.map((item) => {\n if ('children' in item && Array.isArray(item.children)) {\n const groupNode = item as unknown as U\n const field = groupNode.id\n const title = groupNode.alias ?? groupNode.id\n const props = callback?.(groupNode) || {}\n // group\n return {\n field,\n title,\n columns: treeTreeToColumns(item.children, callback),\n ...props,\n }\n } else {\n const field = item.id\n const title = item.alias ?? item.id\n const props = callback?.(item) || {}\n // leaf\n return {\n field,\n title,\n ...props,\n }\n }\n }) as unknown as ColumnsDefine[]\n\n return result || []\n}\n","import type { BaseTableConstructorOptions } from '@visactor/vtable/es/ts-types'\nimport type { SpecPipe, TableConfig } from 'src/types'\n\nexport const bodyStyle: SpecPipe = (spec, context) => {\n const result = { ...spec } as BaseTableConstructorOptions\n const { advancedVSeed } = context\n const { chartType, config } = advancedVSeed\n const themeConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themeConfig) return result\n\n // basic\n const borderColor = themeConfig.borderColor || 'rgb(224, 224, 224)'\n const backgroundColor = themeConfig.bodyBackgroundColor || '#fff'\n const fontColor = themeConfig.bodyFontColor || '#1B1F23'\n const fontSize = themeConfig.bodyFontSize || 12\n // Interaction\n const hoverCellBgColor = themeConfig.hoverBodyBackgroundColor || '#bedaff'\n const hoverInlineColor = themeConfig.hoverBodyInlineBackgroundColor || '#bedaff'\n\n result.theme.bodyStyle = {\n borderColor: borderColor,\n borderLineWidth: 1,\n padding: [8.6, 12, 8.6, 12],\n textAlign: 'right',\n hover: {\n cellBgColor: hoverCellBgColor,\n inlineRowBgColor: hoverInlineColor,\n inlineColumnBgColor: hoverInlineColor,\n },\n color: fontColor,\n fontSize: fontSize,\n fontStyle: 'normal',\n fontWeight: 'normal',\n fontVariant: 'normal',\n bgColor: backgroundColor,\n lineHeight: fontSize * 1.5,\n }\n\n return result\n}\n","import type { BaseTableConstructorOptions } from '@visactor/vtable/es/ts-types'\nimport type { SpecPipe, TableConfig } from 'src/types'\n\nexport const headerStyle: SpecPipe = (spec, context) => {\n const result = { ...spec } as BaseTableConstructorOptions\n const { advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themConfig) return result\n\n // basic\n const borderColor = themConfig.borderColor || 'rgb(224, 224, 224)'\n const backgroundColor = themConfig.headerBackgroundColor || '#EEF1F5'\n const fontColor = themConfig.headerFontColor || '#1B1F23'\n const fontSize = themConfig.headerFontSize || 12\n // Interaction\n const hoverCellBgColor = themConfig.hoverHeaderBackgroundColor || '#bedaff'\n const hoverInlineColor = themConfig.hoverHeaderInlineBackgroundColor || '#bedaff'\n\n result.theme.headerStyle = {\n borderColor: borderColor,\n borderLineWidth: 1,\n padding: [8, 12, 8, 12],\n textAlign: 'center',\n hover: {\n cellBgColor: hoverCellBgColor,\n inlineRowBgColor: hoverInlineColor,\n inlineColumnBgColor: hoverInlineColor,\n },\n frameStyle: {\n borderColor: [null, null, borderColor, null],\n borderLineWidth: 1,\n },\n fontSize: fontSize,\n fontVariant: 'normal',\n fontStyle: 'normal',\n fontWeight: 'bold',\n color: fontColor,\n bgColor: backgroundColor,\n lineHeight: fontSize * 1.5,\n }\n\n return result\n}\n","import type { BaseTableConstructorOptions } from '@visactor/vtable/es/ts-types'\nimport type { SpecPipe, TableConfig } from 'src/types'\n\nexport const frameStyle: SpecPipe = (spec, context) => {\n const result = { ...spec } as BaseTableConstructorOptions\n const { advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themConfig) return result\n\n const borderColor = themConfig.borderColor || 'rgb(224, 224, 224)'\n\n result.theme.frameStyle = {\n borderColor,\n borderLineWidth: 0,\n cornerRadius: 4,\n }\n\n return result\n}\n","import type { BaseTableConstructorOptions } from '@visactor/vtable/es/ts-types'\nimport type { SpecPipe, TableConfig } from 'src/types'\n\nexport const selectionStyle: SpecPipe = (spec, context) => {\n const result = { ...spec } as BaseTableConstructorOptions\n const { advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themConfig) return result\n\n const borderColor = themConfig.selectedBorderColor || 'rgb(224, 224, 224)'\n const backgroundColor = themConfig.selectedBackgroundColor || 'rgb(224, 224, 224, 0.5)'\n\n result.theme.selectionStyle = {\n cellBorderColor: borderColor,\n cellBorderLineWidth: 2,\n cellBgColor: backgroundColor,\n }\n\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport { initTable, dimensionTreeToColumns, measureTreeToColumns, bodyStyle, headerStyle, frameStyle, selectionStyle } from '../pipes'\n\nexport const tableSpecPipeline: SpecPipeline = [\n initTable,\n dimensionTreeToColumns,\n measureTreeToColumns,\n bodyStyle,\n headerStyle,\n frameStyle,\n selectionStyle,\n]\n","import { tableAdvancedPipeline, tableSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerTable = () => {\n Builder._advancedPipelineMap['table'] = tableAdvancedPipeline\n Builder._specPipelineMap['table'] = tableSpecPipeline\n}","import { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Datum, Measures } from 'src/types'\n\nexport const autoPivotMeasures: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const measures = findAllMeasures(vseed.measures as Measures)\n if (!dataset) {\n throw new Error('dataset is required')\n }\n\n if (dataset.length === 0) {\n return result\n }\n\n if (vseed.measures) {\n result.measures = findAllMeasures(measures)\n return result\n }\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n result.measures = Object.keys(sample)\n .filter((key) => {\n return top100dataset.some((item) => typeof item[key] === 'number') && !['', null, undefined].includes(key)\n })\n .map((measure) => ({\n id: measure,\n alias: measure,\n }))\n\n return result\n}\n","import type { Dimension, DimensionGroup, DimensionTree } from 'src/types'\nimport { preorderTraverse } from '../tree'\n\nexport const findDimensionById = (dimensions: DimensionTree = [], id: string): Dimension | undefined => {\n if (!dimensions) return undefined\n let result: Dimension | undefined\n preorderTraverse<Dimension, DimensionGroup>(dimensions, (node) => {\n if (!('children' in node)) {\n if (node.id === id) {\n result = node as Dimension\n return true\n }\n }\n return false\n })\n return result\n}\n\nexport const findFirstDimension = (dimensions: DimensionTree = []): Dimension | undefined => {\n if (!dimensions) return undefined\n let result: Dimension | undefined\n preorderTraverse<Dimension, DimensionGroup>(dimensions, (node) => {\n if (!('children' in node)) {\n result = node as Dimension\n return true\n }\n return false\n })\n return result\n}\n\nexport const findAllDimensions = (dimensions: DimensionTree = []): Dimension[] => {\n if (!dimensions) return []\n const result: Dimension[] = []\n preorderTraverse<Dimension, DimensionGroup>(dimensions, (node) => {\n if (!('children' in node)) {\n result.push(node as Dimension)\n }\n return false\n })\n return result\n}\n","import { findAllDimensions, findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Datum, Dimensions, Measures } from 'src/types'\n\nexport const autoPivotDimensions: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dimensions, dataset } = vseed\n\n const measures = findAllMeasures(advancedVSeed.measures as Measures)\n\n if (!dataset) {\n throw new Error('dataset is required')\n }\n\n if (dataset.length === 0) {\n return result\n }\n\n if (dimensions) {\n const newDimensions = findAllDimensions(dimensions) as Dimensions\n result.dimensions = newDimensions.map((item, index) => {\n if (item.location === 'rowDimension' || item.location === 'columnDimension') {\n return item\n }\n return {\n ...item,\n location: index % 2 === 0 ? 'columnDimension' : 'rowDimension',\n }\n }) as Dimensions\n\n return result\n }\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n let i = 0\n result.dimensions = Object.keys(sample)\n .filter(\n (key) =>\n top100dataset.some((item) => typeof item[key] === 'string') &&\n !['', null, undefined].includes(key) &&\n !measures.some((measure) => measure.id === key),\n )\n .map((dim) => ({\n id: dim,\n alias: dim,\n location: i++ % 2 === 0 ? 'columnDimension' : 'rowDimension',\n })) as Dimensions\n\n return result\n}\n","import { pick } from 'remeda'\nimport type { AdvancedPipe, Config } from 'src/types'\n\nexport const pivotTableConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const config = pick(vseed, [\n 'backgroundColor',\n 'bodyFontSize',\n 'bodyFontColor',\n 'bodyBackgroundColor',\n 'headerFontSize',\n 'headerFontColor',\n 'headerBackgroundColor',\n 'hoverHeaderBackgroundColor',\n 'hoverHeaderInlineBackgroundColor',\n 'selectedBorderColor',\n 'selectedBackgroundColor',\n ]) as Config['table']\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport { theme } from '../../chart/pipes'\nimport { autoPivotDimensions, autoPivotMeasures, initAdvancedVSeed, pivotTableConfig, records } from '../pipes'\n\nexport const pivotTableAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoPivotMeasures,\n autoPivotDimensions,\n records,\n pivotTableConfig,\n theme,\n]\n","import type { PivotTableConstructorOptions } from '@visactor/vtable'\nimport type { SpecPipe } from 'src/types'\n\nexport const initPivotTable: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { dataset } = advancedVSeed\n const { config } = advancedVSeed\n const { backgroundColor = 'transparent' } = config.pivotTable || {}\n return {\n ...spec,\n records: dataset,\n widthMode: 'standard',\n heightMode: 'autoHeight',\n autoWrapText: true,\n columnResizeMode: 'all',\n columnResizeType: 'column',\n showColumnHeader: true,\n showRowHeader: true,\n select: {\n highlightMode: 'cell',\n headerSelectMode: 'inline',\n },\n hover: {\n highlightMode: 'cross',\n },\n tooltip: {\n isShowOverflowTextTooltip: true,\n },\n widthAdaptiveMode: 'all',\n animationAppear: {\n duration: 300,\n delay: 250,\n type: 'one-by-one',\n direction: 'row',\n },\n theme: {\n underlayBackgroundColor: backgroundColor,\n },\n } as PivotTableConstructorOptions\n}\n","import type { PivotTableConstructorOptions } from '@visactor/vtable'\nimport type { Dimensions, SpecPipe } from 'src/types'\n\nexport const pivotColumns: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const dimensions = advancedVSeed.dimensions as Dimensions\n const columns = dimensions.filter((item) => item['location'] === 'columnDimension')\n\n return {\n ...spec,\n columns: columns.map((item) => {\n return {\n dimensionKey: item.id,\n title: item.alias || item.id,\n width: 'auto',\n }\n }),\n } as PivotTableConstructorOptions\n}\n","import type { Dimensions, SpecPipe } from 'src/types'\n\nexport const pivotRows: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const dimensions = advancedVSeed.dimensions as Dimensions\n const rows = dimensions.filter((item) => item['location'] === 'rowDimension')\n\n return {\n ...spec,\n rows: rows.map((item) => {\n return {\n dimensionKey: item.id,\n title: item.alias || item.id,\n width: 'auto',\n }\n }),\n }\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { FieldFormat } from '@visactor/vtable/es/ts-types'\nimport { isEmpty } from 'remeda'\nimport { intl } from 'src/i18n'\nimport { autoFormatter, createFormatter, isMeasure } from 'src/pipeline/utils'\nimport type { Locale, Measure, Measures, SpecPipe } from 'src/types'\n\nexport const pivotIndicators: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { locale } = advancedVSeed\n const measures = (advancedVSeed as unknown as { measures: Measures }).measures\n\n return {\n ...spec,\n indicatorsAsCol: true,\n indicatorTitle: intl.i18n`指标名称`,\n indicators: measures.map((item) => {\n if (isMeasure(item)) {\n return {\n cellType: 'text',\n indicatorKey: item.id,\n title: item.alias || item.id,\n width: 'auto',\n format: fieldFormat(item, locale),\n }\n }\n return {}\n }) as unknown as PivotChartConstructorOptions['indicators'],\n }\n}\n\nconst fieldFormat =\n (node: Measure, locale: Locale): FieldFormat =>\n (value: number | string) => {\n const { format = {}, autoFormat = true } = node\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n\n return\n }\n","import type { BaseTableConstructorOptions } from '@visactor/vtable/es/ts-types'\nimport type { SpecPipe, TableConfig } from 'src/types'\n\nexport const rowHeaderStyle: SpecPipe = (spec, context) => {\n const result = { ...spec } as BaseTableConstructorOptions\n const { advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themConfig) return result\n\n // basic\n const borderColor = themConfig.borderColor || 'rgb(224, 224, 224)'\n const backgroundColor = themConfig.headerBackgroundColor || '#EEF1F5'\n const fontColor = themConfig.headerFontColor || '#1B1F23'\n const fontSize = themConfig.headerFontSize || 12\n // Interaction\n const hoverCellBgColor = themConfig.hoverHeaderBackgroundColor || '#bedaff'\n const hoverInlineColor = themConfig.hoverHeaderInlineBackgroundColor || '#bedaff'\n\n result.theme.rowHeaderStyle = {\n borderColor: borderColor,\n borderLineWidth: 1,\n padding: [8.6, 12, 8.6, 12],\n textAlign: 'left',\n hover: {\n cellBgColor: hoverCellBgColor,\n inlineRowBgColor: hoverInlineColor,\n inlineColumnBgColor: hoverInlineColor,\n },\n frameStyle: {\n borderColor: [null, borderColor, null, null],\n borderLineWidth: 1,\n },\n fontSize: fontSize,\n fontVariant: 'normal',\n fontStyle: 'normal',\n fontWeight: 'bold',\n color: fontColor,\n bgColor: backgroundColor,\n lineHeight: fontSize * 1.5,\n }\n\n return result\n}\n","import type { BaseTableConstructorOptions } from '@visactor/vtable/es/ts-types'\nimport type { SpecPipe, TableConfig } from 'src/types'\n\nexport const cornerHeaderStyle: SpecPipe = (spec, context) => {\n const result = { ...spec } as BaseTableConstructorOptions\n const { advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themConfig) return result\n\n // basic\n const borderColor = themConfig.borderColor || 'rgb(224, 224, 224)'\n const backgroundColor = themConfig.headerBackgroundColor || '#EEF1F5'\n const fontColor = themConfig.headerFontColor || '#1B1F23'\n const fontSize = themConfig.headerFontSize || 12\n // Interaction\n const hoverInlineColor = themConfig.hoverHeaderInlineBackgroundColor\n const hoverCellColor = themConfig.hoverHeaderBackgroundColor\n\n result.theme.cornerHeaderStyle = {\n borderColor: [borderColor, borderColor],\n borderLineWidth: 1,\n padding: [8, 12, 8, 12],\n textAlign: 'left',\n hover: {\n cellBgColor: hoverCellColor || undefined,\n inlineRowBgColor: hoverInlineColor || undefined,\n inlineColumnBgColor: hoverInlineColor || undefined,\n },\n frameStyle: {\n borderColor: [null, borderColor, borderColor, null],\n borderLineWidth: 1,\n },\n fontSize: fontSize,\n fontVariant: 'normal',\n fontStyle: 'normal',\n fontWeight: 'bold',\n color: fontColor,\n bgColor: backgroundColor,\n lineHeight: fontSize * 1.5,\n }\n\n return result\n}\n","export var AggregationType;\n\n!function(AggregationType) {\n AggregationType.RECORD = \"RECORD\", AggregationType.NONE = \"NONE\", AggregationType.SUM = \"SUM\", \n AggregationType.MIN = \"MIN\", AggregationType.MAX = \"MAX\", AggregationType.AVG = \"AVG\", \n AggregationType.COUNT = \"COUNT\", AggregationType.CUSTOM = \"CUSTOM\", AggregationType.RECALCULATE = \"RECALCULATE\";\n}(AggregationType || (AggregationType = {}));\n\nexport var SortType;\n\n!function(SortType) {\n SortType.ASC = \"ASC\", SortType.DESC = \"DESC\", SortType.NORMAL = \"NORMAL\", SortType.desc = \"desc\", \n SortType.asc = \"asc\", SortType.normal = \"normal\";\n}(SortType || (SortType = {}));\n//# sourceMappingURL=new-data-set.js.map\n","import { AggregationType } from '@visactor/vtable/es/ts-types'\nimport { findAllMeasures } from 'src/pipeline/utils'\nimport type { SpecPipe } from 'src/types'\n\nexport const dataConfig: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const measures = findAllMeasures(advancedVSeed.measures)\n\n const aggregationRules = measures.map((measure) => ({\n field: measure.id,\n aggregationType: AggregationType.NONE,\n indicatorKey: measure.id,\n }))\n\n return {\n ...spec,\n dataConfig: {\n aggregationRules,\n },\n }\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n initPivotTable,\n pivotColumns,\n pivotRows,\n pivotIndicators,\n bodyStyle,\n headerStyle,\n rowHeaderStyle,\n cornerHeaderStyle,\n frameStyle,\n selectionStyle,\n} from '../pipes'\nimport { dataConfig } from '../pipes/indicators/pivotDataConfig'\n\nexport const pivotTableSpecPipeline: SpecPipeline = [\n initPivotTable,\n pivotColumns,\n pivotRows,\n pivotIndicators,\n bodyStyle,\n headerStyle,\n rowHeaderStyle,\n cornerHeaderStyle,\n frameStyle,\n selectionStyle,\n dataConfig,\n]\n","import { pivotTableAdvancedPipeline, pivotTableSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerPivotTable = () => {\n Builder._advancedPipelineMap['pivotTable'] = pivotTableAdvancedPipeline\n Builder._specPipelineMap['pivotTable'] = pivotTableSpecPipeline\n}","import type { AdvancedPipe, AdvancedVSeed } from 'src/types'\n\nexport const initAdvancedVSeed: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType, locale } = vseed\n return {\n ...advancedVSeed,\n chartType,\n locale: locale || 'zh-CN',\n } as AdvancedVSeed\n}\n","import type { Measure, MeasureGroup, MeasureTree } from \"src/types\"\nimport { preorderTraverse } from \"../tree/traverse\"\n\n/**\n * 获取measures的深度\n * @param measures\n * @param id\n * @returns\n */\nexport const measureDepth = (measures: MeasureTree = []): number => {\n if (!measures) return 0\n let depth = 1\n preorderTraverse<Measure, MeasureGroup>(measures, (node) => {\n if ('children' in node) {\n depth = Math.max(depth, 1 + measureDepth(node.children))\n }\n return false\n })\n return depth\n}\n","import type { Dimensions, DimensionGroup, DimensionTree, VSeed } from 'src/types'\nimport { measureDepth } from './measures'\n\nexport const isTable = (vseed: VSeed) => {\n return vseed.chartType === 'table'\n}\nexport const isPivotTable = (vseed: VSeed) => {\n return vseed.chartType === 'pivotTable'\n}\nexport const isVTable = (vseed: VSeed) => {\n return ['table', 'pivotTable'].includes(vseed.chartType)\n}\nexport const isVChart = (vseed: VSeed): boolean => {\n return !isVTable(vseed)\n}\nexport const isPivotChart = (vseed: VSeed) => {\n if (isVTable(vseed)) {\n return false\n }\n\n if (vseed.chartType === 'dualAxis') {\n if (vseed.measures) {\n const depth = measureDepth(vseed.measures)\n if (depth === 3) {\n return true\n }\n return false\n }\n\n if (vseed.dualMeasures && vseed.dualMeasures.length > 1) {\n return true\n }\n\n return false\n }\n\n const { measures = [], dimensions = [] } = vseed as {\n measures: DimensionTree\n dimensions: Dimensions\n }\n\n const hasRowOrColumnDimension =\n dimensions &&\n dimensions.some((dimension) => dimension.location === 'rowDimension' || dimension.location === 'columnDimension')\n\n const hasMeasureGroup = measures && measures.some((measure: DimensionGroup) => measure && measure.children)\n\n return hasRowOrColumnDimension || hasMeasureGroup\n}\n","import { isPivotChart } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Datum, DimensionGroup, MeasureGroup, MeasureTree } from 'src/types'\n\nexport const autoMeasures: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { measures, dataset } = vseed\n\n if (!dataset) {\n throw new Error('dataset is required')\n }\n\n if (dataset.length === 0) {\n return result\n }\n\n if (isPivotChart(vseed)) {\n return autoMeasureGroup(advancedVSeed, context)\n }\n\n if (measures) {\n result.measures = measures as MeasureTree\n return result\n }\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n result.measures = Object.keys(sample)\n .filter((key) => {\n return top100dataset.some((item) => typeof item[key] === 'number') && !['', null, undefined].includes(key)\n })\n .map((measure) => ({\n id: measure,\n alias: measure,\n }))\n\n return result\n}\n\nconst autoMeasureGroup: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { measures } = vseed as {\n measures?: MeasureGroup[]\n }\n const hasMeasureGroup = measures?.some((measure) => measure.children)\n\n if (!measures) {\n return advancedVSeed\n }\n\n // 没有指标组, 则自动添加一个指标组\n if (!hasMeasureGroup) {\n const newMeasures = [\n {\n id: 'measureGroup',\n alias: 'measureGroup',\n children: measures,\n },\n ]\n return {\n ...advancedVSeed,\n measures: newMeasures,\n }\n }\n\n // 存在指标组, 则任意连续的独立指标成组\n let currentGroup: DimensionGroup = createEmptyMeasureGroup()\n const measureGroups: DimensionGroup[] = []\n for (const measure of measures) {\n if ('children' in measure) {\n // 当前指标组之前的所有独立指标成组\n if (currentGroup.children?.length) {\n currentGroup.alias = currentGroup.children.map((item) => item.alias).join('-')\n currentGroup.id = currentGroup.alias + currentGroup.children.map((item) => item.id).join('-')\n measureGroups.push(currentGroup)\n currentGroup = createEmptyMeasureGroup()\n }\n // 当前是指标组\n measureGroups.push(measure)\n } else {\n currentGroup.children?.push(measure)\n }\n }\n\n // 最后一组\n if (currentGroup.children?.length) {\n currentGroup.alias = currentGroup.children.map((item) => item.alias).join('-')\n currentGroup.id = currentGroup.alias + currentGroup.children.map((item) => item.id).join('-')\n measureGroups.push(currentGroup)\n currentGroup = createEmptyMeasureGroup()\n }\n\n advancedVSeed.measures = measureGroups\n return advancedVSeed\n}\n\nconst createEmptyMeasureGroup = () => {\n return {\n id: '',\n alias: '',\n children: [],\n }\n}\n","import { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Datum, DimensionTree } from 'src/types'\n\nexport const autoDimensions: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dimensions, dataset } = vseed\n\n const measures = findAllMeasures(advancedVSeed.measures as DimensionTree)\n\n if (!dataset) {\n throw new Error('dataset is required')\n }\n\n if (dataset.length === 0) {\n return result\n }\n\n if (dimensions) {\n result.dimensions = dimensions.map((dim) => ({\n location: 'dimension',\n ...dim,\n }))\n return result\n }\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n result.dimensions = Object.keys(sample)\n .filter(\n (key) =>\n top100dataset.some((item) => typeof item[key] === 'string') &&\n !['', null, undefined].includes(key) &&\n !measures.some((measure) => measure.id === key),\n )\n .map((dim) => ({\n id: dim,\n alias: dim,\n location: 'dimension',\n }))\n\n return result\n}\n","import type { AdvancedPipe, AdvancedPipeline, AdvancedPipelineContext, AdvancedVSeed } from 'src/types'\nimport { execPipeline, isPivotChart } from 'src/pipeline/utils'\n\nexport const pivotAdapter = (pipeline: AdvancedPipeline, pivotPipeline: AdvancedPipeline): AdvancedPipe => {\n return (advancedVSeed, context) => {\n const { vseed } = context\n const usePivotChart = isPivotChart(vseed)\n\n if (usePivotChart) {\n return execPipeline<AdvancedVSeed, AdvancedPipelineContext>(pivotPipeline, context, advancedVSeed)\n }\n\n return execPipeline<AdvancedVSeed, AdvancedPipelineContext>(pipeline, context, advancedVSeed)\n }\n}\n","// Reshape Measures\nexport const FoldMeasureName = '__MeaName__'\nexport const FoldMeasureId = '__MeaId__'\nexport const FoldMeasureValue = '__MeaValue__'\n\nexport const FoldPrimaryMeasureValue = '__MeaPrimaryValue__'\nexport const FoldSecondaryMeasureValue = '__MeaSecondaryValue__'\n\n// Reshape Dimensions\nexport const UnfoldDimensionGroup = '__DimGroup__'\nexport const UnfoldDimensionGroupId = '__DimGroupID__'\n\nexport const Separator = '-'\n\nexport const ORIGINAL_DATA = '__OriginalData__'\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { Dataset, FoldInfo, Dimension, Measures, DimensionTree } from 'src/types'\nimport { FoldMeasureId, FoldMeasureName, FoldMeasureValue, ORIGINAL_DATA } from './constant'\nimport { omit } from 'remeda'\n\n/**\n * 折叠指定的指标\n * @description 合并指定的指标为1个, 无论多少个, 都能转换为1个, 取名为fold, 意为折叠后混合在一起.\n */\nexport const foldMeasures = (\n dataset: Dataset,\n measures: Dimension[],\n measureId = FoldMeasureId,\n measureName = FoldMeasureName,\n measureValue = FoldMeasureValue,\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n} => {\n const foldInfo: FoldInfo = {\n measureId,\n measureName,\n measureValue,\n foldMap: {},\n }\n const result: Dataset = new Array(dataset.length * measures.length) as Dataset\n let index = 0\n const ids = measures.map((d) => d.id)\n for (let i = 0; i < dataset.length; i++) {\n for (let j = 0; j < measures.length; j++) {\n const datum: Record<string, any> = omit({ ...dataset[i] }, ids)\n\n datum[ORIGINAL_DATA] = dataset[i]\n\n const measure = measures[j]\n const { id, alias } = measure\n\n datum[id] = dataset[i][id] as unknown\n datum[measureId] = id\n datum[measureName] = alias || id\n datum[measureValue] = dataset[i][id] as unknown\n\n foldInfo.foldMap[id] = alias\n result[index++] = datum\n }\n }\n\n return {\n dataset: result,\n foldInfo,\n }\n}\n\n/**\n * 折叠指定的指标组, 至多支持2层\n * @param dataset\n * @param measures\n * @param measureId\n * @param measureName\n * @param measureValue\n * @returns\n */\nexport const foldMeasureGroups = (\n dataset: Dataset,\n measures: Required<DimensionTree>,\n measureId = '__MeaId__',\n measureName = '__MeaName__',\n measureValue = '__MeaValue__',\n) => {\n const groups: Array<Measures> = []\n if (!measures) {\n return {\n dataset,\n }\n }\n\n // 没有分组, 直接折叠所有指标\n if (!measures.some((measure) => 'children' in measure)) {\n return foldMeasures(dataset, measures, measureId, measureName, measureValue)\n }\n\n measures.forEach((measure) => {\n if ('children' in measure && measure.children) {\n groups.push(measure.children)\n } else {\n groups.push([measure])\n }\n })\n\n // 一组返回一个dataset\n const datasetGroup = groups.map((measures) => {\n if (!measures) {\n return []\n }\n return foldMeasures(dataset, measures, measureId, measureName, measureValue)\n })\n\n return {\n datasetGroup,\n }\n}\n","import type { Dataset, Datum, Dimension, Measure } from 'src/types'\nimport type { UnfoldInfo } from 'src/types'\nimport { UnfoldDimensionGroup, Separator, UnfoldDimensionGroupId, FoldMeasureId } from './constant'\nimport { unique } from 'remeda'\n\n/**\n * TODO: 优化展开维度的性能\n * 展开指定的维度\n * @description 第一步: 根据指定的维度, 将多个维度展开为N个指标(取决于维值去重后的数量), 随后合并成一个维度.\n */\nexport const unfoldDimensions = (\n dataset: Dataset,\n dimensions: Dimension[],\n measures: Measure[],\n unfoldStartIndex: number = 0,\n unfoldGroupName: string = UnfoldDimensionGroup,\n unfoldGroupId: string = UnfoldDimensionGroupId,\n foldMeasureId: string = FoldMeasureId,\n dimensionsSeparator: string = Separator,\n): {\n dataset: Dataset\n unfoldInfo: UnfoldInfo\n} => {\n if (unfoldStartIndex < 0 || unfoldStartIndex >= dimensions.length) {\n throw new Error('unfoldStartIndex is out of range')\n }\n\n const dimensionsToBeUnfolded = dimensions.slice(unfoldStartIndex)\n const unfoldInfo: UnfoldInfo = {\n groupName: unfoldGroupName,\n groupId: unfoldGroupId,\n colorItems: [],\n colorIdMap: {},\n }\n\n // 指标为空或维度为空, 则不检测\n if (dimensions.length === 0 || measures.length === 0) {\n return {\n dataset,\n unfoldInfo: {\n groupName: unfoldGroupName,\n groupId: unfoldGroupId,\n colorItems: [],\n colorIdMap: {},\n },\n }\n }\n\n const colorItems = []\n const colorMap: Record<string, string> = {}\n for (let i = 0; i < dataset.length; i++) {\n const datum = dataset[i]\n const colorName = generateDimGroupName(dimensionsToBeUnfolded, datum, dimensionsSeparator)\n const colorId = datum[foldMeasureId]\n ? [colorName, datum[foldMeasureId] as string].join(dimensionsSeparator)\n : colorName\n datum[unfoldGroupName] = colorName\n datum[unfoldGroupId] = colorId\n colorItems.push(colorId)\n colorMap[colorId] = colorName\n }\n\n unfoldInfo.colorItems = unique(colorItems)\n unfoldInfo.colorIdMap = colorMap\n return {\n dataset,\n unfoldInfo,\n }\n}\n\n/**\n * 生成维度组合名称\n * @param dimensionsToBeGrouped 待分组的维度\n * @param datum 数据项\n * @param dimensionsSeparator 维度分隔符\n * @returns 维度组合名称\n */\nexport const generateDimGroupName = (dimensionsToBeGrouped: Dimension[], datum: Datum, dimensionsSeparator: string) => {\n return dimensionsToBeGrouped.map((dim) => String(datum[dim.id])).join(dimensionsSeparator)\n}\n","import type { Dataset, Measure } from 'src/types'\nimport type { UnfoldInfo } from 'src/types'\nimport { UnfoldDimensionGroup, UnfoldDimensionGroupId } from './constant'\nimport { unique } from 'remeda'\n\n/**\n * 展开0个维度的特殊情况, 折线图、面积图、雷达图只有指标没有维度的情况, 应该所有的指标应该作为一个维度\n * @description\n */\nexport const unfoldZeroDimensions = (\n dataset: Dataset,\n measures: Measure[],\n measureName: string,\n unfoldGroupName: string = UnfoldDimensionGroup,\n unfoldGroupId: string = UnfoldDimensionGroupId,\n): {\n dataset: Dataset\n unfoldInfo: UnfoldInfo\n} => {\n const unfoldInfo: UnfoldInfo = {\n groupName: unfoldGroupName,\n groupId: unfoldGroupId,\n colorItems: [],\n colorIdMap: {},\n }\n\n // 指标为空或维度为空, 则不检测\n if (measures.length === 0) {\n return {\n dataset,\n unfoldInfo: {\n groupName: unfoldGroupName,\n groupId: unfoldGroupId,\n colorItems: [],\n colorIdMap: {},\n },\n }\n }\n\n const colorItems = []\n const colorMap: Record<string, string> = {}\n for (let i = 0; i < dataset.length; i++) {\n const datum = dataset[i]\n const colorName = measureName\n const colorId = measureName\n datum[unfoldGroupName] = colorName\n datum[unfoldGroupId] = colorId\n colorItems.push(colorId)\n colorMap[colorId] = colorName\n }\n\n unfoldInfo.colorItems = unique(colorItems)\n unfoldInfo.colorIdMap = colorMap\n return {\n dataset,\n unfoldInfo,\n }\n}\n","import type { Dataset, Dimension, FoldInfo, Measure, UnfoldInfo } from 'src/types'\nimport { foldMeasures } from './foldMeasures'\nimport {\n UnfoldDimensionGroup,\n FoldMeasureId,\n FoldMeasureName,\n FoldMeasureValue,\n UnfoldDimensionGroupId,\n} from './constant'\nimport { unfoldDimensions } from './unfoldDimensions'\nimport { unfoldZeroDimensions } from './unfoldZeroDimensions'\nimport { i18n } from '../i18n'\n\nconst emptyReshapeResult: {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n} = {\n dataset: [],\n foldInfo: {\n foldMap: {},\n measureId: '',\n measureName: '',\n measureValue: '',\n },\n unfoldInfo: {\n groupName: '',\n groupId: '',\n colorItems: [],\n colorIdMap: {},\n },\n}\n/**\n * 数据重塑为2个维度1个指标, 并且不根据指标名称展开出一个新维度\n * @param dataset\n * @param dimensions\n * @param measures\n * @returns\n */\nexport const dataReshapeFor2D1M0Name = (\n dataset: Dataset,\n dimensions: Dimension[],\n measures: Measure[],\n options?: {\n foldMeasureId?: string\n foldMeasureName?: string\n foldMeasureValue?: string\n unfoldDimensionGroup?: string\n unfoldDimensionGroupId?: string\n },\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n} => {\n const {\n foldMeasureId = FoldMeasureId,\n foldMeasureName = FoldMeasureName,\n foldMeasureValue = FoldMeasureValue,\n unfoldDimensionGroup = UnfoldDimensionGroup,\n unfoldDimensionGroupId = UnfoldDimensionGroupId,\n } = options || {}\n if (dimensions.length === 0 && measures.length === 0) {\n return emptyReshapeResult\n }\n\n // 合并所有指标为1个指标\n const { dataset: foldedDataset, foldInfo } = foldMeasures(\n dataset,\n measures,\n foldMeasureId,\n foldMeasureName,\n foldMeasureValue,\n )\n\n if (dimensions.length === 0) {\n const { dataset: finalDataset, unfoldInfo } = unfoldZeroDimensions(\n foldedDataset,\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\n i18n`指标名称`,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n } else {\n const onlyOneMeasure = measures.length === 1\n const onlyOneDimension = dimensions.length === 1\n\n const dims = [...dimensions]\n if (!onlyOneMeasure || onlyOneDimension) {\n dims.push({ id: foldMeasureName, alias: i18n`指标名称`, location: 'dimension' })\n }\n\n // 展开指定的维度为指标\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n dims,\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\n 1,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n foldMeasureId,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n }\n}\n","import { dataReshapeFor2D1M0Name } from 'src/dataReshape'\nimport type { AdvancedPipe } from 'src/types'\n\n/**\n * @description 数据重塑, 将任意维度、任意指标, 重塑为2个维度1个指标, 并且在0维度时, 合并所有指标为一个维度. 兼容折线图、面积图、雷达图只有指标, 没有维度的场景\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const reshapeTo2D1M0Name: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { dimensions, measures } = advancedVSeed\n\n if (!measures || !dimensions || !dataset) {\n return result\n }\n\n if (measures.length === 0) {\n throw new Error('measures can not be empty')\n }\n\n const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeFor2D1M0Name(dataset, dimensions, measures)\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: [\n {\n id: '2D1M',\n index: 0,\n foldInfo,\n unfoldInfo,\n },\n ],\n dimensions,\n measures,\n }\n}\n","import { FoldMeasureId, FoldMeasureName, FoldMeasureValue, UnfoldDimensionGroup } from 'src/dataReshape/constant'\nimport { dataReshapeFor2D1M0Name } from 'src/dataReshape'\nimport type { AdvancedPipe, Dataset, DatasetReshapeInfo, Dimensions, MeasureGroup } from 'src/types'\n\n/**\n * @description 数据重塑为透视结构, 如果存在指标分组, 则将数据按组划分. 如果存在行列维度, 则生成行列树结构. 并且在0维度时, 合并所有指标为一个维度. 兼容折线图、面积图、雷达图只有指标, 没有维度的场景\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const pivotReshapeTo2D1M0Name: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { measures } = advancedVSeed\n const dimensions = advancedVSeed.dimensions as Dimensions\n\n if (!measures || !dimensions) {\n return result\n }\n\n const measureGroups: MeasureGroup[] = []\n if (measures) {\n measures.forEach((measure: MeasureGroup) => {\n if (measure.children && measure.children.length > 0) {\n measureGroups.push(measure)\n }\n })\n }\n const commonDimensions = dimensions.filter((dim) => dim.location === 'dimension')\n\n const newDatasets: Dataset = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n measureGroups.forEach((measureGroup, index) => {\n const measures = measureGroup.children\n if (!measures) {\n return\n }\n const groupId = measureGroup.id\n const {\n dataset: newSubDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeFor2D1M0Name(dataset, commonDimensions, measures, {\n foldMeasureId: FoldMeasureId,\n foldMeasureName: FoldMeasureName,\n foldMeasureValue: FoldMeasureValue + groupId,\n unfoldDimensionGroup: UnfoldDimensionGroup,\n })\n const reshapeInfo = {\n id: groupId,\n index,\n foldInfo,\n unfoldInfo,\n }\n newDatasets.push(newSubDataset)\n datasetReshapeInfo.push(reshapeInfo)\n })\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n","import type { AdvancedPipe, Dimensions, FoldInfo, UnfoldInfo } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingXY: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo, dimensions } = advancedVSeed\n if (!datasetReshapeInfo || !dimensions) {\n return result\n }\n\n const xDimension =\n (dimensions as Dimensions).find(\n (item) => item.location !== 'rowDimension' && item.location !== 'columnDimension',\n ) || dimensions[0]\n\n const isZeroDimension = dimensions.length === 0\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfo, unfoldInfo } = cur as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n const x = [isZeroDimension ? foldInfo.measureName : xDimension?.id]\n const y = [foldInfo.measureValue]\n const group = [unfoldInfo.groupId]\n const color = [foldInfo.measureName]\n\n return [\n ...prev,\n {\n x,\n y,\n group,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import { sort, unique } from 'remeda'\nimport type { AdvancedPipe, Dataset, Datum, Line, Sort, SortLegend } from 'src/types'\n\nexport const sortXBandAxis: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { sort: sortAxis, dataset } = vseed as Line\n const { encoding } = advancedVSeed\n const xField = encoding?.[0]?.x?.[0]\n if (!sortAxis || !xField) {\n return advancedVSeed\n }\n if (!result.analysis) result.analysis = {}\n if (!result.analysis.orderMapping) result.analysis.orderMapping = {}\n\n const axisOrderResult = calcOrder(sortAxis, xField, dataset)\n\n result.analysis.orderMapping[xField] = axisOrderResult\n\n return result\n}\n\nexport const sortYBandAxis: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { sort: sortAxis, dataset } = vseed as Line\n const { encoding } = advancedVSeed\n const yField = encoding?.[0]?.y?.[0]\n if (!sortAxis || !yField) {\n return advancedVSeed\n }\n if (!result.analysis) result.analysis = {}\n if (!result.analysis.orderMapping) result.analysis.orderMapping = {}\n\n const axisOrderResult = calcOrder(sortAxis, yField, dataset)\n\n result.analysis.orderMapping[yField] = axisOrderResult\n\n return result\n}\n\nexport const sortLegend: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { sortLegend } = vseed as Line\n const { datasetReshapeInfo } = advancedVSeed\n const groupField = datasetReshapeInfo?.[0]?.unfoldInfo?.groupId\n const colorIdMap = datasetReshapeInfo?.[0]?.unfoldInfo?.colorIdMap\n const colorItems = datasetReshapeInfo?.[0]?.unfoldInfo?.colorItems\n if (!sortLegend || !groupField || !colorIdMap || !colorItems) {\n return advancedVSeed\n }\n\n if (!result.analysis) result.analysis = {}\n if (!result.analysis.orderMapping) result.analysis.orderMapping = {}\n\n if (sortLegend.customOrder) {\n const nameMap = Object.keys(colorIdMap).reduce<Record<string, string>>((pre, cur) => {\n pre[colorIdMap[cur]] = cur\n return pre\n }, {})\n\n // 先根据名称匹配, 若名称不存在, 则根据id匹配, 从而兼容名称和id的两种情况\n const orderRes = sortLegend.customOrder.map((itemNameOrId) =>\n nameMap[itemNameOrId] ? nameMap[itemNameOrId] : itemNameOrId,\n )\n result.analysis.orderMapping[groupField] = orderRes\n return result\n }\n\n const dataset = advancedVSeed.dataset?.flat(2)\n\n const orderRes = calcOrder(sortLegend, groupField, dataset || [])\n result.analysis.orderMapping[groupField] = orderRes\n\n return result\n}\n\nconst calcOrder = (sortConfig: Sort | SortLegend, id: string, dataset: Dataset): string[] => {\n if (sortConfig.customOrder) {\n return sortConfig.customOrder\n }\n\n const order = sortConfig.order || 'asc'\n const orderBy = sortConfig.orderBy\n\n const res = sort(dataset, (a, b) => {\n const aValue = a[orderBy || id] as string | number\n const bValue = b[orderBy || id] as string | number\n\n if (order === 'asc') {\n if (aValue < bValue) {\n return -1\n }\n if (aValue > bValue) {\n return 1\n }\n return 0\n }\n if (aValue > bValue) {\n return -1\n }\n if (aValue < bValue) {\n return 1\n }\n return 0\n })\n\n return unique(res.map((item: Datum) => item[id] as string))\n}\n","import { pick } from 'remeda'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const lineConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const config = pick(vseed, [\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n 'xAxis',\n 'yAxis',\n 'crosshairLine',\n ]) as Config['line']\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n\nexport const columnConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const config = pick(vseed, [\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n 'xAxis',\n 'yAxis',\n 'crosshairRect',\n 'stackCornerRadius',\n ]) as Config['column']\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n\nexport const pieConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const config = pick(vseed, ['backgroundColor', 'color', 'label', 'legend', 'tooltip']) as Config['pie']\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n\nexport const areaConfig: AdvancedPipe = lineConfig\nexport const areaPercentConfig: AdvancedPipe = lineConfig\nexport const scatterConfig: AdvancedPipe = lineConfig\n\nexport const barConfig: AdvancedPipe = columnConfig\nexport const barParallelConfig: AdvancedPipe = columnConfig\nexport const barPercentConfig: AdvancedPipe = columnConfig\nexport const columnParallelConfig: AdvancedPipe = columnConfig\nexport const columnPercentConfig: AdvancedPipe = columnConfig\n\nexport const donutConfig: AdvancedPipe = pieConfig\nexport const roseConfig: AdvancedPipe = pieConfig\nexport const roseParallelConfig: AdvancedPipe = pieConfig\nexport const funnelConfig: AdvancedPipe = pieConfig\nexport const heatmapConfig: AdvancedPipe = pieConfig\nexport const radarConfig: AdvancedPipe = pieConfig","import { pick } from 'remeda'\nimport type { AdvancedPipe, AdvancedVSeed } from 'src/types'\n\nexport const markStyle: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n\n const markStyle = pick(vseed, ['barStyle', 'pointStyle', 'lineStyle', 'areaStyle']) as AdvancedVSeed['markStyle']\n\n return { ...advancedVSeed, markStyle }\n}\n","import { pick } from 'remeda'\nimport type { AdvancedPipe, AdvancedVSeed } from 'src/types'\n\nexport const annotation: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const annotation = pick(vseed, [\n 'annotationPoint',\n 'annotationHorizontalLine',\n 'annotationVerticalLine',\n 'annotationArea',\n ]) as AdvancedVSeed['annotation']\n\n return { ...advancedVSeed, annotation }\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n lineConfig,\n annotation,\n markStyle,\n sortXBandAxis,\n sortLegend,\n reshapeTo2D1M0Name,\n pivotReshapeTo2D1M0Name,\n} from '../pipes'\n\nexport const lineAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M0Name], [pivotReshapeTo2D1M0Name]),\n encodingXY,\n sortXBandAxis,\n sortLegend,\n lineConfig,\n theme,\n markStyle,\n annotation\n]\n","import type { ILineChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initLine: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'line'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n result.animation = true\n\n return result\n}\n","import type { ILineChartSpec } from '@visactor/vchart'\nimport { Separator } from 'src/dataReshape'\nimport type { Color, SpecPipe } from 'src/types'\n\nexport const color: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const { datasetReshapeInfo, chartType } = advancedVSeed\n const { unfoldInfo } = datasetReshapeInfo[0]\n const baseConfig = advancedVSeed.config[chartType] as { color: Color }\n\n if (!baseConfig || !baseConfig.color) {\n return result\n }\n\n const colorItems = unfoldInfo.colorItems\n const colorIdMap = unfoldInfo.colorIdMap\n\n const { color } = baseConfig\n const { colorScheme, colorMapping } = color\n const mappingList: Array<[string, string]> = []\n if (colorMapping) {\n Object.entries(colorMapping)\n .sort((a, b) => a[0].split(Separator).length - b[0].split(Separator).length)\n .forEach(([key, value]) => {\n const idMap = Object.entries(colorIdMap).filter(([_, v]) => v.includes(key))\n\n for (const [colorId] of idMap) {\n mappingList.push([colorId, value])\n }\n })\n }\n\n result.color = {\n type: 'ordinal',\n domain: colorItems,\n range: colorScheme,\n specified: Object.fromEntries(mappingList),\n } as ILineChartSpec['color']\n return result\n}\n","import type { ISpec } from '@visactor/vchart'\nimport type { BackgroundColor, SpecPipe } from 'src/types'\n\nexport const backgroundColor: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed } = context\n const { chartType } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { backgroundColor: BackgroundColor }\n\n const { backgroundColor } = baseConfig\n\n return {\n ...result,\n background: backgroundColor,\n }\n}\n","import type { ISpec } from '@visactor/vchart'\nimport { isPivotChart } from 'src/pipeline/utils'\nimport type { SpecPipe } from 'src/types'\n\nexport const datasetXY: SpecPipe = (spec, context) => {\n const { advancedVSeed, vseed } = context\n const { encoding, analysis, datasetReshapeInfo } = advancedVSeed\n const orderMapping = analysis?.orderMapping || {}\n const angle = encoding[0]?.angle?.[0]\n const x = encoding[0]?.x?.[0]\n const group = encoding[0]?.group?.[0]\n const id = datasetReshapeInfo[0].id\n\n const fields: Record<string, object> = {}\n if (angle) {\n fields[angle] = {\n sortIndex: 0,\n }\n }\n if (x) {\n const order = orderMapping[x]\n if (order) {\n fields[x] = {\n sortIndex: 0,\n domain: order,\n lockStatisticsByDomain: true,\n }\n } else {\n fields[x] = {\n sortIndex: 0,\n }\n }\n }\n\n if (group) {\n const order = orderMapping[group]\n if (order) {\n fields[group] = {\n sortIndex: 0,\n domain: order,\n lockStatisticsByDomain: true,\n }\n } else {\n fields[group] = {\n sortIndex: 0,\n }\n }\n }\n\n return {\n ...spec,\n data: {\n id,\n // 透视表不使用 dataValues\n values: isPivotChart(vseed) ? undefined : advancedVSeed.dataset,\n fields: fields,\n },\n } as ISpec\n}\n","import type { ILineSeriesSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const progressive: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineSeriesSpec\n const { advancedVSeed } = context\n const { dataset = [] } = advancedVSeed\n const size = dataset.length\n\n if (size < 5000) {\n return result\n }\n\n result.large = true\n result.largeThreshold = 5000\n result.progressiveStep = 400\n result.progressiveThreshold = 8000\n\n return result\n}\n","import type { ICartesianBandAxisSpec, ISpec } from '@visactor/vchart'\nimport type { SpecPipe, XBandAxis } from 'src/types'\n\nexport const xBand: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const config = advancedVSeed.config?.[chartType as 'column']?.xAxis as XBandAxis\n\n if (!result.axes) {\n result.axes = []\n }\n\n if (!config) {\n result.axes = [\n ...result.axes,\n {\n visible: true,\n type: 'band',\n orient: 'bottom',\n },\n ] as ISpec['axes']\n return result\n }\n\n const {\n visible = true,\n label,\n tick,\n title,\n grid,\n line,\n labelAutoHide,\n labelAutoHideGap,\n labelAutoLimit,\n labelAutoLimitLength = 80,\n labelAutoRotate,\n labelAutoRotateAngleRange,\n } = config\n\n const sampling = !(labelAutoHide || labelAutoRotate || labelAutoLimit)\n\n const bandAxis = {\n visible,\n type: 'band',\n orient: 'bottom',\n maxHeight: labelAutoLimitLength + 60,\n sampling,\n hover: true,\n label: {\n visible: label?.visible,\n flush: true,\n space: 8,\n style: {\n maxLineWidth: labelAutoLimitLength,\n fill: label?.labelColor,\n angle: label?.labelAngle,\n fontSize: label?.labelFontSize,\n fontWeight: label?.labelFontWeight,\n },\n\n // 防重叠相关\n minGap: labelAutoHideGap,\n autoHide: labelAutoHide,\n autoHideMethod: 'greedy',\n autoHideSeparation: labelAutoHideGap,\n autoLimit: labelAutoLimit,\n autoRotate: labelAutoRotate,\n autoRotateAngle: labelAutoRotateAngleRange,\n lastVisible: true,\n },\n title: {\n visible: title?.visible,\n text: title?.titleText,\n style: {\n fill: title?.titleColor,\n fontSize: title?.titleFontSize,\n fontWeight: title?.titleFontWeight,\n },\n },\n tick: {\n visible: tick?.visible,\n tickSize: tick?.tickSize,\n inside: tick?.tickInside,\n style: {\n stroke: tick?.tickColor,\n },\n },\n grid: {\n visible: grid?.visible,\n style: {\n lineWidth: grid?.gridWidth,\n stroke: grid?.gridColor,\n },\n },\n domainLine: {\n visible: line?.visible,\n style: {\n lineWidth: line?.lineWidth,\n stroke: line?.lineColor,\n },\n },\n paddingInner: [0.15, 0.1],\n paddingOuter: [0.075, 0.1],\n } as ICartesianBandAxisSpec\n\n result.axes = [...result.axes, bandAxis] as ISpec['axes']\n return result\n}\n","// 标注层 z-index \nexport const ANNOTATION_Z_INDEX = 1000\n// 线性轴 顶部空隙 预留5px\nexport const LINEAR_AXIS_INNER_OFFSET_TOP = 7","import type { ISpec } from '@visactor/vchart'\nimport { LINEAR_AXIS_INNER_OFFSET_TOP } from '../../../../utils/constant'\nimport { autoFormatter } from '../../../../utils'\nimport type { SpecPipe, YLinearAxis } from 'src/types'\n\nexport const yLinear: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { locale } = advancedVSeed\n const config = advancedVSeed.config?.[chartType as 'column']?.yAxis as YLinearAxis\n\n if (!result.axes) {\n result.axes = []\n }\n\n if (!config) {\n result.axes = [\n ...result.axes,\n {\n visible: true,\n type: 'linear',\n orient: 'left',\n },\n ] as ISpec['axes']\n return result\n }\n\n const {\n visible = true,\n label,\n tick,\n title,\n grid,\n line,\n\n zero,\n nice,\n inverse,\n max,\n min,\n log,\n logBase = 10,\n } = config\n\n const linearAxis = {\n visible,\n type: log ? 'log' : 'linear',\n base: logBase,\n orient: 'left',\n nice,\n zero: log ? false : zero,\n inverse,\n max,\n min,\n label: {\n visible: label?.visible,\n formatMethod: (value: string) => {\n return autoFormatter(value, locale)\n },\n style: {\n fill: label?.labelColor,\n angle: label?.labelAngle,\n fontSize: label?.labelFontSize,\n fontWeight: label?.labelFontWeight,\n },\n },\n title: {\n visible: title?.visible,\n text: title?.titleText,\n style: {\n fill: title?.titleColor,\n fontSize: title?.titleFontSize,\n fontWeight: title?.titleFontWeight,\n },\n },\n tick: {\n visible: tick?.visible,\n tickSize: tick?.tickSize,\n inside: tick?.tickInside,\n style: {\n stroke: tick?.tickColor,\n },\n },\n grid: {\n visible: grid?.visible,\n style: {\n lineWidth: grid?.gridWidth,\n stroke: grid?.gridColor,\n },\n },\n domainLine: {\n visible: line?.visible,\n style: {\n lineWidth: line?.lineWidth,\n stroke: line?.lineColor,\n },\n },\n innerOffset: {\n top: LINEAR_AXIS_INNER_OFFSET_TOP,\n // bottom: LINEAR_AXIS_INNER_OFFSET_TOP,\n },\n }\n\n result.axes = [...result.axes, linearAxis] as ISpec['axes']\n\n return result\n}\n","import type { ILineChartSpec } from '@visactor/vchart'\nimport type { ILineLikeLabelSpec } from '@visactor/vchart/esm/series/mixin/interface'\nimport { autoFormatter, createFormatter, findMeasureById } from '../../../../utils'\nimport type { Datum, Label, SpecPipe } from 'src/types'\nimport { isEmpty } from 'remeda'\n\nexport const label: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo, locale } = advancedVSeed\n const { chartType } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { label: Label }\n\n if (!baseConfig || !baseConfig.label) {\n return result\n }\n\n const { measureId, measureValue } = datasetReshapeInfo[0].foldInfo\n // const { groupId, groupName } = datasetReshapeInfo[0].unfoldInfo\n const { label } = baseConfig\n const { enable } = label\n\n result.label = {\n visible: enable,\n formatMethod: (value: string, datum: Datum) => {\n const result = []\n\n const formatValue = (value: number) => {\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return value\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n }\n\n result.push(formatValue(datum[measureValue] as number))\n\n return result.join(' ')\n },\n } as ILineLikeLabelSpec\n return result\n}\n","import { isEmpty } from 'remeda'\nimport { autoFormatter, createFormatter, findMeasureById } from '../../../../utils'\nimport type { Datum, SpecPipe, Tooltip } from 'src/types'\n\nexport const tooltip: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo, chartType, locale, dimensions } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n\n const { measureId, measureValue, measureName } = datasetReshapeInfo[0].foldInfo\n const { groupName } = datasetReshapeInfo[0].unfoldInfo\n\n result.tooltip = {\n visible: enable,\n\n mark: {\n title: {\n visible: true,\n },\n content: [\n ...dimensions.map((item) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (datum: unknown) => {\n if (item.alias || item.id) {\n return item.alias || item.id\n }\n return (datum as Datum) && ((datum as Datum)[item.id] as string)\n },\n value: (datum: unknown) => {\n return (datum as Datum) && ((datum as Datum)[item.id] as string)\n },\n })),\n {\n visible: true,\n hasShape: true,\n key: (datum) => (datum && (datum[measureName || groupName] as string)) || '',\n value: (datum) => {\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n },\n },\n ],\n },\n dimension: {\n content: [\n {\n visible: true,\n key: (datum) => (datum && (datum[groupName] as string)) || '',\n value: (datum) => {\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n },\n shapeType: 'rectRound',\n },\n ],\n },\n }\n return result\n}\n","import type { ICartesianCrosshairSpec, ILineChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const verticalCrosshairLine: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n\n const config = advancedVSeed.config?.[chartType as 'line']?.crosshairLine\n if (!config) {\n return result\n }\n\n if (!result.crosshair) {\n result.crosshair = {}\n }\n\n const visible = config.visible || true\n const lineColor = config.lineColor || undefined\n const labelColor = config.labelColor || undefined\n const labelVisible = config.labelVisible || undefined\n const labelBackgroundColor = config.labelBackgroundColor || undefined\n\n const crosshair = result.crosshair as ICartesianCrosshairSpec\n crosshair.xField = {\n visible,\n line: {\n type: 'line',\n style: {\n lineWidth: 1,\n opacity: 1,\n stroke: lineColor,\n lineDash: [4, 2],\n },\n },\n label: {\n visible: labelVisible,\n labelBackground: {\n visible: labelVisible,\n style: {\n fill: labelBackgroundColor,\n },\n },\n style: {\n fill: labelColor,\n },\n },\n }\n\n return result\n}\n","import type { StringOrNumber } from '@visactor/vchart'\nimport type { Legend, SpecPipe } from 'src/types'\n\nexport const discreteLegend: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { datasetReshapeInfo, chartType } = advancedVSeed\n const { unfoldInfo } = datasetReshapeInfo[0]\n const baseConfig = advancedVSeed.config[chartType] as { legend: Legend }\n if (!baseConfig || !baseConfig.legend) {\n return result\n }\n\n const { legend } = baseConfig\n const {\n enable,\n position = 'bottom',\n labelFontColor,\n labelFontSize = 12,\n labelFontWeight,\n maxSize = 1,\n border,\n shapeType = 'rectRound',\n } = legend || {}\n\n const orient = ['bottom', 'bottomLeft', 'bottomRight', 'bl', 'br'].includes(position)\n ? 'bottom'\n : ['top', 'topLeft', 'topRight', 'tl', 'tr'].includes(position)\n ? 'top'\n : ['left', 'leftTop', 'leftBottom', 'lt', 'lb'].includes(position)\n ? 'left'\n : 'right'\n\n const legendPosition = ['topLeft', 'bottomLeft', 'leftTop', 'rightTop', 'lt', 'rt', 'tl', 'bl'].includes(position)\n ? 'start'\n : ['topRight', 'bottomRight', 'leftBottom', 'rightBottom', 'lb', 'rb', 'rt', 'br'].includes(position)\n ? 'end'\n : 'middle'\n\n result.legends = {\n type: 'discrete',\n visible: enable,\n maxCol: Math.max(1, maxSize),\n maxRow: Math.max(1, maxSize),\n autoPage: true,\n orient,\n position: legendPosition,\n data: border\n ? (items) => {\n return items.map((item) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n item.shape.outerBorder = {\n stroke: item.shape.fill,\n distance: 3,\n lineWidth: 1,\n }\n return item\n })\n }\n : undefined,\n item: {\n focus: true,\n maxWidth: '30%',\n focusIconStyle: {\n size: labelFontSize + 2,\n fill: labelFontColor,\n fontWeight: labelFontWeight,\n },\n shape: {\n space: border ? 6 : 4,\n style: {\n symbolType: shapeType,\n size: border ? 8 : 10,\n },\n },\n label: {\n formatMethod: (value: StringOrNumber) => {\n return unfoldInfo.colorIdMap[String(value)] ?? value\n },\n style: {\n fontSize: labelFontSize,\n fill: labelFontColor,\n fontWeight: labelFontWeight,\n },\n },\n background: {\n state: {\n selectedHover: {\n fill: labelFontColor,\n fillOpacity: 0.05,\n },\n },\n },\n },\n padding: 0,\n }\n return result\n}\n","import type { Datum } from 'src/types'\nimport type {\n DimensionSelector,\n MeasureSelector,\n PartialDatumSelector,\n Selector,\n Selectors,\n ValueSelector,\n} from '../types/dataSelector'\nimport { omit } from 'remeda'\n\nexport const selector = (vchartDatum: Datum, selector: Selector | Selectors | undefined | null) => {\n // 无有效选择器, 则认为全部匹配成功\n if (!selector) {\n return true\n }\n\n const selectorMode = 'And'\n\n // 过滤掉 vchart 相关字段\n const vchartKeys = Object.keys(vchartDatum).filter((k) => k.toLocaleLowerCase().startsWith('__vchart'))\n const datum = omit(vchartDatum, vchartKeys) as Datum\n\n // 统一处理选择器为数组\n const selectors = (Array.isArray(selector) ? selector : [selector]) as Selectors\n\n return selectors[selectorMode === 'And' ? 'every' : 'some']((selector) => {\n // 1. 字符串或数字\n if (isValueSelector(selector)) {\n if (Object.values(datum).find((v) => v === selector)) {\n return true\n }\n }\n\n // 2. 指标选择器\n else if (isMeasureSelector(selector)) {\n const op = selector.operator || selector.op\n const selectorValueArr = Array.isArray(selector.value) ? selector.value : [selector.value]\n\n switch (op) {\n case '=':\n case '==':\n if (datum[selector.field] === selectorValueArr[0]) {\n return true\n }\n break\n case '!=':\n if (datum[selector.field] !== selectorValueArr[0]) {\n return true\n }\n break\n case '>':\n if (datum[selector.field] > selectorValueArr[0]) {\n return true\n }\n break\n case '<':\n if (datum[selector.field] < selectorValueArr[0]) {\n return true\n }\n break\n case '>=':\n if (datum[selector.field] >= selectorValueArr[0]) {\n return true\n }\n break\n case '<=':\n if (datum[selector.field] <= selectorValueArr[0]) {\n return true\n }\n break\n case 'between':\n if (\n Array.isArray(selector.value) &&\n datum[selector.field] >= selectorValueArr[0] &&\n datum[selector.field] <= selectorValueArr[1]\n ) {\n return true\n }\n break\n default:\n break\n }\n }\n // 3. 维度选择器\n else if (isDimensionSelector(selector)) {\n const op = selector.operator || selector.op\n const selectorValueArr = Array.isArray(selector.value) ? selector.value : [selector.value]\n switch (op) {\n case 'in':\n if (selectorValueArr.includes(datum[selector.field] as string | number)) {\n return true\n }\n break\n case 'not in':\n if (!selectorValueArr.includes(datum[selector.field] as string | number)) {\n return true\n }\n break\n default:\n break\n }\n }\n // 4. 部分数据对象选择器\n else if (isPartialDatumSelector(selector)) {\n if (Object.keys(selector).every((key) => datum[key] === selector[key])) {\n return true\n }\n }\n\n return false\n })\n}\n\nexport const isValueSelector = (selector: Selector): selector is ValueSelector => {\n return typeof selector === 'string' || typeof selector === 'number'\n}\n\nexport const isPartialDatumSelector = (selector: Selector): selector is PartialDatumSelector => {\n return typeof selector === 'object' && selector !== null\n}\n\nexport const isMeasureSelector = (selector: Selector): selector is MeasureSelector => {\n return (\n typeof selector === 'object' &&\n selector !== null &&\n 'field' in selector &&\n ('operator' in selector || 'op' in selector) &&\n 'value' in selector &&\n (['=', '==', '!=', '>', '<', '>=', '<=', 'between'].includes(selector.operator as string) ||\n ['=', '==', '!=', '>', '<', '>=', '<=', 'between'].includes(selector.op as string))\n )\n}\n\nexport const isDimensionSelector = (selector: Selector): selector is DimensionSelector => {\n return (\n typeof selector === 'object' &&\n selector !== null &&\n 'field' in selector &&\n ('operator' in selector || 'op' in selector) &&\n 'value' in selector &&\n (['in', 'not in'].includes(selector.operator as string) || ['in', 'not in'].includes(selector.op as string))\n )\n}\n","import type { IAreaChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../../dataSelector'\nimport type { Datum, PointStyle, SpecPipe } from 'src/types'\n\nexport const pointStyle: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { markStyle } = advancedVSeed\n const { pointStyle } = markStyle\n const result = {\n ...spec,\n } as IAreaChartSpec\n\n if (!pointStyle) {\n return result\n }\n const pointStyles = (Array.isArray(pointStyle) ? pointStyle : [pointStyle]) as PointStyle[]\n\n const customMap = pointStyles.reduce<object>((result, style, index) => {\n const { pointBorderColor, pointBorderStyle, pointBorderWidth = 1, pointColor, pointColorOpacity, pointSize } = style\n\n const lineDash = pointBorderStyle === 'dashed' ? [5, 2] : pointBorderStyle === 'dotted' ? [2, 5] : [0, 0]\n return {\n ...result,\n [`custom${index + 1}`]: {\n // 优先级: 后者覆盖前者\n level: index + 1,\n filter: (datum: Datum) => {\n if (selector(datum, style.selector)) {\n return true\n }\n return false\n },\n style: {\n size: pointSize,\n fill: pointColor,\n fillOpacity: pointColorOpacity,\n innerBorder: {\n stroke: pointBorderColor,\n lineWidth: pointBorderWidth,\n distance: (pointBorderWidth || 0) / 2,\n lineDash: lineDash,\n },\n },\n },\n }\n }, {})\n\n return {\n ...result,\n point: {\n state: {\n ...customMap,\n },\n },\n }\n}\n","import type { IScatterChartSpec } from '@visactor/vchart'\nimport type { ISeriesMarkAttributeContext } from '@visactor/vchart/esm/compile/mark'\nimport type { SpecPipe } from 'src/types'\n\nexport const pointStateDimensionHover: SpecPipe = (spec) => {\n const point = (spec as IScatterChartSpec).point || {}\n const result = {\n ...spec,\n point: {\n ...point,\n state: {\n ...(point.state || {}),\n dimension_hover: {\n scaleX: 1.4,\n scaleY: 1.4,\n },\n },\n },\n } as IScatterChartSpec\n return result\n}\n\nexport const pointStateHover: SpecPipe = (spec, context) => {\n const point = (spec as IScatterChartSpec).point || {}\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n const result = {\n ...spec,\n point: {\n ...point,\n state: {\n ...(point.state || {}),\n hover: {\n scaleX: 1.4,\n scaleY: 1.4,\n stroke: (datum, context: ISeriesMarkAttributeContext) => {\n const field = encoding[0]?.group?.[0] as string\n const color = context.seriesColor(datum[field] as string)\n return color\n },\n fillOpacity: 0.6,\n lineWidth: 1,\n },\n },\n },\n } as IScatterChartSpec\n return result\n}\n","import type { IAreaChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../../dataSelector'\nimport type { Datum, LineStyle, SpecPipe } from 'src/types'\nimport { groupBy } from 'remeda'\n\nexport const lineStyle: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { markStyle, encoding, dataset } = advancedVSeed\n const { lineStyle } = markStyle\n if (!lineStyle) {\n return spec\n }\n const result = { ...spec } as IAreaChartSpec\n\n const lineStyles = (Array.isArray(lineStyle) ? lineStyle : [lineStyle]) as LineStyle[]\n\n const group = encoding[0]?.group?.[0]\n const lineGroups = groupBy(dataset, (d) => d[group ?? ''] as string)\n\n const customMap = lineStyles.reduce<object>((result, style, index) => {\n const { lineColor, lineColorOpacity, lineSmooth, lineStyle, lineWidth } = style\n\n const dashSegment = (lineWidth ?? 2) * 2\n const dashGap = lineWidth ?? 2\n\n const lineDash =\n lineStyle === 'dashed' ? [dashSegment, dashSegment] : lineStyle === 'dotted' ? [dashGap / 2, dashGap * 2] : [0, 0]\n\n const curveType = lineSmooth ? 'monotone' : 'linear'\n\n return {\n ...result,\n [`custom${index + 1}`]: {\n // 优先级: 后者覆盖前者\n level: index + 1,\n filter: (datum: Datum) => {\n const lineData = lineGroups[datum[group ?? ''] as string]\n for (const d of lineData) {\n if (selector(d, style.selector)) {\n return true\n }\n }\n return false\n },\n style: {\n curveType: curveType,\n strokeOpacity: lineColorOpacity,\n stroke: lineColor,\n lineWidth: lineWidth,\n lineDash: lineDash,\n },\n },\n }\n }, {})\n\n return {\n ...result,\n line: {\n state: {\n ...customMap,\n },\n },\n }\n}\n","import type { Datum } from \"src/types\"\n\nexport const isSubset = (sub: Datum, obj: Datum) => {\n return Object.entries(sub).every(([key, value]) => {\n if (typeof value === 'string') {\n return obj[key] === value\n }\n if (typeof value === 'number') {\n return obj[key] === value\n }\n return true\n })\n}\n","import type { ICartesianSeries, ILineChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../../dataSelector'\nimport type { Datum, SpecPipe } from 'src/types'\nimport { isSubset } from './utils'\nimport { ANNOTATION_Z_INDEX } from '../../../../utils/constant'\n\nexport const annotationPoint: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { annotation } = advancedVSeed\n\n if (!annotation || !annotation.annotationPoint) {\n return spec\n }\n\n const { annotationPoint } = annotation\n const annotationPointList = Array.isArray(annotationPoint) ? annotationPoint : [annotationPoint]\n\n const markPoint = annotationPointList.flatMap((annotationPoint) => {\n const {\n selector: selectorPoint,\n text = '',\n textColor = '#ffffff',\n textFontSize = 12,\n textFontWeight = 400,\n textAlign = 'center',\n textBaseline = 'top',\n textBackgroundBorderColor,\n textBackgroundBorderRadius = 4,\n textBackgroundBorderWidth = 1,\n textBackgroundColor = '#212121',\n textBackgroundPadding = 2,\n textBackgroundVisible = true,\n offsetX = 0,\n offsetY = 0,\n } = annotationPoint\n\n const dataset = advancedVSeed.dataset.flat()\n const selectedData = selectorPoint ? dataset.filter((datum) => selector(datum, selectorPoint)) : []\n\n return selectedData.map((datum) => {\n return {\n zIndex: ANNOTATION_Z_INDEX,\n regionRelative: true,\n position: (data: Datum[], context: ICartesianSeries) => {\n const targetDatum = data.find((item) => isSubset(datum, item))\n if (targetDatum) {\n const { x, y } = context.dataToPosition(targetDatum) as { x: number; y: number }\n return {\n x,\n y,\n }\n }\n },\n\n itemLine: {\n visible: false,\n },\n itemContent: {\n offsetY,\n offsetX,\n text: {\n text: text,\n style: {\n visible: true,\n textAlign: textAlign,\n textBaseline: textBaseline,\n fill: textColor,\n stroke: textBackgroundColor,\n lineWidth: 1,\n fontSize: textFontSize,\n fontWeight: textFontWeight,\n dy: textFontSize,\n },\n labelBackground: {\n visible: textBackgroundVisible,\n padding: textBackgroundPadding,\n style: {\n cornerRadius: textBackgroundBorderRadius ?? 4,\n fill: textBackgroundColor,\n stroke: textBackgroundBorderColor,\n lineWidth: textBackgroundBorderWidth,\n dy: textFontSize,\n },\n },\n },\n },\n }\n })\n }) as ILineChartSpec['markPoint']\n\n return {\n ...spec,\n markPoint,\n }\n}\n","import type { ILineChartSpec, IMarkLineSpec } from '@visactor/vchart'\nimport { selector } from '../../../../../dataSelector'\nimport type { SpecPipe } from 'src/types'\nimport { isArray, isNumber, isString } from 'remeda'\nimport { ANNOTATION_Z_INDEX } from '../../../../utils/constant'\n\nexport const annotationVerticalLine: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { annotation, encoding } = advancedVSeed\n\n if (!annotation || !annotation.annotationVerticalLine) {\n return spec\n }\n\n const { annotationVerticalLine } = annotation\n const annotationVerticalLineList = Array.isArray(annotationVerticalLine)\n ? annotationVerticalLine\n : [annotationVerticalLine]\n\n const positionMap = {\n outsideStart: 'start',\n outsideEnd: 'end',\n outsideMiddle: 'middle',\n insideStart: 'insideStartTop',\n insideMiddle: 'insideMiddleTop',\n insideEnd: 'insideEndTop',\n }\n const markLine = annotationVerticalLineList.flatMap((annotationVerticalLine) => {\n const {\n selector: selectorPoint,\n xValue,\n text = '',\n textPosition = 'insideEnd',\n textColor = '#ffffff',\n textFontSize = 12,\n textFontWeight = 400,\n textAlign = 'right',\n textBaseline = 'top',\n\n textBackgroundVisible = true,\n textBackgroundBorderColor = '#212121',\n textBackgroundColor = '#212121',\n textBackgroundBorderRadius = 4,\n textBackgroundBorderWidth = 1,\n textBackgroundPadding = 2,\n\n lineVisible = true,\n lineColor = '#212121',\n lineWidth = 1,\n lineStyle = 'dashed',\n\n offsetX = 0,\n offsetY = 0,\n } = annotationVerticalLine\n\n const dataset = advancedVSeed.dataset.flat()\n\n const generateOneMarkLine = (x: number | string) => ({\n x: x as string,\n zIndex: ANNOTATION_Z_INDEX,\n offsetX,\n offsetY,\n line: {\n style: {\n visible: lineVisible,\n stroke: lineColor,\n lineStyle: lineStyle,\n lineWidth: lineWidth,\n lineDash: lineStyle === 'dashed' ? [5, 2] : lineStyle === 'dotted' ? [2, 5] : [0],\n },\n },\n label: {\n text: text,\n position: positionMap[textPosition || 'insideEnd'],\n style: {\n visible: true,\n stroke: textBackgroundColor,\n lineWidth: 1,\n textAlign: textAlign,\n textBaseline: textBaseline,\n fill: textColor,\n fontSize: textFontSize,\n fontWeight: textFontWeight,\n dy: textFontSize,\n },\n labelBackground: {\n visible: textBackgroundVisible,\n padding: textBackgroundPadding,\n style: {\n dy: textFontSize,\n cornerRadius: textBackgroundBorderRadius ?? 4,\n fill: textBackgroundColor,\n stroke: textBackgroundBorderColor,\n lineWidth: textBackgroundBorderWidth,\n },\n },\n },\n endSymbol: {\n visible: true,\n size: 10 + (lineWidth || 1),\n style: {\n dy: 4,\n fill: lineColor,\n },\n },\n })\n\n if ((!selectorPoint && isArray(xValue)) || isString(xValue) || isNumber(xValue)) {\n const xValueArr = Array.isArray(xValue) ? xValue : [xValue]\n return xValueArr.map(generateOneMarkLine)\n }\n\n const selectedData = selectorPoint ? dataset.filter((datum) => selector(datum, selectorPoint)) : []\n\n return selectedData.map((datum) => {\n const x = encoding[0]?.x?.[0]\n if (!x) {\n return {}\n }\n return generateOneMarkLine(datum[x] as string)\n })\n }) as IMarkLineSpec[]\n\n const specMarkLine = ((spec as ILineChartSpec).markLine as IMarkLineSpec[]) || []\n const newMarkLine = [...specMarkLine, ...(markLine || [])]\n\n return {\n ...spec,\n markLine: newMarkLine,\n }\n}\n","import type { ILineChartSpec, IMarkLineSpec } from '@visactor/vchart'\nimport { selector } from '../../../../../dataSelector'\nimport type { SpecPipe } from 'src/types'\nimport { isArray, isNumber, isString } from 'remeda'\nimport { ANNOTATION_Z_INDEX } from '../../../../utils/constant'\n\nexport const annotationHorizontalLine: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { annotation, encoding } = advancedVSeed\n\n if (!annotation || !annotation.annotationHorizontalLine) {\n return spec\n }\n\n const { annotationHorizontalLine } = annotation\n const annotationVerticalLineList = Array.isArray(annotationHorizontalLine)\n ? annotationHorizontalLine\n : [annotationHorizontalLine]\n\n const positionMap = {\n outsideStart: 'start',\n outsideEnd: 'end',\n outsideMiddle: 'middle',\n insideStart: 'insideStartTop',\n insideMiddle: 'insideMiddleTop',\n insideEnd: 'insideEndTop',\n }\n\n const markLine = annotationVerticalLineList.flatMap((annotationVerticalLine) => {\n const {\n selector: selectorPoint,\n yValue,\n text = '',\n textPosition = 'insideEnd',\n textColor = '#ffffff',\n textFontSize = 12,\n textFontWeight = 400,\n textAlign = 'right',\n textBaseline = 'top',\n\n lineColor = '#212121',\n lineStyle = 'dashed',\n lineVisible = true,\n lineWidth = 1,\n\n textBackgroundVisible = true,\n textBackgroundColor = '#212121',\n textBackgroundBorderColor = '#212121',\n textBackgroundBorderRadius = 4,\n textBackgroundBorderWidth = 1,\n textBackgroundPadding = 2,\n\n offsetX = 0,\n offsetY = 0,\n } = annotationVerticalLine\n\n const dataset = advancedVSeed.dataset.flat()\n\n const generateOneMarkLine = (y: string | number) => {\n return {\n y,\n offsetX,\n offsetY,\n zIndex: ANNOTATION_Z_INDEX,\n line: {\n style: {\n visible: lineVisible,\n stroke: lineColor,\n lineStyle: lineStyle,\n lineWidth: lineWidth,\n lineDash: lineStyle === 'dashed' ? [5, 2] : lineStyle === 'dotted' ? [2, 5] : [0],\n },\n },\n label: {\n text: text,\n position: positionMap[textPosition || 'insideEnd'],\n style: {\n visible: true,\n dy: textFontSize,\n stroke: textBackgroundColor,\n lineWidth: 1,\n textAlign: textAlign,\n textBaseline: textBaseline,\n fill: textColor,\n fontSize: textFontSize,\n fontWeight: textFontWeight,\n },\n labelBackground: {\n visible: textBackgroundVisible,\n padding: textBackgroundPadding,\n style: {\n dy: textFontSize,\n cornerRadius: textBackgroundBorderRadius ?? 4,\n fill: textBackgroundColor,\n stroke: textBackgroundBorderColor,\n lineWidth: textBackgroundBorderWidth,\n },\n },\n },\n endSymbol: {\n visible: true,\n size: 10 + (lineWidth || 1),\n style: {\n dx: -4,\n fill: lineColor,\n },\n },\n }\n }\n\n if ((!selectorPoint && isArray(yValue)) || isString(yValue) || isNumber(yValue)) {\n const yValueArr = Array.isArray(yValue) ? yValue : [yValue]\n return yValueArr.map(generateOneMarkLine)\n }\n\n const selectedData = selectorPoint ? dataset.filter((datum) => selector(datum, selectorPoint)) : []\n\n return selectedData.map((datum) => {\n const y = encoding[0]?.y?.[0]\n if (!y) {\n return {}\n }\n return generateOneMarkLine(datum[y] as string)\n })\n }) as IMarkLineSpec[]\n const specMarkLine = ((spec as ILineChartSpec).markLine as IMarkLineSpec[]) || []\n const newMarkLine = [...specMarkLine, ...(markLine || [])]\n return {\n ...spec,\n markLine: newMarkLine,\n }\n}\n","import type { ICartesianSeries, ILineChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../../dataSelector'\nimport type { Datum, SpecPipe } from 'src/types'\nimport { isSubset } from './utils'\nimport { ANNOTATION_Z_INDEX } from '../../../../utils/constant'\n\nexport const annotationArea: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { annotation } = advancedVSeed\n\n if (!annotation || !annotation.annotationArea) {\n return spec\n }\n\n const { annotationArea } = annotation\n const annotationAreaList = Array.isArray(annotationArea) ? annotationArea : [annotationArea]\n\n const positionMap = {\n top: 'insideTop',\n topRight: 'insideTopRight',\n topLeft: 'insideTopLeft',\n bottom: 'insideBottom',\n bottomLeft: 'insideBottomLeft',\n bottomRight: 'insideBottomRight',\n left: 'insideLeft',\n right: 'insideRight',\n }\n\n const markArea = annotationAreaList.flatMap((annotationArea) => {\n const {\n selector: selectorPoint,\n text = '',\n textPosition = 'top',\n textColor = '#ffffff',\n textFontSize = 12,\n textFontWeight = 400,\n textAlign = 'center',\n textBaseline = 'top',\n\n textBackgroundVisible = true,\n textBackgroundColor = '#191d24',\n textBackgroundBorderColor = '#191d24',\n textBackgroundBorderWidth = 1,\n textBackgroundBorderRadius = 4,\n textBackgroundPadding = 4,\n\n areaColor = '#888888',\n areaColorOpacity = 0.15,\n areaBorderColor = '#888888',\n areaBorderRadius = 4,\n areaBorderWidth = 1,\n\n outerPadding = 4,\n offsetX = 0,\n offsetY = 0,\n } = annotationArea\n\n const dataset = advancedVSeed.dataset.flat()\n const selectedData = selectorPoint ? dataset.filter((datum) => selector(datum, selectorPoint)) : []\n\n const labelPosition = positionMap[textPosition || 'top']\n const isBottom = labelPosition.toLocaleLowerCase().includes('bottom')\n\n return {\n zIndex: ANNOTATION_Z_INDEX,\n regionRelative: true,\n offsetX,\n offsetY,\n positions: (data: Datum[], context: ICartesianSeries) => {\n const positionData = data.filter((item) => selectedData.some((datum) => isSubset(datum, item)))\n const xyList = positionData.map((datum) => context.dataToPosition(datum) as { x: number; y: number })\n\n const yAxisHelper = context.getYAxisHelper() as unknown as {\n getBandwidth: (depth?: number) => number\n getScale: () => {\n range: () => number[]\n }\n }\n const xAxisHelper = context.getXAxisHelper() as unknown as {\n getBandwidth: (depth?: number) => number\n getScale: () => {\n range: () => number[]\n }\n }\n\n if (typeof xAxisHelper?.getBandwidth === 'function') {\n const yScale = yAxisHelper.getScale()\n\n const minX = Math.min(...xyList.map((item) => item.x)) - (outerPadding || 4)\n const maxX = Math.max(...xyList.map((item) => item.x)) + (outerPadding || 4)\n const minY = Math.min(...yScale.range())\n const maxY = Math.max(...yScale.range())\n return [\n // 左上\n {\n x: minX,\n y: minY,\n },\n // 右上\n {\n x: maxX,\n y: minY,\n },\n // 右下\n {\n x: maxX,\n y: maxY,\n },\n // 左下\n {\n x: minX,\n y: maxY,\n },\n ]\n }\n\n if (typeof yAxisHelper?.getBandwidth === 'function') {\n const xScale = xAxisHelper.getScale()\n\n const minY = Math.min(...xyList.map((item) => item.y)) - (outerPadding || 4)\n const maxY = Math.max(...xyList.map((item) => item.y)) + (outerPadding || 4)\n const minX = Math.min(...xScale.range())\n const maxX = Math.max(...xScale.range())\n\n return [\n // 左上\n {\n x: minX,\n y: minY,\n },\n // 右上\n {\n x: maxX,\n y: minY,\n },\n // 右下\n {\n x: maxX,\n y: maxY,\n },\n // 左下\n {\n x: minX,\n y: maxY,\n },\n ]\n }\n\n return []\n },\n label: {\n position: labelPosition,\n visible: true,\n text: text,\n style: {\n dy: isBottom ? -(textFontSize || 12) * 2 : textFontSize,\n textAlign: textAlign,\n textBaseline: textBaseline,\n fill: textColor,\n stroke: textBackgroundColor,\n lineWidth: 1,\n fontSize: textFontSize,\n fontWeight: textFontWeight,\n },\n\n labelBackground: {\n visible: textBackgroundVisible,\n padding: textBackgroundPadding,\n style: {\n dy: isBottom ? -(textFontSize || 12) * 2 : textFontSize,\n cornerRadius: textBackgroundBorderRadius ?? 4,\n fill: textBackgroundColor,\n stroke: textBackgroundBorderColor,\n lineWidth: textBackgroundBorderWidth,\n },\n },\n },\n area: {\n style: {\n visible: true,\n fill: areaColor,\n fillOpacity: areaColorOpacity,\n stroke: areaBorderColor,\n lineWidth: areaBorderWidth,\n cornerRadius: areaBorderRadius,\n },\n },\n }\n }) as ILineChartSpec['markArea']\n\n return {\n ...spec,\n markArea: markArea,\n }\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { SpecPipe } from 'src/types'\n\nexport const initPivot: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n\n return {\n ...result,\n animation: true,\n rows: [],\n columns: [],\n indicators: [],\n records: [],\n widthMode: 'adaptive',\n heightMode: 'adaptive',\n indicatorsAsCol: false,\n }\n}\n\nexport const pivotIndicatorsAsRow: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n\n return {\n ...result,\n indicatorsAsCol: false,\n }\n}\n\nexport const pivotIndicatorsAsCol: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n\n return {\n ...result,\n indicatorsAsCol: true,\n }\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { SpecPipe } from 'src/types'\n\nexport const pivotGridStyle: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const transparent = 'rgba(0,0,0,0)'\n\n const hoverBackgroundColor = 'rgba(178,186,207, 0.2)'\n return {\n ...result,\n theme: {\n underlayBackgroundColor: transparent,\n bodyStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: [0, 0, 2, 0],\n bgColor: transparent,\n padding: [0, 0, 1, 0],\n hover: {\n cellBgColor: 'transparent',\n },\n },\n headerStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n fontSize: 12,\n color: '#333333',\n textAlign: 'center',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n rowHeaderStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n fontSize: 12,\n color: '#333333',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n cornerHeaderStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n textAlign: 'center',\n fontSize: 12,\n color: '#333333',\n fontWeight: 'bold',\n borderLineWidth: [0, 0, 0, 0],\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n cornerRightTopCellStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n cornerLeftBottomCellStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n cornerRightBottomCellStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n rightFrozenStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n bottomFrozenStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n selectionStyle: {\n cellBgColor: '',\n cellBorderColor: '',\n },\n frameStyle: {\n borderLineWidth: 0,\n bgColor: transparent,\n },\n },\n }\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport { execPipeline } from '../../../../utils'\nimport type { SpecPipe, SpecPipeline, SpecPipelineContext } from 'src/types'\nimport { unique } from 'remeda'\n\nexport const pivotIndicators =\n (chartPipeline: SpecPipeline): SpecPipe =>\n (spec, context) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo, encoding } = advancedVSeed\n\n const colorItems = unique(datasetReshapeInfo.flatMap((d) => d.unfoldInfo.colorItems))\n\n const indicators = datasetReshapeInfo.map((reshapeInfo, index) => {\n const measure = measures?.find((d) => d.id === reshapeInfo.id)\n\n const newEncoding = [encoding[index]]\n const newDatasetReshapeInfo = [\n {\n ...reshapeInfo,\n unfoldInfo: { ...reshapeInfo.unfoldInfo, colorItems },\n },\n ]\n const newContext: SpecPipelineContext = {\n ...context,\n advancedVSeed: {\n ...advancedVSeed,\n datasetReshapeInfo: newDatasetReshapeInfo,\n encoding: newEncoding,\n },\n }\n\n const chartSpec = execPipeline(chartPipeline, newContext, {})\n return {\n indicatorKey: reshapeInfo.id,\n title: measure?.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 PivotChartConstructorOptions\n }\n\nexport const pivotIndicatorsAsRow: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n\n return {\n ...result,\n indicatorsAsCol: false,\n }\n}\n\nexport const pivotIndicatorsAsCol: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n\n return {\n ...result,\n indicatorsAsCol: true,\n }\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { SpecPipe } from 'src/types'\n\nexport const datasetPivot: SpecPipe = (spec, context) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const { dataset, datasetReshapeInfo } = advancedVSeed\n const records = dataset.reduce((pre, cur, index) => {\n const id = datasetReshapeInfo[index].id\n pre[id] = cur\n return pre\n }, {})\n return {\n ...result,\n records: records,\n } as PivotChartConstructorOptions\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { IBasicDimension } from '@visactor/vtable/es/ts-types/pivot-table/dimension/basic-dimension'\nimport type { Dimensions, SpecPipe } from 'src/types'\n\nexport const pivotRowDimensions: SpecPipe = (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.location === 'rowDimension')\n const rows: IBasicDimension[] = rowDimensions.map((dim) => ({\n dimensionKey: dim.id,\n title: dim.alias || dim.id,\n }))\n return {\n ...result,\n rows: rows,\n }\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { IBasicDimension } from '@visactor/vtable/es/ts-types/pivot-table/dimension/basic-dimension'\nimport type { Dimensions, SpecPipe } from 'src/types'\n\nexport const pivotColumnDimensions: SpecPipe = (spec, context) => {\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.location === 'columnDimension')\n const columns: IBasicDimension[] = columnDimensions.map((dim) => ({\n dimensionKey: dim.id,\n title: dim.alias || dim.id,\n }))\n return {\n ...result,\n columns: columns,\n }\n}\n","import type { StringOrNumber } from '@visactor/vchart'\nimport type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { IDiscreteTableLegendOption } from '@visactor/vtable/es/ts-types/component/legend'\nimport { unique } from 'remeda'\nimport type { Color, Legend, SpecPipe } from 'src/types'\n\nexport const pivotDiscreteLegend: SpecPipe = (spec, context) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const { chartType } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { legend: Legend; color: Color }\n\n if (!baseConfig || !baseConfig.legend) {\n return result\n }\n\n const { datasetReshapeInfo } = advancedVSeed\n\n const colorItems = unique(\n datasetReshapeInfo.flatMap((d) => {\n return d.unfoldInfo.colorItems\n }),\n )\n\n const colorIdMap = datasetReshapeInfo.reduce<Record<string, string>>((prev, cur) => {\n return { ...prev, ...cur.unfoldInfo.colorIdMap }\n }, {})\n\n const { legend, color } = baseConfig\n const { colorScheme } = color\n\n const {\n enable,\n position = 'bottom',\n labelFontColor,\n labelFontSize = 12,\n labelFontWeight = 400,\n maxSize = 1,\n border,\n shapeType = 'rectRound',\n } = legend || {}\n\n const orient = ['bottom', 'bottomLeft', 'bottomRight', 'bl', 'br'].includes(position)\n ? 'bottom'\n : ['top', 'topLeft', 'topRight', 'tl', 'tr'].includes(position)\n ? 'top'\n : ['left', 'leftTop', 'leftBottom', 'lt', 'lb'].includes(position)\n ? 'left'\n : 'right'\n\n const legendPosition = ['topLeft', 'bottomLeft', 'leftTop', 'rightTop', 'lt', 'rt', 'tl', 'bl'].includes(position)\n ? 'start'\n : ['topRight', 'bottomRight', 'leftBottom', 'rightBottom', 'lb', 'rb', 'rt', 'br'].includes(position)\n ? 'end'\n : 'middle'\n\n const legends: IDiscreteTableLegendOption = {\n visible: enable,\n type: 'discrete',\n orient,\n position: legendPosition,\n maxCol: Math.max(1, maxSize),\n maxRow: Math.max(1, maxSize),\n data: colorItems.map((d, index) => ({\n label: d,\n shape: {\n outerBorder: border\n ? {\n stroke: colorScheme?.[index],\n distance: 3,\n lineWidth: 1,\n }\n : undefined,\n fill: colorScheme?.[index],\n },\n })),\n\n item: {\n focus: true,\n maxWidth: '30%',\n focusIconStyle: {\n size: labelFontSize + 2,\n fill: labelFontColor,\n fontWeight: labelFontWeight,\n },\n shape: {\n space: border ? 6 : 4,\n style: {\n symbolType: shapeType,\n size: border ? 8 : 10,\n },\n },\n label: {\n formatMethod: (value: StringOrNumber) => {\n return colorIdMap[String(value)] ?? value\n },\n style: {\n fontSize: labelFontSize,\n fill: labelFontColor,\n fontWeight: labelFontWeight,\n },\n },\n background: {\n state: {\n selectedHover: {\n fill: labelFontColor,\n fillOpacity: 0.05,\n },\n },\n },\n },\n } as unknown as IDiscreteTableLegendOption\n return { ...result, legends }\n}\n","import type { Spec, SpecPipe, SpecPipeline, SpecPipelineContext } from 'src/types'\nimport { execPipeline, isPivotChart } from '../../../../utils'\n\nexport const pivotAdapter = (pipeline: SpecPipeline, pivotPipeline: SpecPipeline): SpecPipe => {\n return (spec, context) => {\n const { vseed } = context\n const usePivotChart = isPivotChart(vseed)\n\n if (usePivotChart) {\n return execPipeline<Spec, SpecPipelineContext>(pivotPipeline, context, spec)\n }\n\n return execPipeline<Spec, SpecPipelineContext>(pipeline, context, spec)\n }\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n datasetXY,\n xBand,\n yLinear,\n initLine,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n initPivot,\n datasetPivot,\n pivotDiscreteLegend,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n pointStyle,\n lineStyle,\n verticalCrosshairLine,\n pointStateDimensionHover,\n progressive,\n} from '../pipes'\n\nconst line: SpecPipeline = [\n initLine,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n discreteLegend,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotLine: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initLine,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const lineSpecPipeline: SpecPipeline = [pivotAdapter(line, pivotLine)]\n","import { lineAdvancedPipeline, lineSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerLine = () => {\n Builder._advancedPipelineMap['line'] = lineAdvancedPipeline\n Builder._specPipelineMap['line'] = lineSpecPipeline\n}","import type { Dataset, Dimension, FoldInfo, Measure, UnfoldInfo } from 'src/types'\nimport { foldMeasures } from './foldMeasures'\nimport {\n UnfoldDimensionGroup,\n FoldMeasureId,\n FoldMeasureName,\n FoldMeasureValue,\n UnfoldDimensionGroupId,\n} from './constant'\nimport { unfoldDimensions } from './unfoldDimensions'\nimport { i18n } from '../i18n'\n\nconst emptyReshapeResult: {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n} = {\n dataset: [],\n foldInfo: {\n foldMap: {},\n measureId: '',\n measureName: '',\n measureValue: '',\n },\n unfoldInfo: {\n groupName: '',\n groupId: '',\n colorItems: [],\n colorIdMap: {},\n },\n}\n/**\n * 数据重塑为2个维度1个指标\n * @param dataset\n * @param dimensions\n * @param measures\n * @returns\n */\nexport const dataReshapeFor2D1M = (\n dataset: Dataset,\n dimensions: Dimension[],\n measures: Measure[],\n options?: {\n foldMeasureId?: string\n foldMeasureName?: string\n foldMeasureValue?: string\n unfoldDimensionGroup?: string\n unfoldDimensionGroupId?: string\n },\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n} => {\n const {\n foldMeasureId = FoldMeasureId,\n foldMeasureName = FoldMeasureName,\n foldMeasureValue = FoldMeasureValue,\n unfoldDimensionGroup = UnfoldDimensionGroup,\n unfoldDimensionGroupId = UnfoldDimensionGroupId,\n } = options || {}\n if (dimensions.length === 0 && measures.length === 0) {\n return emptyReshapeResult\n }\n\n // 合并所有指标为1个指标\n const { dataset: foldedDataset, foldInfo } = foldMeasures(\n dataset,\n measures,\n foldMeasureId,\n foldMeasureName,\n foldMeasureValue,\n )\n\n if (dimensions.length === 0) {\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n [\n { id: foldMeasureId, alias: i18n`指标Id`, location: 'dimension' },\n { id: foldMeasureName, alias: i18n`指标名称`, location: 'dimension' },\n ],\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\n 1,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n foldMeasureId,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n } else {\n const onlyOneMeasure = measures.length === 1\n const onlyOneDimension = dimensions.length === 1\n\n const dims = [...dimensions]\n if (!onlyOneMeasure || onlyOneDimension) {\n dims.push({ id: foldMeasureName, alias: i18n`指标名称`, location: 'dimension' })\n }\n\n // 展开指定的维度为指标\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n dims,\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\n 1,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n foldMeasureId,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n }\n}\n","import { dataReshapeFor2D1M } from 'src/dataReshape'\nimport type { AdvancedPipe } from 'src/types'\n\n/**\n * 数据重塑, 将任意维度、任意指标, 重塑为2个维度1个指标.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const reshapeTo2D1M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { dimensions, measures } = advancedVSeed\n\n if (!measures || !dimensions || !dataset) {\n return result\n }\n\n if (measures.length === 0) {\n throw new Error('measures can not be empty')\n }\n\n const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeFor2D1M(dataset, dimensions, measures)\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: [\n {\n id: '2D1M',\n index: 0,\n foldInfo,\n unfoldInfo,\n },\n ],\n dimensions,\n measures,\n }\n}\n","import { FoldMeasureId, FoldMeasureName, FoldMeasureValue, UnfoldDimensionGroup } from 'src/dataReshape/constant'\nimport { dataReshapeFor2D1M } from 'src/dataReshape'\nimport type { AdvancedPipe, Dataset, DatasetReshapeInfo, Dimensions, MeasureGroup } from 'src/types'\n\n/**\n * 数据重塑为透视结构, 如果存在指标分组, 则将数据按组划分. 如果存在行列维度, 则生成行列树结构.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const pivotReshapeTo2D1M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { measures } = advancedVSeed\n const dimensions = advancedVSeed.dimensions as Dimensions\n\n if (!measures || !dimensions) {\n return result\n }\n\n const measureGroups: MeasureGroup[] = []\n if (measures) {\n measures.forEach((measure: MeasureGroup) => {\n if (measure.children && measure.children.length > 0) {\n measureGroups.push(measure)\n }\n })\n }\n const commonDimensions = dimensions.filter((dim) => dim.location === 'dimension')\n\n const newDatasets: Dataset = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n measureGroups.forEach((measureGroup, index) => {\n const measures = measureGroup.children\n if (!measures) {\n return\n }\n const groupId = measureGroup.id\n const {\n dataset: newSubDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeFor2D1M(dataset, commonDimensions, measures, {\n foldMeasureId: FoldMeasureId,\n foldMeasureName: FoldMeasureName,\n foldMeasureValue: FoldMeasureValue + groupId,\n unfoldDimensionGroup: UnfoldDimensionGroup,\n })\n const reshapeInfo = {\n id: groupId,\n index,\n foldInfo,\n unfoldInfo,\n }\n newDatasets.push(newSubDataset)\n datasetReshapeInfo.push(reshapeInfo)\n })\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n reshapeTo2D1M,\n theme,\n pivotAdapter,\n columnConfig,\n markStyle,\n annotation,\n pivotReshapeTo2D1M,\n sortXBandAxis,\n sortLegend,\n} from '../pipes'\n\nexport const columnAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n sortXBandAxis,\n sortLegend,\n columnConfig,\n theme,\n markStyle,\n annotation,\n]\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initColumn: SpecPipe = (spec, context) => {\n const result = { ...spec } as IBarChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'bar'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n result.animation = true\n return result\n}\n","import type { SpecPipe, StackCornerRadius } from 'src/types'\n\nexport const stackCornerRadius: SpecPipe = (spec, context) => {\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const stackCornerRadius = advancedVSeed.config?.[chartType as 'column']?.stackCornerRadius as StackCornerRadius\n\n return {\n ...spec,\n stackCornerRadius,\n }\n}\n","import type { IAreaChartSpec, IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const stackInverse: SpecPipe = (spec) => {\n const result = { ...spec } as IAreaChartSpec | IBarChartSpec\n result.stackInverse = true\n return result\n}\n","import type { ICartesianCrosshairSpec, ILineChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const verticalCrosshairRect: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n\n const config = advancedVSeed.config?.[chartType as 'column']?.crosshairRect\n if (!config) {\n return result\n }\n\n if (!result.crosshair) {\n result.crosshair = {}\n }\n\n const visible = config.visible || true\n const rectColor = config.rectColor || undefined\n const labelColor = config.labelColor || undefined\n const labelVisible = config.labelVisible || false\n const labelBackgroundColor = config.labelBackgroundColor || undefined\n\n const crosshair = result.crosshair as ICartesianCrosshairSpec\n crosshair.xField = {\n visible,\n line: {\n type: 'rect',\n style: {\n lineWidth: 0,\n opacity: 0.2,\n fill: rectColor,\n },\n },\n label: {\n visible: labelVisible,\n labelBackground: {\n visible: labelVisible,\n style: {\n fill: labelBackgroundColor,\n },\n },\n style: {\n fill: labelColor,\n },\n },\n }\n\n return result\n}\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../../dataSelector'\nimport type { BarStyle, Datum, SpecPipe } from 'src/types'\n\nexport const barStyle: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { markStyle, dataset = [] } = advancedVSeed\n const { barStyle } = markStyle\n\n const showStroke = dataset.length <= 100\n\n const result = {\n ...spec,\n bar: {\n style: {\n lineWidth: showStroke ? 1 : 0,\n },\n state: {\n hover: {\n fillOpacity: 0.6,\n },\n },\n },\n } as IBarChartSpec\n\n if (!barStyle) {\n return result\n }\n\n const barStyles = (Array.isArray(barStyle) ? barStyle : [barStyle]) as BarStyle[]\n\n const customMap = barStyles.reduce<object>((result, style, index) => {\n const { barBorderColor, barBorderStyle, barBorderWidth = 1, barColor, barColorOpacity, barRadius } = style\n\n const lineDash = barBorderStyle === 'dashed' ? [5, 2] : barBorderStyle === 'dotted' ? [2, 5] : [0, 0]\n return {\n ...result,\n [`custom${index + 1}`]: {\n // 优先级: 后者覆盖前者\n level: index + 1,\n filter: (datum: Datum) => {\n if (selector(datum, style.selector)) {\n return true\n }\n return false\n },\n style: {\n fill: barColor,\n fillOpacity: barColorOpacity,\n cornerRadius: barRadius,\n innerBorder: {\n stroke: barBorderColor,\n lineWidth: barBorderWidth,\n distance: (barBorderWidth || 0) / 2,\n lineDash: lineDash,\n },\n },\n },\n }\n }, {})\n\n return {\n ...result,\n bar: {\n state: {\n ...customMap,\n },\n },\n }\n}\n","import type { ICartesianSeries, ILineChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../../dataSelector'\nimport type { Datum, SpecPipe } from 'src/types'\nimport { isSubset } from './utils'\nimport { ANNOTATION_Z_INDEX } from '../../../../utils/constant'\n\nexport const annotationAreaBand: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { annotation } = advancedVSeed\n\n if (!annotation || !annotation.annotationArea) {\n return spec\n }\n\n const { annotationArea } = annotation\n const annotationAreaList = Array.isArray(annotationArea) ? annotationArea : [annotationArea]\n\n const positionMap = {\n top: 'insideTop',\n topRight: 'insideTopRight',\n topLeft: 'insideTopLeft',\n bottom: 'insideBottom',\n bottomLeft: 'insideBottomLeft',\n bottomRight: 'insideBottomRight',\n left: 'insideLeft',\n right: 'insideRight',\n }\n\n const markArea = annotationAreaList.flatMap((annotationArea) => {\n const {\n selector: selectorPoint,\n text = '',\n textPosition = 'top',\n textColor = '#ffffff',\n textFontSize = 12,\n textFontWeight = 400,\n textAlign = 'center',\n textBaseline = 'top',\n\n textBackgroundVisible = true,\n textBackgroundColor = '#191d24',\n textBackgroundBorderColor = '#191d24',\n textBackgroundBorderWidth = 1,\n textBackgroundBorderRadius = 4,\n textBackgroundPadding = 4,\n\n areaColor = '#888888',\n areaColorOpacity = 0.15,\n areaBorderColor = '#888888',\n areaBorderRadius = 4,\n areaBorderWidth = 1,\n\n outerPadding = 4,\n offsetX = 0,\n offsetY = 0,\n } = annotationArea\n\n const dataset = advancedVSeed.dataset.flat()\n const selectedData = selectorPoint ? dataset.filter((datum) => selector(datum, selectorPoint)) : []\n\n return {\n zIndex: ANNOTATION_Z_INDEX,\n regionRelative: true,\n offsetX,\n offsetY,\n positions: (data: Datum[], context: ICartesianSeries) => {\n const positionData = data.filter((item) => selectedData.some((datum) => isSubset(datum, item)))\n const xyList = positionData.map((datum) => context.dataToPosition(datum) as { x: number; y: number })\n\n const yAxisHelper = context.getYAxisHelper() as unknown as {\n getBandwidth: (depth?: number) => number\n getScale: () => {\n range: () => number[]\n }\n }\n const xAxisHelper = context.getXAxisHelper() as unknown as {\n getBandwidth: (depth?: number) => number\n getScale: () => {\n range: () => number[]\n }\n }\n\n if (typeof xAxisHelper?.getBandwidth === 'function') {\n const depth = context.fieldX.length ?? 0\n const xBandWidth = xAxisHelper?.getBandwidth?.(depth - 1)\n const yScale = yAxisHelper.getScale()\n\n const minX = Math.min(...xyList.map((item) => item.x)) - (outerPadding || 4)\n const maxX = Math.max(...xyList.map((item) => item.x)) + xBandWidth + (outerPadding || 4)\n const minY = Math.min(...yScale.range())\n const maxY = Math.max(...yScale.range())\n\n return [\n // 左上\n {\n x: minX,\n y: minY,\n },\n // 右上\n {\n x: maxX,\n y: minY,\n },\n // 右下\n {\n x: maxX,\n y: maxY,\n },\n // 左下\n {\n x: minX,\n y: maxY,\n },\n ]\n }\n\n if (typeof yAxisHelper?.getBandwidth === 'function') {\n const depth = context.fieldY.length ?? 0\n const yBandWidth = yAxisHelper?.getBandwidth?.(depth - 1)\n const xScale = xAxisHelper.getScale()\n\n const minY = Math.min(...xyList.map((item) => item.y)) - (outerPadding || 4)\n const maxY = Math.max(...xyList.map((item) => item.y)) + yBandWidth + (outerPadding || 4)\n const minX = Math.min(...xScale.range())\n const maxX = Math.max(...xScale.range())\n\n return [\n // 左上\n {\n x: minX,\n y: minY,\n },\n // 右上\n {\n x: maxX,\n y: minY,\n },\n // 右下\n {\n x: maxX,\n y: maxY,\n },\n // 左下\n {\n x: minX,\n y: maxY,\n },\n ]\n }\n\n return []\n },\n label: {\n position: positionMap[textPosition || 'top'],\n visible: true,\n text: text,\n style: {\n dy: textFontSize,\n textAlign: textAlign,\n textBaseline: textBaseline,\n stroke: textBackgroundColor,\n lineWidth: 1,\n fill: textColor,\n fontSize: textFontSize,\n fontWeight: textFontWeight,\n },\n\n labelBackground: {\n visible: textBackgroundVisible,\n padding: textBackgroundPadding,\n style: {\n dy: textFontSize,\n cornerRadius: textBackgroundBorderRadius ?? 4,\n fill: textBackgroundColor,\n stroke: textBackgroundBorderColor,\n lineWidth: textBackgroundBorderWidth,\n },\n },\n },\n area: {\n style: {\n visible: true,\n fill: areaColor,\n fillOpacity: areaColorOpacity,\n stroke: areaBorderColor,\n lineWidth: areaBorderWidth,\n cornerRadius: areaBorderRadius,\n },\n },\n }\n }) as ILineChartSpec['markArea']\n\n return {\n ...spec,\n markArea: markArea,\n }\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n initColumn,\n datasetXY,\n xBand,\n yLinear,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n pivotAdapter,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n stackInverse,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n verticalCrosshairRect,\n stackCornerRadius,\n progressive,\n} from '../pipes'\n\nconst column: SpecPipeline = [\n initColumn,\n stackCornerRadius,\n stackInverse,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairRect,\n discreteLegend,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotColumn: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initColumn,\n stackCornerRadius,\n stackInverse,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const columnSpecPipeline = [pivotAdapter(column, pivotColumn)]\n","import { columnAdvancedPipeline, columnSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerColumn = () => {\n Builder._advancedPipelineMap['column'] = columnAdvancedPipeline\n Builder._specPipelineMap['column'] = columnSpecPipeline\n}","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n reshapeTo2D1M,\n theme,\n pivotAdapter,\n pivotReshapeTo2D1M,\n columnParallelConfig,\n markStyle,\n annotation,\n sortXBandAxis,\n sortLegend,\n} from '../pipes'\n\nexport const columnParallelAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n sortXBandAxis,\n sortLegend,\n columnParallelConfig,\n theme,\n markStyle,\n annotation,\n]\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initColumnParallel: SpecPipe = (spec, context) => {\n const result = { ...spec } as IBarChartSpec\n const { advancedVSeed } = context\n const { encoding, datasetReshapeInfo } = advancedVSeed\n const { unfoldInfo } = datasetReshapeInfo[0]\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'bar'\n result.direction = 'vertical'\n result.xField = [encoding[0].x[0], unfoldInfo.groupId]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n result.animation = true\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n datasetXY,\n xBand,\n yLinear,\n initColumnParallel,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n pivotIndicators,\n initPivot,\n datasetPivot,\n pivotAdapter,\n pivotDiscreteLegend,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n verticalCrosshairRect,\n stackCornerRadius,\n progressive,\n} from '../pipes'\n\nconst columnParallel: SpecPipeline = [\n initColumnParallel,\n stackCornerRadius,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n discreteLegend,\n verticalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotColumnParallel: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initColumnParallel,\n stackCornerRadius,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const columnParallelSpecPipeline: SpecPipeline = [pivotAdapter(columnParallel, pivotColumnParallel)]\n","import { columnParallelAdvancedPipeline, columnParallelSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerColumnParallel = () => {\n Builder._advancedPipelineMap['columnParallel'] = columnParallelAdvancedPipeline\n Builder._specPipelineMap['columnParallel'] = columnParallelSpecPipeline\n}","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n theme,\n reshapeTo2D1M,\n pivotReshapeTo2D1M,\n pivotAdapter,\n columnPercentConfig,\n markStyle,\n annotation,\n sortXBandAxis,\n sortLegend,\n} from '../pipes'\n\nexport const columnPercentAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n sortXBandAxis,\n sortLegend,\n columnPercentConfig,\n theme,\n markStyle,\n annotation,\n]\n","import { IAreaChartSpec, IBarChartSpec } from '@visactor/vchart'\nimport { SpecPipe } from 'src/types'\n\nexport const percent: SpecPipe = (spec, context) => {\n const result = { ...spec } as IAreaChartSpec | IBarChartSpec\n result.percent = true\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n initColumn,\n datasetXY,\n xBand,\n yLinear,\n percent,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n pivotAdapter,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n stackInverse,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n verticalCrosshairRect,\n stackCornerRadius,\n progressive,\n} from '../pipes'\n\nconst columnPercent: SpecPipeline = [\n initColumn,\n stackCornerRadius,\n stackInverse,\n color,\n backgroundColor,\n percent,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairRect,\n discreteLegend,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotColumnPercent: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initColumn,\n stackCornerRadius,\n stackInverse,\n color,\n percent,\n backgroundColor,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const columnPercentSpecPipeline: SpecPipeline = [pivotAdapter(columnPercent, pivotColumnPercent)]\n","import { columnPercentAdvancedPipeline, columnPercentSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerColumnPercent = () => {\n Builder._advancedPipelineMap['columnPercent'] = columnPercentAdvancedPipeline\n Builder._specPipelineMap['columnPercent'] = columnPercentSpecPipeline\n}","import type { AdvancedPipe, Dimensions, FoldInfo, UnfoldInfo } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingYX: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo, dimensions } = advancedVSeed\n if (!datasetReshapeInfo || !dimensions) {\n return result\n }\n\n const yDimension =\n (dimensions as Dimensions).find(\n (item) => item.location !== 'rowDimension' && item.location !== 'columnDimension',\n ) || dimensions[0]\n\n const isZeroDimension = dimensions.length === 0\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfo, unfoldInfo } = cur as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n const y = [isZeroDimension ? foldInfo.measureName : yDimension?.id]\n const x = [foldInfo.measureValue]\n const group = [unfoldInfo.groupId]\n const color = [foldInfo.measureName]\n\n return [\n ...prev,\n {\n x,\n y,\n group,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n initAdvancedVSeed,\n encodingYX,\n theme,\n autoMeasures,\n autoDimensions,\n reshapeTo2D1M,\n pivotReshapeTo2D1M,\n pivotAdapter,\n barConfig,\n markStyle,\n annotation,\n sortYBandAxis,\n sortLegend,\n} from '../pipes'\n\nexport const barAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingYX,\n sortYBandAxis,\n sortLegend,\n barConfig,\n theme,\n markStyle,\n annotation,\n]\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initBar: SpecPipe = (spec, context) => {\n const result = { ...spec } as IBarChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'bar'\n result.direction = 'horizontal'\n result.yField = encoding[0].y?.[0]\n result.xField = encoding[0].x?.[0]\n result.seriesField = encoding[0].group?.[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n result.animation = true\n return result\n}\n","import type { ISpec } from '@visactor/vchart'\nimport { isPivotChart } from 'src/pipeline/utils'\nimport type { SpecPipe } from 'src/types'\n\nexport const datasetYX: SpecPipe = (spec, context) => {\n const { advancedVSeed, vseed } = context\n const { encoding, analysis, datasetReshapeInfo } = advancedVSeed\n const orderMapping = analysis?.orderMapping || {}\n const angle = encoding[0]?.angle?.[0]\n const y = encoding[0]?.y?.[0]\n const group = encoding[0]?.group?.[0]\n const id = datasetReshapeInfo[0].id\n\n const fields: Record<string, object> = {}\n if (angle) {\n fields[angle] = {\n sortIndex: 0,\n }\n }\n if (y) {\n const order = orderMapping[y]\n if (order) {\n fields[y] = {\n sortIndex: 0,\n domain: order,\n lockStatisticsByDomain: true,\n }\n } else {\n fields[y] = {\n sortIndex: 0,\n }\n }\n }\n if (group) {\n const order = orderMapping[group]\n if (order) {\n fields[group] = {\n sortIndex: 0,\n domain: order,\n lockStatisticsByDomain: true,\n }\n } else {\n fields[group] = {\n sortIndex: 0,\n }\n }\n }\n\n return {\n ...spec,\n data: {\n id,\n // 透视表不使用 dataValues\n values: isPivotChart(vseed) ? undefined : advancedVSeed.dataset,\n fields: fields,\n },\n } as ISpec\n}\n","import type { ISpec } from '@visactor/vchart'\nimport { LINEAR_AXIS_INNER_OFFSET_TOP } from '../../../../utils/constant'\nimport type { SpecPipe, XLinearAxis } from 'src/types'\nimport { autoFormatter } from '../../../../utils'\n\nexport const xLinear: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { locale } = advancedVSeed\n const config = advancedVSeed.config?.[chartType as 'bar']?.xAxis as XLinearAxis\n\n if (!result.axes) {\n result.axes = []\n }\n\n if (!config) {\n result.axes = [\n ...result.axes,\n {\n visible: true,\n type: 'linear',\n orient: 'bottom',\n },\n ] as ISpec['axes']\n return result\n }\n\n const {\n visible = true,\n label,\n tick,\n title,\n grid,\n line,\n\n zero,\n nice,\n inverse,\n max,\n min,\n log,\n logBase = 10,\n } = config\n\n const linearAxis = {\n visible,\n type: log ? 'log' : 'linear',\n base: logBase,\n orient: 'bottom',\n nice,\n zero: log ? false : zero,\n inverse,\n max,\n min,\n label: {\n visible: label?.visible,\n formatMethod: (value: string) => {\n return autoFormatter(value, locale)\n },\n style: {\n fill: label?.labelColor,\n angle: label?.labelAngle,\n fontSize: label?.labelFontSize,\n fontWeight: label?.labelFontWeight,\n },\n },\n title: {\n visible: title?.visible,\n text: title?.titleText,\n style: {\n fill: title?.titleColor,\n fontSize: title?.titleFontSize,\n fontWeight: title?.titleFontWeight,\n },\n },\n tick: {\n visible: tick?.visible,\n tickSize: tick?.tickSize,\n inside: tick?.tickInside,\n style: {\n stroke: tick?.tickColor,\n },\n },\n grid: {\n visible: grid?.visible,\n style: {\n lineWidth: grid?.gridWidth,\n stroke: grid?.gridColor,\n },\n },\n domainLine: {\n visible: line?.visible,\n style: {\n lineWidth: line?.lineWidth,\n stroke: line?.lineColor,\n },\n },\n innerOffset: {\n right: LINEAR_AXIS_INNER_OFFSET_TOP,\n // left: LINEAR_AXIS_INNER_OFFSET_TOP,\n },\n }\n\n result.axes = [...result.axes, linearAxis] as ISpec['axes']\n\n return result\n}\n","import type { ICartesianBandAxisSpec, ISpec } from '@visactor/vchart'\nimport type { SpecPipe, XBandAxis } from 'src/types'\n\nexport const yBand: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const config = advancedVSeed.config?.[chartType as 'bar']?.yAxis as XBandAxis\n\n if (!result.axes) {\n result.axes = []\n }\n\n if (!config) {\n result.axes = [\n ...result.axes,\n {\n visible: true,\n type: 'band',\n orient: 'left',\n },\n ] as ISpec['axes']\n return result\n }\n\n const {\n visible = true,\n label,\n tick,\n title,\n grid,\n line,\n labelAutoHide,\n labelAutoHideGap,\n labelAutoLimit,\n labelAutoLimitLength = 80,\n labelAutoRotate,\n labelAutoRotateAngleRange,\n } = config\n\n const sampling = !(labelAutoHide || labelAutoRotate || labelAutoLimit)\n\n const bandAxis = {\n visible,\n type: 'band',\n orient: 'left',\n maxWidth: labelAutoLimitLength + 60,\n sampling,\n hover: true,\n label: {\n visible: label?.visible,\n flush: true,\n containerAlign: 'right',\n space: 8,\n style: {\n maxLineWidth: labelAutoLimitLength,\n fill: label?.labelColor,\n angle: label?.labelAngle,\n fontSize: label?.labelFontSize,\n fontWeight: label?.labelFontWeight,\n },\n // 防重叠相关\n minGap: labelAutoHideGap,\n autoHide: labelAutoHide,\n autoHideMethod: 'greedy',\n autoHideSeparation: labelAutoHideGap,\n autoLimit: labelAutoLimit,\n autoRotate: labelAutoRotate,\n autoRotateAngle: labelAutoRotateAngleRange,\n lastVisible: true,\n },\n title: {\n visible: title?.visible,\n text: title?.titleText,\n style: {\n fill: title?.titleColor,\n fontSize: title?.titleFontSize,\n fontWeight: title?.titleFontWeight,\n },\n },\n tick: {\n visible: tick?.visible,\n tickSize: tick?.tickSize,\n inside: tick?.tickInside,\n style: {\n stroke: tick?.tickColor,\n },\n },\n grid: {\n visible: grid?.visible,\n style: {\n lineWidth: grid?.gridWidth,\n stroke: grid?.gridColor,\n },\n },\n domainLine: {\n visible: line?.visible,\n style: {\n lineWidth: line?.lineWidth,\n stroke: line?.lineColor,\n },\n },\n paddingInner: [0.15, 0.1],\n paddingOuter: [0.075, 0.1],\n } as ICartesianBandAxisSpec\n\n result.axes = [...result.axes, bandAxis] as ISpec['axes']\n return result\n}\n","import type { ICartesianCrosshairSpec, ILineChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const horizontalCrosshairRect: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n\n const config = advancedVSeed.config?.[chartType as 'column']?.crosshairRect\n if (!config) {\n return result\n }\n\n if (!result.crosshair) {\n result.crosshair = {}\n }\n\n const visible = config.visible || true\n const rectColor = config.rectColor || undefined\n const labelColor = config.labelColor || undefined\n const labelVisible = config.labelVisible || false\n const labelBackgroundColor = config.labelBackgroundColor || undefined\n\n const crosshair = result.crosshair as ICartesianCrosshairSpec\n crosshair.yField = {\n visible,\n line: {\n type: 'rect',\n style: {\n lineWidth: 0,\n opacity: 0.2,\n fill: rectColor,\n },\n },\n label: {\n visible: labelVisible,\n labelBackground: {\n visible: labelVisible,\n style: {\n fill: labelBackgroundColor,\n },\n },\n style: {\n fill: labelColor,\n },\n },\n }\n\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n initBar,\n datasetYX,\n xLinear,\n yBand,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n pivotAdapter,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n pivotIndicatorsAsCol,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n horizontalCrosshairRect,\n stackCornerRadius,\n progressive,\n} from '../pipes'\n\nconst bar: SpecPipeline = [\n initBar,\n stackCornerRadius,\n color,\n backgroundColor,\n datasetYX,\n progressive,\n xLinear,\n yBand,\n label,\n tooltip,\n horizontalCrosshairRect,\n discreteLegend,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotBar: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsCol,\n datasetPivot,\n pivotIndicators([\n initBar,\n stackCornerRadius,\n color,\n backgroundColor,\n datasetYX,\n progressive,\n xLinear,\n yBand,\n label,\n label,\n tooltip,\n horizontalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const barSpecPipeline: SpecPipeline = [pivotAdapter(bar, pivotBar)]\n","import { barAdvancedPipeline, barSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerBar = () => {\n Builder._advancedPipelineMap['bar'] = barAdvancedPipeline\n Builder._specPipelineMap['bar'] = barSpecPipeline\n}","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingYX,\n initAdvancedVSeed,\n reshapeTo2D1M,\n theme,\n pivotAdapter,\n pivotReshapeTo2D1M,\n barParallelConfig,\n markStyle,\n annotation,\n sortYBandAxis,\n sortLegend,\n} from '../pipes'\n\nexport const barParallelAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingYX,\n sortYBandAxis,\n sortLegend,\n barParallelConfig,\n theme,\n markStyle,\n annotation,\n]\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initBarParallel: SpecPipe = (spec, context) => {\n const result = { ...spec } as IBarChartSpec\n const { advancedVSeed } = context\n const { encoding, datasetReshapeInfo } = advancedVSeed\n const { unfoldInfo } = datasetReshapeInfo[0]\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'bar'\n result.direction = 'horizontal'\n result.yField = [encoding[0].y[0], unfoldInfo.groupId] as string[]\n result.xField = encoding[0].x[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n result.animation = true\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n datasetYX,\n xLinear,\n yBand,\n initBarParallel,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n initPivot,\n datasetPivot,\n pivotDiscreteLegend,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsCol,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n horizontalCrosshairRect,\n stackCornerRadius,\n progressive,\n} from '../pipes'\n\nconst barParallel: SpecPipeline = [\n initBarParallel,\n stackCornerRadius,\n color,\n backgroundColor,\n datasetYX,\n progressive,\n xLinear,\n yBand,\n label,\n tooltip,\n horizontalCrosshairRect,\n discreteLegend,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotBarParallel: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsCol,\n datasetPivot,\n pivotIndicators([\n initBarParallel,\n stackCornerRadius,\n color,\n backgroundColor,\n datasetYX,\n xLinear,\n yBand,\n label,\n tooltip,\n horizontalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const barParallelSpecPipeline: SpecPipeline = [pivotAdapter(barParallel, pivotBarParallel)]\n","import { barParallelAdvancedPipeline, barParallelSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerBarParallel = () => {\n Builder._advancedPipelineMap['barParallel'] = barParallelAdvancedPipeline\n Builder._specPipelineMap['barParallel'] = barParallelSpecPipeline\n}","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingYX,\n initAdvancedVSeed,\n reshapeTo2D1M,\n theme,\n pivotAdapter,\n pivotReshapeTo2D1M,\n barPercentConfig,\n markStyle,\n annotation,\n sortYBandAxis,\n sortLegend,\n} from '../pipes'\n\nexport const barPercentAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingYX,\n sortYBandAxis,\n sortLegend,\n barPercentConfig,\n theme,\n markStyle,\n annotation,\n]\n","import type { SpecPipeline } from 'src/types'\nimport {\n initBar,\n datasetYX,\n xLinear,\n yBand,\n percent,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n pivotAdapter,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n pivotIndicatorsAsCol,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n horizontalCrosshairRect,\n stackCornerRadius,\n progressive,\n} from '../pipes'\n\nconst barPercent: SpecPipeline = [\n initBar,\n stackCornerRadius,\n color,\n backgroundColor,\n percent,\n datasetYX,\n progressive,\n xLinear,\n yBand,\n label,\n tooltip,\n horizontalCrosshairRect,\n discreteLegend,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotBarPercent: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsCol,\n datasetPivot,\n pivotIndicators([\n initBar,\n stackCornerRadius,\n color,\n backgroundColor,\n percent,\n datasetYX,\n yBand,\n xLinear,\n label,\n tooltip,\n horizontalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const barPercentSpecPipeline: SpecPipeline = [pivotAdapter(barPercent, pivotBarPercent)]\n","import { barPercentAdvancedPipeline, barPercentSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerBarPercent = () => {\n Builder._advancedPipelineMap['barPercent'] = barPercentAdvancedPipeline\n Builder._specPipelineMap['barPercent'] = barPercentSpecPipeline\n}","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n areaConfig,\n annotation,\n markStyle,\n sortXBandAxis,\n sortLegend,\n reshapeTo2D1M0Name,\n pivotReshapeTo2D1M0Name,\n} from '../pipes'\n\nexport const areaAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M0Name], [pivotReshapeTo2D1M0Name]),\n encodingXY,\n sortXBandAxis,\n sortLegend,\n areaConfig,\n theme,\n markStyle,\n annotation,\n]\n","import type { IAreaChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initArea: SpecPipe = (spec, context) => {\n const result = { ...spec } as IAreaChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'area'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n result.animation = true\n return result\n}\n","import type { IAreaChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../../dataSelector'\nimport type { AreaStyle, Datum, SpecPipe } from 'src/types'\nimport { groupBy } from 'remeda'\n\nexport const areaStyle: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { markStyle, encoding, dataset } = advancedVSeed\n const { areaStyle } = markStyle\n\n if (!areaStyle) {\n return spec\n }\n const result = { ...spec } as IAreaChartSpec\n\n const areaStyles = (Array.isArray(areaStyle) ? areaStyle : [areaStyle]) as AreaStyle[]\n\n const group = encoding[0]?.group?.[0]\n const lineGroups = groupBy(dataset, (d) => d[group ?? ''] as string)\n\n const customMap = areaStyles.reduce<object>((result, style, index) => {\n const { areaColor, areaColorOpacity } = style\n\n return {\n ...result,\n [`custom${index + 1}`]: {\n // 优先级: 后者覆盖前者\n level: index + 1,\n filter: (datum: Datum) => {\n const lineData = lineGroups[datum[group ?? ''] as string]\n for (const d of lineData) {\n if (selector(d, style.selector)) {\n return true\n }\n }\n return false\n },\n style: {\n fill: areaColor,\n fillOpacity: areaColorOpacity,\n },\n },\n }\n }, {})\n\n return {\n ...result,\n area: {\n state: {\n ...customMap,\n },\n },\n }\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n xBand,\n yLinear,\n initArea,\n stackInverse,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n pivotAdapter,\n initPivot,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n pointStyle,\n lineStyle,\n areaStyle,\n verticalCrosshairLine,\n pointStateDimensionHover,\n datasetXY,\n progressive,\n} from '../pipes'\n\nconst area: SpecPipeline = [\n initArea,\n stackInverse,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n discreteLegend,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n areaStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotArea: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initArea,\n color,\n backgroundColor,\n stackInverse,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n areaStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const areaSpecPipeline = [pivotAdapter(area, pivotArea)]\n","import { areaAdvancedPipeline, areaSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerArea = () => {\n Builder._advancedPipelineMap['area'] = areaAdvancedPipeline\n Builder._specPipelineMap['area'] = areaSpecPipeline\n}","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n areaPercentConfig,\n annotation,\n markStyle,\n sortXBandAxis,\n sortLegend,\n reshapeTo2D1M0Name,\n pivotReshapeTo2D1M0Name,\n} from '../pipes'\n\nexport const areaPercentAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M0Name], [pivotReshapeTo2D1M0Name]),\n encodingXY,\n sortXBandAxis,\n sortLegend,\n areaPercentConfig,\n theme,\n markStyle,\n annotation\n]\n","import type { SpecPipeline } from 'src/types'\nimport {\n percent,\n datasetXY,\n xBand,\n yLinear,\n initArea,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n pivotAdapter,\n initPivot,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n stackInverse,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n pointStyle,\n lineStyle,\n areaStyle,\n verticalCrosshairLine,\n progressive,\n} from '../pipes'\n\nconst areaPercent: SpecPipeline = [\n initArea,\n stackInverse,\n color,\n backgroundColor,\n percent,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n discreteLegend,\n pointStyle,\n lineStyle,\n areaStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotAreaPercent: SpecPipeline = [\n initPivot,\n\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initArea,\n stackInverse,\n color,\n backgroundColor,\n percent,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n pointStyle,\n lineStyle,\n areaStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const areaPercentSpecPipeline = [pivotAdapter(areaPercent, pivotAreaPercent)]\n","import { areaPercentAdvancedPipeline, areaPercentSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerAreaPercent = () => {\n Builder._advancedPipelineMap['areaPercent'] = areaPercentAdvancedPipeline\n Builder._specPipelineMap['areaPercent'] = areaPercentSpecPipeline\n}","import { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Datum, MeasureGroup, MeasureTree } from 'src/types'\n\n/**\n * 自动处理指标, 如果超出了2个指标, 则按每2个指标一个组的逻辑维护\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const autoMeasuresBy2M1Group: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { measures, dataset } = vseed\n\n if (!dataset) {\n throw new Error('dataset is required')\n }\n\n if (dataset.length === 0) {\n return result\n }\n\n if (measures) {\n result.measures = auto2M1Group(measures as MeasureTree)\n return result\n }\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n const newMeasures = Object.keys(sample)\n .filter((key) => {\n return top100dataset.some((item) => typeof item[key] === 'number') && !['', null, undefined].includes(key)\n })\n .map((measure) => ({\n id: measure,\n alias: measure,\n }))\n\n result.measures = auto2M1Group(newMeasures)\n return result\n}\n\nconst auto2M1Group = (measures: MeasureTree): MeasureTree => {\n const allMeasures = findAllMeasures(measures)\n\n if (allMeasures.length <= 2) {\n return allMeasures\n }\n\n const groups: MeasureTree = measures.filter((measure) => 'children' in measure)\n const singleMeasures = measures.filter((measure) => !('children' in measure))\n for (let i = 0; i < singleMeasures.length; i += 2) {\n const group = createEmptyMeasureGroup()\n group.children = allMeasures.slice(i, i + 2)\n groups.push(group)\n }\n return groups as MeasureGroup[]\n}\n\nconst createEmptyMeasureGroup = (): MeasureGroup => {\n return {\n id: '',\n alias: '',\n children: [],\n }\n}\n","import type { Dataset, Dimension, FoldInfo, Measure, UnfoldInfo } from 'src/types'\nimport {\n UnfoldDimensionGroup,\n FoldMeasureId,\n FoldMeasureName,\n FoldMeasureValue,\n UnfoldDimensionGroupId,\n} from './constant'\nimport { unfoldDimensions } from './unfoldDimensions'\nimport { i18n } from '../i18n'\n\nconst emptyReshapeResult = {\n dataset: [],\n foldInfo: {\n foldMap: {},\n measureId: '',\n measureName: '',\n measureValue: '',\n },\n unfoldInfo: {\n groupName: '',\n groupId: '',\n colorItems: [],\n colorIdMap: {},\n },\n}\n/**\n * 仅数据重塑为1个维度,不处理指标\n * @param dataset\n * @param dimensions\n * @param measures\n * @returns\n */\nexport const dataReshapeFor1D = (\n dataset: Dataset,\n dimensions: Dimension[],\n measures: Measure[],\n options?: {\n foldMeasureId?: string\n foldMeasureName?: string\n foldMeasureValue?: string\n unfoldDimensionGroup?: string\n unfoldDimensionGroupId?: string\n },\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n} => {\n const {\n foldMeasureId = FoldMeasureId,\n foldMeasureName = FoldMeasureName,\n foldMeasureValue = FoldMeasureValue,\n unfoldDimensionGroup = UnfoldDimensionGroup,\n unfoldDimensionGroupId = UnfoldDimensionGroupId,\n } = options || {}\n\n if (dimensions.length === 0 && measures.length === 0) {\n return emptyReshapeResult\n }\n\n if (dimensions.length === 0) {\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n dataset,\n [],\n [],\n 0,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n foldMeasureId,\n )\n return {\n dataset: finalDataset,\n foldInfo: {\n foldMap: {},\n measureId: foldMeasureId,\n measureName: foldMeasureName,\n measureValue: foldMeasureValue,\n },\n unfoldInfo,\n }\n } else {\n // 展开指定的维度为指标\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n dataset,\n [...dimensions],\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\n 0,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n foldMeasureId,\n )\n return {\n dataset: finalDataset,\n foldInfo: {\n foldMap: {},\n measureId: foldMeasureId,\n measureName: foldMeasureName,\n measureValue: foldMeasureValue,\n },\n unfoldInfo,\n }\n }\n}\n","import { dataReshapeFor1D } from 'src/dataReshape'\nimport type { AdvancedPipe } from 'src/types'\n\n/**\n * 数据重塑, 将任意维度、任意指标, 重塑为1个维度2个指标.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const reshapeTo1D: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { dimensions, measures } = advancedVSeed\n if (!measures || !dimensions || !dataset) {\n return result\n }\n\n if (measures.length === 0) {\n throw new Error('measures can not be empty')\n }\n\n const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeFor1D(dataset, dimensions, measures)\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: [\n {\n id: '1D2M',\n index: 0,\n foldInfo,\n unfoldInfo,\n },\n ],\n }\n}\n","import { FoldMeasureId, FoldMeasureName, FoldMeasureValue, UnfoldDimensionGroup } from 'src/dataReshape/constant'\nimport { dataReshapeFor1D } from 'src/dataReshape'\nimport type { AdvancedPipe, Dataset, DatasetReshapeInfo, Dimensions, MeasureGroup } from 'src/types'\n\n/**\n * 数据重塑为透视结构, 如果存在指标分组, 则将数据按组划分\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const pivotReshapeTo1D: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { measures } = advancedVSeed\n const dimensions = advancedVSeed.dimensions as Dimensions\n\n if (!measures || !dimensions) {\n return result\n }\n\n const measureGroups: MeasureGroup[] = []\n if (measures) {\n measures.forEach((measure: MeasureGroup) => {\n if (measure.children && measure.children.length > 0) {\n measureGroups.push(measure)\n }\n })\n }\n const newDatasets: Dataset = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n measureGroups.forEach((measureGroup, index) => {\n const measures = measureGroup.children\n if (!measures) {\n return\n }\n\n const commonDimensions = dimensions.filter((dim) => dim.location === 'dimension')\n const groupId = measureGroup.id\n const {\n dataset: newSubDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeFor1D(dataset, commonDimensions, measures, {\n foldMeasureId: FoldMeasureId,\n foldMeasureName: FoldMeasureName,\n foldMeasureValue: FoldMeasureValue + groupId,\n unfoldDimensionGroup: UnfoldDimensionGroup,\n })\n const reshapeInfo = {\n id: groupId,\n index,\n foldInfo,\n unfoldInfo,\n }\n newDatasets.push(newSubDataset)\n datasetReshapeInfo.push(reshapeInfo)\n })\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n","import type { AdvancedPipe, FoldInfo, UnfoldInfo } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingAreaRange: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo, measures } = advancedVSeed\n if (!datasetReshapeInfo || !measures) {\n return result\n }\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur, index) => {\n const measure = measures[index]\n if ('children' in measure) {\n const m1 = measure.children?.[0]\n const m2 = measure.children?.[1] || m1\n const { foldInfo, unfoldInfo } = cur as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n const x = [unfoldInfo.groupId]\n const y = [m1?.id, m2?.id]\n const group = [unfoldInfo.groupId]\n const color = [foldInfo.measureName]\n\n return [\n ...prev,\n {\n x,\n y,\n group,\n color,\n },\n ] as Encoding\n } else {\n const m1 = measures[index]\n const m2 = measures[index + 1] || m1\n const { foldInfo, unfoldInfo } = cur as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n const x = [unfoldInfo.groupId]\n const y = [m1.id, m2.id]\n const group = [unfoldInfo.groupId]\n const color = [foldInfo.measureName]\n\n return [\n ...prev,\n {\n x,\n y,\n group,\n color,\n },\n ] as Encoding\n }\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n areaConfig,\n annotation,\n sortXBandAxis,\n autoMeasuresBy2M1Group,\n encodingAreaRange,\n reshapeTo1D,\n pivotReshapeTo1D,\n markStyle,\n} from '../pipes'\n\nexport const areaRangeAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasuresBy2M1Group,\n autoDimensions,\n pivotAdapter([reshapeTo1D], [pivotReshapeTo1D]),\n encodingAreaRange,\n sortXBandAxis,\n areaConfig,\n theme,\n markStyle,\n annotation,\n]\n","import type { Spec, SpecPipe, SpecPipeline, SpecPipelineContext } from 'src/types'\nimport { execPipeline } from '../../../../utils'\nimport type { ICommonChartSpec, ILineSeriesSpec } from '@visactor/vchart'\n\nexport const series = (...args: SpecPipeline[]): SpecPipe => {\n const result = {\n type: 'common',\n padding: 0,\n region: [\n {\n clip: true,\n },\n ],\n } as ICommonChartSpec\n\n return (_, context) => {\n result.series = args.map((pipeline) => {\n return execPipeline<Spec, SpecPipelineContext>(pipeline, context, {})\n }) as ILineSeriesSpec[]\n\n return result\n }\n}\n\nexport const seriesDualAxis = (...args: SpecPipeline[]): SpecPipe => {\n const result = {\n type: 'common',\n padding: 0,\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 (_, context) => {\n result.series = args.map((pipeline, index) => {\n const seriesContext = createDualContext(context, index)\n return execPipeline<Spec, SpecPipelineContext>(pipeline, seriesContext, {})\n }) as ILineSeriesSpec[]\n\n return result\n }\n}\n","import type { ILineSeriesSpec, IRangeAreaSeriesSpec } from '@visactor/vchart'\nimport type { Color, SpecPipe } from 'src/types'\n\nexport const initAreaRange: SpecPipe = (spec, context) => {\n const result = { ...spec } as IRangeAreaSeriesSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n const { color } = advancedVSeed.config.areaRange as {\n color: Color\n }\n\n result.type = 'rangeArea'\n result.direction = 'vertical'\n result.stack = false\n result.xField = encoding[0].x[0]\n result.yField = [encoding[0].y[0], encoding[0].y[1]]\n\n result.animation = true\n result.area = {\n style: {\n fill: color.colorScheme?.[0],\n },\n }\n\n return result\n}\n\nexport const initAreaRangeLine1: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineSeriesSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n const { color } = advancedVSeed.config.areaRange as {\n color: Color\n }\n result.type = 'line'\n result.direction = 'vertical'\n result.stack = false\n result.xField = encoding[0].x[0]\n result.yField = [encoding[0].y[0]]\n\n result.animation = true\n result.line = {\n style: {\n stroke: color.colorScheme?.[0],\n },\n }\n result.point = {\n style: {\n visible: false,\n fill: color.colorScheme?.[0],\n },\n }\n return result\n}\n\nexport const initAreaRangeLine2: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineSeriesSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n const { color } = advancedVSeed.config.areaRange as {\n color: Color\n }\n result.type = 'line'\n result.direction = 'vertical'\n result.stack = false\n result.xField = encoding[0].x[0]\n result.yField = [encoding[0].y[1]]\n\n result.animation = true\n result.line = {\n style: {\n stroke: color.colorScheme?.[0],\n },\n }\n result.point = {\n style: {\n visible: false,\n fill: color.colorScheme?.[0],\n },\n }\n return result\n}\n","import type { SpecPipe } from 'src/types'\n\nexport const tooltipDisable: SpecPipe = (spec) => {\n const result = { ...spec }\n\n result.tooltip = {\n visible: false,\n }\n return result\n}\n","import { isEmpty } from 'remeda'\nimport { autoFormatter, createFormatter, findMeasureById } from '../../../../utils'\nimport type { Datum, SpecPipe, Tooltip } from 'src/types'\n\nexport const tooltipAreaRange: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo, chartType, locale, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n\n const { groupName } = datasetReshapeInfo[0].unfoldInfo\n\n const y = encoding[0]?.y || []\n\n result.tooltip = {\n visible: enable,\n\n dimension: {\n content: [\n {\n visible: true,\n key: (datum) => (datum && (datum[groupName] as string)) || '',\n value: (datum) => {\n if (!datum) {\n return ''\n }\n const text = y.map((id) => {\n const value = datum[id] as string | number\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n })\n return text.join(' ~ ')\n },\n shapeType: 'rectRound',\n },\n ...y.map((id: string) => {\n const measure = findMeasureById(measures, id)\n return {\n visible: true,\n key: measure?.alias || id,\n value: (datum: unknown) => {\n if (!datum) {\n return ''\n }\n const value = (datum as unknown as Datum)[id] as string | number\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n },\n shapeType: 'rectRound',\n }\n }),\n ],\n },\n }\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n datasetXY,\n xBand,\n yLinear,\n backgroundColor,\n label,\n datasetPivot,\n pivotIndicators,\n pivotAdapter,\n initPivot,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n verticalCrosshairLine,\n initAreaRange,\n series,\n lineStyle,\n pointStyle,\n pointStateDimensionHover,\n areaStyle,\n progressive,\n tooltipAreaRange,\n tooltipDisable,\n} from '../pipes'\nimport { initAreaRangeLine1, initAreaRangeLine2 } from '../pipes/init/areaRange'\n\nconst areaRange: SpecPipeline = [\n series(\n [initAreaRange, areaStyle],\n [initAreaRangeLine1, lineStyle, pointStyle, pointStateDimensionHover, tooltipDisable],\n [initAreaRangeLine2, lineStyle, pointStyle, pointStateDimensionHover, tooltipDisable],\n ),\n datasetXY,\n progressive,\n backgroundColor,\n xBand,\n yLinear,\n label,\n tooltipAreaRange,\n verticalCrosshairLine,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotAreaRange: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n series(\n [initAreaRange, areaStyle],\n [initAreaRangeLine1, lineStyle, pointStyle, pointStateDimensionHover, tooltipDisable],\n [initAreaRangeLine2, lineStyle, pointStyle, pointStateDimensionHover, tooltipDisable],\n ),\n backgroundColor,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltipAreaRange,\n verticalCrosshairLine,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n]\n\nexport const areaRangeSpecPipeline = [pivotAdapter(areaRange, pivotAreaRange)]\n","import { areaRangeAdvancedPipeline, areaRangeSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerAreaRange = () => {\n Builder._advancedPipelineMap['areaRange'] = areaRangeAdvancedPipeline\n Builder._specPipelineMap['areaRange'] = areaRangeSpecPipeline\n}","import type { Dataset, Dimension, FoldInfo, Measure, UnfoldInfo } from 'src/types'\nimport { foldMeasures } from './foldMeasures'\nimport {\n UnfoldDimensionGroup,\n FoldMeasureId,\n FoldMeasureName,\n FoldMeasureValue,\n UnfoldDimensionGroupId,\n} from './constant'\nimport { unfoldDimensions } from './unfoldDimensions'\nimport { i18n } from '../i18n'\n\nconst emptyReshapeResult = {\n dataset: [],\n foldInfo: {\n foldMap: {},\n measureId: '',\n measureName: '',\n measureValue: '',\n },\n unfoldInfo: {\n groupName: '',\n groupId: '',\n colorItems: [],\n colorIdMap: {},\n },\n}\n/**\n * 数据重塑为1个维度1个指标\n * @param dataset\n * @param dimensions\n * @param measures\n * @returns\n */\nexport const dataReshapeFor1D2M = (\n dataset: Dataset,\n dimensions: Dimension[],\n measures: Measure[],\n options?: {\n foldMeasureId?: string\n foldMeasureName?: string\n foldMeasureValue?: string\n unfoldDimensionGroup?: string\n unfoldDimensionGroupId?: string\n },\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n} => {\n const {\n foldMeasureId = FoldMeasureId,\n foldMeasureName = FoldMeasureName,\n foldMeasureValue = FoldMeasureValue,\n unfoldDimensionGroup = UnfoldDimensionGroup,\n unfoldDimensionGroupId = UnfoldDimensionGroupId,\n } = options || {}\n\n if (dimensions.length === 0 && measures.length === 0) {\n return emptyReshapeResult\n }\n\n // 合并所有指标为1个指标\n const { dataset: foldedDataset, foldInfo } = foldMeasures(\n dataset,\n measures.length > 1 ? measures.slice(1) : measures,\n foldMeasureId,\n foldMeasureName,\n foldMeasureValue,\n )\n\n if (dimensions.length === 0) {\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n [{ id: foldMeasureValue, alias: i18n`指标值`, location: 'dimension' }],\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\n 0,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n foldMeasureId,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n } else {\n // 展开指定的维度为指标\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n [...dimensions],\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\n 0,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n foldMeasureId,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n }\n}\n","import { dataReshapeFor1D2M } from 'src/dataReshape'\nimport type { AdvancedPipe } from 'src/types'\n\n/**\n * 数据重塑, 将任意维度、任意指标, 重塑为1个维度2个指标.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const reshapeTo1D2M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { dimensions, measures } = advancedVSeed\n if (!measures || !dimensions || !dataset) {\n return result\n }\n\n if (measures.length === 0) {\n throw new Error('measures can not be empty')\n }\n\n const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeFor1D2M(dataset, dimensions, measures)\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: [\n {\n id: '1D2M',\n index: 0,\n foldInfo,\n unfoldInfo,\n },\n ],\n }\n}\n","import { FoldMeasureId, FoldMeasureName, FoldMeasureValue, UnfoldDimensionGroup } from 'src/dataReshape/constant'\nimport { dataReshapeFor1D2M } from 'src/dataReshape'\nimport type { AdvancedPipe, Dataset, DatasetReshapeInfo, Dimensions, MeasureGroup } from 'src/types'\n\n/**\n * 数据重塑为透视结构, 如果存在指标分组, 则将数据按组划分. 如果存在行列维度, 则生成行列树结构.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const pivotReshapeTo1D2M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { measures } = advancedVSeed\n const dimensions = advancedVSeed.dimensions as Dimensions\n\n if (!measures || !dimensions) {\n return result\n }\n\n const measureGroups: MeasureGroup[] = []\n if (measures) {\n measures.forEach((measure: MeasureGroup) => {\n if (measure.children && measure.children.length > 0) {\n measureGroups.push(measure)\n }\n })\n }\n const newDatasets: Dataset = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n measureGroups.forEach((measureGroup, index) => {\n const measures = measureGroup.children\n if (!measures) {\n return\n }\n\n const commonDimensions = dimensions.filter((dim) => dim.location === 'dimension')\n const groupId = measureGroup.id\n const {\n dataset: newSubDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeFor1D2M(dataset, commonDimensions, measures, {\n foldMeasureId: FoldMeasureId,\n foldMeasureName: FoldMeasureName,\n foldMeasureValue: FoldMeasureValue + groupId,\n unfoldDimensionGroup: UnfoldDimensionGroup,\n })\n const reshapeInfo = {\n id: groupId,\n index,\n foldInfo,\n unfoldInfo,\n }\n newDatasets.push(newSubDataset)\n datasetReshapeInfo.push(reshapeInfo)\n })\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n","import { findFirstMeasure } from 'src/pipeline/utils'\nimport type { AdvancedPipe, FoldInfo, UnfoldInfo } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingYY: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo, measures } = advancedVSeed\n if (!datasetReshapeInfo || !measures) {\n return result\n }\n\n const firstMeasure = findFirstMeasure(measures)\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfo, unfoldInfo } = cur as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n const x = [firstMeasure?.id]\n const y = [foldInfo.measureValue]\n const group = [unfoldInfo.groupId]\n const color = [unfoldInfo.groupId]\n\n return [\n ...prev,\n {\n x,\n y,\n group,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n annotation,\n markStyle,\n scatterConfig,\n reshapeTo1D2M,\n pivotReshapeTo1D2M,\n encodingYY,\n} from '../pipes'\n\nexport const scatterAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo1D2M], [pivotReshapeTo1D2M]),\n encodingYY,\n scatterConfig,\n theme,\n markStyle,\n annotation,\n]\n","import type { IScatterChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initScatter: SpecPipe = (spec, context) => {\n const result = { ...spec } as IScatterChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'scatter'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n result.animation = true\n\n return result\n}\n","import type { ICartesianCrosshairSpec, ILineChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const horizontalCrosshairLine: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n\n const config = advancedVSeed.config?.[chartType as 'line']?.crosshairLine\n if (!config) {\n return result\n }\n\n if (!result.crosshair) {\n result.crosshair = {}\n }\n\n const visible = config.visible || true\n const lineColor = config.lineColor || undefined\n const labelColor = config.labelColor || undefined\n const labelVisible = config.labelVisible || undefined\n const labelBackgroundColor = config.labelBackgroundColor || undefined\n\n const crosshair = result.crosshair as ICartesianCrosshairSpec\n crosshair.yField = {\n visible,\n line: {\n type: 'line',\n style: {\n lineWidth: 1,\n opacity: 1,\n stroke: lineColor,\n lineDash: [4, 2],\n },\n },\n label: {\n visible: labelVisible,\n labelBackground: {\n visible: labelVisible,\n style: {\n fill: labelBackgroundColor,\n },\n },\n style: {\n fill: labelColor,\n },\n },\n }\n\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n datasetXY,\n yLinear,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n initPivot,\n datasetPivot,\n pivotDiscreteLegend,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n pointStyle,\n verticalCrosshairLine,\n xLinear,\n horizontalCrosshairLine,\n pointStateHover,\n initScatter,\n progressive\n} from '../pipes'\n\nconst scatter: SpecPipeline = [\n initScatter,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n xLinear,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n horizontalCrosshairLine,\n discreteLegend,\n pointStyle,\n pointStateHover,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotScatter: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initScatter,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n xLinear,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n horizontalCrosshairLine,\n pointStyle,\n pointStateHover,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const scatterSpecPipeline: SpecPipeline = [pivotAdapter(scatter, pivotScatter)]\n","import { scatterAdvancedPipeline, scatterSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerScatter = () => {\n Builder._advancedPipelineMap['scatter'] = scatterAdvancedPipeline\n Builder._specPipelineMap['scatter'] = scatterSpecPipeline\n}","import { dataReshapeFor2D1M, FoldPrimaryMeasureValue, FoldSecondaryMeasureValue } from 'src/dataReshape'\nimport type { AdvancedPipe, Dimension, FoldInfo, MeasureGroup, UnfoldInfo } from 'src/types'\n\n/**\n * 数据重塑, 将任意维度、任意指标, 重塑为2个维度2个指标.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const reshapeTo2D2M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { dimensions, measures } = advancedVSeed\n\n if (!measures || !dimensions || !dataset) {\n return result\n }\n\n if (measures.length === 0) {\n throw new Error('measures can not be empty')\n }\n if (measures.length > 2) {\n throw new Error('measures can not be more than 2')\n }\n\n const commonDimensions = dimensions.filter((dim) => (dim as Dimension).location === 'dimension')\n\n const datasets = []\n const foldInfoList: FoldInfo[] = []\n const unfoldInfoList: UnfoldInfo[] = []\n\n const primaryMeasures = measures[0] as MeasureGroup\n const secondaryMeasures = (measures[1] || []) as MeasureGroup\n\n if (primaryMeasures && primaryMeasures.children) {\n const {\n dataset: newDatasets,\n foldInfo,\n unfoldInfo,\n } = dataReshapeFor2D1M(dataset, commonDimensions, primaryMeasures.children, {\n foldMeasureValue: FoldPrimaryMeasureValue,\n })\n datasets.push(newDatasets)\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n if (secondaryMeasures && secondaryMeasures.children) {\n const {\n dataset: newDatasets,\n foldInfo,\n unfoldInfo,\n } = dataReshapeFor2D1M(dataset, commonDimensions, secondaryMeasures.children, {\n foldMeasureValue: FoldSecondaryMeasureValue,\n })\n datasets.push(newDatasets)\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n const unfoldInfo: UnfoldInfo = {\n groupName: unfoldInfoList[0].groupName,\n groupId: unfoldInfoList[0].groupId,\n colorItems: unfoldInfoList.flatMap((d) => d.colorItems),\n colorIdMap: unfoldInfoList.reduce((prev, cur) => ({ ...prev, ...cur.colorIdMap }), {}),\n }\n\n return {\n ...result,\n dataset: datasets,\n datasetReshapeInfo: [\n {\n id: '2D2M',\n index: 0,\n foldInfo: foldInfoList[0],\n foldInfoList: foldInfoList,\n unfoldInfo: unfoldInfo,\n },\n ],\n }\n}\n","import { dataReshapeFor2D1M, FoldPrimaryMeasureValue, FoldSecondaryMeasureValue } from 'src/dataReshape'\nimport type {\n AdvancedPipe,\n Dataset,\n DatasetReshapeInfo,\n Dimension,\n FoldInfo,\n MeasureGroup,\n UnfoldInfo,\n} from 'src/types'\n\n/**\n * 数据重塑, 将任意维度、任意指标, 重塑为2个维度2个指标.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const pivotReshapeTo2D2M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { dimensions, measures } = advancedVSeed\n\n if (!measures || !dimensions || !dataset) {\n return result\n }\n\n const commonDimensions = dimensions.filter((dim) => (dim as Dimension).location === 'dimension')\n\n const datasetList: Dataset[] = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n\n measures.forEach((measureGroup: MeasureGroup, index) => {\n const measures = measureGroup.children || []\n if (measures.length === 0) {\n throw new Error('measures can not be empty')\n }\n if (measures.length > 2) {\n throw new Error('measures can not be more than 2')\n }\n\n const datasets = []\n const foldInfoList: FoldInfo[] = []\n const unfoldInfoList: UnfoldInfo[] = []\n\n const primaryMeasures = measures[0] as MeasureGroup\n const secondaryMeasures = (measures[1] || measures[0]) as MeasureGroup\n\n if (primaryMeasures && primaryMeasures.children) {\n const {\n dataset: newDatasets,\n foldInfo,\n unfoldInfo,\n } = dataReshapeFor2D1M(dataset, commonDimensions, primaryMeasures.children, {\n foldMeasureValue: `${FoldPrimaryMeasureValue}${index}`,\n })\n datasets.push(newDatasets)\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n if (secondaryMeasures && secondaryMeasures.children) {\n const {\n dataset: newDatasets,\n foldInfo,\n unfoldInfo,\n } = dataReshapeFor2D1M(dataset, commonDimensions, secondaryMeasures.children, {\n foldMeasureValue: `${FoldSecondaryMeasureValue}${index}`,\n })\n datasets.push(newDatasets)\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n datasetList.push(datasets.flat(2))\n\n const unfoldInfo: UnfoldInfo = {\n groupName: unfoldInfoList[0].groupName,\n groupId: unfoldInfoList[0].groupId,\n colorItems: unfoldInfoList.flatMap((d) => d.colorItems),\n colorIdMap: unfoldInfoList.reduce((prev, cur) => ({ ...prev, ...cur.colorIdMap }), {}),\n }\n\n const reshapeInfo = {\n id: `2D2M-${index}`,\n index,\n foldInfo: foldInfoList[0],\n unfoldInfo: unfoldInfo,\n foldInfoList: foldInfoList,\n }\n\n datasetReshapeInfo.push(reshapeInfo)\n })\n\n return {\n ...result,\n dataset: datasetList,\n datasetReshapeInfo,\n }\n}\n","import type { AdvancedPipe, Dimensions, FoldInfo, UnfoldInfo } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingXYY: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo, dimensions } = advancedVSeed\n if (!datasetReshapeInfo || !dimensions) {\n return result\n }\n\n const xDimension =\n (dimensions as Dimensions).find(\n (item) => item.location !== 'rowDimension' && item.location !== 'columnDimension',\n ) || dimensions[0]\n\n const isZeroDimension = dimensions.length === 0\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfoList, unfoldInfo } = cur as {\n foldInfoList: FoldInfo[]\n unfoldInfo: UnfoldInfo\n }\n\n const x = [isZeroDimension ? foldInfoList[0].measureName : xDimension?.id]\n const y = foldInfoList.map((d) => d.measureValue)\n const group = [unfoldInfo.groupId]\n const color = [foldInfoList[0].measureName]\n\n return [\n ...prev,\n {\n x,\n y,\n group,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import { pick } from 'remeda'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const dualAxisConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const config = pick(vseed, [\n // common\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n\n // only for dualAxis\n 'dualChartType',\n 'primaryYAxis',\n 'secondaryYAxis',\n 'crosshairLine',\n ]) as Config['dualAxis']\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n","import { measureDepth } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Datum, DualAxis, DualMeasures, MeasureGroup, MeasureTree } from 'src/types'\n\nexport const autoDualMeasures: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context as {\n vseed: DualAxis\n }\n const { dataset, dualMeasures, measures } = vseed\n\n if (!dataset) {\n throw new Error('dataset is required')\n }\n\n if (dataset.length === 0) {\n return result\n }\n\n if (dualMeasures) {\n result.measures = dualMeasuresToMeasureTree(dualMeasures)\n return result\n }\n if (measures && measureDepth(measures) > 1) {\n result.measures = measures\n return result\n }\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n const newMeasures =\n measures ||\n Object.keys(sample)\n .filter((key) => {\n return top100dataset.some((item) => typeof item[key] === 'number') && !['', null, undefined].includes(key)\n })\n .map((measure) => ({\n id: measure,\n alias: measure,\n }))\n\n if (newMeasures.length === 0) {\n result.measures = []\n return result\n } else if (newMeasures.length === 1) {\n result.measures = [\n {\n id: 'primary',\n alias: 'primary',\n children: newMeasures,\n },\n ]\n return result\n } else if (newMeasures.length > 1) {\n result.measures = [\n {\n id: 'primary',\n alias: 'primary',\n children: newMeasures.slice(0, 1),\n },\n {\n id: 'secondary',\n alias: 'secondary',\n children: newMeasures.slice(1),\n },\n ]\n }\n\n return result\n}\n\nconst dualMeasuresToMeasureTree = (dualMeasures: DualMeasures): MeasureTree => {\n const measureTree = dualMeasures.map((item, index): MeasureGroup => {\n const { primaryMeasures, secondaryMeasures } = item\n const groupChildren: MeasureGroup[] = []\n\n let id: string = ''\n if (primaryMeasures) {\n const arrPrimaryMeasures = Array.isArray(primaryMeasures) ? primaryMeasures : [primaryMeasures]\n const alias = arrPrimaryMeasures.map((item) => item.alias || item.id).toString()\n id += alias\n groupChildren.push({\n id: `${index}-primary`,\n alias: arrPrimaryMeasures.map((item) => item.alias || item.id).toString(),\n children: arrPrimaryMeasures,\n })\n }\n if (secondaryMeasures) {\n const arrSecondaryMeasures = Array.isArray(secondaryMeasures) ? secondaryMeasures : [secondaryMeasures]\n const alias = arrSecondaryMeasures.map((item) => item.alias || item.id).toString()\n id += alias\n groupChildren.push({\n id: `${index}-secondary`,\n alias: arrSecondaryMeasures.map((item) => item.alias || item.id).toString(),\n children: arrSecondaryMeasures,\n })\n }\n\n return {\n id,\n alias: id,\n children: groupChildren,\n }\n })\n\n // 只有1个双轴图, 仅返回2层, vchart 绘制双轴图\n if (dualMeasures.length === 1) {\n return measureTree[0].children || []\n }\n\n // 有多个双轴图, 返回3层, pivot chart 绘制组合双轴图\n return measureTree\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n annotation,\n markStyle,\n sortXBandAxis,\n sortLegend,\n reshapeTo2D2M,\n encodingXYY,\n pivotReshapeTo2D2M,\n dualAxisConfig,\n} from '../pipes'\nimport { autoDualMeasures } from '../pipes/init/autoDualMeasures'\n\nexport const dualAxisAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoDualMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D2M], [pivotReshapeTo2D2M]),\n encodingXYY,\n sortXBandAxis,\n sortLegend,\n dualAxisConfig,\n theme,\n markStyle,\n annotation\n]\n","import type { IBarSeriesSpec, ILineSeriesSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initDualAxisPrimary: SpecPipe = (spec, context) => {\n const result = { ...spec } as IBarSeriesSpec\n const { advancedVSeed } = context\n const { encoding, datasetReshapeInfo } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.id = `${datasetReshapeInfo[0].id}-primary-series`\n result.type = 'bar'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.animation = true\n\n return result\n}\n\nexport const initDualAxisSecondary: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineSeriesSpec\n const { advancedVSeed } = context\n const { encoding, datasetReshapeInfo } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.id = `${datasetReshapeInfo[0].id}-secondary-series`\n result.type = 'line'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[1]\n result.seriesField = encoding[0].group[0]\n\n result.animation = true\n\n return result\n}\n","import type { IBarSeriesSpec, ISeriesSpec } from '@visactor/vchart'\nimport type { DualChartType, SpecPipe } from 'src/types'\n\nexport const dualChartTypePrimary: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISeriesSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { datasetReshapeInfo } = advancedVSeed\n const index = datasetReshapeInfo[0].index\n\n const config =\n advancedVSeed.config?.[chartType as 'dualAxis']?.dualChartType ||\n ({\n primary: 'column',\n secondary: 'line',\n } as DualChartType)\n\n const primary = Array.isArray(config) ? config[index].primary || config[0].primary : config.primary\n\n switch (primary) {\n case 'line': {\n result.type = 'line'\n break\n }\n case 'column': {\n result.type = 'bar'\n break\n }\n case 'columnParallel': {\n const columnSpec = result as IBarSeriesSpec\n if (Array.isArray(columnSpec.xField)) {\n columnSpec.xField.push(datasetReshapeInfo[0].unfoldInfo.groupId)\n } else if (columnSpec.xField) {\n columnSpec.xField = [columnSpec.xField, datasetReshapeInfo[0].unfoldInfo.groupId]\n }\n columnSpec.type = 'bar'\n break\n }\n // @ts-expect-error 'columnPercent' 和 'areaPercent' 会改变轴值域为[0,1], VTable不支持.\n case 'columnPercent': {\n result.type = 'bar'\n result.percent = true\n break\n }\n case 'area': {\n result.type = 'area'\n break\n }\n // @ts-expect-error 'columnPercent' 和 'areaPercent' 会改变轴值域为[0,1], VTable不支持.\n case 'areaPercent': {\n result.type = 'area'\n result.percent = true\n break\n }\n case 'scatter': {\n result.type = 'scatter'\n break\n }\n default:\n result.type = primary\n }\n\n return result\n}\n\nexport const dualChartTypeSecondary: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISeriesSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { datasetReshapeInfo } = advancedVSeed\n const config =\n advancedVSeed.config?.[chartType as 'dualAxis']?.dualChartType ||\n ({\n primary: 'column',\n secondary: 'line',\n } as DualChartType)\n\n const index = datasetReshapeInfo[0].index\n const secondary = Array.isArray(config) ? config[index].secondary || config[0].secondary : config.secondary\n\n switch (secondary) {\n case 'line': {\n result.type = 'line'\n break\n }\n case 'column': {\n result.type = 'bar'\n break\n }\n case 'columnParallel': {\n const columnSpec = result as IBarSeriesSpec\n if (Array.isArray(columnSpec.xField)) {\n columnSpec.xField.push(datasetReshapeInfo[0].unfoldInfo.groupId)\n } else if (columnSpec.xField) {\n columnSpec.xField = [columnSpec.xField, datasetReshapeInfo[0].unfoldInfo.groupId]\n }\n columnSpec.type = 'bar'\n break\n }\n // @ts-expect-error 'columnPercent' 和 'areaPercent' 会改变轴值域为[0,1], VTable不支持.\n case 'columnPercent': {\n result.type = 'bar'\n result.percent = true\n break\n }\n case 'area': {\n result.type = 'area'\n break\n }\n // @ts-expect-error 'columnPercent' 和 'areaPercent' 会改变轴值域为[0,1], VTable不支持.\n case 'areaPercent': {\n result.type = 'area'\n result.percent = true\n break\n }\n case 'scatter': {\n result.type = 'scatter'\n break\n }\n default:\n result.type = secondary\n }\n\n return result\n}\n","import type { ISpec } from '@visactor/vchart'\nimport { isPivotChart } from 'src/pipeline/utils'\nimport type { SpecPipe } from 'src/types'\n\nexport const datasetPrimary: SpecPipe = (spec, context) => {\n const { advancedVSeed, vseed } = context\n const { encoding, analysis, datasetReshapeInfo } = advancedVSeed\n const orderMapping = analysis?.orderMapping || {}\n const x = encoding[0]?.x?.[0]\n const group = encoding[0]?.group?.[0]\n const id = datasetReshapeInfo[0].id\n\n const fields: Record<string, object> = {}\n\n if (x) {\n const order = orderMapping[x]\n if (order) {\n fields[x] = {\n sortIndex: 0,\n domain: order,\n lockStatisticsByDomain: true,\n }\n } else {\n fields[x] = {\n sortIndex: 0,\n }\n }\n }\n\n if (group) {\n const order = orderMapping[group]\n if (order) {\n fields[group] = {\n sortIndex: 0,\n domain: order,\n lockStatisticsByDomain: true,\n }\n } else {\n fields[group] = {\n sortIndex: 0,\n }\n }\n }\n\n return {\n ...spec,\n data: {\n id: `${id}-primary-dataset`,\n // 透视表不使用 dataValues\n values: isPivotChart(vseed) ? undefined : advancedVSeed.dataset,\n fields: fields,\n },\n } as ISpec\n}\n\nexport const datasetSecondary: SpecPipe = (spec, context) => {\n const { advancedVSeed, vseed } = context\n const { encoding, analysis, datasetReshapeInfo } = advancedVSeed\n const orderMapping = analysis?.orderMapping || {}\n const x = encoding[0]?.x?.[0]\n const group = encoding[0]?.group?.[0]\n const id = datasetReshapeInfo[0].id\n\n const fields: Record<string, object> = {}\n\n if (x) {\n const order = orderMapping[x]\n if (order) {\n fields[x] = {\n sortIndex: 0,\n domain: order,\n lockStatisticsByDomain: true,\n }\n } else {\n fields[x] = {\n sortIndex: 0,\n }\n }\n }\n\n if (group) {\n const order = orderMapping[group]\n if (order) {\n fields[group] = {\n sortIndex: 0,\n domain: order,\n lockStatisticsByDomain: true,\n }\n } else {\n fields[group] = {\n sortIndex: 0,\n }\n }\n }\n\n return {\n ...spec,\n data: {\n id: `${id}-secondary-dataset`,\n // 透视表不使用 dataValues\n values: isPivotChart(vseed) ? undefined : advancedVSeed.dataset,\n fields: fields,\n },\n } as ISpec\n}\n","import type { ILineChartSpec } from '@visactor/vchart'\nimport type { ILineLikeLabelSpec } from '@visactor/vchart/esm/series/mixin/interface'\nimport { autoFormatter, createFormatter, findMeasureById } from '../../../../utils'\nimport type { Datum, FoldInfo, Label, SpecPipe } from 'src/types'\nimport { isEmpty, isNullish } from 'remeda'\n\nexport const labelPrimary: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo, locale } = advancedVSeed\n const { chartType } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { label: Label }\n\n if (!baseConfig || !baseConfig.label) {\n return result\n }\n\n const foldInfoList = datasetReshapeInfo[0].foldInfoList as FoldInfo[]\n const { measureId, measureValue } = foldInfoList[0]\n const { label } = baseConfig\n const { enable } = label\n\n result.label = {\n visible: enable,\n formatMethod: (value: string, datum: Datum) => {\n const result = []\n\n const formatValue = (value: number) => {\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return value\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n }\n\n result.push(formatValue(datum[measureValue] as number))\n\n return result.join(' ')\n },\n } as ILineLikeLabelSpec\n return result\n}\n\nexport const labelSecondary: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo, locale } = advancedVSeed\n const { chartType } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { label: Label }\n\n if (!baseConfig || !baseConfig.label) {\n return result\n }\n if (isNullish(datasetReshapeInfo[0].foldInfoList?.[1])) {\n return result\n }\n const foldInfoList = datasetReshapeInfo[0].foldInfoList as FoldInfo[]\n\n const { measureId, measureValue } = foldInfoList[1]\n const { label } = baseConfig\n const { enable } = label\n\n result.label = {\n visible: enable,\n formatMethod: (value: string, datum: Datum) => {\n const result = []\n\n const formatValue = (value: number) => {\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return value\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n }\n\n result.push(formatValue(datum[measureValue] as number))\n\n return result.join(' ')\n },\n } as ILineLikeLabelSpec\n return result\n}\n","import { isEmpty, isNullish } from 'remeda'\nimport { autoFormatter, createFormatter, findMeasureById } from '../../../../utils'\nimport type { Datum, FoldInfo, SpecPipe, Tooltip, UnfoldInfo } from 'src/types'\n\nexport const tooltipPrimary: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo, chartType, locale, dimensions } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n\n const foldInfoList = datasetReshapeInfo[0].foldInfoList as FoldInfo[]\n const unfoldInfo = datasetReshapeInfo[0].unfoldInfo\n\n const { measureId, measureValue, measureName } = foldInfoList[0]\n const { groupName } = unfoldInfo\n\n result.tooltip = {\n visible: enable,\n\n mark: {\n title: {\n visible: true,\n },\n content: [\n ...dimensions.map((item) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (datum: unknown) => {\n if (item.alias || item.id) {\n return item.alias || item.id\n }\n return (datum as Datum) && ((datum as Datum)[item.id] as string)\n },\n value: (datum: unknown) => {\n return (datum as Datum) && ((datum as Datum)[item.id] as string)\n },\n })),\n {\n visible: true,\n hasShape: true,\n key: (datum) => (datum && (datum[measureName || groupName] as string)) || '',\n value: (datum) => {\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n },\n },\n ],\n },\n dimension: {\n content: [\n {\n visible: true,\n key: (datum) => (datum && (datum[groupName] as string)) || '',\n value: (datum) => {\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n },\n shapeType: 'rectRound',\n },\n ],\n },\n }\n return result\n}\n\nexport const tooltipSecondary: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo, chartType, locale, dimensions } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n\n if (isNullish(datasetReshapeInfo[0].foldInfoList?.[1])) {\n return result\n }\n\n const foldInfoList = datasetReshapeInfo[0].foldInfoList as FoldInfo[]\n const unfoldInfo = datasetReshapeInfo[0].unfoldInfo as UnfoldInfo\n const { measureId, measureValue, measureName } = foldInfoList[1]\n const { groupName } = unfoldInfo\n\n result.tooltip = {\n visible: enable,\n\n mark: {\n title: {\n visible: true,\n },\n content: [\n ...dimensions.map((item) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (datum: unknown) => {\n if (item.alias || item.id) {\n return item.alias || item.id\n }\n return (datum as Datum) && ((datum as Datum)[item.id] as string)\n },\n value: (datum: unknown) => {\n return (datum as Datum) && ((datum as Datum)[item.id] as string)\n },\n })),\n {\n visible: true,\n hasShape: true,\n key: (datum) => (datum && (datum[measureName || groupName] as string)) || '',\n value: (datum) => {\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n },\n },\n ],\n },\n dimension: {\n content: [\n {\n visible: true,\n key: (datum) => (datum && (datum[groupName] as string)) || '',\n value: (datum) => {\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n },\n shapeType: 'rectRound',\n },\n ],\n },\n }\n return result\n}\n","import type { ISpec } from '@visactor/vchart'\nimport { LINEAR_AXIS_INNER_OFFSET_TOP } from '../../../../utils/constant'\nimport { autoFormatter } from '../../../../utils'\nimport type { SpecPipe, YLinearAxis } from 'src/types'\nimport { isEmpty } from 'remeda'\n\nexport const yLinearPrimary: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { locale, datasetReshapeInfo } = advancedVSeed\n // TODO: default config missing\n const index = datasetReshapeInfo[0].index\n const primaryYAxis = advancedVSeed.config?.[chartType as 'dualAxis']?.primaryYAxis as YLinearAxis | YLinearAxis[]\n const config = Array.isArray(primaryYAxis) ? primaryYAxis[index] || primaryYAxis[0] : primaryYAxis\n\n if (datasetReshapeInfo[0].foldInfoList?.[0] && isEmpty(datasetReshapeInfo[0].foldInfoList[0].foldMap)) {\n return result\n }\n const id = `${datasetReshapeInfo[0].id}-primary-axis`\n const seriesId = `${datasetReshapeInfo[0].id}-primary-series`\n\n if (!result.axes) {\n result.axes = []\n }\n\n if (!config) {\n result.axes = [\n ...result.axes,\n {\n visible: true,\n id,\n seriesId,\n type: 'linear',\n orient: 'left',\n sync: {\n axisId: `${datasetReshapeInfo[0].id}-secondary-axis`,\n tickAlign: false,\n zeroAlign: true,\n },\n },\n ] as ISpec['axes']\n return result\n }\n\n const {\n visible = true,\n label,\n tick,\n title,\n grid,\n line,\n\n zero,\n nice,\n inverse,\n max,\n min,\n log,\n logBase = 10,\n } = config\n\n const linearAxis = {\n visible,\n id,\n seriesId,\n sync: {\n axisId: `${datasetReshapeInfo[0].id}-secondary-axis`,\n tickAlign: false,\n zeroAlign: true,\n },\n\n type: log ? 'log' : 'linear',\n base: logBase,\n orient: 'left',\n nice,\n zero: log ? false : zero,\n inverse,\n max,\n min,\n label: {\n visible: label?.visible,\n formatMethod: (value: string) => {\n return autoFormatter(value, locale)\n },\n style: {\n fill: label?.labelColor,\n angle: label?.labelAngle,\n fontSize: label?.labelFontSize,\n fontWeight: label?.labelFontWeight,\n },\n },\n title: {\n visible: title?.visible,\n text: title?.titleText,\n style: {\n fill: title?.titleColor,\n fontSize: title?.titleFontSize,\n fontWeight: title?.titleFontWeight,\n },\n },\n tick: {\n visible: tick?.visible,\n tickSize: tick?.tickSize,\n inside: tick?.tickInside,\n style: {\n stroke: tick?.tickColor,\n },\n },\n grid: {\n visible: grid?.visible,\n style: {\n lineWidth: grid?.gridWidth,\n stroke: grid?.gridColor,\n },\n },\n domainLine: {\n visible: line?.visible,\n style: {\n lineWidth: line?.lineWidth,\n stroke: line?.lineColor,\n },\n },\n innerOffset: {\n top: LINEAR_AXIS_INNER_OFFSET_TOP,\n // bottom: LINEAR_AXIS_INNER_OFFSET_TOP,\n },\n }\n\n result.axes = [...result.axes, linearAxis] as ISpec['axes']\n\n return result\n}\n","import type { ISpec } from '@visactor/vchart'\nimport { LINEAR_AXIS_INNER_OFFSET_TOP } from '../../../../utils/constant'\nimport { autoFormatter } from '../../../../utils'\nimport type { SpecPipe, YLinearAxis } from 'src/types'\nimport { isNullish } from 'remeda'\n\nexport const yLinearSecondary: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { locale, datasetReshapeInfo } = advancedVSeed\n // TODO: default config missing\n const index = datasetReshapeInfo[0].index\n const secondaryYAxis = advancedVSeed.config?.[chartType as 'dualAxis']?.secondaryYAxis as YLinearAxis | YLinearAxis[]\n const config = Array.isArray(secondaryYAxis) ? secondaryYAxis[index] || secondaryYAxis[0] : secondaryYAxis\n\n if (isNullish(datasetReshapeInfo[0].foldInfoList?.[1])) {\n return result\n }\n\n const id = `${datasetReshapeInfo[0].id}-secondary-axis`\n const seriesId = `${datasetReshapeInfo[0].id}-secondary-series`\n\n if (!result.axes) {\n result.axes = []\n }\n\n if (!config) {\n result.axes = [\n ...result.axes,\n {\n visible: true,\n id,\n seriesId,\n type: 'linear',\n orient: 'right',\n },\n ] as ISpec['axes']\n return result\n }\n\n const {\n visible = true,\n label,\n tick,\n title,\n grid,\n line,\n\n zero,\n nice,\n inverse,\n max,\n min,\n log,\n logBase = 10,\n } = config\n\n const linearAxis = {\n visible,\n id,\n seriesId,\n type: log ? 'log' : 'linear',\n base: logBase,\n orient: 'right',\n nice,\n zero: log ? false : zero,\n inverse,\n max,\n min,\n label: {\n visible: label?.visible,\n formatMethod: (value: string) => {\n return autoFormatter(value, locale)\n },\n style: {\n fill: label?.labelColor,\n angle: label?.labelAngle,\n fontSize: label?.labelFontSize,\n fontWeight: label?.labelFontWeight,\n },\n },\n title: {\n visible: title?.visible,\n text: title?.titleText,\n style: {\n fill: title?.titleColor,\n fontSize: title?.titleFontSize,\n fontWeight: title?.titleFontWeight,\n },\n },\n tick: {\n visible: tick?.visible,\n tickSize: tick?.tickSize,\n inside: tick?.tickInside,\n style: {\n stroke: tick?.tickColor,\n },\n },\n grid: {\n visible: grid?.visible,\n style: {\n lineWidth: grid?.gridWidth,\n stroke: grid?.gridColor,\n },\n },\n domainLine: {\n visible: line?.visible,\n style: {\n lineWidth: line?.lineWidth,\n stroke: line?.lineColor,\n },\n },\n innerOffset: {\n top: LINEAR_AXIS_INNER_OFFSET_TOP,\n // bottom: LINEAR_AXIS_INNER_OFFSET_TOP,\n },\n }\n\n result.axes = [...result.axes, linearAxis] as ISpec['axes']\n\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n xBand,\n backgroundColor,\n discreteLegend,\n color,\n initPivot,\n datasetPivot,\n pivotDiscreteLegend,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n pointStyle,\n lineStyle,\n pointStateDimensionHover,\n progressive,\n datasetPrimary,\n datasetSecondary,\n areaStyle,\n barStyle,\n verticalCrosshairRect,\n yLinearSecondary,\n initDualAxisPrimary,\n initDualAxisSecondary,\n labelPrimary,\n labelSecondary,\n tooltipPrimary,\n tooltipSecondary,\n yLinearPrimary,\n dualChartTypePrimary,\n dualChartTypeSecondary,\n seriesDualAxis,\n} from '../pipes'\n\nconst dualAxis: SpecPipeline = [\n seriesDualAxis(\n [\n initDualAxisPrimary,\n dualChartTypePrimary,\n datasetPrimary,\n labelPrimary,\n tooltipPrimary,\n progressive,\n\n barStyle,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n areaStyle,\n ],\n [\n initDualAxisSecondary,\n dualChartTypeSecondary,\n datasetSecondary,\n labelSecondary,\n tooltipSecondary,\n progressive,\n\n barStyle,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n areaStyle,\n ],\n ),\n xBand,\n yLinearPrimary,\n yLinearSecondary,\n\n color,\n backgroundColor,\n discreteLegend,\n\n verticalCrosshairRect,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotDualAxis: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n seriesDualAxis(\n [\n initDualAxisPrimary,\n dualChartTypePrimary,\n datasetPrimary,\n labelPrimary,\n tooltipPrimary,\n progressive,\n\n barStyle,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n areaStyle,\n ],\n [\n initDualAxisSecondary,\n dualChartTypeSecondary,\n datasetSecondary,\n labelSecondary,\n tooltipSecondary,\n progressive,\n\n barStyle,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n areaStyle,\n ],\n ),\n xBand,\n yLinearPrimary,\n yLinearSecondary,\n color,\n backgroundColor,\n verticalCrosshairRect,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const dualAxisSpecPipeline: SpecPipeline = [pivotAdapter(dualAxis, pivotDualAxis)]\n","import { dualAxisAdvancedPipeline, dualAxisSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerDualAxis = () => {\n Builder._advancedPipelineMap['dualAxis'] = dualAxisAdvancedPipeline\n Builder._specPipelineMap['dualAxis'] = dualAxisSpecPipeline\n}\n","import type { Dataset, Dimension, FoldInfo, Measure, UnfoldInfo } from 'src/types'\nimport { foldMeasures } from './foldMeasures'\nimport {\n UnfoldDimensionGroup,\n FoldMeasureId,\n FoldMeasureName,\n FoldMeasureValue,\n UnfoldDimensionGroupId,\n} from './constant'\nimport { unfoldDimensions } from './unfoldDimensions'\nimport { i18n } from '../i18n'\n\nconst emptyReshapeResult = {\n dataset: [],\n foldInfo: {\n foldMap: {},\n measureId: '',\n measureName: '',\n measureValue: '',\n },\n unfoldInfo: {\n groupName: '',\n groupId: '',\n colorItems: [],\n colorIdMap: {},\n },\n}\n/**\n * 数据重塑为1个维度1个指标\n * @param dataset\n * @param dimensions\n * @param measures\n * @returns\n */\nexport const dataReshapeFor1D1M = (\n dataset: Dataset,\n dimensions: Dimension[],\n measures: Measure[],\n options?: {\n foldMeasureId?: string\n foldMeasureName?: string\n foldMeasureValue?: string\n unfoldDimensionGroup?: string\n unfoldDimensionGroupId?: string\n },\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n} => {\n const {\n foldMeasureId = FoldMeasureId,\n foldMeasureName = FoldMeasureName,\n foldMeasureValue = FoldMeasureValue,\n unfoldDimensionGroup = UnfoldDimensionGroup,\n unfoldDimensionGroupId = UnfoldDimensionGroupId,\n } = options || {}\n\n if (dimensions.length === 0 && measures.length === 0) {\n return emptyReshapeResult\n }\n\n // 合并所有指标为1个指标\n const { dataset: foldedDataset, foldInfo } = foldMeasures(\n dataset,\n measures,\n foldMeasureId,\n foldMeasureName,\n foldMeasureValue,\n )\n\n if (dimensions.length === 0) {\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n [{ id: foldMeasureName, alias: i18n`指标名称`, location: 'dimension' }],\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\n 0,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n foldMeasureId,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n } else {\n const dims =\n measures.length === 1\n ? ([...dimensions] as Dimension[])\n : ([...dimensions, { id: foldMeasureName, alias: i18n`指标名称`, location: 'dimension' }] as Dimension[])\n // 展开指定的维度为指标\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n dims,\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\n 0,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n foldMeasureId,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n }\n}\n","import { dataReshapeFor1D1M } from 'src/dataReshape'\nimport type { AdvancedPipe } from 'src/types'\n\n/**\n * 数据重塑, 将任意维度、任意指标, 重塑为2个维度1个指标.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const reshapeTo1D1M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { dimensions, measures } = advancedVSeed\n if (!measures || !dimensions || !dataset) {\n return result\n }\n\n if (measures.length === 0) {\n throw new Error('measures can not be empty')\n }\n\n const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeFor1D1M(dataset, dimensions, measures)\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: [\n {\n id: '1D1M',\n index: 0,\n foldInfo,\n unfoldInfo,\n },\n ],\n }\n}\n","import { FoldMeasureId, FoldMeasureName, FoldMeasureValue, UnfoldDimensionGroup } from 'src/dataReshape/constant'\nimport { dataReshapeFor1D1M } from 'src/dataReshape'\nimport type { AdvancedPipe, Dataset, DatasetReshapeInfo, Dimensions, MeasureGroup } from 'src/types'\n\n/**\n * 数据重塑为透视结构, 如果存在指标分组, 则将数据按组划分. 如果存在行列维度, 则生成行列树结构.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const pivotReshapeTo1D1M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { measures } = advancedVSeed\n const dimensions = advancedVSeed.dimensions as Dimensions\n\n if (!measures || !dimensions) {\n return result\n }\n\n const measureGroups: MeasureGroup[] = []\n if (measures) {\n measures.forEach((measure: MeasureGroup) => {\n if (measure.children && measure.children.length > 0) {\n measureGroups.push(measure)\n }\n })\n }\n const newDatasets: Dataset = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n measureGroups.forEach((measureGroup, index) => {\n const measures = measureGroup.children\n if (!measures) {\n return\n }\n\n const commonDimensions = dimensions.filter((dim) => dim.location === 'dimension')\n const groupId = measureGroup.id\n const {\n dataset: newSubDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeFor1D1M(dataset, commonDimensions, measures, {\n foldMeasureId: FoldMeasureId,\n foldMeasureName: FoldMeasureName,\n foldMeasureValue: FoldMeasureValue + groupId,\n unfoldDimensionGroup: UnfoldDimensionGroup,\n })\n const reshapeInfo = {\n id: groupId,\n index,\n foldInfo,\n unfoldInfo,\n }\n newDatasets.push(newSubDataset)\n datasetReshapeInfo.push(reshapeInfo)\n })\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n","import type { AdvancedPipe, FoldInfo, UnfoldInfo } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingPie: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo } = advancedVSeed\n if (!datasetReshapeInfo) {\n return result\n }\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfo, unfoldInfo } = cur as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n const radius = [foldInfo.measureValue]\n const angle = [unfoldInfo.groupId]\n const group = [unfoldInfo.groupId]\n const color = [unfoldInfo.groupId]\n\n return [\n ...prev,\n {\n angle,\n radius,\n group,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n reshapeTo1D1M,\n pivotReshapeTo1D1M,\n encodingPie,\n pieConfig,\n annotation,\n} from '../pipes'\n\nexport const pieAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo1D1M], [pivotReshapeTo1D1M]),\n encodingPie,\n pieConfig,\n theme,\n annotation\n]\n","import type { IPieChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initPie: SpecPipe = (spec, context) => {\n const result = { ...spec } as IPieChartSpec\n const { advancedVSeed } = context\n const { encoding, dataset } = advancedVSeed\n\n if (!encoding[0].angle || !encoding[0].radius || !encoding[0].group) {\n return result\n }\n\n const showStroke = dataset.length <= 30\n\n result.type = 'pie'\n result.outerRadius = 0.8\n result.innerRadius = 0\n result.valueField = encoding[0].radius[0]\n result.categoryField = encoding[0].angle[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n result.pie = {\n style: {\n stroke: '#ffffff',\n lineWidth: showStroke ? 1 : 0,\n centerOffset: 0,\n },\n state: {\n hover: {\n outerRadius: result.outerRadius * 1.1,\n },\n },\n }\n result.animation = true\n\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n backgroundColor,\n color,\n datasetXY,\n datasetPivot,\n initPie,\n initPivot,\n label,\n discreteLegend,\n pivotAdapter,\n pivotColumnDimensions,\n pivotGridStyle,\n pivotIndicators,\n pivotIndicatorsAsRow,\n pivotDiscreteLegend,\n pivotRowDimensions,\n tooltip,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n progressive,\n} from '../pipes'\n\nconst pie: SpecPipeline = [\n initPie,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n label,\n tooltip,\n discreteLegend,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotPie: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initPie,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n label,\n tooltip,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const pieSpecPipeline: SpecPipeline = [pivotAdapter(pie, pivotPie)]\n","import { pieAdvancedPipeline, pieSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerPie = () => {\n Builder._advancedPipelineMap['pie'] = pieAdvancedPipeline\n Builder._specPipelineMap['pie'] = pieSpecPipeline\n}","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n reshapeTo1D1M,\n pivotReshapeTo1D1M,\n encodingPie,\n annotation,\n donutConfig,\n} from '../pipes'\n\nexport const donutAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo1D1M], [pivotReshapeTo1D1M]),\n encodingPie,\n donutConfig,\n theme,\n annotation\n]\n","import type { IPieChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initDonut: SpecPipe = (spec, context) => {\n const result = { ...spec } as IPieChartSpec\n const { advancedVSeed } = context\n const { encoding, dataset } = advancedVSeed\n\n if (!encoding[0].angle || !encoding[0].radius || !encoding[0].group) {\n return result\n }\n const showStroke = dataset.length <= 30\n\n result.type = 'pie'\n result.outerRadius = 0.8\n result.innerRadius = result.outerRadius * 0.8\n result.valueField = encoding[0].radius[0]\n result.categoryField = encoding[0].angle[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n\n result.pie = {\n style: {\n stroke: '#ffffff',\n lineWidth: showStroke ? 1 : 0,\n },\n state: {\n hover: {\n outerRadius: result.outerRadius * 1.1,\n },\n },\n }\n\n result.animation = true\n\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n backgroundColor,\n color,\n datasetXY,\n datasetPivot,\n initDonut,\n initPivot,\n label,\n discreteLegend,\n pivotAdapter,\n pivotColumnDimensions,\n pivotGridStyle,\n pivotIndicators,\n pivotIndicatorsAsRow,\n pivotDiscreteLegend,\n pivotRowDimensions,\n tooltip,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n progressive,\n} from '../pipes'\n\nconst donut: SpecPipeline = [\n initDonut,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n label,\n tooltip,\n discreteLegend,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotDonut: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initDonut,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n label,\n tooltip,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const donutSpecPipeline: SpecPipeline = [pivotAdapter(donut, pivotDonut)]\n","import { donutAdvancedPipeline, donutSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerDonut = () => {\n Builder._advancedPipelineMap['donut'] = donutAdvancedPipeline\n Builder._specPipelineMap['donut'] = donutSpecPipeline\n}","import type { AdvancedPipe, Dimensions, FoldInfo, UnfoldInfo } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingRose: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo, dimensions, measures } = advancedVSeed\n if (!datasetReshapeInfo || !dimensions || !measures) {\n return result\n }\n\n const angleDimension =\n (dimensions as Dimensions).find(\n (item) => item.location !== 'rowDimension' && item.location !== 'columnDimension',\n ) || dimensions[0]\n\n const is1D1M = dimensions.length === 1 && measures.length === 1\n const isZeroDimension = dimensions.length === 0\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfo, unfoldInfo } = cur as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n const radius = [foldInfo.measureValue]\n const angle = [isZeroDimension ? foldInfo.measureName : angleDimension?.id]\n const group = [is1D1M ? angleDimension?.id : unfoldInfo.groupId]\n const color = [is1D1M ? angleDimension?.id : unfoldInfo.groupId]\n\n return [\n ...prev,\n {\n angle,\n radius,\n group,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n initAdvancedVSeed,\n reshapeTo2D1M,\n theme,\n pivotAdapter,\n markStyle,\n annotation,\n roseConfig,\n encodingRose,\n pivotReshapeTo2D1M,\n} from '../pipes'\n\nexport const roseAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingRose,\n roseConfig,\n theme,\n markStyle,\n annotation,\n]\n","import type { IRoseChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initRose: SpecPipe = (spec, context) => {\n const result = { ...spec } as IRoseChartSpec\n const { advancedVSeed } = context\n const { encoding, dataset, datasetReshapeInfo } = advancedVSeed\n const { foldInfo } = datasetReshapeInfo[0]\n if (!encoding[0].radius || !encoding[0].angle || !encoding[0].group) {\n return result\n }\n\n result.type = 'rose'\n result.categoryField = encoding[0].angle[0]\n result.valueField = encoding[0].radius[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.outerRadius = 0.9\n result.innerRadius = 0\n\n const hasNegativeValue = dataset.flat().find((d) => d[foldInfo.measureValue] < 0)\n if (hasNegativeValue) {\n result.innerRadius = 0.05\n }\n\n result.rose = {\n style: {\n stroke: '#ffffff',\n lineWidth: 1,\n },\n state: {\n hover: {\n lineWidth: 1,\n fillOpacity: 0.6,\n },\n },\n }\n result.region = [\n {\n clip: true,\n },\n ]\n result.animation = true\n\n return result\n}\n","import type { IRoseChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const radiusAxis: SpecPipe = (spec, context) => {\n const result = { ...spec } as IRoseChartSpec\n const { advancedVSeed } = context\n const { dimensions, measures } = advancedVSeed\n\n if (!dimensions || !measures) {\n return result\n }\n\n const is0D = dimensions.length === 0\n const is1M1D = dimensions.length === 1 && measures.length === 1\n const showAxis = !(is0D || is1M1D)\n\n if (!result.axes) {\n result.axes = []\n }\n\n result.axes.push({\n orient: 'radius',\n visible: showAxis,\n zero: true,\n nice: showAxis ? true : false,\n grid: {\n visible: showAxis,\n },\n tick: {\n visible: showAxis,\n },\n label: {\n visible: showAxis,\n },\n domainLine: {\n visible: showAxis,\n },\n })\n\n return result\n}\n","import type { IRoseChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const angleAxis: SpecPipe = (spec, context) => {\n const result = { ...spec } as IRoseChartSpec\n const { advancedVSeed } = context\n const { dimensions, measures } = advancedVSeed\n\n if (!dimensions || !measures) {\n return result\n }\n\n const is0D = dimensions.length === 0\n const is1M1D = dimensions.length === 1 && measures.length === 1\n const showAxis = !(is0D || is1M1D)\n\n if (!result.axes) {\n result.axes = []\n }\n\n result.axes.push({\n orient: 'angle',\n visible: showAxis,\n zero: true,\n nice: showAxis ? true : false,\n paddingInner: showAxis ? [0.15, 0.1] : [0, 0],\n paddingOuter: showAxis ? [0.075, 0.1] : [0, 0],\n grid: {\n visible: showAxis,\n },\n domainLine: {\n visible: showAxis,\n },\n tick: {\n visible: showAxis,\n },\n })\n\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n datasetXY,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n pivotAdapter,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n stackInverse,\n verticalCrosshairRect,\n stackCornerRadius,\n initRose,\n radiusAxis,\n angleAxis,\n progressive,\n} from '../pipes'\n\nconst rose: SpecPipeline = [\n initRose,\n stackCornerRadius,\n stackInverse,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n radiusAxis,\n angleAxis,\n label,\n tooltip,\n verticalCrosshairRect,\n discreteLegend,\n]\n\nconst pivotRose: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initRose,\n stackCornerRadius,\n stackInverse,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n radiusAxis,\n angleAxis,\n label,\n tooltip,\n verticalCrosshairRect,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const roseSpecPipeline = [pivotAdapter(rose, pivotRose)]\n","import { roseAdvancedPipeline, roseSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerRose = () => {\n Builder._advancedPipelineMap['rose'] = roseAdvancedPipeline\n Builder._specPipelineMap['rose'] = roseSpecPipeline\n}","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n initAdvancedVSeed,\n reshapeTo2D1M,\n theme,\n pivotAdapter,\n pivotReshapeTo2D1M,\n markStyle,\n annotation,\n roseParallelConfig,\n encodingRose,\n} from '../pipes'\n\nexport const roseParallelAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingRose,\n roseParallelConfig,\n theme,\n markStyle,\n annotation,\n]\n","import type { IRoseChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initRoseParallel: SpecPipe = (spec, context) => {\n const result = { ...spec } as IRoseChartSpec\n const { advancedVSeed } = context\n const { encoding, datasetReshapeInfo, dataset } = advancedVSeed\n const { unfoldInfo, foldInfo } = datasetReshapeInfo[0]\n\n if (!encoding[0].radius || !encoding[0].angle || !encoding[0].group) {\n return result\n }\n\n result.type = 'rose'\n result.categoryField = [encoding[0].angle[0], unfoldInfo.groupId]\n result.valueField = encoding[0].radius[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n\n result.outerRadius = 0.9\n result.innerRadius = 0\n\n const hasNegativeValue = dataset.flat().find((d) => d[foldInfo.measureValue] < 0)\n if (hasNegativeValue) {\n result.innerRadius = 0.05\n }\n\n result.rose = {\n style: {\n stroke: '#ffffff',\n lineWidth: 1,\n },\n state: {\n hover: {\n lineWidth: 1,\n fillOpacity: 0.6,\n },\n },\n }\n result.region = [\n {\n clip: true,\n },\n ]\n result.animation = true\n\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n datasetXY,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n pivotIndicators,\n initPivot,\n datasetPivot,\n pivotAdapter,\n pivotDiscreteLegend,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n verticalCrosshairRect,\n stackCornerRadius,\n initRoseParallel,\n radiusAxis,\n angleAxis,\n progressive,\n} from '../pipes'\n\nconst roseParallel: SpecPipeline = [\n initRoseParallel,\n stackCornerRadius,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n radiusAxis,\n angleAxis,\n label,\n tooltip,\n discreteLegend,\n verticalCrosshairRect,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotRoseParallel: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initRoseParallel,\n stackCornerRadius,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n radiusAxis,\n angleAxis,\n label,\n tooltip,\n verticalCrosshairRect,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const roseParallelSpecPipeline: SpecPipeline = [pivotAdapter(roseParallel, pivotRoseParallel)]\n","import { roseParallelAdvancedPipeline, roseParallelSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerRoseParallel = () => {\n Builder._advancedPipelineMap['roseParallel'] = roseParallelAdvancedPipeline\n Builder._specPipelineMap['roseParallel'] = roseParallelSpecPipeline\n}","import type { AdvancedPipe, Dimensions, FoldInfo, UnfoldInfo } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingAR: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo, dimensions, measures } = advancedVSeed\n if (!datasetReshapeInfo || !dimensions || !measures) {\n return result\n }\n\n const angleDimension =\n (dimensions as Dimensions).find(\n (item) => item.location !== 'rowDimension' && item.location !== 'columnDimension',\n ) || dimensions[0]\n\n const isZeroDimension = dimensions.length === 0\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfo, unfoldInfo } = cur as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n const angle = [isZeroDimension ? foldInfo.measureName : angleDimension?.id]\n const radius = [foldInfo.measureValue]\n const group = [unfoldInfo.groupId]\n const color = [unfoldInfo.groupId]\n\n return [\n ...prev,\n {\n angle,\n radius,\n group,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n annotation,\n markStyle,\n sortLegend,\n radarConfig,\n encodingAR,\n reshapeTo2D1M0Name,\n pivotReshapeTo2D1M0Name,\n} from '../pipes'\n\nexport const radarAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M0Name], [pivotReshapeTo2D1M0Name]),\n encodingAR,\n // sortXBandAxis,\n sortLegend,\n radarConfig,\n theme,\n markStyle,\n annotation,\n]\n","import type { IRadarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initRadar: SpecPipe = (spec, context) => {\n const result = { ...spec } as IRadarChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].angle || !encoding[0].radius || !encoding[0].group) {\n return result\n }\n\n result.type = 'radar'\n result.angleField = encoding[0].angle[0]\n result.radiusField = encoding[0].radius[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n result.animation = true\n return result\n}\n","import type { IRoseChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const radarAngleAxis: SpecPipe = (spec, context) => {\n const result = { ...spec } as IRoseChartSpec\n const { advancedVSeed } = context\n const { dimensions, measures } = advancedVSeed\n\n if (!dimensions || !measures) {\n return result\n }\n\n if (!result.axes) {\n result.axes = []\n }\n\n result.axes.push({\n orient: 'angle',\n visible: true,\n zero: true,\n nice: true,\n grid: {\n visible: true,\n },\n domainLine: {\n visible: true,\n },\n tick: {\n visible: true,\n },\n })\n\n return result\n}\n","import type { IRoseChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const radarRadiusAxis: SpecPipe = (spec, context) => {\n const result = { ...spec } as IRoseChartSpec\n const { advancedVSeed } = context\n const { dimensions, measures } = advancedVSeed\n\n if (!dimensions || !measures) {\n return result\n }\n\n if (!result.axes) {\n result.axes = []\n }\n\n result.axes.push({\n orient: 'radius',\n visible: true,\n zero: true,\n nice: true,\n grid: {\n visible: true,\n },\n tick: {\n visible: true,\n },\n label: {\n visible: true,\n },\n domainLine: {\n visible: true,\n },\n })\n\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n datasetXY,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n initPivot,\n datasetPivot,\n pivotDiscreteLegend,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n pointStyle,\n lineStyle,\n verticalCrosshairLine,\n pointStateDimensionHover,\n initRadar,\n areaStyle,\n radarAngleAxis,\n radarRadiusAxis,\n progressive,\n} from '../pipes'\n\nconst radar: SpecPipeline = [\n initRadar,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n radarAngleAxis,\n radarRadiusAxis,\n label,\n tooltip,\n verticalCrosshairLine,\n discreteLegend,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n areaStyle,\n // annotationPoint,\n // annotationVerticalLine,\n // annotationHorizontalLine,\n // annotationArea,\n]\n\nconst pivotRadar: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initRadar,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n radarAngleAxis,\n radarRadiusAxis,\n label,\n tooltip,\n verticalCrosshairLine,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n areaStyle,\n // annotationPoint,\n // annotationVerticalLine,\n // annotationHorizontalLine,\n // annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const radarSpecPipeline: SpecPipeline = [pivotAdapter(radar, pivotRadar)]\n","import { radarAdvancedPipeline, radarSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerRadar = () => {\n Builder._advancedPipelineMap['radar'] = radarAdvancedPipeline\n Builder._specPipelineMap['radar'] = radarSpecPipeline\n}","import type { AdvancedPipe, FoldInfo, UnfoldInfo } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingFunnel: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo } = advancedVSeed\n if (!datasetReshapeInfo) {\n return result\n }\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfo, unfoldInfo } = cur as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n const size = [foldInfo.measureValue]\n const group = [unfoldInfo.groupId]\n const color = [foldInfo.measureValue]\n\n return [\n ...prev,\n {\n size,\n group,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n reshapeTo1D1M,\n pivotReshapeTo1D1M,\n annotation,\n encodingFunnel,\n funnelConfig,\n} from '../pipes'\n\nexport const funnelAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo1D1M], [pivotReshapeTo1D1M]),\n encodingFunnel,\n funnelConfig,\n theme,\n annotation,\n]\n","import type { IFunnelChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initFunnel: SpecPipe = (spec, context) => {\n const result = { ...spec } as IFunnelChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].size || !encoding[0].group || !encoding[0].color) {\n return result\n }\n\n result.type = 'funnel'\n result.valueField = encoding[0].size[0]\n result.categoryField = encoding[0].group[0]\n result.padding = 0\n result.isTransform = true\n result.shape = 'rect'\n result.maxSize = '75%'\n result.minSize = '10%'\n result.region = [\n {\n clip: true,\n },\n ]\n result.funnel = {\n style: {\n cornerRadius: 4,\n fill: {\n field: encoding[0].color[0],\n scale: 'color',\n },\n },\n state: {\n hover: {\n fillOpacity: 0.6,\n },\n },\n }\n result.transformLabel = {\n visible: true,\n }\n\n result.animation = true\n\n return result\n}\n","import type { ILineChartSpec } from '@visactor/vchart'\nimport type { Color, SpecPipe } from 'src/types'\n\nexport const linearColor: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const { datasetReshapeInfo, chartType, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { color: Color }\n\n if (!baseConfig || !baseConfig.color) {\n return result\n }\n\n const { color } = baseConfig\n const { colorScheme } = color\n\n result.color = {\n type: 'linear',\n domain: [\n {\n dataId: datasetReshapeInfo[0].id,\n fields: encoding?.[0]?.color,\n },\n ],\n range: colorScheme,\n } as ILineChartSpec['color']\n return result\n}\n","import type { Legend, SpecPipe } from 'src/types'\n\nexport const colorLegend: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { chartType } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { legend: Legend }\n const { encoding } = advancedVSeed\n\n if (!encoding[0].color) {\n return result\n }\n\n if (!baseConfig || !baseConfig.legend) {\n return result\n }\n\n const { legend } = baseConfig\n const { enable, position = 'bottom' } = legend || {}\n\n const orient = ['bottom', 'bottomLeft', 'bottomRight', 'bl', 'br'].includes(position)\n ? 'bottom'\n : ['top', 'topLeft', 'topRight', 'tl', 'tr'].includes(position)\n ? 'top'\n : ['left', 'leftTop', 'leftBottom', 'lt', 'lb'].includes(position)\n ? 'left'\n : 'right'\n\n const legendPosition = ['topLeft', 'bottomLeft', 'leftTop', 'rightTop', 'lt', 'rt', 'tl', 'bl'].includes(position)\n ? 'start'\n : ['topRight', 'bottomRight', 'leftBottom', 'rightBottom', 'lb', 'rb', 'rt', 'br'].includes(position)\n ? 'end'\n : 'middle'\n\n result.legends = {\n type: 'color',\n visible: enable,\n orient,\n position: legendPosition,\n field: encoding[0].color[0],\n inverse: ['left', 'right'].includes(orient) ? true : false,\n }\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n backgroundColor,\n datasetXY,\n datasetPivot,\n initPivot,\n label,\n colorLegend,\n pivotAdapter,\n pivotColumnDimensions,\n pivotGridStyle,\n pivotIndicators,\n pivotIndicatorsAsRow,\n pivotRowDimensions,\n tooltip,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n initFunnel,\n linearColor,\n} from '../pipes'\n\nconst funnel: SpecPipeline = [\n initFunnel,\n linearColor,\n backgroundColor,\n datasetXY,\n label,\n tooltip,\n colorLegend,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotFunnel: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initFunnel,\n linearColor,\n backgroundColor,\n datasetXY,\n label,\n tooltip,\n colorLegend,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n]\n\nexport const funnelSpecPipeline: SpecPipeline = [pivotAdapter(funnel, pivotFunnel)]\n","import { funnelAdvancedPipeline, funnelSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerFunnel = () => {\n Builder._advancedPipelineMap['funnel'] = funnelAdvancedPipeline\n Builder._specPipelineMap['funnel'] = funnelSpecPipeline\n}","import type { AdvancedPipe, Dimensions, FoldInfo, UnfoldInfo } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingMatrix: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo, dimensions } = advancedVSeed\n if (!datasetReshapeInfo || !dimensions) {\n return result\n }\n\n const xDimension =\n (dimensions as Dimensions).find(\n (item) => item.location !== 'rowDimension' && item.location !== 'columnDimension',\n ) || dimensions[0]\n\n const isZeroDimension = dimensions.length === 0\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfo, unfoldInfo } = cur as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n const x = [isZeroDimension ? foldInfo.measureName : xDimension?.id]\n const y = [unfoldInfo.groupName]\n const color = [foldInfo.measureValue]\n\n return [\n ...prev,\n {\n x,\n y,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n initAdvancedVSeed,\n reshapeTo2D1M,\n theme,\n pivotAdapter,\n pivotReshapeTo2D1M,\n annotation,\n markStyle,\n sortXBandAxis,\n heatmapConfig,\n} from '../pipes'\nimport { encodingMatrix } from '../pipes/encoding/encodingMatrix'\n\nexport const heatmapAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingMatrix,\n sortXBandAxis,\n heatmapConfig,\n theme,\n markStyle,\n annotation\n]\n","import type { IHeatmapChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const labelColorInversion: SpecPipe = (spec) => {\n const result = { ...spec } as IHeatmapChartSpec\n if (result.label) {\n result.label.smartInvert = true\n } else {\n result.label = {\n smartInvert: true,\n }\n }\n return result\n}\n","import type { IHeatmapChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initHeatmap: SpecPipe = (spec, context) => {\n const result = { ...spec } as IHeatmapChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].color) {\n return result\n }\n\n result.type = 'heatmap'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[0]\n result.valueField = encoding[0].color[0]\n result.padding = 0\n result.cell = {\n style: {\n shape: 'rect',\n stroke: '#ffffff',\n lineWidth: 1,\n fill: {\n field: encoding[0].color[0],\n scale: 'color',\n },\n },\n }\n result.axes = [\n {\n type: 'band',\n orient: 'left',\n bandPadding: 0,\n },\n {\n type: 'band',\n orient: 'bottom',\n bandPadding: 0,\n },\n ]\n result.region = [\n {\n clip: true,\n },\n ]\n result.animation = true\n\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n datasetXY,\n backgroundColor,\n label,\n tooltip,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n pointStyle,\n lineStyle,\n pointStateDimensionHover,\n colorLegend,\n linearColor,\n labelColorInversion,\n} from '../pipes'\nimport { initHeatmap } from '../pipes/init/heatmap'\n\nconst heatmap: SpecPipeline = [\n initHeatmap,\n linearColor,\n backgroundColor,\n datasetXY,\n label,\n labelColorInversion,\n colorLegend,\n tooltip,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotHeatmap: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initHeatmap,\n linearColor,\n backgroundColor,\n datasetXY,\n label,\n labelColorInversion,\n colorLegend,\n tooltip,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n]\n\nexport const heatmapSpecPipeline: SpecPipeline = [pivotAdapter(heatmap, pivotHeatmap)]\n","import { heatmapAdvancedPipeline, heatmapSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerHeatmap = () => {\n Builder._advancedPipelineMap['heatmap'] = heatmapAdvancedPipeline\n Builder._specPipelineMap['heatmap'] = heatmapSpecPipeline\n}","import type {\n BackgroundColor,\n Color,\n CustomThemeConfig,\n Label,\n Legend,\n TableConfig,\n Tooltip,\n YBandAxis,\n YLinearAxis,\n} from 'src/types'\n\nexport const lightTheme = (): CustomThemeConfig => {\n const linearAxis: YLinearAxis = {\n nice: true,\n zero: true,\n inverse: false,\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#797B85',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#646A73',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: true,\n gridColor: '#36415926',\n gridWidth: 0.5,\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#3641594d',\n },\n line: {\n visible: false,\n lineColor: '#3641594d',\n lineWidth: 1,\n },\n }\n const bandAxis: YBandAxis = {\n labelAutoHide: true,\n labelAutoHideGap: 4,\n labelAutoLimit: true,\n labelAutoLimitLength: 80,\n labelAutoRotate: false,\n labelAutoRotateAngleRange: [0, -45, -90],\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#797B85',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#646A73',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: false,\n gridColor: '#36415926',\n gridWidth: 0.5,\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#3641594d',\n },\n line: {\n visible: true,\n lineColor: '#3641594d',\n lineWidth: 1,\n },\n }\n const barBandAxis: YBandAxis = {\n ...bandAxis,\n labelAutoHide: false,\n labelAutoHideGap: 1,\n labelAutoLimit: false,\n labelAutoLimitLength: undefined,\n labelAutoRotate: false,\n labelAutoRotateAngleRange: [0, -45, -90],\n }\n\n const crosshairLine = {\n visible: true,\n labelVisible: true,\n lineColor: '#3641594d',\n labelColor: '#ffffff',\n labelBackgroundColor: '#364159',\n }\n const crosshairRect = {\n visible: true,\n labelVisible: true,\n rectColor: '#3641594d',\n labelColor: '#ffffff',\n labelBackgroundColor: '#364159',\n }\n\n const baseConfig: {\n backgroundColor?: BackgroundColor\n color?: Color\n label?: Label\n tooltip?: Tooltip\n legend?: Legend\n } = {\n backgroundColor: 'transparent',\n color: {\n colorScheme: [\n '#8D72F6',\n '#5766EC',\n '#66A3FE',\n '#51D5E6',\n '#4EC0B3',\n '#F9DF90',\n '#F9AD71',\n '#ED8888',\n '#E9A0C3',\n '#D77DD3',\n ],\n },\n label: {\n enable: true,\n },\n tooltip: {\n enable: true,\n },\n legend: {\n enable: true,\n border: true,\n maxSize: 1,\n shapeType: 'rectRound',\n position: 'rt',\n labelFontColor: '#646A73',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n }\n const tableConfig: TableConfig = {\n borderColor: '#e3e5eb',\n\n bodyFontSize: 12,\n bodyFontColor: '#141414',\n bodyBackgroundColor: 'transparent',\n\n headerFontSize: 12,\n headerFontColor: '#21252c',\n headerBackgroundColor: '#f6f7f9',\n\n hoverBodyBackgroundColor: '#bedaff',\n hoverBodyInlineBackgroundColor: '#bedaff33',\n hoverHeaderBackgroundColor: '#D9DDE4',\n hoverHeaderInlineBackgroundColor: '#D9DDE455',\n\n selectedBorderColor: '#4080ff',\n selectedBackgroundColor: '#bedaff33',\n\n backgroundColor: 'transparent',\n }\n\n return {\n config: {\n // table\n table: tableConfig,\n pivotTable: tableConfig,\n // cartesian\n line: {\n ...baseConfig,\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine,\n },\n column: {\n ...baseConfig,\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect,\n stackCornerRadius: [4, 4, 4, 4],\n },\n columnParallel: {\n ...baseConfig,\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect,\n stackCornerRadius: [4, 4, 4, 4],\n },\n columnPercent: {\n ...baseConfig,\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect,\n stackCornerRadius: [4, 4, 4, 4],\n },\n bar: {\n ...baseConfig,\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect,\n stackCornerRadius: [4, 4, 4, 4],\n },\n barParallel: {\n ...baseConfig,\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect,\n stackCornerRadius: [4, 4, 4, 4],\n },\n barPercent: {\n ...baseConfig,\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect,\n stackCornerRadius: [4, 4, 4, 4],\n },\n area: {\n ...baseConfig,\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine,\n },\n areaPercent: {\n ...baseConfig,\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine,\n },\n areaRange: {\n ...baseConfig,\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine,\n },\n scatter: {\n ...baseConfig,\n xAxis: {\n ...linearAxis,\n line: {\n ...linearAxis.line,\n visible: true,\n },\n },\n yAxis: {\n ...linearAxis,\n line: {\n ...linearAxis.line,\n visible: true,\n },\n },\n crosshairLine,\n },\n dualAxis: {\n ...baseConfig,\n xAxis: bandAxis,\n primaryYAxis: linearAxis,\n secondaryYAxis: { ...linearAxis, grid: { visible: false } },\n dualChartType: {\n primary: 'column',\n secondary: 'line',\n },\n crosshairRect,\n },\n // polar\n pie: {\n ...baseConfig,\n },\n donut: {\n ...baseConfig,\n },\n radar: {\n ...baseConfig,\n },\n rose: {\n ...baseConfig,\n },\n roseParallel: {\n ...baseConfig,\n },\n // other\n funnel: {\n ...baseConfig,\n color: {\n colorScheme: [\n '#5766EC',\n '#6372F0',\n '#7080F4',\n '#7C8CFA',\n '#8998FF',\n '#95A3FF',\n '#A0AEFF',\n '#ACB9FF',\n '#B7C4FF',\n '#C2CEFF',\n ].reverse(),\n },\n },\n heatmap: {\n ...baseConfig,\n color: {\n colorScheme: [\n '#5766EC',\n '#6372F0',\n '#7080F4',\n '#7C8CFA',\n '#8998FF',\n '#95A3FF',\n '#A0AEFF',\n '#ACB9FF',\n '#B7C4FF',\n '#C2CEFF',\n ].reverse(),\n },\n },\n },\n }\n}\n","import type {\n BackgroundColor,\n Color,\n CustomThemeConfig,\n Label,\n Legend,\n TableConfig,\n Tooltip,\n YBandAxis,\n YLinearAxis,\n} from 'src/types'\n\nexport const darkTheme = (): CustomThemeConfig => {\n const linearAxis: YLinearAxis = {\n nice: true,\n zero: true,\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#E2E3E6',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#FDFDFD',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: true,\n gridColor: '#404349',\n gridWidth: 0.5,\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#4B4F54',\n },\n line: {\n visible: false,\n lineColor: '#4B4F54',\n lineWidth: 1,\n },\n }\n const bandAxis: YBandAxis = {\n labelAutoHide: true,\n labelAutoHideGap: 4,\n labelAutoLimit: true,\n labelAutoLimitLength: 80,\n labelAutoRotate: false,\n labelAutoRotateAngleRange: [0, -45, -90],\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#E2E3E6',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#FDFDFD',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: false,\n gridColor: '#404349',\n gridWidth: 0.5,\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#4B4F54',\n },\n line: {\n visible: true,\n lineColor: '#4B4F54',\n lineWidth: 1,\n },\n }\n const barBandAxis: YBandAxis = {\n ...bandAxis,\n labelAutoHide: false,\n labelAutoHideGap: 1,\n labelAutoLimit: false,\n labelAutoLimitLength: undefined,\n labelAutoRotate: false,\n labelAutoRotateAngleRange: [0, -45, -90],\n }\n const crosshairLine = {\n visible: true,\n labelVisible: true,\n lineColor: '#E2E3E6',\n labelColor: '#4B4F54',\n labelBackgroundColor: '#ffffff',\n }\n const crosshairRect = {\n visible: true,\n labelVisible: true,\n lineColor: '#E2E3E6',\n labelColor: '#4B4F54',\n labelBackgroundColor: '#ffffff',\n }\n\n const baseConfig: {\n backgroundColor?: BackgroundColor\n color?: Color\n label?: Label\n tooltip?: Tooltip\n legend?: Legend\n } = {\n backgroundColor: 'transparent',\n color: {\n colorScheme: [\n '#2E62F1',\n '#4DC36A',\n '#FF8406',\n '#FFCC00',\n '#4F44CF',\n '#5AC8FA',\n '#003A8C',\n '#B08AE2',\n '#FF6341',\n '#98DD62',\n ],\n },\n label: {\n enable: true,\n },\n tooltip: {\n enable: true,\n },\n legend: {\n enable: true,\n border: true,\n maxSize: 1,\n position: 'rt',\n shapeType: 'rectRound',\n labelFontColor: '#FDFDFD',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n }\n\n const tableConfig: TableConfig = {\n borderColor: '#4b4e53',\n\n bodyFontSize: 12,\n bodyFontColor: '#fdfdfd',\n bodyBackgroundColor: 'transparent',\n\n headerFontSize: 12,\n headerFontColor: '#fdfdfd',\n headerBackgroundColor: '#36393e',\n\n hoverBodyBackgroundColor: '#4284ff66',\n hoverBodyInlineBackgroundColor: '#4284ff10',\n hoverHeaderBackgroundColor: '#6f7984cc',\n hoverHeaderInlineBackgroundColor: '#4b4f54',\n\n selectedBorderColor: '#3073f2',\n selectedBackgroundColor: '#4284ff33',\n }\n\n return {\n config: {\n table: tableConfig,\n pivotTable: tableConfig,\n\n // cartesian\n line: {\n ...baseConfig,\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine: crosshairLine,\n },\n column: {\n ...baseConfig,\n\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [4, 4, 4, 4],\n },\n columnParallel: {\n ...baseConfig,\n\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [4, 4, 4, 4],\n },\n columnPercent: {\n ...baseConfig,\n\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [4, 4, 4, 4],\n },\n bar: {\n ...baseConfig,\n\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [0, 4, 4, 0],\n },\n barParallel: {\n ...baseConfig,\n\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [4, 4, 4, 4],\n },\n barPercent: {\n ...baseConfig,\n\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [4, 4, 4, 4],\n },\n area: {\n ...baseConfig,\n\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine: crosshairLine,\n },\n areaPercent: {\n ...baseConfig,\n\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine: crosshairLine,\n },\n areaRange: {\n ...baseConfig,\n\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine: crosshairLine,\n },\n scatter: {\n ...baseConfig,\n\n xAxis: {\n ...linearAxis,\n line: {\n ...linearAxis.line,\n visible: true,\n },\n },\n yAxis: {\n ...linearAxis,\n line: {\n ...linearAxis.line,\n visible: true,\n },\n },\n crosshairLine,\n },\n dualAxis: {\n ...baseConfig,\n xAxis: bandAxis,\n primaryYAxis: linearAxis,\n secondaryYAxis: { ...linearAxis, grid: { visible: false } },\n dualChartType: {\n primary: 'column',\n secondary: 'line',\n },\n crosshairRect,\n },\n // polar\n pie: {\n ...baseConfig,\n },\n donut: {\n ...baseConfig,\n },\n radar: {\n ...baseConfig,\n },\n rose: {\n ...baseConfig,\n },\n roseParallel: {\n ...baseConfig,\n },\n // other\n funnel: {\n ...baseConfig,\n color: {\n colorScheme: [\n '#2E62F1',\n '#3A6EF6',\n '#4780FA',\n '#548CFE',\n '#6198FF',\n '#6FA3FF',\n '#7CACFF',\n '#88B7FF',\n '#94C2FF',\n '#A0CEFF',\n ],\n },\n },\n heatmap: {\n ...baseConfig,\n },\n },\n }\n}\n","import type { CustomThemeConfig } from 'src/types'\nimport { Builder } from '../../builder'\nimport { darkTheme, lightTheme } from '../../../theme'\n\nexport const registerCustomTheme = (\n key: string,\n themeConfig:\n | CustomThemeConfig\n | ((props: { lightTheme: CustomThemeConfig; darkTheme: CustomThemeConfig }) => CustomThemeConfig),\n) => {\n const customTheme =\n typeof themeConfig === 'function' ? themeConfig({ lightTheme: lightTheme(), darkTheme: darkTheme() }) : themeConfig\n Builder._themeMap[key] = customTheme\n}\n","import { registerCustomTheme } from './custom'\nimport { lightTheme } from '../../../theme'\n\nexport const registerLightTheme = () => {\n registerCustomTheme('light', lightTheme())\n}\n","import { darkTheme } from '../../../theme'\nimport { registerCustomTheme } from './custom'\n\nexport const registerDarkTheme = () => {\n registerCustomTheme('dark', darkTheme())\n}\n","import {\n registerArea,\n registerAreaPercent,\n registerBar,\n registerBarParallel,\n registerBarPercent,\n registerColumn,\n registerColumnParallel,\n registerColumnPercent,\n registerLine,\n registerPie,\n registerDonut,\n registerRose,\n registerRoseParallel,\n registerFunnel,\n registerScatter,\n registerTable,\n registerPivotTable,\n registerAreaRange,\n registerHeatmap,\n registerRadar,\n registerDualAxis,\n} from './chartType'\nimport { registerDarkTheme, registerLightTheme } from './theme'\n\nexport const registerAll = () => {\n // table\n registerTable()\n registerPivotTable()\n // cartesian\n registerLine()\n registerColumn()\n registerColumnParallel()\n registerColumnPercent()\n registerBar()\n registerBarParallel()\n registerBarPercent()\n registerArea()\n registerAreaPercent()\n registerAreaRange()\n registerScatter()\n registerDualAxis()\n // polar\n registerPie()\n registerDonut()\n registerRose()\n registerRoseParallel()\n registerRadar()\n // other\n registerFunnel()\n registerHeatmap()\n // theme\n registerLightTheme()\n registerDarkTheme()\n}\n","import type { AdvancedPipe, ChartType, SpecPipe } from 'src/types'\nimport { Builder } from '../builder'\n\nexport const updateAdvanced = (chartType: ChartType, advancedPipe: AdvancedPipe) => {\n Builder._customAdvancedPipe[chartType] = advancedPipe\n}\nexport const updateSpec = (chartType: ChartType, specPipe: SpecPipe) => {\n Builder._customSpecPipe[chartType] = specPipe\n}\n","import type { Dimension, DimensionGroup } from 'src/types'\n\nexport const isDimension = (dimension: Dimension | DimensionGroup): dimension is Dimension => {\n return !('children' in dimension)\n}\n\nexport const isDimensionGroup = (dimension: Dimension | DimensionGroup): dimension is DimensionGroup => {\n return 'children' in dimension\n}\n\nexport const isDimensions = (dimensions: Dimension[] | DimensionGroup[]): dimensions is Dimension[] => {\n return dimensions.every(isDimension)\n}\n","import { z } from 'zod'\n\nexport type ChartType =\n | 'table'\n | 'pivotTable'\n // cartesian\n | 'line'\n | 'column'\n | 'columnPercent'\n | 'columnParallel'\n | 'bar'\n | 'barPercent'\n | 'barParallel'\n | 'area'\n | 'areaPercent'\n | 'areaRange'\n | 'scatter'\n | 'dualAxis'\n // polar\n | 'rose'\n | 'roseParallel'\n | 'pie'\n | 'donut'\n | 'radar'\n // other\n | 'heatmap'\n | 'funnel'\n\nexport enum ChartTypeEnum {\n Table = 'table',\n PivotTable = 'pivotTable',\n // cartesian\n Line = 'line',\n Column = 'column',\n ColumnPercent = 'columnPercent',\n ColumnParallel = 'columnParallel',\n Bar = 'bar',\n BarPercent = 'barPercent',\n BarParallel = 'barParallel',\n Area = 'area',\n AreaPercent = 'areaPercent',\n AreaRange = 'areaRange',\n DualAxis = 'dualAxis',\n Scatter = 'scatter',\n // polar\n Rose = 'rose',\n RoseParallel = 'roseParallel',\n Pie = 'pie',\n Donut = 'donut',\n Radar = 'radar',\n // other\n Funnel = 'funnel',\n Heatmap = 'heatmap',\n}\n\nexport const zChartType = z.enum([\n 'table',\n 'pivotTable',\n // cartesian\n 'line',\n 'column',\n 'columnPercent',\n 'columnParallel',\n 'bar',\n 'barPercent',\n 'barParallel',\n 'area',\n 'areaPercent',\n 'areaRange',\n 'scatter',\n 'dualAxis',\n // polar\n 'rose',\n 'roseParallel',\n 'pie',\n 'donut',\n 'radar',\n // other\n 'funnel',\n 'heatmap',\n])\n","import { z } from 'zod'\n\n// 'columnPercent' 和 'areaPercent' 会改变轴值域为[0,1], VTable不支持.\nexport const zDualChartType = z.object({\n primary: z.enum(['line', 'column', 'columnParallel', 'area', 'scatter']).default('column'),\n secondary: z.enum(['line', 'column', 'columnParallel', 'area', 'scatter']).default('line'),\n})\n\nexport type DualChartType = z.infer<typeof zDualChartType>\n","import { z } from 'zod'\n\n/**\n * example dataset link:\n * [\n * { date: '2019', 20001:'type', profit:10, sales: null, },\n * { date: '2020', 20001:'type', profit:30, sales: -1.1, },\n * { date: '2021', 20001:'type', profit:30, sales: 1, },\n * { date: '2023', 20001:'type', profit:40, sales: undefined, },\n * { date: '2022', 20001:'type', profit:50, sales: 100, },\n * ]\n */\nexport const zDatum = z.record(z.string().or(z.number()), z.any())\nexport const zDataset = z.array(zDatum)\n\nexport type Datum = z.infer<typeof zDatum>\nexport type Dataset = z.infer<typeof zDataset>\n","import { z } from 'zod'\n\nexport type Dimension = {\n id: string\n alias?: string\n location?: 'dimension' | 'rowDimension' | 'columnDimension'\n}\n\nexport type DimensionGroup = {\n id: string\n alias?: string\n children?: (Dimension | DimensionGroup)[]\n}\n\nexport type Dimensions = Dimension[]\n\nexport type DimensionTree = (Dimension | DimensionGroup)[]\n\nexport const zDimension = z.object({\n id: z.string(),\n alias: z.string().optional(),\n location: z.enum(['dimension', 'rowDimension', 'columnDimension']).default('dimension'),\n})\nexport const zDimensionGroup: z.ZodType<DimensionGroup> = z.object({\n id: z.string(),\n alias: z.string().optional(),\n get children() {\n return z.array(zDimensionGroup.or(zDimension)).optional()\n },\n})\nexport const zDimensions = z.array(zDimension)\nexport const zDimensionTree = z.array(zDimensionGroup.or(zDimension))\n","import { z } from 'zod'\n\nexport interface NumFormat {\n /**\n * @description 数字格式化类型, 支持数值(十进制)、百分比(%)、千分比(‰)、科学计数法\n * @default 'number'\n */\n type?: 'number' | 'percent' | 'permille' | 'scientific'\n\n /**\n * @description 数值格式化比例, 百分比和千分比需要设置比例\n * @default 1\n * @example\n * - 100000 转换为 10万, ratio:10000, symbol:\"万\"\n * - 100000 转换为 10K, ratio:1000, symbol:\"K\"\n * - 100000 转换为 100%, ratio:100, symbol:\"%\"\n * - 100000 转换为 100‰, ratio:1000, symbol:\"‰\"\n */\n ratio?: number\n\n /**\n * @description 数值格式化符号, 例如%、‰\n * @default ''\n * @example\n * - 100000 转换为 10万, ratio:10000, symbol:\"万\"\n * - 100000 转换为 10K, ratio:1000, symbol:\"K\"\n * - 100000 转换为 100%, ratio:100, symbol:\"%\"\n * - 100000 转换为 100‰, ratio:1000, symbol:\"‰\"\n */\n symbol?: string\n\n /**\n * @description 数值格式化千分位分隔符\n * @default true\n */\n thousandSeparator?: boolean\n\n /**\n * @description 数值格式化后缀\n * @default ''\n */\n suffix?: string\n /**\n * @description 数值格式化前缀\n * @default ''\n */\n prefix?: string\n\n /**\n * @description 数值格式化小数位, 使用浏览器提供的 Intl.NumberFormat 中的 minimumFractionDigits 和 maximumFractionDigits 进行格式化, 优先级低于 significantDigits\n * @default 2\n * @example\n * - 1234.5678 转换为 1235, fractionDigits:0 (roundingMode:halfCeil)\n * - 1234.5678 转换为 1234.6, fractionDigits:1 (roundingMode:halfCeil)\n * - 1234.5678 转换为 1234.57, fractionDigits:2 (roundingMode:halfCeil)\n * - 1234.5678 转换为 1230.568, fractionDigits:3 (roundingMode:halfCeil)\n * - 1234.5678 转换为 1234.5678, fractionDigits:4 (roundingMode:halfCeil)\n * - 1234.5678 转换为 1234.56780, fractionDigits:5 (roundingMode:halfCeil)\n */\n fractionDigits?: number\n\n /**\n * @description 数值格式化有效位, 使用浏览器提供的 Intl.NumberFormat 中的 minimumSignificantDigits 和 maximumSignificantDigits 进行格式化, 优先级高于 fractionDigits\n * @default undefined\n * @example\n * - 1234.5678 转换为 1000, significantDigits:1\n * - 1234.5678 转换为 1200, significantDigits:2\n * - 1234.5678 转换为 1230, significantDigits:3\n * - 1234.5678 转换为 1234, significantDigits:4\n * - 1234.5678 转换为 1234.6, significantDigits:5 (roundingMode:halfCeil)\n * - 1234.5678 转换为 1234.57, significantDigits:6 (roundingMode:halfCeil)\n * - 1234.5678 转换为 1234.568, significantDigits:7 (roundingMode:halfCeil)\n * - 1234.5678 转换为 1234.5678, significantDigits:8 (roundingMode:halfCeil)\n */\n significantDigits?: number\n\n /**\n * @description 数值格式化舍入优先级, 处理同时设置了 significantDigits 和 fractionDigits 时的舍入优先级, 使用浏览器提供的 Intl.NumberFormat 进行格式化, 规则同 Intl.NumberFormat 中的 roundingPriority\n * @default 'morePrecision'\n * @example\n * - 1234.5678 转换为 1230, significantDigits:3 (roundingPriority:lessPrecision)\n * - 1234.5678 转换为 1234.5678, significantDigits:3 (roundingPriority:morePrecision)\n */\n roundingPriority?: 'morePrecision' | 'lessPrecision'\n\n /**\n * @description 数值格式化舍入模式, 使用浏览器提供的 Intl.NumberFormat 进行格式化, 规则同 Intl.NumberFormat 中的 roundingMode\n * @default 'halfExpand'\n * @example\n */\n roundingMode?:\n | 'floor'\n | 'ceil'\n | 'expand'\n | 'trunc'\n | 'halfCeil'\n | 'halfFloor'\n | 'halfExpand'\n | 'halfTrunc'\n | 'halfEven'\n}\n\nexport const zNumFormat = z\n .object({\n type: z.enum(['number', 'percent', 'permille', 'scientific']).default('number').optional(),\n ratio: z.number().default(1).optional(),\n symbol: z.string().default('').optional(),\n thousandSeparator: z.boolean().default(false).optional(),\n prefix: z.string().default('').optional(),\n suffix: z.string().default('').optional(),\n\n fractionDigits: z.number().default(2).optional(),\n significantDigits: z.number().default(0).optional(),\n roundingPriority: z.enum(['morePrecision', 'lessPrecision']).default('morePrecision').optional(),\n roundingMode: z\n .enum(['floor', 'ceil', 'halfEven', 'expand', 'trunc', 'halfFloor', 'halfCeil', 'halfExpand', 'halfTrunc'])\n .default('halfCeil')\n .optional(),\n })\n .optional()\n","import { z } from 'zod'\nimport { zNumFormat } from './format/numFormat'\nimport type { MeasureGroup } from './measures'\n\nexport const zMeasure = z.object({\n id: z.string(),\n alias: z.string().optional(),\n autoFormat: z.boolean().default(true),\n format: zNumFormat.default({}),\n})\n\nexport const zMeasureGroup: z.ZodType<MeasureGroup> = z.object({\n id: z.string(),\n alias: z.string().optional(),\n get children() {\n return z.array(zMeasureGroup.or(zMeasure)).optional()\n },\n})\n\nexport const zMeasures = z.array(zMeasure)\nexport const zMeasureTree = z.array(zMeasureGroup.or(zMeasure))\n","import { z } from 'zod'\nimport { zMeasure } from './zMeasures'\n\nexport const zDualMeasure = z.object({\n id: z.string(),\n\n primaryMeasures: z.array(zMeasure).or(zMeasure).optional(),\n\n secondaryMeasures: z.array(zMeasure).or(zMeasure).optional(),\n})\n\nexport const zDualMeasures = z.array(zDualMeasure)\n","import { z } from 'zod'\n\nexport type FoldInfo = {\n foldMap: Record<string, string | undefined>\n measureId: string\n measureName: string\n measureValue: string\n}\n\nexport type UnfoldInfo = {\n groupName: string\n groupId: string\n colorItems: string[]\n colorIdMap: Record<string, string>\n}\n\nexport const zFoldInfo = z.object({\n foldMap: z.record(z.string(), z.string().or(z.undefined())),\n measureId: z.string(),\n measureName: z.string(),\n measureValue: z.string(),\n})\nexport const zUnfoldInfo = z.object({\n colorItems: z.array(z.string()),\n groupId: z.string(),\n colorIdMap: z.record(z.string(), z.string()),\n groupName: z.string(),\n})\n\nexport const zDatasetReshapeInfo = z.array(\n z.object({\n id: z.string(),\n index: z.number(),\n foldInfo: zFoldInfo,\n foldInfoList: z.array(zFoldInfo).nullish(),\n unfoldInfo: zUnfoldInfo,\n }),\n)\n\nexport type DatasetReshapeInfo = z.infer<typeof zDatasetReshapeInfo>\n","import { z } from 'zod'\n\nexport const zEncoding = z.array(\n z.object({\n x: z.array(z.string()).nullish(),\n y: z.array(z.string()).nullish(),\n color: z.array(z.string()).nullish(),\n group: z.array(z.string()).nullish(),\n angle: z.array(z.string()).nullish(),\n radius: z.array(z.string()).nullish(),\n tooltip: z.array(z.string()).nullish(),\n size: z.array(z.string()).nullish(),\n }),\n)\n\nexport type Encoding = Array<{\n x?: string[]\n y?: string[]\n color?: string[]\n group?: string[]\n angle?: string[]\n radius?: string[]\n tooltip?: string[]\n size?: string[]\n}>\n","import { z } from 'zod'\nimport type { Axis } from './axis'\n\nexport type XBandAxis = Omit<Axis, 'min' | 'max' | 'nice' | 'zero' | 'log' | 'logBase'>\nexport type YBandAxis = Omit<Axis, 'min' | 'max' | 'nice' | 'zero' | 'log' | 'logBase'>\n\nexport const zXBandAxis = z.object({\n visible: z.boolean().default(true).nullish(),\n\n labelAutoHide: z.boolean().default(true).nullish(),\n labelAutoHideGap: z.number().default(0).nullish(),\n labelAutoRotate: z.boolean().default(true).nullish(),\n labelAutoRotateAngleRange: z.array(z.number()).default([0, -45, -90]).nullish(),\n labelAutoLimit: z.boolean().default(true).nullish(),\n labelAutoLimitLength: z.number().default(100).nullish(),\n label: z\n .object({\n visible: z.boolean().default(true).nullish(),\n labelColor: z.string().default('#797B85').nullish(),\n labelFontSize: z.number().default(12).nullish(),\n labelFontWeight: z.number().default(400).nullish(),\n labelAngle: z.number().default(0).nullish(),\n })\n .nullish(),\n line: z\n .object({\n visible: z.boolean().default(true).nullish(),\n lineColor: z.string().default('rgba(54, 65, 89, 0.30)').nullish(),\n lineWidth: z.number().default(1).nullish(),\n })\n .nullish(),\n tick: z\n .object({\n visible: z.boolean().default(true).nullish(),\n tickInside: z.boolean().default(false).nullish(),\n tickColor: z.string().default('rgba(54, 65, 89, 0.30)').nullish(),\n tickSize: z.number().default(4).nullish(),\n })\n .nullish(),\n title: z\n .object({\n visible: z.boolean().default(false).nullish(),\n titleText: z.string().default('').nullish(),\n titleColor: z.string().default('#646A73').nullish(),\n titleFontSize: z.number().default(12).nullish(),\n titleFontWeight: z.number().default(400).nullish(),\n })\n .nullish(),\n grid: z\n .object({\n visible: z.boolean().default(false).nullish(),\n gridColor: z.string().default('rgba(54, 65, 89, 0.15)').nullish(),\n gridWidth: z.number().default(0.5).nullish(),\n })\n .nullish(),\n})\nexport const zYBandAxis = zXBandAxis\n","import { z } from 'zod'\nimport { type Axis } from './axis'\n\nexport type XLinearAxis = Omit<\n Axis,\n | 'labelAutoHide'\n | 'labelAutoHideGap'\n | 'labelAutoRotate'\n | 'labelAutoRotateAngleRange'\n | 'labelAutoLimit'\n | 'labelAutoLimitLength'\n>\nexport type YLinearAxis = Omit<\n Axis,\n | 'labelAutoHide'\n | 'labelAutoHideGap'\n | 'labelAutoRotate'\n | 'labelAutoRotateAngleRange'\n | 'labelAutoLimit'\n | 'labelAutoLimitLength'\n>\n\nexport const zXLinearAxis = z.object({\n visible: z.boolean().default(true).nullish(),\n\n min: z.number().nullish(),\n max: z.number().nullish(),\n nice: z.boolean().default(true).nullish(),\n zero: z.boolean().default(true).nullish(),\n log: z.boolean().default(false).nullish(),\n logBase: z.number().default(10).nullish(),\n inverse: z.boolean().default(false).nullish(),\n\n label: z\n .object({\n visible: z.boolean().default(true).nullish(),\n labelColor: z.string().default('#797B85').nullish(),\n labelFontSize: z.number().default(12).nullish(),\n labelFontWeight: z.number().default(400).nullish(),\n labelAngle: z.number().default(0).nullish(),\n })\n .nullish(),\n line: z\n .object({\n visible: z.boolean().default(true).nullish(),\n lineColor: z.string().default('rgba(54, 65, 89, 0.30)').nullish(),\n lineWidth: z.number().default(1).nullish(),\n })\n .nullish(),\n tick: z\n .object({\n visible: z.boolean().default(true).nullish(),\n tickInside: z.boolean().default(false).nullish(),\n tickColor: z.string().default('rgba(54, 65, 89, 0.30)').nullish(),\n tickSize: z.number().default(4).nullish(),\n })\n .nullish(),\n title: z\n .object({\n visible: z.boolean().default(false).nullish(),\n titleText: z.string().default('').nullish(),\n titleColor: z.string().default('#646A73').nullish(),\n titleFontSize: z.number().default(12).nullish(),\n titleFontWeight: z.number().default(400).nullish(),\n })\n .nullish(),\n grid: z\n .object({\n visible: z.boolean().default(false).nullish(),\n gridColor: z.string().default('rgba(54, 65, 89, 0.15)').nullish(),\n gridWidth: z.number().default(0.5).nullish(),\n })\n .nullish(),\n})\n\nexport const zYLinearAxis = zXLinearAxis\n","import { z } from 'zod'\n\nexport const zCrosshairLine = z.object({\n visible: z.boolean().nullish(),\n lineColor: z.string().nullish(),\n labelColor: z.string().nullish(),\n labelVisible: z.boolean().nullish(),\n labelBackgroundColor: z.string().nullish(),\n})\n\nexport type CrosshairLine = z.infer<typeof zCrosshairLine>\n\nexport const zCrosshairRect = z.object({\n visible: z.boolean().nullish(),\n rectColor: z.string().nullish(),\n labelColor: z.string().nullish(),\n labelVisible: z.boolean().nullish(),\n labelBackgroundColor: z.string().nullish(),\n})\n\nexport type CrosshairRect = z.infer<typeof zCrosshairLine>\n","import { z } from 'zod'\n\nexport const zStackCornerRadius = z.number().or(z.array(z.number())).default([3, 3, 0, 0])\n\nexport type StackCornerRadius = z.infer<typeof zStackCornerRadius>\n","import { z } from 'zod'\nexport const zBackgroundColor = z.string().default('transparent').nullish()\n\n/**\n * 图表的背景颜色\n * @default transparent 默认为透明背景\n * @description 背景颜色可以是颜色字符串, 例如'red', 'blue', 也可以是hex, rgb或rgba'#ff0000', 'rgba(255,0,0,0.5)'\n */\nexport type BackgroundColor = string | undefined\n","import { z } from 'zod'\n\nexport const zColor = z.object({\n colorScheme: z.array(z.string()).nullish(),\n colorMapping: z.record(z.string(), z.string()).nullish(),\n})\n\nexport const zLinearColor = z.object({\n colorScheme: z.array(z.string()).nullish(),\n})\n\nexport type Color = {\n /**\n * 颜色配色方案\n * @description 颜色配色方案用于定义图表中不同元素的颜色\n * @example ['#FFCDD2,#F8BBD0,#E1BEE7,#D1C4E9,#C5CAE9,#BBDEFB,#B3E5FC,#B2EBF2,#B2DFDB,#C8E6C9,#DCEDC8,#F0F4C3,#FFF9C4,#FFECB3,#FFE0B2']\n */\n colorScheme?: string[]\n /**\n * 颜色映射\n * @description 颜色映射用于将数据值映射到具体的颜色\n * @example\n * {\n * 'profit': 'red',\n * 'sales': 'blue',\n * }\n */\n colorMapping?: Record<string, string>\n}\n\nexport type LinearColor = {\n /**\n * 线性渐变颜色配色方案\n * @description 线性渐变颜色配色方案用于定义图表中不同元素的颜色\n * @example ['#FFCDD2,#F8BBD0,#E1BEE7,#D1C4E9,#C5CAE9,#BBDEFB,#B3E5FC,#B2EBF2,#B2DFDB,#C8E6C9,#DCEDC8,#F0F4C3,#FFF9C4,#FFECB3,#FFE0B2']\n */\n colorScheme?: string[]\n}\n","import { z } from 'zod'\n\nexport const zLabel = z.object({\n enable: z.boolean().default(true).nullish(),\n})\n\nexport type Label = {\n /**\n * 标签功能是否开启\n * @default true\n */\n enable: boolean\n}\n","import { z } from 'zod'\n\nexport type Legend = {\n /**\n * 图例功能是否开启\n * @default true\n * @example enable: true\n */\n enable?: boolean\n /**\n * 图例边框是否开启\n * @default true\n * @example border: true\n */\n border?: boolean\n /**\n * 图例字体大小\n * @default 12\n * @example labelFontSize: 10\n */\n labelFontSize?: number\n /**\n * 图例字体颜色\n * @default '#fff'\n * @example labelFontColor: '#212121'\n */\n labelFontColor?: string\n /**\n * 图例字体粗细\n * @default 400\n * @example labelFontWeight: 400\n */\n labelFontWeight?: number | string\n /**\n * 图例形状\n * @default 'rectRound'\n * @example shapeType: 'circle'\n */\n shapeType?:\n | 'circle'\n | 'cross'\n | 'diamond'\n | 'square'\n | 'arrow'\n | 'arrow2Left'\n | 'arrow2Right'\n | 'wedge'\n | 'thinTriangle'\n | 'triangle'\n | 'triangleUp'\n | 'triangleDown'\n | 'triangleRight'\n | 'triangleLeft'\n | 'stroke'\n | 'star'\n | 'wye'\n | 'rect'\n | 'arrowLeft'\n | 'arrowRight'\n | 'rectRound'\n | 'roundLine'\n /**\n * 图例位置\n * @default 'right'\n * @example position: 'rightTop'\n */\n position?:\n | 'left'\n | 'leftTop'\n | 'leftBottom'\n | 'lt'\n | 'lb'\n | 'top'\n | 'topLeft'\n | 'topRight'\n | 'tl'\n | 'tr'\n | 'right'\n | 'rightTop'\n | 'rightBottom'\n | 'rt'\n | 'rb'\n | 'bottom'\n | 'bottomLeft'\n | 'bottomRight'\n | 'bl'\n | 'br'\n\n /**\n * @description 存在大量图例时, 最大列数 或 图例最大行数\n * 如果position为水平方向(bottom, bottomLeft, bottomRight, bl, br, top, topLeft, topRight, tl, tr), maxSize控制显示的列数\n * 如果position为垂直方向(left, leftTop, leftBottom, lt, lb, right, rightTop, rightBottom, rt, rb), maxSize控制显示的行数\n * @example maxSize: 2\n * @default 1\n */\n maxSize?: number\n}\n\nexport const zLegend = z.object({\n enable: z.boolean().default(true).nullish(),\n border: z.boolean().default(true).nullish(),\n maxSize: z.number().default(1).nullish(),\n shapeType: z\n .enum([\n 'circle',\n 'cross',\n 'diamond',\n 'square',\n 'arrow',\n 'arrow2Left',\n 'arrow2Right',\n 'wedge',\n 'thinTriangle',\n 'triangle',\n 'triangleUp',\n 'triangleDown',\n 'triangleRight',\n 'triangleLeft',\n 'stroke',\n 'star',\n 'wye',\n 'rect',\n 'arrowLeft',\n 'arrowRight',\n 'rectRound',\n 'roundLine',\n ])\n .default('rectRound')\n .nullish(),\n position: z\n .enum([\n 'left',\n 'leftTop',\n 'leftBottom',\n 'lt',\n 'lb',\n 'top',\n 'topLeft',\n 'topRight',\n 'tl',\n 'tr',\n 'right',\n 'rightTop',\n 'rightBottom',\n 'rt',\n 'rb',\n 'bottom',\n 'bottomLeft',\n 'bottomRight',\n 'bl',\n 'br',\n ])\n .default('bottom')\n .nullish(),\n labelFontSize: z.number().default(12).nullish(),\n labelFontColor: z.string().default('#fff').nullish(),\n labelFontWeight: z.number().or(z.string()).default(400).nullish(),\n})\n\nexport type ColorLegend = Pick<Legend, 'position' | 'enable'>\nexport const zColorLegend = z.object({\n position: z\n .enum([\n 'left',\n 'leftTop',\n 'leftBottom',\n 'lt',\n 'lb',\n 'top',\n 'topLeft',\n 'topRight',\n 'tl',\n 'tr',\n 'right',\n 'rightTop',\n 'rightBottom',\n 'rt',\n 'rb',\n 'bottom',\n 'bottomLeft',\n 'bottomRight',\n 'bl',\n 'br',\n ])\n .default('bottom')\n .nullish(),\n enable: z.boolean().default(true).nullish(),\n})\n","import { z } from 'zod'\n\nexport const zTooltip = z.object({\n enable: z.boolean().default(true).nullish(),\n})\n\nexport type Tooltip = {\n /**\n * 提示信息功能是否开启\n * @default true\n */\n enable: boolean\n}\n","import { z } from 'zod'\nimport { zXBandAxis, zYBandAxis } from './axes/bandAxis'\nimport { zXLinearAxis, zYLinearAxis } from './axes/linearAxis'\nimport { zCrosshairLine, zCrosshairRect } from './crosshair/crosshair'\nimport { zStackCornerRadius } from './stackCornerRadius/stackCornerRadius'\nimport { zBackgroundColor } from './backgroundColor/backgroundColor'\nimport { zColor } from './color/color'\nimport { zLabel } from './label/label'\nimport { zLegend } from './legend/legend'\nimport { zTooltip } from './tooltip/tooltip'\nimport { zDualChartType } from '../chartType'\n\n/**\n * ---\n * zConfig by 图表类型\n */\nexport const zTableConfig = z.object({\n backgroundColor: zBackgroundColor.nullish(),\n\n // Border\n borderColor: z.string().nullish(),\n\n // Body\n bodyFontSize: z.number().nullish(),\n bodyFontColor: z.string().nullish(),\n bodyBackgroundColor: z.string().nullish(),\n // Body interaction\n hoverBodyBackgroundColor: z.string().nullish(),\n hoverBodyInlineBackgroundColor: z.string().nullish(),\n\n // Header\n headerFontSize: z.number().nullish(),\n headerFontColor: z.string().nullish(),\n headerBackgroundColor: z.string().nullish(),\n // Header interaction\n hoverHeaderBackgroundColor: z.string().nullish(),\n hoverHeaderInlineBackgroundColor: z.string().nullish(),\n\n // Interaction\n selectedBorderColor: z.string().nullish(),\n selectedBackgroundColor: z.string().nullish(),\n})\nexport const zPivotTableConfig = zTableConfig\n\nexport const zLineConfig = z.object({\n backgroundColor: zBackgroundColor.nullish(),\n label: zLabel.nullish(),\n color: zColor.nullish(),\n tooltip: zTooltip.nullish(),\n legend: zLegend.nullish(),\n\n xAxis: zXBandAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairLine: zCrosshairLine.nullish(),\n})\nexport const zColumnConfig = z.object({\n backgroundColor: zBackgroundColor.nullish(),\n label: zLabel.nullish(),\n color: zColor.nullish(),\n tooltip: zTooltip.nullish(),\n legend: zLegend.nullish(),\n\n xAxis: zXBandAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairRect: zCrosshairRect.nullish(),\n stackCornerRadius: zStackCornerRadius.nullish(),\n})\nexport const zColumnParallelConfig = zColumnConfig\nexport const zColumnPercentConfig = zColumnConfig\nexport const zBarConfig = z.object({\n backgroundColor: zBackgroundColor.nullish(),\n label: zLabel.nullish(),\n color: zColor.nullish(),\n tooltip: zTooltip.nullish(),\n legend: zLegend.nullish(),\n\n xAxis: zXLinearAxis.nullish(),\n yAxis: zYBandAxis.nullish(),\n crosshairRect: zCrosshairRect.nullish(),\n stackCornerRadius: zStackCornerRadius.nullish(),\n})\nexport const zBarParallelConfig = zBarConfig\nexport const zBarPercentConfig = zBarConfig\nexport const zAreaConfig = z.object({\n backgroundColor: zBackgroundColor.nullish(),\n label: zLabel.nullish(),\n color: zColor.nullish(),\n tooltip: zTooltip.nullish(),\n legend: zLegend.nullish(),\n\n xAxis: zXBandAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairLine: zCrosshairLine.nullish(),\n})\nexport const zAreaPercentConfig = zAreaConfig\nexport const zAreaRangeConfig = zAreaConfig\nexport const zDualAxisConfig = z.object({\n backgroundColor: zBackgroundColor.nullish(),\n label: zLabel.nullish(),\n color: zColor.nullish(),\n tooltip: zTooltip.nullish(),\n legend: zLegend.nullish(),\n\n dualChartType: z.array(zDualChartType).or(zDualChartType).nullish(),\n primaryYAxis: z.array(zYLinearAxis).or(zYLinearAxis).nullish(),\n secondaryYAxis: z.array(zYLinearAxis).or(zYLinearAxis).nullish(),\n\n xAxis: zXBandAxis.nullish(),\n crosshairRect: zCrosshairRect.nullish(),\n})\nexport const zScatterConfig = z.object({\n backgroundColor: zBackgroundColor.nullish(),\n label: zLabel.nullish(),\n color: zColor.nullish(),\n tooltip: zTooltip.nullish(),\n legend: zLegend.nullish(),\n\n xAxis: zXLinearAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairLine: zCrosshairLine.nullish(),\n})\n\n// polar\nexport const zRoseConfig = z.object({\n backgroundColor: zBackgroundColor.nullish(),\n label: zLabel.nullish(),\n color: zColor.nullish(),\n tooltip: zTooltip.nullish(),\n legend: zLegend.nullish(),\n})\nexport const zRoseParallelConfig = zRoseConfig\nexport const zPieConfig = z.object({\n backgroundColor: zBackgroundColor.nullish(),\n label: zLabel.nullish(),\n color: zColor.nullish(),\n tooltip: zTooltip.nullish(),\n legend: zLegend.nullish(),\n})\nexport const zDonutConfig = zPieConfig\nexport const zRadarConfig = zPieConfig\n// other\nexport const zFunnelConfig = zPieConfig\nexport const zHeatmapConfig = zPieConfig\n\n/**\n * ---\n * Type config by chart type\n */\nexport type TableConfig = z.infer<typeof zTableConfig>\nexport type PivotTableConfig = z.infer<typeof zPivotTableConfig>\n// cartesian\nexport type LineConfig = z.infer<typeof zLineConfig>\nexport type ColumnConfig = z.infer<typeof zColumnConfig>\nexport type ColumnParallelConfig = z.infer<typeof zColumnParallelConfig>\nexport type ColumnPercentConfig = z.infer<typeof zColumnPercentConfig>\nexport type BarConfig = z.infer<typeof zBarConfig>\nexport type BarParallelConfig = z.infer<typeof zBarParallelConfig>\nexport type BarPercentConfig = z.infer<typeof zBarPercentConfig>\nexport type AreaConfig = z.infer<typeof zAreaConfig>\nexport type AreaPercentConfig = z.infer<typeof zAreaPercentConfig>\nexport type AreaRangeConfig = z.infer<typeof zAreaRangeConfig>\nexport type ScatterConfig = z.infer<typeof zScatterConfig>\nexport type DualAxisConfig = z.infer<typeof zDualAxisConfig>\n// polar\nexport type RoseConfig = z.infer<typeof zRoseConfig>\nexport type RoseParallelConfig = z.infer<typeof zRoseParallelConfig>\nexport type PieConfig = z.infer<typeof zPieConfig>\nexport type DonutConfig = z.infer<typeof zDonutConfig>\nexport type RadarConfig = z.infer<typeof zRadarConfig>\n// other\nexport type FunnelConfig = z.infer<typeof zFunnelConfig>\nexport type HeatmapConfig = z.infer<typeof zHeatmapConfig>\n\n/**\n * config and type\n */\nexport type Config = z.infer<typeof zConfig>\nexport const zConfig = z.object({\n table: zTableConfig.nullish(),\n pivotTable: zPivotTableConfig.nullish(),\n\n // cartesian\n line: zLineConfig.nullish(),\n column: zColumnConfig.nullish(),\n columnParallel: zColumnParallelConfig.nullish(),\n columnPercent: zColumnPercentConfig.nullish(),\n bar: zBarConfig.nullish(),\n barParallel: zBarParallelConfig.nullish(),\n barPercent: zBarPercentConfig.nullish(),\n area: zAreaConfig.nullish(),\n areaPercent: zAreaPercentConfig.nullish(),\n areaRange: zAreaRangeConfig.nullish(),\n scatter: zScatterConfig.nullish(),\n dualAxis: zDualAxisConfig.nullish(),\n\n // polar\n rose: zRoseConfig.nullish(),\n roseParallel: zRoseParallelConfig.nullish(),\n pie: zPieConfig.nullish(),\n donut: zDonutConfig.nullish(),\n radar: zRadarConfig.nullish(),\n // other\n funnel: zFunnelConfig.nullish(),\n heatmap: zHeatmapConfig.nullish(),\n})\n","import { z } from 'zod'\n\nexport type Axis = {\n /**\n * 轴是否可见\n * @default true\n * @example true\n */\n visible?: boolean\n\n /**\n * 轴的最小值\n * @description 优先级高于 nice 与 zero\n * @default undefined\n * @example 100\n */\n min?: number\n\n /**\n * 轴的最大值\n * @description 优先级高于 nice 与 zero\n * @default undefined\n * @example 10000\n */\n max?: number\n\n /**\n * @description 是否使用对数轴, 仅对数值轴生效\n * @default false\n */\n log?: boolean\n\n /**\n * @description 对数轴的底数, 仅对数值轴生效\n * @default 10\n */\n logBase?: number\n\n /**\n * 是否自动调整轴的刻度间隔,使刻度标签更易读\n * @description 当配置了 min 和 max, 该配置项失效, 仅对数值轴生效\n * @default true\n * @example true\n */\n nice?: boolean\n\n /**\n * 轴是否反向展示\n * @description 仅对数值轴生效\n * @default false\n * @example false\n */\n inverse?: boolean\n\n /**\n * 是否在坐标轴上强制显示 0 值,\n * @description 当配置了 min 和 max, 该配置项失效, 仅对数值轴生效\n * @default true\n * @example true\n */\n zero?: boolean\n\n /**\n * 轴标签, 自动隐藏\n * @description 2个标签若重叠(间隔小于autoHideGap), 则自动隐藏导致重叠的标签. 仅对类目轴生效.\n * @default true\n */\n labelAutoHide?: boolean\n /**\n * 轴标签, 自动隐藏间隔\n * @description 若2个文本标签的间隔小于autoHideGap, 则自动隐藏导致重叠的标签. 仅对类目轴生效.\n * autoHide开启时, 使用autoHide, 设置在autoHideSeparation上\n * autoHide关闭时, 使用sampling采样, 设置在minGap上\n * @default 4\n */\n labelAutoHideGap?: number\n /**\n * 轴标签, 自动旋转\n * @description 当标签宽度超过轴长度时, 自动旋转标签. 仅对类目轴生效.\n * @default true\n */\n labelAutoRotate?: boolean\n /**\n * 轴标签, 自动旋转角度范围\n * @description 当自动旋转开启时, 标签旋转角度范围. 仅对类目轴生效.\n * @default [0, -45, -90]\n */\n labelAutoRotateAngleRange?: number[]\n /**\n * 轴标签, 自动限制长度,\n * @description 当标签宽度超过轴长度时, 超出部分省略号表示, 鼠标悬浮后可见标签, 自动限制标签宽度. 仅对类目轴生效.\n * @default true\n */\n labelAutoLimit?: boolean\n /**\n * 轴标签, 自动限制长度的最大长度\n * @description 当标签文本长度超过最大长度时, 超出部分省略号表示, 鼠标悬浮后可见标签. 仅对类目轴生效.\n * @default 80\n */\n labelAutoLimitLength?: number\n\n /**\n * X轴刻度标签\n * @default true\n */\n label?: {\n /**\n * 标签是否可见\n * @default true\n */\n visible?: boolean\n /**\n * 标签颜色\n * @default '#797B85'\n */\n labelColor?: string\n /**\n * 标签字体大小\n * @default 12\n */\n labelFontSize?: number\n /**\n * 标签字体粗细\n * @default 400\n */\n labelFontWeight?: number\n /**\n * 标签旋转角度\n * @default 0\n */\n labelAngle?: number\n }\n\n /**\n * X轴线\n * @example\n * {\n * visible: true,\n * lineColor: '#ffeecc',\n * lineWidth: 2,\n * }\n */\n line?: {\n /**\n * 轴线是否可见\n * @default true\n */\n visible?: boolean\n /**\n * 轴线颜色\n * @default 'rgba(54, 65, 89, 0.30)'\n */\n lineColor?: string\n /**\n * 轴线宽度\n * @default 1\n */\n lineWidth?: number\n }\n\n /**\n * X轴刻度\n * @default true\n */\n tick?: {\n /**\n * 刻度是否可见\n * @default true\n */\n visible?: boolean\n /**\n * 刻度是否朝内\n * @default false\n */\n tickInside?: boolean\n /**\n * 刻度颜色\n * @default 'rgba(54, 65, 89, 0.30)'\n */\n tickColor?: string\n /**\n * 刻度尺寸\n * @default 4\n */\n tickSize?: number\n }\n\n /**\n * X轴标题\n * @default false\n */\n title?: {\n /**\n * 标题是否可见\n * @default false\n */\n visible?: boolean\n /**\n * 标题文本, 默认跟随字段配置\n * @default ''\n */\n titleText?: string\n /**\n * 标题颜色\n * @default '#646A73'\n */\n titleColor?: string\n /**\n * 标题字体大小\n * @default 12\n */\n titleFontSize?: number\n /**\n * 标题字体粗细\n * @default 400\n */\n titleFontWeight?: number\n }\n\n /**\n * X轴网格线\n * @default false\n */\n grid?: {\n visible?: boolean\n /**\n * 网格线颜色\n * @default 'rgba(54, 65, 89, 0.15)'\n */\n gridColor?: string\n /**\n * 网格线宽度\n * @default 0.5\n */\n gridWidth?: number\n }\n}\n\nexport const zAxis = z.object({\n visible: z.boolean().default(true).nullish(),\n\n min: z.number().nullish(),\n max: z.number().nullish(),\n nice: z.boolean().default(true).nullish(),\n zero: z.boolean().default(true).nullish(),\n inverse: z.boolean().default(false).nullish(),\n log: z.boolean().default(false).nullish(),\n logBase: z.number().default(10).nullish(),\n\n labelAutoHide: z.boolean().default(true).nullish(),\n labelAutoHideGap: z.number().default(4).nullish(),\n labelAutoRotate: z.boolean().default(true).nullish(),\n labelAutoRotateAngleRange: z.array(z.number()).default([0, -45, -90]).nullish(),\n labelAutoLimit: z.boolean().default(true).nullish(),\n labelAutoLimitLength: z.number().default(100).nullish(),\n label: z\n .object({\n visible: z.boolean().default(true).nullish(),\n labelColor: z.string().default('#797B85').nullish(),\n labelFontSize: z.number().default(12).nullish(),\n labelFontWeight: z.number().default(400).nullish(),\n labelAngle: z.number().default(0).nullish(),\n })\n .nullish(),\n line: z\n .object({\n visible: z.boolean().default(true).nullish(),\n lineColor: z.string().default('rgba(54, 65, 89, 0.30)').nullish(),\n lineWidth: z.number().default(1).nullish(),\n })\n .nullish(),\n tick: z\n .object({\n visible: z.boolean().default(true).nullish(),\n tickInside: z.boolean().default(false).nullish(),\n tickColor: z.string().default('rgba(54, 65, 89, 0.30)').nullish(),\n tickSize: z.number().default(4).nullish(),\n })\n .nullish(),\n title: z\n .object({\n visible: z.boolean().default(false).nullish(),\n titleText: z.string().default('').nullish(),\n titleColor: z.string().default('#646A73').nullish(),\n titleFontSize: z.number().default(12).nullish(),\n titleFontWeight: z.number().default(400).nullish(),\n })\n .nullish(),\n grid: z\n .object({\n visible: z.boolean().default(false).nullish(),\n gridColor: z.string().default('rgba(54, 65, 89, 0.15)').nullish(),\n gridWidth: z.number().default(0.5).nullish(),\n })\n .nullish(),\n})\n","import { z } from 'zod'\nimport { zConfig } from '../config'\n\nexport const zCustomThemeConfig = z.object({\n config: zConfig.nullish(),\n})\n\nexport const zCustomTheme = z.record(z.string(), zCustomThemeConfig).nullish()\n\nexport type CustomTheme = z.infer<typeof zCustomTheme>\nexport type CustomThemeConfig = z.infer<typeof zCustomThemeConfig>\n","import { z } from 'zod'\n\nexport const zTheme = z.string()\n\ntype Light = 'light' & { readonly brand: unique symbol }\ntype Dark = 'dark' & { readonly brand: unique symbol }\n\n/**\n * 主题\n * @default light\n * @description 内置 light、dark 两种主题, 新的主题可以通过registerTheme自定义主题.\n */\nexport type Theme = Light | Dark | string\n","import { z } from 'zod'\nimport type { Datum } from '../properties'\n\nexport type ValueSelector = string | number\n\nexport type PartialDatumSelector = Datum\n\nexport type MeasureSelector = {\n field: string\n operator?: '=' | '==' | '!=' | '>' | '<' | '>=' | '<=' | 'between'\n op?: '=' | '==' | '!=' | '>' | '<' | '>=' | '<=' | 'between'\n value: string | number | Array<string | number>\n}\n\nexport type DimensionSelector = {\n field: string\n operator?: 'in' | 'not in'\n op?: 'in' | 'not in'\n value: string | number | Array<string | number>\n}\n\nexport type Selector = ValueSelector | PartialDatumSelector | MeasureSelector | DimensionSelector\n\nexport type Selectors = Array<Selector>\n\nexport const zSelector = z.union([\n z.string(),\n z.number(),\n z.object({\n field: z.string(),\n operator: z.enum(['=', '==', '!=', '>', '<', '>=', '<=', 'between']).nullish(),\n op: z.enum(['=', '==', '!=', '>', '<', '>=', '<=', 'between']).nullish(),\n value: z.union([z.string(), z.number(), z.array(z.union([z.string(), z.number()]))]),\n }),\n z.object({\n field: z.string(),\n operator: z.enum(['in', 'not in']).nullish(),\n op: z.enum(['in', 'not in']).nullish(),\n value: z.union([z.string(), z.number(), z.array(z.union([z.string(), z.number()]))]),\n }),\n])\n\nexport const zSelectors = z.array(zSelector)\n","import { z } from 'zod'\nimport { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\n\nexport type BarStyle = {\n /**\n * 数据选择器\n * @description\n * 若配置selector, 提供数值 selector, 局部数据 selector, 条件维度 selector, 条件指标 selector 共四类数据匹配能力\n * 若未配置selector, 则样式全局生效.\n * @type {Selector | Selectors}\n * @example 数值选择器\n * selector = \"tool\"\n * selector = [\"tool\", \"book\"]\n * selector = 100\n * selector = [100, 200]\n * @example 局部数据选择器\n * selector = { profit: 100 }\n * selector = [{ profit: 100 }, { profit: 200 }]\n * @example 条件维度选择器\n * selector = {\n * field: 'category',\n * operator: 'in',\n * value: 'tool'\n * }\n * selector = {\n * field: 'category',\n * operator: 'not in',\n * value: 'book'\n * }\n * @example 条件指标选择器\n * selector = {\n * field: 'profit',\n * operator: '>=',\n * value: 100\n * }\n * selector = {\n * field: 'profit',\n * operator: 'between'\n * value: [100, 300]\n * }\n */\n selector?: Selector | Selectors\n\n /**\n * 柱状图颜色\n * @description 柱状图颜色\n * @type {string}\n */\n barColor?: string\n /**\n * 柱状图颜色透明度\n * @description 柱状图颜色透明度\n * @type {number}\n */\n barColorOpacity?: number\n /**\n * 柱状图边框颜色\n * @description 柱状图边框颜色\n * @type {string}\n */\n barBorderColor?: string\n /**\n * 柱状图边框宽度\n * @description 柱状图边框宽度\n * @type {number}\n */\n barBorderWidth?: number\n /**\n * 柱状图边框样式\n * @description 柱状图边框样式\n * @type {number}\n * @example solid\n * @example dashed\n * @example dotted\n */\n barBorderStyle?: 'solid' | 'dashed' | 'dotted'\n /**\n * 柱状图圆角\n * @description 柱状图圆角\n * @type {number | number[]}\n * @example 4\n * @example [0, 0, 10, 10]\n */\n barRadius?: number | number[]\n}\n\nexport const zBarStyle = z.object({\n selector: z.union([zSelector, zSelectors]).nullish(),\n barColor: z.string().nullish(),\n barColorOpacity: z.number().nullish(),\n barBorderColor: z.string().nullish(),\n barBorderWidth: z.number().nullish(),\n barBorderStyle: z.union([z.literal('solid'), z.literal('dashed'), z.literal('dotted')]).nullish(),\n barRadius: z.union([z.number(), z.array(z.number())]).nullish(),\n})\n","import { z } from 'zod'\nimport { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\n\nexport type PointStyle = {\n /**\n * 数据选择器\n * @description\n * 若配置selector, 提供数值 selector, 局部数据 selector, 条件维度 selector, 条件指标 selector 共四类数据匹配能力\n * 若未配置selector, 则样式全局生效.\n * @type {Selector | Selectors}\n * @example 数值选择器\n * selector = \"tool\"\n * selector = [\"tool\", \"book\"]\n * selector = 100\n * selector = [100, 200]\n * @example 局部数据选择器\n * selector = { profit: 100 }\n * selector = [{ profit: 100 }, { profit: 200 }]\n * @example 条件维度选择器\n * selector = {\n * field: 'category',\n * operator: 'in',\n * value: 'tool'\n * }\n * selector = {\n * field: 'category',\n * operator: 'not in',\n * value: 'book'\n * }\n * @example 条件指标选择器\n * selector = {\n * field: 'profit',\n * operator: '>=',\n * value: 100\n * }\n * selector = {\n * field: 'profit',\n * operator: 'between'\n * value: [100, 300]\n * }\n */\n selector?: Selector | Selectors\n\n /**\n * 点大小\n * @description 点大小\n * @type {number}\n */\n pointSize?: number\n /**\n * 点图元颜色\n * @description 点图元颜色\n * @type {string}\n */\n pointColor?: string\n /**\n * 点图元颜色透明度\n * @description 点图元颜色透明度\n * @type {number}\n */\n pointColorOpacity?: number\n /**\n * 点图元边框颜色\n * @description 点图元边框颜色\n * @type {string}\n */\n pointBorderColor?: string\n /**\n * 点图元边框宽度\n * @description 点图元边框宽度\n * @type {number}\n */\n pointBorderWidth?: number\n /**\n * 点图元边框样式\n * @description 点图元边框样式\n * @type {number}\n * @example solid\n * @example dashed\n * @example dotted\n */\n pointBorderStyle?: 'solid' | 'dashed' | 'dotted'\n}\n\nexport const zPointStyle = z.object({\n selector: z.union([zSelector, zSelectors]).nullish(),\n pointSize: z.number().nullish(),\n pointColor: z.string().nullish(),\n pointColorOpacity: z.number().nullish(),\n pointBorderColor: z.string().nullish(),\n pointBorderWidth: z.number().nullish(),\n pointBorderStyle: z.union([z.enum(['solid', 'dashed', 'dotted'])]).nullish(),\n})\n","import { z } from 'zod'\nimport { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\n\nexport type LineStyle = {\n /**\n * 数据选择器\n * @description\n * 若配置selector, 提供数值 selector, 局部数据 selector, 条件维度 selector, 条件指标 selector 共四类数据匹配能力\n * 若未配置selector, 则样式全局生效.\n * @type {Selector | Selectors}\n * @example 数值选择器\n * selector = \"tool\"\n * selector = [\"tool\", \"book\"]\n * selector = 100\n * selector = [100, 200]\n * @example 局部数据选择器\n * selector = { profit: 100 }\n * selector = [{ profit: 100 }, { profit: 200 }]\n * @example 条件维度选择器\n * selector = {\n * field: 'category',\n * operator: 'in',\n * value: 'tool'\n * }\n * selector = {\n * field: 'category',\n * operator: 'not in',\n * value: 'book'\n * }\n * @example 条件指标选择器\n * selector = {\n * field: 'profit',\n * operator: '>=',\n * value: 100\n * }\n * selector = {\n * field: 'profit',\n * operator: 'between'\n * value: [100, 300]\n * }\n */\n selector?: Selector | Selectors\n\n /**\n * 折线图是否平滑\n * @description 折线图是否平滑\n * @type {boolean}\n */\n lineSmooth?: boolean\n\n /**\n * 柱状图颜色\n * @description 柱状图颜色\n * @type {string}\n */\n lineColor?: string\n /**\n * 柱状图颜色透明度\n * @description 柱状图颜色透明度\n * @type {number}\n */\n lineColorOpacity?: number\n /**\n * 柱状图边框宽度\n * @description 柱状图边框宽度\n * @type {number}\n */\n lineWidth?: number\n /**\n * 柱状图边框样式\n * @description 柱状图边框样式\n * @type {number}\n * @example solid\n * @example dashed\n * @example dotted\n */\n lineStyle?: 'solid' | 'dashed' | 'dotted'\n}\n\nexport const zLineStyle = z.object({\n selector: z.union([zSelector, zSelectors]).nullish(),\n lineSmooth: z.boolean().nullish(),\n lineColor: z.string().nullish(),\n lineColorOpacity: z.number().nullish(),\n lineWidth: z.number().nullish(),\n lineStyle: z.union([z.enum(['solid', 'dashed', 'dotted'])]).nullish(),\n})\n","import { z } from 'zod'\nimport { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\n\nexport type AreaStyle = {\n /**\n * 数据选择器\n * @description\n * 若配置selector, 提供数值 selector, 局部数据 selector, 条件维度 selector, 条件指标 selector 共四类数据匹配能力\n * 若未配置selector, 则样式全局生效.\n * @type {Selector | Selectors}\n * @example 数值选择器\n * selector = \"tool\"\n * selector = [\"tool\", \"book\"]\n * selector = 100\n * selector = [100, 200]\n * @example 局部数据选择器\n * selector = { profit: 100 }\n * selector = [{ profit: 100 }, { profit: 200 }]\n * @example 条件维度选择器\n * selector = {\n * field: 'category',\n * operator: 'in',\n * value: 'tool'\n * }\n * selector = {\n * field: 'category',\n * operator: 'not in',\n * value: 'book'\n * }\n * @example 条件指标选择器\n * selector = {\n * field: 'profit',\n * operator: '>=',\n * value: 100\n * }\n * selector = {\n * field: 'profit',\n * operator: 'between'\n * value: [100, 300]\n * }\n */\n selector?: Selector | Selectors\n\n /**\n * 面积图元的颜色\n * @description 面积图元的颜色\n * @type {string}\n */\n areaColor?: string\n /**\n * 面积图元的颜色透明度\n * @description 面积图元的颜色透明度\n * @type {number}\n */\n areaColorOpacity?: number\n}\n\nexport const zAreaStyle = z.object({\n selector: z.union([zSelector, zSelectors]).nullish(),\n areaColor: z.string().nullish(),\n areaColorOpacity: z.number().nullish(),\n})\n","import { z } from 'zod'\nimport { zBarStyle } from './barStyle'\nimport { zPointStyle } from './pointStyle'\nimport { zLineStyle } from './lineStyle'\nimport { zAreaStyle } from './areaStyle'\n\nexport const zMarkStyle = z.object({\n barStyle: zBarStyle.or(z.array(zBarStyle)).nullish(),\n pointStyle: zPointStyle.or(z.array(zPointStyle)).nullish(),\n lineStyle: zLineStyle.or(z.array(zLineStyle)).nullish(),\n areaStyle: zAreaStyle.or(z.array(zAreaStyle)).nullish(),\n})\n\nexport type MarkStyle = z.infer<typeof zMarkStyle>\n","import { zSelector, zSelectors } from '../../dataSelector'\nimport { z } from 'zod'\n\nexport const zAnnotationPoint = z.object({\n selector: z.union([zSelector, zSelectors]),\n text: z.string().or(z.array(z.string())).nullish(),\n textColor: z.string().default('#ffffff').nullish(),\n textFontSize: z.number().default(12).nullish(),\n textFontWeight: z.number().default(400).nullish(),\n textAlign: z.enum(['left', 'right', 'center']).default('center').nullish(),\n textBaseline: z.enum(['top', 'middle', 'bottom']).default('middle').nullish(),\n textBackgroundVisible: z.boolean().default(true).nullish(),\n textBackgroundColor: z.string().default('#212121').nullish(),\n textBackgroundBorderColor: z.string().nullish(),\n textBackgroundBorderWidth: z.number().default(1).nullish(),\n textBackgroundBorderRadius: z.number().default(4).nullish(),\n textBackgroundPadding: z.number().nullish(),\n\n offsetY: z.number().default(0).nullish(),\n offsetX: z.number().default(0).nullish(),\n})\n","import { zSelector, zSelectors } from '../../dataSelector'\nimport { z } from 'zod'\n\nexport const zAnnotationVerticalLine = z.object({\n selector: z.union([zSelector, zSelectors]).nullish(),\n xValue: z.union([z.number(), z.string(), z.array(z.union([z.number(), z.string()]))]).nullish(),\n text: z.string().or(z.array(z.string())).nullish(),\n textPosition: z\n .enum(['outsideStart', 'outsideEnd', 'outsideMiddle', 'insideStart', 'insideMiddle', 'insideEnd'])\n .default('insideEnd')\n .nullish(),\n textColor: z.string().default('#ffffff').nullish(),\n textFontSize: z.number().default(12).nullish(),\n textFontWeight: z.number().default(400).nullish(),\n textAlign: z.enum(['left', 'right', 'center']).default('right').nullish(),\n textBaseline: z.enum(['top', 'middle', 'bottom']).default('top').nullish(),\n\n textBackgroundVisible: z.boolean().default(true).nullish(),\n textBackgroundColor: z.string().default('#212121').nullish(),\n textBackgroundBorderColor: z.string().default('#212121').nullish(),\n textBackgroundBorderRadius: z.number().default(4).nullish(),\n textBackgroundBorderWidth: z.number().default(1).nullish(),\n textBackgroundPadding: z.number().default(2).nullish(),\n\n lineVisible: z.boolean().default(true).nullish(),\n lineColor: z.string().default('#212121').nullish(),\n lineWidth: z.number().default(1).nullish(),\n lineStyle: z\n .union([z.literal('solid'), z.literal('dashed'), z.literal('dotted')])\n .default('dashed')\n .nullish(),\n\n offsetX: z.number().default(0),\n offsetY: z.number().default(0),\n})\n","import { zSelector, zSelectors } from '../../dataSelector'\nimport { z } from 'zod'\n\nexport const zAnnotationHorizontalLine = z.object({\n selector: z.union([zSelector, zSelectors]).nullish(),\n yValue: z.union([z.number(), z.string(), z.array(z.union([z.number(), z.string()]))]).nullish(),\n text: z.string().or(z.array(z.string())).nullish(),\n textPosition: z\n .enum(['outsideStart', 'outsideEnd', 'outsideMiddle', 'insideStart', 'insideMiddle', 'insideEnd'])\n .default('insideEnd')\n .nullish(),\n textColor: z.string().default('#ffffff').nullish(),\n textFontSize: z.number().default(12).nullish(),\n textFontWeight: z.number().default(400).nullish(),\n textAlign: z.enum(['left', 'right', 'center']).default('right').nullish(),\n textBaseline: z.enum(['top', 'middle', 'bottom']).default('top').nullish(),\n\n lineVisible: z.boolean().default(true).nullish(),\n lineColor: z.string().default('#212121').nullish(),\n lineWidth: z.number().default(1).nullish(),\n lineStyle: z\n .union([z.literal('solid'), z.literal('dashed'), z.literal('dotted')])\n .default('dashed')\n .nullish(),\n\n textBackgroundVisible: z.boolean().default(true).nullish(),\n textBackgroundColor: z.string().default('#212121').nullish(),\n textBackgroundBorderColor: z.string().default('#212121').nullish(),\n textBackgroundBorderRadius: z.number().default(4).nullish(),\n textBackgroundBorderWidth: z.number().default(1).nullish(),\n textBackgroundPadding: z.number().default(2).nullish(),\n\n offsetX: z.number().default(0),\n offsetY: z.number().default(0),\n})\n","import { zSelector, zSelectors } from '../../dataSelector'\nimport { z } from 'zod'\n\nexport const zAnnotationArea = z.object({\n selector: z.union([zSelector, zSelectors]),\n textPosition: z\n .enum(['top', 'topRight', 'topLeft', 'bottom', 'bottomLeft', 'bottomRight', 'left', 'right'])\n .default('top')\n .nullish(),\n text: z.string().or(z.array(z.string())).nullish(),\n textColor: z.string().default('#ffffff').nullish(),\n textFontSize: z.number().default(12).nullish(),\n textFontWeight: z.number().default(400).nullish(),\n textAlign: z.enum(['left', 'right', 'center']).default('center').nullish(),\n textBaseline: z.enum(['top', 'middle', 'bottom']).default('top').nullish(),\n\n textBackgroundVisible: z.boolean().default(true).nullish(),\n textBackgroundColor: z.string().default('#191d24').nullish(),\n textBackgroundBorderColor: z.string().default('#191d24').nullish(),\n textBackgroundBorderWidth: z.number().default(1).nullish(),\n textBackgroundBorderRadius: z.number().default(4).nullish(),\n textBackgroundPadding: z.number().default(4).nullish(),\n\n areaColor: z.string().default('#888888').nullish(),\n areaColorOpacity: z.number().default(0.15).nullish(),\n areaBorderColor: z.string().default('#888888').nullish(),\n areaBorderWidth: z.number().default(1).nullish(),\n areaBorderRadius: z.number().default(4).nullish(),\n\n outerPadding: z.number().default(4).nullish(),\n offsetX: z.number().default(0).nullish(),\n offsetY: z.number().default(0).nullish(),\n})\n","import { z } from 'zod'\nimport { zAnnotationPoint } from './zAnnotationPoint'\nimport { zAnnotationVerticalLine } from './zAnnotationVerticalLine'\nimport { zAnnotationHorizontalLine } from './zAnnotationHorizontalLine'\nimport { zAnnotationArea } from './zAnnotationArea'\n\n\nexport const zAnnotation = z.object({\n annotationPoint: zAnnotationPoint.or(z.array(zAnnotationPoint)).nullish(),\n annotationVerticalLine: zAnnotationVerticalLine.or(z.array(zAnnotationVerticalLine)).nullish(),\n annotationHorizontalLine: zAnnotationHorizontalLine.or(z.array(zAnnotationHorizontalLine)).nullish(),\n annotationArea: zAnnotationArea.or(z.array(zAnnotationArea)).nullish(),\n})\n\nexport type Annotation = z.infer<typeof zAnnotation>\n","import { z } from 'zod'\n\nexport const zSort = z.object({\n order: z.enum(['asc', 'desc']).default('asc'),\n orderBy: z.string().nullish(),\n customOrder: z.array(z.any()).nullish(),\n})\n\n/**\n * @description 类目轴排序配置, 支持根据维度或指标排序, 以及自定义排序顺序\n * @default {}\n * @example \n * - order:'asc'\n * - orderBy:'date'\n * 或\n * - customOrder:['2019', '2020', '2021']\n */\nexport type Sort = {\n /**\n * @description 排序顺序, 可选值为 'asc' 或 'desc'\n * @enum ['asc', 'desc']\n * @example order:'asc'\n */\n order?: 'asc' | 'desc'\n\n /**\n * @description 排序依赖的字段, 可以是维度id或指标id\n * @example \n * - orderBy:'date'\n * - orderBy:'profit'\n */\n orderBy?: string\n\n /**\n * @description 自定义排序顺序, 该顺序将直接应用至类目轴\n */\n customOrder?: string[]\n}\n","import { z } from 'zod'\n\nexport const zSortLegend = z.object({\n order: z.enum(['asc', 'desc']).default('asc'),\n orderBy: z.string().nullish(),\n customOrder: z.array(z.any()).nullish(),\n})\n\n/**\n * @description 图例排序配置, 支持根据维度或指标排序, 以及自定义排序顺序; 排序数组遵循从左到右或从上到下的顺序\n * @default {}\n * @example \n * - order:'asc'\n * - orderBy:'date'\n * 或\n * - customOrder:['2019', '2020', '2021']\n */\nexport type SortLegend = {\n /**\n * @description 排序顺序, 可选值为 'asc' 或 'desc'\n * @default 'asc'\n * @enum ['asc', 'desc']\n * @example order:'asc'\n */\n order?: 'asc' | 'desc'\n /**\n * @description 排序依赖的字段, 可以是维度id或指标id\n * @example \n * - orderBy:'date'\n * - orderBy:'profit'\n */\n orderBy?: string\n /**\n * @description 自定义排序顺序, 该顺序将直接应用至图例, 升序从左到右或从上到下, 降序从右到左或从下到上\n */\n customOrder?: string[]\n}\n","import { z } from 'zod'\n\nexport const zAnalysis = z.object({\n orderMapping: z.record(z.string(), z.array(z.string())).nullish(),\n})\n","import { z } from 'zod'\n\nexport type Locale = 'zh-CN' | 'en-US'\n\nexport type TranslateRecordType = Record<string, { [local in Locale]: string }>\n\nexport const zLocale = z.enum(['zh-CN', 'en-US']).default('zh-CN')\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\nimport { zBackgroundColor, zDataset, zDimensions, zMeasureTree, zTheme } from '../../properties'\n\nexport const zTable = z.object({\n chartType: z.literal('table'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n\n backgroundColor: zBackgroundColor.nullish(),\n borderColor: z.string().nullish(),\n bodyFontSize: z.number().nullish(),\n bodyFontColor: z.string().nullish(),\n bodyBackgroundColor: z.string().nullish(),\n hoverBodyBackgroundColor: z.string().nullish(),\n hoverBodyInlineBackgroundColor: z.string().nullish(),\n headerFontSize: z.number().nullish(),\n headerFontColor: z.string().nullish(),\n headerBackgroundColor: z.string().nullish(),\n hoverHeaderBackgroundColor: z.string().nullish(),\n hoverHeaderInlineBackgroundColor: z.string().nullish(),\n selectedBorderColor: z.string().nullish(),\n selectedBackgroundColor: z.string().nullish(),\n\n theme: zTheme.nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\nimport { zBackgroundColor, zDataset, zDimensions, zTheme, zMeasures } from '../../properties'\n\nexport const zPivotTable = z.object({\n chartType: z.literal('pivotTable'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasures.nullish(),\n\n backgroundColor: zBackgroundColor.nullish(),\n borderColor: z.string().nullish(),\n bodyFontSize: z.number().nullish(),\n bodyFontColor: z.string().nullish(),\n bodyBackgroundColor: z.string().nullish(),\n hoverBodyBackgroundColor: z.string().nullish(),\n hoverBodyInlineBackgroundColor: z.string().nullish(),\n headerFontSize: z.number().nullish(),\n headerFontColor: z.string().nullish(),\n headerBackgroundColor: z.string().nullish(),\n hoverHeaderBackgroundColor: z.string().nullish(),\n hoverHeaderInlineBackgroundColor: z.string().nullish(),\n selectedBorderColor: z.string().nullish(),\n selectedBackgroundColor: z.string().nullish(),\n\n theme: zTheme.nullish(),\n locale: zLocale.nullish(),\n})\n","import { zLocale } from '../../i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zBackgroundColor,\n zColor,\n zCrosshairLine,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zLineStyle,\n zMeasureTree,\n zPointStyle,\n zSort,\n zSortLegend,\n zTheme,\n zTooltip,\n zXBandAxis,\n zYLinearAxis,\n} from '../../properties'\n\nimport { z } from 'zod'\n\nexport const zLine = z.object({\n chartType: z.literal('line'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n xAxis: zXBandAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairLine: zCrosshairLine.nullish(),\n sort: zSort.nullish(),\n sortLegend: zSortLegend.nullish(),\n theme: zTheme.nullish(),\n pointStyle: z.array(zPointStyle).or(zPointStyle).nullish(),\n lineStyle: z.array(zLineStyle).or(zLineStyle).nullish(),\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n locale: zLocale.nullish(),\n})\n","import { zLocale } from '../../i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zBackgroundColor,\n zBarStyle,\n zColor,\n zCrosshairRect,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zStackCornerRadius,\n zTheme,\n zTooltip,\n zXBandAxis,\n zYLinearAxis,\n} from '../../properties'\nimport { z } from 'zod'\n\nexport const zColumn = z.object({\n chartType: z.literal('column'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n xAxis: zXBandAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairRect: zCrosshairRect.nullish(),\n stackCornerRadius: zStackCornerRadius.nullish(),\n theme: zTheme.nullish(),\n barStyle: z.array(zBarStyle).or(zBarStyle).nullish(),\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n locale: zLocale.nullish(),\n})\n","import { zLocale } from '../../i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zBackgroundColor,\n zBarStyle,\n zColor,\n zCrosshairRect,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zStackCornerRadius,\n zTheme,\n zTooltip,\n zXBandAxis,\n zYLinearAxis,\n} from '../../properties'\n\nimport { z } from 'zod'\n\nexport const zColumnParallel = z.object({\n chartType: z.literal('columnParallel'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n xAxis: zXBandAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairRect: zCrosshairRect.nullish(),\n stackCornerRadius: zStackCornerRadius.nullish(),\n theme: zTheme.nullish(),\n barStyle: z.array(zBarStyle).or(zBarStyle).nullish(),\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n locale: zLocale.nullish(),\n})\n","import { zLocale } from '../../i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zBackgroundColor,\n zBarStyle,\n zColor,\n zCrosshairRect,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zStackCornerRadius,\n zTheme,\n zTooltip,\n zXBandAxis,\n zYLinearAxis,\n} from '../../properties'\n\nimport { z } from 'zod'\n\nexport const zColumnPercent = z.object({\n chartType: z.literal('columnPercent'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n xAxis: zXBandAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairRect: zCrosshairRect.nullish(),\n stackCornerRadius: zStackCornerRadius.nullish(),\n theme: zTheme.nullish(),\n barStyle: z.array(zBarStyle).or(zBarStyle).nullish(),\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n locale: zLocale.nullish(),\n})\n","import { zLocale } from '../../i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zBackgroundColor,\n zBarStyle,\n zColor,\n zCrosshairRect,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zStackCornerRadius,\n zTheme,\n zTooltip,\n zXLinearAxis,\n zYBandAxis,\n} from '../../properties'\n\nimport { z } from 'zod'\n\nexport const zBar = z.object({\n chartType: z.literal('bar'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n xAxis: zXLinearAxis.nullish(),\n yAxis: zYBandAxis.nullish(),\n crosshairRect: zCrosshairRect.nullish(),\n stackCornerRadius: zStackCornerRadius.nullish(),\n theme: zTheme.nullish(),\n barStyle: z.array(zBarStyle).or(zBarStyle).nullish(),\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zBackgroundColor,\n zBarStyle,\n zColor,\n zCrosshairRect,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zStackCornerRadius,\n zTheme,\n zTooltip,\n zXLinearAxis,\n zYBandAxis,\n} from '../../properties'\n\nexport const zBarParallel = z.object({\n chartType: z.literal('barParallel'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n xAxis: zXLinearAxis.nullish(),\n yAxis: zYBandAxis.nullish(),\n crosshairRect: zCrosshairRect.nullish(),\n stackCornerRadius: zStackCornerRadius.nullish(),\n theme: zTheme.nullish(),\n barStyle: z.array(zBarStyle).or(zBarStyle).nullish(),\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zBackgroundColor,\n zBarStyle,\n zColor,\n zCrosshairRect,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zStackCornerRadius,\n zTheme,\n zTooltip,\n zXLinearAxis,\n zYBandAxis,\n} from '../../properties'\n\nexport const zBarPercent = z.object({\n chartType: z.literal('barPercent'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n xAxis: zXLinearAxis.nullish(),\n yAxis: zYBandAxis.nullish(),\n crosshairRect: zCrosshairRect.nullish(),\n stackCornerRadius: zStackCornerRadius.nullish(),\n theme: zTheme.nullish(),\n barStyle: z.array(zBarStyle).or(zBarStyle).nullish(),\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zAreaStyle,\n zBackgroundColor,\n zColor,\n zCrosshairLine,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zLineStyle,\n zMeasureTree,\n zPointStyle,\n zTheme,\n zTooltip,\n zXBandAxis,\n zYLinearAxis,\n} from '../../properties'\n\nexport const zArea = z.object({\n chartType: z.literal('area'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n xAxis: zXBandAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairLine: zCrosshairLine.nullish(),\n theme: zTheme.nullish(),\n pointStyle: z.array(zPointStyle).or(zPointStyle).nullish(),\n lineStyle: z.array(zLineStyle).or(zLineStyle).nullish(),\n areaStyle: z.array(zAreaStyle).or(zAreaStyle).nullish(),\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n locale: zLocale.nullish(),\n})\n","import { zLocale } from '../../i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zAreaStyle,\n zBackgroundColor,\n zColor,\n zCrosshairLine,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zLineStyle,\n zMeasureTree,\n zPointStyle,\n zTheme,\n zTooltip,\n zXBandAxis,\n zYLinearAxis,\n} from '../../properties'\n\nimport { z } from 'zod'\n\nexport const zAreaPercent = z.object({\n chartType: z.literal('areaPercent'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n xAxis: zXBandAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairLine: zCrosshairLine.nullish(),\n theme: zTheme.nullish(),\n pointStyle: z.array(zPointStyle).or(zPointStyle).nullish(),\n lineStyle: z.array(zLineStyle).or(zLineStyle).nullish(),\n areaStyle: z.array(zAreaStyle).or(zAreaStyle).nullish(),\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\n\nimport { zLocale } from '../../i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zAreaStyle,\n zBackgroundColor,\n zCrosshairLine,\n zDataset,\n zDimensions,\n zLabel,\n zLineStyle,\n zMeasureTree,\n zPointStyle,\n zTheme,\n zXBandAxis,\n zYLinearAxis,\n} from '../../properties'\n\nexport const zAreaRange = z.object({\n chartType: z.literal('areaRange'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n label: zLabel.nullish(),\n xAxis: zXBandAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairLine: zCrosshairLine.nullish(),\n theme: zTheme.nullish(),\n pointStyle: z.array(zPointStyle).or(zPointStyle).nullish(),\n lineStyle: z.array(zLineStyle).or(zLineStyle).nullish(),\n areaStyle: z.array(zAreaStyle).or(zAreaStyle).nullish(),\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zBackgroundColor,\n zColor,\n zCrosshairLine,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zPointStyle,\n zTheme,\n zTooltip,\n zXLinearAxis,\n zYLinearAxis,\n} from '../../properties'\n\nexport const zScatter = z.object({\n chartType: z.literal('scatter'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n xAxis: zXLinearAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairLine: zCrosshairLine.nullish(),\n theme: zTheme.nullish(),\n pointStyle: z.array(zPointStyle).or(zPointStyle).nullish(),\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from 'src/types/i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zAreaStyle,\n zBackgroundColor,\n zBarStyle,\n zColor,\n zCrosshairRect,\n zDataset,\n zDimensions,\n zDualChartType,\n zDualMeasures,\n zLabel,\n zLegend,\n zLineStyle,\n zMeasureTree,\n zPointStyle,\n zSort,\n zSortLegend,\n zTheme,\n zTooltip,\n zXBandAxis,\n zYLinearAxis,\n} from 'src/types/properties'\n\nexport const zDualAxis = z.object({\n chartType: z.literal('dualAxis'),\n\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n dualMeasures: zDualMeasures.nullish(),\n\n dualChartType: z.array(zDualChartType).or(zDualChartType).nullish(),\n\n primaryYAxis: z.array(zYLinearAxis).or(zYLinearAxis).nullish(),\n secondaryYAxis: z.array(zYLinearAxis).or(zYLinearAxis).nullish(),\n xAxis: zXBandAxis.nullish(),\n\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n\n crosshairRect: zCrosshairRect.nullish(),\n sort: zSort.nullish(),\n sortLegend: zSortLegend.nullish(),\n theme: zTheme.nullish(),\n\n barStyle: z.array(zBarStyle).or(zBarStyle).nullish(),\n pointStyle: z.array(zPointStyle).or(zPointStyle).nullish(),\n lineStyle: z.array(zLineStyle).or(zLineStyle).nullish(),\n areaStyle: z.array(zAreaStyle).or(zAreaStyle).nullish(),\n\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\n\nimport {\n zBackgroundColor,\n zColor,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zTheme,\n zTooltip,\n} from '../../properties'\n\nexport const zRose = z.object({\n chartType: z.literal('rose'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n theme: zTheme.nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\nimport {\n zBackgroundColor,\n zColor,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zTheme,\n zTooltip,\n} from '../../properties'\n\nexport const zRoseParallel = z.object({\n chartType: z.literal('roseParallel'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n theme: zTheme.nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\nimport {\n zBackgroundColor,\n zColor,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zTheme,\n zTooltip,\n} from '../../properties'\n\nexport const zPie = z.object({\n chartType: z.literal('pie'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n theme: zTheme.nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\n\nimport {\n zBackgroundColor,\n zColor,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zTheme,\n zTooltip,\n} from '../../properties'\n\nexport const zDonut = z.object({\n chartType: z.literal('donut'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n theme: zTheme.nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\n\nimport {\n zBackgroundColor,\n zColor,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zTheme,\n zTooltip,\n} from '../../properties'\n\nexport const zRadar = z.object({\n chartType: z.literal('radar'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n theme: zTheme.nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\nimport {\n zBackgroundColor,\n zColorLegend,\n zDataset,\n zDimensions,\n zLabel,\n zLinearColor,\n zMeasureTree,\n zTheme,\n zTooltip,\n} from '../../properties'\n\nexport const zFunnel = z.object({\n chartType: z.literal('funnel'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zLinearColor.nullish(),\n label: zLabel.nullish(),\n legend: zColorLegend.nullish(),\n tooltip: zTooltip.nullish(),\n theme: zTheme.nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\n\nimport {\n zBackgroundColor,\n zColorLegend,\n zDataset,\n zDimensions,\n zLabel,\n zLinearColor,\n zMeasureTree,\n zTheme,\n zTooltip,\n} from '../../properties'\n\nexport const zHeatmap = z.object({\n chartType: z.literal('heatmap'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zLinearColor.nullish(),\n label: zLabel.nullish(),\n legend: zColorLegend.nullish(),\n tooltip: zTooltip.nullish(),\n theme: zTheme.nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\n\nimport { zBar, type Bar } from './chartType/bar'\nimport { zBarParallel, type BarParallel } from './chartType/barParallel'\nimport { zColumn, type Column } from './chartType/column'\nimport { zColumnParallel, type ColumnParallel } from './chartType/columnParallel'\nimport { zColumnPercent, type ColumnPercent } from './chartType/columnPercent'\nimport { zLine, type Line } from './chartType/line'\nimport type { Table } from './chartType/table'\nimport { zRose, type Rose } from './chartType/rose'\nimport { zBarPercent, type BarPercent } from './chartType/barPercent'\nimport type { PivotTable } from './chartType/pivotTable'\nimport { zPie, type Pie } from './chartType/pie'\nimport { zDonut, type Donut } from './chartType/donut'\nimport type { DualAxis } from './chartType/dualAxis'\nimport { zArea, type Area } from './chartType/area'\nimport { zAreaPercent, type AreaPercent } from './chartType/areaPercent'\nimport type { AreaRange, Heatmap, Radar } from './chartType'\nimport {\n zAreaRange,\n zDualAxis,\n zFunnel,\n zHeatmap,\n zPivotTable,\n zRadar,\n zRoseParallel,\n zScatter,\n zTable,\n type Funnel,\n type RoseParallel,\n type Scatter,\n} from './chartType'\n\nexport type VSeed =\n // table\n | Table\n | PivotTable\n\n // cartesian\n | Line\n | Column\n | ColumnParallel\n | ColumnPercent\n | Bar\n | BarParallel\n | BarPercent\n | Area\n | AreaPercent\n | AreaRange\n | Scatter\n | DualAxis\n\n // polar\n | Rose\n | RoseParallel\n | Pie\n | Donut\n | Radar\n\n // other\n | Funnel\n | Heatmap\n\nexport const zVSeed = z.discriminatedUnion('chartType', [\n zTable,\n zPivotTable,\n // cartesian\n zLine,\n zColumn,\n zColumnParallel,\n zColumnPercent,\n zBar,\n zBarParallel,\n zBarPercent,\n zArea,\n zAreaPercent,\n zAreaRange,\n zScatter,\n zDualAxis,\n // polar\n zPie,\n zDonut,\n zRose,\n zRoseParallel,\n zRadar,\n // other\n zFunnel,\n zHeatmap,\n])\n","import { z } from 'zod'\nimport { zChartType } from './properties/chartType'\nimport { zDataset } from './properties/dataset'\nimport { zDimensionTree } from './properties/dimensions'\nimport { zMeasureTree } from './properties/measures'\nimport { zEncoding } from './properties/encoding/encoding'\nimport { zDatasetReshapeInfo } from './properties/datasetReshapeInfo/datasetReshapeInfo'\nimport { zTheme, zCustomThemeConfig } from './properties/theme'\nimport { zConfig } from './properties/config'\nimport { zAnalysis, zAnnotation, zMarkStyle } from './properties'\nimport { zLocale } from './i18n'\n\nexport const zAdvancedVSeed = z.object({\n chartType: zChartType,\n dataset: zDataset,\n datasetReshapeInfo: zDatasetReshapeInfo,\n dimensions: zDimensionTree,\n measures: zMeasureTree,\n encoding: zEncoding,\n config: zConfig,\n analysis: zAnalysis,\n theme: zTheme,\n markStyle: zMarkStyle,\n customTheme: zCustomThemeConfig,\n annotation: zAnnotation,\n locale: zLocale,\n})\n\nexport type AdvancedVSeed = z.infer<typeof zAdvancedVSeed>\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","execPipeline","pipeline","context","initialValue","result","prev","cur","buildAdvanced","builder","start","performance","Date","chartType","Error","Builder","e","console","end","buildSpec","advancedVSeed","build","spec","Intl","translateMap","value","segments","values","text","segment","index","translatedText","isNullish","locale","intl","i18n","getColorItems","datasetReshapeInfo","colorItems","unique","d","colorIdMap","getColorIdMap","vseed","advanced","customPipe","themeKey","initAdvancedVSeed","autoMeasures","measures","dataset","top100dataset","sample","item","undefined","measure","preorderTraverse","tree","callback","stack","node","stop","children","i","child","findMeasureById","id","findFirstMeasure","findAllMeasures","autoDimensions","dimensions","dim","records","tableConfig","config","pick","theme","customTheme","chartConfigTheme","chartConfig","mergedConfig","mergeDeep","clone","_k","Array","mergeArray","chartCustomTheme","arr","themeItem","isString","isNumber","isObjectType","merge","tableAdvancedPipeline","initTable","backgroundColor","isMeasure","isMeasureGroup","isMeasures","dimensionTreeToColumns","eachNode","columns","treeTreeToColumns","groupNode","field","title","props","createNumFormatter","format","type","ratio","symbol","thousandSeparator","prefix","suffix","fractionDigits","significantDigits","roundingMode","roundingPriority","numFormatterOptions","numFormatter","num","Number","typeSymbol","String","numStr","parts","autoNumFormatter","createFormatter","autoFormatter","measureTreeToColumns","fieldFormat","datum","autoFormat","isEmpty","formatter","bodyStyle","themeConfig","borderColor","fontColor","fontSize","hoverCellBgColor","hoverInlineColor","headerStyle","themConfig","frameStyle","selectionStyle","tableSpecPipeline","registerTable","autoPivotMeasures","findDimensionById","findFirstDimension","findAllDimensions","autoPivotDimensions","newDimensions","pivotTableConfig","pivotTableAdvancedPipeline","initPivotTable","pivotColumns","pivotRows","rows","pivotIndicators","rowHeaderStyle","cornerHeaderStyle","hoverCellColor","AggregationType","SortType","dataConfig","aggregationRules","pivotTableSpecPipeline","registerPivotTable","measureDepth","depth","Math","isTable","isPivotTable","isVTable","isVChart","isPivotChart","hasRowOrColumnDimension","dimension","hasMeasureGroup","autoMeasureGroup","newMeasures","currentGroup","createEmptyMeasureGroup","measureGroups","pivotAdapter","pivotPipeline","usePivotChart","FoldMeasureName","FoldMeasureId","FoldMeasureValue","FoldPrimaryMeasureValue","FoldSecondaryMeasureValue","UnfoldDimensionGroup","UnfoldDimensionGroupId","Separator","ORIGINAL_DATA","foldMeasures","measureId","measureName","measureValue","foldInfo","ids","j","omit","alias","unfoldDimensions","unfoldStartIndex","unfoldGroupName","unfoldGroupId","foldMeasureId","dimensionsSeparator","dimensionsToBeUnfolded","unfoldInfo","colorMap","colorName","generateDimGroupName","colorId","dimensionsToBeGrouped","unfoldZeroDimensions","emptyReshapeResult","dataReshapeFor2D1M0Name","options","foldMeasureName","foldMeasureValue","unfoldDimensionGroup","unfoldDimensionGroupId","foldedDataset","finalDataset","onlyOneMeasure","onlyOneDimension","dims","reshapeTo2D1M0Name","newDatasets","pivotReshapeTo2D1M0Name","commonDimensions","measureGroup","groupId","newSubDataset","reshapeInfo","encodingXY","xDimension","isZeroDimension","encoding","x","y","group","color","sortXBandAxis","sortAxis","xField","axisOrderResult","calcOrder","sortYBandAxis","yField","sortLegend","groupField","nameMap","pre","orderRes","itemNameOrId","sortConfig","order","orderBy","res","sort","a","b","aValue","bValue","lineConfig","columnConfig","pieConfig","areaConfig","areaPercentConfig","scatterConfig","barConfig","barParallelConfig","barPercentConfig","columnParallelConfig","columnPercentConfig","donutConfig","roseConfig","roseParallelConfig","funnelConfig","heatmapConfig","radarConfig","markStyle","annotation","lineAdvancedPipeline","initLine","baseConfig","colorScheme","colorMapping","mappingList","idMap","_","v","datasetXY","analysis","orderMapping","angle","fields","progressive","size","xBand","visible","label","tick","grid","line","labelAutoHide","labelAutoHideGap","labelAutoLimit","labelAutoLimitLength","labelAutoRotate","labelAutoRotateAngleRange","sampling","bandAxis","ANNOTATION_Z_INDEX","LINEAR_AXIS_INNER_OFFSET_TOP","yLinear","zero","nice","inverse","max","min","log","logBase","linearAxis","enable","formatValue","tooltip","groupName","verticalCrosshairLine","lineColor","labelColor","labelVisible","labelBackgroundColor","crosshair","discreteLegend","legend","position","labelFontColor","labelFontSize","labelFontWeight","maxSize","border","shapeType","orient","legendPosition","items","selector","vchartDatum","selectorMode","vchartKeys","k","selectors","isValueSelector","isMeasureSelector","op","selectorValueArr","isDimensionSelector","isPartialDatumSelector","pointStyle","pointStyles","customMap","style","pointBorderColor","pointBorderStyle","pointBorderWidth","pointColor","pointColorOpacity","pointSize","lineDash","pointStateDimensionHover","point","pointStateHover","lineStyle","lineStyles","lineGroups","groupBy","lineColorOpacity","lineSmooth","lineWidth","dashSegment","dashGap","curveType","lineData","isSubset","sub","annotationPoint","annotationPointList","markPoint","selectorPoint","textColor","textFontSize","textFontWeight","textAlign","textBaseline","textBackgroundBorderColor","textBackgroundBorderRadius","textBackgroundBorderWidth","textBackgroundColor","textBackgroundPadding","textBackgroundVisible","offsetX","offsetY","selectedData","data","targetDatum","annotationVerticalLine","annotationVerticalLineList","positionMap","markLine","xValue","textPosition","lineVisible","generateOneMarkLine","isArray","xValueArr","specMarkLine","newMarkLine","annotationHorizontalLine","yValue","yValueArr","annotationArea","annotationAreaList","markArea","areaColor","areaColorOpacity","areaBorderColor","areaBorderRadius","areaBorderWidth","outerPadding","labelPosition","isBottom","positionData","xyList","yAxisHelper","xAxisHelper","yScale","minX","maxX","minY","maxY","xScale","initPivot","pivotGridStyle","transparent","hoverBackgroundColor","chartPipeline","indicators","newEncoding","newDatasetReshapeInfo","newContext","chartSpec","pivotIndicatorsAsRow","pivotIndicatorsAsCol","datasetPivot","pivotRowDimensions","rowDimensions","pivotColumnDimensions","columnDimensions","pivotDiscreteLegend","legends","pivotLine","lineSpecPipeline","registerLine","dataReshapeFor2D1M","reshapeTo2D1M","pivotReshapeTo2D1M","columnAdvancedPipeline","initColumn","stackCornerRadius","stackInverse","verticalCrosshairRect","rectColor","barStyle","showStroke","barStyles","barBorderColor","barBorderStyle","barBorderWidth","barColor","barColorOpacity","barRadius","annotationAreaBand","xBandWidth","yBandWidth","column","pivotColumn","columnSpecPipeline","registerColumn","columnParallelAdvancedPipeline","initColumnParallel","columnParallel","pivotColumnParallel","columnParallelSpecPipeline","registerColumnParallel","columnPercentAdvancedPipeline","percent","columnPercent","pivotColumnPercent","columnPercentSpecPipeline","registerColumnPercent","encodingYX","yDimension","barAdvancedPipeline","initBar","datasetYX","xLinear","yBand","horizontalCrosshairRect","bar","pivotBar","barSpecPipeline","registerBar","barParallelAdvancedPipeline","initBarParallel","barParallel","pivotBarParallel","barParallelSpecPipeline","registerBarParallel","barPercentAdvancedPipeline","barPercent","pivotBarPercent","barPercentSpecPipeline","registerBarPercent","areaAdvancedPipeline","initArea","areaStyle","areaStyles","area","pivotArea","areaSpecPipeline","registerArea","areaPercentAdvancedPipeline","areaPercent","pivotAreaPercent","areaPercentSpecPipeline","registerAreaPercent","autoMeasuresBy2M1Group","auto2M1Group","allMeasures","groups","singleMeasures","dataReshapeFor1D","reshapeTo1D","pivotReshapeTo1D","encodingAreaRange","m1","m2","areaRangeAdvancedPipeline","series","args","seriesDualAxis","createDualContext","seriesContext","initAreaRange","initAreaRangeLine1","initAreaRangeLine2","tooltipDisable","tooltipAreaRange","areaRange","pivotAreaRange","areaRangeSpecPipeline","registerAreaRange","dataReshapeFor1D2M","reshapeTo1D2M","pivotReshapeTo1D2M","encodingYY","firstMeasure","scatterAdvancedPipeline","initScatter","horizontalCrosshairLine","scatter","pivotScatter","scatterSpecPipeline","registerScatter","reshapeTo2D2M","datasets","foldInfoList","unfoldInfoList","primaryMeasures","secondaryMeasures","pivotReshapeTo2D2M","datasetList","encodingXYY","dualAxisConfig","autoDualMeasures","dualMeasures","dualMeasuresToMeasureTree","measureTree","groupChildren","arrPrimaryMeasures","arrSecondaryMeasures","dualAxisAdvancedPipeline","initDualAxisPrimary","initDualAxisSecondary","dualChartTypePrimary","primary","columnSpec","dualChartTypeSecondary","secondary","datasetPrimary","datasetSecondary","labelPrimary","labelSecondary","tooltipPrimary","tooltipSecondary","yLinearPrimary","primaryYAxis","seriesId","yLinearSecondary","secondaryYAxis","dualAxis","pivotDualAxis","dualAxisSpecPipeline","registerDualAxis","dataReshapeFor1D1M","reshapeTo1D1M","pivotReshapeTo1D1M","encodingPie","radius","pieAdvancedPipeline","initPie","pie","pivotPie","pieSpecPipeline","registerPie","donutAdvancedPipeline","initDonut","donut","pivotDonut","donutSpecPipeline","registerDonut","encodingRose","angleDimension","is1D1M","roseAdvancedPipeline","initRose","hasNegativeValue","radiusAxis","is0D","is1M1D","showAxis","angleAxis","rose","pivotRose","roseSpecPipeline","registerRose","roseParallelAdvancedPipeline","initRoseParallel","roseParallel","pivotRoseParallel","roseParallelSpecPipeline","registerRoseParallel","encodingAR","radarAdvancedPipeline","initRadar","radarAngleAxis","radarRadiusAxis","radar","pivotRadar","radarSpecPipeline","registerRadar","encodingFunnel","funnelAdvancedPipeline","initFunnel","linearColor","colorLegend","funnel","pivotFunnel","funnelSpecPipeline","registerFunnel","encodingMatrix","heatmapAdvancedPipeline","labelColorInversion","initHeatmap","heatmap","pivotHeatmap","heatmapSpecPipeline","registerHeatmap","lightTheme","barBandAxis","crosshairLine","crosshairRect","darkTheme","registerCustomTheme","registerLightTheme","registerDarkTheme","registerAll","updateAdvanced","advancedPipe","updateSpec","specPipe","isDimension","isDimensionGroup","isDimensions","zChartType","z","zDualChartType","zDatum","zDataset","zDimension","zDimensionGroup","zDimensions","zDimensionTree","zNumFormat","zMeasure","zMeasureGroup","zMeasures","zMeasureTree","zDualMeasure","zDualMeasures","zFoldInfo","zUnfoldInfo","zDatasetReshapeInfo","zEncoding","zXBandAxis","zYBandAxis","zXLinearAxis","zYLinearAxis","zCrosshairLine","zCrosshairRect","zStackCornerRadius","zBackgroundColor","zColor","zLinearColor","zLabel","zLegend","zColorLegend","zTooltip","zTableConfig","zPivotTableConfig","zLineConfig","zColumnConfig","zColumnParallelConfig","zColumnPercentConfig","zBarConfig","zBarParallelConfig","zBarPercentConfig","zAreaConfig","zAreaPercentConfig","zAreaRangeConfig","zDualAxisConfig","zScatterConfig","zRoseConfig","zRoseParallelConfig","zPieConfig","zDonutConfig","zRadarConfig","zFunnelConfig","zHeatmapConfig","zConfig","zAxis","zCustomThemeConfig","zCustomTheme","zTheme","zSelector","zSelectors","zBarStyle","zPointStyle","zLineStyle","zAreaStyle","zMarkStyle","zAnnotationPoint","zAnnotationVerticalLine","zAnnotationHorizontalLine","zAnnotationArea","zAnnotation","zSort","zSortLegend","zAnalysis","zLocale","zTable","zPivotTable","zLine","zColumn","zColumnParallel","zColumnPercent","zBar","zBarParallel","zBarPercent","zArea","zAreaPercent","zAreaRange","zScatter","zDualAxis","zRose","zRoseParallel","zPie","zDonut","zRadar","zFunnel","zHeatmap","zVSeed","zAdvancedVSeed"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["webpack://@visactor/vseed/webpack/runtime/define_property_getters","webpack://@visactor/vseed/webpack/runtime/has_own_property","webpack://@visactor/vseed/webpack/runtime/make_namespace_object","webpack://@visactor/vseed/./src/pipeline/utils/pipeline.ts","webpack://@visactor/vseed/./src/builder/builder/buildAdvanced.ts","webpack://@visactor/vseed/./src/builder/builder/buildSpec.ts","webpack://@visactor/vseed/./src/builder/builder/build.ts","webpack://@visactor/vseed/./src/i18n/i18n.ts","webpack://@visactor/vseed/./src/builder/builder/advanced/colorItems.ts","webpack://@visactor/vseed/./src/builder/builder/builder.ts","webpack://@visactor/vseed/./src/pipeline/advanced/table/pipes/init/initAdvancedVSeed.ts","webpack://@visactor/vseed/./src/pipeline/advanced/table/pipes/init/autoMeasures.ts","webpack://@visactor/vseed/./src/pipeline/utils/tree/traverse.ts","webpack://@visactor/vseed/./src/pipeline/utils/measures/find.ts","webpack://@visactor/vseed/./src/pipeline/advanced/table/pipes/init/autoDimensions.ts","webpack://@visactor/vseed/./src/pipeline/advanced/table/pipes/records/records.ts","webpack://@visactor/vseed/./src/pipeline/advanced/table/pipes/config/tableConfig.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/theme/theme.ts","webpack://@visactor/vseed/./src/pipeline/advanced/table/pipeline/table.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/init/table.ts","webpack://@visactor/vseed/./src/pipeline/utils/measures/typeGuard.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/columns/dimensionsToColumns.ts","webpack://@visactor/vseed/./src/pipeline/utils/format/createNumFormatter.ts","webpack://@visactor/vseed/./src/pipeline/utils/format/createFormatter.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/columns/measuresToColumns.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/theme/bodyStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/theme/headerStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/theme/frameStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/theme/selectionStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipeline/table.ts","webpack://@visactor/vseed/./src/builder/register/chartType/table.ts","webpack://@visactor/vseed/./src/pipeline/advanced/table/pipes/init/autoPivotMeasures.ts","webpack://@visactor/vseed/./src/pipeline/utils/dimensions/find.ts","webpack://@visactor/vseed/./src/pipeline/advanced/table/pipes/init/autoPivotDimensions.ts","webpack://@visactor/vseed/./src/pipeline/advanced/table/pipes/config/pivotTableConfig.ts","webpack://@visactor/vseed/./src/pipeline/advanced/table/pipeline/pivotTable.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/init/pivotTable.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/columns/pivotColumns.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/rows/pivotRows.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/indicators/pivotIndicators.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/theme/rowHeaderStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/theme/cornerHeaderStyle.ts","webpack://@visactor/vseed/../../node_modules/.pnpm/@visactor+vtable@1.19.7/node_modules/@visactor/vtable/es/ts-types/new-data-set.js","webpack://@visactor/vseed/./src/pipeline/spec/table/pipes/indicators/pivotDataConfig.ts","webpack://@visactor/vseed/./src/pipeline/spec/table/pipeline/pivotTable.ts","webpack://@visactor/vseed/./src/builder/register/chartType/pivotTable.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/init/initAdvancedVSeed.ts","webpack://@visactor/vseed/./src/pipeline/utils/measures/depth.ts","webpack://@visactor/vseed/./src/pipeline/utils/chatType.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/init/autoMeasures.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/init/autoDimensions.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/pivot/pivotAdapter.ts","webpack://@visactor/vseed/./src/dataReshape/constant.ts","webpack://@visactor/vseed/./src/dataReshape/foldMeasures.ts","webpack://@visactor/vseed/./src/dataReshape/unfoldDimensions.ts","webpack://@visactor/vseed/./src/dataReshape/unfoldZeroDimensions.ts","webpack://@visactor/vseed/./src/dataReshape/dataReshapeFor2D1M0Name.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeTo2D1M0Name.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeTo2D1M0Name.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/encodingXY.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/analysis/sort.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/config.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/markStyle/markStyle.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/annotation/annotation.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/line.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/line.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/color/color.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/backgroundColor/background.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/dataset/datasetXY.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/dataset/progressive.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/xBand.ts","webpack://@visactor/vseed/./src/pipeline/utils/constant.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/yLinear.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/label/label.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltip.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/crosshair/verticalCrosshairLine.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/legend/discreteLegend.ts","webpack://@visactor/vseed/./src/dataSelector/selector.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/markStyle/pointStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/markStyle/pointState.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/markStyle/lineStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/annotation/utils.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/annotation/annotationPoint.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/annotation/annotationVerticalLine.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/annotation/annotationHorizontalLine.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/annotation/annotationArea.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/pivot.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/pivotChart/pivotGridStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/pivotChart/pivotIndicators.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/dataset/datasetPivot.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/pivotChart/pivotRowDimensions.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/pivotChart/pivotColumnDimensions.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/legend/pivotDiscreteLegend.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/pivotChart/pivotAdapter.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/line.ts","webpack://@visactor/vseed/./src/builder/register/chartType/line.ts","webpack://@visactor/vseed/./src/dataReshape/dataReshapeFor2D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeTo2D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeTo2D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/column.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/column.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/stack/stackCornerRadius.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/stack/stack.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/crosshair/verticalCrosshairRect.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/markStyle/barStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/annotation/annotationAreaBand.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/column.ts","webpack://@visactor/vseed/./src/builder/register/chartType/column.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/columnParallel.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/columnParallel.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/columnParallel.ts","webpack://@visactor/vseed/./src/builder/register/chartType/columnParallel.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/columnPercent.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/percent/percent.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/columnPercent.ts","webpack://@visactor/vseed/./src/builder/register/chartType/columnPercent.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/encodingYX.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/bar.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/bar.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/dataset/datasetYX.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/xLinear.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/yBand.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/crosshair/horizontalCrosshairRect.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/bar.ts","webpack://@visactor/vseed/./src/builder/register/chartType/bar.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/barParallel.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/barParallel.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/barParallel.ts","webpack://@visactor/vseed/./src/builder/register/chartType/barParallel.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/barPercent.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/barPercent.ts","webpack://@visactor/vseed/./src/builder/register/chartType/barPercent.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/area.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/area.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/markStyle/areaStyle.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/area.ts","webpack://@visactor/vseed/./src/builder/register/chartType/area.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/areaPercent.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/areaPercent.ts","webpack://@visactor/vseed/./src/builder/register/chartType/areaPercent.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/init/autoMeasuresBy2M1Group.ts","webpack://@visactor/vseed/./src/dataReshape/dataReshapeFor1D.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeTo1D.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeTo1D.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/encodingAreaRange.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/areaRange.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/series/series.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/areaRange.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltipDisable.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltipAreaRange.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/areaRange.ts","webpack://@visactor/vseed/./src/builder/register/chartType/areaRange.ts","webpack://@visactor/vseed/./src/dataReshape/dataReshapeFor1D2M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeTo1D2M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeTo1D2M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/encodingYY.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/scatter.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/scatter.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/crosshair/horizontalCrosshairLine.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/scatter.ts","webpack://@visactor/vseed/./src/builder/register/chartType/scatter.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeTo2D2M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeTo2D2M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/encodingXYY.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/config/dualAxis.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/init/autoDualMeasures.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/dualAxis.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/initDualAxis.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/dual/dualChartType.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/dataset/datasetDualAxis.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/label/labelDualAxis.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/yLinearPrimary.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/yLinearSecondary.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/dualAxis.ts","webpack://@visactor/vseed/./src/builder/register/chartType/dualAxis.ts","webpack://@visactor/vseed/./src/dataReshape/dataReshapeFor1D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/reshapeTo1D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/reshape/pivotReshapeTo1D1M.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/encodingPie.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/pie.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/pie.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/pie.ts","webpack://@visactor/vseed/./src/builder/register/chartType/pie.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/donut.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/donut.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/donut.ts","webpack://@visactor/vseed/./src/builder/register/chartType/donut.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/encodingRose.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/rose.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/rose.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/radius.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/angle.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/rose.ts","webpack://@visactor/vseed/./src/builder/register/chartType/rose.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/roseParallel.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/roseParallel.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/roseParallel.ts","webpack://@visactor/vseed/./src/builder/register/chartType/roseParallel.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/encodingAR.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/radar.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/radar.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/radarAngle.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/axes/radarRadius.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/radar.ts","webpack://@visactor/vseed/./src/builder/register/chartType/radar.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/encodingFunnel.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/funnel.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/funnel.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/color/linearColor.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/legend/colorLegend.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/funnel.ts","webpack://@visactor/vseed/./src/builder/register/chartType/funnel.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipes/encoding/encodingMatrix.ts","webpack://@visactor/vseed/./src/pipeline/advanced/chart/pipeline/heatmap.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/label/labelColorInversion.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipes/init/heatmap.ts","webpack://@visactor/vseed/./src/pipeline/spec/chart/pipeline/heatmap.ts","webpack://@visactor/vseed/./src/builder/register/chartType/heatmap.ts","webpack://@visactor/vseed/./src/theme/light.ts","webpack://@visactor/vseed/./src/theme/dark.ts","webpack://@visactor/vseed/./src/builder/register/theme/custom.ts","webpack://@visactor/vseed/./src/builder/register/theme/light.ts","webpack://@visactor/vseed/./src/builder/register/theme/dark.ts","webpack://@visactor/vseed/./src/builder/register/all.ts","webpack://@visactor/vseed/./src/builder/register/custom.ts","webpack://@visactor/vseed/./src/pipeline/utils/dimensions/typeGuard.ts","webpack://@visactor/vseed/./src/types/properties/chartType/chartType.ts","webpack://@visactor/vseed/./src/types/properties/chartType/dualChartType.ts","webpack://@visactor/vseed/./src/types/properties/dataset/dataset.ts","webpack://@visactor/vseed/./src/types/properties/dimensions/zDimensions.ts","webpack://@visactor/vseed/./src/types/properties/measures/format/numFormat.ts","webpack://@visactor/vseed/./src/types/properties/measures/zMeasures.ts","webpack://@visactor/vseed/./src/types/properties/measures/zDualMeasures.ts","webpack://@visactor/vseed/./src/types/properties/datasetReshapeInfo/datasetReshapeInfo.ts","webpack://@visactor/vseed/./src/types/properties/encoding/encoding.ts","webpack://@visactor/vseed/./src/types/properties/config/axes/bandAxis.ts","webpack://@visactor/vseed/./src/types/properties/config/axes/linearAxis.ts","webpack://@visactor/vseed/./src/types/properties/config/crosshair/zCrosshair.ts","webpack://@visactor/vseed/./src/types/properties/config/stackCornerRadius/stackCornerRadius.ts","webpack://@visactor/vseed/./src/types/properties/config/backgroundColor/backgroundColor.ts","webpack://@visactor/vseed/./src/types/properties/config/color/color.ts","webpack://@visactor/vseed/./src/types/properties/config/label/label.ts","webpack://@visactor/vseed/./src/types/properties/config/legend/legend.ts","webpack://@visactor/vseed/./src/types/properties/config/tooltip/tooltip.ts","webpack://@visactor/vseed/./src/types/properties/config/config.ts","webpack://@visactor/vseed/./src/types/properties/config/axes/axis.ts","webpack://@visactor/vseed/./src/types/properties/theme/customTheme.ts","webpack://@visactor/vseed/./src/types/properties/theme/theme.ts","webpack://@visactor/vseed/./src/types/dataSelector/selector.ts","webpack://@visactor/vseed/./src/types/properties/markStyle/barStyle.ts","webpack://@visactor/vseed/./src/types/properties/markStyle/pointStyle.ts","webpack://@visactor/vseed/./src/types/properties/markStyle/lineStyle.ts","webpack://@visactor/vseed/./src/types/properties/markStyle/areaStyle.ts","webpack://@visactor/vseed/./src/types/properties/markStyle/markStyle.ts","webpack://@visactor/vseed/./src/types/properties/annotation/zAnnotationPoint.ts","webpack://@visactor/vseed/./src/types/properties/annotation/zAnnotationVerticalLine.ts","webpack://@visactor/vseed/./src/types/properties/annotation/zAnnotationHorizontalLine.ts","webpack://@visactor/vseed/./src/types/properties/annotation/zAnnotationArea.ts","webpack://@visactor/vseed/./src/types/properties/annotation/annotation.ts","webpack://@visactor/vseed/./src/types/properties/analysis/sort.ts","webpack://@visactor/vseed/./src/types/properties/analysis/sortLegend.ts","webpack://@visactor/vseed/./src/types/properties/analysis/analysis.ts","webpack://@visactor/vseed/./src/types/i18n/i18n.ts","webpack://@visactor/vseed/./src/types/chartType/table/zTable.ts","webpack://@visactor/vseed/./src/types/chartType/pivotTable/zPivotTable.ts","webpack://@visactor/vseed/./src/types/chartType/line/zLine.ts","webpack://@visactor/vseed/./src/types/chartType/column/zColumn.ts","webpack://@visactor/vseed/./src/types/chartType/columnParallel/zColumnParallel.ts","webpack://@visactor/vseed/./src/types/chartType/columnPercent/zColumnPercent.ts","webpack://@visactor/vseed/./src/types/chartType/bar/zBar.ts","webpack://@visactor/vseed/./src/types/chartType/barParallel/zBarParallel.ts","webpack://@visactor/vseed/./src/types/chartType/barPercent/zBarPercent.ts","webpack://@visactor/vseed/./src/types/chartType/area/zArea.ts","webpack://@visactor/vseed/./src/types/chartType/areaPercent/zAreaPercent.ts","webpack://@visactor/vseed/./src/types/chartType/areaRange/zAreaRange.ts","webpack://@visactor/vseed/./src/types/chartType/scatter/zScatter.ts","webpack://@visactor/vseed/./src/types/chartType/dualAxis/zDualAxis.ts","webpack://@visactor/vseed/./src/types/chartType/rose/zRose.ts","webpack://@visactor/vseed/./src/types/chartType/roseParallel/zRoseParallel.ts","webpack://@visactor/vseed/./src/types/chartType/pie/zPie.ts","webpack://@visactor/vseed/./src/types/chartType/donut/zDonut.ts","webpack://@visactor/vseed/./src/types/chartType/radar/zRadar.ts","webpack://@visactor/vseed/./src/types/chartType/funnel/zFunnel.ts","webpack://@visactor/vseed/./src/types/chartType/heatmap/zHeatmap.ts","webpack://@visactor/vseed/./src/types/vseed.ts","webpack://@visactor/vseed/./src/types/advancedVSeed.ts"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import type { ExecPipelineType, Pipe } from 'src/types'\n\n/**\n * 执行pipeline, 每个pipe负责构建结果的一部分, 构建完成后得到完整的目标结果\n * @param pipeline pipeline数组, 每个pipe负责构建结果的一部分\n * @param initialValue 初始值\n * @param context 上下文\n * @returns 执行后的结果\n */\nexport const execPipeline: ExecPipelineType = <T, U>(\n pipeline: Array<Pipe<T, U>>,\n context: U,\n initialValue: Partial<T> = {},\n): T => {\n const result = pipeline.reduce((prev, cur) => {\n return cur(prev, context)\n }, initialValue)\n return result as T\n}\n","import type { AdvancedPipelineContext, AdvancedVSeed } from 'src/types'\nimport { execPipeline } from '../../pipeline'\nimport { Builder } from './builder'\n\nexport const buildAdvanced = (builder: Builder): AdvancedVSeed | null => {\n const start = typeof performance !== 'undefined' ? performance.now() : Date.now()\n const { chartType } = builder.vseed\n if (!chartType) {\n throw new Error('chartType is nil in buildAdvanced')\n }\n\n const pipeline = Builder.getAdvancedPipeline(chartType)\n if (!pipeline) {\n throw new Error(`no advanced pipeline for chartType ${chartType}`)\n }\n\n const context: AdvancedPipelineContext = {\n vseed: builder.vseed,\n customTheme: Builder.getThemeMap(),\n }\n\n try {\n return execPipeline<AdvancedVSeed, AdvancedPipelineContext>(pipeline, context)\n } catch (e) {\n console.error(e)\n throw new Error(`buildAdvanced error, see error info in console`)\n } finally {\n const end = typeof performance !== 'undefined' ? performance.now() : Date.now()\n builder.performance['buildAdvanced'] = `${(end - start).toFixed(4)}ms`\n }\n}\n","import type { Spec } from 'src/types'\nimport { Builder } from './builder'\nimport type { AdvancedVSeed, SpecPipelineContext } from 'src/types'\nimport { execPipeline } from '../../pipeline'\n\nexport const buildSpec = (builder: Builder, advancedVSeed: AdvancedVSeed): Spec => {\n const start = typeof performance !== 'undefined' ? performance.now() : Date.now()\n\n const { chartType } = builder.vseed\n if (!chartType) {\n throw new Error('chartType is nil in buildSpec')\n }\n\n const pipeline = Builder.getSpecPipeline(chartType)\n if (!pipeline) {\n throw new Error(`no spec pipeline for chartType ${chartType}`)\n }\n\n const context: SpecPipelineContext = {\n vseed: builder.vseed,\n advancedVSeed,\n }\n try {\n return execPipeline<Spec, SpecPipelineContext>(pipeline, context)\n } catch (e) {\n console.error(e)\n throw new Error(`buildSpec error, see error info in console`)\n } finally {\n const end = typeof performance !== 'undefined' ? performance.now() : Date.now()\n builder.performance['buildSpec'] = `${(end - start).toFixed(4)}ms`\n }\n}\n","import type { Spec } from 'src/types'\nimport type { Builder } from './builder'\n\nexport const build = (builder: Builder): Spec => {\n // console.log('debug vseed', builder.vseed)\n const advancedVSeed = builder.buildAdvanced()\n builder.advancedVSeed = advancedVSeed\n // console.log('debug advancedVSeed', advancedVSeed)\n if (!advancedVSeed) {\n throw new Error('advancedVSeed is null')\n }\n const spec = builder.buildSpec(advancedVSeed)\n builder.spec = spec\n // console.log('debug spec', spec)\n return spec\n}\n","import { isNullish } from 'remeda'\nimport translateMap from './i18n.json'\nimport type { Locale, TranslateRecordType } from '../types'\n\nclass Intl {\n private static instance: Intl\n\n private translateMap: TranslateRecordType = translateMap as unknown as TranslateRecordType\n private locale: Locale = 'zh-CN'\n\n canTranslate = (value: string) => !!this.translateMap[value]\n\n /**\n * @example i18n`指标名称`\n */\n i18n = (segments: TemplateStringsArray, ...values: Array<number | string>) => {\n const text = segments.map((segment, index) => segment + (values[index] || '')).join('')\n\n const translatedText = this.translateMap?.[text]?.[this.locale]\n if (isNullish(translatedText)) {\n console.warn(`i18n ${this.locale} no translate: ${text}`)\n return text\n }\n return translatedText\n }\n\n setLocale = (locale: Locale): void => {\n this.locale = locale\n }\n\n getLocale: () => Locale = () => this.locale\n\n public static getInstance() {\n if (!Intl.instance) {\n Intl.instance = new Intl()\n }\n\n return Intl.instance\n }\n}\n\nconst intl = Intl.getInstance()\n\nconst i18n = intl.i18n\n\nexport { intl, i18n }\n","import { unique } from 'remeda'\nimport type { Builder } from '../builder'\n\nexport const getColorItems = (builder: Builder): string[] => {\n const advancedVSeed = builder.advancedVSeed\n if (!advancedVSeed) {\n return []\n }\n\n const { datasetReshapeInfo } = advancedVSeed\n const colorItems = unique(datasetReshapeInfo.flatMap((d) => d.unfoldInfo.colorItems))\n const colorIdMap = datasetReshapeInfo.reduce<Record<string, string>>((prev, cur) => {\n return { ...prev, ...cur.unfoldInfo.colorIdMap }\n }, {})\n\n return colorItems.map((d) => colorIdMap[d])\n}\n\nexport const getColorIdMap = (builder: Builder): Record<string, string> => {\n const advancedVSeed = builder.advancedVSeed\n if (!advancedVSeed) {\n return {}\n }\n\n const { datasetReshapeInfo } = advancedVSeed\n const colorIdMap = datasetReshapeInfo.reduce<Record<string, string>>((prev, cur) => {\n return { ...prev, ...cur.unfoldInfo.colorIdMap }\n }, {})\n\n return colorIdMap\n}\n","import type {\n AdvancedPipe,\n AdvancedPipeline,\n AdvancedVSeed,\n ChartType,\n CustomThemeConfig,\n Spec,\n SpecPipe,\n SpecPipeline,\n VSeed,\n VSeedBuilder,\n} from 'src/types'\nimport { buildAdvanced } from './buildAdvanced'\nimport { buildSpec } from './buildSpec'\nimport { build } from './build'\nimport { intl } from 'src/i18n'\nimport { getColorIdMap, getColorItems } from './advanced'\n\nexport class Builder implements VSeedBuilder {\n private _vseed: VSeed\n private _advancedVSeed: AdvancedVSeed | null = null\n private _spec: Spec | null = null\n private _performance: Record<string, string | number> = {}\n\n constructor(vseed: VSeed) {\n this._vseed = vseed\n this._vseed.locale = vseed.locale || intl.getLocale()\n }\n\n /**\n * @description 构建spec\n * @returns spec\n */\n build = <T extends Spec>(): T => build(this) as T\n\n /**\n * @description 构建spec\n * @param advanced 高级配置\n * @returns spec\n */\n buildSpec = (advanced: AdvancedVSeed): Spec => buildSpec(this, advanced)\n\n /**\n * @description 构建spec\n * @returns AdvancedVSeed | null\n */\n buildAdvanced = (): AdvancedVSeed | null => buildAdvanced(this)\n\n /**\n * @description 获取颜色项, 颜色项可以重复,\n * @returns 颜色项\n */\n getColorItems = () => getColorItems(this)\n\n /**\n * @description 获取颜色id映射\n * @returns 颜色id映射\n */\n getColorIdMap = () => getColorIdMap(this)\n\n /**\n * @description 获取vseed\n * @returns vseed\n */\n get vseed() {\n return this._vseed\n }\n\n /**\n * @description 设置vseed\n * @param value vseed\n */\n set vseed(value) {\n this._vseed = value\n }\n\n /**\n * @description 获取advancedVSeed\n * @returns advancedVSeed\n */\n get advancedVSeed() {\n return this._advancedVSeed\n }\n\n /**\n *\n * @description 设置advancedVSeed\n * @param value advancedVSeed\n */\n set advancedVSeed(value) {\n this._advancedVSeed = value\n }\n\n /**\n * @description 获取spec\n * @returns spec\n */\n get spec() {\n return this._spec\n }\n\n /**\n * @description 设置spec\n * @param value spec\n */\n set spec(value) {\n this._spec = value\n }\n\n /**\n * @description 获取performance, 统计了构建spec和advancedVSeed的时间\n * @returns performance\n */\n get performance() {\n return this._performance\n }\n\n /**\n * @description 设置performance\n * @param value performance\n */\n set performance(value) {\n this._performance = value\n }\n\n /**\n * @description 获取advancedPipeline\n * @param chartType 图表类型\n * @returns advancedPipeline\n */\n static getAdvancedPipeline = (chartType: ChartType) => {\n const customPipe = Builder._customAdvancedPipe[chartType] as AdvancedPipe\n const pipeline = Builder._advancedPipelineMap[chartType] as AdvancedPipeline\n if (customPipe) {\n pipeline.push(customPipe)\n }\n return pipeline\n }\n\n /**\n * @description 获取specPipeline\n * @param chartType 图表类型\n * @returns specPipeline\n */\n\n static getSpecPipeline = (chartType: ChartType) => {\n const customPipe = Builder._customSpecPipe[chartType] as SpecPipe\n const pipeline = Builder._specPipelineMap[chartType] as SpecPipeline\n if (customPipe) {\n pipeline.push(customPipe)\n }\n return pipeline\n }\n\n /**\n * @description 根据主题key获取主题配置\n * @param themeKey 主题key\n * @example Builder.getTheme('light'), 获取浅色主题\n * @returns 主题配置\n */\n static getTheme = (themeKey: string) => Builder._themeMap[themeKey]\n\n /**\n * @description 获取主题配置映射表\n * @example Builder.getThemeMap()\n * @returns 主题配置映射表\n */\n static getThemeMap = () => Builder._themeMap\n\n /**\n * @description 从vseed创建builder\n * @param vseed 完整的vseed DSL\n * @returns builder\n */\n static from = (vseed: VSeed) => new Builder(vseed)\n\n static _advancedPipelineMap: Partial<Record<ChartType, AdvancedPipeline>> = {}\n static _specPipelineMap: Partial<Record<ChartType, SpecPipeline>> = {}\n static _customAdvancedPipe: Partial<Record<ChartType, AdvancedPipe>> = {}\n static _customSpecPipe: Partial<Record<ChartType, SpecPipe>> = {}\n static _themeMap: Record<string, CustomThemeConfig> = {}\n}\n","import type { AdvancedPipe, AdvancedVSeed } from 'src/types'\n\nexport const initAdvancedVSeed: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType, locale } = vseed\n return {\n ...advancedVSeed,\n chartType,\n locale: locale || 'zh-CN',\n } as AdvancedVSeed\n}\n","import type { AdvancedPipe, Datum, MeasureTree } from 'src/types'\n\nexport const autoMeasures: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { measures, dataset } = vseed\n\n if (!dataset) {\n throw new Error('dataset is required')\n }\n\n if (dataset.length === 0) {\n return result\n }\n\n if (measures) {\n result.measures = measures as MeasureTree\n return result\n }\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n result.measures = Object.keys(sample)\n .filter((key) => {\n return top100dataset.some((item) => typeof item[key] === 'number') && !['', null, undefined].includes(key)\n })\n .map((measure) => ({\n id: measure,\n alias: measure,\n }))\n\n return result\n}\n","/**\n * 支持泛型的非递归前序遍历\n * @param tree 根节点数组\n * @param callback 遍历时对每个节点执行的回调,返回 true 时停止遍历\n */\nexport const preorderTraverse = <T extends { id: string }, U extends { id: string; children?: (T | U)[] }>(\n tree: (T | U)[],\n callback: (node: T | U) => boolean,\n) => {\n if (!tree || tree.length === 0) return\n\n const stack: (T | U)[] = [...tree].reverse()\n\n while (stack.length > 0) {\n const node = stack.pop()!\n const stop = callback(node)\n if (stop === true) {\n return\n }\n if (!('children' in node)) {\n continue\n }\n const children = node.children\n if (children && children.length > 0) {\n for (let i = children.length - 1; i >= 0; i--) {\n const child = children[i]\n stack.push(child)\n }\n }\n }\n}\n","import type { Measure, MeasureGroup, MeasureTree } from 'src/types'\nimport { preorderTraverse } from '../tree'\n\nexport const findMeasureById = (measures: MeasureTree = [], id: string): Measure | undefined => {\n if (!measures) return undefined\n let result: Measure | undefined\n preorderTraverse<Measure, MeasureGroup>(measures, (node) => {\n if (!('children' in node)) {\n if (node.id === id) {\n result = node as Measure\n return true\n }\n }\n return false\n })\n return result\n}\n\nexport const findFirstMeasure = (measures: MeasureTree = []): Measure | undefined => {\n if (!measures) return undefined\n let result: Measure | undefined\n preorderTraverse<Measure, MeasureGroup>(measures, (node) => {\n if (!('children' in node)) {\n result = node as Measure\n return true\n }\n return false\n })\n return result\n}\n\nexport const findAllMeasures = (measures: MeasureTree = []): Measure[] => {\n if (!measures) return []\n const result: Measure[] = []\n preorderTraverse<Measure, MeasureGroup>(measures, (node) => {\n if (!('children' in node)) {\n result.push(node as Measure)\n }\n return false\n })\n return result\n}\n","import { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Datum } from 'src/types'\n\nexport const autoDimensions: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dimensions, dataset } = vseed\n\n const measures = findAllMeasures(advancedVSeed.measures)\n\n if (!dataset) {\n throw new Error('dataset is required')\n }\n\n if (dataset.length === 0) {\n return result\n }\n\n if (dimensions) {\n result.dimensions = dimensions.map((dim) => ({\n location: 'dimension',\n ...dim,\n }))\n return result\n }\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n result.dimensions = Object.keys(sample)\n .filter(\n (key) =>\n top100dataset.some((item) => typeof item[key] === 'string') &&\n !['', null, undefined].includes(key) &&\n !measures.some((measure) => measure.id === key),\n )\n .map((dim) => ({\n id: dim,\n alias: dim,\n location: 'dimension',\n }))\n\n return result\n}\n","import type { AdvancedPipe } from 'src/types'\n\nexport const records: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { dataset } = vseed\n return {\n ...advancedVSeed,\n dataset,\n }\n}\n","import { pick } from 'remeda'\nimport type { AdvancedPipe, Config } from 'src/types'\n\nexport const tableConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const config = pick(vseed, [\n 'backgroundColor',\n 'bodyFontSize',\n 'bodyFontColor',\n 'bodyBackgroundColor',\n 'headerFontSize',\n 'headerFontColor',\n 'headerBackgroundColor',\n 'hoverHeaderBackgroundColor',\n 'hoverHeaderInlineBackgroundColor',\n 'selectedBorderColor',\n 'selectedBackgroundColor',\n ]) as Config['pivotTable']\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result\n}\n","import { clone, isNullish, isNumber, isObjectType, isString, merge, mergeDeep } from 'remeda'\nimport type { AdvancedPipe, AdvancedVSeed } from 'src/types'\n\nexport const theme: AdvancedPipe = (advancedVSeed, context) => {\n const { customTheme, vseed } = context\n const { theme = 'light', chartType } = vseed\n const result = {\n ...advancedVSeed,\n } as AdvancedVSeed\n\n if (!customTheme || !customTheme[theme]) {\n return result\n }\n\n const chartConfigTheme = customTheme?.[theme].config?.[chartType]\n if (chartConfigTheme) {\n const chartConfig = result.config?.[chartType] || {}\n const mergedConfig = mergeDeep(chartConfigTheme, clone(chartConfig))\n\n // 数组项不会被Merge, 需要将1个主题配置, 合并到数组的每一项\n for (const _k in mergedConfig) {\n const key = _k as keyof typeof mergedConfig\n // 配置的第一层, 如果是数组, 则数组的每一项目和主题配置合并\n if (Array.isArray(mergedConfig[key])) {\n mergedConfig[key] = mergeArray(mergedConfig[key], chartConfigTheme[key])\n }\n }\n\n result.config = {\n [chartType]: mergedConfig,\n }\n }\n\n const chartCustomTheme = customTheme?.[theme]?.config?.[chartType]\n\n result.customTheme = {\n config: {\n [chartType]: chartCustomTheme,\n },\n }\n\n return result\n}\n\nconst mergeArray = <Destination extends Array<object>, Source extends object | number | string | undefined | null>(\n arr: Destination,\n themeItem: Source,\n): Destination => {\n if (isNullish(themeItem) || isString(themeItem) || isNumber(themeItem)) {\n return arr\n }\n\n if (!Array.isArray(arr)) {\n return arr\n }\n\n if (arr.some((d) => !isObjectType(d))) {\n return arr\n }\n\n return arr.map((item) => {\n return merge(themeItem, item)\n }) as Destination\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport { initAdvancedVSeed, autoDimensions, autoMeasures, records, tableConfig } from '../pipes'\nimport { theme } from '../../chart/pipes'\n\nexport const tableAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n records,\n tableConfig,\n theme,\n]\n","import type { ListTableConstructorOptions } from '@visactor/vtable'\nimport type { SpecPipe } from 'src/types'\n\nexport const initTable: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { dataset } = advancedVSeed\n const { config } = advancedVSeed\n const { backgroundColor = 'transparent' } = config.table || {}\n\n return {\n ...spec,\n records: dataset,\n widthMode: 'standard',\n heightMode: 'autoHeight',\n autoWrapText: true,\n columnResizeMode: 'all',\n showHeader: true,\n tooltip: {\n isShowOverflowTextTooltip: true,\n },\n animationAppear: {\n duration: 300,\n delay: 250,\n type: 'one-by-one',\n direction: 'row',\n },\n hover: {\n highlightMode: 'row',\n },\n theme: {\n underlayBackgroundColor: backgroundColor,\n },\n } as ListTableConstructorOptions\n}\n","import type { Measure, MeasureGroup } from 'src/types'\n\nexport const isMeasure = (measure: Measure | MeasureGroup): measure is Measure => {\n return !('children' in measure)\n}\n\nexport const isMeasureGroup = (measure: Measure | MeasureGroup): measure is MeasureGroup => {\n return 'children' in measure\n}\n\nexport const isMeasures = (measures: Measure[] | MeasureGroup[]): measures is Measure[] => {\n return measures.every(isMeasure)\n}\n","import type { ColumnsDefine, ListTableConstructorOptions } from '@visactor/vtable'\nimport { isMeasure } from 'src/pipeline/utils'\nimport type { Dimension, DimensionGroup, DimensionTree, SpecPipe } from 'src/types'\n\nexport const dimensionTreeToColumns: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const dimensions = (advancedVSeed as unknown as { dimensions: DimensionTree }).dimensions\n const result = { ...spec } as ListTableConstructorOptions\n const eachNode = (node: Dimension | DimensionGroup) => {\n if (isMeasure(node)) {\n return {\n width: 'auto',\n }\n }\n\n return {}\n }\n const columns = treeTreeToColumns<Dimension, DimensionGroup>(dimensions, eachNode)\n\n return {\n ...result,\n columns: [...(result.columns || []), ...columns] as ListTableConstructorOptions['columns'],\n }\n}\n\nconst treeTreeToColumns = <\n T extends { id: string; alias?: string },\n U extends { id: string; alias?: string; children?: (T | U)[] },\n>(\n tree: (T | U)[],\n callback?: (node: T | U) => object,\n): ColumnsDefine[] => {\n const result = tree.map((item) => {\n if ('children' in item && Array.isArray(item.children)) {\n const groupNode = item as unknown as U\n const field = groupNode.id\n const title = groupNode.alias ?? groupNode.id\n const props = callback?.(groupNode) || {}\n // group\n return {\n field,\n title,\n columns: treeTreeToColumns(item.children, callback),\n ...props,\n }\n } else {\n const field = item.id\n const title = item.alias ?? item.id\n const props = callback?.(item) || {}\n // leaf\n return {\n field,\n title,\n ...props,\n }\n }\n }) as unknown as ColumnsDefine[]\n\n return result || []\n}\n","import { isNumber } from 'remeda'\nimport { intl } from '../../../i18n'\nimport type { Formatter, Locale, NumFormat } from 'src/types'\n\nexport const createNumFormatter = (format: NumFormat, locale: Locale = intl.getLocale()): Formatter => {\n const {\n type = 'number',\n ratio = 1,\n symbol = '',\n thousandSeparator = true,\n prefix = '',\n suffix = '',\n\n fractionDigits = 2,\n significantDigits,\n roundingMode = 'halfExpand',\n roundingPriority = 'auto',\n } = format || {}\n\n const numFormatterOptions: Intl.NumberFormatOptions = {\n style: 'decimal',\n notation: type === 'scientific' ? 'scientific' : 'standard',\n // @ts-expect-error roundingMode is not in NumberFormatOptions\n roundingMode,\n roundingPriority,\n }\n\n if (isNumber(fractionDigits)) {\n if (fractionDigits >= 0) {\n numFormatterOptions.minimumFractionDigits = fractionDigits\n numFormatterOptions.maximumFractionDigits = fractionDigits\n }\n }\n if (isNumber(significantDigits) && significantDigits > 0) {\n if (significantDigits > 0) {\n numFormatterOptions.minimumSignificantDigits = significantDigits\n numFormatterOptions.maximumSignificantDigits = significantDigits\n }\n }\n\n const numFormatter = new Intl.NumberFormat(locale, numFormatterOptions)\n\n return (value?: number | string) => {\n let num = Number(value)\n let typeSymbol = ''\n if (Number.isNaN(num)) {\n return String(value)\n }\n\n // apply ratio for percent/permille\n if (type === 'percent') {\n num *= 100\n typeSymbol = '%'\n } else if (type === 'permille') {\n num *= 1000\n typeSymbol = '‰'\n } else if (type === 'number') {\n num = num / (ratio || 1)\n }\n\n // format value\n let numStr = numFormatter.format(num)\n\n // add thousand separator\n if (thousandSeparator) {\n const parts = numStr.split('.')\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\n numStr = parts.join('.')\n }\n\n // add symbol, typeSymbol, prefix and suffix\n return `${prefix}${numStr}${typeSymbol}${symbol}${suffix}`\n }\n}\n\nexport const autoNumFormatter = (value?: number | string, locale: Locale = intl.getLocale()): string => {\n if (value === undefined || value === null) return String(value)\n const num = Number(value)\n if (Number.isNaN(num)) return String(value)\n\n const numFormatterOptions: Intl.NumberFormatOptions = {\n style: 'decimal',\n notation: 'compact',\n }\n numFormatterOptions.minimumFractionDigits = 0\n numFormatterOptions.maximumFractionDigits = 2\n\n const numFormatter = new Intl.NumberFormat(locale, { ...numFormatterOptions })\n\n return numFormatter.format(Number(value))\n}\n","import type { Formatter, Locale, NumFormat } from 'src/types'\nimport { autoNumFormatter, createNumFormatter } from './createNumFormatter'\n\nexport const createFormatter = (format: Partial<NumFormat>): Formatter => {\n return createNumFormatter(format)\n}\n\nexport const autoFormatter = (value?: number | string, locale?: Locale): string => {\n return autoNumFormatter(value, locale)\n}\n","import type { ColumnsDefine, ListTableConstructorOptions } from '@visactor/vtable'\nimport type { FieldFormat } from '@visactor/vtable/es/ts-types'\nimport { isEmpty } from 'remeda'\nimport { autoFormatter, createFormatter, isMeasure } from 'src/pipeline/utils'\nimport type { MeasureGroup, Measure, MeasureTree, SpecPipe, Datum, Locale } from 'src/types'\n\nexport const measureTreeToColumns: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { locale } = advancedVSeed\n const measures = (advancedVSeed as unknown as { measures: MeasureTree }).measures\n const result = { ...spec } as ListTableConstructorOptions\n\n const eachNode = (node: Measure | MeasureGroup) => {\n if (isMeasure(node)) {\n return {\n width: 'auto',\n fieldFormat: fieldFormat(node, locale),\n }\n }\n\n return {}\n }\n const columns = treeTreeToColumns<Measure, MeasureGroup>(measures, eachNode)\n return {\n ...result,\n columns: [...(result.columns || []), ...columns] as ListTableConstructorOptions['columns'],\n }\n}\n\nconst fieldFormat =\n (node: Measure, locale: Locale): FieldFormat =>\n (datum: Datum) => {\n const { format = {}, autoFormat = true, id } = node\n const value = datum[id] as number | string | undefined\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n\n return\n }\n\nconst treeTreeToColumns = <\n T extends { id: string; alias?: string },\n U extends { id: string; alias?: string; children?: (T | U)[] },\n>(\n tree: (T | U)[],\n callback?: (node: T | U) => object,\n): ColumnsDefine[] => {\n const result = tree.map((item) => {\n if ('children' in item && Array.isArray(item.children)) {\n const groupNode = item as unknown as U\n const field = groupNode.id\n const title = groupNode.alias ?? groupNode.id\n const props = callback?.(groupNode) || {}\n // group\n return {\n field,\n title,\n columns: treeTreeToColumns(item.children, callback),\n ...props,\n }\n } else {\n const field = item.id\n const title = item.alias ?? item.id\n const props = callback?.(item) || {}\n // leaf\n return {\n field,\n title,\n ...props,\n }\n }\n }) as unknown as ColumnsDefine[]\n\n return result || []\n}\n","import type { BaseTableConstructorOptions } from '@visactor/vtable/es/ts-types'\nimport type { SpecPipe, TableConfig } from 'src/types'\n\nexport const bodyStyle: SpecPipe = (spec, context) => {\n const result = { ...spec } as BaseTableConstructorOptions\n const { advancedVSeed } = context\n const { chartType, config } = advancedVSeed\n const themeConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themeConfig) return result\n\n // basic\n const borderColor = themeConfig.borderColor || 'rgb(224, 224, 224)'\n const backgroundColor = themeConfig.bodyBackgroundColor || '#fff'\n const fontColor = themeConfig.bodyFontColor || '#1B1F23'\n const fontSize = themeConfig.bodyFontSize || 12\n // Interaction\n const hoverCellBgColor = themeConfig.hoverBodyBackgroundColor || '#bedaff'\n const hoverInlineColor = themeConfig.hoverBodyInlineBackgroundColor || '#bedaff'\n\n result.theme.bodyStyle = {\n borderColor: borderColor,\n borderLineWidth: 1,\n padding: [8.6, 12, 8.6, 12],\n textAlign: 'right',\n hover: {\n cellBgColor: hoverCellBgColor,\n inlineRowBgColor: hoverInlineColor,\n inlineColumnBgColor: hoverInlineColor,\n },\n color: fontColor,\n fontSize: fontSize,\n fontStyle: 'normal',\n fontWeight: 'normal',\n fontVariant: 'normal',\n bgColor: backgroundColor,\n lineHeight: fontSize * 1.5,\n }\n\n return result\n}\n","import type { BaseTableConstructorOptions } from '@visactor/vtable/es/ts-types'\nimport type { SpecPipe, TableConfig } from 'src/types'\n\nexport const headerStyle: SpecPipe = (spec, context) => {\n const result = { ...spec } as BaseTableConstructorOptions\n const { advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themConfig) return result\n\n // basic\n const borderColor = themConfig.borderColor || 'rgb(224, 224, 224)'\n const backgroundColor = themConfig.headerBackgroundColor || '#EEF1F5'\n const fontColor = themConfig.headerFontColor || '#1B1F23'\n const fontSize = themConfig.headerFontSize || 12\n // Interaction\n const hoverCellBgColor = themConfig.hoverHeaderBackgroundColor || '#bedaff'\n const hoverInlineColor = themConfig.hoverHeaderInlineBackgroundColor || '#bedaff'\n\n result.theme.headerStyle = {\n borderColor: borderColor,\n borderLineWidth: 1,\n padding: [8, 12, 8, 12],\n textAlign: 'center',\n hover: {\n cellBgColor: hoverCellBgColor,\n inlineRowBgColor: hoverInlineColor,\n inlineColumnBgColor: hoverInlineColor,\n },\n frameStyle: {\n borderColor: [null, null, borderColor, null],\n borderLineWidth: 1,\n },\n fontSize: fontSize,\n fontVariant: 'normal',\n fontStyle: 'normal',\n fontWeight: 'bold',\n color: fontColor,\n bgColor: backgroundColor,\n lineHeight: fontSize * 1.5,\n }\n\n return result\n}\n","import type { BaseTableConstructorOptions } from '@visactor/vtable/es/ts-types'\nimport type { SpecPipe, TableConfig } from 'src/types'\n\nexport const frameStyle: SpecPipe = (spec, context) => {\n const result = { ...spec } as BaseTableConstructorOptions\n const { advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themConfig) return result\n\n const borderColor = themConfig.borderColor || 'rgb(224, 224, 224)'\n\n result.theme.frameStyle = {\n borderColor,\n borderLineWidth: 0,\n cornerRadius: 4,\n }\n\n return result\n}\n","import type { BaseTableConstructorOptions } from '@visactor/vtable/es/ts-types'\nimport type { SpecPipe, TableConfig } from 'src/types'\n\nexport const selectionStyle: SpecPipe = (spec, context) => {\n const result = { ...spec } as BaseTableConstructorOptions\n const { advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themConfig) return result\n\n const borderColor = themConfig.selectedBorderColor || 'rgb(224, 224, 224)'\n const backgroundColor = themConfig.selectedBackgroundColor || 'rgb(224, 224, 224, 0.5)'\n\n result.theme.selectionStyle = {\n cellBorderColor: borderColor,\n cellBorderLineWidth: 2,\n cellBgColor: backgroundColor,\n }\n\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport { initTable, dimensionTreeToColumns, measureTreeToColumns, bodyStyle, headerStyle, frameStyle, selectionStyle } from '../pipes'\n\nexport const tableSpecPipeline: SpecPipeline = [\n initTable,\n dimensionTreeToColumns,\n measureTreeToColumns,\n bodyStyle,\n headerStyle,\n frameStyle,\n selectionStyle,\n]\n","import { tableAdvancedPipeline, tableSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerTable = () => {\n Builder._advancedPipelineMap['table'] = tableAdvancedPipeline\n Builder._specPipelineMap['table'] = tableSpecPipeline\n}","import { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Datum, Measures } from 'src/types'\n\nexport const autoPivotMeasures: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const measures = findAllMeasures(vseed.measures as Measures)\n if (!dataset) {\n throw new Error('dataset is required')\n }\n\n if (dataset.length === 0) {\n return result\n }\n\n if (vseed.measures) {\n result.measures = findAllMeasures(measures)\n return result\n }\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n result.measures = Object.keys(sample)\n .filter((key) => {\n return top100dataset.some((item) => typeof item[key] === 'number') && !['', null, undefined].includes(key)\n })\n .map((measure) => ({\n id: measure,\n alias: measure,\n }))\n\n return result\n}\n","import type { Dimension, DimensionGroup, DimensionTree } from 'src/types'\nimport { preorderTraverse } from '../tree'\n\nexport const findDimensionById = (dimensions: DimensionTree = [], id: string): Dimension | undefined => {\n if (!dimensions) return undefined\n let result: Dimension | undefined\n preorderTraverse<Dimension, DimensionGroup>(dimensions, (node) => {\n if (!('children' in node)) {\n if (node.id === id) {\n result = node as Dimension\n return true\n }\n }\n return false\n })\n return result\n}\n\nexport const findFirstDimension = (dimensions: DimensionTree = []): Dimension | undefined => {\n if (!dimensions) return undefined\n let result: Dimension | undefined\n preorderTraverse<Dimension, DimensionGroup>(dimensions, (node) => {\n if (!('children' in node)) {\n result = node as Dimension\n return true\n }\n return false\n })\n return result\n}\n\nexport const findAllDimensions = (dimensions: DimensionTree = []): Dimension[] => {\n if (!dimensions) return []\n const result: Dimension[] = []\n preorderTraverse<Dimension, DimensionGroup>(dimensions, (node) => {\n if (!('children' in node)) {\n result.push(node as Dimension)\n }\n return false\n })\n return result\n}\n","import { findAllDimensions, findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Datum, Dimensions, Measures } from 'src/types'\n\nexport const autoPivotDimensions: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dimensions, dataset } = vseed\n\n const measures = findAllMeasures(advancedVSeed.measures as Measures)\n\n if (!dataset) {\n throw new Error('dataset is required')\n }\n\n if (dataset.length === 0) {\n return result\n }\n\n if (dimensions) {\n const newDimensions = findAllDimensions(dimensions) as Dimensions\n result.dimensions = newDimensions.map((item, index) => {\n if (item.location === 'rowDimension' || item.location === 'columnDimension') {\n return item\n }\n return {\n ...item,\n location: index % 2 === 0 ? 'columnDimension' : 'rowDimension',\n }\n }) as Dimensions\n\n return result\n }\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n let i = 0\n result.dimensions = Object.keys(sample)\n .filter(\n (key) =>\n top100dataset.some((item) => typeof item[key] === 'string') &&\n !['', null, undefined].includes(key) &&\n !measures.some((measure) => measure.id === key),\n )\n .map((dim) => ({\n id: dim,\n alias: dim,\n location: i++ % 2 === 0 ? 'columnDimension' : 'rowDimension',\n })) as Dimensions\n\n return result\n}\n","import { pick } from 'remeda'\nimport type { AdvancedPipe, Config } from 'src/types'\n\nexport const pivotTableConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const config = pick(vseed, [\n 'backgroundColor',\n 'bodyFontSize',\n 'bodyFontColor',\n 'bodyBackgroundColor',\n 'headerFontSize',\n 'headerFontColor',\n 'headerBackgroundColor',\n 'hoverHeaderBackgroundColor',\n 'hoverHeaderInlineBackgroundColor',\n 'selectedBorderColor',\n 'selectedBackgroundColor',\n ]) as Config['table']\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport { theme } from '../../chart/pipes'\nimport { autoPivotDimensions, autoPivotMeasures, initAdvancedVSeed, pivotTableConfig, records } from '../pipes'\n\nexport const pivotTableAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoPivotMeasures,\n autoPivotDimensions,\n records,\n pivotTableConfig,\n theme,\n]\n","import type { PivotTableConstructorOptions } from '@visactor/vtable'\nimport type { SpecPipe } from 'src/types'\n\nexport const initPivotTable: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { dataset } = advancedVSeed\n const { config } = advancedVSeed\n const { backgroundColor = 'transparent' } = config.pivotTable || {}\n return {\n ...spec,\n records: dataset,\n widthMode: 'standard',\n heightMode: 'autoHeight',\n autoWrapText: true,\n columnResizeMode: 'all',\n columnResizeType: 'column',\n showColumnHeader: true,\n showRowHeader: true,\n select: {\n highlightMode: 'cell',\n headerSelectMode: 'inline',\n },\n hover: {\n highlightMode: 'cross',\n },\n tooltip: {\n isShowOverflowTextTooltip: true,\n },\n corner: {\n titleOnDimension: 'all',\n },\n widthAdaptiveMode: 'all',\n animationAppear: {\n duration: 300,\n delay: 250,\n type: 'one-by-one',\n direction: 'row',\n },\n theme: {\n underlayBackgroundColor: backgroundColor,\n },\n } as PivotTableConstructorOptions\n}\n","import type { PivotTableConstructorOptions } from '@visactor/vtable'\nimport type { Dimensions, SpecPipe } from 'src/types'\n\nexport const pivotColumns: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const dimensions = advancedVSeed.dimensions as Dimensions\n const columns = dimensions.filter((item) => item['location'] === 'columnDimension')\n\n return {\n ...spec,\n columns: columns.map((item) => {\n return {\n dimensionKey: item.id,\n title: item.alias || item.id,\n width: 'auto',\n }\n }),\n } as PivotTableConstructorOptions\n}\n","import type { Dimensions, SpecPipe } from 'src/types'\n\nexport const pivotRows: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const dimensions = advancedVSeed.dimensions as Dimensions\n const rows = dimensions.filter((item) => item['location'] === 'rowDimension')\n\n return {\n ...spec,\n rows: rows.map((item) => {\n return {\n dimensionKey: item.id,\n title: item.alias || item.id,\n width: 'auto',\n }\n }),\n }\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { FieldFormat } from '@visactor/vtable/es/ts-types'\nimport { isEmpty } from 'remeda'\nimport { intl } from 'src/i18n'\nimport { autoFormatter, createFormatter, isMeasure } from 'src/pipeline/utils'\nimport type { Locale, Measure, Measures, SpecPipe } from 'src/types'\n\nexport const pivotIndicators: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { locale } = advancedVSeed\n const measures = (advancedVSeed as unknown as { measures: Measures }).measures\n\n return {\n ...spec,\n indicatorsAsCol: true,\n indicatorTitle: intl.i18n`指标名称`,\n indicators: measures.map((item) => {\n if (isMeasure(item)) {\n return {\n cellType: 'text',\n indicatorKey: item.id,\n title: item.alias || item.id,\n width: 'auto',\n format: fieldFormat(item, locale),\n }\n }\n return {}\n }) as unknown as PivotChartConstructorOptions['indicators'],\n }\n}\n\nconst fieldFormat =\n (node: Measure, locale: Locale): FieldFormat =>\n (value: number | string) => {\n const { format = {}, autoFormat = true } = node\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n\n return\n }\n","import type { BaseTableConstructorOptions } from '@visactor/vtable/es/ts-types'\nimport type { SpecPipe, TableConfig } from 'src/types'\n\nexport const rowHeaderStyle: SpecPipe = (spec, context) => {\n const result = { ...spec } as BaseTableConstructorOptions\n const { advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themConfig) return result\n\n // basic\n const borderColor = themConfig.borderColor || 'rgb(224, 224, 224)'\n const backgroundColor = themConfig.headerBackgroundColor || '#EEF1F5'\n const fontColor = themConfig.headerFontColor || '#1B1F23'\n const fontSize = themConfig.headerFontSize || 12\n // Interaction\n const hoverCellBgColor = themConfig.hoverHeaderBackgroundColor || '#bedaff'\n const hoverInlineColor = themConfig.hoverHeaderInlineBackgroundColor || '#bedaff'\n\n result.theme.rowHeaderStyle = {\n borderColor: borderColor,\n borderLineWidth: 1,\n padding: [8.6, 12, 8.6, 12],\n textAlign: 'left',\n hover: {\n cellBgColor: hoverCellBgColor,\n inlineRowBgColor: hoverInlineColor,\n inlineColumnBgColor: hoverInlineColor,\n },\n frameStyle: {\n borderColor: [null, borderColor, null, null],\n borderLineWidth: 1,\n },\n fontSize: fontSize,\n fontVariant: 'normal',\n fontStyle: 'normal',\n fontWeight: 'bold',\n color: fontColor,\n bgColor: backgroundColor,\n lineHeight: fontSize * 1.5,\n }\n\n return result\n}\n","import type { BaseTableConstructorOptions } from '@visactor/vtable/es/ts-types'\nimport type { SpecPipe, TableConfig } from 'src/types'\n\nexport const cornerHeaderStyle: SpecPipe = (spec, context) => {\n const result = { ...spec } as BaseTableConstructorOptions\n const { advancedVSeed } = context\n const { config, chartType } = advancedVSeed\n const themConfig = config?.[chartType] as TableConfig\n\n if (!result.theme || !themConfig) return result\n\n // basic\n const borderColor = themConfig.borderColor || 'rgb(224, 224, 224)'\n const backgroundColor = themConfig.headerBackgroundColor || '#EEF1F5'\n const fontColor = themConfig.headerFontColor || '#1B1F23'\n const fontSize = themConfig.headerFontSize || 12\n // Interaction\n const hoverInlineColor = themConfig.hoverHeaderInlineBackgroundColor\n const hoverCellColor = themConfig.hoverHeaderBackgroundColor\n\n result.theme.cornerHeaderStyle = {\n borderColor: [borderColor, borderColor],\n borderLineWidth: 1,\n padding: [8, 12, 8, 12],\n textAlign: 'left',\n hover: {\n cellBgColor: hoverCellColor || undefined,\n inlineRowBgColor: hoverInlineColor || undefined,\n inlineColumnBgColor: hoverInlineColor || undefined,\n },\n frameStyle: {\n borderColor: [null, borderColor, borderColor, null],\n borderLineWidth: 1,\n },\n fontSize: fontSize,\n fontVariant: 'normal',\n fontStyle: 'normal',\n fontWeight: 'bold',\n color: fontColor,\n bgColor: backgroundColor,\n lineHeight: fontSize * 1.5,\n }\n\n return result\n}\n","export var AggregationType;\n\n!function(AggregationType) {\n AggregationType.RECORD = \"RECORD\", AggregationType.NONE = \"NONE\", AggregationType.SUM = \"SUM\", \n AggregationType.MIN = \"MIN\", AggregationType.MAX = \"MAX\", AggregationType.AVG = \"AVG\", \n AggregationType.COUNT = \"COUNT\", AggregationType.CUSTOM = \"CUSTOM\", AggregationType.RECALCULATE = \"RECALCULATE\";\n}(AggregationType || (AggregationType = {}));\n\nexport var SortType;\n\n!function(SortType) {\n SortType.ASC = \"ASC\", SortType.DESC = \"DESC\", SortType.NORMAL = \"NORMAL\", SortType.desc = \"desc\", \n SortType.asc = \"asc\", SortType.normal = \"normal\";\n}(SortType || (SortType = {}));\n//# sourceMappingURL=new-data-set.js.map\n","import { AggregationType } from '@visactor/vtable/es/ts-types'\nimport { findAllMeasures } from 'src/pipeline/utils'\nimport type { SpecPipe } from 'src/types'\n\nexport const dataConfig: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const measures = findAllMeasures(advancedVSeed.measures)\n\n const aggregationRules = measures.map((measure) => ({\n field: measure.id,\n aggregationType: AggregationType.NONE,\n indicatorKey: measure.id,\n }))\n\n return {\n ...spec,\n dataConfig: {\n aggregationRules,\n },\n }\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n initPivotTable,\n pivotColumns,\n pivotRows,\n pivotIndicators,\n bodyStyle,\n headerStyle,\n rowHeaderStyle,\n cornerHeaderStyle,\n frameStyle,\n selectionStyle,\n} from '../pipes'\nimport { dataConfig } from '../pipes/indicators/pivotDataConfig'\n\nexport const pivotTableSpecPipeline: SpecPipeline = [\n initPivotTable,\n pivotColumns,\n pivotRows,\n pivotIndicators,\n bodyStyle,\n headerStyle,\n rowHeaderStyle,\n cornerHeaderStyle,\n frameStyle,\n selectionStyle,\n dataConfig,\n]\n","import { pivotTableAdvancedPipeline, pivotTableSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerPivotTable = () => {\n Builder._advancedPipelineMap['pivotTable'] = pivotTableAdvancedPipeline\n Builder._specPipelineMap['pivotTable'] = pivotTableSpecPipeline\n}","import type { AdvancedPipe, AdvancedVSeed } from 'src/types'\n\nexport const initAdvancedVSeed: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType, locale } = vseed\n return {\n ...advancedVSeed,\n chartType,\n locale: locale || 'zh-CN',\n } as AdvancedVSeed\n}\n","import type { Measure, MeasureGroup, MeasureTree } from \"src/types\"\nimport { preorderTraverse } from \"../tree/traverse\"\n\n/**\n * 获取measures的深度\n * @param measures\n * @param id\n * @returns\n */\nexport const measureDepth = (measures: MeasureTree = []): number => {\n if (!measures) return 0\n let depth = 1\n preorderTraverse<Measure, MeasureGroup>(measures, (node) => {\n if ('children' in node) {\n depth = Math.max(depth, 1 + measureDepth(node.children))\n }\n return false\n })\n return depth\n}\n","import type { Dimensions, DimensionGroup, DimensionTree, VSeed } from 'src/types'\nimport { measureDepth } from './measures'\n\nexport const isTable = (vseed: VSeed) => {\n return vseed.chartType === 'table'\n}\nexport const isPivotTable = (vseed: VSeed) => {\n return vseed.chartType === 'pivotTable'\n}\nexport const isVTable = (vseed: VSeed) => {\n return ['table', 'pivotTable'].includes(vseed.chartType)\n}\nexport const isVChart = (vseed: VSeed): boolean => {\n return !isVTable(vseed)\n}\nexport const isPivotChart = (vseed: VSeed) => {\n if (isVTable(vseed)) {\n return false\n }\n\n if (vseed.chartType === 'dualAxis') {\n if (vseed.measures) {\n const depth = measureDepth(vseed.measures)\n if (depth === 3) {\n return true\n }\n return false\n }\n\n if (vseed.dualMeasures && vseed.dualMeasures.length > 1) {\n return true\n }\n\n return false\n }\n\n const { measures = [], dimensions = [] } = vseed as {\n measures: DimensionTree\n dimensions: Dimensions\n }\n\n const hasRowOrColumnDimension =\n dimensions &&\n dimensions.some((dimension) => dimension.location === 'rowDimension' || dimension.location === 'columnDimension')\n\n const hasMeasureGroup = measures && measures.some((measure: DimensionGroup) => measure && measure.children)\n\n return hasRowOrColumnDimension || hasMeasureGroup\n}\n","import { isPivotChart } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Datum, DimensionGroup, MeasureGroup, MeasureTree } from 'src/types'\n\nexport const autoMeasures: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { measures, dataset } = vseed\n\n if (!dataset) {\n throw new Error('dataset is required')\n }\n\n if (dataset.length === 0) {\n return result\n }\n\n if (isPivotChart(vseed)) {\n return autoMeasureGroup(advancedVSeed, context)\n }\n\n if (measures) {\n result.measures = measures as MeasureTree\n return result\n }\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n result.measures = Object.keys(sample)\n .filter((key) => {\n return top100dataset.some((item) => typeof item[key] === 'number') && !['', null, undefined].includes(key)\n })\n .map((measure) => ({\n id: measure,\n alias: measure,\n }))\n\n return result\n}\n\nconst autoMeasureGroup: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { measures } = vseed as {\n measures?: MeasureGroup[]\n }\n const hasMeasureGroup = measures?.some((measure) => measure.children)\n\n if (!measures) {\n return advancedVSeed\n }\n\n // 没有指标组, 则自动添加一个指标组\n if (!hasMeasureGroup) {\n const newMeasures = [\n {\n id: 'measureGroup',\n alias: 'measureGroup',\n children: measures,\n },\n ]\n return {\n ...advancedVSeed,\n measures: newMeasures,\n }\n }\n\n // 存在指标组, 则任意连续的独立指标成组\n let currentGroup: DimensionGroup = createEmptyMeasureGroup()\n const measureGroups: DimensionGroup[] = []\n for (const measure of measures) {\n if ('children' in measure) {\n // 当前指标组之前的所有独立指标成组\n if (currentGroup.children?.length) {\n currentGroup.alias = currentGroup.children.map((item) => item.alias).join('-')\n currentGroup.id = currentGroup.alias + currentGroup.children.map((item) => item.id).join('-')\n measureGroups.push(currentGroup)\n currentGroup = createEmptyMeasureGroup()\n }\n // 当前是指标组\n measureGroups.push(measure)\n } else {\n currentGroup.children?.push(measure)\n }\n }\n\n // 最后一组\n if (currentGroup.children?.length) {\n currentGroup.alias = currentGroup.children.map((item) => item.alias).join('-')\n currentGroup.id = currentGroup.alias + currentGroup.children.map((item) => item.id).join('-')\n measureGroups.push(currentGroup)\n currentGroup = createEmptyMeasureGroup()\n }\n\n advancedVSeed.measures = measureGroups\n return advancedVSeed\n}\n\nconst createEmptyMeasureGroup = () => {\n return {\n id: '',\n alias: '',\n children: [],\n }\n}\n","import { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Datum, DimensionTree } from 'src/types'\n\nexport const autoDimensions: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dimensions, dataset } = vseed\n\n const measures = findAllMeasures(advancedVSeed.measures as DimensionTree)\n\n if (!dataset) {\n throw new Error('dataset is required')\n }\n\n if (dataset.length === 0) {\n return result\n }\n\n if (dimensions) {\n result.dimensions = dimensions.map((dim) => ({\n location: 'dimension',\n ...dim,\n }))\n return result\n }\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n result.dimensions = Object.keys(sample)\n .filter(\n (key) =>\n top100dataset.some((item) => typeof item[key] === 'string') &&\n !['', null, undefined].includes(key) &&\n !measures.some((measure) => measure.id === key),\n )\n .map((dim) => ({\n id: dim,\n alias: dim,\n location: 'dimension',\n }))\n\n return result\n}\n","import type { AdvancedPipe, AdvancedPipeline, AdvancedPipelineContext, AdvancedVSeed } from 'src/types'\nimport { execPipeline, isPivotChart } from 'src/pipeline/utils'\n\nexport const pivotAdapter = (pipeline: AdvancedPipeline, pivotPipeline: AdvancedPipeline): AdvancedPipe => {\n return (advancedVSeed, context) => {\n const { vseed } = context\n const usePivotChart = isPivotChart(vseed)\n\n if (usePivotChart) {\n return execPipeline<AdvancedVSeed, AdvancedPipelineContext>(pivotPipeline, context, advancedVSeed)\n }\n\n return execPipeline<AdvancedVSeed, AdvancedPipelineContext>(pipeline, context, advancedVSeed)\n }\n}\n","// Reshape Measures\nexport const FoldMeasureName = '__MeaName__'\nexport const FoldMeasureId = '__MeaId__'\nexport const FoldMeasureValue = '__MeaValue__'\n\nexport const FoldPrimaryMeasureValue = '__MeaPrimaryValue__'\nexport const FoldSecondaryMeasureValue = '__MeaSecondaryValue__'\n\n// Reshape Dimensions\nexport const UnfoldDimensionGroup = '__DimGroup__'\nexport const UnfoldDimensionGroupId = '__DimGroupID__'\n\nexport const Separator = '-'\n\nexport const ORIGINAL_DATA = '__OriginalData__'\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { Dataset, FoldInfo, Dimension, Measures, DimensionTree } from 'src/types'\nimport { FoldMeasureId, FoldMeasureName, FoldMeasureValue, ORIGINAL_DATA } from './constant'\nimport { omit } from 'remeda'\n\n/**\n * 折叠指定的指标\n * @description 合并指定的指标为1个, 无论多少个, 都能转换为1个, 取名为fold, 意为折叠后混合在一起.\n */\nexport const foldMeasures = (\n dataset: Dataset,\n measures: Dimension[],\n measureId = FoldMeasureId,\n measureName = FoldMeasureName,\n measureValue = FoldMeasureValue,\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n} => {\n const foldInfo: FoldInfo = {\n measureId,\n measureName,\n measureValue,\n foldMap: {},\n }\n const result: Dataset = new Array(dataset.length * measures.length) as Dataset\n let index = 0\n const ids = measures.map((d) => d.id)\n for (let i = 0; i < dataset.length; i++) {\n for (let j = 0; j < measures.length; j++) {\n const datum: Record<string, any> = omit({ ...dataset[i] }, ids)\n\n datum[ORIGINAL_DATA] = dataset[i]\n\n const measure = measures[j]\n const { id, alias } = measure\n\n datum[id] = dataset[i][id] as unknown\n datum[measureId] = id\n datum[measureName] = alias || id\n datum[measureValue] = dataset[i][id] as unknown\n\n foldInfo.foldMap[id] = alias\n result[index++] = datum\n }\n }\n\n return {\n dataset: result,\n foldInfo,\n }\n}\n\n/**\n * 折叠指定的指标组, 至多支持2层\n * @param dataset\n * @param measures\n * @param measureId\n * @param measureName\n * @param measureValue\n * @returns\n */\nexport const foldMeasureGroups = (\n dataset: Dataset,\n measures: Required<DimensionTree>,\n measureId = '__MeaId__',\n measureName = '__MeaName__',\n measureValue = '__MeaValue__',\n) => {\n const groups: Array<Measures> = []\n if (!measures) {\n return {\n dataset,\n }\n }\n\n // 没有分组, 直接折叠所有指标\n if (!measures.some((measure) => 'children' in measure)) {\n return foldMeasures(dataset, measures, measureId, measureName, measureValue)\n }\n\n measures.forEach((measure) => {\n if ('children' in measure && measure.children) {\n groups.push(measure.children)\n } else {\n groups.push([measure])\n }\n })\n\n // 一组返回一个dataset\n const datasetGroup = groups.map((measures) => {\n if (!measures) {\n return []\n }\n return foldMeasures(dataset, measures, measureId, measureName, measureValue)\n })\n\n return {\n datasetGroup,\n }\n}\n","import type { Dataset, Datum, Dimension, Measure } from 'src/types'\nimport type { UnfoldInfo } from 'src/types'\nimport { UnfoldDimensionGroup, Separator, UnfoldDimensionGroupId, FoldMeasureId } from './constant'\nimport { unique } from 'remeda'\n\n/**\n * TODO: 优化展开维度的性能\n * 展开指定的维度\n * @description 第一步: 根据指定的维度, 将多个维度展开为N个指标(取决于维值去重后的数量), 随后合并成一个维度.\n */\nexport const unfoldDimensions = (\n dataset: Dataset,\n dimensions: Dimension[],\n measures: Measure[],\n unfoldStartIndex: number = 0,\n unfoldGroupName: string = UnfoldDimensionGroup,\n unfoldGroupId: string = UnfoldDimensionGroupId,\n foldMeasureId: string = FoldMeasureId,\n dimensionsSeparator: string = Separator,\n): {\n dataset: Dataset\n unfoldInfo: UnfoldInfo\n} => {\n if (unfoldStartIndex < 0 || unfoldStartIndex >= dimensions.length) {\n throw new Error('unfoldStartIndex is out of range')\n }\n\n const dimensionsToBeUnfolded = dimensions.slice(unfoldStartIndex)\n const unfoldInfo: UnfoldInfo = {\n groupName: unfoldGroupName,\n groupId: unfoldGroupId,\n colorItems: [],\n colorIdMap: {},\n }\n\n // 指标为空或维度为空, 则不检测\n if (dimensions.length === 0 || measures.length === 0) {\n return {\n dataset,\n unfoldInfo: {\n groupName: unfoldGroupName,\n groupId: unfoldGroupId,\n colorItems: [],\n colorIdMap: {},\n },\n }\n }\n\n const colorItems = []\n const colorMap: Record<string, string> = {}\n for (let i = 0; i < dataset.length; i++) {\n const datum = dataset[i]\n const colorName = generateDimGroupName(dimensionsToBeUnfolded, datum, dimensionsSeparator)\n const colorId = datum[foldMeasureId]\n ? [colorName, datum[foldMeasureId] as string].join(dimensionsSeparator)\n : colorName\n datum[unfoldGroupName] = colorName\n datum[unfoldGroupId] = colorId\n colorItems.push(colorId)\n colorMap[colorId] = colorName\n }\n\n unfoldInfo.colorItems = unique(colorItems)\n unfoldInfo.colorIdMap = colorMap\n return {\n dataset,\n unfoldInfo,\n }\n}\n\n/**\n * 生成维度组合名称\n * @param dimensionsToBeGrouped 待分组的维度\n * @param datum 数据项\n * @param dimensionsSeparator 维度分隔符\n * @returns 维度组合名称\n */\nexport const generateDimGroupName = (dimensionsToBeGrouped: Dimension[], datum: Datum, dimensionsSeparator: string) => {\n return dimensionsToBeGrouped.map((dim) => String(datum[dim.id])).join(dimensionsSeparator)\n}\n","import type { Dataset, Measure } from 'src/types'\nimport type { UnfoldInfo } from 'src/types'\nimport { UnfoldDimensionGroup, UnfoldDimensionGroupId } from './constant'\nimport { unique } from 'remeda'\n\n/**\n * 展开0个维度的特殊情况, 折线图、面积图、雷达图只有指标没有维度的情况, 应该所有的指标应该作为一个维度\n * @description\n */\nexport const unfoldZeroDimensions = (\n dataset: Dataset,\n measures: Measure[],\n measureName: string,\n unfoldGroupName: string = UnfoldDimensionGroup,\n unfoldGroupId: string = UnfoldDimensionGroupId,\n): {\n dataset: Dataset\n unfoldInfo: UnfoldInfo\n} => {\n const unfoldInfo: UnfoldInfo = {\n groupName: unfoldGroupName,\n groupId: unfoldGroupId,\n colorItems: [],\n colorIdMap: {},\n }\n\n // 指标为空或维度为空, 则不检测\n if (measures.length === 0) {\n return {\n dataset,\n unfoldInfo: {\n groupName: unfoldGroupName,\n groupId: unfoldGroupId,\n colorItems: [],\n colorIdMap: {},\n },\n }\n }\n\n const colorItems = []\n const colorMap: Record<string, string> = {}\n for (let i = 0; i < dataset.length; i++) {\n const datum = dataset[i]\n const colorName = measureName\n const colorId = measureName\n datum[unfoldGroupName] = colorName\n datum[unfoldGroupId] = colorId\n colorItems.push(colorId)\n colorMap[colorId] = colorName\n }\n\n unfoldInfo.colorItems = unique(colorItems)\n unfoldInfo.colorIdMap = colorMap\n return {\n dataset,\n unfoldInfo,\n }\n}\n","import type { Dataset, Dimension, FoldInfo, Measure, UnfoldInfo } from 'src/types'\nimport { foldMeasures } from './foldMeasures'\nimport {\n UnfoldDimensionGroup,\n FoldMeasureId,\n FoldMeasureName,\n FoldMeasureValue,\n UnfoldDimensionGroupId,\n} from './constant'\nimport { unfoldDimensions } from './unfoldDimensions'\nimport { unfoldZeroDimensions } from './unfoldZeroDimensions'\nimport { i18n } from '../i18n'\n\nconst emptyReshapeResult: {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n} = {\n dataset: [],\n foldInfo: {\n foldMap: {},\n measureId: '',\n measureName: '',\n measureValue: '',\n },\n unfoldInfo: {\n groupName: '',\n groupId: '',\n colorItems: [],\n colorIdMap: {},\n },\n}\n/**\n * 数据重塑为2个维度1个指标, 并且不根据指标名称展开出一个新维度\n * @param dataset\n * @param dimensions\n * @param measures\n * @returns\n */\nexport const dataReshapeFor2D1M0Name = (\n dataset: Dataset,\n dimensions: Dimension[],\n measures: Measure[],\n options?: {\n foldMeasureId?: string\n foldMeasureName?: string\n foldMeasureValue?: string\n unfoldDimensionGroup?: string\n unfoldDimensionGroupId?: string\n },\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n} => {\n const {\n foldMeasureId = FoldMeasureId,\n foldMeasureName = FoldMeasureName,\n foldMeasureValue = FoldMeasureValue,\n unfoldDimensionGroup = UnfoldDimensionGroup,\n unfoldDimensionGroupId = UnfoldDimensionGroupId,\n } = options || {}\n if (dimensions.length === 0 && measures.length === 0) {\n return emptyReshapeResult\n }\n\n // 合并所有指标为1个指标\n const { dataset: foldedDataset, foldInfo } = foldMeasures(\n dataset,\n measures,\n foldMeasureId,\n foldMeasureName,\n foldMeasureValue,\n )\n\n if (dimensions.length === 0) {\n const { dataset: finalDataset, unfoldInfo } = unfoldZeroDimensions(\n foldedDataset,\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\n i18n`指标名称`,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n } else {\n const onlyOneMeasure = measures.length === 1\n const onlyOneDimension = dimensions.length === 1\n\n const dims = [...dimensions]\n if (!onlyOneMeasure || onlyOneDimension) {\n dims.push({ id: foldMeasureName, alias: i18n`指标名称`, location: 'dimension' })\n }\n\n // 展开指定的维度为指标\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n dims,\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\n 1,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n foldMeasureId,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n }\n}\n","import { dataReshapeFor2D1M0Name } from 'src/dataReshape'\nimport type { AdvancedPipe } from 'src/types'\n\n/**\n * @description 数据重塑, 将任意维度、任意指标, 重塑为2个维度1个指标, 并且在0维度时, 合并所有指标为一个维度. 兼容折线图、面积图、雷达图只有指标, 没有维度的场景\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const reshapeTo2D1M0Name: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { dimensions, measures } = advancedVSeed\n\n if (!measures || !dimensions || !dataset) {\n return result\n }\n\n if (measures.length === 0) {\n throw new Error('measures can not be empty')\n }\n\n const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeFor2D1M0Name(dataset, dimensions, measures)\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: [\n {\n id: '2D1M',\n index: 0,\n foldInfo,\n unfoldInfo,\n },\n ],\n dimensions,\n measures,\n }\n}\n","import { FoldMeasureId, FoldMeasureName, FoldMeasureValue, UnfoldDimensionGroup } from 'src/dataReshape/constant'\nimport { dataReshapeFor2D1M0Name } from 'src/dataReshape'\nimport type { AdvancedPipe, Dataset, DatasetReshapeInfo, Dimensions, MeasureGroup } from 'src/types'\n\n/**\n * @description 数据重塑为透视结构, 如果存在指标分组, 则将数据按组划分. 如果存在行列维度, 则生成行列树结构. 并且在0维度时, 合并所有指标为一个维度. 兼容折线图、面积图、雷达图只有指标, 没有维度的场景\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const pivotReshapeTo2D1M0Name: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { measures } = advancedVSeed\n const dimensions = advancedVSeed.dimensions as Dimensions\n\n if (!measures || !dimensions) {\n return result\n }\n\n const measureGroups: MeasureGroup[] = []\n if (measures) {\n measures.forEach((measure: MeasureGroup) => {\n if (measure.children && measure.children.length > 0) {\n measureGroups.push(measure)\n }\n })\n }\n const commonDimensions = dimensions.filter((dim) => dim.location === 'dimension')\n\n const newDatasets: Dataset = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n measureGroups.forEach((measureGroup, index) => {\n const measures = measureGroup.children\n if (!measures) {\n return\n }\n const groupId = measureGroup.id\n const {\n dataset: newSubDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeFor2D1M0Name(dataset, commonDimensions, measures, {\n foldMeasureId: FoldMeasureId,\n foldMeasureName: FoldMeasureName,\n foldMeasureValue: FoldMeasureValue + groupId,\n unfoldDimensionGroup: UnfoldDimensionGroup,\n })\n const reshapeInfo = {\n id: groupId,\n index,\n foldInfo,\n unfoldInfo,\n }\n newDatasets.push(newSubDataset)\n datasetReshapeInfo.push(reshapeInfo)\n })\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n","import type { AdvancedPipe, Dimensions, FoldInfo, UnfoldInfo } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingXY: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo, dimensions } = advancedVSeed\n if (!datasetReshapeInfo || !dimensions) {\n return result\n }\n\n const xDimension =\n (dimensions as Dimensions).find(\n (item) => item.location !== 'rowDimension' && item.location !== 'columnDimension',\n ) || dimensions[0]\n\n const isZeroDimension = dimensions.length === 0\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfo, unfoldInfo } = cur as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n const x = [isZeroDimension ? foldInfo.measureName : xDimension?.id]\n const y = [foldInfo.measureValue]\n const group = [unfoldInfo.groupId]\n const color = [foldInfo.measureName]\n\n return [\n ...prev,\n {\n x,\n y,\n group,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import { sort, unique } from 'remeda'\nimport type { AdvancedPipe, Dataset, Datum, Line, Sort, SortLegend } from 'src/types'\n\nexport const sortXBandAxis: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { sort: sortAxis, dataset } = vseed as Line\n const { encoding } = advancedVSeed\n const xField = encoding?.[0]?.x?.[0]\n if (!sortAxis || !xField) {\n return advancedVSeed\n }\n if (!result.analysis) result.analysis = {}\n if (!result.analysis.orderMapping) result.analysis.orderMapping = {}\n\n const axisOrderResult = calcOrder(sortAxis, xField, dataset)\n\n result.analysis.orderMapping[xField] = axisOrderResult\n\n return result\n}\n\nexport const sortYBandAxis: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { sort: sortAxis, dataset } = vseed as Line\n const { encoding } = advancedVSeed\n const yField = encoding?.[0]?.y?.[0]\n if (!sortAxis || !yField) {\n return advancedVSeed\n }\n if (!result.analysis) result.analysis = {}\n if (!result.analysis.orderMapping) result.analysis.orderMapping = {}\n\n const axisOrderResult = calcOrder(sortAxis, yField, dataset)\n\n result.analysis.orderMapping[yField] = axisOrderResult\n\n return result\n}\n\nexport const sortLegend: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { sortLegend } = vseed as Line\n const { datasetReshapeInfo } = advancedVSeed\n const groupField = datasetReshapeInfo?.[0]?.unfoldInfo?.groupId\n const colorIdMap = datasetReshapeInfo?.[0]?.unfoldInfo?.colorIdMap\n const colorItems = datasetReshapeInfo?.[0]?.unfoldInfo?.colorItems\n if (!sortLegend || !groupField || !colorIdMap || !colorItems) {\n return advancedVSeed\n }\n\n if (!result.analysis) result.analysis = {}\n if (!result.analysis.orderMapping) result.analysis.orderMapping = {}\n\n if (sortLegend.customOrder) {\n const nameMap = Object.keys(colorIdMap).reduce<Record<string, string>>((pre, cur) => {\n pre[colorIdMap[cur]] = cur\n return pre\n }, {})\n\n // 先根据名称匹配, 若名称不存在, 则根据id匹配, 从而兼容名称和id的两种情况\n const orderRes = sortLegend.customOrder.map((itemNameOrId) =>\n nameMap[itemNameOrId] ? nameMap[itemNameOrId] : itemNameOrId,\n )\n result.analysis.orderMapping[groupField] = orderRes\n return result\n }\n\n const dataset = advancedVSeed.dataset?.flat(2)\n\n const orderRes = calcOrder(sortLegend, groupField, dataset || [])\n result.analysis.orderMapping[groupField] = orderRes\n\n return result\n}\n\nconst calcOrder = (sortConfig: Sort | SortLegend, id: string, dataset: Dataset): string[] => {\n if (sortConfig.customOrder) {\n return sortConfig.customOrder\n }\n\n const order = sortConfig.order || 'asc'\n const orderBy = sortConfig.orderBy\n\n const res = sort(dataset, (a, b) => {\n const aValue = a[orderBy || id] as string | number\n const bValue = b[orderBy || id] as string | number\n\n if (order === 'asc') {\n if (aValue < bValue) {\n return -1\n }\n if (aValue > bValue) {\n return 1\n }\n return 0\n }\n if (aValue > bValue) {\n return -1\n }\n if (aValue < bValue) {\n return 1\n }\n return 0\n })\n\n return unique(res.map((item: Datum) => item[id] as string))\n}\n","import { pick } from 'remeda'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const lineConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const config = pick(vseed, [\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n 'xAxis',\n 'yAxis',\n 'crosshairLine',\n ]) as Config['line']\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n\nexport const columnConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const config = pick(vseed, [\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n 'xAxis',\n 'yAxis',\n 'crosshairRect',\n 'stackCornerRadius',\n ]) as Config['column']\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n\nexport const pieConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const config = pick(vseed, ['backgroundColor', 'color', 'label', 'legend', 'tooltip']) as Config['pie']\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n\nexport const areaConfig: AdvancedPipe = lineConfig\nexport const areaPercentConfig: AdvancedPipe = lineConfig\nexport const scatterConfig: AdvancedPipe = lineConfig\n\nexport const barConfig: AdvancedPipe = columnConfig\nexport const barParallelConfig: AdvancedPipe = columnConfig\nexport const barPercentConfig: AdvancedPipe = columnConfig\nexport const columnParallelConfig: AdvancedPipe = columnConfig\nexport const columnPercentConfig: AdvancedPipe = columnConfig\n\nexport const donutConfig: AdvancedPipe = pieConfig\nexport const roseConfig: AdvancedPipe = pieConfig\nexport const roseParallelConfig: AdvancedPipe = pieConfig\nexport const funnelConfig: AdvancedPipe = pieConfig\nexport const heatmapConfig: AdvancedPipe = pieConfig\nexport const radarConfig: AdvancedPipe = pieConfig","import { pick } from 'remeda'\nimport type { AdvancedPipe, AdvancedVSeed } from 'src/types'\n\nexport const markStyle: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n\n const markStyle = pick(vseed, ['barStyle', 'pointStyle', 'lineStyle', 'areaStyle']) as AdvancedVSeed['markStyle']\n\n return { ...advancedVSeed, markStyle }\n}\n","import { pick } from 'remeda'\nimport type { AdvancedPipe, AdvancedVSeed } from 'src/types'\n\nexport const annotation: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const annotation = pick(vseed, [\n 'annotationPoint',\n 'annotationHorizontalLine',\n 'annotationVerticalLine',\n 'annotationArea',\n ]) as AdvancedVSeed['annotation']\n\n return { ...advancedVSeed, annotation }\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n lineConfig,\n annotation,\n markStyle,\n sortXBandAxis,\n sortLegend,\n reshapeTo2D1M0Name,\n pivotReshapeTo2D1M0Name,\n} from '../pipes'\n\nexport const lineAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M0Name], [pivotReshapeTo2D1M0Name]),\n encodingXY,\n sortXBandAxis,\n sortLegend,\n lineConfig,\n theme,\n markStyle,\n annotation\n]\n","import type { ILineChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initLine: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'line'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n result.animation = true\n\n return result\n}\n","import type { ILineChartSpec } from '@visactor/vchart'\nimport type { Color, SpecPipe } from 'src/types'\n\nexport const color: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const { datasetReshapeInfo, chartType } = advancedVSeed\n const { unfoldInfo } = datasetReshapeInfo[0]\n const baseConfig = advancedVSeed.config[chartType] as { color: Color }\n\n if (!baseConfig || !baseConfig.color) {\n return result\n }\n\n const colorItems = unfoldInfo.colorItems\n const colorIdMap = unfoldInfo.colorIdMap\n\n const { color } = baseConfig\n const { colorScheme, colorMapping } = color\n\n result.color = {\n type: 'ordinal',\n domain: colorItems,\n range: colorScheme,\n specified: createSpecifiedForColorMapping(colorMapping, colorIdMap, colorItems),\n } as ILineChartSpec['color']\n return result\n}\n\nconst createSpecifiedForColorMapping = (\n colorMapping?: Record<string, string>,\n colorIdMap?: Record<string, string>,\n colorItems?: string[],\n) => {\n if (!colorMapping || !colorIdMap || !colorItems) {\n return undefined\n }\n\n const matchedList: string[] = []\n\n // 名称越长优先级越高: 按名称长度降, 优先匹配名称长的, 避免一个短的名称匹配到了超多个长的\n const colors = Object.entries(colorMapping).sort((a, b) => b[0].length - a[0].length)\n // 准确匹配\n const accurateMap = colors.reduce(\n (prev, cur) => {\n const name = cur[0]\n const colorValue = cur[1]\n\n const accurateMatchedList = Object.entries(colorIdMap).filter(([colorKey, colorAlias]) => {\n return colorKey === name || colorAlias === name\n })\n accurateMatchedList.forEach((item) => {\n prev[item[0]] = colorValue\n matchedList.push(name)\n })\n\n return prev\n },\n {} as Record<string, string>,\n )\n\n // 模糊匹配\n const fuzzyMap = colors.reduce(\n (prev, cur) => {\n const name = cur[0]\n const colorValue = cur[1]\n if (matchedList.includes(name)) {\n return prev\n }\n\n const fuzzyMatchedList = Object.entries(colorIdMap).filter(([colorKey, colorAlias]) => {\n return colorKey.includes(name) || colorAlias.includes(name)\n })\n fuzzyMatchedList.forEach((item) => {\n // 已经匹配有值, 则不重复匹配\n if (prev[item[0]]) {\n return\n }\n prev[item[0]] = colorValue\n })\n\n return prev\n },\n {} as Record<string, string>,\n )\n\n // 合并, 准确匹配的优先级高\n return {\n ...fuzzyMap,\n ...accurateMap,\n }\n}\n","import type { ISpec } from '@visactor/vchart'\nimport type { BackgroundColor, SpecPipe } from 'src/types'\n\nexport const backgroundColor: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed } = context\n const { chartType } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { backgroundColor: BackgroundColor }\n\n const { backgroundColor } = baseConfig\n\n return {\n ...result,\n background: backgroundColor,\n }\n}\n","import type { ISpec } from '@visactor/vchart'\nimport { isPivotChart } from 'src/pipeline/utils'\nimport type { SpecPipe } from 'src/types'\n\nexport const datasetXY: SpecPipe = (spec, context) => {\n const { advancedVSeed, vseed } = context\n const { encoding, analysis, datasetReshapeInfo } = advancedVSeed\n const orderMapping = analysis?.orderMapping || {}\n const angle = encoding[0]?.angle?.[0]\n const x = encoding[0]?.x?.[0]\n const group = encoding[0]?.group?.[0]\n const id = datasetReshapeInfo[0].id\n\n const fields: Record<string, object> = {}\n if (angle) {\n fields[angle] = {\n sortIndex: 0,\n }\n }\n if (x) {\n const order = orderMapping[x]\n if (order) {\n fields[x] = {\n sortIndex: 0,\n domain: order,\n lockStatisticsByDomain: true,\n }\n } else {\n fields[x] = {\n sortIndex: 0,\n }\n }\n }\n\n if (group) {\n const order = orderMapping[group]\n if (order) {\n fields[group] = {\n sortIndex: 0,\n domain: order,\n lockStatisticsByDomain: true,\n }\n } else {\n fields[group] = {\n sortIndex: 0,\n }\n }\n }\n\n return {\n ...spec,\n data: {\n id,\n // 透视表不使用 dataValues\n values: isPivotChart(vseed) ? undefined : advancedVSeed.dataset,\n fields: fields,\n },\n } as ISpec\n}\n","import type { ILineSeriesSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const progressive: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineSeriesSpec\n const { advancedVSeed } = context\n const { dataset = [] } = advancedVSeed\n const size = dataset.length\n\n if (size < 5000) {\n return result\n }\n\n result.large = true\n result.largeThreshold = 5000\n result.progressiveStep = 400\n result.progressiveThreshold = 8000\n\n return result\n}\n","import type { ICartesianBandAxisSpec, ISpec } from '@visactor/vchart'\nimport type { SpecPipe, XBandAxis } from 'src/types'\n\nexport const xBand: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const config = advancedVSeed.config?.[chartType as 'column']?.xAxis as XBandAxis\n\n if (!result.axes) {\n result.axes = []\n }\n\n if (!config) {\n result.axes = [\n ...result.axes,\n {\n visible: true,\n type: 'band',\n orient: 'bottom',\n },\n ] as ISpec['axes']\n return result\n }\n\n const {\n visible = true,\n label,\n tick,\n title,\n grid,\n line,\n labelAutoHide,\n labelAutoHideGap,\n labelAutoLimit,\n labelAutoLimitLength = 80,\n labelAutoRotate,\n labelAutoRotateAngleRange,\n } = config\n\n const sampling = !(labelAutoHide || labelAutoRotate || labelAutoLimit)\n\n const bandAxis = {\n visible,\n type: 'band',\n orient: 'bottom',\n maxHeight: labelAutoLimitLength + 60,\n sampling,\n hover: true,\n label: {\n visible: label?.visible,\n flush: true,\n space: 8,\n style: {\n maxLineWidth: labelAutoLimitLength,\n fill: label?.labelColor,\n angle: label?.labelAngle,\n fontSize: label?.labelFontSize,\n fontWeight: label?.labelFontWeight,\n },\n\n // 防重叠相关\n minGap: labelAutoHideGap,\n autoHide: labelAutoHide,\n autoHideMethod: 'greedy',\n autoHideSeparation: labelAutoHideGap,\n autoLimit: labelAutoLimit,\n autoRotate: labelAutoRotate,\n autoRotateAngle: labelAutoRotateAngleRange,\n lastVisible: true,\n },\n title: {\n visible: title?.visible,\n text: title?.titleText,\n style: {\n fill: title?.titleColor,\n fontSize: title?.titleFontSize,\n fontWeight: title?.titleFontWeight,\n },\n },\n tick: {\n visible: tick?.visible,\n tickSize: tick?.tickSize,\n inside: tick?.tickInside,\n style: {\n stroke: tick?.tickColor,\n },\n },\n grid: {\n visible: grid?.visible,\n style: {\n lineWidth: grid?.gridWidth,\n stroke: grid?.gridColor,\n },\n },\n domainLine: {\n visible: line?.visible,\n style: {\n lineWidth: line?.lineWidth,\n stroke: line?.lineColor,\n },\n },\n paddingInner: [0.15, 0.1],\n paddingOuter: [0.075, 0.1],\n } as ICartesianBandAxisSpec\n\n result.axes = [...result.axes, bandAxis] as ISpec['axes']\n return result\n}\n","// 标注层 z-index \nexport const ANNOTATION_Z_INDEX = 1000\n// 线性轴 顶部空隙 预留5px\nexport const LINEAR_AXIS_INNER_OFFSET_TOP = 7\n// 双轴图 柱图 ZIndex\nexport const DUAL_AXIS_CHART_COLUMN_Z_INDEX = 1000\n// 双轴图 非柱图 ZIndex\nexport const DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX = 1001\n","import type { ISpec } from '@visactor/vchart'\nimport { LINEAR_AXIS_INNER_OFFSET_TOP } from '../../../../utils/constant'\nimport { autoFormatter } from '../../../../utils'\nimport type { SpecPipe, YLinearAxis } from 'src/types'\n\nexport const yLinear: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { locale } = advancedVSeed\n const config = advancedVSeed.config?.[chartType as 'column']?.yAxis as YLinearAxis\n\n if (!result.axes) {\n result.axes = []\n }\n\n if (!config) {\n result.axes = [\n ...result.axes,\n {\n visible: true,\n type: 'linear',\n orient: 'left',\n },\n ] as ISpec['axes']\n return result\n }\n\n const {\n visible = true,\n label,\n tick,\n title,\n grid,\n line,\n\n zero,\n nice,\n inverse,\n max,\n min,\n log,\n logBase = 10,\n } = config\n\n const linearAxis = {\n visible,\n type: log ? 'log' : 'linear',\n base: logBase,\n orient: 'left',\n nice,\n zero: log ? false : zero,\n inverse,\n max,\n min,\n label: {\n visible: label?.visible,\n formatMethod: (value: string) => {\n return autoFormatter(value, locale)\n },\n style: {\n fill: label?.labelColor,\n angle: label?.labelAngle,\n fontSize: label?.labelFontSize,\n fontWeight: label?.labelFontWeight,\n },\n },\n title: {\n visible: title?.visible,\n text: title?.titleText,\n style: {\n fill: title?.titleColor,\n fontSize: title?.titleFontSize,\n fontWeight: title?.titleFontWeight,\n },\n },\n tick: {\n visible: tick?.visible,\n tickSize: tick?.tickSize,\n inside: tick?.tickInside,\n style: {\n stroke: tick?.tickColor,\n },\n },\n grid: {\n visible: grid?.visible,\n style: {\n lineWidth: grid?.gridWidth,\n stroke: grid?.gridColor,\n },\n },\n domainLine: {\n visible: line?.visible,\n style: {\n lineWidth: line?.lineWidth,\n stroke: line?.lineColor,\n },\n },\n innerOffset: {\n top: LINEAR_AXIS_INNER_OFFSET_TOP,\n // bottom: LINEAR_AXIS_INNER_OFFSET_TOP,\n },\n }\n\n result.axes = [...result.axes, linearAxis] as ISpec['axes']\n\n return result\n}\n","import type { ILineChartSpec } from '@visactor/vchart'\nimport type { ILineLikeLabelSpec } from '@visactor/vchart/esm/series/mixin/interface'\nimport { autoFormatter, createFormatter, findMeasureById } from '../../../../utils'\nimport type { Datum, Label, SpecPipe } from 'src/types'\nimport { isEmpty } from 'remeda'\n\nexport const label: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo, locale } = advancedVSeed\n const { chartType } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { label: Label }\n\n if (!baseConfig || !baseConfig.label) {\n return result\n }\n\n const { measureId, measureValue } = datasetReshapeInfo[0].foldInfo\n // const { groupId, groupName } = datasetReshapeInfo[0].unfoldInfo\n const { label } = baseConfig\n const { enable } = label\n\n result.label = {\n visible: enable,\n formatMethod: (value: string, datum: Datum) => {\n const result = []\n\n const formatValue = (value: number) => {\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return value\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n }\n\n result.push(formatValue(datum[measureValue] as number))\n\n return result.join(' ')\n },\n } as ILineLikeLabelSpec\n return result\n}\n","import { isEmpty } from 'remeda'\nimport { autoFormatter, createFormatter, findMeasureById } from '../../../../utils'\nimport type { Datum, SpecPipe, Tooltip } from 'src/types'\n\nexport const tooltip: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo, chartType, locale, dimensions } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n\n const { measureId, measureValue, measureName } = datasetReshapeInfo[0].foldInfo\n const { groupName } = datasetReshapeInfo[0].unfoldInfo\n\n result.tooltip = {\n visible: enable,\n\n mark: {\n title: {\n visible: true,\n },\n content: [\n ...dimensions.map((item) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (datum: unknown) => {\n if (item.alias || item.id) {\n return item.alias || item.id\n }\n return (datum as Datum) && ((datum as Datum)[item.id] as string)\n },\n value: (datum: unknown) => {\n return (datum as Datum) && ((datum as Datum)[item.id] as string)\n },\n })),\n {\n visible: true,\n hasShape: true,\n key: (datum) => (datum && (datum[measureName || groupName] as string)) || '',\n value: (datum) => {\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n },\n },\n ],\n },\n dimension: {\n content: [\n {\n visible: true,\n key: (datum) => (datum && (datum[groupName] as string)) || '',\n value: (datum) => {\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n },\n shapeType: 'rectRound',\n },\n ],\n },\n }\n return result\n}\n","import type { ICartesianCrosshairSpec, ILineChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const verticalCrosshairLine: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n\n const config = advancedVSeed.config?.[chartType as 'line']?.crosshairLine\n if (!config) {\n return result\n }\n\n if (!result.crosshair) {\n result.crosshair = {}\n }\n\n const visible = config.visible || true\n const lineColor = config.lineColor || undefined\n const labelColor = config.labelColor || undefined\n const labelVisible = config.labelVisible || undefined\n const labelBackgroundColor = config.labelBackgroundColor || undefined\n\n const crosshair = result.crosshair as ICartesianCrosshairSpec\n crosshair.xField = {\n visible,\n line: {\n type: 'line',\n style: {\n lineWidth: 1,\n opacity: 1,\n stroke: lineColor,\n lineDash: [4, 2],\n },\n },\n label: {\n visible: labelVisible,\n labelBackground: {\n visible: labelVisible,\n style: {\n fill: labelBackgroundColor,\n },\n },\n style: {\n fill: labelColor,\n },\n },\n }\n\n return result\n}\n","import type { StringOrNumber } from '@visactor/vchart'\nimport type { Legend, SpecPipe } from 'src/types'\n\nexport const discreteLegend: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { datasetReshapeInfo, chartType } = advancedVSeed\n const { unfoldInfo } = datasetReshapeInfo[0]\n const baseConfig = advancedVSeed.config[chartType] as { legend: Legend }\n if (!baseConfig || !baseConfig.legend) {\n return result\n }\n\n const { legend } = baseConfig\n const {\n enable,\n position = 'bottom',\n labelFontColor,\n labelFontSize = 12,\n labelFontWeight,\n maxSize = 1,\n border,\n shapeType = 'rectRound',\n } = legend || {}\n\n const orient = ['bottom', 'bottomLeft', 'bottomRight', 'bl', 'br'].includes(position)\n ? 'bottom'\n : ['top', 'topLeft', 'topRight', 'tl', 'tr'].includes(position)\n ? 'top'\n : ['left', 'leftTop', 'leftBottom', 'lt', 'lb'].includes(position)\n ? 'left'\n : 'right'\n\n const legendPosition = ['topLeft', 'bottomLeft', 'leftTop', 'rightTop', 'lt', 'rt', 'tl', 'bl'].includes(position)\n ? 'start'\n : ['topRight', 'bottomRight', 'leftBottom', 'rightBottom', 'lb', 'rb', 'rt', 'br'].includes(position)\n ? 'end'\n : 'middle'\n\n result.legends = {\n type: 'discrete',\n visible: enable,\n maxCol: Math.max(1, maxSize),\n maxRow: Math.max(1, maxSize),\n autoPage: true,\n orient,\n position: legendPosition,\n data: border\n ? (items) => {\n return items.map((item) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n item.shape.outerBorder = {\n stroke: item.shape.fill,\n distance: 3,\n lineWidth: 1,\n }\n return item\n })\n }\n : undefined,\n item: {\n focus: true,\n maxWidth: '30%',\n focusIconStyle: {\n size: labelFontSize + 2,\n fill: labelFontColor,\n fontWeight: labelFontWeight,\n },\n shape: {\n space: border ? 6 : 4,\n style: {\n symbolType: shapeType,\n size: border ? 8 : 10,\n },\n },\n label: {\n formatMethod: (value: StringOrNumber) => {\n return unfoldInfo.colorIdMap[String(value)] ?? value\n },\n style: {\n fontSize: labelFontSize,\n fill: labelFontColor,\n fontWeight: labelFontWeight,\n },\n },\n background: {\n state: {\n selectedHover: {\n fill: labelFontColor,\n fillOpacity: 0.05,\n },\n },\n },\n },\n padding: 0,\n }\n return result\n}\n","import type { Datum } from 'src/types'\nimport type {\n DimensionSelector,\n MeasureSelector,\n PartialDatumSelector,\n Selector,\n Selectors,\n ValueSelector,\n} from '../types/dataSelector'\nimport { omit } from 'remeda'\n\nexport const selector = (vchartDatum: Datum, selector: Selector | Selectors | undefined | null) => {\n // 无有效选择器, 则认为全部匹配成功\n if (!selector) {\n return true\n }\n\n const selectorMode = 'And'\n\n // 过滤掉 vchart 相关字段\n const vchartKeys = Object.keys(vchartDatum).filter((k) => k.toLocaleLowerCase().startsWith('__vchart'))\n const datum = omit(vchartDatum, vchartKeys) as Datum\n\n // 统一处理选择器为数组\n const selectors = (Array.isArray(selector) ? selector : [selector]) as Selectors\n\n return selectors[selectorMode === 'And' ? 'every' : 'some']((selector) => {\n // 1. 字符串或数字\n if (isValueSelector(selector)) {\n if (Object.values(datum).find((v) => v === selector)) {\n return true\n }\n }\n\n // 2. 指标选择器\n else if (isMeasureSelector(selector)) {\n const op = selector.operator || selector.op\n const selectorValueArr = Array.isArray(selector.value) ? selector.value : [selector.value]\n\n switch (op) {\n case '=':\n case '==':\n if (datum[selector.field] === selectorValueArr[0]) {\n return true\n }\n break\n case '!=':\n if (datum[selector.field] !== selectorValueArr[0]) {\n return true\n }\n break\n case '>':\n if (datum[selector.field] > selectorValueArr[0]) {\n return true\n }\n break\n case '<':\n if (datum[selector.field] < selectorValueArr[0]) {\n return true\n }\n break\n case '>=':\n if (datum[selector.field] >= selectorValueArr[0]) {\n return true\n }\n break\n case '<=':\n if (datum[selector.field] <= selectorValueArr[0]) {\n return true\n }\n break\n case 'between':\n if (\n Array.isArray(selector.value) &&\n datum[selector.field] >= selectorValueArr[0] &&\n datum[selector.field] <= selectorValueArr[1]\n ) {\n return true\n }\n break\n default:\n break\n }\n }\n // 3. 维度选择器\n else if (isDimensionSelector(selector)) {\n const op = selector.operator || selector.op\n const selectorValueArr = Array.isArray(selector.value) ? selector.value : [selector.value]\n switch (op) {\n case 'in':\n if (selectorValueArr.includes(datum[selector.field] as string | number)) {\n return true\n }\n break\n case 'not in':\n if (!selectorValueArr.includes(datum[selector.field] as string | number)) {\n return true\n }\n break\n default:\n break\n }\n }\n // 4. 部分数据对象选择器\n else if (isPartialDatumSelector(selector)) {\n if (Object.keys(selector).every((key) => datum[key] === selector[key])) {\n return true\n }\n }\n\n return false\n })\n}\n\nexport const isValueSelector = (selector: Selector): selector is ValueSelector => {\n return typeof selector === 'string' || typeof selector === 'number'\n}\n\nexport const isPartialDatumSelector = (selector: Selector): selector is PartialDatumSelector => {\n return typeof selector === 'object' && selector !== null\n}\n\nexport const isMeasureSelector = (selector: Selector): selector is MeasureSelector => {\n return (\n typeof selector === 'object' &&\n selector !== null &&\n 'field' in selector &&\n ('operator' in selector || 'op' in selector) &&\n 'value' in selector &&\n (['=', '==', '!=', '>', '<', '>=', '<=', 'between'].includes(selector.operator as string) ||\n ['=', '==', '!=', '>', '<', '>=', '<=', 'between'].includes(selector.op as string))\n )\n}\n\nexport const isDimensionSelector = (selector: Selector): selector is DimensionSelector => {\n return (\n typeof selector === 'object' &&\n selector !== null &&\n 'field' in selector &&\n ('operator' in selector || 'op' in selector) &&\n 'value' in selector &&\n (['in', 'not in'].includes(selector.operator as string) || ['in', 'not in'].includes(selector.op as string))\n )\n}\n","import type { IAreaChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../../dataSelector'\nimport type { Datum, PointStyle, SpecPipe } from 'src/types'\n\nexport const pointStyle: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { markStyle } = advancedVSeed\n const { pointStyle } = markStyle\n const result = {\n ...spec,\n } as IAreaChartSpec\n\n if (!pointStyle) {\n return result\n }\n const pointStyles = (Array.isArray(pointStyle) ? pointStyle : [pointStyle]) as PointStyle[]\n\n const customMap = pointStyles.reduce<object>((result, style, index) => {\n const { pointBorderColor, pointBorderStyle, pointBorderWidth = 1, pointColor, pointColorOpacity, pointSize } = style\n\n const lineDash = pointBorderStyle === 'dashed' ? [5, 2] : pointBorderStyle === 'dotted' ? [2, 5] : [0, 0]\n return {\n ...result,\n [`custom${index + 1}`]: {\n // 优先级: 后者覆盖前者\n level: index + 1,\n filter: (datum: Datum) => {\n if (selector(datum, style.selector)) {\n return true\n }\n return false\n },\n style: {\n size: pointSize,\n fill: pointColor,\n fillOpacity: pointColorOpacity,\n innerBorder: {\n stroke: pointBorderColor,\n lineWidth: pointBorderWidth,\n distance: (pointBorderWidth || 0) / 2,\n lineDash: lineDash,\n },\n },\n },\n }\n }, {})\n\n return {\n ...result,\n point: {\n state: {\n ...customMap,\n },\n },\n }\n}\n","import type { IScatterChartSpec } from '@visactor/vchart'\nimport type { ISeriesMarkAttributeContext } from '@visactor/vchart/esm/compile/mark'\nimport type { SpecPipe } from 'src/types'\n\nexport const pointStateDimensionHover: SpecPipe = (spec) => {\n const point = (spec as IScatterChartSpec).point || {}\n const result = {\n ...spec,\n point: {\n ...point,\n state: {\n ...(point.state || {}),\n dimension_hover: {\n scaleX: 1.4,\n scaleY: 1.4,\n outerBorder: {\n lineWidth: 4,\n strokeOpacity: 0.25,\n distance: 2,\n },\n },\n },\n },\n } as IScatterChartSpec\n return result\n}\n\nexport const pointStateHover: SpecPipe = (spec, context) => {\n const point = (spec as IScatterChartSpec).point || {}\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n const result = {\n ...spec,\n point: {\n ...point,\n state: {\n ...(point.state || {}),\n hover: {\n scaleX: 1.4,\n scaleY: 1.4,\n stroke: (datum, context: ISeriesMarkAttributeContext) => {\n const field = encoding[0]?.group?.[0] as string\n const color = context.seriesColor(datum[field] as string)\n return color\n },\n fillOpacity: 0.6,\n lineWidth: 1,\n },\n },\n },\n } as IScatterChartSpec\n return result\n}\n","import type { IAreaChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../../dataSelector'\nimport type { Datum, LineStyle, SpecPipe } from 'src/types'\nimport { groupBy } from 'remeda'\n\nexport const lineStyle: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { markStyle, encoding, dataset } = advancedVSeed\n const { lineStyle } = markStyle\n if (!lineStyle) {\n return spec\n }\n const result = { ...spec } as IAreaChartSpec\n\n const lineStyles = (Array.isArray(lineStyle) ? lineStyle : [lineStyle]) as LineStyle[]\n\n const group = encoding[0]?.group?.[0]\n const lineGroups = groupBy(dataset, (d) => d[group ?? ''] as string)\n\n const customMap = lineStyles.reduce<object>((result, style, index) => {\n const { lineColor, lineColorOpacity, lineSmooth, lineStyle, lineWidth } = style\n\n const dashSegment = (lineWidth ?? 2) * 2\n const dashGap = lineWidth ?? 2\n\n const lineDash =\n lineStyle === 'dashed' ? [dashSegment, dashSegment] : lineStyle === 'dotted' ? [dashGap / 2, dashGap * 2] : [0, 0]\n\n const curveType = lineSmooth ? 'monotone' : 'linear'\n\n return {\n ...result,\n [`custom${index + 1}`]: {\n // 优先级: 后者覆盖前者\n level: index + 1,\n filter: (datum: Datum) => {\n const lineData = lineGroups[datum[group ?? ''] as string]\n for (const d of lineData) {\n if (selector(d, style.selector)) {\n return true\n }\n }\n return false\n },\n style: {\n curveType: curveType,\n strokeOpacity: lineColorOpacity,\n stroke: lineColor,\n lineWidth: lineWidth,\n lineDash: lineDash,\n },\n },\n }\n }, {})\n\n return {\n ...result,\n line: {\n state: {\n ...customMap,\n },\n },\n }\n}\n","import type { Datum } from \"src/types\"\n\nexport const isSubset = (sub: Datum, obj: Datum) => {\n return Object.entries(sub).every(([key, value]) => {\n if (typeof value === 'string') {\n return obj[key] === value\n }\n if (typeof value === 'number') {\n return obj[key] === value\n }\n return true\n })\n}\n","import type { ICartesianSeries, ILineChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../../dataSelector'\nimport type { Datum, SpecPipe } from 'src/types'\nimport { isSubset } from './utils'\nimport { ANNOTATION_Z_INDEX } from '../../../../utils/constant'\n\nexport const annotationPoint: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { annotation } = advancedVSeed\n\n if (!annotation || !annotation.annotationPoint) {\n return spec\n }\n\n const { annotationPoint } = annotation\n const annotationPointList = Array.isArray(annotationPoint) ? annotationPoint : [annotationPoint]\n\n const markPoint = annotationPointList.flatMap((annotationPoint) => {\n const {\n selector: selectorPoint,\n text = '',\n textColor = '#ffffff',\n textFontSize = 12,\n textFontWeight = 400,\n textAlign = 'center',\n textBaseline = 'top',\n textBackgroundBorderColor,\n textBackgroundBorderRadius = 4,\n textBackgroundBorderWidth = 1,\n textBackgroundColor = '#212121',\n textBackgroundPadding = 2,\n textBackgroundVisible = true,\n offsetX = 0,\n offsetY = 0,\n } = annotationPoint\n\n const dataset = advancedVSeed.dataset.flat()\n const selectedData = selectorPoint ? dataset.filter((datum) => selector(datum, selectorPoint)) : []\n\n return selectedData.map((datum) => {\n return {\n zIndex: ANNOTATION_Z_INDEX,\n regionRelative: true,\n position: (data: Datum[], context: ICartesianSeries) => {\n const targetDatum = data.find((item) => isSubset(datum, item))\n if (targetDatum) {\n const { x, y } = context.dataToPosition(targetDatum) as { x: number; y: number }\n return {\n x,\n y,\n }\n }\n },\n\n itemLine: {\n visible: false,\n },\n itemContent: {\n offsetY,\n offsetX,\n text: {\n text: text,\n style: {\n visible: true,\n textAlign: textAlign,\n textBaseline: textBaseline,\n fill: textColor,\n stroke: textBackgroundColor,\n lineWidth: 1,\n fontSize: textFontSize,\n fontWeight: textFontWeight,\n dy: textFontSize,\n },\n labelBackground: {\n visible: textBackgroundVisible,\n padding: textBackgroundPadding,\n style: {\n cornerRadius: textBackgroundBorderRadius ?? 4,\n fill: textBackgroundColor,\n stroke: textBackgroundBorderColor,\n lineWidth: textBackgroundBorderWidth,\n dy: textFontSize,\n },\n },\n },\n },\n }\n })\n }) as ILineChartSpec['markPoint']\n\n return {\n ...spec,\n markPoint,\n }\n}\n","import type { ILineChartSpec, IMarkLineSpec } from '@visactor/vchart'\nimport { selector } from '../../../../../dataSelector'\nimport type { SpecPipe } from 'src/types'\nimport { isArray, isNumber, isString } from 'remeda'\nimport { ANNOTATION_Z_INDEX } from '../../../../utils/constant'\n\nexport const annotationVerticalLine: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { annotation, encoding } = advancedVSeed\n\n if (!annotation || !annotation.annotationVerticalLine) {\n return spec\n }\n\n const { annotationVerticalLine } = annotation\n const annotationVerticalLineList = Array.isArray(annotationVerticalLine)\n ? annotationVerticalLine\n : [annotationVerticalLine]\n\n const positionMap = {\n outsideStart: 'start',\n outsideEnd: 'end',\n outsideMiddle: 'middle',\n insideStart: 'insideStartTop',\n insideMiddle: 'insideMiddleTop',\n insideEnd: 'insideEndTop',\n }\n const markLine = annotationVerticalLineList.flatMap((annotationVerticalLine) => {\n const {\n selector: selectorPoint,\n xValue,\n text = '',\n textPosition = 'insideEnd',\n textColor = '#ffffff',\n textFontSize = 12,\n textFontWeight = 400,\n textAlign = 'right',\n textBaseline = 'top',\n\n textBackgroundVisible = true,\n textBackgroundBorderColor = '#212121',\n textBackgroundColor = '#212121',\n textBackgroundBorderRadius = 4,\n textBackgroundBorderWidth = 1,\n textBackgroundPadding = 2,\n\n lineVisible = true,\n lineColor = '#212121',\n lineWidth = 1,\n lineStyle = 'dashed',\n } = annotationVerticalLine\n\n const dataset = advancedVSeed.dataset.flat()\n\n const generateOneMarkLine = (x: number | string) => ({\n x: x as string,\n zIndex: ANNOTATION_Z_INDEX,\n line: {\n style: {\n visible: lineVisible,\n stroke: lineColor,\n lineStyle: lineStyle,\n lineWidth: lineWidth,\n lineDash: lineStyle === 'dashed' ? [5, 2] : lineStyle === 'dotted' ? [2, 5] : [0],\n },\n },\n label: {\n text: text,\n position: positionMap[textPosition || 'insideEnd'],\n style: {\n visible: true,\n stroke: textBackgroundColor,\n lineWidth: 1,\n textAlign: textAlign,\n textBaseline: textBaseline,\n fill: textColor,\n fontSize: textFontSize,\n fontWeight: textFontWeight,\n dy: textFontSize,\n },\n labelBackground: {\n visible: textBackgroundVisible,\n padding: textBackgroundPadding,\n style: {\n dy: textFontSize,\n cornerRadius: textBackgroundBorderRadius ?? 4,\n fill: textBackgroundColor,\n stroke: textBackgroundBorderColor,\n lineWidth: textBackgroundBorderWidth,\n },\n },\n },\n endSymbol: {\n visible: true,\n size: 10 + (lineWidth || 1),\n style: {\n dy: 4,\n fill: lineColor,\n },\n },\n })\n\n if ((!selectorPoint && isArray(xValue)) || isString(xValue) || isNumber(xValue)) {\n const xValueArr = Array.isArray(xValue) ? xValue : [xValue]\n return xValueArr.map(generateOneMarkLine)\n }\n\n const selectedData = selectorPoint ? dataset.filter((datum) => selector(datum, selectorPoint)) : []\n\n return selectedData.map((datum) => {\n const x = encoding[0]?.x?.[0]\n if (!x) {\n return {}\n }\n return generateOneMarkLine(datum[x] as string)\n })\n }) as IMarkLineSpec[]\n\n const specMarkLine = ((spec as ILineChartSpec).markLine as IMarkLineSpec[]) || []\n const newMarkLine = [...specMarkLine, ...(markLine || [])]\n\n return {\n ...spec,\n markLine: newMarkLine,\n }\n}\n","import type { ILineChartSpec, IMarkLineSpec } from '@visactor/vchart'\nimport { selector } from '../../../../../dataSelector'\nimport type { SpecPipe } from 'src/types'\nimport { isArray, isNumber, isString } from 'remeda'\nimport { ANNOTATION_Z_INDEX } from '../../../../utils/constant'\n\nexport const annotationHorizontalLine: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { annotation, encoding } = advancedVSeed\n\n if (!annotation || !annotation.annotationHorizontalLine) {\n return spec\n }\n\n const { annotationHorizontalLine } = annotation\n const annotationVerticalLineList = Array.isArray(annotationHorizontalLine)\n ? annotationHorizontalLine\n : [annotationHorizontalLine]\n\n const positionMap = {\n outsideStart: 'start',\n outsideEnd: 'end',\n outsideMiddle: 'middle',\n insideStart: 'insideStartTop',\n insideMiddle: 'insideMiddleTop',\n insideEnd: 'insideEndTop',\n }\n\n const markLine = annotationVerticalLineList.flatMap((annotationVerticalLine) => {\n const {\n selector: selectorPoint,\n yValue,\n text = '',\n textPosition = 'insideEnd',\n textColor = '#ffffff',\n textFontSize = 12,\n textFontWeight = 400,\n textAlign = 'right',\n textBaseline = 'top',\n\n lineColor = '#212121',\n lineStyle = 'dashed',\n lineVisible = true,\n lineWidth = 1,\n\n textBackgroundVisible = true,\n textBackgroundColor = '#212121',\n textBackgroundBorderColor = '#212121',\n textBackgroundBorderRadius = 4,\n textBackgroundBorderWidth = 1,\n textBackgroundPadding = 2,\n } = annotationVerticalLine\n\n const dataset = advancedVSeed.dataset.flat()\n\n const generateOneMarkLine = (y: string | number) => {\n return {\n y,\n zIndex: ANNOTATION_Z_INDEX,\n line: {\n style: {\n visible: lineVisible,\n stroke: lineColor,\n lineStyle: lineStyle,\n lineWidth: lineWidth,\n lineDash: lineStyle === 'dashed' ? [5, 2] : lineStyle === 'dotted' ? [2, 5] : [0],\n },\n },\n label: {\n text: text,\n position: positionMap[textPosition || 'insideEnd'],\n style: {\n visible: true,\n dy: textFontSize,\n stroke: textBackgroundColor,\n lineWidth: 1,\n textAlign: textAlign,\n textBaseline: textBaseline,\n fill: textColor,\n fontSize: textFontSize,\n fontWeight: textFontWeight,\n },\n labelBackground: {\n visible: textBackgroundVisible,\n padding: textBackgroundPadding,\n style: {\n dy: textFontSize,\n cornerRadius: textBackgroundBorderRadius ?? 4,\n fill: textBackgroundColor,\n stroke: textBackgroundBorderColor,\n lineWidth: textBackgroundBorderWidth,\n },\n },\n },\n endSymbol: {\n visible: true,\n size: 10 + (lineWidth || 1),\n style: {\n dx: -4,\n fill: lineColor,\n },\n },\n }\n }\n\n if ((!selectorPoint && isArray(yValue)) || isString(yValue) || isNumber(yValue)) {\n const yValueArr = Array.isArray(yValue) ? yValue : [yValue]\n return yValueArr.map(generateOneMarkLine)\n }\n\n const selectedData = selectorPoint ? dataset.filter((datum) => selector(datum, selectorPoint)) : []\n\n return selectedData.map((datum) => {\n const y = encoding[0]?.y?.[0]\n if (!y) {\n return {}\n }\n return generateOneMarkLine(datum[y] as string)\n })\n }) as IMarkLineSpec[]\n const specMarkLine = ((spec as ILineChartSpec).markLine as IMarkLineSpec[]) || []\n const newMarkLine = [...specMarkLine, ...(markLine || [])]\n return {\n ...spec,\n markLine: newMarkLine,\n }\n}\n","import type { ICartesianSeries, ILineChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../../dataSelector'\nimport type { Datum, SpecPipe } from 'src/types'\nimport { isSubset } from './utils'\nimport { ANNOTATION_Z_INDEX } from '../../../../utils/constant'\n\nexport const annotationArea: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { annotation } = advancedVSeed\n\n if (!annotation || !annotation.annotationArea) {\n return spec\n }\n\n const { annotationArea } = annotation\n const annotationAreaList = Array.isArray(annotationArea) ? annotationArea : [annotationArea]\n\n const positionMap = {\n top: 'insideTop',\n topRight: 'insideTopRight',\n topLeft: 'insideTopLeft',\n bottom: 'insideBottom',\n bottomLeft: 'insideBottomLeft',\n bottomRight: 'insideBottomRight',\n left: 'insideLeft',\n right: 'insideRight',\n }\n\n const markArea = annotationAreaList.flatMap((annotationArea) => {\n const {\n selector: selectorPoint,\n text = '',\n textPosition = 'top',\n textColor = '#ffffff',\n textFontSize = 12,\n textFontWeight = 400,\n textAlign = 'center',\n textBaseline = 'top',\n\n textBackgroundVisible = true,\n textBackgroundColor = '#191d24',\n textBackgroundBorderColor = '#191d24',\n textBackgroundBorderWidth = 1,\n textBackgroundBorderRadius = 4,\n textBackgroundPadding = 4,\n\n areaColor = '#888888',\n areaColorOpacity = 0.15,\n areaBorderColor = '#888888',\n areaBorderRadius = 4,\n areaBorderWidth = 1,\n\n outerPadding = 4,\n } = annotationArea\n\n const dataset = advancedVSeed.dataset.flat()\n const selectedData = selectorPoint ? dataset.filter((datum) => selector(datum, selectorPoint)) : []\n\n const labelPosition = positionMap[textPosition || 'top']\n const isBottom = labelPosition.toLocaleLowerCase().includes('bottom')\n\n return {\n zIndex: ANNOTATION_Z_INDEX,\n regionRelative: true,\n positions: (data: Datum[], context: ICartesianSeries) => {\n const positionData = data.filter((item) => selectedData.some((datum) => isSubset(datum, item)))\n const xyList = positionData.map((datum) => context.dataToPosition(datum) as { x: number; y: number })\n\n const yAxisHelper = context.getYAxisHelper() as unknown as {\n getBandwidth: (depth?: number) => number\n getScale: () => {\n range: () => number[]\n }\n }\n const xAxisHelper = context.getXAxisHelper() as unknown as {\n getBandwidth: (depth?: number) => number\n getScale: () => {\n range: () => number[]\n }\n }\n\n if (typeof xAxisHelper?.getBandwidth === 'function') {\n const yScale = yAxisHelper.getScale()\n\n const minX = Math.min(...xyList.map((item) => item.x)) - (outerPadding || 4)\n const maxX = Math.max(...xyList.map((item) => item.x)) + (outerPadding || 4)\n const minY = Math.min(...yScale.range())\n const maxY = Math.max(...yScale.range())\n return [\n // 左上\n {\n x: minX,\n y: minY,\n },\n // 右上\n {\n x: maxX,\n y: minY,\n },\n // 右下\n {\n x: maxX,\n y: maxY,\n },\n // 左下\n {\n x: minX,\n y: maxY,\n },\n ]\n }\n\n if (typeof yAxisHelper?.getBandwidth === 'function') {\n const xScale = xAxisHelper.getScale()\n\n const minY = Math.min(...xyList.map((item) => item.y)) - (outerPadding || 4)\n const maxY = Math.max(...xyList.map((item) => item.y)) + (outerPadding || 4)\n const minX = Math.min(...xScale.range())\n const maxX = Math.max(...xScale.range())\n\n return [\n // 左上\n {\n x: minX,\n y: minY,\n },\n // 右上\n {\n x: maxX,\n y: minY,\n },\n // 右下\n {\n x: maxX,\n y: maxY,\n },\n // 左下\n {\n x: minX,\n y: maxY,\n },\n ]\n }\n\n return []\n },\n label: {\n position: labelPosition,\n visible: true,\n text: text,\n style: {\n dy: isBottom ? -(textFontSize || 12) * 2 : textFontSize,\n textAlign: textAlign,\n textBaseline: textBaseline,\n fill: textColor,\n stroke: textBackgroundColor,\n lineWidth: 1,\n fontSize: textFontSize,\n fontWeight: textFontWeight,\n },\n\n labelBackground: {\n visible: textBackgroundVisible,\n padding: textBackgroundPadding,\n style: {\n dy: isBottom ? -(textFontSize || 12) * 2 : textFontSize,\n cornerRadius: textBackgroundBorderRadius ?? 4,\n fill: textBackgroundColor,\n stroke: textBackgroundBorderColor,\n lineWidth: textBackgroundBorderWidth,\n },\n },\n },\n area: {\n style: {\n visible: true,\n fill: areaColor,\n fillOpacity: areaColorOpacity,\n stroke: areaBorderColor,\n lineWidth: areaBorderWidth,\n cornerRadius: areaBorderRadius,\n },\n },\n }\n }) as ILineChartSpec['markArea']\n\n return {\n ...spec,\n markArea: markArea,\n }\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { SpecPipe } from 'src/types'\n\nexport const initPivot: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n\n return {\n ...result,\n animation: true,\n rows: [],\n columns: [],\n indicators: [],\n records: [],\n widthMode: 'adaptive',\n heightMode: 'adaptive',\n indicatorsAsCol: false,\n }\n}\n\nexport const pivotIndicatorsAsRow: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n\n return {\n ...result,\n indicatorsAsCol: false,\n }\n}\n\nexport const pivotIndicatorsAsCol: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n\n return {\n ...result,\n indicatorsAsCol: true,\n }\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { SpecPipe } from 'src/types'\n\nexport const pivotGridStyle: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const transparent = 'rgba(0,0,0,0)'\n\n const hoverBackgroundColor = 'rgba(178,186,207, 0.2)'\n return {\n ...result,\n theme: {\n underlayBackgroundColor: transparent,\n bodyStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: [0, 0, 2, 0],\n bgColor: transparent,\n padding: [0, 0, 1, 0],\n hover: {\n cellBgColor: 'transparent',\n },\n },\n headerStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n fontSize: 12,\n color: '#333333',\n textAlign: 'center',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n rowHeaderStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n fontSize: 12,\n color: '#333333',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n cornerHeaderStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n textAlign: 'center',\n fontSize: 12,\n color: '#333333',\n fontWeight: 'bold',\n borderLineWidth: [0, 0, 0, 0],\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n cornerRightTopCellStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n cornerLeftBottomCellStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n cornerRightBottomCellStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n rightFrozenStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n bottomFrozenStyle: {\n borderColor: 'rgba(0,4,20,0.2)',\n borderLineWidth: 0,\n bgColor: transparent,\n hover: {\n cellBgColor: hoverBackgroundColor,\n },\n },\n selectionStyle: {\n cellBgColor: '',\n cellBorderColor: '',\n },\n frameStyle: {\n borderLineWidth: 0,\n bgColor: transparent,\n },\n },\n }\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport { execPipeline } from '../../../../utils'\nimport type { SpecPipe, SpecPipeline, SpecPipelineContext } from 'src/types'\nimport { unique } from 'remeda'\n\nexport const pivotIndicators =\n (chartPipeline: SpecPipeline): SpecPipe =>\n (spec, context) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo, encoding } = advancedVSeed\n\n const colorItems = unique(datasetReshapeInfo.flatMap((d) => d.unfoldInfo.colorItems))\n\n const indicators = datasetReshapeInfo.map((reshapeInfo, index) => {\n const measure = measures?.find((d) => d.id === reshapeInfo.id)\n\n const newEncoding = [encoding[index]]\n const newDatasetReshapeInfo = [\n {\n ...reshapeInfo,\n unfoldInfo: { ...reshapeInfo.unfoldInfo, colorItems },\n },\n ]\n const newContext: SpecPipelineContext = {\n ...context,\n advancedVSeed: {\n ...advancedVSeed,\n datasetReshapeInfo: newDatasetReshapeInfo,\n encoding: newEncoding,\n },\n }\n\n const chartSpec = execPipeline(chartPipeline, newContext, {})\n return {\n indicatorKey: reshapeInfo.id,\n title: measure?.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 PivotChartConstructorOptions\n }\n\nexport const pivotIndicatorsAsRow: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n\n return {\n ...result,\n indicatorsAsCol: false,\n }\n}\n\nexport const pivotIndicatorsAsCol: SpecPipe = (spec) => {\n const result = { ...spec } as PivotChartConstructorOptions\n\n return {\n ...result,\n indicatorsAsCol: true,\n }\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { SpecPipe } from 'src/types'\n\nexport const datasetPivot: SpecPipe = (spec, context) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const { dataset, datasetReshapeInfo } = advancedVSeed\n const records = dataset.reduce((pre, cur, index) => {\n const id = datasetReshapeInfo[index].id\n pre[id] = cur\n return pre\n }, {})\n return {\n ...result,\n records: records,\n } as PivotChartConstructorOptions\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { IBasicDimension } from '@visactor/vtable/es/ts-types/pivot-table/dimension/basic-dimension'\nimport type { Dimensions, SpecPipe } from 'src/types'\n\nexport const pivotRowDimensions: SpecPipe = (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.location === 'rowDimension')\n const rows: IBasicDimension[] = rowDimensions.map((dim) => ({\n dimensionKey: dim.id,\n title: dim.alias || dim.id,\n }))\n return {\n ...result,\n rows: rows,\n }\n}\n","import type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { IBasicDimension } from '@visactor/vtable/es/ts-types/pivot-table/dimension/basic-dimension'\nimport type { Dimensions, SpecPipe } from 'src/types'\n\nexport const pivotColumnDimensions: SpecPipe = (spec, context) => {\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.location === 'columnDimension')\n const columns: IBasicDimension[] = columnDimensions.map((dim) => ({\n dimensionKey: dim.id,\n title: dim.alias || dim.id,\n }))\n return {\n ...result,\n columns: columns,\n }\n}\n","import type { StringOrNumber } from '@visactor/vchart'\nimport type { PivotChartConstructorOptions } from '@visactor/vtable'\nimport type { IDiscreteTableLegendOption } from '@visactor/vtable/es/ts-types/component/legend'\nimport { unique } from 'remeda'\nimport type { Color, Legend, SpecPipe } from 'src/types'\n\nexport const pivotDiscreteLegend: SpecPipe = (spec, context) => {\n const result = { ...spec } as PivotChartConstructorOptions\n const { advancedVSeed } = context\n const { chartType } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { legend: Legend; color: Color }\n\n if (!baseConfig || !baseConfig.legend) {\n return result\n }\n\n const { datasetReshapeInfo } = advancedVSeed\n\n const colorItems = unique(\n datasetReshapeInfo.flatMap((d) => {\n return d.unfoldInfo.colorItems\n }),\n )\n\n const colorIdMap = datasetReshapeInfo.reduce<Record<string, string>>((prev, cur) => {\n return { ...prev, ...cur.unfoldInfo.colorIdMap }\n }, {})\n\n const { legend, color } = baseConfig\n const { colorScheme } = color\n\n const {\n enable,\n position = 'bottom',\n labelFontColor,\n labelFontSize = 12,\n labelFontWeight = 400,\n maxSize = 1,\n border,\n shapeType = 'rectRound',\n } = legend || {}\n\n const orient = ['bottom', 'bottomLeft', 'bottomRight', 'bl', 'br'].includes(position)\n ? 'bottom'\n : ['top', 'topLeft', 'topRight', 'tl', 'tr'].includes(position)\n ? 'top'\n : ['left', 'leftTop', 'leftBottom', 'lt', 'lb'].includes(position)\n ? 'left'\n : 'right'\n\n const legendPosition = ['topLeft', 'bottomLeft', 'leftTop', 'rightTop', 'lt', 'rt', 'tl', 'bl'].includes(position)\n ? 'start'\n : ['topRight', 'bottomRight', 'leftBottom', 'rightBottom', 'lb', 'rb', 'rt', 'br'].includes(position)\n ? 'end'\n : 'middle'\n\n const legends: IDiscreteTableLegendOption = {\n visible: enable,\n type: 'discrete',\n orient,\n position: legendPosition,\n maxCol: Math.max(1, maxSize),\n maxRow: Math.max(1, maxSize),\n data: colorItems.map((d, index) => ({\n label: d,\n shape: {\n outerBorder: border\n ? {\n stroke: colorScheme?.[index % colorScheme.length],\n distance: 3,\n lineWidth: 1,\n }\n : undefined,\n fill: colorScheme?.[index % colorScheme.length],\n },\n })),\n\n item: {\n focus: true,\n maxWidth: '30%',\n focusIconStyle: {\n size: labelFontSize + 2,\n fill: labelFontColor,\n fontWeight: labelFontWeight,\n },\n shape: {\n space: border ? 6 : 4,\n style: {\n symbolType: shapeType,\n size: border ? 8 : 10,\n },\n },\n label: {\n formatMethod: (value: StringOrNumber) => {\n return colorIdMap[String(value)] ?? value\n },\n style: {\n fontSize: labelFontSize,\n fill: labelFontColor,\n fontWeight: labelFontWeight,\n },\n },\n background: {\n state: {\n selectedHover: {\n fill: labelFontColor,\n fillOpacity: 0.05,\n },\n },\n },\n },\n } as unknown as IDiscreteTableLegendOption\n return { ...result, legends }\n}\n","import type { Spec, SpecPipe, SpecPipeline, SpecPipelineContext } from 'src/types'\nimport { execPipeline, isPivotChart } from '../../../../utils'\n\nexport const pivotAdapter = (pipeline: SpecPipeline, pivotPipeline: SpecPipeline): SpecPipe => {\n return (spec, context) => {\n const { vseed } = context\n const usePivotChart = isPivotChart(vseed)\n\n if (usePivotChart) {\n return execPipeline<Spec, SpecPipelineContext>(pivotPipeline, context, spec)\n }\n\n return execPipeline<Spec, SpecPipelineContext>(pipeline, context, spec)\n }\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n datasetXY,\n xBand,\n yLinear,\n initLine,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n initPivot,\n datasetPivot,\n pivotDiscreteLegend,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n pointStyle,\n lineStyle,\n verticalCrosshairLine,\n pointStateDimensionHover,\n progressive,\n} from '../pipes'\n\nconst line: SpecPipeline = [\n initLine,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n discreteLegend,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotLine: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initLine,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const lineSpecPipeline: SpecPipeline = [pivotAdapter(line, pivotLine)]\n","import { lineAdvancedPipeline, lineSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerLine = () => {\n Builder._advancedPipelineMap['line'] = lineAdvancedPipeline\n Builder._specPipelineMap['line'] = lineSpecPipeline\n}","import type { Dataset, Dimension, FoldInfo, Measure, UnfoldInfo } from 'src/types'\nimport { foldMeasures } from './foldMeasures'\nimport {\n UnfoldDimensionGroup,\n FoldMeasureId,\n FoldMeasureName,\n FoldMeasureValue,\n UnfoldDimensionGroupId,\n} from './constant'\nimport { unfoldDimensions } from './unfoldDimensions'\nimport { i18n } from '../i18n'\n\nconst emptyReshapeResult: {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n} = {\n dataset: [],\n foldInfo: {\n foldMap: {},\n measureId: '',\n measureName: '',\n measureValue: '',\n },\n unfoldInfo: {\n groupName: '',\n groupId: '',\n colorItems: [],\n colorIdMap: {},\n },\n}\n/**\n * 数据重塑为2个维度1个指标\n * @param dataset\n * @param dimensions\n * @param measures\n * @returns\n */\nexport const dataReshapeFor2D1M = (\n dataset: Dataset,\n dimensions: Dimension[],\n measures: Measure[],\n options?: {\n foldMeasureId?: string\n foldMeasureName?: string\n foldMeasureValue?: string\n unfoldDimensionGroup?: string\n unfoldDimensionGroupId?: string\n },\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n} => {\n const {\n foldMeasureId = FoldMeasureId,\n foldMeasureName = FoldMeasureName,\n foldMeasureValue = FoldMeasureValue,\n unfoldDimensionGroup = UnfoldDimensionGroup,\n unfoldDimensionGroupId = UnfoldDimensionGroupId,\n } = options || {}\n if (dimensions.length === 0 && measures.length === 0) {\n return emptyReshapeResult\n }\n\n // 合并所有指标为1个指标\n const { dataset: foldedDataset, foldInfo } = foldMeasures(\n dataset,\n measures,\n foldMeasureId,\n foldMeasureName,\n foldMeasureValue,\n )\n\n if (dimensions.length === 0) {\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n [\n { id: foldMeasureId, alias: i18n`指标Id`, location: 'dimension' },\n { id: foldMeasureName, alias: i18n`指标名称`, location: 'dimension' },\n ],\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\n 1,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n foldMeasureId,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n } else {\n const onlyOneMeasure = measures.length === 1\n const onlyOneDimension = dimensions.length === 1\n\n const dims = [...dimensions]\n if (!onlyOneMeasure || onlyOneDimension) {\n dims.push({ id: foldMeasureName, alias: i18n`指标名称`, location: 'dimension' })\n }\n\n // 展开指定的维度为指标\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n dims,\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\n 1,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n foldMeasureId,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n }\n}\n","import { dataReshapeFor2D1M } from 'src/dataReshape'\nimport type { AdvancedPipe } from 'src/types'\n\n/**\n * 数据重塑, 将任意维度、任意指标, 重塑为2个维度1个指标.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const reshapeTo2D1M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { dimensions, measures } = advancedVSeed\n\n if (!measures || !dimensions || !dataset) {\n return result\n }\n\n if (measures.length === 0) {\n throw new Error('measures can not be empty')\n }\n\n const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeFor2D1M(dataset, dimensions, measures)\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: [\n {\n id: '2D1M',\n index: 0,\n foldInfo,\n unfoldInfo,\n },\n ],\n dimensions,\n measures,\n }\n}\n","import { FoldMeasureId, FoldMeasureName, FoldMeasureValue, UnfoldDimensionGroup } from 'src/dataReshape/constant'\nimport { dataReshapeFor2D1M } from 'src/dataReshape'\nimport type { AdvancedPipe, Dataset, DatasetReshapeInfo, Dimensions, MeasureGroup } from 'src/types'\n\n/**\n * 数据重塑为透视结构, 如果存在指标分组, 则将数据按组划分. 如果存在行列维度, 则生成行列树结构.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const pivotReshapeTo2D1M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { measures } = advancedVSeed\n const dimensions = advancedVSeed.dimensions as Dimensions\n\n if (!measures || !dimensions) {\n return result\n }\n\n const measureGroups: MeasureGroup[] = []\n if (measures) {\n measures.forEach((measure: MeasureGroup) => {\n if (measure.children && measure.children.length > 0) {\n measureGroups.push(measure)\n }\n })\n }\n const commonDimensions = dimensions.filter((dim) => dim.location === 'dimension')\n\n const newDatasets: Dataset = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n measureGroups.forEach((measureGroup, index) => {\n const measures = measureGroup.children\n if (!measures) {\n return\n }\n const groupId = measureGroup.id\n const {\n dataset: newSubDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeFor2D1M(dataset, commonDimensions, measures, {\n foldMeasureId: FoldMeasureId,\n foldMeasureName: FoldMeasureName,\n foldMeasureValue: FoldMeasureValue + groupId,\n unfoldDimensionGroup: UnfoldDimensionGroup,\n })\n const reshapeInfo = {\n id: groupId,\n index,\n foldInfo,\n unfoldInfo,\n }\n newDatasets.push(newSubDataset)\n datasetReshapeInfo.push(reshapeInfo)\n })\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n reshapeTo2D1M,\n theme,\n pivotAdapter,\n columnConfig,\n markStyle,\n annotation,\n pivotReshapeTo2D1M,\n sortXBandAxis,\n sortLegend,\n} from '../pipes'\n\nexport const columnAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n sortXBandAxis,\n sortLegend,\n columnConfig,\n theme,\n markStyle,\n annotation,\n]\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initColumn: SpecPipe = (spec, context) => {\n const result = { ...spec } as IBarChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'bar'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n result.animation = true\n return result\n}\n","import type { SpecPipe, StackCornerRadius } from 'src/types'\n\nexport const stackCornerRadius: SpecPipe = (spec, context) => {\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const stackCornerRadius = advancedVSeed.config?.[chartType as 'column']?.stackCornerRadius as StackCornerRadius\n\n return {\n ...spec,\n stackCornerRadius,\n }\n}\n","import type { IAreaChartSpec, IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const stackInverse: SpecPipe = (spec) => {\n const result = { ...spec } as IAreaChartSpec | IBarChartSpec\n result.stackInverse = true\n return result\n}\n","import type { ICartesianCrosshairSpec, ILineChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const verticalCrosshairRect: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n\n const config = advancedVSeed.config?.[chartType as 'column']?.crosshairRect\n if (!config) {\n return result\n }\n\n if (!result.crosshair) {\n result.crosshair = {}\n }\n\n const visible = config.visible || true\n const rectColor = config.rectColor || undefined\n const labelColor = config.labelColor || undefined\n const labelVisible = config.labelVisible || false\n const labelBackgroundColor = config.labelBackgroundColor || undefined\n\n const crosshair = result.crosshair as ICartesianCrosshairSpec\n crosshair.xField = {\n visible,\n line: {\n type: 'rect',\n style: {\n lineWidth: 0,\n opacity: 0.2,\n fill: rectColor,\n },\n },\n label: {\n visible: labelVisible,\n labelBackground: {\n visible: labelVisible,\n style: {\n fill: labelBackgroundColor,\n },\n },\n style: {\n fill: labelColor,\n },\n },\n }\n\n return result\n}\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../../dataSelector'\nimport type { BarStyle, Datum, SpecPipe } from 'src/types'\n\nexport const barStyle: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { markStyle, dataset = [] } = advancedVSeed\n const { barStyle } = markStyle\n\n const showStroke = dataset.length <= 100\n\n const result = {\n ...spec,\n bar: {\n style: {\n lineWidth: showStroke ? 1 : 0,\n },\n state: {\n hover: {\n fillOpacity: 0.6,\n },\n },\n },\n } as IBarChartSpec\n\n if (!barStyle) {\n return result\n }\n\n const barStyles = (Array.isArray(barStyle) ? barStyle : [barStyle]) as BarStyle[]\n\n const customMap = barStyles.reduce<object>((result, style, index) => {\n const { barBorderColor, barBorderStyle, barBorderWidth = 1, barColor, barColorOpacity, barRadius } = style\n\n const lineDash = barBorderStyle === 'dashed' ? [5, 2] : barBorderStyle === 'dotted' ? [2, 5] : [0, 0]\n return {\n ...result,\n [`custom${index + 1}`]: {\n // 优先级: 后者覆盖前者\n level: index + 1,\n filter: (datum: Datum) => {\n if (selector(datum, style.selector)) {\n return true\n }\n return false\n },\n style: {\n fill: barColor,\n fillOpacity: barColorOpacity,\n cornerRadius: barRadius,\n innerBorder: {\n stroke: barBorderColor,\n lineWidth: barBorderWidth,\n distance: (barBorderWidth || 0) / 2,\n lineDash: lineDash,\n },\n },\n },\n }\n }, {})\n\n return {\n ...result,\n bar: {\n state: {\n ...customMap,\n },\n },\n }\n}\n","import type { ICartesianSeries, ILineChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../../dataSelector'\nimport type { Datum, SpecPipe } from 'src/types'\nimport { isSubset } from './utils'\nimport { ANNOTATION_Z_INDEX } from '../../../../utils/constant'\n\nexport const annotationAreaBand: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { annotation } = advancedVSeed\n\n if (!annotation || !annotation.annotationArea) {\n return spec\n }\n\n const { annotationArea } = annotation\n const annotationAreaList = Array.isArray(annotationArea) ? annotationArea : [annotationArea]\n\n const positionMap = {\n top: 'insideTop',\n topRight: 'insideTopRight',\n topLeft: 'insideTopLeft',\n bottom: 'insideBottom',\n bottomLeft: 'insideBottomLeft',\n bottomRight: 'insideBottomRight',\n left: 'insideLeft',\n right: 'insideRight',\n }\n\n const markArea = annotationAreaList.flatMap((annotationArea) => {\n const {\n selector: selectorPoint,\n text = '',\n textPosition = 'top',\n textColor = '#ffffff',\n textFontSize = 12,\n textFontWeight = 400,\n textAlign = 'center',\n textBaseline = 'top',\n\n textBackgroundVisible = true,\n textBackgroundColor = '#191d24',\n textBackgroundBorderColor = '#191d24',\n textBackgroundBorderWidth = 1,\n textBackgroundBorderRadius = 4,\n textBackgroundPadding = 4,\n\n areaColor = '#888888',\n areaColorOpacity = 0.15,\n areaBorderColor = '#888888',\n areaBorderRadius = 4,\n areaBorderWidth = 1,\n\n outerPadding = 4,\n } = annotationArea\n\n const dataset = advancedVSeed.dataset.flat()\n const selectedData = selectorPoint ? dataset.filter((datum) => selector(datum, selectorPoint)) : []\n\n return {\n zIndex: ANNOTATION_Z_INDEX,\n regionRelative: true,\n positions: (data: Datum[], context: ICartesianSeries) => {\n const positionData = data.filter((item) => selectedData.some((datum) => isSubset(datum, item)))\n const xyList = positionData.map((datum) => context.dataToPosition(datum) as { x: number; y: number })\n\n const yAxisHelper = context.getYAxisHelper() as unknown as {\n getBandwidth: (depth?: number) => number\n getScale: () => {\n range: () => number[]\n }\n }\n const xAxisHelper = context.getXAxisHelper() as unknown as {\n getBandwidth: (depth?: number) => number\n getScale: () => {\n range: () => number[]\n }\n }\n\n if (typeof xAxisHelper?.getBandwidth === 'function') {\n const depth = context.fieldX.length ?? 0\n const xBandWidth = xAxisHelper?.getBandwidth?.(depth - 1)\n const yScale = yAxisHelper.getScale()\n\n const minX = Math.min(...xyList.map((item) => item.x)) - (outerPadding || 4)\n const maxX = Math.max(...xyList.map((item) => item.x)) + xBandWidth + (outerPadding || 4)\n const minY = Math.min(...yScale.range())\n const maxY = Math.max(...yScale.range())\n\n return [\n // 左上\n {\n x: minX,\n y: minY,\n },\n // 右上\n {\n x: maxX,\n y: minY,\n },\n // 右下\n {\n x: maxX,\n y: maxY,\n },\n // 左下\n {\n x: minX,\n y: maxY,\n },\n ]\n }\n\n if (typeof yAxisHelper?.getBandwidth === 'function') {\n const depth = context.fieldY.length ?? 0\n const yBandWidth = yAxisHelper?.getBandwidth?.(depth - 1)\n const xScale = xAxisHelper.getScale()\n\n const minY = Math.min(...xyList.map((item) => item.y)) - (outerPadding || 4)\n const maxY = Math.max(...xyList.map((item) => item.y)) + yBandWidth + (outerPadding || 4)\n const minX = Math.min(...xScale.range())\n const maxX = Math.max(...xScale.range())\n\n return [\n // 左上\n {\n x: minX,\n y: minY,\n },\n // 右上\n {\n x: maxX,\n y: minY,\n },\n // 右下\n {\n x: maxX,\n y: maxY,\n },\n // 左下\n {\n x: minX,\n y: maxY,\n },\n ]\n }\n\n return []\n },\n label: {\n position: positionMap[textPosition || 'top'],\n visible: true,\n text: text,\n style: {\n dy: textFontSize,\n textAlign: textAlign,\n textBaseline: textBaseline,\n stroke: textBackgroundColor,\n lineWidth: 1,\n fill: textColor,\n fontSize: textFontSize,\n fontWeight: textFontWeight,\n },\n\n labelBackground: {\n visible: textBackgroundVisible,\n padding: textBackgroundPadding,\n style: {\n dy: textFontSize,\n cornerRadius: textBackgroundBorderRadius ?? 4,\n fill: textBackgroundColor,\n stroke: textBackgroundBorderColor,\n lineWidth: textBackgroundBorderWidth,\n },\n },\n },\n area: {\n style: {\n visible: true,\n fill: areaColor,\n fillOpacity: areaColorOpacity,\n stroke: areaBorderColor,\n lineWidth: areaBorderWidth,\n cornerRadius: areaBorderRadius,\n },\n },\n }\n }) as ILineChartSpec['markArea']\n\n return {\n ...spec,\n markArea: markArea,\n }\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n initColumn,\n datasetXY,\n xBand,\n yLinear,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n pivotAdapter,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n stackInverse,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n verticalCrosshairRect,\n stackCornerRadius,\n progressive,\n} from '../pipes'\n\nconst column: SpecPipeline = [\n initColumn,\n stackCornerRadius,\n stackInverse,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairRect,\n discreteLegend,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotColumn: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initColumn,\n stackCornerRadius,\n stackInverse,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const columnSpecPipeline = [pivotAdapter(column, pivotColumn)]\n","import { columnAdvancedPipeline, columnSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerColumn = () => {\n Builder._advancedPipelineMap['column'] = columnAdvancedPipeline\n Builder._specPipelineMap['column'] = columnSpecPipeline\n}","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n reshapeTo2D1M,\n theme,\n pivotAdapter,\n pivotReshapeTo2D1M,\n columnParallelConfig,\n markStyle,\n annotation,\n sortXBandAxis,\n sortLegend,\n} from '../pipes'\n\nexport const columnParallelAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n sortXBandAxis,\n sortLegend,\n columnParallelConfig,\n theme,\n markStyle,\n annotation,\n]\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initColumnParallel: SpecPipe = (spec, context) => {\n const result = { ...spec } as IBarChartSpec\n const { advancedVSeed } = context\n const { encoding, datasetReshapeInfo } = advancedVSeed\n const { unfoldInfo } = datasetReshapeInfo[0]\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'bar'\n result.direction = 'vertical'\n result.xField = [encoding[0].x[0], unfoldInfo.groupId]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n result.animation = true\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n datasetXY,\n xBand,\n yLinear,\n initColumnParallel,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n pivotIndicators,\n initPivot,\n datasetPivot,\n pivotAdapter,\n pivotDiscreteLegend,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n verticalCrosshairRect,\n stackCornerRadius,\n progressive,\n} from '../pipes'\n\nconst columnParallel: SpecPipeline = [\n initColumnParallel,\n stackCornerRadius,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n discreteLegend,\n verticalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotColumnParallel: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initColumnParallel,\n stackCornerRadius,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const columnParallelSpecPipeline: SpecPipeline = [pivotAdapter(columnParallel, pivotColumnParallel)]\n","import { columnParallelAdvancedPipeline, columnParallelSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerColumnParallel = () => {\n Builder._advancedPipelineMap['columnParallel'] = columnParallelAdvancedPipeline\n Builder._specPipelineMap['columnParallel'] = columnParallelSpecPipeline\n}","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n theme,\n reshapeTo2D1M,\n pivotReshapeTo2D1M,\n pivotAdapter,\n columnPercentConfig,\n markStyle,\n annotation,\n sortXBandAxis,\n sortLegend,\n} from '../pipes'\n\nexport const columnPercentAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingXY,\n sortXBandAxis,\n sortLegend,\n columnPercentConfig,\n theme,\n markStyle,\n annotation,\n]\n","import { IAreaChartSpec, IBarChartSpec } from '@visactor/vchart'\nimport { SpecPipe } from 'src/types'\n\nexport const percent: SpecPipe = (spec, context) => {\n const result = { ...spec } as IAreaChartSpec | IBarChartSpec\n result.percent = true\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n initColumn,\n datasetXY,\n xBand,\n yLinear,\n percent,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n pivotAdapter,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n stackInverse,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n verticalCrosshairRect,\n stackCornerRadius,\n progressive,\n} from '../pipes'\n\nconst columnPercent: SpecPipeline = [\n initColumn,\n stackCornerRadius,\n stackInverse,\n color,\n backgroundColor,\n percent,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairRect,\n discreteLegend,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotColumnPercent: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initColumn,\n stackCornerRadius,\n stackInverse,\n color,\n percent,\n backgroundColor,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const columnPercentSpecPipeline: SpecPipeline = [pivotAdapter(columnPercent, pivotColumnPercent)]\n","import { columnPercentAdvancedPipeline, columnPercentSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerColumnPercent = () => {\n Builder._advancedPipelineMap['columnPercent'] = columnPercentAdvancedPipeline\n Builder._specPipelineMap['columnPercent'] = columnPercentSpecPipeline\n}","import type { AdvancedPipe, Dimensions, FoldInfo, UnfoldInfo } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingYX: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo, dimensions } = advancedVSeed\n if (!datasetReshapeInfo || !dimensions) {\n return result\n }\n\n const yDimension =\n (dimensions as Dimensions).find(\n (item) => item.location !== 'rowDimension' && item.location !== 'columnDimension',\n ) || dimensions[0]\n\n const isZeroDimension = dimensions.length === 0\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfo, unfoldInfo } = cur as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n const y = [isZeroDimension ? foldInfo.measureName : yDimension?.id]\n const x = [foldInfo.measureValue]\n const group = [unfoldInfo.groupId]\n const color = [foldInfo.measureName]\n\n return [\n ...prev,\n {\n x,\n y,\n group,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n initAdvancedVSeed,\n encodingYX,\n theme,\n autoMeasures,\n autoDimensions,\n reshapeTo2D1M,\n pivotReshapeTo2D1M,\n pivotAdapter,\n barConfig,\n markStyle,\n annotation,\n sortYBandAxis,\n sortLegend,\n} from '../pipes'\n\nexport const barAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingYX,\n sortYBandAxis,\n sortLegend,\n barConfig,\n theme,\n markStyle,\n annotation,\n]\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initBar: SpecPipe = (spec, context) => {\n const result = { ...spec } as IBarChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'bar'\n result.direction = 'horizontal'\n result.yField = encoding[0].y?.[0]\n result.xField = encoding[0].x?.[0]\n result.seriesField = encoding[0].group?.[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n result.animation = true\n return result\n}\n","import type { ISpec } from '@visactor/vchart'\nimport { isPivotChart } from 'src/pipeline/utils'\nimport type { SpecPipe } from 'src/types'\n\nexport const datasetYX: SpecPipe = (spec, context) => {\n const { advancedVSeed, vseed } = context\n const { encoding, analysis, datasetReshapeInfo } = advancedVSeed\n const orderMapping = analysis?.orderMapping || {}\n const angle = encoding[0]?.angle?.[0]\n const y = encoding[0]?.y?.[0]\n const group = encoding[0]?.group?.[0]\n const id = datasetReshapeInfo[0].id\n\n const fields: Record<string, object> = {}\n if (angle) {\n fields[angle] = {\n sortIndex: 0,\n }\n }\n if (y) {\n const order = orderMapping[y]\n if (order) {\n fields[y] = {\n sortIndex: 0,\n domain: order,\n lockStatisticsByDomain: true,\n }\n } else {\n fields[y] = {\n sortIndex: 0,\n }\n }\n }\n if (group) {\n const order = orderMapping[group]\n if (order) {\n fields[group] = {\n sortIndex: 0,\n domain: order,\n lockStatisticsByDomain: true,\n }\n } else {\n fields[group] = {\n sortIndex: 0,\n }\n }\n }\n\n return {\n ...spec,\n data: {\n id,\n // 透视表不使用 dataValues\n values: isPivotChart(vseed) ? undefined : advancedVSeed.dataset,\n fields: fields,\n },\n } as ISpec\n}\n","import type { ISpec } from '@visactor/vchart'\nimport { LINEAR_AXIS_INNER_OFFSET_TOP } from '../../../../utils/constant'\nimport type { SpecPipe, XLinearAxis } from 'src/types'\nimport { autoFormatter } from '../../../../utils'\n\nexport const xLinear: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { locale } = advancedVSeed\n const config = advancedVSeed.config?.[chartType as 'bar']?.xAxis as XLinearAxis\n\n if (!result.axes) {\n result.axes = []\n }\n\n if (!config) {\n result.axes = [\n ...result.axes,\n {\n visible: true,\n type: 'linear',\n orient: 'bottom',\n },\n ] as ISpec['axes']\n return result\n }\n\n const {\n visible = true,\n label,\n tick,\n title,\n grid,\n line,\n\n zero,\n nice,\n inverse,\n max,\n min,\n log,\n logBase = 10,\n } = config\n\n const linearAxis = {\n visible,\n type: log ? 'log' : 'linear',\n base: logBase,\n orient: 'bottom',\n nice,\n zero: log ? false : zero,\n inverse,\n max,\n min,\n label: {\n visible: label?.visible,\n formatMethod: (value: string) => {\n return autoFormatter(value, locale)\n },\n style: {\n fill: label?.labelColor,\n angle: label?.labelAngle,\n fontSize: label?.labelFontSize,\n fontWeight: label?.labelFontWeight,\n },\n },\n title: {\n visible: title?.visible,\n text: title?.titleText,\n style: {\n fill: title?.titleColor,\n fontSize: title?.titleFontSize,\n fontWeight: title?.titleFontWeight,\n },\n },\n tick: {\n visible: tick?.visible,\n tickSize: tick?.tickSize,\n inside: tick?.tickInside,\n style: {\n stroke: tick?.tickColor,\n },\n },\n grid: {\n visible: grid?.visible,\n style: {\n lineWidth: grid?.gridWidth,\n stroke: grid?.gridColor,\n },\n },\n domainLine: {\n visible: line?.visible,\n style: {\n lineWidth: line?.lineWidth,\n stroke: line?.lineColor,\n },\n },\n innerOffset: {\n right: LINEAR_AXIS_INNER_OFFSET_TOP,\n // left: LINEAR_AXIS_INNER_OFFSET_TOP,\n },\n }\n\n result.axes = [...result.axes, linearAxis] as ISpec['axes']\n\n return result\n}\n","import type { ICartesianBandAxisSpec, ISpec } from '@visactor/vchart'\nimport type { SpecPipe, XBandAxis } from 'src/types'\n\nexport const yBand: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const config = advancedVSeed.config?.[chartType as 'bar']?.yAxis as XBandAxis\n\n if (!result.axes) {\n result.axes = []\n }\n\n if (!config) {\n result.axes = [\n ...result.axes,\n {\n visible: true,\n type: 'band',\n orient: 'left',\n },\n ] as ISpec['axes']\n return result\n }\n\n const {\n visible = true,\n label,\n tick,\n title,\n grid,\n line,\n labelAutoHide,\n labelAutoHideGap,\n labelAutoLimit,\n labelAutoLimitLength = 80,\n labelAutoRotate,\n labelAutoRotateAngleRange,\n } = config\n\n const sampling = !(labelAutoHide || labelAutoRotate || labelAutoLimit)\n\n const bandAxis = {\n visible,\n type: 'band',\n orient: 'left',\n maxWidth: labelAutoLimitLength + 60,\n sampling,\n hover: true,\n label: {\n visible: label?.visible,\n flush: true,\n containerAlign: 'right',\n space: 8,\n style: {\n maxLineWidth: labelAutoLimitLength,\n fill: label?.labelColor,\n angle: label?.labelAngle,\n fontSize: label?.labelFontSize,\n fontWeight: label?.labelFontWeight,\n },\n // 防重叠相关\n minGap: labelAutoHideGap,\n autoHide: labelAutoHide,\n autoHideMethod: 'greedy',\n autoHideSeparation: labelAutoHideGap,\n autoLimit: labelAutoLimit,\n autoRotate: labelAutoRotate,\n autoRotateAngle: labelAutoRotateAngleRange,\n lastVisible: true,\n },\n title: {\n visible: title?.visible,\n text: title?.titleText,\n style: {\n fill: title?.titleColor,\n fontSize: title?.titleFontSize,\n fontWeight: title?.titleFontWeight,\n },\n },\n tick: {\n visible: tick?.visible,\n tickSize: tick?.tickSize,\n inside: tick?.tickInside,\n style: {\n stroke: tick?.tickColor,\n },\n },\n grid: {\n visible: grid?.visible,\n style: {\n lineWidth: grid?.gridWidth,\n stroke: grid?.gridColor,\n },\n },\n domainLine: {\n visible: line?.visible,\n style: {\n lineWidth: line?.lineWidth,\n stroke: line?.lineColor,\n },\n },\n paddingInner: [0.15, 0.1],\n paddingOuter: [0.075, 0.1],\n } as ICartesianBandAxisSpec\n\n result.axes = [...result.axes, bandAxis] as ISpec['axes']\n return result\n}\n","import type { ICartesianCrosshairSpec, ILineChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const horizontalCrosshairRect: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n\n const config = advancedVSeed.config?.[chartType as 'column']?.crosshairRect\n if (!config) {\n return result\n }\n\n if (!result.crosshair) {\n result.crosshair = {}\n }\n\n const visible = config.visible || true\n const rectColor = config.rectColor || undefined\n const labelColor = config.labelColor || undefined\n const labelVisible = config.labelVisible || false\n const labelBackgroundColor = config.labelBackgroundColor || undefined\n\n const crosshair = result.crosshair as ICartesianCrosshairSpec\n crosshair.yField = {\n visible,\n line: {\n type: 'rect',\n style: {\n lineWidth: 0,\n opacity: 0.2,\n fill: rectColor,\n },\n },\n label: {\n visible: labelVisible,\n labelBackground: {\n visible: labelVisible,\n style: {\n fill: labelBackgroundColor,\n },\n },\n style: {\n fill: labelColor,\n },\n },\n }\n\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n initBar,\n datasetYX,\n xLinear,\n yBand,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n pivotAdapter,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n pivotIndicatorsAsCol,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n horizontalCrosshairRect,\n stackCornerRadius,\n progressive,\n} from '../pipes'\n\nconst bar: SpecPipeline = [\n initBar,\n stackCornerRadius,\n color,\n backgroundColor,\n datasetYX,\n progressive,\n xLinear,\n yBand,\n label,\n tooltip,\n horizontalCrosshairRect,\n discreteLegend,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotBar: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsCol,\n datasetPivot,\n pivotIndicators([\n initBar,\n stackCornerRadius,\n color,\n backgroundColor,\n datasetYX,\n progressive,\n xLinear,\n yBand,\n label,\n label,\n tooltip,\n horizontalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const barSpecPipeline: SpecPipeline = [pivotAdapter(bar, pivotBar)]\n","import { barAdvancedPipeline, barSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerBar = () => {\n Builder._advancedPipelineMap['bar'] = barAdvancedPipeline\n Builder._specPipelineMap['bar'] = barSpecPipeline\n}","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingYX,\n initAdvancedVSeed,\n reshapeTo2D1M,\n theme,\n pivotAdapter,\n pivotReshapeTo2D1M,\n barParallelConfig,\n markStyle,\n annotation,\n sortYBandAxis,\n sortLegend,\n} from '../pipes'\n\nexport const barParallelAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingYX,\n sortYBandAxis,\n sortLegend,\n barParallelConfig,\n theme,\n markStyle,\n annotation,\n]\n","import type { IBarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initBarParallel: SpecPipe = (spec, context) => {\n const result = { ...spec } as IBarChartSpec\n const { advancedVSeed } = context\n const { encoding, datasetReshapeInfo } = advancedVSeed\n const { unfoldInfo } = datasetReshapeInfo[0]\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'bar'\n result.direction = 'horizontal'\n result.yField = [encoding[0].y[0], unfoldInfo.groupId] as string[]\n result.xField = encoding[0].x[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n result.animation = true\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n datasetYX,\n xLinear,\n yBand,\n initBarParallel,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n initPivot,\n datasetPivot,\n pivotDiscreteLegend,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsCol,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n horizontalCrosshairRect,\n stackCornerRadius,\n progressive,\n} from '../pipes'\n\nconst barParallel: SpecPipeline = [\n initBarParallel,\n stackCornerRadius,\n color,\n backgroundColor,\n datasetYX,\n progressive,\n xLinear,\n yBand,\n label,\n tooltip,\n horizontalCrosshairRect,\n discreteLegend,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotBarParallel: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsCol,\n datasetPivot,\n pivotIndicators([\n initBarParallel,\n stackCornerRadius,\n color,\n backgroundColor,\n datasetYX,\n xLinear,\n yBand,\n label,\n tooltip,\n horizontalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const barParallelSpecPipeline: SpecPipeline = [pivotAdapter(barParallel, pivotBarParallel)]\n","import { barParallelAdvancedPipeline, barParallelSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerBarParallel = () => {\n Builder._advancedPipelineMap['barParallel'] = barParallelAdvancedPipeline\n Builder._specPipelineMap['barParallel'] = barParallelSpecPipeline\n}","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingYX,\n initAdvancedVSeed,\n reshapeTo2D1M,\n theme,\n pivotAdapter,\n pivotReshapeTo2D1M,\n barPercentConfig,\n markStyle,\n annotation,\n sortYBandAxis,\n sortLegend,\n} from '../pipes'\n\nexport const barPercentAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingYX,\n sortYBandAxis,\n sortLegend,\n barPercentConfig,\n theme,\n markStyle,\n annotation,\n]\n","import type { SpecPipeline } from 'src/types'\nimport {\n initBar,\n datasetYX,\n xLinear,\n yBand,\n percent,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n pivotAdapter,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n pivotIndicatorsAsCol,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n horizontalCrosshairRect,\n stackCornerRadius,\n progressive,\n} from '../pipes'\n\nconst barPercent: SpecPipeline = [\n initBar,\n stackCornerRadius,\n color,\n backgroundColor,\n percent,\n datasetYX,\n progressive,\n xLinear,\n yBand,\n label,\n tooltip,\n horizontalCrosshairRect,\n discreteLegend,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotBarPercent: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsCol,\n datasetPivot,\n pivotIndicators([\n initBar,\n stackCornerRadius,\n color,\n backgroundColor,\n percent,\n datasetYX,\n yBand,\n xLinear,\n label,\n tooltip,\n horizontalCrosshairRect,\n barStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const barPercentSpecPipeline: SpecPipeline = [pivotAdapter(barPercent, pivotBarPercent)]\n","import { barPercentAdvancedPipeline, barPercentSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerBarPercent = () => {\n Builder._advancedPipelineMap['barPercent'] = barPercentAdvancedPipeline\n Builder._specPipelineMap['barPercent'] = barPercentSpecPipeline\n}","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n areaConfig,\n annotation,\n markStyle,\n sortXBandAxis,\n sortLegend,\n reshapeTo2D1M0Name,\n pivotReshapeTo2D1M0Name,\n} from '../pipes'\n\nexport const areaAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M0Name], [pivotReshapeTo2D1M0Name]),\n encodingXY,\n sortXBandAxis,\n sortLegend,\n areaConfig,\n theme,\n markStyle,\n annotation,\n]\n","import type { IAreaChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initArea: SpecPipe = (spec, context) => {\n const result = { ...spec } as IAreaChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'area'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n result.animation = true\n return result\n}\n","import type { IAreaChartSpec } from '@visactor/vchart'\nimport { selector } from '../../../../../dataSelector'\nimport type { AreaStyle, Datum, SpecPipe } from 'src/types'\nimport { groupBy } from 'remeda'\n\nexport const areaStyle: SpecPipe = (spec, context) => {\n const { advancedVSeed } = context\n const { markStyle, encoding, dataset } = advancedVSeed\n const { areaStyle } = markStyle\n\n if (!areaStyle) {\n return spec\n }\n const result = { ...spec } as IAreaChartSpec\n\n const areaStyles = (Array.isArray(areaStyle) ? areaStyle : [areaStyle]) as AreaStyle[]\n\n const group = encoding[0]?.group?.[0]\n const lineGroups = groupBy(dataset, (d) => d[group ?? ''] as string)\n\n const customMap = areaStyles.reduce<object>((result, style, index) => {\n const { areaColor, areaColorOpacity } = style\n\n return {\n ...result,\n [`custom${index + 1}`]: {\n // 优先级: 后者覆盖前者\n level: index + 1,\n filter: (datum: Datum) => {\n const lineData = lineGroups[datum[group ?? ''] as string]\n for (const d of lineData) {\n if (selector(d, style.selector)) {\n return true\n }\n }\n return false\n },\n style: {\n fill: areaColor,\n fillOpacity: areaColorOpacity,\n },\n },\n }\n }, {})\n\n return {\n ...result,\n area: {\n state: {\n ...customMap,\n },\n },\n }\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n xBand,\n yLinear,\n initArea,\n stackInverse,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n pivotAdapter,\n initPivot,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n pointStyle,\n lineStyle,\n areaStyle,\n verticalCrosshairLine,\n pointStateDimensionHover,\n datasetXY,\n progressive,\n} from '../pipes'\n\nconst area: SpecPipeline = [\n initArea,\n stackInverse,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n discreteLegend,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n areaStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotArea: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initArea,\n color,\n backgroundColor,\n stackInverse,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n areaStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const areaSpecPipeline = [pivotAdapter(area, pivotArea)]\n","import { areaAdvancedPipeline, areaSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerArea = () => {\n Builder._advancedPipelineMap['area'] = areaAdvancedPipeline\n Builder._specPipelineMap['area'] = areaSpecPipeline\n}","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n encodingXY,\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n areaPercentConfig,\n annotation,\n markStyle,\n sortXBandAxis,\n sortLegend,\n reshapeTo2D1M0Name,\n pivotReshapeTo2D1M0Name,\n} from '../pipes'\n\nexport const areaPercentAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M0Name], [pivotReshapeTo2D1M0Name]),\n encodingXY,\n sortXBandAxis,\n sortLegend,\n areaPercentConfig,\n theme,\n markStyle,\n annotation\n]\n","import type { SpecPipeline } from 'src/types'\nimport {\n percent,\n datasetXY,\n xBand,\n yLinear,\n initArea,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n pivotAdapter,\n initPivot,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n stackInverse,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n pointStyle,\n lineStyle,\n areaStyle,\n verticalCrosshairLine,\n progressive,\n} from '../pipes'\n\nconst areaPercent: SpecPipeline = [\n initArea,\n stackInverse,\n color,\n backgroundColor,\n percent,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n discreteLegend,\n pointStyle,\n lineStyle,\n areaStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotAreaPercent: SpecPipeline = [\n initPivot,\n\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initArea,\n stackInverse,\n color,\n backgroundColor,\n percent,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n pointStyle,\n lineStyle,\n areaStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const areaPercentSpecPipeline = [pivotAdapter(areaPercent, pivotAreaPercent)]\n","import { areaPercentAdvancedPipeline, areaPercentSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerAreaPercent = () => {\n Builder._advancedPipelineMap['areaPercent'] = areaPercentAdvancedPipeline\n Builder._specPipelineMap['areaPercent'] = areaPercentSpecPipeline\n}","import { findAllMeasures } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Datum, MeasureGroup, MeasureTree } from 'src/types'\n\n/**\n * 自动处理指标, 如果超出了2个指标, 则按每2个指标一个组的逻辑维护\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const autoMeasuresBy2M1Group: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { measures, dataset } = vseed\n\n if (!dataset) {\n throw new Error('dataset is required')\n }\n\n if (dataset.length === 0) {\n return result\n }\n\n if (measures) {\n result.measures = auto2M1Group(measures as MeasureTree)\n return result\n }\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n const newMeasures = Object.keys(sample)\n .filter((key) => {\n return top100dataset.some((item) => typeof item[key] === 'number') && !['', null, undefined].includes(key)\n })\n .map((measure) => ({\n id: measure,\n alias: measure,\n }))\n\n result.measures = auto2M1Group(newMeasures)\n return result\n}\n\nconst auto2M1Group = (measures: MeasureTree): MeasureTree => {\n const allMeasures = findAllMeasures(measures)\n\n if (allMeasures.length <= 2) {\n return allMeasures\n }\n\n const groups: MeasureTree = measures.filter((measure) => 'children' in measure)\n const singleMeasures = measures.filter((measure) => !('children' in measure))\n for (let i = 0; i < singleMeasures.length; i += 2) {\n const group = createEmptyMeasureGroup()\n group.children = allMeasures.slice(i, i + 2)\n groups.push(group)\n }\n return groups as MeasureGroup[]\n}\n\nconst createEmptyMeasureGroup = (): MeasureGroup => {\n return {\n id: '',\n alias: '',\n children: [],\n }\n}\n","import type { Dataset, Dimension, FoldInfo, Measure, UnfoldInfo } from 'src/types'\nimport {\n UnfoldDimensionGroup,\n FoldMeasureId,\n FoldMeasureName,\n FoldMeasureValue,\n UnfoldDimensionGroupId,\n} from './constant'\nimport { unfoldDimensions } from './unfoldDimensions'\nimport { i18n } from '../i18n'\n\nconst emptyReshapeResult = {\n dataset: [],\n foldInfo: {\n foldMap: {},\n measureId: '',\n measureName: '',\n measureValue: '',\n },\n unfoldInfo: {\n groupName: '',\n groupId: '',\n colorItems: [],\n colorIdMap: {},\n },\n}\n/**\n * 仅数据重塑为1个维度,不处理指标\n * @param dataset\n * @param dimensions\n * @param measures\n * @returns\n */\nexport const dataReshapeFor1D = (\n dataset: Dataset,\n dimensions: Dimension[],\n measures: Measure[],\n options?: {\n foldMeasureId?: string\n foldMeasureName?: string\n foldMeasureValue?: string\n unfoldDimensionGroup?: string\n unfoldDimensionGroupId?: string\n },\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n} => {\n const {\n foldMeasureId = FoldMeasureId,\n foldMeasureName = FoldMeasureName,\n foldMeasureValue = FoldMeasureValue,\n unfoldDimensionGroup = UnfoldDimensionGroup,\n unfoldDimensionGroupId = UnfoldDimensionGroupId,\n } = options || {}\n\n if (dimensions.length === 0 && measures.length === 0) {\n return emptyReshapeResult\n }\n\n if (dimensions.length === 0) {\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n dataset,\n [],\n [],\n 0,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n foldMeasureId,\n )\n return {\n dataset: finalDataset,\n foldInfo: {\n foldMap: {},\n measureId: foldMeasureId,\n measureName: foldMeasureName,\n measureValue: foldMeasureValue,\n },\n unfoldInfo,\n }\n } else {\n // 展开指定的维度为指标\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n dataset,\n [...dimensions],\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\n 0,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n foldMeasureId,\n )\n return {\n dataset: finalDataset,\n foldInfo: {\n foldMap: {},\n measureId: foldMeasureId,\n measureName: foldMeasureName,\n measureValue: foldMeasureValue,\n },\n unfoldInfo,\n }\n }\n}\n","import { dataReshapeFor1D } from 'src/dataReshape'\nimport type { AdvancedPipe } from 'src/types'\n\n/**\n * 数据重塑, 将任意维度、任意指标, 重塑为1个维度2个指标.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const reshapeTo1D: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { dimensions, measures } = advancedVSeed\n if (!measures || !dimensions || !dataset) {\n return result\n }\n\n if (measures.length === 0) {\n throw new Error('measures can not be empty')\n }\n\n const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeFor1D(dataset, dimensions, measures)\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: [\n {\n id: '1D2M',\n index: 0,\n foldInfo,\n unfoldInfo,\n },\n ],\n }\n}\n","import { FoldMeasureId, FoldMeasureName, FoldMeasureValue, UnfoldDimensionGroup } from 'src/dataReshape/constant'\nimport { dataReshapeFor1D } from 'src/dataReshape'\nimport type { AdvancedPipe, Dataset, DatasetReshapeInfo, Dimensions, MeasureGroup } from 'src/types'\n\n/**\n * 数据重塑为透视结构, 如果存在指标分组, 则将数据按组划分\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const pivotReshapeTo1D: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { measures } = advancedVSeed\n const dimensions = advancedVSeed.dimensions as Dimensions\n\n if (!measures || !dimensions) {\n return result\n }\n\n const measureGroups: MeasureGroup[] = []\n if (measures) {\n measures.forEach((measure: MeasureGroup) => {\n if (measure.children && measure.children.length > 0) {\n measureGroups.push(measure)\n }\n })\n }\n const newDatasets: Dataset = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n measureGroups.forEach((measureGroup, index) => {\n const measures = measureGroup.children\n if (!measures) {\n return\n }\n\n const commonDimensions = dimensions.filter((dim) => dim.location === 'dimension')\n const groupId = measureGroup.id\n const {\n dataset: newSubDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeFor1D(dataset, commonDimensions, measures, {\n foldMeasureId: FoldMeasureId,\n foldMeasureName: FoldMeasureName,\n foldMeasureValue: FoldMeasureValue + groupId,\n unfoldDimensionGroup: UnfoldDimensionGroup,\n })\n const reshapeInfo = {\n id: groupId,\n index,\n foldInfo,\n unfoldInfo,\n }\n newDatasets.push(newSubDataset)\n datasetReshapeInfo.push(reshapeInfo)\n })\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n","import type { AdvancedPipe, FoldInfo, UnfoldInfo } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingAreaRange: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo, measures } = advancedVSeed\n if (!datasetReshapeInfo || !measures) {\n return result\n }\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur, index) => {\n const measure = measures[index]\n if ('children' in measure) {\n const m1 = measure.children?.[0]\n const m2 = measure.children?.[1] || m1\n const { foldInfo, unfoldInfo } = cur as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n const x = [unfoldInfo.groupId]\n const y = [m1?.id, m2?.id]\n const group = [unfoldInfo.groupId]\n const color = [foldInfo.measureName]\n\n return [\n ...prev,\n {\n x,\n y,\n group,\n color,\n },\n ] as Encoding\n } else {\n const m1 = measures[index]\n const m2 = measures[index + 1] || m1\n const { foldInfo, unfoldInfo } = cur as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n const x = [unfoldInfo.groupId]\n const y = [m1.id, m2.id]\n const group = [unfoldInfo.groupId]\n const color = [foldInfo.measureName]\n\n return [\n ...prev,\n {\n x,\n y,\n group,\n color,\n },\n ] as Encoding\n }\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n areaConfig,\n annotation,\n sortXBandAxis,\n autoMeasuresBy2M1Group,\n encodingAreaRange,\n reshapeTo1D,\n pivotReshapeTo1D,\n markStyle,\n} from '../pipes'\n\nexport const areaRangeAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasuresBy2M1Group,\n autoDimensions,\n pivotAdapter([reshapeTo1D], [pivotReshapeTo1D]),\n encodingAreaRange,\n sortXBandAxis,\n areaConfig,\n theme,\n markStyle,\n annotation,\n]\n","import type { Spec, SpecPipe, SpecPipeline, SpecPipelineContext } from 'src/types'\nimport { execPipeline } from '../../../../utils'\nimport type { ICommonChartSpec, ILineSeriesSpec } from '@visactor/vchart'\n\nexport const series = (...args: SpecPipeline[]): SpecPipe => {\n const result = {\n type: 'common',\n padding: 0,\n region: [\n {\n clip: true,\n },\n ],\n } as ICommonChartSpec\n\n return (_, context) => {\n result.series = args.map((pipeline) => {\n return execPipeline<Spec, SpecPipelineContext>(pipeline, context, {})\n }) as ILineSeriesSpec[]\n\n return result\n }\n}\n\nexport const seriesDualAxis = (...args: SpecPipeline[]): SpecPipe => {\n const result = {\n type: 'common',\n padding: 0,\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 (_, context) => {\n result.series = args.map((pipeline, index) => {\n const seriesContext = createDualContext(context, index)\n return execPipeline<Spec, SpecPipelineContext>(pipeline, seriesContext, {})\n }) as ILineSeriesSpec[]\n\n return result\n }\n}\n","import type { ILineSeriesSpec, IRangeAreaSeriesSpec } from '@visactor/vchart'\nimport type { Color, SpecPipe } from 'src/types'\n\nexport const initAreaRange: SpecPipe = (spec, context) => {\n const result = { ...spec } as IRangeAreaSeriesSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n const { color } = advancedVSeed.config.areaRange as {\n color: Color\n }\n\n result.type = 'rangeArea'\n result.direction = 'vertical'\n result.stack = false\n result.xField = encoding[0].x[0]\n result.yField = [encoding[0].y[0], encoding[0].y[1]]\n\n result.animation = true\n result.area = {\n style: {\n fill: color.colorScheme?.[0],\n },\n }\n\n return result\n}\n\nexport const initAreaRangeLine1: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineSeriesSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n const { color } = advancedVSeed.config.areaRange as {\n color: Color\n }\n result.type = 'line'\n result.direction = 'vertical'\n result.stack = false\n result.xField = encoding[0].x[0]\n result.yField = [encoding[0].y[0]]\n\n result.animation = true\n result.line = {\n style: {\n stroke: color.colorScheme?.[0],\n },\n }\n result.point = {\n style: {\n visible: false,\n fill: color.colorScheme?.[0],\n },\n }\n return result\n}\n\nexport const initAreaRangeLine2: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineSeriesSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n const { color } = advancedVSeed.config.areaRange as {\n color: Color\n }\n result.type = 'line'\n result.direction = 'vertical'\n result.stack = false\n result.xField = encoding[0].x[0]\n result.yField = [encoding[0].y[1]]\n\n result.animation = true\n result.line = {\n style: {\n stroke: color.colorScheme?.[0],\n },\n }\n result.point = {\n style: {\n visible: false,\n fill: color.colorScheme?.[0],\n },\n }\n return result\n}\n","import type { SpecPipe } from 'src/types'\n\nexport const tooltipDisable: SpecPipe = (spec) => {\n const result = { ...spec }\n\n result.tooltip = {\n visible: false,\n }\n return result\n}\n","import { isEmpty } from 'remeda'\nimport { autoFormatter, createFormatter, findMeasureById } from '../../../../utils'\nimport type { Datum, SpecPipe, Tooltip } from 'src/types'\n\nexport const tooltipAreaRange: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo, chartType, locale, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n\n const { groupName } = datasetReshapeInfo[0].unfoldInfo\n\n const y = encoding[0]?.y || []\n\n result.tooltip = {\n visible: enable,\n\n dimension: {\n content: [\n {\n visible: true,\n key: (datum) => (datum && (datum[groupName] as string)) || '',\n value: (datum) => {\n if (!datum) {\n return ''\n }\n const text = y.map((id) => {\n const value = datum[id] as string | number\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n })\n return text.join(' ~ ')\n },\n shapeType: 'rectRound',\n },\n ...y.map((id: string) => {\n const measure = findMeasureById(measures, id)\n return {\n visible: true,\n key: measure?.alias || id,\n value: (datum: unknown) => {\n if (!datum) {\n return ''\n }\n const value = (datum as unknown as Datum)[id] as string | number\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n },\n shapeType: 'rectRound',\n }\n }),\n ],\n },\n }\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n datasetXY,\n xBand,\n yLinear,\n backgroundColor,\n label,\n datasetPivot,\n pivotIndicators,\n pivotAdapter,\n initPivot,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n verticalCrosshairLine,\n initAreaRange,\n series,\n lineStyle,\n pointStyle,\n pointStateDimensionHover,\n areaStyle,\n progressive,\n tooltipAreaRange,\n tooltipDisable,\n} from '../pipes'\nimport { initAreaRangeLine1, initAreaRangeLine2 } from '../pipes/init/areaRange'\n\nconst areaRange: SpecPipeline = [\n series(\n [initAreaRange, areaStyle],\n [initAreaRangeLine1, lineStyle, pointStyle, pointStateDimensionHover, tooltipDisable],\n [initAreaRangeLine2, lineStyle, pointStyle, pointStateDimensionHover, tooltipDisable],\n ),\n datasetXY,\n progressive,\n backgroundColor,\n xBand,\n yLinear,\n label,\n tooltipAreaRange,\n verticalCrosshairLine,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotAreaRange: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n series(\n [initAreaRange, areaStyle],\n [initAreaRangeLine1, lineStyle, pointStyle, pointStateDimensionHover, tooltipDisable],\n [initAreaRangeLine2, lineStyle, pointStyle, pointStateDimensionHover, tooltipDisable],\n ),\n backgroundColor,\n datasetXY,\n progressive,\n xBand,\n yLinear,\n label,\n tooltipAreaRange,\n verticalCrosshairLine,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n]\n\nexport const areaRangeSpecPipeline = [pivotAdapter(areaRange, pivotAreaRange)]\n","import { areaRangeAdvancedPipeline, areaRangeSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerAreaRange = () => {\n Builder._advancedPipelineMap['areaRange'] = areaRangeAdvancedPipeline\n Builder._specPipelineMap['areaRange'] = areaRangeSpecPipeline\n}","import type { Dataset, Dimension, FoldInfo, Measure, UnfoldInfo } from 'src/types'\nimport { foldMeasures } from './foldMeasures'\nimport {\n UnfoldDimensionGroup,\n FoldMeasureId,\n FoldMeasureName,\n FoldMeasureValue,\n UnfoldDimensionGroupId,\n} from './constant'\nimport { unfoldDimensions } from './unfoldDimensions'\nimport { i18n } from '../i18n'\n\nconst emptyReshapeResult = {\n dataset: [],\n foldInfo: {\n foldMap: {},\n measureId: '',\n measureName: '',\n measureValue: '',\n },\n unfoldInfo: {\n groupName: '',\n groupId: '',\n colorItems: [],\n colorIdMap: {},\n },\n}\n/**\n * 数据重塑为1个维度1个指标\n * @param dataset\n * @param dimensions\n * @param measures\n * @returns\n */\nexport const dataReshapeFor1D2M = (\n dataset: Dataset,\n dimensions: Dimension[],\n measures: Measure[],\n options?: {\n foldMeasureId?: string\n foldMeasureName?: string\n foldMeasureValue?: string\n unfoldDimensionGroup?: string\n unfoldDimensionGroupId?: string\n },\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n} => {\n const {\n foldMeasureId = FoldMeasureId,\n foldMeasureName = FoldMeasureName,\n foldMeasureValue = FoldMeasureValue,\n unfoldDimensionGroup = UnfoldDimensionGroup,\n unfoldDimensionGroupId = UnfoldDimensionGroupId,\n } = options || {}\n\n if (dimensions.length === 0 && measures.length === 0) {\n return emptyReshapeResult\n }\n\n // 合并所有指标为1个指标\n const { dataset: foldedDataset, foldInfo } = foldMeasures(\n dataset,\n measures.length > 1 ? measures.slice(1) : measures,\n foldMeasureId,\n foldMeasureName,\n foldMeasureValue,\n )\n\n if (dimensions.length === 0) {\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n [{ id: foldMeasureValue, alias: i18n`指标值`, location: 'dimension' }],\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\n 0,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n foldMeasureId,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n } else {\n // 展开指定的维度为指标\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n [...dimensions],\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\n 0,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n foldMeasureId,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n }\n}\n","import { dataReshapeFor1D2M } from 'src/dataReshape'\nimport type { AdvancedPipe } from 'src/types'\n\n/**\n * 数据重塑, 将任意维度、任意指标, 重塑为1个维度2个指标.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const reshapeTo1D2M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { dimensions, measures } = advancedVSeed\n if (!measures || !dimensions || !dataset) {\n return result\n }\n\n if (measures.length === 0) {\n throw new Error('measures can not be empty')\n }\n\n const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeFor1D2M(dataset, dimensions, measures)\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: [\n {\n id: '1D2M',\n index: 0,\n foldInfo,\n unfoldInfo,\n },\n ],\n }\n}\n","import { FoldMeasureId, FoldMeasureName, FoldMeasureValue, UnfoldDimensionGroup } from 'src/dataReshape/constant'\nimport { dataReshapeFor1D2M } from 'src/dataReshape'\nimport type { AdvancedPipe, Dataset, DatasetReshapeInfo, Dimensions, MeasureGroup } from 'src/types'\n\n/**\n * 数据重塑为透视结构, 如果存在指标分组, 则将数据按组划分. 如果存在行列维度, 则生成行列树结构.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const pivotReshapeTo1D2M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { measures } = advancedVSeed\n const dimensions = advancedVSeed.dimensions as Dimensions\n\n if (!measures || !dimensions) {\n return result\n }\n\n const measureGroups: MeasureGroup[] = []\n if (measures) {\n measures.forEach((measure: MeasureGroup) => {\n if (measure.children && measure.children.length > 0) {\n measureGroups.push(measure)\n }\n })\n }\n const newDatasets: Dataset = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n measureGroups.forEach((measureGroup, index) => {\n const measures = measureGroup.children\n if (!measures) {\n return\n }\n\n const commonDimensions = dimensions.filter((dim) => dim.location === 'dimension')\n const groupId = measureGroup.id\n const {\n dataset: newSubDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeFor1D2M(dataset, commonDimensions, measures, {\n foldMeasureId: FoldMeasureId,\n foldMeasureName: FoldMeasureName,\n foldMeasureValue: FoldMeasureValue + groupId,\n unfoldDimensionGroup: UnfoldDimensionGroup,\n })\n const reshapeInfo = {\n id: groupId,\n index,\n foldInfo,\n unfoldInfo,\n }\n newDatasets.push(newSubDataset)\n datasetReshapeInfo.push(reshapeInfo)\n })\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n","import { findFirstMeasure } from 'src/pipeline/utils'\nimport type { AdvancedPipe, FoldInfo, UnfoldInfo } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingYY: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo, measures } = advancedVSeed\n if (!datasetReshapeInfo || !measures) {\n return result\n }\n\n const firstMeasure = findFirstMeasure(measures)\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfo, unfoldInfo } = cur as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n const x = [firstMeasure?.id]\n const y = [foldInfo.measureValue]\n const group = [unfoldInfo.groupId]\n const color = [unfoldInfo.groupId]\n\n return [\n ...prev,\n {\n x,\n y,\n group,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n annotation,\n markStyle,\n scatterConfig,\n reshapeTo1D2M,\n pivotReshapeTo1D2M,\n encodingYY,\n} from '../pipes'\n\nexport const scatterAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo1D2M], [pivotReshapeTo1D2M]),\n encodingYY,\n scatterConfig,\n theme,\n markStyle,\n annotation,\n]\n","import type { IScatterChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initScatter: SpecPipe = (spec, context) => {\n const result = { ...spec } as IScatterChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.type = 'scatter'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n result.animation = true\n\n return result\n}\n","import type { ICartesianCrosshairSpec, ILineChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const horizontalCrosshairLine: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n\n const config = advancedVSeed.config?.[chartType as 'line']?.crosshairLine\n if (!config) {\n return result\n }\n\n if (!result.crosshair) {\n result.crosshair = {}\n }\n\n const visible = config.visible || true\n const lineColor = config.lineColor || undefined\n const labelColor = config.labelColor || undefined\n const labelVisible = config.labelVisible || undefined\n const labelBackgroundColor = config.labelBackgroundColor || undefined\n\n const crosshair = result.crosshair as ICartesianCrosshairSpec\n crosshair.yField = {\n visible,\n line: {\n type: 'line',\n style: {\n lineWidth: 1,\n opacity: 1,\n stroke: lineColor,\n lineDash: [4, 2],\n },\n },\n label: {\n visible: labelVisible,\n labelBackground: {\n visible: labelVisible,\n style: {\n fill: labelBackgroundColor,\n },\n },\n style: {\n fill: labelColor,\n },\n },\n }\n\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n datasetXY,\n yLinear,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n initPivot,\n datasetPivot,\n pivotDiscreteLegend,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n pointStyle,\n verticalCrosshairLine,\n xLinear,\n horizontalCrosshairLine,\n pointStateHover,\n initScatter,\n progressive\n} from '../pipes'\n\nconst scatter: SpecPipeline = [\n initScatter,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n xLinear,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n horizontalCrosshairLine,\n discreteLegend,\n pointStyle,\n pointStateHover,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotScatter: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initScatter,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n xLinear,\n yLinear,\n label,\n tooltip,\n verticalCrosshairLine,\n horizontalCrosshairLine,\n pointStyle,\n pointStateHover,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const scatterSpecPipeline: SpecPipeline = [pivotAdapter(scatter, pivotScatter)]\n","import { scatterAdvancedPipeline, scatterSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerScatter = () => {\n Builder._advancedPipelineMap['scatter'] = scatterAdvancedPipeline\n Builder._specPipelineMap['scatter'] = scatterSpecPipeline\n}","import { dataReshapeFor2D1M, FoldPrimaryMeasureValue, FoldSecondaryMeasureValue } from 'src/dataReshape'\nimport type { AdvancedPipe, Dimension, FoldInfo, MeasureGroup, UnfoldInfo } from 'src/types'\n\n/**\n * 数据重塑, 将任意维度、任意指标, 重塑为2个维度2个指标.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const reshapeTo2D2M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { dimensions, measures } = advancedVSeed\n\n if (!measures || !dimensions || !dataset) {\n return result\n }\n\n if (measures.length === 0) {\n throw new Error('measures can not be empty')\n }\n if (measures.length > 2) {\n throw new Error('measures can not be more than 2')\n }\n\n const commonDimensions = dimensions.filter((dim) => (dim as Dimension).location === 'dimension')\n\n const datasets = []\n const foldInfoList: FoldInfo[] = []\n const unfoldInfoList: UnfoldInfo[] = []\n\n const primaryMeasures = measures[0] as MeasureGroup\n const secondaryMeasures = (measures[1] || []) as MeasureGroup\n\n if (primaryMeasures && primaryMeasures.children) {\n const {\n dataset: newDatasets,\n foldInfo,\n unfoldInfo,\n } = dataReshapeFor2D1M(dataset, commonDimensions, primaryMeasures.children, {\n foldMeasureValue: FoldPrimaryMeasureValue,\n })\n datasets.push(newDatasets)\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n if (secondaryMeasures && secondaryMeasures.children) {\n const {\n dataset: newDatasets,\n foldInfo,\n unfoldInfo,\n } = dataReshapeFor2D1M(dataset, commonDimensions, secondaryMeasures.children, {\n foldMeasureValue: FoldSecondaryMeasureValue,\n })\n datasets.push(newDatasets)\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n const unfoldInfo: UnfoldInfo = {\n groupName: unfoldInfoList[0].groupName,\n groupId: unfoldInfoList[0].groupId,\n colorItems: unfoldInfoList.flatMap((d) => d.colorItems),\n colorIdMap: unfoldInfoList.reduce((prev, cur) => ({ ...prev, ...cur.colorIdMap }), {}),\n }\n\n return {\n ...result,\n dataset: datasets,\n datasetReshapeInfo: [\n {\n id: '2D2M',\n index: 0,\n foldInfo: foldInfoList[0],\n foldInfoList: foldInfoList,\n unfoldInfo: unfoldInfo,\n },\n ],\n }\n}\n","import { dataReshapeFor2D1M, FoldPrimaryMeasureValue, FoldSecondaryMeasureValue } from 'src/dataReshape'\nimport type {\n AdvancedPipe,\n Dataset,\n DatasetReshapeInfo,\n Dimension,\n FoldInfo,\n MeasureGroup,\n UnfoldInfo,\n} from 'src/types'\n\n/**\n * 数据重塑, 将任意维度、任意指标, 重塑为2个维度2个指标.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const pivotReshapeTo2D2M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { dimensions, measures } = advancedVSeed\n\n if (!measures || !dimensions || !dataset) {\n return result\n }\n\n const commonDimensions = dimensions.filter((dim) => (dim as Dimension).location === 'dimension')\n\n const datasetList: Dataset[] = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n\n measures.forEach((measureGroup: MeasureGroup, index) => {\n const measures = measureGroup.children || []\n if (measures.length === 0) {\n throw new Error('measures can not be empty')\n }\n if (measures.length > 2) {\n throw new Error('measures can not be more than 2')\n }\n\n const datasets = []\n const foldInfoList: FoldInfo[] = []\n const unfoldInfoList: UnfoldInfo[] = []\n\n const primaryMeasures = measures[0] as MeasureGroup\n const secondaryMeasures = (measures[1] || measures[0]) as MeasureGroup\n\n if (primaryMeasures && primaryMeasures.children) {\n const {\n dataset: newDatasets,\n foldInfo,\n unfoldInfo,\n } = dataReshapeFor2D1M(dataset, commonDimensions, primaryMeasures.children, {\n foldMeasureValue: `${FoldPrimaryMeasureValue}${index}`,\n })\n datasets.push(newDatasets)\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n if (secondaryMeasures && secondaryMeasures.children) {\n const {\n dataset: newDatasets,\n foldInfo,\n unfoldInfo,\n } = dataReshapeFor2D1M(dataset, commonDimensions, secondaryMeasures.children, {\n foldMeasureValue: `${FoldSecondaryMeasureValue}${index}`,\n })\n datasets.push(newDatasets)\n foldInfoList.push(foldInfo)\n unfoldInfoList.push(unfoldInfo)\n }\n\n datasetList.push(datasets.flat(2))\n\n const unfoldInfo: UnfoldInfo = {\n groupName: unfoldInfoList[0].groupName,\n groupId: unfoldInfoList[0].groupId,\n colorItems: unfoldInfoList.flatMap((d) => d.colorItems),\n colorIdMap: unfoldInfoList.reduce((prev, cur) => ({ ...prev, ...cur.colorIdMap }), {}),\n }\n\n const reshapeInfo = {\n id: `2D2M-${index}`,\n index,\n foldInfo: foldInfoList[0],\n unfoldInfo: unfoldInfo,\n foldInfoList: foldInfoList,\n }\n\n datasetReshapeInfo.push(reshapeInfo)\n })\n\n return {\n ...result,\n dataset: datasetList,\n datasetReshapeInfo,\n }\n}\n","import type { AdvancedPipe, Dimensions, FoldInfo, UnfoldInfo } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingXYY: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo, dimensions } = advancedVSeed\n if (!datasetReshapeInfo || !dimensions) {\n return result\n }\n\n const xDimension =\n (dimensions as Dimensions).find(\n (item) => item.location !== 'rowDimension' && item.location !== 'columnDimension',\n ) || dimensions[0]\n\n const isZeroDimension = dimensions.length === 0\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfoList, unfoldInfo } = cur as {\n foldInfoList: FoldInfo[]\n unfoldInfo: UnfoldInfo\n }\n\n const x = [isZeroDimension ? foldInfoList[0].measureName : xDimension?.id]\n const y = foldInfoList.map((d) => d.measureValue)\n const group = [unfoldInfo.groupId]\n const color = [foldInfoList[0].measureName]\n\n return [\n ...prev,\n {\n x,\n y,\n group,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import { pick } from 'remeda'\nimport type { AdvancedPipe, AdvancedVSeed, Config } from 'src/types'\n\nexport const dualAxisConfig: AdvancedPipe = (advancedVSeed, context) => {\n const { vseed } = context\n const { chartType } = vseed\n const result = {\n ...advancedVSeed,\n }\n\n const config = pick(vseed, [\n // common\n 'backgroundColor',\n 'color',\n 'label',\n 'legend',\n 'tooltip',\n\n // only for dualAxis\n 'dualChartType',\n 'alignTicks',\n 'primaryYAxis',\n 'secondaryYAxis',\n 'crosshairLine',\n ]) as Config['dualAxis']\n\n result.config = {\n ...(result.config || {}),\n [chartType]: {\n ...config,\n },\n }\n\n return result as AdvancedVSeed\n}\n","import { measureDepth } from 'src/pipeline/utils'\nimport type { AdvancedPipe, Datum, DualAxis, DualMeasures, MeasureGroup, MeasureTree } from 'src/types'\n\nexport const autoDualMeasures: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context as {\n vseed: DualAxis\n }\n const { dataset, dualMeasures, measures } = vseed\n\n if (!dataset) {\n throw new Error('dataset is required')\n }\n\n if (dataset.length === 0) {\n return result\n }\n\n if (dualMeasures) {\n result.measures = dualMeasuresToMeasureTree(dualMeasures)\n return result\n }\n if (measures && measureDepth(measures) > 1) {\n result.measures = measures\n return result\n }\n\n const top100dataset = dataset.slice(0, 100)\n\n const sample = top100dataset.reduce<Datum>((prev, cur) => {\n return { ...prev, ...cur }\n }, {})\n\n const newMeasures =\n measures ||\n Object.keys(sample)\n .filter((key) => {\n return top100dataset.some((item) => typeof item[key] === 'number') && !['', null, undefined].includes(key)\n })\n .map((measure) => ({\n id: measure,\n alias: measure,\n }))\n\n if (newMeasures.length === 0) {\n result.measures = []\n return result\n } else if (newMeasures.length === 1) {\n result.measures = [\n {\n id: 'primary',\n alias: 'primary',\n children: newMeasures,\n },\n ]\n return result\n } else if (newMeasures.length > 1) {\n result.measures = [\n {\n id: 'primary',\n alias: 'primary',\n children: newMeasures.slice(0, 1),\n },\n {\n id: 'secondary',\n alias: 'secondary',\n children: newMeasures.slice(1),\n },\n ]\n }\n\n return result\n}\n\nconst dualMeasuresToMeasureTree = (dualMeasures: DualMeasures): MeasureTree => {\n const measureTree = dualMeasures.map((item, index): MeasureGroup => {\n const { primaryMeasures, secondaryMeasures } = item\n const groupChildren: MeasureGroup[] = []\n\n let id: string = ''\n if (primaryMeasures) {\n const arrPrimaryMeasures = Array.isArray(primaryMeasures) ? primaryMeasures : [primaryMeasures]\n const alias = arrPrimaryMeasures.map((item) => item.alias || item.id).toString()\n id += alias\n groupChildren.push({\n id: `${index}-primary`,\n alias: arrPrimaryMeasures.map((item) => item.alias || item.id).toString(),\n children: arrPrimaryMeasures,\n })\n }\n if (secondaryMeasures) {\n const arrSecondaryMeasures = Array.isArray(secondaryMeasures) ? secondaryMeasures : [secondaryMeasures]\n const alias = arrSecondaryMeasures.map((item) => item.alias || item.id).toString()\n id += alias\n groupChildren.push({\n id: `${index}-secondary`,\n alias: arrSecondaryMeasures.map((item) => item.alias || item.id).toString(),\n children: arrSecondaryMeasures,\n })\n }\n\n return {\n id,\n alias: id,\n children: groupChildren,\n }\n })\n\n // 只有1个双轴图, 仅返回2层, vchart 绘制双轴图\n if (dualMeasures.length === 1) {\n return measureTree[0].children || []\n }\n\n // 有多个双轴图, 返回3层, pivot chart 绘制组合双轴图\n return measureTree\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n annotation,\n markStyle,\n sortXBandAxis,\n sortLegend,\n reshapeTo2D2M,\n encodingXYY,\n pivotReshapeTo2D2M,\n dualAxisConfig,\n} from '../pipes'\nimport { autoDualMeasures } from '../pipes/init/autoDualMeasures'\n\nexport const dualAxisAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoDualMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D2M], [pivotReshapeTo2D2M]),\n encodingXYY,\n sortXBandAxis,\n sortLegend,\n dualAxisConfig,\n theme,\n markStyle,\n annotation\n]\n","import type { IBarSeriesSpec, ILineSeriesSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initDualAxisPrimary: SpecPipe = (spec, context) => {\n const result = { ...spec } as IBarSeriesSpec\n const { advancedVSeed } = context\n const { encoding, datasetReshapeInfo } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.id = `${datasetReshapeInfo[0].id}-primary-series`\n result.type = 'bar'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[0]\n result.seriesField = encoding[0].group[0]\n result.animation = true\n\n return result\n}\n\nexport const initDualAxisSecondary: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineSeriesSpec\n const { advancedVSeed } = context\n const { encoding, datasetReshapeInfo } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].group) {\n return result\n }\n\n result.id = `${datasetReshapeInfo[0].id}-secondary-series`\n result.type = 'line'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[1]\n result.seriesField = encoding[0].group[0]\n\n result.animation = true\n\n return result\n}\n","import type { IBarSeriesSpec, ISeriesSpec } from '@visactor/vchart'\nimport { DUAL_AXIS_CHART_COLUMN_Z_INDEX, DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX } from 'src/pipeline/utils/constant'\nimport type { DualChartType, SpecPipe } from 'src/types'\n\nexport const dualChartTypePrimary: SpecPipe = (spec, context) => {\n const result = { ...spec, zIndex: DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX } as ISeriesSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { datasetReshapeInfo } = advancedVSeed\n const index = datasetReshapeInfo[0].index\n\n const config =\n advancedVSeed.config?.[chartType as 'dualAxis']?.dualChartType ||\n ({\n primary: 'column',\n secondary: 'line',\n } as DualChartType)\n\n const primary = Array.isArray(config) ? config[index].primary || config[0].primary : config.primary\n const secondary = Array.isArray(config) ? config[index].secondary || config[0].secondary : config.secondary\n const bothColumn = primary === 'column' && secondary === 'column'\n const type = bothColumn ? 'columnParallel' : primary\n switch (type) {\n case 'line': {\n result.type = 'line'\n break\n }\n case 'column': {\n result.type = 'bar'\n result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX\n break\n }\n case 'columnParallel': {\n const columnSpec = result as IBarSeriesSpec\n if (Array.isArray(columnSpec.xField)) {\n columnSpec.xField.push(datasetReshapeInfo[0].unfoldInfo.groupId)\n } else if (columnSpec.xField) {\n columnSpec.xField = [columnSpec.xField, datasetReshapeInfo[0].unfoldInfo.groupId]\n }\n columnSpec.type = 'bar'\n result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX\n break\n }\n // @ts-expect-error 'columnPercent' 和 'areaPercent' 会改变轴值域为[0,1], VTable不支持.\n case 'columnPercent': {\n result.type = 'bar'\n result.percent = true\n break\n }\n case 'area': {\n result.type = 'area'\n break\n }\n // @ts-expect-error 'columnPercent' 和 'areaPercent' 会改变轴值域为[0,1], VTable不支持.\n case 'areaPercent': {\n result.type = 'area'\n result.percent = true\n break\n }\n case 'scatter': {\n result.type = 'scatter'\n break\n }\n default:\n result.type = primary\n }\n\n return result\n}\n\nexport const dualChartTypeSecondary: SpecPipe = (spec, context) => {\n const result = { ...spec, zIndex: DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX } as ISeriesSpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { datasetReshapeInfo } = advancedVSeed\n const config =\n advancedVSeed.config?.[chartType as 'dualAxis']?.dualChartType ||\n ({\n primary: 'column',\n secondary: 'line',\n } as DualChartType)\n\n const index = datasetReshapeInfo[0].index\n const primary = Array.isArray(config) ? config[index].primary || config[0].primary : config.primary\n const secondary = Array.isArray(config) ? config[index].secondary || config[0].secondary : config.secondary\n const bothColumn = primary === 'column' && secondary === 'column'\n const type = bothColumn ? 'columnParallel' : secondary\n\n switch (type) {\n case 'line': {\n result.type = 'line'\n break\n }\n case 'column': {\n result.type = 'bar'\n result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX\n break\n }\n case 'columnParallel': {\n const columnSpec = result as IBarSeriesSpec\n if (Array.isArray(columnSpec.xField)) {\n columnSpec.xField.push(datasetReshapeInfo[0].unfoldInfo.groupId)\n } else if (columnSpec.xField) {\n columnSpec.xField = [columnSpec.xField, datasetReshapeInfo[0].unfoldInfo.groupId]\n }\n columnSpec.type = 'bar'\n result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX\n break\n }\n // @ts-expect-error 'columnPercent' 和 'areaPercent' 会改变轴值域为[0,1], VTable不支持.\n case 'columnPercent': {\n result.type = 'bar'\n result.percent = true\n break\n }\n case 'area': {\n result.type = 'area'\n break\n }\n // @ts-expect-error 'columnPercent' 和 'areaPercent' 会改变轴值域为[0,1], VTable不支持.\n case 'areaPercent': {\n result.type = 'area'\n result.percent = true\n break\n }\n case 'scatter': {\n result.type = 'scatter'\n break\n }\n default:\n result.type = secondary\n }\n\n return result\n}\n","import type { ISpec } from '@visactor/vchart'\nimport { isPivotChart } from 'src/pipeline/utils'\nimport type { SpecPipe } from 'src/types'\n\nexport const datasetPrimary: SpecPipe = (spec, context) => {\n const { advancedVSeed, vseed } = context\n const { encoding, analysis, datasetReshapeInfo } = advancedVSeed\n const orderMapping = analysis?.orderMapping || {}\n const x = encoding[0]?.x?.[0]\n const group = encoding[0]?.group?.[0]\n const id = datasetReshapeInfo[0].id\n\n const fields: Record<string, object> = {}\n\n if (x) {\n const order = orderMapping[x]\n if (order) {\n fields[x] = {\n sortIndex: 0,\n domain: order,\n lockStatisticsByDomain: true,\n }\n } else {\n fields[x] = {\n sortIndex: 0,\n }\n }\n }\n\n if (group) {\n const order = orderMapping[group]\n if (order) {\n fields[group] = {\n sortIndex: 0,\n domain: order,\n lockStatisticsByDomain: true,\n }\n } else {\n fields[group] = {\n sortIndex: 0,\n }\n }\n }\n\n return {\n ...spec,\n data: {\n id: `${id}-primary-dataset`,\n // 透视表不使用 dataValues\n values: isPivotChart(vseed) ? undefined : advancedVSeed.dataset,\n fields: fields,\n },\n } as ISpec\n}\n\nexport const datasetSecondary: SpecPipe = (spec, context) => {\n const { advancedVSeed, vseed } = context\n const { encoding, analysis, datasetReshapeInfo } = advancedVSeed\n const orderMapping = analysis?.orderMapping || {}\n const x = encoding[0]?.x?.[0]\n const group = encoding[0]?.group?.[0]\n const id = datasetReshapeInfo[0].id\n\n const fields: Record<string, object> = {}\n\n if (x) {\n const order = orderMapping[x]\n if (order) {\n fields[x] = {\n sortIndex: 0,\n domain: order,\n lockStatisticsByDomain: true,\n }\n } else {\n fields[x] = {\n sortIndex: 0,\n }\n }\n }\n\n if (group) {\n const order = orderMapping[group]\n if (order) {\n fields[group] = {\n sortIndex: 0,\n domain: order,\n lockStatisticsByDomain: true,\n }\n } else {\n fields[group] = {\n sortIndex: 0,\n }\n }\n }\n\n return {\n ...spec,\n data: {\n id: `${id}-secondary-dataset`,\n // 透视表不使用 dataValues\n values: isPivotChart(vseed) ? undefined : advancedVSeed.dataset,\n fields: fields,\n },\n } as ISpec\n}\n","import type { ILineChartSpec } from '@visactor/vchart'\nimport type { ILineLikeLabelSpec } from '@visactor/vchart/esm/series/mixin/interface'\nimport { autoFormatter, createFormatter, findMeasureById } from '../../../../utils'\nimport type { Datum, FoldInfo, Label, SpecPipe } from 'src/types'\nimport { isEmpty, isNullish } from 'remeda'\n\nexport const labelPrimary: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo, locale } = advancedVSeed\n const { chartType } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { label: Label }\n\n if (!baseConfig || !baseConfig.label) {\n return result\n }\n\n const foldInfoList = datasetReshapeInfo[0].foldInfoList as FoldInfo[]\n const { measureId, measureValue } = foldInfoList[0]\n const { label } = baseConfig\n const { enable } = label\n\n result.label = {\n visible: enable,\n formatMethod: (value: string, datum: Datum) => {\n const result = []\n\n const formatValue = (value: number) => {\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return value\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n }\n\n result.push(formatValue(datum[measureValue] as number))\n\n return result.join(' ')\n },\n } as ILineLikeLabelSpec\n return result\n}\n\nexport const labelSecondary: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo, locale } = advancedVSeed\n const { chartType } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { label: Label }\n\n if (!baseConfig || !baseConfig.label) {\n return result\n }\n if (isNullish(datasetReshapeInfo[0].foldInfoList?.[1])) {\n return result\n }\n const foldInfoList = datasetReshapeInfo[0].foldInfoList as FoldInfo[]\n\n const { measureId, measureValue } = foldInfoList[1]\n const { label } = baseConfig\n const { enable } = label\n\n result.label = {\n visible: enable,\n formatMethod: (value: string, datum: Datum) => {\n const result = []\n\n const formatValue = (value: number) => {\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return value\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n }\n\n result.push(formatValue(datum[measureValue] as number))\n\n return result.join(' ')\n },\n } as ILineLikeLabelSpec\n return result\n}\n","import { isEmpty, isNullish } from 'remeda'\nimport { autoFormatter, createFormatter, findMeasureById } from '../../../../utils'\nimport type { Datum, FoldInfo, SpecPipe, Tooltip, UnfoldInfo } from 'src/types'\n\nexport const tooltipPrimary: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo, chartType, locale, dimensions } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n\n const foldInfoList = datasetReshapeInfo[0].foldInfoList as FoldInfo[]\n const unfoldInfo = datasetReshapeInfo[0].unfoldInfo\n\n const { measureId, measureValue, measureName } = foldInfoList[0]\n const { groupName } = unfoldInfo\n\n result.tooltip = {\n visible: enable,\n\n mark: {\n title: {\n visible: true,\n },\n content: [\n ...dimensions.map((item) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (datum: unknown) => {\n if (item.alias || item.id) {\n return item.alias || item.id\n }\n return (datum as Datum) && ((datum as Datum)[item.id] as string)\n },\n value: (datum: unknown) => {\n return (datum as Datum) && ((datum as Datum)[item.id] as string)\n },\n })),\n {\n visible: true,\n hasShape: true,\n key: (datum) => (datum && (datum[measureName || groupName] as string)) || '',\n value: (datum) => {\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n },\n },\n ],\n },\n dimension: {\n content: [\n {\n visible: true,\n key: (datum) => (datum && (datum[groupName] as string)) || '',\n value: (datum) => {\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n },\n shapeType: 'rectRound',\n },\n ],\n },\n }\n return result\n}\n\nexport const tooltipSecondary: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { measures, datasetReshapeInfo, chartType, locale, dimensions } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { tooltip: Tooltip }\n const { tooltip = { enable: true } } = baseConfig\n const { enable } = tooltip\n\n if (isNullish(datasetReshapeInfo[0].foldInfoList?.[1])) {\n return result\n }\n\n const foldInfoList = datasetReshapeInfo[0].foldInfoList as FoldInfo[]\n const unfoldInfo = datasetReshapeInfo[0].unfoldInfo as UnfoldInfo\n const { measureId, measureValue, measureName } = foldInfoList[1]\n const { groupName } = unfoldInfo\n\n result.tooltip = {\n visible: enable,\n\n mark: {\n title: {\n visible: true,\n },\n content: [\n ...dimensions.map((item) => ({\n visible: true,\n hasShape: true,\n shapeType: 'rectRound',\n key: (datum: unknown) => {\n if (item.alias || item.id) {\n return item.alias || item.id\n }\n return (datum as Datum) && ((datum as Datum)[item.id] as string)\n },\n value: (datum: unknown) => {\n return (datum as Datum) && ((datum as Datum)[item.id] as string)\n },\n })),\n {\n visible: true,\n hasShape: true,\n key: (datum) => (datum && (datum[measureName || groupName] as string)) || '',\n value: (datum) => {\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n },\n },\n ],\n },\n dimension: {\n content: [\n {\n visible: true,\n key: (datum) => (datum && (datum[groupName] as string)) || '',\n value: (datum) => {\n if (!datum) {\n return ''\n }\n const value = datum[measureValue] as string | number\n const id = datum[measureId] as string\n const measure = findMeasureById(measures, id)\n if (!measure) {\n return String(value)\n }\n\n const { format = {}, autoFormat = true } = measure\n\n if (!isEmpty(format)) {\n const formatter = createFormatter(format)\n return formatter(value)\n }\n if (autoFormat) {\n return autoFormatter(value, locale)\n }\n return String(value)\n },\n shapeType: 'rectRound',\n },\n ],\n },\n }\n return result\n}\n","import type { ISpec } from '@visactor/vchart'\nimport { LINEAR_AXIS_INNER_OFFSET_TOP } from '../../../../utils/constant'\nimport { autoFormatter } from '../../../../utils'\nimport type { SpecPipe, YLinearAxis } from 'src/types'\nimport { isEmpty } from 'remeda'\n\nexport const yLinearPrimary: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { locale, datasetReshapeInfo } = advancedVSeed\n // TODO: default config missing\n const index = datasetReshapeInfo[0].index\n const primaryYAxis = advancedVSeed.config?.[chartType as 'dualAxis']?.primaryYAxis as YLinearAxis | YLinearAxis[]\n const yAxisConfig = Array.isArray(primaryYAxis) ? primaryYAxis[index] || primaryYAxis[0] : primaryYAxis\n const alignTicks = advancedVSeed.config?.[chartType as 'dualAxis']?.alignTicks as boolean | boolean[]\n const alignTicksConfig = Array.isArray(alignTicks) ? alignTicks[index] || alignTicks[0] : alignTicks\n\n if (datasetReshapeInfo[0].foldInfoList?.[0] && isEmpty(datasetReshapeInfo[0].foldInfoList[0].foldMap)) {\n return result\n }\n const id = `${datasetReshapeInfo[0].id}-primary-axis`\n const seriesIds = [`${datasetReshapeInfo[0].id}-primary-series`, `${datasetReshapeInfo[0].id}-secondary-series`]\n const seriesId = alignTicksConfig ? seriesIds : seriesIds[0]\n\n if (!result.axes) {\n result.axes = []\n }\n\n if (!yAxisConfig) {\n result.axes = [\n ...result.axes,\n {\n visible: true,\n id,\n seriesId,\n type: 'linear',\n orient: 'left',\n },\n ] as ISpec['axes']\n return result\n }\n\n const {\n visible = true,\n label,\n tick,\n title,\n grid,\n line,\n\n zero,\n nice,\n inverse,\n max,\n min,\n log,\n logBase = 10,\n } = yAxisConfig\n\n const linearAxis = {\n visible,\n id,\n seriesId,\n\n type: log ? 'log' : 'linear',\n base: logBase,\n orient: 'left',\n nice,\n zero: log ? false : zero,\n inverse,\n max,\n min,\n label: {\n visible: label?.visible,\n formatMethod: (value: string) => {\n return autoFormatter(value, locale)\n },\n style: {\n fill: label?.labelColor,\n angle: label?.labelAngle,\n fontSize: label?.labelFontSize,\n fontWeight: label?.labelFontWeight,\n },\n },\n title: {\n visible: title?.visible,\n text: title?.titleText,\n style: {\n fill: title?.titleColor,\n fontSize: title?.titleFontSize,\n fontWeight: title?.titleFontWeight,\n },\n },\n tick: {\n visible: tick?.visible,\n tickSize: tick?.tickSize,\n inside: tick?.tickInside,\n style: {\n stroke: tick?.tickColor,\n },\n },\n grid: {\n visible: grid?.visible,\n style: {\n lineWidth: grid?.gridWidth,\n stroke: grid?.gridColor,\n },\n },\n domainLine: {\n visible: line?.visible,\n style: {\n lineWidth: line?.lineWidth,\n stroke: line?.lineColor,\n },\n },\n innerOffset: {\n top: LINEAR_AXIS_INNER_OFFSET_TOP,\n // bottom: LINEAR_AXIS_INNER_OFFSET_TOP,\n },\n }\n\n result.axes = [...result.axes, linearAxis] as ISpec['axes']\n\n return result\n}\n","import type { ISpec } from '@visactor/vchart'\nimport { LINEAR_AXIS_INNER_OFFSET_TOP } from '../../../../utils/constant'\nimport { autoFormatter } from '../../../../utils'\nimport type { SpecPipe, YLinearAxis } from 'src/types'\nimport { isNullish } from 'remeda'\n\nexport const yLinearSecondary: SpecPipe = (spec, context) => {\n const result = { ...spec } as ISpec\n const { advancedVSeed, vseed } = context\n const { chartType } = vseed\n const { locale, datasetReshapeInfo } = advancedVSeed\n // TODO: default config missing\n const index = datasetReshapeInfo[0].index\n const secondaryYAxis = advancedVSeed.config?.[chartType as 'dualAxis']?.secondaryYAxis as YLinearAxis | YLinearAxis[]\n const yAxisConfig = Array.isArray(secondaryYAxis) ? secondaryYAxis[index] || secondaryYAxis[0] : secondaryYAxis\n const alignTicks = advancedVSeed.config?.[chartType as 'dualAxis']?.alignTicks as boolean | boolean[]\n const alignTicksConfig = Array.isArray(alignTicks) ? alignTicks[index] || alignTicks[0] : alignTicks\n\n if (isNullish(datasetReshapeInfo[0].foldInfoList?.[1])) {\n return result\n }\n\n const sync = {\n axisId: `${datasetReshapeInfo[0].id}-primary-axis`,\n zeroAlign: true,\n }\n\n const id = `${datasetReshapeInfo[0].id}-secondary-axis`\n const seriesIds = [`${datasetReshapeInfo[0].id}-primary-series`, `${datasetReshapeInfo[0].id}-secondary-series`]\n const seriesId = alignTicksConfig ? seriesIds : seriesIds[1]\n if (!result.axes) {\n result.axes = []\n }\n\n if (!yAxisConfig) {\n result.axes = [\n ...result.axes,\n {\n visible: true,\n id,\n seriesId,\n type: 'linear',\n orient: 'right',\n sync,\n },\n ] as ISpec['axes']\n return result\n }\n\n const {\n visible = true,\n label,\n tick,\n title,\n grid,\n line,\n\n zero,\n nice,\n inverse,\n max,\n min,\n log,\n logBase = 10,\n } = yAxisConfig\n\n const linearAxis = {\n visible,\n id,\n seriesId,\n sync,\n type: log ? 'log' : 'linear',\n base: logBase,\n orient: 'right',\n nice,\n zero: log ? false : zero,\n inverse,\n max,\n min,\n label: {\n visible: label?.visible,\n formatMethod: (value: string) => {\n return autoFormatter(value, locale)\n },\n style: {\n fill: label?.labelColor,\n angle: label?.labelAngle,\n fontSize: label?.labelFontSize,\n fontWeight: label?.labelFontWeight,\n },\n },\n title: {\n visible: title?.visible,\n text: title?.titleText,\n style: {\n fill: title?.titleColor,\n fontSize: title?.titleFontSize,\n fontWeight: title?.titleFontWeight,\n },\n },\n tick: {\n visible: tick?.visible,\n tickSize: tick?.tickSize,\n inside: tick?.tickInside,\n style: {\n stroke: tick?.tickColor,\n },\n },\n grid: {\n visible: grid?.visible,\n style: {\n lineWidth: grid?.gridWidth,\n stroke: grid?.gridColor,\n },\n },\n domainLine: {\n visible: line?.visible,\n style: {\n lineWidth: line?.lineWidth,\n stroke: line?.lineColor,\n },\n },\n innerOffset: {\n top: LINEAR_AXIS_INNER_OFFSET_TOP,\n // bottom: LINEAR_AXIS_INNER_OFFSET_TOP,\n },\n }\n\n result.axes = [...result.axes, linearAxis] as ISpec['axes']\n\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n xBand,\n backgroundColor,\n discreteLegend,\n color,\n initPivot,\n datasetPivot,\n pivotDiscreteLegend,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n pointStyle,\n lineStyle,\n pointStateDimensionHover,\n progressive,\n datasetPrimary,\n datasetSecondary,\n areaStyle,\n barStyle,\n verticalCrosshairRect,\n yLinearSecondary,\n initDualAxisPrimary,\n initDualAxisSecondary,\n labelPrimary,\n labelSecondary,\n tooltipPrimary,\n tooltipSecondary,\n yLinearPrimary,\n dualChartTypePrimary,\n dualChartTypeSecondary,\n seriesDualAxis,\n} from '../pipes'\n\nconst dualAxis: SpecPipeline = [\n seriesDualAxis(\n [\n initDualAxisPrimary,\n dualChartTypePrimary,\n datasetPrimary,\n labelPrimary,\n tooltipPrimary,\n progressive,\n\n barStyle,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n areaStyle,\n ],\n [\n initDualAxisSecondary,\n dualChartTypeSecondary,\n datasetSecondary,\n labelSecondary,\n tooltipSecondary,\n progressive,\n\n barStyle,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n areaStyle,\n ],\n ),\n xBand,\n yLinearPrimary,\n yLinearSecondary,\n\n color,\n backgroundColor,\n discreteLegend,\n\n verticalCrosshairRect,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotDualAxis: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n seriesDualAxis(\n [\n initDualAxisPrimary,\n dualChartTypePrimary,\n datasetPrimary,\n labelPrimary,\n tooltipPrimary,\n progressive,\n\n barStyle,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n areaStyle,\n ],\n [\n initDualAxisSecondary,\n dualChartTypeSecondary,\n datasetSecondary,\n labelSecondary,\n tooltipSecondary,\n progressive,\n\n barStyle,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n areaStyle,\n ],\n ),\n xBand,\n yLinearPrimary,\n yLinearSecondary,\n color,\n backgroundColor,\n verticalCrosshairRect,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const dualAxisSpecPipeline: SpecPipeline = [pivotAdapter(dualAxis, pivotDualAxis)]\n","import { dualAxisAdvancedPipeline, dualAxisSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerDualAxis = () => {\n Builder._advancedPipelineMap['dualAxis'] = dualAxisAdvancedPipeline\n Builder._specPipelineMap['dualAxis'] = dualAxisSpecPipeline\n}\n","import type { Dataset, Dimension, FoldInfo, Measure, UnfoldInfo } from 'src/types'\nimport { foldMeasures } from './foldMeasures'\nimport {\n UnfoldDimensionGroup,\n FoldMeasureId,\n FoldMeasureName,\n FoldMeasureValue,\n UnfoldDimensionGroupId,\n} from './constant'\nimport { unfoldDimensions } from './unfoldDimensions'\nimport { i18n } from '../i18n'\n\nconst emptyReshapeResult = {\n dataset: [],\n foldInfo: {\n foldMap: {},\n measureId: '',\n measureName: '',\n measureValue: '',\n },\n unfoldInfo: {\n groupName: '',\n groupId: '',\n colorItems: [],\n colorIdMap: {},\n },\n}\n/**\n * 数据重塑为1个维度1个指标\n * @param dataset\n * @param dimensions\n * @param measures\n * @returns\n */\nexport const dataReshapeFor1D1M = (\n dataset: Dataset,\n dimensions: Dimension[],\n measures: Measure[],\n options?: {\n foldMeasureId?: string\n foldMeasureName?: string\n foldMeasureValue?: string\n unfoldDimensionGroup?: string\n unfoldDimensionGroupId?: string\n },\n): {\n dataset: Dataset\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n} => {\n const {\n foldMeasureId = FoldMeasureId,\n foldMeasureName = FoldMeasureName,\n foldMeasureValue = FoldMeasureValue,\n unfoldDimensionGroup = UnfoldDimensionGroup,\n unfoldDimensionGroupId = UnfoldDimensionGroupId,\n } = options || {}\n\n if (dimensions.length === 0 && measures.length === 0) {\n return emptyReshapeResult\n }\n\n // 合并所有指标为1个指标\n const { dataset: foldedDataset, foldInfo } = foldMeasures(\n dataset,\n measures,\n foldMeasureId,\n foldMeasureName,\n foldMeasureValue,\n )\n\n if (dimensions.length === 0) {\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n [{ id: foldMeasureName, alias: i18n`指标名称`, location: 'dimension' }],\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\n 0,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n foldMeasureId,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n } else {\n const dims =\n measures.length === 1\n ? ([...dimensions] as Dimension[])\n : ([...dimensions, { id: foldMeasureName, alias: i18n`指标名称`, location: 'dimension' }] as Dimension[])\n // 展开指定的维度为指标\n const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(\n foldedDataset,\n dims,\n [{ id: foldMeasureValue, alias: i18n`指标值` }],\n 0,\n unfoldDimensionGroup,\n unfoldDimensionGroupId,\n foldMeasureId,\n )\n return { dataset: finalDataset, foldInfo, unfoldInfo }\n }\n}\n","import { dataReshapeFor1D1M } from 'src/dataReshape'\nimport type { AdvancedPipe } from 'src/types'\n\n/**\n * 数据重塑, 将任意维度、任意指标, 重塑为2个维度1个指标.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const reshapeTo1D1M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { dimensions, measures } = advancedVSeed\n if (!measures || !dimensions || !dataset) {\n return result\n }\n\n if (measures.length === 0) {\n throw new Error('measures can not be empty')\n }\n\n const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeFor1D1M(dataset, dimensions, measures)\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: [\n {\n id: '1D1M',\n index: 0,\n foldInfo,\n unfoldInfo,\n },\n ],\n }\n}\n","import { FoldMeasureId, FoldMeasureName, FoldMeasureValue, UnfoldDimensionGroup } from 'src/dataReshape/constant'\nimport { dataReshapeFor1D1M } from 'src/dataReshape'\nimport type { AdvancedPipe, Dataset, DatasetReshapeInfo, Dimensions, MeasureGroup } from 'src/types'\n\n/**\n * 数据重塑为透视结构, 如果存在指标分组, 则将数据按组划分. 如果存在行列维度, 则生成行列树结构.\n * @param advancedVSeed\n * @param context\n * @returns\n */\nexport const pivotReshapeTo1D1M: AdvancedPipe = (advancedVSeed, context) => {\n const result = { ...advancedVSeed }\n const { vseed } = context\n const { dataset } = vseed\n const { measures } = advancedVSeed\n const dimensions = advancedVSeed.dimensions as Dimensions\n\n if (!measures || !dimensions) {\n return result\n }\n\n const measureGroups: MeasureGroup[] = []\n if (measures) {\n measures.forEach((measure: MeasureGroup) => {\n if (measure.children && measure.children.length > 0) {\n measureGroups.push(measure)\n }\n })\n }\n const newDatasets: Dataset = []\n const datasetReshapeInfo: DatasetReshapeInfo = []\n measureGroups.forEach((measureGroup, index) => {\n const measures = measureGroup.children\n if (!measures) {\n return\n }\n\n const commonDimensions = dimensions.filter((dim) => dim.location === 'dimension')\n const groupId = measureGroup.id\n const {\n dataset: newSubDataset,\n foldInfo,\n unfoldInfo,\n } = dataReshapeFor1D1M(dataset, commonDimensions, measures, {\n foldMeasureId: FoldMeasureId,\n foldMeasureName: FoldMeasureName,\n foldMeasureValue: FoldMeasureValue + groupId,\n unfoldDimensionGroup: UnfoldDimensionGroup,\n })\n const reshapeInfo = {\n id: groupId,\n index,\n foldInfo,\n unfoldInfo,\n }\n newDatasets.push(newSubDataset)\n datasetReshapeInfo.push(reshapeInfo)\n })\n\n return {\n ...result,\n dataset: newDatasets,\n datasetReshapeInfo: datasetReshapeInfo,\n }\n}\n","import type { AdvancedPipe, FoldInfo, UnfoldInfo } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingPie: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo } = advancedVSeed\n if (!datasetReshapeInfo) {\n return result\n }\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfo, unfoldInfo } = cur as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n const radius = [foldInfo.measureValue]\n const angle = [unfoldInfo.groupId]\n const group = [unfoldInfo.groupId]\n const color = [unfoldInfo.groupId]\n\n return [\n ...prev,\n {\n angle,\n radius,\n group,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n reshapeTo1D1M,\n pivotReshapeTo1D1M,\n encodingPie,\n pieConfig,\n annotation,\n} from '../pipes'\n\nexport const pieAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo1D1M], [pivotReshapeTo1D1M]),\n encodingPie,\n pieConfig,\n theme,\n annotation\n]\n","import type { IPieChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initPie: SpecPipe = (spec, context) => {\n const result = { ...spec } as IPieChartSpec\n const { advancedVSeed } = context\n const { encoding, dataset } = advancedVSeed\n\n if (!encoding[0].angle || !encoding[0].radius || !encoding[0].group) {\n return result\n }\n\n const showStroke = dataset.length <= 30\n\n result.type = 'pie'\n result.outerRadius = 0.8\n result.innerRadius = 0\n result.valueField = encoding[0].radius[0]\n result.categoryField = encoding[0].angle[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n result.pie = {\n style: {\n stroke: '#ffffff',\n lineWidth: showStroke ? 1 : 0,\n centerOffset: 0,\n },\n state: {\n hover: {\n outerRadius: result.outerRadius * 1.1,\n },\n },\n }\n result.animation = true\n\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n backgroundColor,\n color,\n datasetXY,\n datasetPivot,\n initPie,\n initPivot,\n label,\n discreteLegend,\n pivotAdapter,\n pivotColumnDimensions,\n pivotGridStyle,\n pivotIndicators,\n pivotIndicatorsAsRow,\n pivotDiscreteLegend,\n pivotRowDimensions,\n tooltip,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n progressive,\n} from '../pipes'\n\nconst pie: SpecPipeline = [\n initPie,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n label,\n tooltip,\n discreteLegend,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotPie: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initPie,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n label,\n tooltip,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const pieSpecPipeline: SpecPipeline = [pivotAdapter(pie, pivotPie)]\n","import { pieAdvancedPipeline, pieSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerPie = () => {\n Builder._advancedPipelineMap['pie'] = pieAdvancedPipeline\n Builder._specPipelineMap['pie'] = pieSpecPipeline\n}","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n reshapeTo1D1M,\n pivotReshapeTo1D1M,\n encodingPie,\n annotation,\n donutConfig,\n} from '../pipes'\n\nexport const donutAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo1D1M], [pivotReshapeTo1D1M]),\n encodingPie,\n donutConfig,\n theme,\n annotation\n]\n","import type { IPieChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initDonut: SpecPipe = (spec, context) => {\n const result = { ...spec } as IPieChartSpec\n const { advancedVSeed } = context\n const { encoding, dataset } = advancedVSeed\n\n if (!encoding[0].angle || !encoding[0].radius || !encoding[0].group) {\n return result\n }\n const showStroke = dataset.length <= 30\n\n result.type = 'pie'\n result.outerRadius = 0.8\n result.innerRadius = result.outerRadius * 0.8\n result.valueField = encoding[0].radius[0]\n result.categoryField = encoding[0].angle[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n\n result.pie = {\n style: {\n stroke: '#ffffff',\n lineWidth: showStroke ? 1 : 0,\n },\n state: {\n hover: {\n outerRadius: result.outerRadius * 1.1,\n },\n },\n }\n\n result.animation = true\n\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n backgroundColor,\n color,\n datasetXY,\n datasetPivot,\n initDonut,\n initPivot,\n label,\n discreteLegend,\n pivotAdapter,\n pivotColumnDimensions,\n pivotGridStyle,\n pivotIndicators,\n pivotIndicatorsAsRow,\n pivotDiscreteLegend,\n pivotRowDimensions,\n tooltip,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n progressive,\n} from '../pipes'\n\nconst donut: SpecPipeline = [\n initDonut,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n label,\n tooltip,\n discreteLegend,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotDonut: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initDonut,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n label,\n tooltip,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const donutSpecPipeline: SpecPipeline = [pivotAdapter(donut, pivotDonut)]\n","import { donutAdvancedPipeline, donutSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerDonut = () => {\n Builder._advancedPipelineMap['donut'] = donutAdvancedPipeline\n Builder._specPipelineMap['donut'] = donutSpecPipeline\n}","import type { AdvancedPipe, Dimensions, FoldInfo, UnfoldInfo } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingRose: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo, dimensions, measures } = advancedVSeed\n if (!datasetReshapeInfo || !dimensions || !measures) {\n return result\n }\n\n const angleDimension =\n (dimensions as Dimensions).find(\n (item) => item.location !== 'rowDimension' && item.location !== 'columnDimension',\n ) || dimensions[0]\n\n const is1D1M = dimensions.length === 1 && measures.length === 1\n const isZeroDimension = dimensions.length === 0\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfo, unfoldInfo } = cur as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n const radius = [foldInfo.measureValue]\n const angle = [isZeroDimension ? foldInfo.measureName : angleDimension?.id]\n const group = [is1D1M ? angleDimension?.id : unfoldInfo.groupId]\n const color = [is1D1M ? angleDimension?.id : unfoldInfo.groupId]\n\n return [\n ...prev,\n {\n angle,\n radius,\n group,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n initAdvancedVSeed,\n reshapeTo2D1M,\n theme,\n pivotAdapter,\n markStyle,\n annotation,\n roseConfig,\n encodingRose,\n pivotReshapeTo2D1M,\n} from '../pipes'\n\nexport const roseAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingRose,\n roseConfig,\n theme,\n markStyle,\n annotation,\n]\n","import type { IRoseChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initRose: SpecPipe = (spec, context) => {\n const result = { ...spec } as IRoseChartSpec\n const { advancedVSeed } = context\n const { encoding, dataset, datasetReshapeInfo } = advancedVSeed\n const { foldInfo } = datasetReshapeInfo[0]\n if (!encoding[0].radius || !encoding[0].angle || !encoding[0].group) {\n return result\n }\n\n result.type = 'rose'\n result.categoryField = encoding[0].angle[0]\n result.valueField = encoding[0].radius[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.outerRadius = 0.9\n result.innerRadius = 0\n\n const hasNegativeValue = dataset.flat().find((d) => d[foldInfo.measureValue] < 0)\n if (hasNegativeValue) {\n result.innerRadius = 0.05\n }\n\n result.rose = {\n style: {\n stroke: '#ffffff',\n lineWidth: 1,\n },\n state: {\n hover: {\n lineWidth: 1,\n fillOpacity: 0.6,\n },\n },\n }\n result.region = [\n {\n clip: true,\n },\n ]\n result.animation = true\n\n return result\n}\n","import type { IRoseChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const radiusAxis: SpecPipe = (spec, context) => {\n const result = { ...spec } as IRoseChartSpec\n const { advancedVSeed } = context\n const { dimensions, measures } = advancedVSeed\n\n if (!dimensions || !measures) {\n return result\n }\n\n const is0D = dimensions.length === 0\n const is1M1D = dimensions.length === 1 && measures.length === 1\n const showAxis = !(is0D || is1M1D)\n\n if (!result.axes) {\n result.axes = []\n }\n\n result.axes.push({\n orient: 'radius',\n visible: showAxis,\n zero: true,\n nice: showAxis ? true : false,\n grid: {\n visible: showAxis,\n },\n tick: {\n visible: showAxis,\n },\n label: {\n visible: showAxis,\n },\n domainLine: {\n visible: showAxis,\n },\n })\n\n return result\n}\n","import type { IRoseChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const angleAxis: SpecPipe = (spec, context) => {\n const result = { ...spec } as IRoseChartSpec\n const { advancedVSeed } = context\n const { dimensions, measures } = advancedVSeed\n\n if (!dimensions || !measures) {\n return result\n }\n\n const is0D = dimensions.length === 0\n const is1M1D = dimensions.length === 1 && measures.length === 1\n const showAxis = !(is0D || is1M1D)\n\n if (!result.axes) {\n result.axes = []\n }\n\n result.axes.push({\n orient: 'angle',\n visible: showAxis,\n zero: true,\n nice: showAxis ? true : false,\n paddingInner: showAxis ? [0.15, 0.1] : [0, 0],\n paddingOuter: showAxis ? [0.075, 0.1] : [0, 0],\n grid: {\n visible: showAxis,\n },\n domainLine: {\n visible: showAxis,\n },\n tick: {\n visible: showAxis,\n },\n })\n\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n datasetXY,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n pivotAdapter,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotDiscreteLegend,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n stackInverse,\n verticalCrosshairRect,\n stackCornerRadius,\n initRose,\n radiusAxis,\n angleAxis,\n progressive,\n} from '../pipes'\n\nconst rose: SpecPipeline = [\n initRose,\n stackCornerRadius,\n stackInverse,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n radiusAxis,\n angleAxis,\n label,\n tooltip,\n verticalCrosshairRect,\n discreteLegend,\n]\n\nconst pivotRose: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initRose,\n stackCornerRadius,\n stackInverse,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n radiusAxis,\n angleAxis,\n label,\n tooltip,\n verticalCrosshairRect,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const roseSpecPipeline = [pivotAdapter(rose, pivotRose)]\n","import { roseAdvancedPipeline, roseSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerRose = () => {\n Builder._advancedPipelineMap['rose'] = roseAdvancedPipeline\n Builder._specPipelineMap['rose'] = roseSpecPipeline\n}","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n initAdvancedVSeed,\n reshapeTo2D1M,\n theme,\n pivotAdapter,\n pivotReshapeTo2D1M,\n markStyle,\n annotation,\n roseParallelConfig,\n encodingRose,\n} from '../pipes'\n\nexport const roseParallelAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingRose,\n roseParallelConfig,\n theme,\n markStyle,\n annotation,\n]\n","import type { IRoseChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initRoseParallel: SpecPipe = (spec, context) => {\n const result = { ...spec } as IRoseChartSpec\n const { advancedVSeed } = context\n const { encoding, datasetReshapeInfo, dataset } = advancedVSeed\n const { unfoldInfo, foldInfo } = datasetReshapeInfo[0]\n\n if (!encoding[0].radius || !encoding[0].angle || !encoding[0].group) {\n return result\n }\n\n result.type = 'rose'\n result.categoryField = [encoding[0].angle[0], unfoldInfo.groupId]\n result.valueField = encoding[0].radius[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n\n result.outerRadius = 0.9\n result.innerRadius = 0\n\n const hasNegativeValue = dataset.flat().find((d) => d[foldInfo.measureValue] < 0)\n if (hasNegativeValue) {\n result.innerRadius = 0.05\n }\n\n result.rose = {\n style: {\n stroke: '#ffffff',\n lineWidth: 1,\n },\n state: {\n hover: {\n lineWidth: 1,\n fillOpacity: 0.6,\n },\n },\n }\n result.region = [\n {\n clip: true,\n },\n ]\n result.animation = true\n\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n datasetXY,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n pivotIndicators,\n initPivot,\n datasetPivot,\n pivotAdapter,\n pivotDiscreteLegend,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotRowDimensions,\n pivotColumnDimensions,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n verticalCrosshairRect,\n stackCornerRadius,\n initRoseParallel,\n radiusAxis,\n angleAxis,\n progressive,\n} from '../pipes'\n\nconst roseParallel: SpecPipeline = [\n initRoseParallel,\n stackCornerRadius,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n radiusAxis,\n angleAxis,\n label,\n tooltip,\n discreteLegend,\n verticalCrosshairRect,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n]\n\nconst pivotRoseParallel: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initRoseParallel,\n stackCornerRadius,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n radiusAxis,\n angleAxis,\n label,\n tooltip,\n verticalCrosshairRect,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationAreaBand,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const roseParallelSpecPipeline: SpecPipeline = [pivotAdapter(roseParallel, pivotRoseParallel)]\n","import { roseParallelAdvancedPipeline, roseParallelSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerRoseParallel = () => {\n Builder._advancedPipelineMap['roseParallel'] = roseParallelAdvancedPipeline\n Builder._specPipelineMap['roseParallel'] = roseParallelSpecPipeline\n}","import type { AdvancedPipe, Dimensions, FoldInfo, UnfoldInfo } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingAR: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo, dimensions, measures } = advancedVSeed\n if (!datasetReshapeInfo || !dimensions || !measures) {\n return result\n }\n\n const angleDimension =\n (dimensions as Dimensions).find(\n (item) => item.location !== 'rowDimension' && item.location !== 'columnDimension',\n ) || dimensions[0]\n\n const isZeroDimension = dimensions.length === 0\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfo, unfoldInfo } = cur as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n const angle = [isZeroDimension ? foldInfo.measureName : angleDimension?.id]\n const radius = [foldInfo.measureValue]\n const group = [unfoldInfo.groupId]\n const color = [unfoldInfo.groupId]\n\n return [\n ...prev,\n {\n angle,\n radius,\n group,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n annotation,\n markStyle,\n sortLegend,\n radarConfig,\n encodingAR,\n reshapeTo2D1M0Name,\n pivotReshapeTo2D1M0Name,\n} from '../pipes'\n\nexport const radarAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M0Name], [pivotReshapeTo2D1M0Name]),\n encodingAR,\n // sortXBandAxis,\n sortLegend,\n radarConfig,\n theme,\n markStyle,\n annotation,\n]\n","import type { IRadarChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initRadar: SpecPipe = (spec, context) => {\n const result = { ...spec } as IRadarChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].angle || !encoding[0].radius || !encoding[0].group) {\n return result\n }\n\n result.type = 'radar'\n result.angleField = encoding[0].angle[0]\n result.radiusField = encoding[0].radius[0]\n result.seriesField = encoding[0].group[0]\n result.padding = 0\n result.region = [\n {\n clip: true,\n },\n ]\n result.animation = true\n return result\n}\n","import type { IRoseChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const radarAngleAxis: SpecPipe = (spec, context) => {\n const result = { ...spec } as IRoseChartSpec\n const { advancedVSeed } = context\n const { dimensions, measures } = advancedVSeed\n\n if (!dimensions || !measures) {\n return result\n }\n\n if (!result.axes) {\n result.axes = []\n }\n\n result.axes.push({\n orient: 'angle',\n visible: true,\n zero: true,\n nice: true,\n grid: {\n visible: true,\n },\n domainLine: {\n visible: true,\n },\n tick: {\n visible: true,\n },\n })\n\n return result\n}\n","import type { IRoseChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const radarRadiusAxis: SpecPipe = (spec, context) => {\n const result = { ...spec } as IRoseChartSpec\n const { advancedVSeed } = context\n const { dimensions, measures } = advancedVSeed\n\n if (!dimensions || !measures) {\n return result\n }\n\n if (!result.axes) {\n result.axes = []\n }\n\n result.axes.push({\n orient: 'radius',\n visible: true,\n zero: true,\n nice: true,\n grid: {\n visible: true,\n },\n tick: {\n visible: true,\n },\n label: {\n visible: true,\n },\n domainLine: {\n visible: true,\n },\n })\n\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n datasetXY,\n backgroundColor,\n label,\n tooltip,\n discreteLegend,\n color,\n initPivot,\n datasetPivot,\n pivotDiscreteLegend,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n pointStyle,\n lineStyle,\n verticalCrosshairLine,\n pointStateDimensionHover,\n initRadar,\n areaStyle,\n radarAngleAxis,\n radarRadiusAxis,\n progressive,\n} from '../pipes'\n\nconst radar: SpecPipeline = [\n initRadar,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n radarAngleAxis,\n radarRadiusAxis,\n label,\n tooltip,\n verticalCrosshairLine,\n discreteLegend,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n areaStyle,\n // annotationPoint,\n // annotationVerticalLine,\n // annotationHorizontalLine,\n // annotationArea,\n]\n\nconst pivotRadar: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initRadar,\n color,\n backgroundColor,\n datasetXY,\n progressive,\n radarAngleAxis,\n radarRadiusAxis,\n label,\n tooltip,\n verticalCrosshairLine,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n areaStyle,\n // annotationPoint,\n // annotationVerticalLine,\n // annotationHorizontalLine,\n // annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n pivotDiscreteLegend,\n]\n\nexport const radarSpecPipeline: SpecPipeline = [pivotAdapter(radar, pivotRadar)]\n","import { radarAdvancedPipeline, radarSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerRadar = () => {\n Builder._advancedPipelineMap['radar'] = radarAdvancedPipeline\n Builder._specPipelineMap['radar'] = radarSpecPipeline\n}","import type { AdvancedPipe, FoldInfo, UnfoldInfo } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingFunnel: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo } = advancedVSeed\n if (!datasetReshapeInfo) {\n return result\n }\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfo, unfoldInfo } = cur as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n const size = [foldInfo.measureValue]\n const group = [unfoldInfo.groupId]\n const color = [foldInfo.measureValue]\n\n return [\n ...prev,\n {\n size,\n group,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n initAdvancedVSeed,\n theme,\n pivotAdapter,\n reshapeTo1D1M,\n pivotReshapeTo1D1M,\n annotation,\n encodingFunnel,\n funnelConfig,\n} from '../pipes'\n\nexport const funnelAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo1D1M], [pivotReshapeTo1D1M]),\n encodingFunnel,\n funnelConfig,\n theme,\n annotation,\n]\n","import type { IFunnelChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initFunnel: SpecPipe = (spec, context) => {\n const result = { ...spec } as IFunnelChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].size || !encoding[0].group || !encoding[0].color) {\n return result\n }\n\n result.type = 'funnel'\n result.valueField = encoding[0].size[0]\n result.categoryField = encoding[0].group[0]\n result.padding = 0\n result.isTransform = true\n result.shape = 'rect'\n result.maxSize = '75%'\n result.minSize = '10%'\n result.region = [\n {\n clip: true,\n },\n ]\n result.funnel = {\n style: {\n cornerRadius: 4,\n fill: {\n field: encoding[0].color[0],\n scale: 'color',\n },\n },\n state: {\n hover: {\n fillOpacity: 0.6,\n },\n },\n }\n result.transformLabel = {\n visible: true,\n }\n\n result.animation = true\n\n return result\n}\n","import type { ILineChartSpec } from '@visactor/vchart'\nimport type { Color, SpecPipe } from 'src/types'\n\nexport const linearColor: SpecPipe = (spec, context) => {\n const result = { ...spec } as ILineChartSpec\n const { advancedVSeed } = context\n const { datasetReshapeInfo, chartType, encoding } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { color: Color }\n\n if (!baseConfig || !baseConfig.color) {\n return result\n }\n\n const { color } = baseConfig\n const { colorScheme } = color\n\n result.color = {\n type: 'linear',\n domain: [\n {\n dataId: datasetReshapeInfo[0].id,\n fields: encoding?.[0]?.color,\n },\n ],\n range: colorScheme,\n } as ILineChartSpec['color']\n return result\n}\n","import type { Legend, SpecPipe } from 'src/types'\n\nexport const colorLegend: SpecPipe = (spec, context) => {\n const result = { ...spec }\n const { advancedVSeed } = context\n const { chartType } = advancedVSeed\n const baseConfig = advancedVSeed.config[chartType] as { legend: Legend }\n const { encoding } = advancedVSeed\n\n if (!encoding[0].color) {\n return result\n }\n\n if (!baseConfig || !baseConfig.legend) {\n return result\n }\n\n const { legend } = baseConfig\n const { enable, position = 'bottom' } = legend || {}\n\n const orient = ['bottom', 'bottomLeft', 'bottomRight', 'bl', 'br'].includes(position)\n ? 'bottom'\n : ['top', 'topLeft', 'topRight', 'tl', 'tr'].includes(position)\n ? 'top'\n : ['left', 'leftTop', 'leftBottom', 'lt', 'lb'].includes(position)\n ? 'left'\n : 'right'\n\n const legendPosition = ['topLeft', 'bottomLeft', 'leftTop', 'rightTop', 'lt', 'rt', 'tl', 'bl'].includes(position)\n ? 'start'\n : ['topRight', 'bottomRight', 'leftBottom', 'rightBottom', 'lb', 'rb', 'rt', 'br'].includes(position)\n ? 'end'\n : 'middle'\n\n result.legends = {\n type: 'color',\n visible: enable,\n orient,\n position: legendPosition,\n field: encoding[0].color[0],\n inverse: ['left', 'right'].includes(orient) ? true : false,\n }\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n backgroundColor,\n datasetXY,\n datasetPivot,\n initPivot,\n label,\n colorLegend,\n pivotAdapter,\n pivotColumnDimensions,\n pivotGridStyle,\n pivotIndicators,\n pivotIndicatorsAsRow,\n pivotRowDimensions,\n tooltip,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n initFunnel,\n linearColor,\n} from '../pipes'\n\nconst funnel: SpecPipeline = [\n initFunnel,\n linearColor,\n backgroundColor,\n datasetXY,\n label,\n tooltip,\n colorLegend,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotFunnel: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initFunnel,\n linearColor,\n backgroundColor,\n datasetXY,\n label,\n tooltip,\n colorLegend,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n]\n\nexport const funnelSpecPipeline: SpecPipeline = [pivotAdapter(funnel, pivotFunnel)]\n","import { funnelAdvancedPipeline, funnelSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerFunnel = () => {\n Builder._advancedPipelineMap['funnel'] = funnelAdvancedPipeline\n Builder._specPipelineMap['funnel'] = funnelSpecPipeline\n}","import type { AdvancedPipe, Dimensions, FoldInfo, UnfoldInfo } from 'src/types'\nimport type { Encoding } from 'src/types'\n\nexport const encodingMatrix: AdvancedPipe = (advancedVSeed) => {\n const result = { ...advancedVSeed }\n const { datasetReshapeInfo, dimensions } = advancedVSeed\n if (!datasetReshapeInfo || !dimensions) {\n return result\n }\n\n const xDimension =\n (dimensions as Dimensions).find(\n (item) => item.location !== 'rowDimension' && item.location !== 'columnDimension',\n ) || dimensions[0]\n\n const isZeroDimension = dimensions.length === 0\n\n const encoding = datasetReshapeInfo.reduce<Encoding>((prev, cur) => {\n const { foldInfo, unfoldInfo } = cur as {\n foldInfo: FoldInfo\n unfoldInfo: UnfoldInfo\n }\n\n const x = [isZeroDimension ? foldInfo.measureName : xDimension?.id]\n const y = [unfoldInfo.groupName]\n const color = [foldInfo.measureValue]\n\n return [\n ...prev,\n {\n x,\n y,\n color,\n },\n ] as Encoding\n }, [])\n\n return {\n ...result,\n encoding,\n }\n}\n","import type { AdvancedPipeline } from 'src/types'\nimport {\n autoDimensions,\n autoMeasures,\n initAdvancedVSeed,\n reshapeTo2D1M,\n theme,\n pivotAdapter,\n pivotReshapeTo2D1M,\n annotation,\n markStyle,\n sortXBandAxis,\n heatmapConfig,\n} from '../pipes'\nimport { encodingMatrix } from '../pipes/encoding/encodingMatrix'\n\nexport const heatmapAdvancedPipeline: AdvancedPipeline = [\n initAdvancedVSeed,\n autoMeasures,\n autoDimensions,\n pivotAdapter([reshapeTo2D1M], [pivotReshapeTo2D1M]),\n encodingMatrix,\n sortXBandAxis,\n heatmapConfig,\n theme,\n markStyle,\n annotation\n]\n","import type { IHeatmapChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const labelColorInversion: SpecPipe = (spec) => {\n const result = { ...spec } as IHeatmapChartSpec\n if (result.label) {\n result.label.smartInvert = true\n } else {\n result.label = {\n smartInvert: true,\n }\n }\n return result\n}\n","import type { IHeatmapChartSpec } from '@visactor/vchart'\nimport type { SpecPipe } from 'src/types'\n\nexport const initHeatmap: SpecPipe = (spec, context) => {\n const result = { ...spec } as IHeatmapChartSpec\n const { advancedVSeed } = context\n const { encoding } = advancedVSeed\n\n if (!encoding[0].y || !encoding[0].x || !encoding[0].color) {\n return result\n }\n\n result.type = 'heatmap'\n result.direction = 'vertical'\n result.xField = encoding[0].x[0]\n result.yField = encoding[0].y[0]\n result.valueField = encoding[0].color[0]\n result.padding = 0\n result.cell = {\n style: {\n shape: 'rect',\n stroke: '#ffffff',\n lineWidth: 1,\n fill: {\n field: encoding[0].color[0],\n scale: 'color',\n },\n },\n }\n result.axes = [\n {\n type: 'band',\n orient: 'left',\n bandPadding: 0,\n },\n {\n type: 'band',\n orient: 'bottom',\n bandPadding: 0,\n },\n ]\n result.region = [\n {\n clip: true,\n },\n ]\n result.animation = true\n\n return result\n}\n","import type { SpecPipeline } from 'src/types'\nimport {\n datasetXY,\n backgroundColor,\n label,\n tooltip,\n initPivot,\n datasetPivot,\n pivotIndicators,\n pivotAdapter,\n pivotIndicatorsAsRow,\n pivotGridStyle,\n pivotColumnDimensions,\n pivotRowDimensions,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n pointStyle,\n lineStyle,\n pointStateDimensionHover,\n colorLegend,\n linearColor,\n labelColorInversion,\n} from '../pipes'\nimport { initHeatmap } from '../pipes/init/heatmap'\n\nconst heatmap: SpecPipeline = [\n initHeatmap,\n linearColor,\n backgroundColor,\n datasetXY,\n label,\n labelColorInversion,\n colorLegend,\n tooltip,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n]\n\nconst pivotHeatmap: SpecPipeline = [\n initPivot,\n pivotGridStyle,\n pivotIndicatorsAsRow,\n datasetPivot,\n pivotIndicators([\n initHeatmap,\n linearColor,\n backgroundColor,\n datasetXY,\n label,\n labelColorInversion,\n colorLegend,\n tooltip,\n pointStyle,\n pointStateDimensionHover,\n lineStyle,\n annotationPoint,\n annotationVerticalLine,\n annotationHorizontalLine,\n annotationArea,\n ]),\n pivotRowDimensions,\n pivotColumnDimensions,\n]\n\nexport const heatmapSpecPipeline: SpecPipeline = [pivotAdapter(heatmap, pivotHeatmap)]\n","import { heatmapAdvancedPipeline, heatmapSpecPipeline } from '../../../pipeline'\nimport { Builder } from '../../builder'\n\nexport const registerHeatmap = () => {\n Builder._advancedPipelineMap['heatmap'] = heatmapAdvancedPipeline\n Builder._specPipelineMap['heatmap'] = heatmapSpecPipeline\n}","import type {\n BackgroundColor,\n Color,\n CustomThemeConfig,\n Label,\n Legend,\n TableConfig,\n Tooltip,\n YBandAxis,\n YLinearAxis,\n} from 'src/types'\n\nexport const lightTheme = (): CustomThemeConfig => {\n const linearAxis: YLinearAxis = {\n nice: true,\n zero: true,\n inverse: false,\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#797B85',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#646A73',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: true,\n gridColor: '#36415926',\n gridWidth: 0.5,\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#3641594d',\n },\n line: {\n visible: false,\n lineColor: '#3641594d',\n lineWidth: 1,\n },\n }\n const bandAxis: YBandAxis = {\n labelAutoHide: true,\n labelAutoHideGap: 4,\n labelAutoLimit: true,\n labelAutoLimitLength: 80,\n labelAutoRotate: false,\n labelAutoRotateAngleRange: [0, -45, -90],\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#797B85',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#646A73',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: false,\n gridColor: '#36415926',\n gridWidth: 0.5,\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#3641594d',\n },\n line: {\n visible: true,\n lineColor: '#3641594d',\n lineWidth: 1,\n },\n }\n const barBandAxis: YBandAxis = {\n ...bandAxis,\n labelAutoHide: false,\n labelAutoHideGap: 1,\n labelAutoLimit: false,\n labelAutoLimitLength: undefined,\n labelAutoRotate: false,\n labelAutoRotateAngleRange: [0, -45, -90],\n }\n\n const crosshairLine = {\n visible: true,\n labelVisible: true,\n lineColor: '#3641594d',\n labelColor: '#ffffff',\n labelBackgroundColor: '#364159',\n }\n const crosshairRect = {\n visible: true,\n labelVisible: true,\n rectColor: '#3641594d',\n labelColor: '#ffffff',\n labelBackgroundColor: '#364159',\n }\n\n const baseConfig: {\n backgroundColor?: BackgroundColor\n color?: Color\n label?: Label\n tooltip?: Tooltip\n legend?: Legend\n } = {\n backgroundColor: 'transparent',\n color: {\n colorScheme: [\n '#8D72F6',\n '#5766EC',\n '#66A3FE',\n '#51D5E6',\n '#4EC0B3',\n '#F9DF90',\n '#F9AD71',\n '#ED8888',\n '#E9A0C3',\n '#D77DD3',\n ],\n },\n label: {\n enable: true,\n },\n tooltip: {\n enable: true,\n },\n legend: {\n enable: true,\n border: true,\n maxSize: 1,\n shapeType: 'rectRound',\n position: 'rt',\n labelFontColor: '#646A73',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n }\n const tableConfig: TableConfig = {\n borderColor: '#e3e5eb',\n\n bodyFontSize: 12,\n bodyFontColor: '#141414',\n bodyBackgroundColor: 'transparent',\n\n headerFontSize: 12,\n headerFontColor: '#21252c',\n headerBackgroundColor: '#f6f7f9',\n\n hoverBodyBackgroundColor: '#bedaff',\n hoverBodyInlineBackgroundColor: '#bedaff33',\n hoverHeaderBackgroundColor: '#D9DDE4',\n hoverHeaderInlineBackgroundColor: '#D9DDE455',\n\n selectedBorderColor: '#4080ff',\n selectedBackgroundColor: '#bedaff33',\n\n backgroundColor: 'transparent',\n }\n\n return {\n config: {\n // table\n table: tableConfig,\n pivotTable: tableConfig,\n // cartesian\n line: {\n ...baseConfig,\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine,\n },\n column: {\n ...baseConfig,\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect,\n stackCornerRadius: [4, 4, 4, 4],\n },\n columnParallel: {\n ...baseConfig,\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect,\n stackCornerRadius: [4, 4, 4, 4],\n },\n columnPercent: {\n ...baseConfig,\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect,\n stackCornerRadius: [4, 4, 4, 4],\n },\n bar: {\n ...baseConfig,\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect,\n stackCornerRadius: [4, 4, 4, 4],\n },\n barParallel: {\n ...baseConfig,\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect,\n stackCornerRadius: [4, 4, 4, 4],\n },\n barPercent: {\n ...baseConfig,\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect,\n stackCornerRadius: [4, 4, 4, 4],\n },\n area: {\n ...baseConfig,\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine,\n },\n areaPercent: {\n ...baseConfig,\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine,\n },\n areaRange: {\n ...baseConfig,\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine,\n },\n scatter: {\n ...baseConfig,\n xAxis: {\n ...linearAxis,\n line: {\n ...linearAxis.line,\n visible: true,\n },\n },\n yAxis: {\n ...linearAxis,\n line: {\n ...linearAxis.line,\n visible: true,\n },\n },\n crosshairLine,\n },\n dualAxis: {\n ...baseConfig,\n xAxis: bandAxis,\n primaryYAxis: linearAxis,\n secondaryYAxis: { ...linearAxis, grid: { visible: false } },\n dualChartType: {\n primary: 'column',\n secondary: 'line',\n },\n crosshairRect,\n },\n // polar\n pie: {\n ...baseConfig,\n },\n donut: {\n ...baseConfig,\n },\n radar: {\n ...baseConfig,\n },\n rose: {\n ...baseConfig,\n },\n roseParallel: {\n ...baseConfig,\n },\n // other\n funnel: {\n ...baseConfig,\n color: {\n colorScheme: [\n '#5766EC',\n '#6372F0',\n '#7080F4',\n '#7C8CFA',\n '#8998FF',\n '#95A3FF',\n '#A0AEFF',\n '#ACB9FF',\n '#B7C4FF',\n '#C2CEFF',\n ].reverse(),\n },\n },\n heatmap: {\n ...baseConfig,\n color: {\n colorScheme: [\n '#5766EC',\n '#6372F0',\n '#7080F4',\n '#7C8CFA',\n '#8998FF',\n '#95A3FF',\n '#A0AEFF',\n '#ACB9FF',\n '#B7C4FF',\n '#C2CEFF',\n ].reverse(),\n },\n },\n },\n }\n}\n","import type {\n BackgroundColor,\n Color,\n CustomThemeConfig,\n Label,\n Legend,\n TableConfig,\n Tooltip,\n YBandAxis,\n YLinearAxis,\n} from 'src/types'\n\nexport const darkTheme = (): CustomThemeConfig => {\n const linearAxis: YLinearAxis = {\n nice: true,\n zero: true,\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#E2E3E6',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#FDFDFD',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: true,\n gridColor: '#404349',\n gridWidth: 0.5,\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#4B4F54',\n },\n line: {\n visible: false,\n lineColor: '#4B4F54',\n lineWidth: 1,\n },\n }\n const bandAxis: YBandAxis = {\n labelAutoHide: true,\n labelAutoHideGap: 4,\n labelAutoLimit: true,\n labelAutoLimitLength: 80,\n labelAutoRotate: false,\n labelAutoRotateAngleRange: [0, -45, -90],\n label: {\n visible: true,\n labelAngle: 0,\n labelColor: '#E2E3E6',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n title: {\n visible: false,\n titleText: '',\n titleColor: '#FDFDFD',\n titleFontSize: 12,\n titleFontWeight: 400,\n },\n grid: {\n visible: false,\n gridColor: '#404349',\n gridWidth: 0.5,\n },\n tick: {\n visible: false,\n tickInside: false,\n tickSize: 4,\n tickColor: '#4B4F54',\n },\n line: {\n visible: true,\n lineColor: '#4B4F54',\n lineWidth: 1,\n },\n }\n const barBandAxis: YBandAxis = {\n ...bandAxis,\n labelAutoHide: false,\n labelAutoHideGap: 1,\n labelAutoLimit: false,\n labelAutoLimitLength: undefined,\n labelAutoRotate: false,\n labelAutoRotateAngleRange: [0, -45, -90],\n }\n const crosshairLine = {\n visible: true,\n labelVisible: true,\n lineColor: '#E2E3E6',\n labelColor: '#4B4F54',\n labelBackgroundColor: '#ffffff',\n }\n const crosshairRect = {\n visible: true,\n labelVisible: true,\n lineColor: '#E2E3E6',\n labelColor: '#4B4F54',\n labelBackgroundColor: '#ffffff',\n }\n\n const baseConfig: {\n backgroundColor?: BackgroundColor\n color?: Color\n label?: Label\n tooltip?: Tooltip\n legend?: Legend\n } = {\n backgroundColor: 'transparent',\n color: {\n colorScheme: [\n '#2E62F1',\n '#4DC36A',\n '#FF8406',\n '#FFCC00',\n '#4F44CF',\n '#5AC8FA',\n '#003A8C',\n '#B08AE2',\n '#FF6341',\n '#98DD62',\n ],\n },\n label: {\n enable: true,\n },\n tooltip: {\n enable: true,\n },\n legend: {\n enable: true,\n border: true,\n maxSize: 1,\n position: 'rt',\n shapeType: 'rectRound',\n labelFontColor: '#FDFDFD',\n labelFontSize: 12,\n labelFontWeight: 400,\n },\n }\n\n const tableConfig: TableConfig = {\n borderColor: '#4b4e53',\n\n bodyFontSize: 12,\n bodyFontColor: '#fdfdfd',\n bodyBackgroundColor: 'transparent',\n\n headerFontSize: 12,\n headerFontColor: '#fdfdfd',\n headerBackgroundColor: '#36393e',\n\n hoverBodyBackgroundColor: '#4284ff66',\n hoverBodyInlineBackgroundColor: '#4284ff10',\n hoverHeaderBackgroundColor: '#6f7984cc',\n hoverHeaderInlineBackgroundColor: '#4b4f54',\n\n selectedBorderColor: '#3073f2',\n selectedBackgroundColor: '#4284ff33',\n }\n\n return {\n config: {\n table: tableConfig,\n pivotTable: tableConfig,\n\n // cartesian\n line: {\n ...baseConfig,\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine: crosshairLine,\n },\n column: {\n ...baseConfig,\n\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [4, 4, 4, 4],\n },\n columnParallel: {\n ...baseConfig,\n\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [4, 4, 4, 4],\n },\n columnPercent: {\n ...baseConfig,\n\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [4, 4, 4, 4],\n },\n bar: {\n ...baseConfig,\n\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [0, 4, 4, 0],\n },\n barParallel: {\n ...baseConfig,\n\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [4, 4, 4, 4],\n },\n barPercent: {\n ...baseConfig,\n\n xAxis: linearAxis,\n yAxis: barBandAxis,\n crosshairRect: crosshairRect,\n stackCornerRadius: [4, 4, 4, 4],\n },\n area: {\n ...baseConfig,\n\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine: crosshairLine,\n },\n areaPercent: {\n ...baseConfig,\n\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine: crosshairLine,\n },\n areaRange: {\n ...baseConfig,\n\n xAxis: bandAxis,\n yAxis: linearAxis,\n crosshairLine: crosshairLine,\n },\n scatter: {\n ...baseConfig,\n\n xAxis: {\n ...linearAxis,\n line: {\n ...linearAxis.line,\n visible: true,\n },\n },\n yAxis: {\n ...linearAxis,\n line: {\n ...linearAxis.line,\n visible: true,\n },\n },\n crosshairLine,\n },\n dualAxis: {\n ...baseConfig,\n xAxis: bandAxis,\n primaryYAxis: linearAxis,\n secondaryYAxis: { ...linearAxis, grid: { visible: false } },\n dualChartType: {\n primary: 'column',\n secondary: 'line',\n },\n crosshairRect,\n },\n // polar\n pie: {\n ...baseConfig,\n },\n donut: {\n ...baseConfig,\n },\n radar: {\n ...baseConfig,\n },\n rose: {\n ...baseConfig,\n },\n roseParallel: {\n ...baseConfig,\n },\n // other\n funnel: {\n ...baseConfig,\n color: {\n colorScheme: [\n '#2E62F1',\n '#3A6EF6',\n '#4780FA',\n '#548CFE',\n '#6198FF',\n '#6FA3FF',\n '#7CACFF',\n '#88B7FF',\n '#94C2FF',\n '#A0CEFF',\n ],\n },\n },\n heatmap: {\n ...baseConfig,\n },\n },\n }\n}\n","import type { CustomThemeConfig } from 'src/types'\nimport { Builder } from '../../builder'\nimport { darkTheme, lightTheme } from '../../../theme'\n\nexport const registerCustomTheme = (\n key: string,\n themeConfig:\n | CustomThemeConfig\n | ((props: { lightTheme: CustomThemeConfig; darkTheme: CustomThemeConfig }) => CustomThemeConfig),\n) => {\n const customTheme =\n typeof themeConfig === 'function' ? themeConfig({ lightTheme: lightTheme(), darkTheme: darkTheme() }) : themeConfig\n Builder._themeMap[key] = customTheme\n}\n","import { registerCustomTheme } from './custom'\nimport { lightTheme } from '../../../theme'\n\nexport const registerLightTheme = () => {\n registerCustomTheme('light', lightTheme())\n}\n","import { darkTheme } from '../../../theme'\nimport { registerCustomTheme } from './custom'\n\nexport const registerDarkTheme = () => {\n registerCustomTheme('dark', darkTheme())\n}\n","import {\n registerArea,\n registerAreaPercent,\n registerBar,\n registerBarParallel,\n registerBarPercent,\n registerColumn,\n registerColumnParallel,\n registerColumnPercent,\n registerLine,\n registerPie,\n registerDonut,\n registerRose,\n registerRoseParallel,\n registerFunnel,\n registerScatter,\n registerTable,\n registerPivotTable,\n registerAreaRange,\n registerHeatmap,\n registerRadar,\n registerDualAxis,\n} from './chartType'\nimport { registerDarkTheme, registerLightTheme } from './theme'\n\nexport const registerAll = () => {\n // table\n registerTable()\n registerPivotTable()\n // cartesian\n registerLine()\n registerColumn()\n registerColumnParallel()\n registerColumnPercent()\n registerBar()\n registerBarParallel()\n registerBarPercent()\n registerArea()\n registerAreaPercent()\n registerAreaRange()\n registerScatter()\n registerDualAxis()\n // polar\n registerPie()\n registerDonut()\n registerRose()\n registerRoseParallel()\n registerRadar()\n // other\n registerFunnel()\n registerHeatmap()\n // theme\n registerLightTheme()\n registerDarkTheme()\n}\n","import type { AdvancedPipe, ChartType, SpecPipe } from 'src/types'\nimport { Builder } from '../builder'\n\nexport const updateAdvanced = (chartType: ChartType, advancedPipe: AdvancedPipe) => {\n Builder._customAdvancedPipe[chartType] = advancedPipe\n}\nexport const updateSpec = (chartType: ChartType, specPipe: SpecPipe) => {\n Builder._customSpecPipe[chartType] = specPipe\n}\n","import type { Dimension, DimensionGroup } from 'src/types'\n\nexport const isDimension = (dimension: Dimension | DimensionGroup): dimension is Dimension => {\n return !('children' in dimension)\n}\n\nexport const isDimensionGroup = (dimension: Dimension | DimensionGroup): dimension is DimensionGroup => {\n return 'children' in dimension\n}\n\nexport const isDimensions = (dimensions: Dimension[] | DimensionGroup[]): dimensions is Dimension[] => {\n return dimensions.every(isDimension)\n}\n","import { z } from 'zod'\n\nexport type ChartType =\n | 'table'\n | 'pivotTable'\n // cartesian\n | 'line'\n | 'column'\n | 'columnPercent'\n | 'columnParallel'\n | 'bar'\n | 'barPercent'\n | 'barParallel'\n | 'area'\n | 'areaPercent'\n | 'areaRange'\n | 'scatter'\n | 'dualAxis'\n // polar\n | 'rose'\n | 'roseParallel'\n | 'pie'\n | 'donut'\n | 'radar'\n // other\n | 'heatmap'\n | 'funnel'\n\nexport enum ChartTypeEnum {\n Table = 'table',\n PivotTable = 'pivotTable',\n // cartesian\n Line = 'line',\n Column = 'column',\n ColumnPercent = 'columnPercent',\n ColumnParallel = 'columnParallel',\n Bar = 'bar',\n BarPercent = 'barPercent',\n BarParallel = 'barParallel',\n Area = 'area',\n AreaPercent = 'areaPercent',\n AreaRange = 'areaRange',\n DualAxis = 'dualAxis',\n Scatter = 'scatter',\n // polar\n Rose = 'rose',\n RoseParallel = 'roseParallel',\n Pie = 'pie',\n Donut = 'donut',\n Radar = 'radar',\n // other\n Funnel = 'funnel',\n Heatmap = 'heatmap',\n}\n\nexport const zChartType = z.enum([\n 'table',\n 'pivotTable',\n // cartesian\n 'line',\n 'column',\n 'columnPercent',\n 'columnParallel',\n 'bar',\n 'barPercent',\n 'barParallel',\n 'area',\n 'areaPercent',\n 'areaRange',\n 'scatter',\n 'dualAxis',\n // polar\n 'rose',\n 'roseParallel',\n 'pie',\n 'donut',\n 'radar',\n // other\n 'funnel',\n 'heatmap',\n])\n","import { z } from 'zod'\n\n// 'columnPercent' 和 'areaPercent' 会改变轴值域为[0,1], VTable不支持.\nexport const zDualChartType = z.object({\n primary: z.enum(['line', 'column', 'columnParallel', 'area', 'scatter']).default('column'),\n secondary: z.enum(['line', 'column', 'columnParallel', 'area', 'scatter']).default('line'),\n})\n\nexport type DualChartType = z.infer<typeof zDualChartType>\n","import { z } from 'zod'\n\n/**\n * example dataset link:\n * [\n * { date: '2019', 20001:'type', profit:10, sales: null, },\n * { date: '2020', 20001:'type', profit:30, sales: -1.1, },\n * { date: '2021', 20001:'type', profit:30, sales: 1, },\n * { date: '2023', 20001:'type', profit:40, sales: undefined, },\n * { date: '2022', 20001:'type', profit:50, sales: 100, },\n * ]\n */\nexport const zDatum = z.record(z.string().or(z.number()), z.any())\nexport const zDataset = z.array(zDatum)\n\nexport type Datum = z.infer<typeof zDatum>\nexport type Dataset = z.infer<typeof zDataset>\n","import { z } from 'zod'\nimport type { DimensionGroup } from './dimensions'\n\nexport const zDimension = z.object({\n id: z.string(),\n alias: z.string().optional(),\n location: z.enum(['dimension', 'rowDimension', 'columnDimension']).default('dimension'),\n})\nexport const zDimensionGroup: z.ZodType<DimensionGroup> = z.object({\n id: z.string(),\n alias: z.string().optional(),\n get children() {\n return z.array(zDimensionGroup.or(zDimension)).optional()\n },\n})\nexport const zDimensions = z.array(zDimension)\nexport const zDimensionTree = z.array(zDimensionGroup.or(zDimension))\n","import { z } from 'zod'\n\nexport interface NumFormat {\n /**\n * @description 数字格式化类型, 支持数值(十进制)、百分比(%)、千分比(‰)、科学计数法\n * @default 'number'\n */\n type?: 'number' | 'percent' | 'permille' | 'scientific'\n\n /**\n * @description 数值格式化比例, 百分比和千分比需要设置比例\n * @default 1\n * @example\n * - 100000 转换为 10万, ratio:10000, symbol:\"万\"\n * - 100000 转换为 10K, ratio:1000, symbol:\"K\"\n * - 100000 转换为 100%, ratio:100, symbol:\"%\"\n * - 100000 转换为 100‰, ratio:1000, symbol:\"‰\"\n */\n ratio?: number\n\n /**\n * @description 数值格式化符号, 例如%、‰\n * @default ''\n * @example\n * - 100000 转换为 10万, ratio:10000, symbol:\"万\"\n * - 100000 转换为 10K, ratio:1000, symbol:\"K\"\n * - 100000 转换为 100%, ratio:100, symbol:\"%\"\n * - 100000 转换为 100‰, ratio:1000, symbol:\"‰\"\n */\n symbol?: string\n\n /**\n * @description 数值格式化千分位分隔符\n * @default true\n */\n thousandSeparator?: boolean\n\n /**\n * @description 数值格式化后缀\n * @default ''\n */\n suffix?: string\n /**\n * @description 数值格式化前缀\n * @default ''\n */\n prefix?: string\n\n /**\n * @description 数值格式化小数位, 使用浏览器提供的 Intl.NumberFormat 中的 minimumFractionDigits 和 maximumFractionDigits 进行格式化, 优先级低于 significantDigits\n * @default 2\n * @example\n * - 1234.5678 转换为 1235, fractionDigits:0 (roundingMode:halfCeil)\n * - 1234.5678 转换为 1234.6, fractionDigits:1 (roundingMode:halfCeil)\n * - 1234.5678 转换为 1234.57, fractionDigits:2 (roundingMode:halfCeil)\n * - 1234.5678 转换为 1230.568, fractionDigits:3 (roundingMode:halfCeil)\n * - 1234.5678 转换为 1234.5678, fractionDigits:4 (roundingMode:halfCeil)\n * - 1234.5678 转换为 1234.56780, fractionDigits:5 (roundingMode:halfCeil)\n */\n fractionDigits?: number\n\n /**\n * @description 数值格式化有效位, 使用浏览器提供的 Intl.NumberFormat 中的 minimumSignificantDigits 和 maximumSignificantDigits 进行格式化, 优先级高于 fractionDigits\n * @default undefined\n * @example\n * - 1234.5678 转换为 1000, significantDigits:1\n * - 1234.5678 转换为 1200, significantDigits:2\n * - 1234.5678 转换为 1230, significantDigits:3\n * - 1234.5678 转换为 1234, significantDigits:4\n * - 1234.5678 转换为 1234.6, significantDigits:5 (roundingMode:halfCeil)\n * - 1234.5678 转换为 1234.57, significantDigits:6 (roundingMode:halfCeil)\n * - 1234.5678 转换为 1234.568, significantDigits:7 (roundingMode:halfCeil)\n * - 1234.5678 转换为 1234.5678, significantDigits:8 (roundingMode:halfCeil)\n */\n significantDigits?: number\n\n /**\n * @description 数值格式化舍入优先级, 处理同时设置了 significantDigits 和 fractionDigits 时的舍入优先级, 使用浏览器提供的 Intl.NumberFormat 进行格式化, 规则同 Intl.NumberFormat 中的 roundingPriority\n * @default 'morePrecision'\n * @example\n * - 1234.5678 转换为 1230, significantDigits:3 (roundingPriority:lessPrecision)\n * - 1234.5678 转换为 1234.5678, significantDigits:3 (roundingPriority:morePrecision)\n */\n roundingPriority?: 'morePrecision' | 'lessPrecision'\n\n /**\n * @description 数值格式化舍入模式, 使用浏览器提供的 Intl.NumberFormat 进行格式化, 规则同 Intl.NumberFormat 中的 roundingMode\n * @default 'halfExpand'\n * @example\n */\n roundingMode?:\n | 'floor'\n | 'ceil'\n | 'expand'\n | 'trunc'\n | 'halfCeil'\n | 'halfFloor'\n | 'halfExpand'\n | 'halfTrunc'\n | 'halfEven'\n}\n\nexport const zNumFormat = z\n .object({\n type: z.enum(['number', 'percent', 'permille', 'scientific']).default('number').optional(),\n ratio: z.number().default(1).optional(),\n symbol: z.string().default('').optional(),\n thousandSeparator: z.boolean().default(false).optional(),\n prefix: z.string().default('').optional(),\n suffix: z.string().default('').optional(),\n\n fractionDigits: z.number().default(2).optional(),\n significantDigits: z.number().default(0).optional(),\n roundingPriority: z.enum(['morePrecision', 'lessPrecision']).default('morePrecision').optional(),\n roundingMode: z\n .enum(['floor', 'ceil', 'halfEven', 'expand', 'trunc', 'halfFloor', 'halfCeil', 'halfExpand', 'halfTrunc'])\n .default('halfCeil')\n .optional(),\n })\n .optional()\n","import { z } from 'zod'\nimport { zNumFormat } from './format/numFormat'\nimport type { MeasureGroup } from './measures'\n\nexport const zMeasure = z.object({\n id: z.string(),\n alias: z.string().optional(),\n autoFormat: z.boolean().default(true),\n format: zNumFormat.default({}),\n})\n\nexport const zMeasureGroup: z.ZodType<MeasureGroup> = z.object({\n id: z.string(),\n alias: z.string().optional(),\n get children() {\n return z.array(zMeasureGroup.or(zMeasure)).optional()\n },\n})\n\nexport const zMeasures = z.array(zMeasure)\nexport const zMeasureTree = z.array(zMeasureGroup.or(zMeasure))\n","import { z } from 'zod'\nimport { zMeasure } from './zMeasures'\n\nexport const zDualMeasure = z.object({\n id: z.string(),\n\n primaryMeasures: z.array(zMeasure).or(zMeasure).optional(),\n\n secondaryMeasures: z.array(zMeasure).or(zMeasure).optional(),\n})\n\nexport const zDualMeasures = z.array(zDualMeasure)\n","import { z } from 'zod'\n\nexport type FoldInfo = {\n foldMap: Record<string, string | undefined>\n measureId: string\n measureName: string\n measureValue: string\n}\n\nexport type UnfoldInfo = {\n groupName: string\n groupId: string\n colorItems: string[]\n colorIdMap: Record<string, string>\n}\n\nexport const zFoldInfo = z.object({\n foldMap: z.record(z.string(), z.string().or(z.undefined())),\n measureId: z.string(),\n measureName: z.string(),\n measureValue: z.string(),\n})\nexport const zUnfoldInfo = z.object({\n colorItems: z.array(z.string()),\n groupId: z.string(),\n colorIdMap: z.record(z.string(), z.string()),\n groupName: z.string(),\n})\n\nexport const zDatasetReshapeInfo = z.array(\n z.object({\n id: z.string(),\n index: z.number(),\n foldInfo: zFoldInfo,\n foldInfoList: z.array(zFoldInfo).nullish(),\n unfoldInfo: zUnfoldInfo,\n }),\n)\n\nexport type DatasetReshapeInfo = z.infer<typeof zDatasetReshapeInfo>\n","import { z } from 'zod'\n\nexport const zEncoding = z.array(\n z.object({\n x: z.array(z.string()).nullish(),\n y: z.array(z.string()).nullish(),\n color: z.array(z.string()).nullish(),\n group: z.array(z.string()).nullish(),\n angle: z.array(z.string()).nullish(),\n radius: z.array(z.string()).nullish(),\n tooltip: z.array(z.string()).nullish(),\n size: z.array(z.string()).nullish(),\n }),\n)\n\nexport type Encoding = Array<{\n x?: string[]\n y?: string[]\n color?: string[]\n group?: string[]\n angle?: string[]\n radius?: string[]\n tooltip?: string[]\n size?: string[]\n}>\n","import { z } from 'zod'\nimport type { Axis } from './axis'\n\nexport type XBandAxis = Omit<Axis, 'min' | 'max' | 'nice' | 'zero' | 'log' | 'logBase'>\nexport type YBandAxis = Omit<Axis, 'min' | 'max' | 'nice' | 'zero' | 'log' | 'logBase'>\n\nexport const zXBandAxis = z.object({\n visible: z.boolean().default(true).nullish(),\n\n labelAutoHide: z.boolean().default(true).nullish(),\n labelAutoHideGap: z.number().default(0).nullish(),\n labelAutoRotate: z.boolean().default(true).nullish(),\n labelAutoRotateAngleRange: z.array(z.number()).default([0, -45, -90]).nullish(),\n labelAutoLimit: z.boolean().default(true).nullish(),\n labelAutoLimitLength: z.number().default(100).nullish(),\n label: z\n .object({\n visible: z.boolean().default(true).nullish(),\n labelColor: z.string().default('#797B85').nullish(),\n labelFontSize: z.number().default(12).nullish(),\n labelFontWeight: z.number().default(400).nullish(),\n labelAngle: z.number().default(0).nullish(),\n })\n .nullish(),\n line: z\n .object({\n visible: z.boolean().default(true).nullish(),\n lineColor: z.string().default('rgba(54, 65, 89, 0.30)').nullish(),\n lineWidth: z.number().default(1).nullish(),\n })\n .nullish(),\n tick: z\n .object({\n visible: z.boolean().default(true).nullish(),\n tickInside: z.boolean().default(false).nullish(),\n tickColor: z.string().default('rgba(54, 65, 89, 0.30)').nullish(),\n tickSize: z.number().default(4).nullish(),\n })\n .nullish(),\n title: z\n .object({\n visible: z.boolean().default(false).nullish(),\n titleText: z.string().default('').nullish(),\n titleColor: z.string().default('#646A73').nullish(),\n titleFontSize: z.number().default(12).nullish(),\n titleFontWeight: z.number().default(400).nullish(),\n })\n .nullish(),\n grid: z\n .object({\n visible: z.boolean().default(false).nullish(),\n gridColor: z.string().default('rgba(54, 65, 89, 0.15)').nullish(),\n gridWidth: z.number().default(0.5).nullish(),\n })\n .nullish(),\n})\nexport const zYBandAxis = zXBandAxis\n","import { z } from 'zod'\nimport { type Axis } from './axis'\n\nexport type XLinearAxis = Omit<\n Axis,\n | 'labelAutoHide'\n | 'labelAutoHideGap'\n | 'labelAutoRotate'\n | 'labelAutoRotateAngleRange'\n | 'labelAutoLimit'\n | 'labelAutoLimitLength'\n>\nexport type YLinearAxis = Omit<\n Axis,\n | 'labelAutoHide'\n | 'labelAutoHideGap'\n | 'labelAutoRotate'\n | 'labelAutoRotateAngleRange'\n | 'labelAutoLimit'\n | 'labelAutoLimitLength'\n>\n\nexport const zXLinearAxis = z.object({\n visible: z.boolean().default(true).nullish(),\n\n min: z.number().nullish(),\n max: z.number().nullish(),\n nice: z.boolean().default(true).nullish(),\n zero: z.boolean().default(true).nullish(),\n log: z.boolean().default(false).nullish(),\n logBase: z.number().default(10).nullish(),\n inverse: z.boolean().default(false).nullish(),\n\n label: z\n .object({\n visible: z.boolean().default(true).nullish(),\n labelColor: z.string().default('#797B85').nullish(),\n labelFontSize: z.number().default(12).nullish(),\n labelFontWeight: z.number().default(400).nullish(),\n labelAngle: z.number().default(0).nullish(),\n })\n .nullish(),\n line: z\n .object({\n visible: z.boolean().default(true).nullish(),\n lineColor: z.string().default('rgba(54, 65, 89, 0.30)').nullish(),\n lineWidth: z.number().default(1).nullish(),\n })\n .nullish(),\n tick: z\n .object({\n visible: z.boolean().default(true).nullish(),\n tickInside: z.boolean().default(false).nullish(),\n tickColor: z.string().default('rgba(54, 65, 89, 0.30)').nullish(),\n tickSize: z.number().default(4).nullish(),\n })\n .nullish(),\n title: z\n .object({\n visible: z.boolean().default(false).nullish(),\n titleText: z.string().default('').nullish(),\n titleColor: z.string().default('#646A73').nullish(),\n titleFontSize: z.number().default(12).nullish(),\n titleFontWeight: z.number().default(400).nullish(),\n })\n .nullish(),\n grid: z\n .object({\n visible: z.boolean().default(false).nullish(),\n gridColor: z.string().default('rgba(54, 65, 89, 0.15)').nullish(),\n gridWidth: z.number().default(0.5).nullish(),\n })\n .nullish(),\n})\n\nexport const zYLinearAxis = zXLinearAxis\n","import { z } from 'zod'\n\nexport const zCrosshairLine = z.object({\n visible: z.boolean().nullish(),\n lineColor: z.string().nullish(),\n labelColor: z.string().nullish(),\n labelVisible: z.boolean().nullish(),\n labelBackgroundColor: z.string().nullish(),\n})\n\nexport const zCrosshairRect = z.object({\n visible: z.boolean().nullish(),\n rectColor: z.string().nullish(),\n labelColor: z.string().nullish(),\n labelVisible: z.boolean().nullish(),\n labelBackgroundColor: z.string().nullish(),\n})\n","import { z } from 'zod'\n\nexport const zStackCornerRadius = z.number().or(z.array(z.number())).default([3, 3, 0, 0])\n\nexport type StackCornerRadius = z.infer<typeof zStackCornerRadius>\n","import { z } from 'zod'\nexport const zBackgroundColor = z.string().default('transparent').nullish()\n\n/**\n * 图表的背景颜色\n * @default transparent 默认为透明背景\n * @description 背景颜色可以是颜色字符串, 例如'red', 'blue', 也可以是hex, rgb或rgba'#ff0000', 'rgba(255,0,0,0.5)'\n */\nexport type BackgroundColor = string | undefined\n","import { z } from 'zod'\n\nexport const zColor = z.object({\n colorScheme: z.array(z.string()).nullish(),\n colorMapping: z.record(z.string(), z.string()).nullish(),\n})\n\nexport const zLinearColor = z.object({\n colorScheme: z.array(z.string()).nullish(),\n})\n\nexport type Color = {\n /**\n * @description 颜色配色方案, 颜色配色方案用于定义图表中不同元素的颜色\n * @example ['#FFCDD2,#F8BBD0,#E1BEE7,#D1C4E9,#C5CAE9,#BBDEFB,#B3E5FC,#B2EBF2,#B2DFDB,#C8E6C9,#DCEDC8,#F0F4C3,#FFF9C4,#FFECB3,#FFE0B2']\n */\n colorScheme?: string[]\n /**\n * @description 颜色映射, 颜色映射用于将数据值映射到具体的颜色\n * @example\n * {\n * 'profit': 'red',\n * 'sales': 'blue',\n * }\n */\n colorMapping?: Record<string, string>\n}\n\nexport type LinearColor = {\n /**\n * \n * @description 线性渐变颜色配色方案, 线性渐变颜色配色方案用于定义图表中不同元素的颜色\n * @example ['#FFCDD2,#F8BBD0,#E1BEE7,#D1C4E9,#C5CAE9,#BBDEFB,#B3E5FC,#B2EBF2,#B2DFDB,#C8E6C9,#DCEDC8,#F0F4C3,#FFF9C4,#FFECB3,#FFE0B2']\n */\n colorScheme?: string[]\n}\n","import { z } from 'zod'\n\nexport const zLabel = z.object({\n enable: z.boolean().default(true).nullish(),\n})\n\nexport type Label = {\n /**\n * 标签功能是否开启\n * @default true\n */\n enable: boolean\n}\n","import { z } from 'zod'\n\nexport type Legend = {\n /**\n * 图例功能是否开启\n * @default true\n * @example enable: true\n */\n enable?: boolean\n /**\n * 图例边框是否开启\n * @default true\n * @example border: true\n */\n border?: boolean\n /**\n * 图例字体大小\n * @example labelFontSize: 10\n */\n labelFontSize?: number\n /**\n * 图例字体颜色\n * @example labelFontColor: '#212121'\n */\n labelFontColor?: string\n /**\n * 图例字体粗细\n * @example labelFontWeight: 400\n */\n labelFontWeight?: number | string\n /**\n * 图例形状\n * @example shapeType: 'circle'\n */\n shapeType?:\n | 'circle'\n | 'cross'\n | 'diamond'\n | 'square'\n | 'arrow'\n | 'arrow2Left'\n | 'arrow2Right'\n | 'wedge'\n | 'thinTriangle'\n | 'triangle'\n | 'triangleUp'\n | 'triangleDown'\n | 'triangleRight'\n | 'triangleLeft'\n | 'stroke'\n | 'star'\n | 'wye'\n | 'rect'\n | 'arrowLeft'\n | 'arrowRight'\n | 'rectRound'\n | 'roundLine'\n /**\n * 图例位置\n * @default 'right'\n * @example position: 'rightTop'\n */\n position?:\n | 'left'\n | 'leftTop'\n | 'leftBottom'\n | 'lt'\n | 'lb'\n | 'top'\n | 'topLeft'\n | 'topRight'\n | 'tl'\n | 'tr'\n | 'right'\n | 'rightTop'\n | 'rightBottom'\n | 'rt'\n | 'rb'\n | 'bottom'\n | 'bottomLeft'\n | 'bottomRight'\n | 'bl'\n | 'br'\n\n /**\n * @description 存在大量图例时, 最大列数 或 图例最大行数\n * 如果position为水平方向(bottom, bottomLeft, bottomRight, bl, br, top, topLeft, topRight, tl, tr), maxSize控制显示的列数\n * 如果position为垂直方向(left, leftTop, leftBottom, lt, lb, right, rightTop, rightBottom, rt, rb), maxSize控制显示的行数\n * @example maxSize: 2\n * @default 1\n */\n maxSize?: number\n}\n\nexport const zLegend = z.object({\n enable: z.boolean().default(true).nullish(),\n border: z.boolean().default(true).nullish(),\n maxSize: z.number().default(1).nullish(),\n shapeType: z\n .enum([\n 'circle',\n 'cross',\n 'diamond',\n 'square',\n 'arrow',\n 'arrow2Left',\n 'arrow2Right',\n 'wedge',\n 'thinTriangle',\n 'triangle',\n 'triangleUp',\n 'triangleDown',\n 'triangleRight',\n 'triangleLeft',\n 'stroke',\n 'star',\n 'wye',\n 'rect',\n 'arrowLeft',\n 'arrowRight',\n 'rectRound',\n 'roundLine',\n ])\n .default('rectRound')\n .nullish(),\n position: z\n .enum([\n 'left',\n 'leftTop',\n 'leftBottom',\n 'lt',\n 'lb',\n 'top',\n 'topLeft',\n 'topRight',\n 'tl',\n 'tr',\n 'right',\n 'rightTop',\n 'rightBottom',\n 'rt',\n 'rb',\n 'bottom',\n 'bottomLeft',\n 'bottomRight',\n 'bl',\n 'br',\n ])\n .default('bottom')\n .nullish(),\n labelFontSize: z.number().default(12).nullish(),\n labelFontColor: z.string().default('#fff').nullish(),\n labelFontWeight: z.number().or(z.string()).default(400).nullish(),\n})\n\nexport type ColorLegend = Pick<Legend, 'position' | 'enable'>\nexport const zColorLegend = z.object({\n position: z\n .enum([\n 'left',\n 'leftTop',\n 'leftBottom',\n 'lt',\n 'lb',\n 'top',\n 'topLeft',\n 'topRight',\n 'tl',\n 'tr',\n 'right',\n 'rightTop',\n 'rightBottom',\n 'rt',\n 'rb',\n 'bottom',\n 'bottomLeft',\n 'bottomRight',\n 'bl',\n 'br',\n ])\n .default('bottom')\n .nullish(),\n enable: z.boolean().default(true).nullish(),\n})\n","import { z } from 'zod'\n\nexport const zTooltip = z.object({\n enable: z.boolean().default(true).nullish(),\n})\n\nexport type Tooltip = {\n /**\n * 提示信息功能是否开启\n * @default true\n */\n enable: boolean\n}\n","import { z } from 'zod'\nimport { zXBandAxis, zYBandAxis } from './axes/bandAxis'\nimport { zXLinearAxis, zYLinearAxis } from './axes/linearAxis'\nimport { zCrosshairLine, zCrosshairRect } from './crosshair'\nimport { zStackCornerRadius } from './stackCornerRadius/stackCornerRadius'\nimport { zBackgroundColor } from './backgroundColor/backgroundColor'\nimport { zColor } from './color/color'\nimport { zLabel } from './label/label'\nimport { zLegend } from './legend/legend'\nimport { zTooltip } from './tooltip/tooltip'\nimport { zDualChartType } from '../chartType'\n\n/**\n * ---\n * zConfig by 图表类型\n */\nexport const zTableConfig = z.object({\n backgroundColor: zBackgroundColor.nullish(),\n\n // Border\n borderColor: z.string().nullish(),\n\n // Body\n bodyFontSize: z.number().nullish(),\n bodyFontColor: z.string().nullish(),\n bodyBackgroundColor: z.string().nullish(),\n // Body interaction\n hoverBodyBackgroundColor: z.string().nullish(),\n hoverBodyInlineBackgroundColor: z.string().nullish(),\n\n // Header\n headerFontSize: z.number().nullish(),\n headerFontColor: z.string().nullish(),\n headerBackgroundColor: z.string().nullish(),\n // Header interaction\n hoverHeaderBackgroundColor: z.string().nullish(),\n hoverHeaderInlineBackgroundColor: z.string().nullish(),\n\n // Interaction\n selectedBorderColor: z.string().nullish(),\n selectedBackgroundColor: z.string().nullish(),\n})\nexport const zPivotTableConfig = zTableConfig\n\nexport const zLineConfig = z.object({\n backgroundColor: zBackgroundColor.nullish(),\n label: zLabel.nullish(),\n color: zColor.nullish(),\n tooltip: zTooltip.nullish(),\n legend: zLegend.nullish(),\n\n xAxis: zXBandAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairLine: zCrosshairLine.nullish(),\n})\nexport const zColumnConfig = z.object({\n backgroundColor: zBackgroundColor.nullish(),\n label: zLabel.nullish(),\n color: zColor.nullish(),\n tooltip: zTooltip.nullish(),\n legend: zLegend.nullish(),\n\n xAxis: zXBandAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairRect: zCrosshairRect.nullish(),\n stackCornerRadius: zStackCornerRadius.nullish(),\n})\nexport const zColumnParallelConfig = zColumnConfig\nexport const zColumnPercentConfig = zColumnConfig\nexport const zBarConfig = z.object({\n backgroundColor: zBackgroundColor.nullish(),\n label: zLabel.nullish(),\n color: zColor.nullish(),\n tooltip: zTooltip.nullish(),\n legend: zLegend.nullish(),\n\n xAxis: zXLinearAxis.nullish(),\n yAxis: zYBandAxis.nullish(),\n crosshairRect: zCrosshairRect.nullish(),\n stackCornerRadius: zStackCornerRadius.nullish(),\n})\nexport const zBarParallelConfig = zBarConfig\nexport const zBarPercentConfig = zBarConfig\nexport const zAreaConfig = z.object({\n backgroundColor: zBackgroundColor.nullish(),\n label: zLabel.nullish(),\n color: zColor.nullish(),\n tooltip: zTooltip.nullish(),\n legend: zLegend.nullish(),\n\n xAxis: zXBandAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairLine: zCrosshairLine.nullish(),\n})\nexport const zAreaPercentConfig = zAreaConfig\nexport const zAreaRangeConfig = zAreaConfig\nexport const zDualAxisConfig = z.object({\n backgroundColor: zBackgroundColor.nullish(),\n label: zLabel.nullish(),\n color: zColor.nullish(),\n tooltip: zTooltip.nullish(),\n legend: zLegend.nullish(),\n\n dualChartType: z.array(zDualChartType).or(zDualChartType).nullish(),\n alignTicks: z.array(z.boolean()).or(z.boolean()).nullish(),\n primaryYAxis: z.array(zYLinearAxis).or(zYLinearAxis).nullish(),\n secondaryYAxis: z.array(zYLinearAxis).or(zYLinearAxis).nullish(),\n\n xAxis: zXBandAxis.nullish(),\n crosshairRect: zCrosshairRect.nullish(),\n})\nexport const zScatterConfig = z.object({\n backgroundColor: zBackgroundColor.nullish(),\n label: zLabel.nullish(),\n color: zColor.nullish(),\n tooltip: zTooltip.nullish(),\n legend: zLegend.nullish(),\n\n xAxis: zXLinearAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairLine: zCrosshairLine.nullish(),\n})\n\n// polar\nexport const zRoseConfig = z.object({\n backgroundColor: zBackgroundColor.nullish(),\n label: zLabel.nullish(),\n color: zColor.nullish(),\n tooltip: zTooltip.nullish(),\n legend: zLegend.nullish(),\n})\nexport const zRoseParallelConfig = zRoseConfig\nexport const zPieConfig = z.object({\n backgroundColor: zBackgroundColor.nullish(),\n label: zLabel.nullish(),\n color: zColor.nullish(),\n tooltip: zTooltip.nullish(),\n legend: zLegend.nullish(),\n})\nexport const zDonutConfig = zPieConfig\nexport const zRadarConfig = zPieConfig\n// other\nexport const zFunnelConfig = zPieConfig\nexport const zHeatmapConfig = zPieConfig\n\n/**\n * ---\n * Type config by chart type\n */\nexport type TableConfig = z.infer<typeof zTableConfig>\nexport type PivotTableConfig = z.infer<typeof zPivotTableConfig>\n// cartesian\nexport type LineConfig = z.infer<typeof zLineConfig>\nexport type ColumnConfig = z.infer<typeof zColumnConfig>\nexport type ColumnParallelConfig = z.infer<typeof zColumnParallelConfig>\nexport type ColumnPercentConfig = z.infer<typeof zColumnPercentConfig>\nexport type BarConfig = z.infer<typeof zBarConfig>\nexport type BarParallelConfig = z.infer<typeof zBarParallelConfig>\nexport type BarPercentConfig = z.infer<typeof zBarPercentConfig>\nexport type AreaConfig = z.infer<typeof zAreaConfig>\nexport type AreaPercentConfig = z.infer<typeof zAreaPercentConfig>\nexport type AreaRangeConfig = z.infer<typeof zAreaRangeConfig>\nexport type ScatterConfig = z.infer<typeof zScatterConfig>\nexport type DualAxisConfig = z.infer<typeof zDualAxisConfig>\n// polar\nexport type RoseConfig = z.infer<typeof zRoseConfig>\nexport type RoseParallelConfig = z.infer<typeof zRoseParallelConfig>\nexport type PieConfig = z.infer<typeof zPieConfig>\nexport type DonutConfig = z.infer<typeof zDonutConfig>\nexport type RadarConfig = z.infer<typeof zRadarConfig>\n// other\nexport type FunnelConfig = z.infer<typeof zFunnelConfig>\nexport type HeatmapConfig = z.infer<typeof zHeatmapConfig>\n\n/**\n * config and type\n */\nexport type Config = z.infer<typeof zConfig>\nexport const zConfig = z.object({\n table: zTableConfig.nullish(),\n pivotTable: zPivotTableConfig.nullish(),\n\n // cartesian\n line: zLineConfig.nullish(),\n column: zColumnConfig.nullish(),\n columnParallel: zColumnParallelConfig.nullish(),\n columnPercent: zColumnPercentConfig.nullish(),\n bar: zBarConfig.nullish(),\n barParallel: zBarParallelConfig.nullish(),\n barPercent: zBarPercentConfig.nullish(),\n area: zAreaConfig.nullish(),\n areaPercent: zAreaPercentConfig.nullish(),\n areaRange: zAreaRangeConfig.nullish(),\n scatter: zScatterConfig.nullish(),\n dualAxis: zDualAxisConfig.nullish(),\n\n // polar\n rose: zRoseConfig.nullish(),\n roseParallel: zRoseParallelConfig.nullish(),\n pie: zPieConfig.nullish(),\n donut: zDonutConfig.nullish(),\n radar: zRadarConfig.nullish(),\n // other\n funnel: zFunnelConfig.nullish(),\n heatmap: zHeatmapConfig.nullish(),\n})\n","import { z } from 'zod'\n\nexport type Axis = {\n /**\n * 轴是否可见\n * @default true\n * @example true\n */\n visible?: boolean\n\n /**\n * 轴的最小值\n * @description 优先级高于 nice 与 zero\n * @default undefined\n * @example 100\n */\n min?: number\n\n /**\n * 轴的最大值\n * @description 优先级高于 nice 与 zero\n * @default undefined\n * @example 10000\n */\n max?: number\n\n /**\n * @description 是否使用对数轴, 仅对数值轴生效\n * @default false\n */\n log?: boolean\n\n /**\n * @description 对数轴的底数, 仅对数值轴生效\n * @default 10\n */\n logBase?: number\n\n /**\n * 是否自动调整轴的刻度间隔,使刻度标签更易读\n * @description 当配置了 min 和 max, 该配置项失效, 仅对数值轴生效\n * @default true\n * @example true\n */\n nice?: boolean\n\n /**\n * 轴是否反向展示\n * @description 仅对数值轴生效\n * @default false\n * @example false\n */\n inverse?: boolean\n\n /**\n * 是否在坐标轴上强制显示 0 值,\n * @description 当配置了 min 和 max, 该配置项失效, 仅对数值轴生效\n * @default true\n * @example true\n */\n zero?: boolean\n\n /**\n * 轴标签, 自动隐藏\n * @description 2个标签若重叠(间隔小于autoHideGap), 则自动隐藏导致重叠的标签. 仅对类目轴生效.\n * @default true\n */\n labelAutoHide?: boolean\n /**\n * 轴标签, 自动隐藏间隔\n * @description 若2个文本标签的间隔小于autoHideGap, 则自动隐藏导致重叠的标签. 仅对类目轴生效.\n * autoHide开启时, 使用autoHide, 设置在autoHideSeparation上\n * autoHide关闭时, 使用sampling采样, 设置在minGap上\n * @default 4\n */\n labelAutoHideGap?: number\n /**\n * 轴标签, 自动旋转\n * @description 当标签宽度超过轴长度时, 自动旋转标签. 仅对类目轴生效.\n * @default true\n */\n labelAutoRotate?: boolean\n /**\n * 轴标签, 自动旋转角度范围\n * @description 当自动旋转开启时, 标签旋转角度范围. 仅对类目轴生效.\n * @default [0, -45, -90]\n */\n labelAutoRotateAngleRange?: number[]\n /**\n * 轴标签, 自动限制长度,\n * @description 当标签宽度超过轴长度时, 超出部分省略号表示, 鼠标悬浮后可见标签, 自动限制标签宽度. 仅对类目轴生效.\n * @default true\n */\n labelAutoLimit?: boolean\n /**\n * 轴标签, 自动限制长度的最大长度\n * @description 当标签文本长度超过最大长度时, 超出部分省略号表示, 鼠标悬浮后可见标签. 仅对类目轴生效.\n */\n labelAutoLimitLength?: number\n\n /**\n * X轴刻度标签\n * @default true\n */\n label?: {\n /**\n * 标签是否可见\n * @default true\n */\n visible?: boolean\n /**\n * 标签颜色\n */\n labelColor?: string\n /**\n * 标签字体大小\n */\n labelFontSize?: number\n /**\n * 标签字体粗细\n */\n labelFontWeight?: number\n /**\n * 标签旋转角度\n */\n labelAngle?: number\n }\n\n /**\n * X轴线\n * @example\n * {\n * visible: true,\n * lineColor: '#ffeecc',\n * lineWidth: 2,\n * }\n */\n line?: {\n /**\n * 轴线是否可见\n * @default true\n */\n visible?: boolean\n /**\n * 轴线颜色\n */\n lineColor?: string\n /**\n * 轴线宽度\n * @default 1\n */\n lineWidth?: number\n }\n\n /**\n * X轴刻度\n * @default true\n */\n tick?: {\n /**\n * 刻度是否可见\n * @default true\n */\n visible?: boolean\n /**\n * 刻度是否朝内\n * @default false\n */\n tickInside?: boolean\n /**\n * 刻度颜色\n */\n tickColor?: string\n /**\n * 刻度尺寸\n */\n tickSize?: number\n }\n\n /**\n * X轴标题\n * @default false\n */\n title?: {\n /**\n * 标题是否可见\n * @default false\n */\n visible?: boolean\n /**\n * 标题文本, 默认跟随字段配置\n */\n titleText?: string\n /**\n * 标题颜色\n */\n titleColor?: string\n /**\n * 标题字体大小\n */\n titleFontSize?: number\n /**\n * 标题字体粗细\n */\n titleFontWeight?: number\n }\n\n /**\n * X轴网格线\n * @default false\n */\n grid?: {\n visible?: boolean\n /**\n * 网格线颜色\n */\n gridColor?: string\n /**\n * 网格线宽度\n */\n gridWidth?: number\n }\n}\n\nexport const zAxis = z.object({\n visible: z.boolean().default(true).nullish(),\n\n min: z.number().nullish(),\n max: z.number().nullish(),\n nice: z.boolean().default(true).nullish(),\n zero: z.boolean().default(true).nullish(),\n inverse: z.boolean().default(false).nullish(),\n log: z.boolean().default(false).nullish(),\n logBase: z.number().default(10).nullish(),\n\n labelAutoHide: z.boolean().default(true).nullish(),\n labelAutoHideGap: z.number().default(4).nullish(),\n labelAutoRotate: z.boolean().default(true).nullish(),\n labelAutoRotateAngleRange: z.array(z.number()).default([0, -45, -90]).nullish(),\n labelAutoLimit: z.boolean().default(true).nullish(),\n labelAutoLimitLength: z.number().default(100).nullish(),\n label: z\n .object({\n visible: z.boolean().default(true).nullish(),\n labelColor: z.string().default('#797B85').nullish(),\n labelFontSize: z.number().default(12).nullish(),\n labelFontWeight: z.number().default(400).nullish(),\n labelAngle: z.number().default(0).nullish(),\n })\n .nullish(),\n line: z\n .object({\n visible: z.boolean().default(true).nullish(),\n lineColor: z.string().default('rgba(54, 65, 89, 0.30)').nullish(),\n lineWidth: z.number().default(1).nullish(),\n })\n .nullish(),\n tick: z\n .object({\n visible: z.boolean().default(true).nullish(),\n tickInside: z.boolean().default(false).nullish(),\n tickColor: z.string().default('rgba(54, 65, 89, 0.30)').nullish(),\n tickSize: z.number().default(4).nullish(),\n })\n .nullish(),\n title: z\n .object({\n visible: z.boolean().default(false).nullish(),\n titleText: z.string().default('').nullish(),\n titleColor: z.string().default('#646A73').nullish(),\n titleFontSize: z.number().default(12).nullish(),\n titleFontWeight: z.number().default(400).nullish(),\n })\n .nullish(),\n grid: z\n .object({\n visible: z.boolean().default(false).nullish(),\n gridColor: z.string().default('rgba(54, 65, 89, 0.15)').nullish(),\n gridWidth: z.number().default(0.5).nullish(),\n })\n .nullish(),\n})\n","import { z } from 'zod'\nimport { zConfig } from '../config'\n\nexport const zCustomThemeConfig = z.object({\n config: zConfig.nullish(),\n})\n\nexport const zCustomTheme = z.record(z.string(), zCustomThemeConfig).nullish()\n\nexport type CustomTheme = z.infer<typeof zCustomTheme>\nexport type CustomThemeConfig = z.infer<typeof zCustomThemeConfig>\n","import { z } from 'zod'\n\nexport const zTheme = z.string()\n\ntype Light = 'light' & { readonly brand: unique symbol }\ntype Dark = 'dark' & { readonly brand: unique symbol }\n\n/**\n * 主题\n * @default light\n * @description 内置 light、dark 两种主题, 新的主题可以通过registerTheme自定义主题.\n */\nexport type Theme = Light | Dark | string\n","import { z } from 'zod'\nimport type { Datum } from '../properties'\n\nexport type ValueSelector = string | number\n\nexport type PartialDatumSelector = Datum\n\n/**\n * @description 指标选择器, 用于选择数据项中指标字段的值\n */\nexport type MeasureSelector = {\n /**\n * @description 指标字段, measures 某一项的 id\n */\n field: string\n /**\n * @description 操作符\n * - =: 选择数据项中指标字段的值等于 value 的数据项\n * - ==: 选择数据项中指标字段的值等于 value 的数据项\n * - !=: 选择数据项中指标字段的值不等于 value 的数据项\n * - >: 选择数据项中指标字段的值大于 value 的数据项\n * - <: 选择数据项中指标字段的值小于 value 的数据项\n * - >=: 选择数据项中指标字段的值大于等于 value 的数据项\n * - <=: 选择数据项中指标字段的值小于等于 value 的数据项\n * - between: 选择数据项中指标字段的值在 value 之间的 data item\n */\n operator?: '=' | '==' | '!=' | '>' | '<' | '>=' | '<=' | 'between'\n /**\n * @description 操作符\n * - =: 选择数据项中指标字段的值等于 value 的数据项\n * - ==: 选择数据项中指标字段的值等于 value 的数据项\n * - !=: 选择数据项中指标字段的值不等于 value 的数据项\n * - >: 选择数据项中指标字段的值大于 value 的数据项\n * - <: 选择数据项中指标字段的值小于 value 的数据项\n * - >=: 选择数据项中指标字段的值大于等于 value 的数据项\n * - <=: 选择数据项中指标字段的值小于等于 value 的数据项\n * - between: 选择数据项中指标字段的值在 value 之间的 data item\n * same as operator\n */\n op?: '=' | '==' | '!=' | '>' | '<' | '>=' | '<=' | 'between'\n /**\n * @description 选择数据项中指标字段的值\n * - 仅 op 为 between 时, value 为长度为2的数组, 数组中的元素为指标字段的最小值和最大值\n * - 其他情况, value 为指标字段的单个值\n */\n value: string | number | Array<string | number>\n // /**\n // * @description 是否使用原始数据进行数据匹配, 开启后会有更多的数据被匹配到\n // * 若下述数据, measures 仅设置了 value, field 为 isHigh 或 isLow, op 为 =, value 为 1,\n // * 关闭useOrigin时, 数据项并不会考虑measures之外的字段, 因此field为isHigh或isLow的字段会被忽略\n // * 开启useOrigin时, 会直接使用整个数据项进行匹配\n // * [\n // * {value: 100, isHigh: 1, isLow: 0},\n // * {value: 200, isHigh: 0, isLow: 1},\n // * {value: 300, isHigh: 1, isLow: 0},\n // * ]\n // * @default false\n // */\n // useOrigin?: boolean\n}\n\n/**\n * @description 维度选择器, 用于选择数据项中维度字段的值\n */\nexport type DimensionSelector = {\n /**\n * @description 维度字段, dimensions 某一项的 id\n */\n field: string\n /**\n * @description 操作符\n * - in: 选择数据项中维度字段的值在 value 中的数据项\n * - not in: 选择数据项中维度字段的值不在 value 中的数据项\n */\n operator?: 'in' | 'not in'\n /**\n * @description 操作符\n * - in: 选择数据项中维度字段的值在 value 中的数据项\n * - not in: 选择数据项中维度字段的值不在 value 中的数据项\n * same as operator\n */\n op?: 'in' | 'not in'\n /**\n * @description 选择数据项中维度字段的值, 支持数组\n */\n value: string | number | Array<string | number>\n // /**\n // * @description 是否使用原始数据进行数据匹配, 开启后会有更多的数据被匹配到\n // * 若下述数据, dimensions 仅设置了 name, field 为 name, op 为 =, value 为 \"high\",\n // * 关闭useOrigin时, 数据项并不会考虑dimensions之外的字段, 因此field为name的字段会被忽略\n // * 开启useOrigin时, 会直接使用整个数据项进行匹配\n // * [\n // * {name: \"low\", isHigh: \"false\", isLow: \"true\"},\n // * {name: \"low\", isHigh: \"false\", isLow: \"true\"},\n // * {name: \"high\", isHigh: \"true\", isLow: \"false\"},\n // * ]\n // * @default false\n // */\n // useOrigin?: boolean\n}\n\nexport type Selector = ValueSelector | PartialDatumSelector | MeasureSelector | DimensionSelector\n\nexport type Selectors = Array<Selector>\n\nexport const zSelector = z.union([\n z.string(),\n z.number(),\n z.object({\n field: z.string(),\n operator: z.enum(['=', '==', '!=', '>', '<', '>=', '<=', 'between']).nullish(),\n op: z.enum(['=', '==', '!=', '>', '<', '>=', '<=', 'between']).nullish(),\n value: z.union([z.string(), z.number(), z.array(z.union([z.string(), z.number()]))]),\n }),\n z.object({\n field: z.string(),\n operator: z.enum(['in', 'not in']).nullish(),\n op: z.enum(['in', 'not in']).nullish(),\n value: z.union([z.string(), z.number(), z.array(z.union([z.string(), z.number()]))]),\n }),\n])\n\nexport const zSelectors = z.array(zSelector)\n","import { z } from 'zod'\nimport { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\n\nexport type BarStyle = {\n /**\n * 数据选择器\n * @description\n * 若配置selector, 提供数值 selector, 局部数据 selector, 条件维度 selector, 条件指标 selector 共四类数据匹配能力\n * 若未配置selector, 则样式全局生效.\n * @type {Selector | Selectors}\n * @example 数值选择器\n * selector = \"tool\"\n * selector = [\"tool\", \"book\"]\n * selector = 100\n * selector = [100, 200]\n * @example 局部数据选择器\n * selector = { profit: 100 }\n * selector = [{ profit: 100 }, { profit: 200 }]\n * @example 条件维度选择器\n * selector = {\n * field: 'category',\n * operator: 'in',\n * value: 'tool'\n * }\n * selector = {\n * field: 'category',\n * operator: 'not in',\n * value: 'book'\n * }\n * @example 条件指标选择器\n * selector = {\n * field: 'profit',\n * operator: '>=',\n * value: 100\n * }\n * selector = {\n * field: 'profit',\n * operator: 'between'\n * value: [100, 300]\n * }\n */\n selector?: Selector | Selectors\n\n /**\n * 柱状图颜色\n * @description 柱状图颜色\n * @type {string}\n */\n barColor?: string\n /**\n * 柱状图颜色透明度\n * @description 柱状图颜色透明度\n * @type {number}\n */\n barColorOpacity?: number\n /**\n * 柱状图边框颜色\n * @description 柱状图边框颜色\n * @type {string}\n */\n barBorderColor?: string\n /**\n * 柱状图边框宽度\n * @description 柱状图边框宽度\n * @type {number}\n */\n barBorderWidth?: number\n /**\n * 柱状图边框样式\n * @description 柱状图边框样式\n * @type {number}\n * @example solid\n * @example dashed\n * @example dotted\n */\n barBorderStyle?: 'solid' | 'dashed' | 'dotted'\n /**\n * 柱状图圆角\n * @description 柱状图圆角\n * @type {number | number[]}\n * @example 4\n * @example [0, 0, 10, 10]\n */\n barRadius?: number | number[]\n}\n\nexport const zBarStyle = z.object({\n selector: z.union([zSelector, zSelectors]).nullish(),\n barColor: z.string().nullish(),\n barColorOpacity: z.number().nullish(),\n barBorderColor: z.string().nullish(),\n barBorderWidth: z.number().nullish(),\n barBorderStyle: z.union([z.literal('solid'), z.literal('dashed'), z.literal('dotted')]).nullish(),\n barRadius: z.union([z.number(), z.array(z.number())]).nullish(),\n})\n","import { z } from 'zod'\nimport { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\n\nexport type PointStyle = {\n /**\n * 数据选择器\n * @description\n * 若配置selector, 提供数值 selector, 局部数据 selector, 条件维度 selector, 条件指标 selector 共四类数据匹配能力\n * 若未配置selector, 则样式全局生效.\n * @type {Selector | Selectors}\n * @example 数值选择器\n * selector = \"tool\"\n * selector = [\"tool\", \"book\"]\n * selector = 100\n * selector = [100, 200]\n * @example 局部数据选择器\n * selector = { profit: 100 }\n * selector = [{ profit: 100 }, { profit: 200 }]\n * @example 条件维度选择器\n * selector = {\n * field: 'category',\n * operator: 'in',\n * value: 'tool'\n * }\n * selector = {\n * field: 'category',\n * operator: 'not in',\n * value: 'book'\n * }\n * @example 条件指标选择器\n * selector = {\n * field: 'profit',\n * operator: '>=',\n * value: 100\n * }\n * selector = {\n * field: 'profit',\n * operator: 'between'\n * value: [100, 300]\n * }\n */\n selector?: Selector | Selectors\n\n /**\n * 点大小\n * @description 点大小\n * @type {number}\n */\n pointSize?: number\n /**\n * 点图元颜色\n * @description 点图元颜色\n * @type {string}\n */\n pointColor?: string\n /**\n * 点图元颜色透明度\n * @description 点图元颜色透明度\n * @type {number}\n */\n pointColorOpacity?: number\n /**\n * 点图元边框颜色\n * @description 点图元边框颜色\n * @type {string}\n */\n pointBorderColor?: string\n /**\n * 点图元边框宽度\n * @description 点图元边框宽度\n * @type {number}\n */\n pointBorderWidth?: number\n /**\n * 点图元边框样式\n * @description 点图元边框样式\n * @type {number}\n * @example solid\n * @example dashed\n * @example dotted\n */\n pointBorderStyle?: 'solid' | 'dashed' | 'dotted'\n}\n\nexport const zPointStyle = z.object({\n selector: z.union([zSelector, zSelectors]).nullish(),\n pointSize: z.number().nullish(),\n pointColor: z.string().nullish(),\n pointColorOpacity: z.number().nullish(),\n pointBorderColor: z.string().nullish(),\n pointBorderWidth: z.number().nullish(),\n pointBorderStyle: z.union([z.enum(['solid', 'dashed', 'dotted'])]).nullish(),\n})\n","import { z } from 'zod'\nimport { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\n\nexport type LineStyle = {\n /**\n * 数据选择器\n * @description\n * 若配置selector, 提供数值 selector, 局部数据 selector, 条件维度 selector, 条件指标 selector 共四类数据匹配能力\n * 若未配置selector, 则样式全局生效.\n * @type {Selector | Selectors}\n * @example 数值选择器\n * selector = \"tool\"\n * selector = [\"tool\", \"book\"]\n * selector = 100\n * selector = [100, 200]\n * @example 局部数据选择器\n * selector = { profit: 100 }\n * selector = [{ profit: 100 }, { profit: 200 }]\n * @example 条件维度选择器\n * selector = {\n * field: 'category',\n * operator: 'in',\n * value: 'tool'\n * }\n * selector = {\n * field: 'category',\n * operator: 'not in',\n * value: 'book'\n * }\n * @example 条件指标选择器\n * selector = {\n * field: 'profit',\n * operator: '>=',\n * value: 100\n * }\n * selector = {\n * field: 'profit',\n * operator: 'between'\n * value: [100, 300]\n * }\n */\n selector?: Selector | Selectors\n\n /**\n * 折线图是否平滑\n * @description 折线图是否平滑\n * @type {boolean}\n */\n lineSmooth?: boolean\n\n /**\n * 柱状图颜色\n * @description 柱状图颜色\n * @type {string}\n */\n lineColor?: string\n /**\n * 柱状图颜色透明度\n * @description 柱状图颜色透明度\n * @type {number}\n */\n lineColorOpacity?: number\n /**\n * 柱状图边框宽度\n * @description 柱状图边框宽度\n * @type {number}\n */\n lineWidth?: number\n /**\n * 柱状图边框样式\n * @description 柱状图边框样式\n * @type {number}\n * @example solid\n * @example dashed\n * @example dotted\n */\n lineStyle?: 'solid' | 'dashed' | 'dotted'\n}\n\nexport const zLineStyle = z.object({\n selector: z.union([zSelector, zSelectors]).nullish(),\n lineSmooth: z.boolean().nullish(),\n lineColor: z.string().nullish(),\n lineColorOpacity: z.number().nullish(),\n lineWidth: z.number().nullish(),\n lineStyle: z.union([z.enum(['solid', 'dashed', 'dotted'])]).nullish(),\n})\n","import { z } from 'zod'\nimport { zSelector, zSelectors, type Selector, type Selectors } from '../../dataSelector'\n\nexport type AreaStyle = {\n /**\n * 数据选择器\n * @description\n * 若配置selector, 提供数值 selector, 局部数据 selector, 条件维度 selector, 条件指标 selector 共四类数据匹配能力\n * 若未配置selector, 则样式全局生效.\n * @type {Selector | Selectors}\n * @example 数值选择器\n * selector = \"tool\"\n * selector = [\"tool\", \"book\"]\n * selector = 100\n * selector = [100, 200]\n * @example 局部数据选择器\n * selector = { profit: 100 }\n * selector = [{ profit: 100 }, { profit: 200 }]\n * @example 条件维度选择器\n * selector = {\n * field: 'category',\n * operator: 'in',\n * value: 'tool'\n * }\n * selector = {\n * field: 'category',\n * operator: 'not in',\n * value: 'book'\n * }\n * @example 条件指标选择器\n * selector = {\n * field: 'profit',\n * operator: '>=',\n * value: 100\n * }\n * selector = {\n * field: 'profit',\n * operator: 'between'\n * value: [100, 300]\n * }\n */\n selector?: Selector | Selectors\n\n /**\n * 面积图元的颜色\n * @description 面积图元的颜色\n * @type {string}\n */\n areaColor?: string\n /**\n * 面积图元的颜色透明度\n * @description 面积图元的颜色透明度\n * @type {number}\n */\n areaColorOpacity?: number\n}\n\nexport const zAreaStyle = z.object({\n selector: z.union([zSelector, zSelectors]).nullish(),\n areaColor: z.string().nullish(),\n areaColorOpacity: z.number().nullish(),\n})\n","import { z } from 'zod'\nimport { zBarStyle } from './barStyle'\nimport { zPointStyle } from './pointStyle'\nimport { zLineStyle } from './lineStyle'\nimport { zAreaStyle } from './areaStyle'\n\nexport const zMarkStyle = z.object({\n barStyle: zBarStyle.or(z.array(zBarStyle)).nullish(),\n pointStyle: zPointStyle.or(z.array(zPointStyle)).nullish(),\n lineStyle: zLineStyle.or(z.array(zLineStyle)).nullish(),\n areaStyle: zAreaStyle.or(z.array(zAreaStyle)).nullish(),\n})\n\nexport type MarkStyle = z.infer<typeof zMarkStyle>\n","import { zSelector, zSelectors } from '../../dataSelector'\nimport { z } from 'zod'\n\nexport const zAnnotationPoint = z.object({\n selector: z.union([zSelector, zSelectors]),\n text: z.string().or(z.array(z.string())).nullish(),\n textColor: z.string().default('#ffffff').nullish(),\n textFontSize: z.number().default(12).nullish(),\n textFontWeight: z.number().default(400).nullish(),\n textAlign: z.enum(['left', 'right', 'center']).default('center').nullish(),\n textBaseline: z.enum(['top', 'middle', 'bottom']).default('middle').nullish(),\n textBackgroundVisible: z.boolean().default(true).nullish(),\n textBackgroundColor: z.string().default('#212121').nullish(),\n textBackgroundBorderColor: z.string().nullish(),\n textBackgroundBorderWidth: z.number().default(1).nullish(),\n textBackgroundBorderRadius: z.number().default(4).nullish(),\n textBackgroundPadding: z.number().nullish(),\n\n offsetY: z.number().default(0).nullish(),\n offsetX: z.number().default(0).nullish(),\n})\n","import { zSelector, zSelectors } from '../../dataSelector'\nimport { z } from 'zod'\n\nexport const zAnnotationVerticalLine = z.object({\n selector: z.union([zSelector, zSelectors]).nullish(),\n xValue: z.union([z.number(), z.string(), z.array(z.union([z.number(), z.string()]))]).nullish(),\n text: z.string().or(z.array(z.string())).nullish(),\n textPosition: z\n .enum(['outsideStart', 'outsideEnd', 'outsideMiddle', 'insideStart', 'insideMiddle', 'insideEnd'])\n .default('insideEnd')\n .nullish(),\n textColor: z.string().default('#ffffff').nullish(),\n textFontSize: z.number().default(12).nullish(),\n textFontWeight: z.number().default(400).nullish(),\n textAlign: z.enum(['left', 'right', 'center']).default('right').nullish(),\n textBaseline: z.enum(['top', 'middle', 'bottom']).default('top').nullish(),\n\n textBackgroundVisible: z.boolean().default(true).nullish(),\n textBackgroundColor: z.string().default('#212121').nullish(),\n textBackgroundBorderColor: z.string().default('#212121').nullish(),\n textBackgroundBorderRadius: z.number().default(4).nullish(),\n textBackgroundBorderWidth: z.number().default(1).nullish(),\n textBackgroundPadding: z.number().default(2).nullish(),\n\n lineVisible: z.boolean().default(true).nullish(),\n lineColor: z.string().default('#212121').nullish(),\n lineWidth: z.number().default(1).nullish(),\n lineStyle: z\n .union([z.literal('solid'), z.literal('dashed'), z.literal('dotted')])\n .default('dashed')\n .nullish(),\n})\n","import { zSelector, zSelectors } from '../../dataSelector'\nimport { z } from 'zod'\n\nexport const zAnnotationHorizontalLine = z.object({\n selector: z.union([zSelector, zSelectors]).nullish(),\n yValue: z.union([z.number(), z.string(), z.array(z.union([z.number(), z.string()]))]).nullish(),\n text: z.string().or(z.array(z.string())).nullish(),\n textPosition: z\n .enum(['outsideStart', 'outsideEnd', 'outsideMiddle', 'insideStart', 'insideMiddle', 'insideEnd'])\n .default('insideEnd')\n .nullish(),\n textColor: z.string().default('#ffffff').nullish(),\n textFontSize: z.number().default(12).nullish(),\n textFontWeight: z.number().default(400).nullish(),\n textAlign: z.enum(['left', 'right', 'center']).default('right').nullish(),\n textBaseline: z.enum(['top', 'middle', 'bottom']).default('top').nullish(),\n\n lineVisible: z.boolean().default(true).nullish(),\n lineColor: z.string().default('#212121').nullish(),\n lineWidth: z.number().default(1).nullish(),\n lineStyle: z\n .union([z.literal('solid'), z.literal('dashed'), z.literal('dotted')])\n .default('dashed')\n .nullish(),\n\n textBackgroundVisible: z.boolean().default(true).nullish(),\n textBackgroundColor: z.string().default('#212121').nullish(),\n textBackgroundBorderColor: z.string().default('#212121').nullish(),\n textBackgroundBorderRadius: z.number().default(4).nullish(),\n textBackgroundBorderWidth: z.number().default(1).nullish(),\n textBackgroundPadding: z.number().default(2).nullish(),\n})\n","import { zSelector, zSelectors } from '../../dataSelector'\nimport { z } from 'zod'\n\nexport const zAnnotationArea = z.object({\n selector: z.union([zSelector, zSelectors]),\n textPosition: z\n .enum(['top', 'topRight', 'topLeft', 'bottom', 'bottomLeft', 'bottomRight', 'left', 'right'])\n .default('top')\n .nullish(),\n text: z.string().or(z.array(z.string())).nullish(),\n textColor: z.string().default('#ffffff').nullish(),\n textFontSize: z.number().default(12).nullish(),\n textFontWeight: z.number().default(400).nullish(),\n textAlign: z.enum(['left', 'right', 'center']).default('center').nullish(),\n textBaseline: z.enum(['top', 'middle', 'bottom']).default('top').nullish(),\n\n textBackgroundVisible: z.boolean().default(true).nullish(),\n textBackgroundColor: z.string().default('#191d24').nullish(),\n textBackgroundBorderColor: z.string().default('#191d24').nullish(),\n textBackgroundBorderWidth: z.number().default(1).nullish(),\n textBackgroundBorderRadius: z.number().default(4).nullish(),\n textBackgroundPadding: z.number().default(4).nullish(),\n\n areaColor: z.string().default('#888888').nullish(),\n areaColorOpacity: z.number().default(0.15).nullish(),\n areaBorderColor: z.string().default('#888888').nullish(),\n areaBorderWidth: z.number().default(1).nullish(),\n areaBorderRadius: z.number().default(4).nullish(),\n\n outerPadding: z.number().default(4).nullish(),\n})\n","import { z } from 'zod'\nimport { zAnnotationPoint } from './zAnnotationPoint'\nimport { zAnnotationVerticalLine } from './zAnnotationVerticalLine'\nimport { zAnnotationHorizontalLine } from './zAnnotationHorizontalLine'\nimport { zAnnotationArea } from './zAnnotationArea'\n\n\nexport const zAnnotation = z.object({\n annotationPoint: zAnnotationPoint.or(z.array(zAnnotationPoint)).nullish(),\n annotationVerticalLine: zAnnotationVerticalLine.or(z.array(zAnnotationVerticalLine)).nullish(),\n annotationHorizontalLine: zAnnotationHorizontalLine.or(z.array(zAnnotationHorizontalLine)).nullish(),\n annotationArea: zAnnotationArea.or(z.array(zAnnotationArea)).nullish(),\n})\n\nexport type Annotation = z.infer<typeof zAnnotation>\n","import { z } from 'zod'\n\nexport const zSort = z.object({\n order: z.enum(['asc', 'desc']).default('asc'),\n orderBy: z.string().nullish(),\n customOrder: z.array(z.any()).nullish(),\n})\n\n/**\n * @description 类目轴排序配置, 支持根据维度或指标排序, 以及自定义排序顺序\n * @default {}\n * @example \n * - order:'asc'\n * - orderBy:'date'\n * 或\n * - customOrder:['2019', '2020', '2021']\n */\nexport type Sort = {\n /**\n * @description 排序顺序, 可选值为 'asc' 或 'desc'\n * @enum ['asc', 'desc']\n * @example order:'asc'\n */\n order?: 'asc' | 'desc'\n\n /**\n * @description 排序依赖的字段, 可以是维度id或指标id\n * @example \n * - orderBy:'date'\n * - orderBy:'profit'\n */\n orderBy?: string\n\n /**\n * @description 自定义排序顺序, 该顺序将直接应用至类目轴\n */\n customOrder?: string[]\n}\n","import { z } from 'zod'\n\nexport const zSortLegend = z.object({\n order: z.enum(['asc', 'desc']).default('asc'),\n orderBy: z.string().nullish(),\n customOrder: z.array(z.any()).nullish(),\n})\n\n/**\n * @description 图例排序配置, 支持根据维度或指标排序, 以及自定义排序顺序; 排序数组遵循从左到右或从上到下的顺序\n * @default {}\n * @example \n * - order:'asc'\n * - orderBy:'date'\n * 或\n * - customOrder:['2019', '2020', '2021']\n */\nexport type SortLegend = {\n /**\n * @description 排序顺序, 可选值为 'asc' 或 'desc'\n * @default 'asc'\n * @enum ['asc', 'desc']\n * @example order:'asc'\n */\n order?: 'asc' | 'desc'\n /**\n * @description 排序依赖的字段, 可以是维度id或指标id\n * @example \n * - orderBy:'date'\n * - orderBy:'profit'\n */\n orderBy?: string\n /**\n * @description 自定义排序顺序, 该顺序将直接应用至图例, 升序从左到右或从上到下, 降序从右到左或从下到上\n */\n customOrder?: string[]\n}\n","import { z } from 'zod'\n\nexport const zAnalysis = z.object({\n orderMapping: z.record(z.string(), z.array(z.string())).nullish(),\n})\n","import { z } from 'zod'\n\nexport type Locale = 'zh-CN' | 'en-US'\n\nexport type TranslateRecordType = Record<string, { [local in Locale]: string }>\n\nexport const zLocale = z.enum(['zh-CN', 'en-US']).default('zh-CN')\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\nimport { zBackgroundColor, zDataset, zDimensions, zMeasureTree, zTheme } from '../../properties'\n\nexport const zTable = z.object({\n chartType: z.literal('table'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n\n backgroundColor: zBackgroundColor.nullish(),\n borderColor: z.string().nullish(),\n bodyFontSize: z.number().nullish(),\n bodyFontColor: z.string().nullish(),\n bodyBackgroundColor: z.string().nullish(),\n hoverBodyBackgroundColor: z.string().nullish(),\n hoverBodyInlineBackgroundColor: z.string().nullish(),\n headerFontSize: z.number().nullish(),\n headerFontColor: z.string().nullish(),\n headerBackgroundColor: z.string().nullish(),\n hoverHeaderBackgroundColor: z.string().nullish(),\n hoverHeaderInlineBackgroundColor: z.string().nullish(),\n selectedBorderColor: z.string().nullish(),\n selectedBackgroundColor: z.string().nullish(),\n\n theme: zTheme.nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\nimport { zBackgroundColor, zDataset, zDimensions, zTheme, zMeasures } from '../../properties'\n\nexport const zPivotTable = z.object({\n chartType: z.literal('pivotTable'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasures.nullish(),\n\n backgroundColor: zBackgroundColor.nullish(),\n borderColor: z.string().nullish(),\n bodyFontSize: z.number().nullish(),\n bodyFontColor: z.string().nullish(),\n bodyBackgroundColor: z.string().nullish(),\n hoverBodyBackgroundColor: z.string().nullish(),\n hoverBodyInlineBackgroundColor: z.string().nullish(),\n headerFontSize: z.number().nullish(),\n headerFontColor: z.string().nullish(),\n headerBackgroundColor: z.string().nullish(),\n hoverHeaderBackgroundColor: z.string().nullish(),\n hoverHeaderInlineBackgroundColor: z.string().nullish(),\n selectedBorderColor: z.string().nullish(),\n selectedBackgroundColor: z.string().nullish(),\n\n theme: zTheme.nullish(),\n locale: zLocale.nullish(),\n})\n","import { zLocale } from '../../i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zBackgroundColor,\n zColor,\n zCrosshairLine,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zLineStyle,\n zMeasureTree,\n zPointStyle,\n zSort,\n zSortLegend,\n zTheme,\n zTooltip,\n zXBandAxis,\n zYLinearAxis,\n} from '../../properties'\n\nimport { z } from 'zod'\n\nexport const zLine = z.object({\n chartType: z.literal('line'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n xAxis: zXBandAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairLine: zCrosshairLine.nullish(),\n sort: zSort.nullish(),\n sortLegend: zSortLegend.nullish(),\n theme: zTheme.nullish(),\n pointStyle: z.array(zPointStyle).or(zPointStyle).nullish(),\n lineStyle: z.array(zLineStyle).or(zLineStyle).nullish(),\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n locale: zLocale.nullish(),\n})\n","import { zLocale } from '../../i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zBackgroundColor,\n zBarStyle,\n zColor,\n zCrosshairRect,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zStackCornerRadius,\n zTheme,\n zTooltip,\n zXBandAxis,\n zYLinearAxis,\n} from '../../properties'\nimport { z } from 'zod'\n\nexport const zColumn = z.object({\n chartType: z.literal('column'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n xAxis: zXBandAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairRect: zCrosshairRect.nullish(),\n stackCornerRadius: zStackCornerRadius.nullish(),\n theme: zTheme.nullish(),\n barStyle: z.array(zBarStyle).or(zBarStyle).nullish(),\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n locale: zLocale.nullish(),\n})\n","import { zLocale } from '../../i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zBackgroundColor,\n zBarStyle,\n zColor,\n zCrosshairRect,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zStackCornerRadius,\n zTheme,\n zTooltip,\n zXBandAxis,\n zYLinearAxis,\n} from '../../properties'\n\nimport { z } from 'zod'\n\nexport const zColumnParallel = z.object({\n chartType: z.literal('columnParallel'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n xAxis: zXBandAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairRect: zCrosshairRect.nullish(),\n stackCornerRadius: zStackCornerRadius.nullish(),\n theme: zTheme.nullish(),\n barStyle: z.array(zBarStyle).or(zBarStyle).nullish(),\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n locale: zLocale.nullish(),\n})\n","import { zLocale } from '../../i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zBackgroundColor,\n zBarStyle,\n zColor,\n zCrosshairRect,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zStackCornerRadius,\n zTheme,\n zTooltip,\n zXBandAxis,\n zYLinearAxis,\n} from '../../properties'\n\nimport { z } from 'zod'\n\nexport const zColumnPercent = z.object({\n chartType: z.literal('columnPercent'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n xAxis: zXBandAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairRect: zCrosshairRect.nullish(),\n stackCornerRadius: zStackCornerRadius.nullish(),\n theme: zTheme.nullish(),\n barStyle: z.array(zBarStyle).or(zBarStyle).nullish(),\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n locale: zLocale.nullish(),\n})\n","import { zLocale } from '../../i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zBackgroundColor,\n zBarStyle,\n zColor,\n zCrosshairRect,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zStackCornerRadius,\n zTheme,\n zTooltip,\n zXLinearAxis,\n zYBandAxis,\n} from '../../properties'\n\nimport { z } from 'zod'\n\nexport const zBar = z.object({\n chartType: z.literal('bar'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n xAxis: zXLinearAxis.nullish(),\n yAxis: zYBandAxis.nullish(),\n crosshairRect: zCrosshairRect.nullish(),\n stackCornerRadius: zStackCornerRadius.nullish(),\n theme: zTheme.nullish(),\n barStyle: z.array(zBarStyle).or(zBarStyle).nullish(),\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zBackgroundColor,\n zBarStyle,\n zColor,\n zCrosshairRect,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zStackCornerRadius,\n zTheme,\n zTooltip,\n zXLinearAxis,\n zYBandAxis,\n} from '../../properties'\n\nexport const zBarParallel = z.object({\n chartType: z.literal('barParallel'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n xAxis: zXLinearAxis.nullish(),\n yAxis: zYBandAxis.nullish(),\n crosshairRect: zCrosshairRect.nullish(),\n stackCornerRadius: zStackCornerRadius.nullish(),\n theme: zTheme.nullish(),\n barStyle: z.array(zBarStyle).or(zBarStyle).nullish(),\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zBackgroundColor,\n zBarStyle,\n zColor,\n zCrosshairRect,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zStackCornerRadius,\n zTheme,\n zTooltip,\n zXLinearAxis,\n zYBandAxis,\n} from '../../properties'\n\nexport const zBarPercent = z.object({\n chartType: z.literal('barPercent'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n xAxis: zXLinearAxis.nullish(),\n yAxis: zYBandAxis.nullish(),\n crosshairRect: zCrosshairRect.nullish(),\n stackCornerRadius: zStackCornerRadius.nullish(),\n theme: zTheme.nullish(),\n barStyle: z.array(zBarStyle).or(zBarStyle).nullish(),\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zAreaStyle,\n zBackgroundColor,\n zColor,\n zCrosshairLine,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zLineStyle,\n zMeasureTree,\n zPointStyle,\n zTheme,\n zTooltip,\n zXBandAxis,\n zYLinearAxis,\n} from '../../properties'\n\nexport const zArea = z.object({\n chartType: z.literal('area'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n xAxis: zXBandAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairLine: zCrosshairLine.nullish(),\n theme: zTheme.nullish(),\n pointStyle: z.array(zPointStyle).or(zPointStyle).nullish(),\n lineStyle: z.array(zLineStyle).or(zLineStyle).nullish(),\n areaStyle: z.array(zAreaStyle).or(zAreaStyle).nullish(),\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n locale: zLocale.nullish(),\n})\n","import { zLocale } from '../../i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zAreaStyle,\n zBackgroundColor,\n zColor,\n zCrosshairLine,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zLineStyle,\n zMeasureTree,\n zPointStyle,\n zTheme,\n zTooltip,\n zXBandAxis,\n zYLinearAxis,\n} from '../../properties'\n\nimport { z } from 'zod'\n\nexport const zAreaPercent = z.object({\n chartType: z.literal('areaPercent'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n xAxis: zXBandAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairLine: zCrosshairLine.nullish(),\n theme: zTheme.nullish(),\n pointStyle: z.array(zPointStyle).or(zPointStyle).nullish(),\n lineStyle: z.array(zLineStyle).or(zLineStyle).nullish(),\n areaStyle: z.array(zAreaStyle).or(zAreaStyle).nullish(),\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\n\nimport { zLocale } from '../../i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zAreaStyle,\n zBackgroundColor,\n zCrosshairLine,\n zDataset,\n zDimensions,\n zLabel,\n zLineStyle,\n zMeasureTree,\n zPointStyle,\n zTheme,\n zXBandAxis,\n zYLinearAxis,\n} from '../../properties'\n\nexport const zAreaRange = z.object({\n chartType: z.literal('areaRange'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n label: zLabel.nullish(),\n xAxis: zXBandAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairLine: zCrosshairLine.nullish(),\n theme: zTheme.nullish(),\n pointStyle: z.array(zPointStyle).or(zPointStyle).nullish(),\n lineStyle: z.array(zLineStyle).or(zLineStyle).nullish(),\n areaStyle: z.array(zAreaStyle).or(zAreaStyle).nullish(),\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zBackgroundColor,\n zColor,\n zCrosshairLine,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zPointStyle,\n zTheme,\n zTooltip,\n zXLinearAxis,\n zYLinearAxis,\n} from '../../properties'\n\nexport const zScatter = z.object({\n chartType: z.literal('scatter'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n xAxis: zXLinearAxis.nullish(),\n yAxis: zYLinearAxis.nullish(),\n crosshairLine: zCrosshairLine.nullish(),\n theme: zTheme.nullish(),\n pointStyle: z.array(zPointStyle).or(zPointStyle).nullish(),\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from 'src/types/i18n'\nimport {\n zAnnotationArea,\n zAnnotationHorizontalLine,\n zAnnotationPoint,\n zAnnotationVerticalLine,\n zAreaStyle,\n zBackgroundColor,\n zBarStyle,\n zColor,\n zCrosshairRect,\n zDataset,\n zDimensions,\n zDualChartType,\n zDualMeasures,\n zLabel,\n zLegend,\n zLineStyle,\n zMeasureTree,\n zPointStyle,\n zSort,\n zSortLegend,\n zTheme,\n zTooltip,\n zXBandAxis,\n zYLinearAxis,\n} from 'src/types/properties'\n\nexport const zDualAxis = z.object({\n chartType: z.literal('dualAxis'),\n\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n dualMeasures: zDualMeasures.nullish(),\n\n dualChartType: z.array(zDualChartType).or(zDualChartType).nullish(),\n alignTicks: z.array(z.boolean()).or(z.boolean()).nullish(),\n \n primaryYAxis: z.array(zYLinearAxis).or(zYLinearAxis).nullish(),\n secondaryYAxis: z.array(zYLinearAxis).or(zYLinearAxis).nullish(),\n xAxis: zXBandAxis.nullish(),\n\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n\n crosshairRect: zCrosshairRect.nullish(),\n sort: zSort.nullish(),\n sortLegend: zSortLegend.nullish(),\n theme: zTheme.nullish(),\n\n barStyle: z.array(zBarStyle).or(zBarStyle).nullish(),\n pointStyle: z.array(zPointStyle).or(zPointStyle).nullish(),\n lineStyle: z.array(zLineStyle).or(zLineStyle).nullish(),\n areaStyle: z.array(zAreaStyle).or(zAreaStyle).nullish(),\n\n annotationPoint: z.array(zAnnotationPoint).or(zAnnotationPoint).nullish(),\n annotationVerticalLine: z.array(zAnnotationVerticalLine).or(zAnnotationVerticalLine).nullish(),\n annotationHorizontalLine: z.array(zAnnotationHorizontalLine).or(zAnnotationHorizontalLine).nullish(),\n annotationArea: z.array(zAnnotationArea).or(zAnnotationArea).nullish(),\n\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\n\nimport {\n zBackgroundColor,\n zColor,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zTheme,\n zTooltip,\n} from '../../properties'\n\nexport const zRose = z.object({\n chartType: z.literal('rose'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n theme: zTheme.nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\nimport {\n zBackgroundColor,\n zColor,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zTheme,\n zTooltip,\n} from '../../properties'\n\nexport const zRoseParallel = z.object({\n chartType: z.literal('roseParallel'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n theme: zTheme.nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\nimport {\n zBackgroundColor,\n zColor,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zTheme,\n zTooltip,\n} from '../../properties'\n\nexport const zPie = z.object({\n chartType: z.literal('pie'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n theme: zTheme.nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\n\nimport {\n zBackgroundColor,\n zColor,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zTheme,\n zTooltip,\n} from '../../properties'\n\nexport const zDonut = z.object({\n chartType: z.literal('donut'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n theme: zTheme.nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\n\nimport {\n zBackgroundColor,\n zColor,\n zDataset,\n zDimensions,\n zLabel,\n zLegend,\n zMeasureTree,\n zTheme,\n zTooltip,\n} from '../../properties'\n\nexport const zRadar = z.object({\n chartType: z.literal('radar'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zColor.nullish(),\n label: zLabel.nullish(),\n legend: zLegend.nullish(),\n tooltip: zTooltip.nullish(),\n theme: zTheme.nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\nimport {\n zBackgroundColor,\n zColorLegend,\n zDataset,\n zDimensions,\n zLabel,\n zLinearColor,\n zMeasureTree,\n zTheme,\n zTooltip,\n} from '../../properties'\n\nexport const zFunnel = z.object({\n chartType: z.literal('funnel'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zLinearColor.nullish(),\n label: zLabel.nullish(),\n legend: zColorLegend.nullish(),\n tooltip: zTooltip.nullish(),\n theme: zTheme.nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\nimport { zLocale } from '../../i18n'\n\nimport {\n zBackgroundColor,\n zColorLegend,\n zDataset,\n zDimensions,\n zLabel,\n zLinearColor,\n zMeasureTree,\n zTheme,\n zTooltip,\n} from '../../properties'\n\nexport const zHeatmap = z.object({\n chartType: z.literal('heatmap'),\n dataset: zDataset.nullish(),\n dimensions: zDimensions.nullish(),\n measures: zMeasureTree.nullish(),\n backgroundColor: zBackgroundColor.nullish(),\n color: zLinearColor.nullish(),\n label: zLabel.nullish(),\n legend: zColorLegend.nullish(),\n tooltip: zTooltip.nullish(),\n theme: zTheme.nullish(),\n locale: zLocale.nullish(),\n})\n","import { z } from 'zod'\n\nimport { zBar, type Bar } from './chartType/bar'\nimport { zBarParallel, type BarParallel } from './chartType/barParallel'\nimport { zColumn, type Column } from './chartType/column'\nimport { zColumnParallel, type ColumnParallel } from './chartType/columnParallel'\nimport { zColumnPercent, type ColumnPercent } from './chartType/columnPercent'\nimport { zLine, type Line } from './chartType/line'\nimport type { Table } from './chartType/table'\nimport { zRose, type Rose } from './chartType/rose'\nimport { zBarPercent, type BarPercent } from './chartType/barPercent'\nimport type { PivotTable } from './chartType/pivotTable'\nimport { zPie, type Pie } from './chartType/pie'\nimport { zDonut, type Donut } from './chartType/donut'\nimport type { DualAxis } from './chartType/dualAxis'\nimport { zArea, type Area } from './chartType/area'\nimport { zAreaPercent, type AreaPercent } from './chartType/areaPercent'\nimport type { AreaRange, Heatmap, Radar } from './chartType'\nimport {\n zAreaRange,\n zDualAxis,\n zFunnel,\n zHeatmap,\n zPivotTable,\n zRadar,\n zRoseParallel,\n zScatter,\n zTable,\n type Funnel,\n type RoseParallel,\n type Scatter,\n} from './chartType'\n\nexport type VSeed =\n // table\n | Table\n | PivotTable\n\n // cartesian\n | Line\n | Column\n | ColumnParallel\n | ColumnPercent\n | Bar\n | BarParallel\n | BarPercent\n | Area\n | AreaPercent\n | AreaRange\n | Scatter\n | DualAxis\n\n // polar\n | Rose\n | RoseParallel\n | Pie\n | Donut\n | Radar\n\n // other\n | Funnel\n | Heatmap\n\nexport const zVSeed = z.discriminatedUnion('chartType', [\n zTable,\n zPivotTable,\n // cartesian\n zLine,\n zColumn,\n zColumnParallel,\n zColumnPercent,\n zBar,\n zBarParallel,\n zBarPercent,\n zArea,\n zAreaPercent,\n zAreaRange,\n zScatter,\n zDualAxis,\n // polar\n zPie,\n zDonut,\n zRose,\n zRoseParallel,\n zRadar,\n // other\n zFunnel,\n zHeatmap,\n])\n","import { z } from 'zod'\nimport { zChartType } from './properties/chartType'\nimport { zDataset } from './properties/dataset'\nimport { zDimensionTree } from './properties/dimensions'\nimport { zMeasureTree } from './properties/measures'\nimport { zEncoding } from './properties/encoding/encoding'\nimport { zDatasetReshapeInfo } from './properties/datasetReshapeInfo/datasetReshapeInfo'\nimport { zTheme, zCustomThemeConfig } from './properties/theme'\nimport { zConfig } from './properties/config'\nimport { zAnalysis, zAnnotation, zMarkStyle } from './properties'\nimport { zLocale } from './i18n'\n\nexport const zAdvancedVSeed = z.object({\n chartType: zChartType,\n dataset: zDataset,\n datasetReshapeInfo: zDatasetReshapeInfo,\n dimensions: zDimensionTree,\n measures: zMeasureTree,\n encoding: zEncoding,\n config: zConfig,\n analysis: zAnalysis,\n theme: zTheme,\n markStyle: zMarkStyle,\n customTheme: zCustomThemeConfig,\n annotation: zAnnotation,\n locale: zLocale,\n})\n\nexport type AdvancedVSeed = z.infer<typeof zAdvancedVSeed>\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","execPipeline","pipeline","context","initialValue","result","prev","cur","buildAdvanced","builder","start","performance","Date","chartType","Error","Builder","e","console","end","buildSpec","advancedVSeed","build","spec","Intl","translateMap","value","segments","values","text","segment","index","translatedText","isNullish","locale","intl","i18n","getColorItems","datasetReshapeInfo","colorItems","unique","d","colorIdMap","getColorIdMap","vseed","advanced","customPipe","themeKey","initAdvancedVSeed","autoMeasures","measures","dataset","top100dataset","sample","item","undefined","measure","preorderTraverse","tree","callback","stack","node","stop","children","i","child","findMeasureById","id","findFirstMeasure","findAllMeasures","autoDimensions","dimensions","dim","records","tableConfig","config","pick","theme","customTheme","chartConfigTheme","chartConfig","mergedConfig","mergeDeep","clone","_k","Array","mergeArray","chartCustomTheme","arr","themeItem","isString","isNumber","isObjectType","merge","tableAdvancedPipeline","initTable","backgroundColor","isMeasure","isMeasureGroup","isMeasures","dimensionTreeToColumns","eachNode","columns","treeTreeToColumns","groupNode","field","title","props","createNumFormatter","format","type","ratio","symbol","thousandSeparator","prefix","suffix","fractionDigits","significantDigits","roundingMode","roundingPriority","numFormatterOptions","numFormatter","num","Number","typeSymbol","String","numStr","parts","autoNumFormatter","createFormatter","autoFormatter","measureTreeToColumns","fieldFormat","datum","autoFormat","isEmpty","formatter","bodyStyle","themeConfig","borderColor","fontColor","fontSize","hoverCellBgColor","hoverInlineColor","headerStyle","themConfig","frameStyle","selectionStyle","tableSpecPipeline","registerTable","autoPivotMeasures","findDimensionById","findFirstDimension","findAllDimensions","autoPivotDimensions","newDimensions","pivotTableConfig","pivotTableAdvancedPipeline","initPivotTable","pivotColumns","pivotRows","rows","pivotIndicators","rowHeaderStyle","cornerHeaderStyle","hoverCellColor","AggregationType","SortType","dataConfig","aggregationRules","pivotTableSpecPipeline","registerPivotTable","measureDepth","depth","Math","isTable","isPivotTable","isVTable","isVChart","isPivotChart","hasRowOrColumnDimension","dimension","hasMeasureGroup","autoMeasureGroup","newMeasures","currentGroup","createEmptyMeasureGroup","measureGroups","pivotAdapter","pivotPipeline","usePivotChart","FoldMeasureName","FoldMeasureId","FoldMeasureValue","FoldPrimaryMeasureValue","FoldSecondaryMeasureValue","UnfoldDimensionGroup","UnfoldDimensionGroupId","Separator","ORIGINAL_DATA","foldMeasures","measureId","measureName","measureValue","foldInfo","ids","j","omit","alias","unfoldDimensions","unfoldStartIndex","unfoldGroupName","unfoldGroupId","foldMeasureId","dimensionsSeparator","dimensionsToBeUnfolded","unfoldInfo","colorMap","colorName","generateDimGroupName","colorId","dimensionsToBeGrouped","unfoldZeroDimensions","emptyReshapeResult","dataReshapeFor2D1M0Name","options","foldMeasureName","foldMeasureValue","unfoldDimensionGroup","unfoldDimensionGroupId","foldedDataset","finalDataset","onlyOneMeasure","onlyOneDimension","dims","reshapeTo2D1M0Name","newDatasets","pivotReshapeTo2D1M0Name","commonDimensions","measureGroup","groupId","newSubDataset","reshapeInfo","encodingXY","xDimension","isZeroDimension","encoding","x","y","group","color","sortXBandAxis","sortAxis","xField","axisOrderResult","calcOrder","sortYBandAxis","yField","sortLegend","groupField","nameMap","pre","orderRes","itemNameOrId","sortConfig","order","orderBy","res","sort","a","b","aValue","bValue","lineConfig","columnConfig","pieConfig","areaConfig","areaPercentConfig","scatterConfig","barConfig","barParallelConfig","barPercentConfig","columnParallelConfig","columnPercentConfig","donutConfig","roseConfig","roseParallelConfig","funnelConfig","heatmapConfig","radarConfig","markStyle","annotation","lineAdvancedPipeline","initLine","baseConfig","colorScheme","colorMapping","createSpecifiedForColorMapping","matchedList","colors","accurateMap","name","colorValue","accurateMatchedList","colorKey","colorAlias","fuzzyMap","fuzzyMatchedList","datasetXY","analysis","orderMapping","angle","fields","progressive","size","xBand","visible","label","tick","grid","line","labelAutoHide","labelAutoHideGap","labelAutoLimit","labelAutoLimitLength","labelAutoRotate","labelAutoRotateAngleRange","sampling","bandAxis","ANNOTATION_Z_INDEX","LINEAR_AXIS_INNER_OFFSET_TOP","DUAL_AXIS_CHART_COLUMN_Z_INDEX","DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX","yLinear","zero","nice","inverse","max","min","log","logBase","linearAxis","enable","formatValue","tooltip","groupName","verticalCrosshairLine","lineColor","labelColor","labelVisible","labelBackgroundColor","crosshair","discreteLegend","legend","position","labelFontColor","labelFontSize","labelFontWeight","maxSize","border","shapeType","orient","legendPosition","items","selector","vchartDatum","selectorMode","vchartKeys","k","selectors","isValueSelector","v","isMeasureSelector","op","selectorValueArr","isDimensionSelector","isPartialDatumSelector","pointStyle","pointStyles","customMap","style","pointBorderColor","pointBorderStyle","pointBorderWidth","pointColor","pointColorOpacity","pointSize","lineDash","pointStateDimensionHover","point","pointStateHover","lineStyle","lineStyles","lineGroups","groupBy","lineColorOpacity","lineSmooth","lineWidth","dashSegment","dashGap","curveType","lineData","isSubset","sub","annotationPoint","annotationPointList","markPoint","selectorPoint","textColor","textFontSize","textFontWeight","textAlign","textBaseline","textBackgroundBorderColor","textBackgroundBorderRadius","textBackgroundBorderWidth","textBackgroundColor","textBackgroundPadding","textBackgroundVisible","offsetX","offsetY","selectedData","data","targetDatum","annotationVerticalLine","annotationVerticalLineList","positionMap","markLine","xValue","textPosition","lineVisible","generateOneMarkLine","isArray","xValueArr","specMarkLine","newMarkLine","annotationHorizontalLine","yValue","yValueArr","annotationArea","annotationAreaList","markArea","areaColor","areaColorOpacity","areaBorderColor","areaBorderRadius","areaBorderWidth","outerPadding","labelPosition","isBottom","positionData","xyList","yAxisHelper","xAxisHelper","yScale","minX","maxX","minY","maxY","xScale","initPivot","pivotGridStyle","transparent","hoverBackgroundColor","chartPipeline","indicators","newEncoding","newDatasetReshapeInfo","newContext","chartSpec","pivotIndicatorsAsRow","pivotIndicatorsAsCol","datasetPivot","pivotRowDimensions","rowDimensions","pivotColumnDimensions","columnDimensions","pivotDiscreteLegend","legends","pivotLine","lineSpecPipeline","registerLine","dataReshapeFor2D1M","reshapeTo2D1M","pivotReshapeTo2D1M","columnAdvancedPipeline","initColumn","stackCornerRadius","stackInverse","verticalCrosshairRect","rectColor","barStyle","showStroke","barStyles","barBorderColor","barBorderStyle","barBorderWidth","barColor","barColorOpacity","barRadius","annotationAreaBand","xBandWidth","yBandWidth","column","pivotColumn","columnSpecPipeline","registerColumn","columnParallelAdvancedPipeline","initColumnParallel","columnParallel","pivotColumnParallel","columnParallelSpecPipeline","registerColumnParallel","columnPercentAdvancedPipeline","percent","columnPercent","pivotColumnPercent","columnPercentSpecPipeline","registerColumnPercent","encodingYX","yDimension","barAdvancedPipeline","initBar","datasetYX","xLinear","yBand","horizontalCrosshairRect","bar","pivotBar","barSpecPipeline","registerBar","barParallelAdvancedPipeline","initBarParallel","barParallel","pivotBarParallel","barParallelSpecPipeline","registerBarParallel","barPercentAdvancedPipeline","barPercent","pivotBarPercent","barPercentSpecPipeline","registerBarPercent","areaAdvancedPipeline","initArea","areaStyle","areaStyles","area","pivotArea","areaSpecPipeline","registerArea","areaPercentAdvancedPipeline","areaPercent","pivotAreaPercent","areaPercentSpecPipeline","registerAreaPercent","autoMeasuresBy2M1Group","auto2M1Group","allMeasures","groups","singleMeasures","dataReshapeFor1D","reshapeTo1D","pivotReshapeTo1D","encodingAreaRange","m1","m2","areaRangeAdvancedPipeline","series","args","_","seriesDualAxis","createDualContext","seriesContext","initAreaRange","initAreaRangeLine1","initAreaRangeLine2","tooltipDisable","tooltipAreaRange","areaRange","pivotAreaRange","areaRangeSpecPipeline","registerAreaRange","dataReshapeFor1D2M","reshapeTo1D2M","pivotReshapeTo1D2M","encodingYY","firstMeasure","scatterAdvancedPipeline","initScatter","horizontalCrosshairLine","scatter","pivotScatter","scatterSpecPipeline","registerScatter","reshapeTo2D2M","datasets","foldInfoList","unfoldInfoList","primaryMeasures","secondaryMeasures","pivotReshapeTo2D2M","datasetList","encodingXYY","dualAxisConfig","autoDualMeasures","dualMeasures","dualMeasuresToMeasureTree","measureTree","groupChildren","arrPrimaryMeasures","arrSecondaryMeasures","dualAxisAdvancedPipeline","initDualAxisPrimary","initDualAxisSecondary","dualChartTypePrimary","primary","secondary","bothColumn","columnSpec","dualChartTypeSecondary","datasetPrimary","datasetSecondary","labelPrimary","labelSecondary","tooltipPrimary","tooltipSecondary","yLinearPrimary","primaryYAxis","yAxisConfig","alignTicks","alignTicksConfig","seriesIds","seriesId","yLinearSecondary","secondaryYAxis","sync","dualAxis","pivotDualAxis","dualAxisSpecPipeline","registerDualAxis","dataReshapeFor1D1M","reshapeTo1D1M","pivotReshapeTo1D1M","encodingPie","radius","pieAdvancedPipeline","initPie","pie","pivotPie","pieSpecPipeline","registerPie","donutAdvancedPipeline","initDonut","donut","pivotDonut","donutSpecPipeline","registerDonut","encodingRose","angleDimension","is1D1M","roseAdvancedPipeline","initRose","hasNegativeValue","radiusAxis","is0D","is1M1D","showAxis","angleAxis","rose","pivotRose","roseSpecPipeline","registerRose","roseParallelAdvancedPipeline","initRoseParallel","roseParallel","pivotRoseParallel","roseParallelSpecPipeline","registerRoseParallel","encodingAR","radarAdvancedPipeline","initRadar","radarAngleAxis","radarRadiusAxis","radar","pivotRadar","radarSpecPipeline","registerRadar","encodingFunnel","funnelAdvancedPipeline","initFunnel","linearColor","colorLegend","funnel","pivotFunnel","funnelSpecPipeline","registerFunnel","encodingMatrix","heatmapAdvancedPipeline","labelColorInversion","initHeatmap","heatmap","pivotHeatmap","heatmapSpecPipeline","registerHeatmap","lightTheme","barBandAxis","crosshairLine","crosshairRect","darkTheme","registerCustomTheme","registerLightTheme","registerDarkTheme","registerAll","updateAdvanced","advancedPipe","updateSpec","specPipe","isDimension","isDimensionGroup","isDimensions","zChartType","z","zDualChartType","zDatum","zDataset","zDimension","zDimensionGroup","zDimensions","zDimensionTree","zNumFormat","zMeasure","zMeasureGroup","zMeasures","zMeasureTree","zDualMeasure","zDualMeasures","zFoldInfo","zUnfoldInfo","zDatasetReshapeInfo","zEncoding","zXBandAxis","zYBandAxis","zXLinearAxis","zYLinearAxis","zCrosshairLine","zCrosshairRect","zStackCornerRadius","zBackgroundColor","zColor","zLinearColor","zLabel","zLegend","zColorLegend","zTooltip","zTableConfig","zPivotTableConfig","zLineConfig","zColumnConfig","zColumnParallelConfig","zColumnPercentConfig","zBarConfig","zBarParallelConfig","zBarPercentConfig","zAreaConfig","zAreaPercentConfig","zAreaRangeConfig","zDualAxisConfig","zScatterConfig","zRoseConfig","zRoseParallelConfig","zPieConfig","zDonutConfig","zRadarConfig","zFunnelConfig","zHeatmapConfig","zConfig","zAxis","zCustomThemeConfig","zCustomTheme","zTheme","zSelector","zSelectors","zBarStyle","zPointStyle","zLineStyle","zAreaStyle","zMarkStyle","zAnnotationPoint","zAnnotationVerticalLine","zAnnotationHorizontalLine","zAnnotationArea","zAnnotation","zSort","zSortLegend","zAnalysis","zLocale","zTable","zPivotTable","zLine","zColumn","zColumnParallel","zColumnPercent","zBar","zBarParallel","zBarPercent","zArea","zAreaPercent","zAreaRange","zScatter","zDualAxis","zRose","zRoseParallel","zPie","zDonut","zRadar","zFunnel","zHeatmap","zVSeed","zAdvancedVSeed"],"mappings":"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AAK,MAAMhN,KAAKwW,SACd,IAAIrC,kBAASnU,GAAGmV,MAAM,QAAQ,GAC5B,OAAO;oBAGX,OAAO;gBACT;gBACA,OAAO;oBACL,MAAM8D;oBACN,aAAaC;gBACf;YACF;QACF;IACF,GAAG,CAAC;IAEJ,OAAO;QACL,GAAGrb,MAAM;QACT,MAAM;YACJ,OAAO;gBACL,GAAGqX,SAAS;YACd;QACF;IACF;AACF;ACpBA,MAAMuK,YAAqB;IACzBH;IACAvD;IACA9O;IACA1J;IACAoN;IACAK;IACAE;IACAkB;IACAhB;IACA2B;IACAE;IACAM;IACAyB;IACAW;IACAG;IACAyJ;IACA5I;IACAoB;IACAY;IACAG;CACD;AAED,MAAM4G,YAA0B;IAC9BvF;IACAC;IACAS;IACAE;IACAtT,gCAAgB;QACd6X;QACArS;QACA1J;QACAwY;QACApL;QACAK;QACAE;QACAkB;QACAhB;QACA2B;QACAE;QACA+B;QACAW;QACAG;QACAyJ;QACA5I;QACAoB;QACAY;QACAG;KACD;IACDkC;IACAE;IACAE;CACD;AAEM,MAAMuE,mBAAmB;IAACxW,0BAAasW,WAAMC;CAAW;ACpFxD,MAAME,eAAe;IAC1BrhB,QAAQ,oBAAoB,CAA5BA,IAAoC,GAAG8gB;IACvC9gB,QAAQ,gBAAgB,CAAxBA,IAAgC,GAAGohB;AACrC;ACWO,MAAME,8BAAgD;IAC3Dtf;IACAC;IACAqB;IACAsH,aAAa;QAAC+C;KAAmB,EAAE;QAACE;KAAwB;IAC5DM;IACAQ;IACAO;IACAmB;IACAxM;IACAqN;IACAC;CACD;ACID,MAAMoQ,cAA4B;IAChCR;IACAvD;IACA9O;IACA1J;IACAka;IACA9M;IACAK;IACAE;IACAkB;IACAhB;IACA2B;IACAE;IACAM;IACAyB;IACAc;IACAyJ;IACA5I;IACAoB;IACAY;IACAG;CACD;AAED,MAAMiH,mBAAiC;IACrC5F;IAEAC;IACAS;IACAE;IACAtT,gCAAgB;QACd6X;QACAvD;QACA9O;QACA1J;QACAka;QACA9M;QACAK;QACAE;QACAkB;QACAhB;QACA2B;QACAE;QACA+B;QACAc;QA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"}