@visactor/vchart 0.0.1-alpha.2 → 1.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +82 -1
- package/build/index.js +2680 -2068
- package/build/index.min.js +2 -2
- package/cjs/animation/utils.d.ts +2 -1
- package/cjs/animation/utils.js.map +1 -1
- package/cjs/chart/base-chart.js +2 -2
- package/cjs/chart/base-chart.js.map +1 -1
- package/cjs/chart/{boxplot/boxPlot.js → box-plot/box-plot.js} +1 -1
- package/cjs/chart/box-plot/box-plot.js.map +1 -0
- package/{esm/chart/boxplot → cjs/chart/box-plot}/index.d.ts +1 -1
- package/cjs/chart/{boxplot → box-plot}/index.js +1 -1
- package/cjs/chart/box-plot/index.js.map +1 -0
- package/cjs/chart/box-plot/interface.js.map +1 -0
- package/cjs/chart/index.d.ts +3 -1
- package/cjs/chart/index.js +2 -1
- package/cjs/chart/index.js.map +1 -1
- package/cjs/chart/treemap/treemap.js.map +1 -1
- package/cjs/compile/compilable-base.js +1 -1
- package/cjs/compile/compiler.d.ts +2 -2
- package/cjs/compile/compiler.js +24 -25
- package/cjs/compile/compiler.js.map +1 -1
- package/cjs/compile/grammar-item.js +1 -1
- package/cjs/compile/mark/interface.js.map +1 -1
- package/cjs/compile/util.js +1 -1
- package/cjs/component/axis/base-axis.d.ts +70 -1
- package/cjs/component/axis/base-axis.js +93 -4
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/axis.d.ts +0 -1
- package/cjs/component/axis/cartesian/axis.js +3 -6
- package/cjs/component/axis/cartesian/axis.js.map +1 -1
- package/cjs/component/axis/polar/axis.d.ts +0 -1
- package/cjs/component/axis/polar/axis.js +3 -6
- package/cjs/component/axis/polar/axis.js.map +1 -1
- package/cjs/component/axis/utils.d.ts +13 -70
- package/cjs/component/axis/utils.js +23 -109
- package/cjs/component/axis/utils.js.map +1 -1
- package/cjs/component/base/base-component.d.ts +0 -5
- package/cjs/component/base/base-component.js +8 -19
- package/cjs/component/base/base-component.js.map +1 -1
- package/cjs/component/base/util.d.ts +1 -1
- package/cjs/component/base/util.js +20 -9
- package/cjs/component/base/util.js.map +1 -1
- package/cjs/component/crosshair/base.d.ts +0 -1
- package/cjs/component/crosshair/base.js +1 -4
- package/cjs/component/crosshair/base.js.map +1 -1
- package/cjs/component/custom-mark/custom-mark.js +4 -1
- package/cjs/component/custom-mark/custom-mark.js.map +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.d.ts +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.js +2 -2
- package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/cjs/component/index.js +1 -1
- package/cjs/component/interface/index.d.ts +1 -0
- package/cjs/component/interface/index.js +1 -1
- package/cjs/component/interface/index.js.map +1 -1
- package/cjs/component/interface/theme.d.ts +38 -0
- package/cjs/component/interface/theme.js +6 -0
- package/cjs/component/interface/theme.js.map +1 -0
- package/cjs/component/label/label.d.ts +0 -1
- package/cjs/component/label/label.js +12 -6
- package/cjs/component/label/label.js.map +1 -1
- package/cjs/component/legend/base-legend.js +5 -2
- package/cjs/component/legend/base-legend.js.map +1 -1
- package/cjs/component/legend/continuous/legend.d.ts +1 -1
- package/cjs/component/legend/continuous/legend.js +2 -2
- package/cjs/component/legend/continuous/legend.js.map +1 -1
- package/cjs/component/legend/discrete/legend.d.ts +1 -1
- package/cjs/component/legend/discrete/legend.js +2 -2
- package/cjs/component/legend/discrete/legend.js.map +1 -1
- package/cjs/component/legend/util.d.ts +4 -4
- package/cjs/component/map-label/component.js +2 -2
- package/cjs/component/map-label/component.js.map +1 -1
- package/cjs/component/map-label/interface.d.ts +6 -4
- package/cjs/component/map-label/interface.js.map +1 -1
- package/cjs/component/marker/utils.js +14 -9
- package/cjs/component/marker/utils.js.map +1 -1
- package/cjs/component/player/interface/theme.d.ts +2 -1
- package/cjs/component/player/interface/theme.js.map +1 -1
- package/cjs/component/player/player.d.ts +0 -1
- package/cjs/component/player/player.js +0 -3
- package/cjs/component/player/player.js.map +1 -1
- package/cjs/component/player/utils/transform.js.map +1 -1
- package/cjs/component/title/interface/theme.d.ts +4 -2
- package/cjs/component/title/interface/theme.js.map +1 -1
- package/cjs/component/title/title.d.ts +1 -1
- package/cjs/component/title/title.js +4 -6
- package/cjs/component/title/title.js.map +1 -1
- package/cjs/component/tooltip/handler/base.d.ts +5 -3
- package/cjs/component/tooltip/handler/base.js +9 -8
- package/cjs/component/tooltip/handler/base.js.map +1 -1
- package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.d.ts +4 -5
- package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.js +4 -4
- package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.d.ts +2 -4
- package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js +2 -2
- package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/model/base-tooltip-model.d.ts +1 -1
- package/cjs/component/tooltip/tooltip.js +1 -1
- package/cjs/component/tooltip/tooltip.js.map +1 -1
- package/cjs/constant/box-plot.js +1 -2
- package/cjs/constant/label.js +2 -1
- package/cjs/core/factory.d.ts +1 -0
- package/cjs/core/factory.js +3 -0
- package/cjs/core/factory.js.map +1 -1
- package/cjs/core/instance-manager.d.ts +9 -0
- package/cjs/core/instance-manager.js +26 -0
- package/cjs/core/instance-manager.js.map +1 -0
- package/cjs/core/interface.js +1 -2
- package/cjs/core/vchart.d.ts +2 -6
- package/cjs/core/vchart.js +10 -23
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/event/event.js +2 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/mark/arc.d.ts +1 -1
- package/cjs/mark/arc.js +4 -3
- package/cjs/mark/arc.js.map +1 -1
- package/cjs/mark/area.d.ts +3 -2
- package/cjs/mark/area.js +8 -4
- package/cjs/mark/area.js.map +1 -1
- package/cjs/mark/base/base-mark.js +2 -1
- package/cjs/mark/base/base-mark.js.map +1 -1
- package/cjs/mark/base/index.d.ts +1 -2
- package/cjs/mark/base/index.js +1 -10
- package/cjs/mark/base/index.js.map +1 -1
- package/{esm/mark/boxPlot.d.ts → cjs/mark/box-plot.d.ts} +1 -1
- package/cjs/mark/{boxPlot.js → box-plot.js} +3 -3
- package/{esm/mark/boxPlot.js.map → cjs/mark/box-plot.js.map} +1 -1
- package/cjs/mark/component.d.ts +1 -1
- package/cjs/mark/component.js +2 -2
- package/cjs/mark/component.js.map +1 -1
- package/cjs/mark/line.d.ts +1 -1
- package/cjs/mark/line.js +2 -2
- package/cjs/mark/line.js.map +1 -1
- package/cjs/mark/linkPath.d.ts +1 -1
- package/cjs/mark/linkPath.js +4 -3
- package/cjs/mark/linkPath.js.map +1 -1
- package/cjs/mark/mark-set/index.d.ts +6 -5
- package/cjs/mark/mark-set/index.js +15 -12
- package/cjs/mark/mark-set/index.js.map +1 -1
- package/cjs/mark/path.d.ts +1 -1
- package/cjs/mark/path.js +2 -2
- package/cjs/mark/path.js.map +1 -1
- package/cjs/mark/polygon.d.ts +1 -1
- package/cjs/mark/polygon.js +3 -3
- package/cjs/mark/polygon.js.map +1 -1
- package/cjs/mark/progress-arc.js +1 -1
- package/cjs/mark/rect.d.ts +1 -1
- package/cjs/mark/rect.js +6 -5
- package/cjs/mark/rect.js.map +1 -1
- package/cjs/mark/rule.d.ts +1 -1
- package/cjs/mark/rule.js +3 -3
- package/cjs/mark/rule.js.map +1 -1
- package/cjs/mark/symbol.d.ts +1 -1
- package/cjs/mark/symbol.js +5 -4
- package/cjs/mark/symbol.js.map +1 -1
- package/cjs/mark/text.d.ts +1 -1
- package/cjs/mark/text.js +5 -4
- package/cjs/mark/text.js.map +1 -1
- package/cjs/model/base-model.d.ts +12 -5
- package/cjs/model/base-model.js +52 -29
- package/cjs/model/base-model.js.map +1 -1
- package/cjs/model/interface.d.ts +8 -2
- package/cjs/model/interface.js.map +1 -1
- package/cjs/model/layout-item.js +20 -18
- package/cjs/model/layout-item.js.map +1 -1
- package/cjs/region/region.d.ts +1 -4
- package/cjs/region/region.js +16 -13
- package/cjs/region/region.js.map +1 -1
- package/cjs/scale/color-ordinal-scale.d.ts +8 -0
- package/cjs/scale/color-ordinal-scale.js +24 -0
- package/cjs/scale/color-ordinal-scale.js.map +1 -0
- package/cjs/scale/global-scale.js +2 -1
- package/cjs/scale/global-scale.js.map +1 -1
- package/cjs/series/area/area.d.ts +2 -0
- package/cjs/series/area/area.js +15 -9
- package/cjs/series/area/area.js.map +1 -1
- package/cjs/series/area/interface.d.ts +5 -5
- package/cjs/series/area/interface.js.map +1 -1
- package/cjs/series/bar/bar.d.ts +6 -0
- package/cjs/series/bar/bar.js +24 -8
- package/cjs/series/bar/bar.js.map +1 -1
- package/cjs/series/bar/interface.d.ts +5 -4
- package/cjs/series/bar/interface.js.map +1 -1
- package/cjs/series/base/base-series.d.ts +10 -11
- package/cjs/series/base/base-series.js +53 -31
- package/cjs/series/base/base-series.js.map +1 -1
- package/{esm/series/box-plot/boxPlot.d.ts → cjs/series/box-plot/box-plot.d.ts} +2 -0
- package/cjs/series/box-plot/{boxPlot.js → box-plot.js} +16 -6
- package/cjs/series/box-plot/box-plot.js.map +1 -0
- package/cjs/series/box-plot/interface.d.ts +3 -2
- package/cjs/series/box-plot/interface.js.map +1 -1
- package/cjs/series/box-plot/tooltip-helper.js.map +1 -1
- package/cjs/series/cartesian/cartesian.d.ts +1 -1
- package/cjs/series/circle-packing/circle-packing.d.ts +2 -0
- package/cjs/series/circle-packing/circle-packing.js +13 -8
- package/cjs/series/circle-packing/circle-packing.js.map +1 -1
- package/cjs/series/circle-packing/interface.d.ts +5 -4
- package/cjs/series/circle-packing/interface.js.map +1 -1
- package/cjs/series/dot/dot.d.ts +6 -8
- package/cjs/series/dot/dot.js +43 -17
- package/cjs/series/dot/dot.js.map +1 -1
- package/cjs/series/dot/interface.d.ts +10 -10
- package/cjs/series/dot/interface.js.map +1 -1
- package/cjs/series/funnel/funnel.d.ts +12 -2
- package/cjs/series/funnel/funnel.js +84 -23
- package/cjs/series/funnel/funnel.js.map +1 -1
- package/cjs/series/funnel/interface.d.ts +16 -15
- package/cjs/series/funnel/interface.js.map +1 -1
- package/cjs/series/gauge/gauge-pointer.d.ts +2 -0
- package/cjs/series/gauge/gauge-pointer.js +22 -6
- package/cjs/series/gauge/gauge-pointer.js.map +1 -1
- package/cjs/series/gauge/gauge.d.ts +3 -2
- package/cjs/series/gauge/gauge.js +26 -17
- package/cjs/series/gauge/gauge.js.map +1 -1
- package/cjs/series/gauge/interface.d.ts +12 -11
- package/cjs/series/gauge/interface.js.map +1 -1
- package/cjs/series/heatmap/heatmap.d.ts +3 -1
- package/cjs/series/heatmap/heatmap.js +18 -9
- package/cjs/series/heatmap/heatmap.js.map +1 -1
- package/cjs/series/heatmap/interface.d.ts +6 -5
- package/cjs/series/heatmap/interface.js.map +1 -1
- package/cjs/series/interface/common.d.ts +56 -1
- package/cjs/series/interface/common.js +24 -1
- package/cjs/series/interface/common.js.map +1 -1
- package/cjs/series/interface/series.d.ts +2 -1
- package/cjs/series/interface/series.js.map +1 -1
- package/cjs/series/line/line.d.ts +2 -0
- package/cjs/series/line/line.js +7 -5
- package/cjs/series/line/line.js.map +1 -1
- package/cjs/series/link/interface.d.ts +4 -4
- package/cjs/series/link/interface.js.map +1 -1
- package/cjs/series/link/link.d.ts +4 -7
- package/cjs/series/link/link.js +20 -14
- package/cjs/series/link/link.js.map +1 -1
- package/cjs/series/map/map.d.ts +2 -0
- package/cjs/series/map/map.js +13 -6
- package/cjs/series/map/map.js.map +1 -1
- package/cjs/series/mixin/line-mixin.d.ts +4 -3
- package/cjs/series/mixin/line-mixin.js +15 -7
- package/cjs/series/mixin/line-mixin.js.map +1 -1
- package/cjs/series/pie/interface.d.ts +7 -6
- package/cjs/series/pie/interface.js.map +1 -1
- package/cjs/series/pie/pie.d.ts +8 -3
- package/cjs/series/pie/pie.js +61 -33
- package/cjs/series/pie/pie.js.map +1 -1
- package/cjs/series/progress/circular/circular.d.ts +2 -0
- package/cjs/series/progress/circular/circular.js +16 -9
- package/cjs/series/progress/circular/circular.js.map +1 -1
- package/cjs/series/progress/circular/interface.d.ts +5 -4
- package/cjs/series/progress/circular/interface.js.map +1 -1
- package/cjs/series/progress/linear/interface.d.ts +6 -5
- package/cjs/series/progress/linear/interface.js.map +1 -1
- package/cjs/series/progress/linear/linear.d.ts +2 -0
- package/cjs/series/progress/linear/linear.js +31 -21
- package/cjs/series/progress/linear/linear.js.map +1 -1
- package/cjs/series/radar/interface.d.ts +5 -4
- package/cjs/series/radar/interface.js.map +1 -1
- package/cjs/series/radar/radar.d.ts +2 -0
- package/cjs/series/radar/radar.js +9 -4
- package/cjs/series/radar/radar.js.map +1 -1
- package/cjs/series/range-area/range-area.d.ts +2 -0
- package/cjs/series/range-area/range-area.js +4 -3
- package/cjs/series/range-area/range-area.js.map +1 -1
- package/cjs/series/range-column/interface.d.ts +9 -8
- package/cjs/series/range-column/interface.js.map +1 -1
- package/cjs/series/range-column/rangeColumn.d.ts +2 -0
- package/cjs/series/range-column/rangeColumn.js +28 -19
- package/cjs/series/range-column/rangeColumn.js.map +1 -1
- package/cjs/series/rose/interface.d.ts +3 -2
- package/cjs/series/rose/interface.js.map +1 -1
- package/cjs/series/rose/rose.d.ts +2 -0
- package/cjs/series/rose/rose.js +14 -13
- package/cjs/series/rose/rose.js.map +1 -1
- package/cjs/series/sankey/animation.js.map +1 -1
- package/cjs/series/sankey/interface.d.ts +7 -6
- package/cjs/series/sankey/interface.js.map +1 -1
- package/cjs/series/sankey/sankey.d.ts +2 -0
- package/cjs/series/sankey/sankey.js +25 -22
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/cjs/series/scatter/interface.d.ts +6 -5
- package/cjs/series/scatter/interface.js.map +1 -1
- package/cjs/series/scatter/scatter.d.ts +2 -0
- package/cjs/series/scatter/scatter.js +15 -10
- package/cjs/series/scatter/scatter.js.map +1 -1
- package/cjs/series/sunburst/interface.d.ts +5 -4
- package/cjs/series/sunburst/interface.js.map +1 -1
- package/cjs/series/sunburst/sunburst.d.ts +3 -1
- package/cjs/series/sunburst/sunburst.js +9 -4
- package/cjs/series/sunburst/sunburst.js.map +1 -1
- package/cjs/series/treemap/interface.d.ts +9 -8
- package/cjs/series/treemap/interface.js.map +1 -1
- package/cjs/series/treemap/treemap.d.ts +2 -0
- package/cjs/series/treemap/treemap.js +19 -6
- package/cjs/series/treemap/treemap.js.map +1 -1
- package/cjs/series/waterfall/interface.d.ts +6 -5
- package/cjs/series/waterfall/interface.js.map +1 -1
- package/cjs/series/waterfall/waterfall.d.ts +2 -0
- package/cjs/series/waterfall/waterfall.js +15 -5
- package/cjs/series/waterfall/waterfall.js.map +1 -1
- package/cjs/series/word-cloud/interface.d.ts +7 -6
- package/cjs/series/word-cloud/interface.js.map +1 -1
- package/cjs/series/word-cloud/word-cloud.d.ts +4 -3
- package/cjs/series/word-cloud/word-cloud.js +22 -11
- package/cjs/series/word-cloud/word-cloud.js.map +1 -1
- package/cjs/theme/buildin-theme/config.d.ts +1 -4
- package/cjs/theme/buildin-theme/config.js +2 -18
- package/cjs/theme/buildin-theme/config.js.map +1 -1
- package/cjs/theme/buildin-theme/dark.js.map +1 -1
- package/cjs/theme/buildin-theme/light/color-scheme.js +14 -1
- package/cjs/theme/buildin-theme/light/color-scheme.js.map +1 -1
- package/cjs/theme/buildin-theme/light/component/axis/band-axis.d.ts +2 -0
- package/cjs/theme/buildin-theme/light/component/axis/band-axis.js +22 -0
- package/cjs/theme/buildin-theme/light/component/axis/band-axis.js.map +1 -0
- package/cjs/theme/buildin-theme/light/component/{cartesian-axis.d.ts → axis/cartesian-axis.d.ts} +1 -1
- package/cjs/theme/buildin-theme/light/component/{cartesian-axis.js → axis/cartesian-axis.js} +7 -9
- package/cjs/theme/buildin-theme/light/component/axis/cartesian-axis.js.map +1 -0
- package/cjs/theme/buildin-theme/light/component/axis/common-axis.d.ts +2 -0
- package/cjs/theme/buildin-theme/light/component/{common-axis.js → axis/common-axis.js} +32 -14
- package/cjs/theme/buildin-theme/light/component/axis/common-axis.js.map +1 -0
- package/cjs/theme/buildin-theme/light/component/axis/linear-axis.d.ts +2 -0
- package/cjs/theme/buildin-theme/light/component/axis/linear-axis.js +22 -0
- package/cjs/theme/buildin-theme/light/component/axis/linear-axis.js.map +1 -0
- package/cjs/theme/buildin-theme/light/component/{polar-axis.d.ts → axis/polar-axis.d.ts} +1 -1
- package/cjs/theme/buildin-theme/light/component/axis/polar-axis.js +25 -0
- package/cjs/theme/buildin-theme/light/component/axis/polar-axis.js.map +1 -0
- package/cjs/theme/buildin-theme/light/component/crosshair.js +9 -5
- package/cjs/theme/buildin-theme/light/component/crosshair.js.map +1 -1
- package/cjs/theme/buildin-theme/light/component/index.d.ts +2 -0
- package/cjs/theme/buildin-theme/light/component/index.js +32 -0
- package/cjs/theme/buildin-theme/light/component/index.js.map +1 -0
- package/cjs/theme/buildin-theme/light/component/legend/color-legend.d.ts +2 -0
- package/cjs/theme/buildin-theme/light/component/{color-legend.js → legend/color-legend.js} +3 -3
- package/cjs/theme/buildin-theme/light/component/legend/color-legend.js.map +1 -0
- package/cjs/theme/buildin-theme/light/component/legend/continuous.d.ts +2 -0
- package/cjs/theme/buildin-theme/light/component/legend/continuous.js +60 -0
- package/cjs/theme/buildin-theme/light/component/legend/continuous.js.map +1 -0
- package/cjs/theme/buildin-theme/light/component/legend/discrete-legend.d.ts +2 -0
- package/cjs/theme/buildin-theme/light/component/{discrete-legend.js → legend/discrete-legend.js} +17 -6
- package/cjs/theme/buildin-theme/light/component/legend/discrete-legend.js.map +1 -0
- package/cjs/theme/buildin-theme/light/component/legend/size-legend.d.ts +2 -0
- package/cjs/theme/buildin-theme/light/component/{size-legend.js → legend/size-legend.js} +3 -3
- package/cjs/theme/buildin-theme/light/component/legend/size-legend.js.map +1 -0
- package/cjs/theme/buildin-theme/light/component/map-label.d.ts +2 -0
- package/cjs/{component/map-label/config.js → theme/buildin-theme/light/component/map-label.js} +8 -8
- package/cjs/theme/buildin-theme/light/component/map-label.js.map +1 -0
- package/cjs/theme/buildin-theme/light/component/player.js +20 -11
- package/cjs/theme/buildin-theme/light/component/player.js.map +1 -1
- package/cjs/theme/buildin-theme/light/component/title.js +19 -3
- package/cjs/theme/buildin-theme/light/component/title.js.map +1 -1
- package/cjs/theme/buildin-theme/light/component/tooltip.js +7 -3
- package/cjs/theme/buildin-theme/light/component/tooltip.js.map +1 -1
- package/cjs/theme/buildin-theme/light/constants.d.ts +2 -0
- package/cjs/theme/buildin-theme/light/constants.js +16 -0
- package/cjs/theme/buildin-theme/light/constants.js.map +1 -0
- package/cjs/theme/buildin-theme/light/index.js +5 -20
- package/cjs/theme/buildin-theme/light/index.js.map +1 -1
- package/cjs/theme/buildin-theme/light/mark.d.ts +3 -0
- package/cjs/theme/buildin-theme/light/mark.js +72 -0
- package/cjs/theme/buildin-theme/light/mark.js.map +1 -0
- package/cjs/theme/buildin-theme/light/series/area.js +2 -12
- package/cjs/theme/buildin-theme/light/series/area.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/bar.js +2 -2
- package/cjs/theme/buildin-theme/light/series/bar.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/bar3d.js +2 -2
- package/cjs/theme/buildin-theme/light/series/bar3d.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/box-plot.d.ts +2 -0
- package/cjs/theme/buildin-theme/light/series/box-plot.js +12 -0
- package/cjs/theme/buildin-theme/light/series/box-plot.js.map +1 -0
- package/cjs/theme/buildin-theme/light/series/circular-progress.js +11 -1
- package/cjs/theme/buildin-theme/light/series/circular-progress.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/funnel.js +8 -5
- package/cjs/theme/buildin-theme/light/series/funnel.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/funnel3d.js +9 -6
- package/cjs/theme/buildin-theme/light/series/funnel3d.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/gauge.js +6 -1
- package/cjs/theme/buildin-theme/light/series/gauge.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/index.js +5 -2
- package/cjs/theme/buildin-theme/light/series/index.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/line.js +2 -7
- package/cjs/theme/buildin-theme/light/series/line.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/linear-progress.js +5 -0
- package/cjs/theme/buildin-theme/light/series/linear-progress.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/map.js +8 -4
- package/cjs/theme/buildin-theme/light/series/map.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/pie.js +9 -2
- package/cjs/theme/buildin-theme/light/series/pie.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/pie3d.js +4 -3
- package/cjs/theme/buildin-theme/light/series/pie3d.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/radar.js +2 -12
- package/cjs/theme/buildin-theme/light/series/radar.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/rangeColumn.js +2 -2
- package/cjs/theme/buildin-theme/light/series/rangeColumn.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/rose.d.ts +2 -0
- package/cjs/theme/buildin-theme/light/series/rose.js +20 -0
- package/cjs/theme/buildin-theme/light/series/rose.js.map +1 -0
- package/cjs/theme/buildin-theme/light/series/sankey.d.ts +2 -0
- package/cjs/theme/buildin-theme/light/series/sankey.js +14 -0
- package/cjs/theme/buildin-theme/light/series/sankey.js.map +1 -0
- package/cjs/theme/buildin-theme/light/series/scatter.js +10 -4
- package/cjs/theme/buildin-theme/light/series/scatter.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/treemap.js +4 -4
- package/cjs/theme/buildin-theme/light/series/treemap.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/waterfall.js +3 -3
- package/cjs/theme/buildin-theme/light/series/waterfall.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/word-cloud3d.js +1 -1
- package/cjs/theme/buildin-theme/light/series/word-cloud3d.js.map +1 -1
- package/cjs/theme/color-scheme/interface.d.ts +16 -8
- package/cjs/theme/color-scheme/interface.js.map +1 -1
- package/cjs/theme/color-scheme/util.d.ts +6 -3
- package/cjs/theme/color-scheme/util.js +39 -10
- package/cjs/theme/color-scheme/util.js.map +1 -1
- package/cjs/theme/interface.d.ts +22 -38
- package/cjs/theme/interface.js.map +1 -1
- package/cjs/theme/theme-manager.d.ts +1 -0
- package/cjs/theme/theme-manager.js +5 -2
- package/cjs/theme/theme-manager.js.map +1 -1
- package/cjs/typings/spec/chart.d.ts +1 -1
- package/cjs/typings/spec/chart.js.map +1 -1
- package/cjs/typings/visual.d.ts +13 -12
- package/cjs/typings/visual.js.map +1 -1
- package/cjs/util/color.d.ts +0 -3
- package/cjs/util/color.js +2 -12
- package/cjs/util/color.js.map +1 -1
- package/cjs/util/scale.d.ts +12 -1
- package/cjs/util/scale.js +4 -2
- package/cjs/util/scale.js.map +1 -1
- package/cjs/vchart-all.js +4 -4
- package/cjs/vchart-all.js.map +1 -1
- package/esm/animation/utils.d.ts +2 -1
- package/esm/animation/utils.js.map +1 -1
- package/esm/chart/base-chart.js +3 -3
- package/esm/chart/base-chart.js.map +1 -1
- package/esm/chart/{boxplot/boxPlot.js → box-plot/box-plot.js} +1 -1
- package/esm/chart/box-plot/box-plot.js.map +1 -0
- package/{cjs/chart/boxplot → esm/chart/box-plot}/index.d.ts +1 -1
- package/esm/chart/{boxplot → box-plot}/index.js +1 -1
- package/esm/chart/box-plot/index.js.map +1 -0
- package/esm/chart/box-plot/interface.js.map +1 -0
- package/esm/chart/index.d.ts +3 -1
- package/esm/chart/index.js +5 -1
- package/esm/chart/index.js.map +1 -1
- package/esm/chart/treemap/treemap.js.map +1 -1
- package/esm/compile/compilable-base.js +1 -1
- package/esm/compile/compiler.d.ts +2 -2
- package/esm/compile/compiler.js +24 -25
- package/esm/compile/compiler.js.map +1 -1
- package/esm/compile/grammar-item.js +1 -1
- package/esm/compile/mark/interface.js.map +1 -1
- package/esm/compile/util.js +1 -1
- package/esm/component/axis/base-axis.d.ts +70 -1
- package/esm/component/axis/base-axis.js +98 -4
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/axis/cartesian/axis.d.ts +0 -1
- package/esm/component/axis/cartesian/axis.js +4 -7
- package/esm/component/axis/cartesian/axis.js.map +1 -1
- package/esm/component/axis/polar/axis.d.ts +0 -1
- package/esm/component/axis/polar/axis.js +4 -7
- package/esm/component/axis/polar/axis.js.map +1 -1
- package/esm/component/axis/utils.d.ts +13 -70
- package/esm/component/axis/utils.js +12 -99
- package/esm/component/axis/utils.js.map +1 -1
- package/esm/component/base/base-component.d.ts +0 -5
- package/esm/component/base/base-component.js +7 -20
- package/esm/component/base/base-component.js.map +1 -1
- package/esm/component/base/util.d.ts +1 -1
- package/esm/component/base/util.js +18 -9
- package/esm/component/base/util.js.map +1 -1
- package/esm/component/crosshair/base.d.ts +0 -1
- package/esm/component/crosshair/base.js +1 -4
- package/esm/component/crosshair/base.js.map +1 -1
- package/esm/component/custom-mark/custom-mark.js +4 -1
- package/esm/component/custom-mark/custom-mark.js.map +1 -1
- package/esm/component/data-zoom/data-filter-base-component.d.ts +1 -1
- package/esm/component/data-zoom/data-filter-base-component.js +2 -2
- package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/esm/component/index.js +1 -1
- package/esm/component/interface/index.d.ts +1 -0
- package/esm/component/interface/index.js +2 -0
- package/esm/component/interface/index.js.map +1 -1
- package/esm/component/interface/theme.d.ts +38 -0
- package/esm/component/interface/theme.js +2 -0
- package/esm/component/interface/theme.js.map +1 -0
- package/esm/component/label/label.d.ts +0 -1
- package/esm/component/label/label.js +12 -6
- package/esm/component/label/label.js.map +1 -1
- package/esm/component/legend/base-legend.js +5 -2
- package/esm/component/legend/base-legend.js.map +1 -1
- package/esm/component/legend/continuous/legend.d.ts +1 -1
- package/esm/component/legend/continuous/legend.js +2 -2
- package/esm/component/legend/continuous/legend.js.map +1 -1
- package/esm/component/legend/discrete/legend.d.ts +1 -1
- package/esm/component/legend/discrete/legend.js +2 -2
- package/esm/component/legend/discrete/legend.js.map +1 -1
- package/esm/component/legend/util.d.ts +4 -4
- package/esm/component/map-label/component.js +1 -5
- package/esm/component/map-label/component.js.map +1 -1
- package/esm/component/map-label/interface.d.ts +6 -4
- package/esm/component/map-label/interface.js.map +1 -1
- package/esm/component/marker/utils.js +14 -9
- package/esm/component/marker/utils.js.map +1 -1
- package/esm/component/player/interface/theme.d.ts +2 -1
- package/esm/component/player/interface/theme.js.map +1 -1
- package/esm/component/player/player.d.ts +0 -1
- package/esm/component/player/player.js +0 -3
- package/esm/component/player/player.js.map +1 -1
- package/esm/component/player/utils/transform.js.map +1 -1
- package/esm/component/title/interface/theme.d.ts +4 -2
- package/esm/component/title/interface/theme.js.map +1 -1
- package/esm/component/title/title.d.ts +1 -1
- package/esm/component/title/title.js +3 -6
- package/esm/component/title/title.js.map +1 -1
- package/esm/component/tooltip/handler/base.d.ts +5 -3
- package/esm/component/tooltip/handler/base.js +9 -8
- package/esm/component/tooltip/handler/base.js.map +1 -1
- package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.d.ts +4 -5
- package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.js +6 -6
- package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.js.map +1 -1
- package/esm/component/tooltip/handler/dom/dom-tooltip-handler.d.ts +2 -4
- package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js +2 -3
- package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
- package/esm/component/tooltip/handler/dom/model/base-tooltip-model.d.ts +1 -1
- package/esm/component/tooltip/tooltip.js +1 -1
- package/esm/component/tooltip/tooltip.js.map +1 -1
- package/esm/constant/box-plot.js +1 -2
- package/esm/constant/label.js +2 -1
- package/esm/core/factory.d.ts +1 -0
- package/esm/core/factory.js +3 -0
- package/esm/core/factory.js.map +1 -1
- package/esm/core/instance-manager.d.ts +9 -0
- package/esm/core/instance-manager.js +20 -0
- package/esm/core/instance-manager.js.map +1 -0
- package/esm/core/interface.js +1 -2
- package/esm/core/vchart.d.ts +2 -6
- package/esm/core/vchart.js +10 -22
- package/esm/core/vchart.js.map +1 -1
- package/esm/event/event.js +2 -1
- package/esm/index.d.ts +1 -1
- package/esm/index.js +1 -1
- package/esm/index.js.map +1 -1
- package/esm/mark/arc.d.ts +1 -1
- package/esm/mark/arc.js +3 -2
- package/esm/mark/arc.js.map +1 -1
- package/esm/mark/area.d.ts +3 -2
- package/esm/mark/area.js +7 -3
- package/esm/mark/area.js.map +1 -1
- package/esm/mark/base/base-mark.js +4 -3
- package/esm/mark/base/base-mark.js.map +1 -1
- package/esm/mark/base/index.d.ts +1 -2
- package/esm/mark/base/index.js +1 -3
- package/esm/mark/base/index.js.map +1 -1
- package/{cjs/mark/boxPlot.d.ts → esm/mark/box-plot.d.ts} +1 -1
- package/esm/mark/{boxPlot.js → box-plot.js} +2 -2
- package/esm/mark/box-plot.js.map +1 -0
- package/esm/mark/component.d.ts +1 -1
- package/esm/mark/component.js +1 -1
- package/esm/mark/component.js.map +1 -1
- package/esm/mark/line.d.ts +1 -1
- package/esm/mark/line.js +1 -1
- package/esm/mark/line.js.map +1 -1
- package/esm/mark/linkPath.d.ts +1 -1
- package/esm/mark/linkPath.js +3 -2
- package/esm/mark/linkPath.js.map +1 -1
- package/esm/mark/mark-set/index.d.ts +6 -5
- package/esm/mark/mark-set/index.js +16 -13
- package/esm/mark/mark-set/index.js.map +1 -1
- package/esm/mark/path.d.ts +1 -1
- package/esm/mark/path.js +1 -1
- package/esm/mark/path.js.map +1 -1
- package/esm/mark/polygon.d.ts +1 -1
- package/esm/mark/polygon.js +2 -2
- package/esm/mark/polygon.js.map +1 -1
- package/esm/mark/progress-arc.js +1 -1
- package/esm/mark/rect.d.ts +1 -1
- package/esm/mark/rect.js +4 -3
- package/esm/mark/rect.js.map +1 -1
- package/esm/mark/rule.d.ts +1 -1
- package/esm/mark/rule.js +2 -2
- package/esm/mark/rule.js.map +1 -1
- package/esm/mark/symbol.d.ts +1 -1
- package/esm/mark/symbol.js +4 -3
- package/esm/mark/symbol.js.map +1 -1
- package/esm/mark/text.d.ts +1 -1
- package/esm/mark/text.js +4 -3
- package/esm/mark/text.js.map +1 -1
- package/esm/model/base-model.d.ts +12 -5
- package/esm/model/base-model.js +50 -29
- package/esm/model/base-model.js.map +1 -1
- package/esm/model/interface.d.ts +8 -2
- package/esm/model/interface.js.map +1 -1
- package/esm/model/layout-item.js +19 -17
- package/esm/model/layout-item.js.map +1 -1
- package/esm/region/region.d.ts +1 -4
- package/esm/region/region.js +15 -13
- package/esm/region/region.js.map +1 -1
- package/esm/scale/color-ordinal-scale.d.ts +8 -0
- package/esm/scale/color-ordinal-scale.js +18 -0
- package/esm/scale/color-ordinal-scale.js.map +1 -0
- package/esm/scale/global-scale.js +3 -2
- package/esm/scale/global-scale.js.map +1 -1
- package/esm/series/area/area.d.ts +2 -0
- package/esm/series/area/area.js +15 -6
- package/esm/series/area/area.js.map +1 -1
- package/esm/series/area/interface.d.ts +5 -5
- package/esm/series/area/interface.js.map +1 -1
- package/esm/series/bar/bar.d.ts +6 -0
- package/esm/series/bar/bar.js +25 -7
- package/esm/series/bar/bar.js.map +1 -1
- package/esm/series/bar/interface.d.ts +5 -4
- package/esm/series/bar/interface.js.map +1 -1
- package/esm/series/base/base-series.d.ts +10 -11
- package/esm/series/base/base-series.js +59 -30
- package/esm/series/base/base-series.js.map +1 -1
- package/{cjs/series/box-plot/boxPlot.d.ts → esm/series/box-plot/box-plot.d.ts} +2 -0
- package/esm/series/box-plot/{boxPlot.js → box-plot.js} +17 -6
- package/esm/series/box-plot/box-plot.js.map +1 -0
- package/esm/series/box-plot/interface.d.ts +3 -2
- package/esm/series/box-plot/interface.js.map +1 -1
- package/esm/series/box-plot/tooltip-helper.js.map +1 -1
- package/esm/series/cartesian/cartesian.d.ts +1 -1
- package/esm/series/circle-packing/circle-packing.d.ts +2 -0
- package/esm/series/circle-packing/circle-packing.js +12 -3
- package/esm/series/circle-packing/circle-packing.js.map +1 -1
- package/esm/series/circle-packing/interface.d.ts +5 -4
- package/esm/series/circle-packing/interface.js.map +1 -1
- package/esm/series/dot/dot.d.ts +6 -8
- package/esm/series/dot/dot.js +47 -16
- package/esm/series/dot/dot.js.map +1 -1
- package/esm/series/dot/interface.d.ts +10 -10
- package/esm/series/dot/interface.js.map +1 -1
- package/esm/series/funnel/funnel.d.ts +12 -2
- package/esm/series/funnel/funnel.js +81 -22
- package/esm/series/funnel/funnel.js.map +1 -1
- package/esm/series/funnel/interface.d.ts +16 -15
- package/esm/series/funnel/interface.js.map +1 -1
- package/esm/series/gauge/gauge-pointer.d.ts +2 -0
- package/esm/series/gauge/gauge-pointer.js +23 -6
- package/esm/series/gauge/gauge-pointer.js.map +1 -1
- package/esm/series/gauge/gauge.d.ts +3 -2
- package/esm/series/gauge/gauge.js +32 -18
- package/esm/series/gauge/gauge.js.map +1 -1
- package/esm/series/gauge/interface.d.ts +12 -11
- package/esm/series/gauge/interface.js.map +1 -1
- package/esm/series/heatmap/heatmap.d.ts +3 -1
- package/esm/series/heatmap/heatmap.js +19 -9
- package/esm/series/heatmap/heatmap.js.map +1 -1
- package/esm/series/heatmap/interface.d.ts +6 -5
- package/esm/series/heatmap/interface.js.map +1 -1
- package/esm/series/interface/common.d.ts +56 -1
- package/esm/series/interface/common.js +24 -1
- package/esm/series/interface/common.js.map +1 -1
- package/esm/series/interface/series.d.ts +2 -1
- package/esm/series/interface/series.js.map +1 -1
- package/esm/series/line/line.d.ts +2 -0
- package/esm/series/line/line.js +9 -4
- package/esm/series/line/line.js.map +1 -1
- package/esm/series/link/interface.d.ts +4 -4
- package/esm/series/link/interface.js.map +1 -1
- package/esm/series/link/link.d.ts +4 -7
- package/esm/series/link/link.js +22 -15
- package/esm/series/link/link.js.map +1 -1
- package/esm/series/map/map.d.ts +2 -0
- package/esm/series/map/map.js +13 -6
- package/esm/series/map/map.js.map +1 -1
- package/esm/series/mixin/line-mixin.d.ts +4 -3
- package/esm/series/mixin/line-mixin.js +16 -4
- package/esm/series/mixin/line-mixin.js.map +1 -1
- package/esm/series/pie/interface.d.ts +7 -6
- package/esm/series/pie/interface.js.map +1 -1
- package/esm/series/pie/pie.d.ts +8 -3
- package/esm/series/pie/pie.js +60 -28
- package/esm/series/pie/pie.js.map +1 -1
- package/esm/series/progress/circular/circular.d.ts +2 -0
- package/esm/series/progress/circular/circular.js +16 -6
- package/esm/series/progress/circular/circular.js.map +1 -1
- package/esm/series/progress/circular/interface.d.ts +5 -4
- package/esm/series/progress/circular/interface.js.map +1 -1
- package/esm/series/progress/linear/interface.d.ts +6 -5
- package/esm/series/progress/linear/interface.js.map +1 -1
- package/esm/series/progress/linear/linear.d.ts +2 -0
- package/esm/series/progress/linear/linear.js +31 -20
- package/esm/series/progress/linear/linear.js.map +1 -1
- package/esm/series/radar/interface.d.ts +5 -4
- package/esm/series/radar/interface.js.map +1 -1
- package/esm/series/radar/radar.d.ts +2 -0
- package/esm/series/radar/radar.js +12 -5
- package/esm/series/radar/radar.js.map +1 -1
- package/esm/series/range-area/range-area.d.ts +2 -0
- package/esm/series/range-area/range-area.js +2 -4
- package/esm/series/range-area/range-area.js.map +1 -1
- package/esm/series/range-column/interface.d.ts +9 -8
- package/esm/series/range-column/interface.js.map +1 -1
- package/esm/series/range-column/rangeColumn.d.ts +2 -0
- package/esm/series/range-column/rangeColumn.js +28 -20
- package/esm/series/range-column/rangeColumn.js.map +1 -1
- package/esm/series/rose/interface.d.ts +3 -2
- package/esm/series/rose/interface.js.map +1 -1
- package/esm/series/rose/rose.d.ts +2 -0
- package/esm/series/rose/rose.js +16 -14
- package/esm/series/rose/rose.js.map +1 -1
- package/esm/series/sankey/animation.js.map +1 -1
- package/esm/series/sankey/interface.d.ts +7 -6
- package/esm/series/sankey/interface.js.map +1 -1
- package/esm/series/sankey/sankey.d.ts +2 -0
- package/esm/series/sankey/sankey.js +26 -23
- package/esm/series/sankey/sankey.js.map +1 -1
- package/esm/series/scatter/interface.d.ts +6 -5
- package/esm/series/scatter/interface.js.map +1 -1
- package/esm/series/scatter/scatter.d.ts +2 -0
- package/esm/series/scatter/scatter.js +15 -9
- package/esm/series/scatter/scatter.js.map +1 -1
- package/esm/series/sunburst/interface.d.ts +5 -4
- package/esm/series/sunburst/interface.js.map +1 -1
- package/esm/series/sunburst/sunburst.d.ts +3 -1
- package/esm/series/sunburst/sunburst.js +11 -4
- package/esm/series/sunburst/sunburst.js.map +1 -1
- package/esm/series/treemap/interface.d.ts +9 -8
- package/esm/series/treemap/interface.js.map +1 -1
- package/esm/series/treemap/treemap.d.ts +2 -0
- package/esm/series/treemap/treemap.js +21 -6
- package/esm/series/treemap/treemap.js.map +1 -1
- package/esm/series/waterfall/interface.d.ts +6 -5
- package/esm/series/waterfall/interface.js.map +1 -1
- package/esm/series/waterfall/waterfall.d.ts +2 -0
- package/esm/series/waterfall/waterfall.js +15 -6
- package/esm/series/waterfall/waterfall.js.map +1 -1
- package/esm/series/word-cloud/interface.d.ts +7 -6
- package/esm/series/word-cloud/interface.js.map +1 -1
- package/esm/series/word-cloud/word-cloud.d.ts +4 -3
- package/esm/series/word-cloud/word-cloud.js +24 -11
- package/esm/series/word-cloud/word-cloud.js.map +1 -1
- package/esm/theme/buildin-theme/config.d.ts +1 -4
- package/esm/theme/buildin-theme/config.js +1 -21
- package/esm/theme/buildin-theme/config.js.map +1 -1
- package/esm/theme/buildin-theme/dark.js.map +1 -1
- package/esm/theme/buildin-theme/light/color-scheme.js +14 -1
- package/esm/theme/buildin-theme/light/color-scheme.js.map +1 -1
- package/esm/theme/buildin-theme/light/component/axis/band-axis.d.ts +2 -0
- package/esm/theme/buildin-theme/light/component/axis/band-axis.js +18 -0
- package/esm/theme/buildin-theme/light/component/axis/band-axis.js.map +1 -0
- package/esm/theme/buildin-theme/light/component/{cartesian-axis.d.ts → axis/cartesian-axis.d.ts} +1 -1
- package/esm/theme/buildin-theme/light/component/{cartesian-axis.js → axis/cartesian-axis.js} +7 -9
- package/esm/theme/buildin-theme/light/component/axis/cartesian-axis.js.map +1 -0
- package/esm/theme/buildin-theme/light/component/axis/common-axis.d.ts +2 -0
- package/esm/theme/buildin-theme/light/component/{common-axis.js → axis/common-axis.js} +32 -14
- package/esm/theme/buildin-theme/light/component/axis/common-axis.js.map +1 -0
- package/esm/theme/buildin-theme/light/component/axis/linear-axis.d.ts +2 -0
- package/esm/theme/buildin-theme/light/component/axis/linear-axis.js +18 -0
- package/esm/theme/buildin-theme/light/component/axis/linear-axis.js.map +1 -0
- package/esm/theme/buildin-theme/light/component/{polar-axis.d.ts → axis/polar-axis.d.ts} +1 -1
- package/esm/theme/buildin-theme/light/component/{polar-axis.js → axis/polar-axis.js} +11 -3
- package/esm/theme/buildin-theme/light/component/axis/polar-axis.js.map +1 -0
- package/esm/theme/buildin-theme/light/component/crosshair.js +8 -4
- package/esm/theme/buildin-theme/light/component/crosshair.js.map +1 -1
- package/esm/theme/buildin-theme/light/component/index.d.ts +2 -0
- package/esm/theme/buildin-theme/light/component/index.js +62 -0
- package/esm/theme/buildin-theme/light/component/index.js.map +1 -0
- package/esm/theme/buildin-theme/light/component/legend/color-legend.d.ts +2 -0
- package/esm/theme/buildin-theme/light/component/{color-legend.js → legend/color-legend.js} +1 -1
- package/esm/theme/buildin-theme/light/component/legend/color-legend.js.map +1 -0
- package/esm/theme/buildin-theme/light/component/legend/continuous.d.ts +2 -0
- package/esm/theme/buildin-theme/light/component/legend/continuous.js +54 -0
- package/esm/theme/buildin-theme/light/component/legend/continuous.js.map +1 -0
- package/esm/theme/buildin-theme/light/component/legend/discrete-legend.d.ts +2 -0
- package/esm/theme/buildin-theme/light/component/{discrete-legend.js → legend/discrete-legend.js} +14 -5
- package/esm/theme/buildin-theme/light/component/legend/discrete-legend.js.map +1 -0
- package/esm/theme/buildin-theme/light/component/legend/size-legend.d.ts +2 -0
- package/esm/theme/buildin-theme/light/component/{size-legend.js → legend/size-legend.js} +1 -1
- package/esm/theme/buildin-theme/light/component/legend/size-legend.js.map +1 -0
- package/esm/theme/buildin-theme/light/component/map-label.d.ts +2 -0
- package/esm/{component/map-label/config.js → theme/buildin-theme/light/component/map-label.js} +5 -3
- package/esm/theme/buildin-theme/light/component/map-label.js.map +1 -0
- package/esm/theme/buildin-theme/light/component/player.js +20 -11
- package/esm/theme/buildin-theme/light/component/player.js.map +1 -1
- package/esm/theme/buildin-theme/light/component/title.js +16 -2
- package/esm/theme/buildin-theme/light/component/title.js.map +1 -1
- package/esm/theme/buildin-theme/light/component/tooltip.js +6 -2
- package/esm/theme/buildin-theme/light/component/tooltip.js.map +1 -1
- package/esm/theme/buildin-theme/light/constants.d.ts +2 -0
- package/esm/theme/buildin-theme/light/constants.js +10 -0
- package/esm/theme/buildin-theme/light/constants.js.map +1 -0
- package/esm/theme/buildin-theme/light/index.js +7 -50
- package/esm/theme/buildin-theme/light/index.js.map +1 -1
- package/esm/theme/buildin-theme/light/mark.d.ts +3 -0
- package/esm/theme/buildin-theme/light/mark.js +68 -0
- package/esm/theme/buildin-theme/light/mark.js.map +1 -0
- package/esm/theme/buildin-theme/light/series/area.js +2 -12
- package/esm/theme/buildin-theme/light/series/area.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/bar.js +2 -2
- package/esm/theme/buildin-theme/light/series/bar.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/bar3d.js +2 -2
- package/esm/theme/buildin-theme/light/series/bar3d.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/box-plot.d.ts +2 -0
- package/esm/theme/buildin-theme/light/series/box-plot.js +8 -0
- package/esm/theme/buildin-theme/light/series/box-plot.js.map +1 -0
- package/esm/theme/buildin-theme/light/series/circular-progress.js +11 -1
- package/esm/theme/buildin-theme/light/series/circular-progress.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/funnel.js +7 -2
- package/esm/theme/buildin-theme/light/series/funnel.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/funnel3d.js +8 -3
- package/esm/theme/buildin-theme/light/series/funnel3d.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/gauge.js +6 -1
- package/esm/theme/buildin-theme/light/series/gauge.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/index.js +10 -1
- package/esm/theme/buildin-theme/light/series/index.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/line.js +2 -7
- package/esm/theme/buildin-theme/light/series/line.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/linear-progress.js +5 -0
- package/esm/theme/buildin-theme/light/series/linear-progress.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/map.js +8 -4
- package/esm/theme/buildin-theme/light/series/map.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/pie.js +9 -2
- package/esm/theme/buildin-theme/light/series/pie.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/pie3d.js +4 -3
- package/esm/theme/buildin-theme/light/series/pie3d.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/radar.js +2 -12
- package/esm/theme/buildin-theme/light/series/radar.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/rangeColumn.js +2 -2
- package/esm/theme/buildin-theme/light/series/rangeColumn.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/rose.d.ts +2 -0
- package/esm/theme/buildin-theme/light/series/rose.js +16 -0
- package/esm/theme/buildin-theme/light/series/rose.js.map +1 -0
- package/esm/theme/buildin-theme/light/series/sankey.d.ts +2 -0
- package/esm/theme/buildin-theme/light/series/sankey.js +10 -0
- package/esm/theme/buildin-theme/light/series/sankey.js.map +1 -0
- package/esm/theme/buildin-theme/light/series/scatter.js +10 -4
- package/esm/theme/buildin-theme/light/series/scatter.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/treemap.js +3 -1
- package/esm/theme/buildin-theme/light/series/treemap.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/waterfall.js +3 -1
- package/esm/theme/buildin-theme/light/series/waterfall.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/word-cloud3d.js +1 -1
- package/esm/theme/buildin-theme/light/series/word-cloud3d.js.map +1 -1
- package/esm/theme/color-scheme/interface.d.ts +16 -8
- package/esm/theme/color-scheme/interface.js.map +1 -1
- package/esm/theme/color-scheme/util.d.ts +6 -3
- package/esm/theme/color-scheme/util.js +31 -7
- package/esm/theme/color-scheme/util.js.map +1 -1
- package/esm/theme/interface.d.ts +22 -38
- package/esm/theme/interface.js.map +1 -1
- package/esm/theme/theme-manager.d.ts +1 -0
- package/esm/theme/theme-manager.js +6 -1
- package/esm/theme/theme-manager.js.map +1 -1
- package/esm/typings/spec/chart.d.ts +1 -1
- package/esm/typings/spec/chart.js.map +1 -1
- package/esm/typings/visual.d.ts +13 -12
- package/esm/typings/visual.js.map +1 -1
- package/esm/util/color.d.ts +0 -3
- package/esm/util/color.js +0 -10
- package/esm/util/color.js.map +1 -1
- package/esm/util/scale.d.ts +12 -1
- package/esm/util/scale.js +6 -2
- package/esm/util/scale.js.map +1 -1
- package/esm/vchart-all.js +5 -5
- package/esm/vchart-all.js.map +1 -1
- package/package.json +1 -1
- package/cjs/chart/boxplot/boxPlot.js.map +0 -1
- package/cjs/chart/boxplot/index.js.map +0 -1
- package/cjs/chart/boxplot/interface.js.map +0 -1
- package/cjs/component/map-label/config.d.ts +0 -2
- package/cjs/component/map-label/config.js.map +0 -1
- package/cjs/mark/boxPlot.js.map +0 -1
- package/cjs/series/box-plot/boxPlot.js.map +0 -1
- package/cjs/theme/buildin-theme/light/component/cartesian-axis.js.map +0 -1
- package/cjs/theme/buildin-theme/light/component/color-legend.d.ts +0 -2
- package/cjs/theme/buildin-theme/light/component/color-legend.js.map +0 -1
- package/cjs/theme/buildin-theme/light/component/common-axis.d.ts +0 -2
- package/cjs/theme/buildin-theme/light/component/common-axis.js.map +0 -1
- package/cjs/theme/buildin-theme/light/component/discrete-legend.d.ts +0 -2
- package/cjs/theme/buildin-theme/light/component/discrete-legend.js.map +0 -1
- package/cjs/theme/buildin-theme/light/component/polar-axis.js +0 -19
- package/cjs/theme/buildin-theme/light/component/polar-axis.js.map +0 -1
- package/cjs/theme/buildin-theme/light/component/size-legend.d.ts +0 -2
- package/cjs/theme/buildin-theme/light/component/size-legend.js.map +0 -1
- package/esm/chart/boxplot/boxPlot.js.map +0 -1
- package/esm/chart/boxplot/index.js.map +0 -1
- package/esm/chart/boxplot/interface.js.map +0 -1
- package/esm/component/map-label/config.d.ts +0 -2
- package/esm/component/map-label/config.js.map +0 -1
- package/esm/series/box-plot/boxPlot.js.map +0 -1
- package/esm/theme/buildin-theme/light/component/cartesian-axis.js.map +0 -1
- package/esm/theme/buildin-theme/light/component/color-legend.d.ts +0 -2
- package/esm/theme/buildin-theme/light/component/color-legend.js.map +0 -1
- package/esm/theme/buildin-theme/light/component/common-axis.d.ts +0 -2
- package/esm/theme/buildin-theme/light/component/common-axis.js.map +0 -1
- package/esm/theme/buildin-theme/light/component/discrete-legend.d.ts +0 -2
- package/esm/theme/buildin-theme/light/component/discrete-legend.js.map +0 -1
- package/esm/theme/buildin-theme/light/component/polar-axis.js.map +0 -1
- package/esm/theme/buildin-theme/light/component/size-legend.d.ts +0 -2
- package/esm/theme/buildin-theme/light/component/size-legend.js.map +0 -1
- /package/cjs/chart/{boxplot/boxPlot.d.ts → box-plot/box-plot.d.ts} +0 -0
- /package/cjs/chart/{boxplot → box-plot}/interface.d.ts +0 -0
- /package/cjs/chart/{boxplot → box-plot}/interface.js +0 -0
- /package/esm/chart/{boxplot/boxPlot.d.ts → box-plot/box-plot.d.ts} +0 -0
- /package/esm/chart/{boxplot → box-plot}/interface.d.ts +0 -0
- /package/esm/chart/{boxplot → box-plot}/interface.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/series/mixin/line-mixin.ts"],"names":[],"mappings":"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","file":"line-mixin.js","sourcesContent":["import type { ITrigger } from '../../interaction/interface';\nimport type { ISeries } from '../interface/series';\nimport { AttributeLevel } from '../../constant';\n\nimport type { IMark, IMarkProgressiveConfig, MarkType } from '../../mark/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from '../../mark/interface';\nimport type { ILineMark } from '../../mark/line';\nimport type { ISymbolMark } from '../../mark/symbol';\nimport type { ITextMark } from '../../mark/text';\nimport type {\n DirectionType,\n IInvalidType,\n InterpolateType,\n ILineMarkSpec,\n ISymbolMarkSpec,\n Maybe,\n Datum,\n IMarkTheme\n} from '../../typings';\nimport { DEFAULT_SMOOTH_INTERPOLATE } from '../../typings/interpolate';\nimport { Direction } from '../../typings/space';\n// eslint-disable-next-line no-duplicate-imports\nimport { DEFAULT_CLOSE_STROKE_JOIN, DEFAULT_LINEAR_CLOSED_INTERPOLATE } from '../../typings';\n// eslint-disable-next-line no-duplicate-imports\nimport { couldBeValidNumber, isValid, merge } from '../../util';\nimport type { ISeriesMarkInitOption, ISeriesTooltipHelper } from '../interface';\nimport type { ILabelSpec } from '../../component/label';\nimport { shouldDoMorph, userAnimationConfig } from '../../animation/utils';\n\nexport interface ILineLikeSeriesTheme {\n line?: Partial<IMarkTheme<ILineMarkSpec>>;\n point?: Partial<IMarkTheme<ISymbolMarkSpec>>;\n label?: Partial<ILabelSpec>;\n}\n\nexport interface LineLikeSeriesMixin extends ISeries {\n _spec: any;\n _seriesField: string;\n _theme: Maybe<ILineLikeSeriesTheme>;\n _trigger: ITrigger;\n _tooltipHelper: ISeriesTooltipHelper;\n _invalidType: IInvalidType;\n\n _lineMark: ILineMark;\n _symbolMark: ISymbolMark;\n _labelMark: ITextMark;\n\n _createMark: (type: MarkType, name: string, option?: ISeriesMarkInitOption) => IMark;\n}\n\nexport class LineLikeSeriesMixin {\n setSeriesField(field: string): void {\n if (isValid(field)) {\n this._seriesField = field;\n this.getMarksInType([MarkTypeEnum.line, MarkTypeEnum.area]).forEach(m => {\n m.setFacet(this._seriesField);\n });\n }\n }\n\n initLineMark(progressive?: IMarkProgressiveConfig, isSeriesMark?: boolean) {\n this._lineMark = this._createMark(MarkTypeEnum.line, 'line', {\n defaultMorphElementKey: this.getDimensionField()[0],\n groupKey: this._seriesField,\n isSeriesMark: isSeriesMark ?? true,\n progressive\n }) as ILineMark;\n return this._lineMark;\n }\n\n initLineMarkStyle(direction?: DirectionType, areaCurveType?: InterpolateType) {\n const lineMark = this._lineMark;\n if (lineMark) {\n this.setMarkStyle(\n lineMark,\n {\n stroke: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n if (this.coordinate === 'polar') {\n // 极坐标系下需要关闭\n this.setMarkStyle(\n lineMark,\n {\n lineJoin: DEFAULT_CLOSE_STROKE_JOIN,\n curveType: DEFAULT_LINEAR_CLOSED_INTERPOLATE\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n const userCurveType = areaCurveType ?? this.getSpec().line?.style?.curveType;\n const curveType =\n userCurveType === DEFAULT_SMOOTH_INTERPOLATE\n ? direction === Direction.vertical\n ? 'monotoneX'\n : 'monotoneY'\n : userCurveType;\n\n this.setMarkStyle(\n lineMark,\n {\n curveType\n },\n 'normal',\n AttributeLevel.Built_In\n );\n }\n if (this._invalidType) {\n this.setMarkStyle(\n lineMark,\n {\n defined: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n lineMark,\n {\n x: this.dataToPositionX.bind(this),\n y: this.dataToPositionY.bind(this),\n z: this.dataToPositionZ.bind(this)\n },\n 'normal',\n AttributeLevel.Series\n );\n this._trigger.registerMark(lineMark);\n this._tooltipHelper?.activeTriggerSet.dimension.add(lineMark);\n }\n return lineMark;\n }\n\n initSymbolMark(progressive?: IMarkProgressiveConfig) {\n this._symbolMark = this._createMark(MarkTypeEnum.symbol, 'point', {\n morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig('point', this._spec)),\n defaultMorphElementKey: this.getDimensionField()[0],\n groupKey: this._seriesField,\n label: merge({ animation: this._spec.animation }, this._spec.label),\n progressive\n }) as ISymbolMark;\n return this._symbolMark;\n }\n\n initSymbolMarkStyle() {\n const symbolMark = this._symbolMark;\n if (symbolMark) {\n this.setMarkStyle(\n symbolMark,\n {\n fill: this.getColorAttribute(),\n fillOpacity: 1\n },\n 'normal',\n AttributeLevel.Series\n );\n\n if (this._invalidType) {\n this.setMarkStyle(\n symbolMark,\n {\n visible: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n } else if (this._invalidType === 'link') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n symbolMark,\n {\n x: this.dataToPositionX.bind(this),\n y: this.dataToPositionY.bind(this),\n z: this.dataToPositionZ.bind(this)\n },\n 'normal',\n AttributeLevel.Series\n );\n this._trigger.registerMark(symbolMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(symbolMark);\n }\n return symbolMark;\n }\n\n initLabelMarkStyle(labelMark?: ITextMark) {\n if (!labelMark) {\n return;\n }\n this.setMarkStyle(labelMark, {\n fill: this.getColorAttribute(),\n text: (datum: Datum) => {\n return datum[this.getStackValueField()];\n },\n z: this.dataToPositionZ.bind(this)\n });\n if (this._invalidType) {\n this.setMarkStyle(\n labelMark,\n {\n visible: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n } else if (this._invalidType === 'link') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/series/mixin/line-mixin.ts"],"names":[],"mappings":"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","file":"line-mixin.js","sourcesContent":["import type { ITrigger } from '../../interaction/interface';\nimport type { ISeries } from '../interface/series';\nimport { AttributeLevel } from '../../constant';\n\nimport type { IMark, IMarkProgressiveConfig } from '../../mark/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from '../../mark/interface';\nimport type { ILineMark } from '../../mark/line';\nimport type { ISymbolMark } from '../../mark/symbol';\nimport type { ITextMark } from '../../mark/text';\nimport type {\n DirectionType,\n IInvalidType,\n InterpolateType,\n ILineMarkSpec,\n ISymbolMarkSpec,\n Maybe,\n Datum,\n IMarkTheme\n} from '../../typings';\nimport { DEFAULT_SMOOTH_INTERPOLATE } from '../../typings/interpolate';\nimport { Direction } from '../../typings/space';\n// eslint-disable-next-line no-duplicate-imports\nimport { DEFAULT_CLOSE_STROKE_JOIN, DEFAULT_LINEAR_CLOSED_INTERPOLATE } from '../../typings';\n// eslint-disable-next-line no-duplicate-imports\nimport { couldBeValidNumber, isValid, merge } from '../../util';\nimport type { ISeriesMarkInfo, ISeriesMarkInitOption, ISeriesTooltipHelper, SeriesMarkMap } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { SeriesMarkNameEnum } from '../interface';\nimport type { ILabelSpec } from '../../component/label';\nimport { shouldDoMorph, userAnimationConfig } from '../../animation/utils';\n\nexport interface ILineLikeSeriesTheme {\n line?: Partial<IMarkTheme<ILineMarkSpec>>;\n point?: Partial<IMarkTheme<ISymbolMarkSpec>>;\n label?: Partial<ILabelSpec>;\n}\n\nexport interface LineLikeSeriesMixin extends ISeries {\n _spec: any;\n _seriesField: string;\n _theme: Maybe<ILineLikeSeriesTheme>;\n _trigger: ITrigger;\n _tooltipHelper: ISeriesTooltipHelper;\n _invalidType: IInvalidType;\n\n _lineMark: ILineMark;\n _symbolMark: ISymbolMark;\n _labelMark: ITextMark;\n\n _createMark: (markInfo: ISeriesMarkInfo, option?: ISeriesMarkInitOption) => IMark;\n}\n\nexport class LineLikeSeriesMixin {\n setSeriesField(field: string): void {\n if (isValid(field)) {\n this._seriesField = field;\n this.getMarksInType([MarkTypeEnum.line, MarkTypeEnum.area]).forEach(m => {\n m.setFacet(this._seriesField);\n });\n }\n }\n\n initLineMark(progressive?: IMarkProgressiveConfig, isSeriesMark?: boolean) {\n this._lineMark = this._createMark(lineLikeSeriesMarkMap.line, {\n defaultMorphElementKey: this.getDimensionField()[0],\n groupKey: this._seriesField,\n isSeriesMark: isSeriesMark ?? true,\n progressive\n }) as ILineMark;\n return this._lineMark;\n }\n\n initLineMarkStyle(direction?: DirectionType, areaCurveType?: InterpolateType) {\n const lineMark = this._lineMark;\n if (lineMark) {\n this.setMarkStyle(\n lineMark,\n {\n stroke: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n if (this.coordinate === 'polar') {\n // 极坐标系下需要关闭\n this.setMarkStyle(\n lineMark,\n {\n lineJoin: DEFAULT_CLOSE_STROKE_JOIN,\n curveType: DEFAULT_LINEAR_CLOSED_INTERPOLATE\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n const userCurveType = areaCurveType ?? this.getSpec().line?.style?.curveType;\n const curveType =\n userCurveType === DEFAULT_SMOOTH_INTERPOLATE\n ? direction === Direction.vertical\n ? 'monotoneX'\n : 'monotoneY'\n : userCurveType;\n\n this.setMarkStyle(\n lineMark,\n {\n curveType\n },\n 'normal',\n AttributeLevel.Built_In\n );\n }\n if (this._invalidType) {\n this.setMarkStyle(\n lineMark,\n {\n defined: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n lineMark,\n {\n x: this.dataToPositionX.bind(this),\n y: this.dataToPositionY.bind(this),\n z: this.dataToPositionZ.bind(this)\n },\n 'normal',\n AttributeLevel.Series\n );\n this._trigger.registerMark(lineMark);\n this._tooltipHelper?.activeTriggerSet.dimension.add(lineMark);\n }\n return lineMark;\n }\n\n initSymbolMark(progressive?: IMarkProgressiveConfig) {\n this._symbolMark = this._createMark(lineLikeSeriesMarkMap.point, {\n morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig('point', this._spec)),\n defaultMorphElementKey: this.getDimensionField()[0],\n groupKey: this._seriesField,\n label: merge({ animation: this._spec.animation }, this._spec.label),\n progressive\n }) as ISymbolMark;\n return this._symbolMark;\n }\n\n initSymbolMarkStyle() {\n const symbolMark = this._symbolMark;\n if (symbolMark) {\n this.setMarkStyle(\n symbolMark,\n {\n fill: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n\n if (this._invalidType) {\n this.setMarkStyle(\n symbolMark,\n {\n visible: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n } else if (this._invalidType === 'link') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n symbolMark,\n {\n x: this.dataToPositionX.bind(this),\n y: this.dataToPositionY.bind(this),\n z: this.dataToPositionZ.bind(this)\n },\n 'normal',\n AttributeLevel.Series\n );\n this._trigger.registerMark(symbolMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(symbolMark);\n }\n return symbolMark;\n }\n\n initLabelMarkStyle(labelMark?: ITextMark) {\n if (!labelMark) {\n return;\n }\n this.setMarkStyle(labelMark, {\n fill: this.getColorAttribute(),\n text: (datum: Datum) => {\n return datum[this.getStackValueField()];\n },\n z: this.dataToPositionZ.bind(this)\n });\n if (this._invalidType) {\n this.setMarkStyle(\n labelMark,\n {\n visible: (datum: Datum) => {\n if (this._invalidType === 'break') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n } else if (this._invalidType === 'link') {\n return couldBeValidNumber(datum[this.getStackValueField()]);\n }\n return true;\n }\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n }\n}\n\nexport const lineLikeSeriesMarkMap: SeriesMarkMap = {\n [SeriesMarkNameEnum.point]: { name: SeriesMarkNameEnum.point, type: MarkTypeEnum.symbol },\n [SeriesMarkNameEnum.line]: { name: SeriesMarkNameEnum.line, type: MarkTypeEnum.line }\n};\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { IAnimationSpec } from '../../animation/spec';
|
|
2
2
|
import type { IMarkSpec, IMarkTheme } from '../../typings/spec/common';
|
|
3
3
|
import type { IArcMarkSpec, ITextMarkSpec, TextAlign, IPathMarkSpec, IArc3dMarkSpec } from '../../typings/visual';
|
|
4
|
+
import type { SeriesMarkNameEnum } from '../interface';
|
|
4
5
|
import type { IPolarSeriesSpec, IPolarSeriesTheme } from '../polar/interface';
|
|
5
6
|
import type { PieAppearPreset } from './animation/animation';
|
|
6
7
|
export type PieMarks = 'pie' | 'label' | 'labelLine';
|
|
@@ -18,20 +19,20 @@ export interface IPieSeriesSpec extends IPolarSeriesSpec, IAnimationSpec<PieMark
|
|
|
18
19
|
startAngle?: number;
|
|
19
20
|
endAngle?: number;
|
|
20
21
|
padAngle?: number;
|
|
21
|
-
pie?: IMarkSpec<IArcMarkSpec>;
|
|
22
|
-
label?: IArcLabelSpec;
|
|
22
|
+
[SeriesMarkNameEnum.pie]?: IMarkSpec<IArcMarkSpec>;
|
|
23
|
+
[SeriesMarkNameEnum.label]?: IArcLabelSpec;
|
|
23
24
|
}
|
|
24
25
|
export interface IPieSeriesTheme extends IPolarSeriesTheme {
|
|
25
|
-
pie?: Partial<IMarkTheme<IArcMarkSpec>>;
|
|
26
|
-
label?: IArcLabelSpec;
|
|
26
|
+
[SeriesMarkNameEnum.pie]?: Partial<IMarkTheme<IArcMarkSpec>>;
|
|
27
|
+
[SeriesMarkNameEnum.label]?: IArcLabelSpec;
|
|
27
28
|
}
|
|
28
29
|
export type IPie3dSeriesSpec = {
|
|
29
30
|
type: 'pie3d';
|
|
30
31
|
angle3d?: number;
|
|
31
32
|
} & Omit<IPieSeriesSpec, 'type'>;
|
|
32
33
|
export interface IPie3dSeriesTheme extends IPolarSeriesTheme {
|
|
33
|
-
pie3d?: Partial<IMarkTheme<IArc3dMarkSpec>>;
|
|
34
|
-
label?: IArcLabelSpec;
|
|
34
|
+
[SeriesMarkNameEnum.pie3d]?: Partial<IMarkTheme<IArc3dMarkSpec>>;
|
|
35
|
+
[SeriesMarkNameEnum.label]?: IArcLabelSpec;
|
|
35
36
|
}
|
|
36
37
|
export interface IArcLabelLineSpec extends IMarkSpec<IPathMarkSpec> {
|
|
37
38
|
visible?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/series/pie/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IAnimationSpec } from '../../animation/spec';\nimport type { IMarkSpec, IMarkTheme } from '../../typings/spec/common';\nimport type { IArcMarkSpec, ITextMarkSpec, TextAlign, IPathMarkSpec, IArc3dMarkSpec } from '../../typings/visual';\nimport type { IPolarSeriesSpec, IPolarSeriesTheme } from '../polar/interface';\nimport type { PieAppearPreset } from './animation/animation';\n\nexport type PieMarks = 'pie' | 'label' | 'labelLine';\n\nexport interface IPieSeriesSpec extends IPolarSeriesSpec, IAnimationSpec<PieMarks, PieAppearPreset> {\n type: 'pie';\n /**\n * 分类字段\n * @description 饼图每个扇区为独立的系列\n */\n categoryField: string;\n /** 数值字段 */\n valueField: string;\n /** 饼图中心点 x 坐标 */\n centerX?: number;\n /** 饼图中心点 y 坐标 */\n centerY?: number;\n /** 饼图扇区中心偏移 */\n centerOffset?: number;\n\n /**\n * 饼图扇区半径\n * @default 0.6\n * @deprecated use outerRadius instead\n */\n radius?: number;\n\n /**\n * 饼图扇区外半径\n * @default 0.6\n */\n outerRadius?: number;\n\n /**\n * 饼图扇区内半径\n * @default 0\n */\n innerRadius?: number;\n\n /**\n * 饼图扇区圆角半径\n * @default 0\n */\n cornerRadius?: number;\n /** 扇区起始角度 */\n startAngle?: number;\n /** 扇区结束角度 */\n endAngle?: number;\n /** 扇区间隔角度 */\n padAngle?: number;\n\n /** 扇区样式 */\n pie?: IMarkSpec<IArcMarkSpec>;\n /** 标签配置 */\n label?: IArcLabelSpec;\n}\n\nexport interface IPieSeriesTheme extends IPolarSeriesTheme {\n pie?: Partial<IMarkTheme<IArcMarkSpec>>;\n /** 标签配置 */\n label?: IArcLabelSpec;\n}\n\nexport type IPie3dSeriesSpec = {\n type: 'pie3d';\n // 饼图整体绕x轴的旋转角度\n angle3d?: number;\n} & Omit<IPieSeriesSpec, 'type'>;\n\nexport interface IPie3dSeriesTheme extends IPolarSeriesTheme {\n pie3d?: Partial<IMarkTheme<IArc3dMarkSpec>>;\n /** 标签配置 */\n label?: IArcLabelSpec;\n}\n\nexport interface IArcLabelLineSpec extends IMarkSpec<IPathMarkSpec> {\n /**\n * 是否显示引导线\n * @default true\n */\n visible?: boolean;\n /**\n * 引导线 line1 部分最小长度\n * @default 20\n */\n line1MinLength?: number;\n /**\n * 引导线 line2 部分最小长度\n * @default 10\n */\n line2MinLength?: number;\n}\n\nexport type ArcLabelAlignType = 'arc' | 'labelLine' | 'edge';\n\nexport type ArcLabelStrategyType = 'priority' | 'vertical' | 'none';\n\nexport interface IArcLabelLayoutSpec {\n /**\n * 标签对齐方式\n * @default 'arc'\n */\n textAlign?: ArcLabelAlignType;\n /** @deprecate 建议统一使用textAlign,后续将废除 */\n align?: ArcLabelAlignType;\n /**\n * 标签布局策略\n * @default 'priority'\n */\n strategy?: ArcLabelStrategyType;\n /**\n * 是否启用切线约束\n * @default true\n */\n tangentConstraint?: boolean;\n}\n\nexport interface ILabelTextMarkSpec extends Omit<ITextMarkSpec, 'align' | 'textAlign'> {\n /** text 配置 align 为 auto 时将根据布局逻辑自动处理 align */\n textAlign?: TextAlign | 'auto';\n /** @deprecate 建议统一使用textAlign,后续将废除 */\n align?: TextAlign | 'auto';\n}\n\nexport interface IArcLabelSpec extends Omit<IMarkSpec<ITextMarkSpec>, 'style'> {\n /**\n * 标签布局方式\n * @default 'outside'\n */\n position?: 'outside' | 'inside';\n /**\n * 标签内容显示规则\n * @default 'all'\n */\n showRule?: 'all' | 'max' | 'min' | 'minAndMax' | 'headAndTail';\n /**\n * 是否允许标签重叠\n * @default false\n */\n coverEnable?: boolean;\n /**\n * 是否允许标签旋转\n * @default true\n */\n rotate?: boolean;\n\n /**\n * 文字与引导线间隔宽度\n * @default 5\n */\n spaceWidth?: number;\n /**\n * 扇区间标签的间隔\n * @default 6\n */\n layoutArcGap?: number;\n\n /** 标签文字样式 */\n style?: ILabelTextMarkSpec;\n /** 标签引导线样式 */\n line?: IArcLabelLineSpec;\n /** 标签布局配置 */\n layout?: IArcLabelLayoutSpec;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/series/pie/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IAnimationSpec } from '../../animation/spec';\nimport type { IMarkSpec, IMarkTheme } from '../../typings/spec/common';\nimport type { IArcMarkSpec, ITextMarkSpec, TextAlign, IPathMarkSpec, IArc3dMarkSpec } from '../../typings/visual';\nimport type { SeriesMarkNameEnum } from '../interface';\nimport type { IPolarSeriesSpec, IPolarSeriesTheme } from '../polar/interface';\nimport type { PieAppearPreset } from './animation/animation';\n\nexport type PieMarks = 'pie' | 'label' | 'labelLine';\n\nexport interface IPieSeriesSpec extends IPolarSeriesSpec, IAnimationSpec<PieMarks, PieAppearPreset> {\n type: 'pie';\n /**\n * 分类字段\n * @description 饼图每个扇区为独立的系列\n */\n categoryField: string;\n /** 数值字段 */\n valueField: string;\n /** 饼图中心点 x 坐标 */\n centerX?: number;\n /** 饼图中心点 y 坐标 */\n centerY?: number;\n /** 饼图扇区中心偏移 */\n centerOffset?: number;\n\n /**\n * 饼图扇区半径\n * @default 0.6\n * @deprecated use outerRadius instead\n */\n radius?: number;\n\n /**\n * 饼图扇区外半径\n * @default 0.6\n */\n outerRadius?: number;\n\n /**\n * 饼图扇区内半径\n * @default 0\n */\n innerRadius?: number;\n\n /**\n * 饼图扇区圆角半径\n * @default 0\n */\n cornerRadius?: number;\n /** 扇区起始角度 */\n startAngle?: number;\n /** 扇区结束角度 */\n endAngle?: number;\n /** 扇区间隔角度 */\n padAngle?: number;\n\n /** 扇区样式 */\n [SeriesMarkNameEnum.pie]?: IMarkSpec<IArcMarkSpec>;\n /** 标签配置 */\n [SeriesMarkNameEnum.label]?: IArcLabelSpec;\n}\n\nexport interface IPieSeriesTheme extends IPolarSeriesTheme {\n [SeriesMarkNameEnum.pie]?: Partial<IMarkTheme<IArcMarkSpec>>;\n /** 标签配置 */\n [SeriesMarkNameEnum.label]?: IArcLabelSpec;\n}\n\nexport type IPie3dSeriesSpec = {\n type: 'pie3d';\n // 饼图整体绕x轴的旋转角度\n angle3d?: number;\n} & Omit<IPieSeriesSpec, 'type'>;\n\nexport interface IPie3dSeriesTheme extends IPolarSeriesTheme {\n [SeriesMarkNameEnum.pie3d]?: Partial<IMarkTheme<IArc3dMarkSpec>>;\n /** 标签配置 */\n [SeriesMarkNameEnum.label]?: IArcLabelSpec;\n}\n\nexport interface IArcLabelLineSpec extends IMarkSpec<IPathMarkSpec> {\n /**\n * 是否显示引导线\n * @default true\n */\n visible?: boolean;\n /**\n * 引导线 line1 部分最小长度\n * @default 20\n */\n line1MinLength?: number;\n /**\n * 引导线 line2 部分最小长度\n * @default 10\n */\n line2MinLength?: number;\n}\n\nexport type ArcLabelAlignType = 'arc' | 'labelLine' | 'edge';\n\nexport type ArcLabelStrategyType = 'priority' | 'vertical' | 'none';\n\nexport interface IArcLabelLayoutSpec {\n /**\n * 标签对齐方式\n * @default 'arc'\n */\n textAlign?: ArcLabelAlignType;\n /** @deprecate 建议统一使用textAlign,后续将废除 */\n align?: ArcLabelAlignType;\n /**\n * 标签布局策略\n * @default 'priority'\n */\n strategy?: ArcLabelStrategyType;\n /**\n * 是否启用切线约束\n * @default true\n */\n tangentConstraint?: boolean;\n}\n\nexport interface ILabelTextMarkSpec extends Omit<ITextMarkSpec, 'align' | 'textAlign'> {\n /** text 配置 align 为 auto 时将根据布局逻辑自动处理 align */\n textAlign?: TextAlign | 'auto';\n /** @deprecate 建议统一使用textAlign,后续将废除 */\n align?: TextAlign | 'auto';\n}\n\nexport interface IArcLabelSpec extends Omit<IMarkSpec<ITextMarkSpec>, 'style'> {\n /**\n * 标签布局方式\n * @default 'outside'\n */\n position?: 'outside' | 'inside';\n /**\n * 标签内容显示规则\n * @default 'all'\n */\n showRule?: 'all' | 'max' | 'min' | 'minAndMax' | 'headAndTail';\n /**\n * 是否允许标签重叠\n * @default false\n */\n coverEnable?: boolean;\n /**\n * 是否允许标签旋转\n * @default true\n */\n rotate?: boolean;\n\n /**\n * 文字与引导线间隔宽度\n * @default 5\n */\n spaceWidth?: number;\n /**\n * 扇区间标签的间隔\n * @default 6\n */\n layoutArcGap?: number;\n\n /** 标签文字样式 */\n style?: ILabelTextMarkSpec;\n /** 标签引导线样式 */\n line?: IArcLabelLineSpec;\n /** 标签布局配置 */\n layout?: IArcLabelLayoutSpec;\n}\n"]}
|
package/esm/series/pie/pie.d.ts
CHANGED
|
@@ -5,7 +5,8 @@ import { MarkTypeEnum } from '../../mark/interface';
|
|
|
5
5
|
import type { IArcMark } from '../../mark/arc';
|
|
6
6
|
import type { ITextMark } from '../../mark/text';
|
|
7
7
|
import type { IPathMark } from '../../mark/path';
|
|
8
|
-
import type { IArcSeries } from '../interface';
|
|
8
|
+
import type { IArcSeries, SeriesMarkMap } from '../interface';
|
|
9
|
+
import { SeriesMarkNameEnum } from '../interface';
|
|
9
10
|
import { SeriesTypeEnum } from '../interface/type';
|
|
10
11
|
import type { IArcLabelSpec, IPie3dSeriesSpec, IPieSeriesSpec, IPieSeriesTheme } from './interface';
|
|
11
12
|
import { SeriesData } from '../base/series-data';
|
|
@@ -13,7 +14,9 @@ type IBasePieSeriesSpec = Omit<IPieSeriesSpec, 'type'> & {
|
|
|
13
14
|
type: string;
|
|
14
15
|
};
|
|
15
16
|
export declare class BasePieSeries<T extends IBasePieSeriesSpec> extends PolarSeries<T> implements IArcSeries {
|
|
16
|
-
protected
|
|
17
|
+
protected _pieMarkName: SeriesMarkNameEnum;
|
|
18
|
+
protected _pieMarkType: MarkTypeEnum;
|
|
19
|
+
static readonly mark: SeriesMarkMap;
|
|
17
20
|
protected _viewDataLabel: SeriesData;
|
|
18
21
|
protected _center: IPoint | null;
|
|
19
22
|
get center(): IPoint;
|
|
@@ -73,7 +76,9 @@ export declare class PieSeries extends BasePieSeries<IPieSeriesSpec> implements
|
|
|
73
76
|
export declare class Pie3dSeries extends BasePieSeries<IPie3dSeriesSpec> implements IArcSeries {
|
|
74
77
|
static readonly type: string;
|
|
75
78
|
type: SeriesTypeEnum;
|
|
76
|
-
protected
|
|
79
|
+
protected _pieMarkName: SeriesMarkNameEnum;
|
|
80
|
+
protected _pieMarkType: MarkTypeEnum;
|
|
81
|
+
static readonly mark: SeriesMarkMap;
|
|
77
82
|
protected _angle3d: number;
|
|
78
83
|
setAttrFromSpec(): void;
|
|
79
84
|
initMarkStyle(): void;
|
package/esm/series/pie/pie.js
CHANGED
|
@@ -10,6 +10,8 @@ import { PolarSeries } from "../polar/polar";
|
|
|
10
10
|
|
|
11
11
|
import { MarkTypeEnum } from "../../mark/interface";
|
|
12
12
|
|
|
13
|
+
import { SeriesMarkNameEnum } from "../interface";
|
|
14
|
+
|
|
13
15
|
import { SeriesTypeEnum } from "../interface/type";
|
|
14
16
|
|
|
15
17
|
import { pie } from "../../data/transforms/pie";
|
|
@@ -28,11 +30,13 @@ import { SeriesData } from "../base/series-data";
|
|
|
28
30
|
|
|
29
31
|
import { centerOffsetConfig } from "./animation/centerOffset";
|
|
30
32
|
|
|
33
|
+
import { BaseSeries } from "../base/base-series";
|
|
34
|
+
|
|
31
35
|
export class BasePieSeries extends PolarSeries {
|
|
32
36
|
constructor() {
|
|
33
|
-
super(...arguments), this.
|
|
34
|
-
this.
|
|
35
|
-
this._labelLineMark = null, this.dataToCentralPosition = datum => {
|
|
37
|
+
super(...arguments), this._pieMarkName = SeriesMarkNameEnum.pie, this._pieMarkType = MarkTypeEnum.arc,
|
|
38
|
+
this._startAngle = POLAR_START_RADIAN, this._endAngle = POLAR_END_RADIAN, this._pieMark = null,
|
|
39
|
+
this._labelMark = null, this._labelLineMark = null, this.dataToCentralPosition = datum => {
|
|
36
40
|
const angle = datum[ARC_MIDDLE_ANGLE];
|
|
37
41
|
if (isNil(angle)) return null;
|
|
38
42
|
const radius = this.computeDatumRadius(datum), innerRadius = this.computeDatumInnerRadius(datum), center = this.computeCenter(datum), delta = polarToCartesian({
|
|
@@ -93,8 +97,11 @@ export class BasePieSeries extends PolarSeries {
|
|
|
93
97
|
}, !1), this._viewDataLabel = new SeriesData(this._option, viewDataLabel);
|
|
94
98
|
}
|
|
95
99
|
initMark() {
|
|
96
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
97
|
-
if (this._pieMark = this._createMark(
|
|
100
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
101
|
+
if (this._pieMark = this._createMark(Object.assign(Object.assign({}, BasePieSeries.mark.pie), {
|
|
102
|
+
name: this._pieMarkName,
|
|
103
|
+
type: this._pieMarkType
|
|
104
|
+
}), {
|
|
98
105
|
morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig(this.type, this._spec)),
|
|
99
106
|
defaultMorphElementKey: this._seriesField,
|
|
100
107
|
key: this._seriesField,
|
|
@@ -103,7 +110,7 @@ export class BasePieSeries extends PolarSeries {
|
|
|
103
110
|
isSeriesMark: !0
|
|
104
111
|
}), null === (_b = null === (_a = this._spec) || void 0 === _a ? void 0 : _a.label) || void 0 === _b ? void 0 : _b.visible) {
|
|
105
112
|
const spec = this.getSpec();
|
|
106
|
-
this._labelMark = this._createMark(
|
|
113
|
+
this._labelMark = this._createMark(BasePieSeries.mark.label, {
|
|
107
114
|
dataView: this._viewDataLabel.getDataView(),
|
|
108
115
|
dataProductId: this._viewDataLabel.getProductId(),
|
|
109
116
|
skipBeforeLayouted: !0,
|
|
@@ -112,19 +119,20 @@ export class BasePieSeries extends PolarSeries {
|
|
|
112
119
|
markSpec: Object.assign({
|
|
113
120
|
visible: !0
|
|
114
121
|
}, null === (_e = this.getSpec()) || void 0 === _e ? void 0 : _e.label)
|
|
115
|
-
}), this._labelLineMark = this._createMark(
|
|
122
|
+
}), this._labelLineMark = this._createMark(BasePieSeries.mark.labelLine, {
|
|
116
123
|
dataView: this._viewDataLabel.getDataView(),
|
|
117
124
|
dataProductId: this._viewDataLabel.getProductId(),
|
|
118
125
|
skipBeforeLayouted: !0,
|
|
119
126
|
themeSpec: null === (_g = null === (_f = this._theme) || void 0 === _f ? void 0 : _f.label) || void 0 === _g ? void 0 : _g.line,
|
|
127
|
+
support3d: null === (_h = null == spec ? void 0 : spec.label) || void 0 === _h ? void 0 : _h.support3d,
|
|
120
128
|
markSpec: Object.assign({
|
|
121
129
|
visible: !0
|
|
122
|
-
}, null === (
|
|
130
|
+
}, null === (_k = null === (_j = this.getSpec()) || void 0 === _j ? void 0 : _j.label) || void 0 === _k ? void 0 : _k.line)
|
|
123
131
|
});
|
|
124
132
|
}
|
|
125
133
|
}
|
|
126
134
|
initMarkStyle() {
|
|
127
|
-
var _a, _b, _c, _d, _e, _f, _g
|
|
135
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
128
136
|
const pieMark = this._pieMark;
|
|
129
137
|
if (pieMark) {
|
|
130
138
|
this.setMarkStyle(pieMark, {
|
|
@@ -137,7 +145,6 @@ export class BasePieSeries extends PolarSeries {
|
|
|
137
145
|
return null !== (_b = null === (_a = this._center) || void 0 === _a ? void 0 : _a.y) && void 0 !== _b ? _b : this._region.getLayoutRect().height / 2;
|
|
138
146
|
},
|
|
139
147
|
fill: this.getColorAttribute(),
|
|
140
|
-
fillOpacity: null !== (_d = null === (_c = null === (_b = null === (_a = this._theme) || void 0 === _a ? void 0 : _a.pie) || void 0 === _b ? void 0 : _b.style) || void 0 === _c ? void 0 : _c.fillOpacity) && void 0 !== _d ? _d : 1,
|
|
141
148
|
outerRadius: isSpecValueWithScale(this._outerRadius) ? this._outerRadius : () => this.computeLayoutRadius() * this._outerRadius,
|
|
142
149
|
innerRadius: isSpecValueWithScale(this._innerRadius) ? this._innerRadius : () => this.computeLayoutRadius() * this._innerRadius,
|
|
143
150
|
cornerRadius: () => this.computeLayoutRadius() * this._cornerRadius,
|
|
@@ -148,7 +155,7 @@ export class BasePieSeries extends PolarSeries {
|
|
|
148
155
|
}, "normal", AttributeLevel.Series);
|
|
149
156
|
const pieSpec = this.getSpec()[pieMark.name];
|
|
150
157
|
if (pieSpec) for (const state in pieSpec.state || {}) this.setMarkStyle(pieMark, this.generateRadiusStyle(pieSpec.state[state]), state, AttributeLevel.User_Mark);
|
|
151
|
-
this._trigger.registerMark(pieMark), null === (
|
|
158
|
+
this._trigger.registerMark(pieMark), null === (_a = this._tooltipHelper) || void 0 === _a || _a.activeTriggerSet.mark.add(pieMark);
|
|
152
159
|
}
|
|
153
160
|
const labelMark = this._labelMark;
|
|
154
161
|
labelMark && (this.setMarkStyle(labelMark, {
|
|
@@ -156,9 +163,9 @@ export class BasePieSeries extends PolarSeries {
|
|
|
156
163
|
x: field(DEFAULT_LABEL_X).bind(this),
|
|
157
164
|
y: field(DEFAULT_LABEL_Y).bind(this),
|
|
158
165
|
text: field(DEFAULT_LABEL_TEXT).bind(this),
|
|
159
|
-
fill: (null === (
|
|
166
|
+
fill: (null === (_c = null === (_b = this._spec.label) || void 0 === _b ? void 0 : _b.style) || void 0 === _c ? void 0 : _c.fill) || this.getColorAttribute(),
|
|
160
167
|
textAlign: field(DEFAULT_LABEL_ALIGN).bind(this),
|
|
161
|
-
textBaseline: "inside" === (null === (
|
|
168
|
+
textBaseline: "inside" === (null === (_d = this._spec.label) || void 0 === _d ? void 0 : _d.position) ? "middle" : "top",
|
|
162
169
|
angle: datum => {
|
|
163
170
|
var _a;
|
|
164
171
|
const angle = datum[ARC_MIDDLE_ANGLE];
|
|
@@ -169,7 +176,7 @@ export class BasePieSeries extends PolarSeries {
|
|
|
169
176
|
const labelLineMark = this._labelLineMark;
|
|
170
177
|
labelLineMark && (this.setMarkStyle(labelLineMark, Object.assign({
|
|
171
178
|
visible: field(DEFAULT_LABEL_VISIBLE).bind(this),
|
|
172
|
-
stroke: (null === (
|
|
179
|
+
stroke: (null === (_g = null === (_f = null === (_e = this._spec.label) || void 0 === _e ? void 0 : _e.line) || void 0 === _f ? void 0 : _f.style) || void 0 === _g ? void 0 : _g.stroke) || this.getColorAttribute(),
|
|
173
180
|
lineWidth: 1
|
|
174
181
|
}, this.generateLinePath("normal"))), this.setMarkStyle(labelLineMark, this.generateLinePath("hover"), "hover"),
|
|
175
182
|
this.setMarkStyle(labelLineMark, this.generateLinePath("selected"), "selected"),
|
|
@@ -307,12 +314,12 @@ export class BasePieSeries extends PolarSeries {
|
|
|
307
314
|
}
|
|
308
315
|
}, appearPreset = null === (_b = null === (_a = this._spec) || void 0 === _a ? void 0 : _a.animationAppear) || void 0 === _b ? void 0 : _b.preset;
|
|
309
316
|
if (this._pieMark) {
|
|
310
|
-
const pieAnimationConfig = animationConfig(DEFAULT_MARK_ANIMATION.pie(animationParams, appearPreset), userAnimationConfig(
|
|
317
|
+
const pieAnimationConfig = animationConfig(DEFAULT_MARK_ANIMATION.pie(animationParams, appearPreset), userAnimationConfig(SeriesMarkNameEnum.pie, this._spec));
|
|
311
318
|
pieAnimationConfig.normal && pieAnimationConfig.normal.type && (pieAnimationConfig.normal = centerOffsetConfig(this._pieMark, pieAnimationConfig.normal)),
|
|
312
319
|
this._pieMark.setAnimationConfig(pieAnimationConfig);
|
|
313
320
|
}
|
|
314
|
-
this._labelMark && (this._labelMark.setAnimationConfig(animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(
|
|
315
|
-
this._labelLineMark && this._labelLineMark.setAnimationConfig(animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(
|
|
321
|
+
this._labelMark && (this._labelMark.setAnimationConfig(animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.label, this._spec))),
|
|
322
|
+
this._labelLineMark && this._labelLineMark.setAnimationConfig(animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.labelLine, this._spec))));
|
|
316
323
|
}
|
|
317
324
|
getDefaultShapeType() {
|
|
318
325
|
return "square";
|
|
@@ -330,6 +337,17 @@ export class BasePieSeries extends PolarSeries {
|
|
|
330
337
|
setValueFieldToPercent() {}
|
|
331
338
|
}
|
|
332
339
|
|
|
340
|
+
BasePieSeries.mark = Object.assign(Object.assign({}, BaseSeries.mark), {
|
|
341
|
+
[SeriesMarkNameEnum.pie]: {
|
|
342
|
+
name: SeriesMarkNameEnum.pie,
|
|
343
|
+
type: MarkTypeEnum.arc
|
|
344
|
+
},
|
|
345
|
+
[SeriesMarkNameEnum.labelLine]: {
|
|
346
|
+
name: SeriesMarkNameEnum.labelLine,
|
|
347
|
+
type: MarkTypeEnum.path
|
|
348
|
+
}
|
|
349
|
+
});
|
|
350
|
+
|
|
333
351
|
export class PieSeries extends BasePieSeries {
|
|
334
352
|
constructor() {
|
|
335
353
|
super(...arguments), this.type = SeriesTypeEnum.pie;
|
|
@@ -340,14 +358,15 @@ PieSeries.type = SeriesTypeEnum.pie;
|
|
|
340
358
|
|
|
341
359
|
export class Pie3dSeries extends BasePieSeries {
|
|
342
360
|
constructor() {
|
|
343
|
-
super(...arguments), this.type = SeriesTypeEnum.pie3d, this.
|
|
361
|
+
super(...arguments), this.type = SeriesTypeEnum.pie3d, this._pieMarkName = SeriesMarkNameEnum.pie3d,
|
|
362
|
+
this._pieMarkType = MarkTypeEnum.arc3d;
|
|
344
363
|
}
|
|
345
364
|
setAttrFromSpec() {
|
|
346
365
|
var _a, _b;
|
|
347
366
|
super.setAttrFromSpec(), this._angle3d = null !== (_b = null === (_a = this._spec) || void 0 === _a ? void 0 : _a.angle3d) && void 0 !== _b ? _b : -Math.PI / 3;
|
|
348
367
|
}
|
|
349
368
|
initMarkStyle() {
|
|
350
|
-
var _a, _b, _c, _d, _e, _f, _g, _h
|
|
369
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
351
370
|
const pieMark = this._pieMark;
|
|
352
371
|
if (pieMark) {
|
|
353
372
|
this.setMarkStyle(pieMark, {
|
|
@@ -361,7 +380,6 @@ export class Pie3dSeries extends BasePieSeries {
|
|
|
361
380
|
},
|
|
362
381
|
beta: () => this._angle3d,
|
|
363
382
|
fill: this.getColorAttribute(),
|
|
364
|
-
fillOpacity: null !== (_d = null === (_c = null === (_b = null === (_a = this._theme) || void 0 === _a ? void 0 : _a.pie) || void 0 === _b ? void 0 : _b.style) || void 0 === _c ? void 0 : _c.fillOpacity) && void 0 !== _d ? _d : 1,
|
|
365
383
|
outerRadius: () => this.computeLayoutRadius() * this._outerRadius,
|
|
366
384
|
innerRadius: () => this.computeLayoutRadius() * this._innerRadius,
|
|
367
385
|
cornerRadius: () => this.computeLayoutRadius() * this._cornerRadius,
|
|
@@ -372,10 +390,10 @@ export class Pie3dSeries extends BasePieSeries {
|
|
|
372
390
|
}, "normal", AttributeLevel.Series);
|
|
373
391
|
const pieSpec = this.getSpec()[pieMark.name];
|
|
374
392
|
if (pieSpec) for (const state in pieSpec.state || {}) this.setMarkStyle(pieMark, this.generateRadiusStyle(pieSpec.state[state]), state, AttributeLevel.User_Mark);
|
|
375
|
-
this._trigger.registerMark(pieMark), null === (
|
|
393
|
+
this._trigger.registerMark(pieMark), null === (_a = this._tooltipHelper) || void 0 === _a || _a.activeTriggerSet.mark.add(pieMark);
|
|
376
394
|
}
|
|
377
395
|
const labelMark = this._labelMark, spec = this.getSpec(), params3d = {};
|
|
378
|
-
(null === (
|
|
396
|
+
(null === (_b = null == spec ? void 0 : spec.label) || void 0 === _b ? void 0 : _b.support3d) && (params3d.beta = -Math.PI / 3,
|
|
379
397
|
params3d.anchor3d = datum => {
|
|
380
398
|
var _a, _b, _c, _d;
|
|
381
399
|
return [ (null !== (_b = null === (_a = this._center) || void 0 === _a ? void 0 : _a.x) && void 0 !== _b ? _b : this._region.getLayoutRect().width / 2) - field(DEFAULT_LABEL_X).bind(this)(datum), (null !== (_d = null === (_c = this._center) || void 0 === _c ? void 0 : _c.y) && void 0 !== _d ? _d : this._region.getLayoutRect().height / 2) - field(DEFAULT_LABEL_Y).bind(this)(datum) ];
|
|
@@ -384,9 +402,9 @@ export class Pie3dSeries extends BasePieSeries {
|
|
|
384
402
|
x: field(DEFAULT_LABEL_X).bind(this),
|
|
385
403
|
y: field(DEFAULT_LABEL_Y).bind(this),
|
|
386
404
|
text: field(DEFAULT_LABEL_TEXT).bind(this),
|
|
387
|
-
fill: (null === (
|
|
405
|
+
fill: (null === (_d = null === (_c = this._spec.label) || void 0 === _c ? void 0 : _c.style) || void 0 === _d ? void 0 : _d.fill) || this.getColorAttribute(),
|
|
388
406
|
textAlign: field(DEFAULT_LABEL_ALIGN).bind(this),
|
|
389
|
-
textBaseline: "inside" === (null === (
|
|
407
|
+
textBaseline: "inside" === (null === (_e = this._spec.label) || void 0 === _e ? void 0 : _e.position) ? "middle" : "top",
|
|
390
408
|
angle: datum => {
|
|
391
409
|
var _a;
|
|
392
410
|
const angle = datum[ARC_MIDDLE_ANGLE];
|
|
@@ -395,15 +413,29 @@ export class Pie3dSeries extends BasePieSeries {
|
|
|
395
413
|
limit: field(DEFAULT_LABEL_LIMIT).bind(this)
|
|
396
414
|
}, params3d), void 0, AttributeLevel.User_Mark), this._trigger.registerMark(labelMark));
|
|
397
415
|
const labelLineMark = this._labelLineMark;
|
|
398
|
-
labelLineMark && (this.setMarkStyle(labelLineMark, Object.assign({
|
|
416
|
+
labelLineMark && (this.setMarkStyle(labelLineMark, Object.assign(Object.assign(Object.assign({
|
|
399
417
|
visible: field(DEFAULT_LABEL_VISIBLE).bind(this),
|
|
400
|
-
stroke: (null === (
|
|
418
|
+
stroke: (null === (_h = null === (_g = null === (_f = this._spec.label) || void 0 === _f ? void 0 : _f.line) || void 0 === _g ? void 0 : _g.style) || void 0 === _h ? void 0 : _h.stroke) || this.getColorAttribute(),
|
|
401
419
|
lineWidth: 1
|
|
402
|
-
}, this.generateLinePath("normal"))
|
|
420
|
+
}, this.generateLinePath("normal")), params3d), {
|
|
421
|
+
anchor3d: () => {
|
|
422
|
+
var _a, _b, _c, _d;
|
|
423
|
+
return [ null !== (_b = null === (_a = this._center) || void 0 === _a ? void 0 : _a.x) && void 0 !== _b ? _b : this._region.getLayoutRect().width / 2, null !== (_d = null === (_c = this._center) || void 0 === _c ? void 0 : _c.y) && void 0 !== _d ? _d : this._region.getLayoutRect().height / 2 ];
|
|
424
|
+
}
|
|
425
|
+
})), this.setMarkStyle(labelLineMark, this.generateLinePath("hover"), "hover"),
|
|
403
426
|
this.setMarkStyle(labelLineMark, this.generateLinePath("selected"), "selected"),
|
|
404
427
|
this._trigger.registerMark(labelLineMark));
|
|
405
428
|
}
|
|
406
429
|
}
|
|
407
430
|
|
|
408
|
-
Pie3dSeries.type = SeriesTypeEnum.pie3d
|
|
431
|
+
Pie3dSeries.type = SeriesTypeEnum.pie3d, Pie3dSeries.mark = Object.assign(Object.assign({}, BaseSeries.mark), {
|
|
432
|
+
[SeriesMarkNameEnum.pie3d]: {
|
|
433
|
+
name: SeriesMarkNameEnum.pie3d,
|
|
434
|
+
type: MarkTypeEnum.arc3d
|
|
435
|
+
},
|
|
436
|
+
[SeriesMarkNameEnum.labelLine]: {
|
|
437
|
+
name: SeriesMarkNameEnum.labelLine,
|
|
438
|
+
type: MarkTypeEnum.path
|
|
439
|
+
}
|
|
440
|
+
});
|
|
409
441
|
//# sourceMappingURL=pie.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/series/pie/pie.ts"],"names":[],"mappings":"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","file":"pie.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport { DataView } from '@visactor/vdataset';\nimport {\n AttributeLevel,\n ARC_START_ANGLE,\n ARC_END_ANGLE,\n ARC_RATIO,\n ARC_MIDDLE_ANGLE,\n ARC_RADIAN,\n ARC_QUADRANT,\n ARC_K,\n PREFIX,\n DEFAULT_LABEL_X,\n DEFAULT_LABEL_Y,\n DEFAULT_LABEL_TEXT,\n ARC_LABEL_POINT_BX,\n ARC_LABEL_POINT_BY,\n ARC_LABEL_POINT_CX,\n ARC_LABEL_POINT_CY,\n DEFAULT_LABEL_LIMIT,\n DEFAULT_LABEL_ALIGN,\n DEFAULT_LABEL_VISIBLE,\n POLAR_START_RADIAN,\n POLAR_END_RADIAN,\n DEFAULT_DATA_INDEX,\n ChartEvent\n} from '../../constant';\nimport type { Maybe, IPoint, Datum, StateValueType } from '../../typings';\nimport {\n degrees,\n field,\n isNil,\n isSpecValueWithScale,\n normalizeStartEndAngle,\n polarToCartesian,\n radians\n} from '../../util';\nimport type { IModelLayoutOption } from '../../model/interface';\nimport { PolarSeries } from '../polar/polar';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport type { IArcMark } from '../../mark/arc';\nimport type { ITextMark } from '../../mark/text';\nimport type { IPathMark } from '../../mark/path';\nimport type { IArcSeries } from '../interface';\nimport { SeriesTypeEnum } from '../interface/type';\nimport type { IPieOpt } from '../../data/transforms/pie';\n// eslint-disable-next-line no-duplicate-imports\nimport { pie } from '../../data/transforms/pie';\n\nimport { arcLabel } from '../../layout/label/arc-label';\nimport { registerDataSetInstanceTransform } from '../../data/register';\nimport type { IPieAnimationParams, PieAppearPreset } from './animation/animation';\nimport { animationConfig, shouldDoMorph, userAnimationConfig } from '../../animation/utils';\nimport { AnimationStateEnum } from '../../animation/interface';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport type { IArcLabelSpec, IPie3dSeriesSpec, IPieSeriesSpec, IPieSeriesTheme } from './interface';\nimport { SeriesData } from '../base/series-data';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { IAnimationTypeConfig } from '@visactor/vgrammar';\nimport { centerOffsetConfig } from './animation/centerOffset';\n\ntype IBasePieSeriesSpec = Omit<IPieSeriesSpec, 'type'> & { type: string };\n\nexport class BasePieSeries<T extends IBasePieSeriesSpec> extends PolarSeries<T> implements IArcSeries {\n protected _arcMarkType: MarkTypeEnum = MarkTypeEnum.arc;\n\n protected _viewDataLabel!: SeriesData;\n\n // 饼图渲染不依赖于极坐标系轴,因此由 series 自己存储相关配置信息\n protected _center!: IPoint | null;\n public get center(): IPoint {\n return {\n x: this._spec?.centerX ?? this._region.getLayoutRect().width / 2,\n y: this._spec?.centerY ?? this._region.getLayoutRect().height / 2\n };\n }\n protected _centerOffset!: number;\n\n protected _cornerRadius!: number;\n\n protected _startAngle: number = POLAR_START_RADIAN;\n protected _endAngle: number = POLAR_END_RADIAN;\n protected _padAngle!: number;\n\n protected _pieMark: IArcMark | null = null;\n protected _labelMark: ITextMark | null = null;\n protected _labelLineMark: IPathMark | null = null;\n\n protected declare _theme: Maybe<IPieSeriesTheme>;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n this._centerOffset = this._spec?.centerOffset ?? 0;\n this._cornerRadius = this._spec?.cornerRadius ?? 0;\n\n const normalized = normalizeStartEndAngle(\n isValid(this._spec?.startAngle) ? radians(this._spec.startAngle) : this._startAngle,\n isValid(this._spec?.endAngle) ? radians(this._spec.endAngle) : this._endAngle\n );\n this._startAngle = normalized.startAngle;\n this._endAngle = normalized.endAngle;\n this._padAngle = isValid(this._spec?.padAngle) ? radians(this._spec.padAngle) : 0;\n\n // 值信息给角度,angleField 是为了兼容小组件用法,因为 spec 改造前已经开放了\n this.setAngleField(this._spec.valueField || this._spec.angleField);\n if (this._spec.categoryField) {\n this.setSeriesField(this._spec.categoryField);\n }\n this._radiusField = [];\n }\n\n initData() {\n super.initData();\n\n const viewData = this.getViewData();\n if (!viewData) {\n return;\n }\n\n registerDataSetInstanceTransform(this._dataSet, 'pie', pie);\n registerDataSetInstanceTransform(this._dataSet, 'arcLabel', arcLabel);\n\n viewData.transform(\n {\n type: 'pie',\n options: {\n angleField: this._angleField[0],\n startAngle: this._startAngle,\n endAngle: this._endAngle,\n asStartAngle: ARC_START_ANGLE,\n asEndAngle: ARC_END_ANGLE,\n asRatio: ARC_RATIO,\n asMiddleAngle: ARC_MIDDLE_ANGLE,\n asRadian: ARC_RADIAN,\n asQuadrant: ARC_QUADRANT,\n asK: ARC_K\n } as IPieOpt\n },\n false\n );\n\n const viewDataLabel = new DataView(this._dataSet);\n viewDataLabel.parse([this.getViewData()], {\n type: 'dataview'\n });\n viewDataLabel.name = `${PREFIX}_series_${this.id}_viewDataLabel`;\n viewDataLabel.transform(\n {\n type: 'arcLabel',\n options: { series: this }\n },\n false\n );\n\n this._viewDataLabel = new SeriesData(this._option, viewDataLabel);\n }\n\n initMark(): void {\n this._pieMark = this._createMark(this._arcMarkType, this.type, {\n morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig(this.type, this._spec)),\n defaultMorphElementKey: this._seriesField,\n key: this._seriesField,\n groupKey: this._seriesField,\n skipBeforeLayouted: true,\n isSeriesMark: true\n }) as IArcMark;\n\n if (this._spec?.label?.visible) {\n const spec = this.getSpec();\n this._labelMark = this._createMark(MarkTypeEnum.text, 'label', {\n dataView: this._viewDataLabel.getDataView(),\n dataProductId: this._viewDataLabel.getProductId(),\n skipBeforeLayouted: true,\n themeSpec: this._theme?.label,\n support3d: spec?.label?.support3d,\n markSpec: {\n visible: true,\n ...this.getSpec()?.label\n }\n }) as ITextMark;\n\n this._labelLineMark = this._createMark(MarkTypeEnum.path, 'labelLine', {\n dataView: this._viewDataLabel.getDataView(),\n dataProductId: this._viewDataLabel.getProductId(),\n skipBeforeLayouted: true,\n themeSpec: this._theme?.label?.line,\n markSpec: {\n visible: true,\n ...this.getSpec()?.label?.line\n }\n }) as ITextMark;\n }\n }\n\n initMarkStyle(): void {\n const pieMark = this._pieMark;\n if (pieMark) {\n this.setMarkStyle(\n pieMark,\n {\n x: () => this._center?.x ?? this._region.getLayoutRect().width / 2,\n y: () => this._center?.y ?? this._region.getLayoutRect().height / 2,\n fill: this.getColorAttribute(),\n fillOpacity: this._theme?.pie?.style?.fillOpacity ?? 1,\n outerRadius: isSpecValueWithScale(this._outerRadius)\n ? this._outerRadius\n : () => this.computeLayoutRadius() * this._outerRadius,\n innerRadius: isSpecValueWithScale(this._innerRadius)\n ? this._innerRadius\n : () => this.computeLayoutRadius() * this._innerRadius,\n cornerRadius: () => this.computeLayoutRadius() * this._cornerRadius,\n startAngle: field(ARC_START_ANGLE).bind(this),\n endAngle: field(ARC_END_ANGLE).bind(this),\n padAngle: this._padAngle,\n centerOffset: this._centerOffset\n },\n 'normal',\n AttributeLevel.Series\n );\n\n // radius 配置需要额外处理比例值\n const pieSpec = this.getSpec()[pieMark.name];\n if (pieSpec) {\n // pieMark.setStyle(pieSpec.style, 'normal', AttributeLevel.User_Mark);\n for (const state in pieSpec.state || {}) {\n this.setMarkStyle(pieMark, this.generateRadiusStyle(pieSpec.state[state]), state, AttributeLevel.User_Mark);\n }\n }\n\n this._trigger.registerMark(pieMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(pieMark);\n }\n\n const labelMark = this._labelMark;\n if (labelMark) {\n this.setMarkStyle(\n labelMark,\n {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n x: field(DEFAULT_LABEL_X).bind(this),\n y: field(DEFAULT_LABEL_Y).bind(this),\n text: field(DEFAULT_LABEL_TEXT).bind(this),\n fill: this._spec.label?.style?.fill || this.getColorAttribute(),\n textAlign: field(DEFAULT_LABEL_ALIGN).bind(this),\n textBaseline: this._spec.label?.position === 'inside' ? 'middle' : 'top',\n angle: (datum: Datum) => {\n const angle = datum[ARC_MIDDLE_ANGLE];\n return this._spec.label?.position === 'inside' ? degrees(angle) : 0;\n },\n limit: field(DEFAULT_LABEL_LIMIT).bind(this)\n },\n undefined,\n // 标签属性基于用户配置生成,样式优先级应当为用户级\n AttributeLevel.User_Mark\n );\n\n this._trigger.registerMark(labelMark);\n }\n\n const labelLineMark = this._labelLineMark;\n if (labelLineMark) {\n this.setMarkStyle(labelLineMark, {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n stroke: (this._spec.label?.line?.style?.stroke as any) || this.getColorAttribute(),\n lineWidth: 1,\n ...this.generateLinePath('normal')\n });\n this.setMarkStyle(labelLineMark, this.generateLinePath('hover'), 'hover');\n this.setMarkStyle(labelLineMark, this.generateLinePath('selected'), 'selected');\n\n this._trigger.registerMark(labelLineMark);\n }\n }\n\n afterInitMark(): void {\n super.afterInitMark();\n this._trigger.setStateKeys([this._seriesField as string, ...this._radiusField]);\n }\n\n initEvent(): void {\n super.initEvent();\n this._viewDataLabel.getDataView()?.target.addListener('change', this.viewDataLabelUpdate.bind(this));\n }\n\n // 饼图不支持分组\n initGroups() {\n return;\n }\n\n /**\n * @override\n * @param ctx\n */\n onLayoutEnd(ctx: IModelLayoutOption): void {\n this._viewDataLabel.getDataView().reRunAllTransform();\n this.onMarkPositionUpdate();\n super.onLayoutEnd(ctx);\n }\n\n getDimensionField(): string[] {\n return this._seriesField ? [this._seriesField] : [];\n }\n getMeasureField(): string[] {\n return this._angleField;\n }\n\n private viewDataLabelUpdate() {\n this.event.emit(ChartEvent.viewDataLabelUpdate, { model: this });\n this._viewDataLabel.updateData();\n }\n\n protected generateRadiusStyle(spec: any) {\n const style: any = {};\n spec?.outerRadius && (style.outerRadius = () => this.computeLayoutRadius() * spec?.outerRadius);\n spec?.innerRadius && (style.innerRadius = () => this.computeLayoutRadius() * spec?.innerRadius);\n spec?.cornerRadius && (style.cornerRadius = () => this.computeLayoutRadius() * spec?.cornerRadius);\n return style;\n }\n\n protected computeLayoutRadius() {\n const { width, height } = this._region.getLayoutRect();\n return Math.min(width / 2, height / 2);\n }\n\n computeCenter(datum: Datum): IPoint {\n return {\n x: this._pieMark.getAttribute('x', datum, 'normal') as number,\n y: this._pieMark.getAttribute('y', datum, 'normal') as number\n };\n }\n\n protected generateLinePath(state: StateValueType) {\n const key = state === 'normal' ? 'POINT' : state.toUpperCase();\n return {\n path: (datum: Datum) => {\n return (\n `M${Math.round(datum[`${PREFIX}_ARC_LABEL_${key}_AX`])},${Math.round(\n datum[`${PREFIX}_ARC_LABEL_${key}_AY`]\n )}` +\n ` L${Math.round(datum[ARC_LABEL_POINT_BX])},${Math.round(datum[ARC_LABEL_POINT_BY])}` +\n ` L${Math.round(datum[ARC_LABEL_POINT_CX])},${Math.round(datum[ARC_LABEL_POINT_CY])}`\n );\n }\n };\n }\n\n getRadius(state: StateValueType = 'normal'): number {\n const styleRadius =\n state === 'normal'\n ? this.getSpec()[this._pieMark?.name || 'pie']?.style?.outerRadius\n : this.getSpec()[this._pieMark?.name || 'pie']?.state?.[state]?.outerRadius;\n return styleRadius ?? this._outerRadius;\n }\n\n getInnerRadius(state: StateValueType = 'normal'): number {\n const styleRadius =\n state === 'normal'\n ? this.getSpec()[this._pieMark?.name || 'pie']?.style?.innerRadius\n : this.getSpec()[this._pieMark?.name || 'pie']?.state?.[state]?.innerRadius;\n return styleRadius ?? this._innerRadius;\n }\n\n getLabelConfig(): IArcLabelSpec {\n // TODO: 转换 series spec\n return {\n visible: true,\n position: 'outside',\n showRule: 'all',\n rotate: true,\n coverEnable: false,\n spaceWidth: 5,\n layoutArcGap: 6,\n ...this._spec.label,\n\n style: {\n visible: true,\n ...this._spec.label?.style\n },\n line: {\n visible: true,\n line1MinLength: this._spec.label?.line?.line1MinLength ?? 20,\n line2MinLength: this._spec.label?.line?.line2MinLength ?? 10,\n ...this._spec.label?.line\n },\n layout: {\n align: 'arc',\n strategy: 'priority',\n tangentConstraint: true,\n ...this._spec.label?.layout\n }\n };\n }\n\n computeRadius(r: number, k?: number): number {\n return this.computeLayoutRadius() * r * (isNil(k) ? 1 : k) + this._centerOffset;\n }\n\n computeDatumRadius(datum: Datum, state?: string): number {\n return this.computeLayoutRadius() * this.getRadius(state) + this._centerOffset;\n }\n\n updateSpec(spec: any) {\n // super updateSpec 会执行 setAttrFromSpec 所以先缓存比对值\n const originalSpec = this._originalSpec;\n const { centerX, centerY, centerOffset, radius, innerRadius, cornerRadius, startAngle, endAngle, padAngle } =\n originalSpec;\n const result = super.updateSpec(spec);\n if (\n spec?.centerX !== centerX ||\n spec?.centerY !== centerY ||\n spec?.centerOffset !== centerOffset ||\n spec?.radius !== radius ||\n spec?.innerRadius !== innerRadius ||\n spec?.cornerRadius !== cornerRadius ||\n spec?.startAngle !== startAngle ||\n spec?.endAngle !== endAngle ||\n spec?.padAngle !== padAngle\n ) {\n result.reRender = true;\n result.change = true;\n }\n return result;\n }\n\n computeDatumInnerRadius(datum: Datum, state?: string): number {\n return this.computeLayoutRadius() * this.getInnerRadius(state) + this._centerOffset;\n }\n\n dataToPosition(datum: Datum): IPoint | null {\n const angle = datum[ARC_MIDDLE_ANGLE];\n if (isNil(angle)) {\n return null;\n }\n const radius = this.computeDatumRadius(datum);\n const center = this.computeCenter(datum);\n const delta = polarToCartesian({ angle, radius });\n return { x: center.x + delta.x, y: center.y + delta.y };\n }\n\n dataToCentralPosition = (datum: Datum): IPoint | null => {\n // 和 PieSeries.dataToPosition 实现不同,这里考虑了美观性,返回的位置是曲边梯形的中心\n const angle = datum[ARC_MIDDLE_ANGLE];\n if (isNil(angle)) {\n return null;\n }\n const radius = this.computeDatumRadius(datum);\n const innerRadius = this.computeDatumInnerRadius(datum);\n const center = this.computeCenter(datum);\n const delta = polarToCartesian({ angle, radius: (radius + innerRadius) / 2 });\n return { x: center.x + delta.x, y: center.y + delta.y };\n };\n\n initAnimation() {\n const animationParams: IPieAnimationParams = {\n growFrom: (datum, element, state) => {\n if (state === AnimationStateEnum.appear) {\n return this._startAngle;\n }\n if (state === AnimationStateEnum.disappear) {\n return this._endAngle;\n }\n\n const outState = [AnimationStateEnum.disappear, AnimationStateEnum.exit];\n const markElements = element.mark.elements;\n\n const data = datum;\n const dataIndex = data?.[DEFAULT_DATA_INDEX];\n\n // 当前 mark 在上个状态是否处于第一个\n if (markElements.find(e => e.data[0]?.[DEFAULT_DATA_INDEX] < dataIndex) === undefined) {\n return this._startAngle;\n }\n // 当前 mark 在上个状态是否处于最后一个\n if (markElements.find(e => e.data[0]?.[DEFAULT_DATA_INDEX] > dataIndex) === undefined) {\n return this._endAngle;\n }\n\n // 扇形不在边缘时,获取扇形生长点:获取相邻状态下相邻扇形的边缘\n // @ts-ignore\n // TODO: findLast is a new prototype function, we will later polyfill it in v-util.\n const prevMarkElement = markElements.findLast(e => e.data[0]?.[DEFAULT_DATA_INDEX] < dataIndex);\n if (outState.includes(state)) {\n return prevMarkElement?.getGraphicItem().nextAttrs?.endAngle;\n }\n return prevMarkElement?.getGraphicItem().prevAttrs?.endAngle;\n }\n };\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<PieAppearPreset>)?.preset;\n\n if (this._pieMark) {\n const pieAnimationConfig = animationConfig(\n DEFAULT_MARK_ANIMATION.pie(animationParams, appearPreset),\n userAnimationConfig('pie', this._spec)\n );\n\n if (pieAnimationConfig.normal && (pieAnimationConfig.normal as IAnimationTypeConfig).type) {\n pieAnimationConfig.normal = centerOffsetConfig(\n this._pieMark,\n pieAnimationConfig.normal as IAnimationTypeConfig\n );\n }\n\n this._pieMark.setAnimationConfig(pieAnimationConfig);\n }\n\n if (this._labelMark) {\n this._labelMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig('label', this._spec))\n );\n\n if (this._labelLineMark) {\n this._labelLineMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig('labelLine', this._spec))\n );\n }\n }\n }\n\n getDefaultShapeType(): string {\n return 'square';\n }\n\n getGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n getStackGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n getStackValueField(): string {\n // do nothing\n return '';\n }\n\n setValueFieldToStack(): void {\n // do nothing\n }\n\n setValueFieldToPercent(): void {\n //do nothing\n }\n}\n\nexport class PieSeries extends BasePieSeries<IPieSeriesSpec> implements IArcSeries {\n static readonly type: string = SeriesTypeEnum.pie;\n type = SeriesTypeEnum.pie;\n}\n\nexport class Pie3dSeries extends BasePieSeries<IPie3dSeriesSpec> implements IArcSeries {\n static readonly type: string = SeriesTypeEnum.pie3d;\n type = SeriesTypeEnum.pie3d;\n protected _arcMarkType: MarkTypeEnum = MarkTypeEnum.arc3d;\n protected _angle3d: number;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n this._angle3d = this._spec?.angle3d ?? -Math.PI / 3;\n }\n\n initMarkStyle(): void {\n const pieMark = this._pieMark;\n if (pieMark) {\n this.setMarkStyle(\n pieMark,\n {\n x: () => this._center?.x ?? this._region.getLayoutRect().width / 2,\n y: () => this._center?.y ?? this._region.getLayoutRect().height / 2,\n beta: () => this._angle3d,\n fill: this.getColorAttribute(),\n fillOpacity: this._theme?.pie?.style?.fillOpacity ?? 1,\n outerRadius: () => this.computeLayoutRadius() * this._outerRadius,\n innerRadius: () => this.computeLayoutRadius() * this._innerRadius,\n cornerRadius: () => this.computeLayoutRadius() * this._cornerRadius,\n startAngle: field(ARC_START_ANGLE).bind(this),\n endAngle: field(ARC_END_ANGLE).bind(this),\n padAngle: this._padAngle,\n centerOffset: this._centerOffset\n },\n 'normal',\n AttributeLevel.Series\n );\n\n // radius 配置需要额外处理比例值\n const pieSpec = this.getSpec()[pieMark.name];\n if (pieSpec) {\n // pieMark.setStyle(pieSpec.style, 'normal', AttributeLevel.User_Mark);\n for (const state in pieSpec.state || {}) {\n this.setMarkStyle(pieMark, this.generateRadiusStyle(pieSpec.state[state]), state, AttributeLevel.User_Mark);\n }\n }\n\n this._trigger.registerMark(pieMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(pieMark);\n }\n\n const labelMark = this._labelMark;\n const spec = this.getSpec();\n const params3d: {\n beta?: number;\n anchor3d?: (datum: Datum) => any;\n } = {};\n if (spec?.label?.support3d) {\n params3d.beta = -Math.PI / 3;\n params3d.anchor3d = (datum: Datum) => {\n const anchor = [\n (this._center?.x ?? this._region.getLayoutRect().width / 2) - field(DEFAULT_LABEL_X).bind(this)(datum),\n (this._center?.y ?? this._region.getLayoutRect().height / 2) - field(DEFAULT_LABEL_Y).bind(this)(datum)\n ];\n return anchor;\n };\n }\n if (labelMark) {\n this.setMarkStyle(\n labelMark,\n {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n x: field(DEFAULT_LABEL_X).bind(this),\n y: field(DEFAULT_LABEL_Y).bind(this),\n text: field(DEFAULT_LABEL_TEXT).bind(this),\n fill: this._spec.label?.style?.fill || this.getColorAttribute(),\n textAlign: field(DEFAULT_LABEL_ALIGN).bind(this),\n textBaseline: this._spec.label?.position === 'inside' ? 'middle' : 'top',\n angle: (datum: Datum) => {\n const angle = datum[ARC_MIDDLE_ANGLE];\n return this._spec.label?.position === 'inside' ? degrees(angle) : 0;\n },\n limit: field(DEFAULT_LABEL_LIMIT).bind(this),\n ...params3d\n },\n undefined,\n // 标签属性基于用户配置生成,样式优先级应当为用户级\n AttributeLevel.User_Mark\n );\n\n this._trigger.registerMark(labelMark);\n }\n\n const labelLineMark = this._labelLineMark;\n if (labelLineMark) {\n this.setMarkStyle(labelLineMark, {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n stroke: (this._spec.label?.line?.style?.stroke as any) || this.getColorAttribute(),\n lineWidth: 1,\n ...this.generateLinePath('normal')\n });\n this.setMarkStyle(labelLineMark, this.generateLinePath('hover'), 'hover');\n this.setMarkStyle(labelLineMark, this.generateLinePath('selected'), 'selected');\n\n this._trigger.registerMark(labelLineMark);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/series/pie/pie.ts"],"names":[],"mappings":"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","file":"pie.js","sourcesContent":["import { isValid } from '@visactor/vutils';\nimport { DataView } from '@visactor/vdataset';\nimport {\n AttributeLevel,\n ARC_START_ANGLE,\n ARC_END_ANGLE,\n ARC_RATIO,\n ARC_MIDDLE_ANGLE,\n ARC_RADIAN,\n ARC_QUADRANT,\n ARC_K,\n PREFIX,\n DEFAULT_LABEL_X,\n DEFAULT_LABEL_Y,\n DEFAULT_LABEL_TEXT,\n ARC_LABEL_POINT_BX,\n ARC_LABEL_POINT_BY,\n ARC_LABEL_POINT_CX,\n ARC_LABEL_POINT_CY,\n DEFAULT_LABEL_LIMIT,\n DEFAULT_LABEL_ALIGN,\n DEFAULT_LABEL_VISIBLE,\n POLAR_START_RADIAN,\n POLAR_END_RADIAN,\n DEFAULT_DATA_INDEX,\n ChartEvent\n} from '../../constant';\nimport type { Maybe, IPoint, Datum, StateValueType } from '../../typings';\nimport {\n degrees,\n field,\n isNil,\n isSpecValueWithScale,\n normalizeStartEndAngle,\n polarToCartesian,\n radians\n} from '../../util';\nimport type { IModelLayoutOption } from '../../model/interface';\nimport { PolarSeries } from '../polar/polar';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport type { IArcMark } from '../../mark/arc';\nimport type { ITextMark } from '../../mark/text';\nimport type { IPathMark } from '../../mark/path';\nimport type { IArcSeries, SeriesMarkMap } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { SeriesMarkNameEnum } from '../interface';\nimport { SeriesTypeEnum } from '../interface/type';\nimport type { IPieOpt } from '../../data/transforms/pie';\n// eslint-disable-next-line no-duplicate-imports\nimport { pie } from '../../data/transforms/pie';\n\nimport { arcLabel } from '../../layout/label/arc-label';\nimport { registerDataSetInstanceTransform } from '../../data/register';\nimport type { IPieAnimationParams, PieAppearPreset } from './animation/animation';\nimport { animationConfig, shouldDoMorph, userAnimationConfig } from '../../animation/utils';\nimport { AnimationStateEnum } from '../../animation/interface';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport type { IArcLabelSpec, IPie3dSeriesSpec, IPieSeriesSpec, IPieSeriesTheme } from './interface';\nimport { SeriesData } from '../base/series-data';\nimport type { IStateAnimateSpec } from '../../animation/spec';\nimport type { IAnimationTypeConfig } from '@visactor/vgrammar';\nimport { centerOffsetConfig } from './animation/centerOffset';\nimport { BaseSeries } from '../base/base-series';\n\ntype IBasePieSeriesSpec = Omit<IPieSeriesSpec, 'type'> & { type: string };\n\nexport class BasePieSeries<T extends IBasePieSeriesSpec> extends PolarSeries<T> implements IArcSeries {\n protected _pieMarkName: SeriesMarkNameEnum = SeriesMarkNameEnum.pie;\n protected _pieMarkType: MarkTypeEnum = MarkTypeEnum.arc;\n\n static readonly mark: SeriesMarkMap = {\n ...BaseSeries.mark,\n [SeriesMarkNameEnum.pie]: { name: SeriesMarkNameEnum.pie, type: MarkTypeEnum.arc },\n [SeriesMarkNameEnum.labelLine]: { name: SeriesMarkNameEnum.labelLine, type: MarkTypeEnum.path }\n };\n\n protected _viewDataLabel!: SeriesData;\n\n // 饼图渲染不依赖于极坐标系轴,因此由 series 自己存储相关配置信息\n protected _center!: IPoint | null;\n public get center(): IPoint {\n return {\n x: this._spec?.centerX ?? this._region.getLayoutRect().width / 2,\n y: this._spec?.centerY ?? this._region.getLayoutRect().height / 2\n };\n }\n protected _centerOffset!: number;\n\n protected _cornerRadius!: number;\n\n protected _startAngle: number = POLAR_START_RADIAN;\n protected _endAngle: number = POLAR_END_RADIAN;\n protected _padAngle!: number;\n\n protected _pieMark: IArcMark | null = null;\n protected _labelMark: ITextMark | null = null;\n protected _labelLineMark: IPathMark | null = null;\n\n protected declare _theme: Maybe<IPieSeriesTheme>;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n this._centerOffset = this._spec?.centerOffset ?? 0;\n this._cornerRadius = this._spec?.cornerRadius ?? 0;\n\n const normalized = normalizeStartEndAngle(\n isValid(this._spec?.startAngle) ? radians(this._spec.startAngle) : this._startAngle,\n isValid(this._spec?.endAngle) ? radians(this._spec.endAngle) : this._endAngle\n );\n this._startAngle = normalized.startAngle;\n this._endAngle = normalized.endAngle;\n this._padAngle = isValid(this._spec?.padAngle) ? radians(this._spec.padAngle) : 0;\n\n // 值信息给角度,angleField 是为了兼容小组件用法,因为 spec 改造前已经开放了\n this.setAngleField(this._spec.valueField || this._spec.angleField);\n if (this._spec.categoryField) {\n this.setSeriesField(this._spec.categoryField);\n }\n this._radiusField = [];\n }\n\n initData() {\n super.initData();\n\n const viewData = this.getViewData();\n if (!viewData) {\n return;\n }\n\n registerDataSetInstanceTransform(this._dataSet, 'pie', pie);\n registerDataSetInstanceTransform(this._dataSet, 'arcLabel', arcLabel);\n\n viewData.transform(\n {\n type: 'pie',\n options: {\n angleField: this._angleField[0],\n startAngle: this._startAngle,\n endAngle: this._endAngle,\n asStartAngle: ARC_START_ANGLE,\n asEndAngle: ARC_END_ANGLE,\n asRatio: ARC_RATIO,\n asMiddleAngle: ARC_MIDDLE_ANGLE,\n asRadian: ARC_RADIAN,\n asQuadrant: ARC_QUADRANT,\n asK: ARC_K\n } as IPieOpt\n },\n false\n );\n\n const viewDataLabel = new DataView(this._dataSet);\n viewDataLabel.parse([this.getViewData()], {\n type: 'dataview'\n });\n viewDataLabel.name = `${PREFIX}_series_${this.id}_viewDataLabel`;\n viewDataLabel.transform(\n {\n type: 'arcLabel',\n options: { series: this }\n },\n false\n );\n\n this._viewDataLabel = new SeriesData(this._option, viewDataLabel);\n }\n\n initMark(): void {\n this._pieMark = this._createMark(\n {\n ...BasePieSeries.mark.pie,\n name: this._pieMarkName,\n type: this._pieMarkType\n },\n {\n morph: shouldDoMorph(this._spec.animation, this._spec.morph, userAnimationConfig(this.type, this._spec)),\n defaultMorphElementKey: this._seriesField,\n key: this._seriesField,\n groupKey: this._seriesField,\n skipBeforeLayouted: true,\n isSeriesMark: true\n }\n ) as IArcMark;\n\n if (this._spec?.label?.visible) {\n const spec = this.getSpec();\n this._labelMark = this._createMark(BasePieSeries.mark.label, {\n dataView: this._viewDataLabel.getDataView(),\n dataProductId: this._viewDataLabel.getProductId(),\n skipBeforeLayouted: true,\n themeSpec: this._theme?.label,\n support3d: spec?.label?.support3d,\n markSpec: {\n visible: true,\n ...this.getSpec()?.label\n }\n }) as ITextMark;\n\n this._labelLineMark = this._createMark(BasePieSeries.mark.labelLine, {\n dataView: this._viewDataLabel.getDataView(),\n dataProductId: this._viewDataLabel.getProductId(),\n skipBeforeLayouted: true,\n themeSpec: this._theme?.label?.line,\n support3d: spec?.label?.support3d,\n markSpec: {\n visible: true,\n ...this.getSpec()?.label?.line\n }\n }) as ITextMark;\n }\n }\n\n initMarkStyle(): void {\n const pieMark = this._pieMark;\n if (pieMark) {\n this.setMarkStyle(\n pieMark,\n {\n x: () => this._center?.x ?? this._region.getLayoutRect().width / 2,\n y: () => this._center?.y ?? this._region.getLayoutRect().height / 2,\n fill: this.getColorAttribute(),\n outerRadius: isSpecValueWithScale(this._outerRadius)\n ? this._outerRadius\n : () => this.computeLayoutRadius() * this._outerRadius,\n innerRadius: isSpecValueWithScale(this._innerRadius)\n ? this._innerRadius\n : () => this.computeLayoutRadius() * this._innerRadius,\n cornerRadius: () => this.computeLayoutRadius() * this._cornerRadius,\n startAngle: field(ARC_START_ANGLE).bind(this),\n endAngle: field(ARC_END_ANGLE).bind(this),\n padAngle: this._padAngle,\n centerOffset: this._centerOffset\n },\n 'normal',\n AttributeLevel.Series\n );\n\n // radius 配置需要额外处理比例值\n const pieSpec = this.getSpec()[pieMark.name];\n if (pieSpec) {\n // pieMark.setStyle(pieSpec.style, 'normal', AttributeLevel.User_Mark);\n for (const state in pieSpec.state || {}) {\n this.setMarkStyle(pieMark, this.generateRadiusStyle(pieSpec.state[state]), state, AttributeLevel.User_Mark);\n }\n }\n\n this._trigger.registerMark(pieMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(pieMark);\n }\n\n const labelMark = this._labelMark;\n if (labelMark) {\n this.setMarkStyle(\n labelMark,\n {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n x: field(DEFAULT_LABEL_X).bind(this),\n y: field(DEFAULT_LABEL_Y).bind(this),\n text: field(DEFAULT_LABEL_TEXT).bind(this),\n fill: this._spec.label?.style?.fill || this.getColorAttribute(),\n textAlign: field(DEFAULT_LABEL_ALIGN).bind(this),\n textBaseline: this._spec.label?.position === 'inside' ? 'middle' : 'top',\n angle: (datum: Datum) => {\n const angle = datum[ARC_MIDDLE_ANGLE];\n return this._spec.label?.position === 'inside' ? degrees(angle) : 0;\n },\n limit: field(DEFAULT_LABEL_LIMIT).bind(this)\n },\n undefined,\n // 标签属性基于用户配置生成,样式优先级应当为用户级\n AttributeLevel.User_Mark\n );\n\n this._trigger.registerMark(labelMark);\n }\n\n const labelLineMark = this._labelLineMark;\n if (labelLineMark) {\n this.setMarkStyle(labelLineMark, {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n stroke: (this._spec.label?.line?.style?.stroke as any) || this.getColorAttribute(),\n lineWidth: 1,\n ...this.generateLinePath('normal')\n });\n this.setMarkStyle(labelLineMark, this.generateLinePath('hover'), 'hover');\n this.setMarkStyle(labelLineMark, this.generateLinePath('selected'), 'selected');\n\n this._trigger.registerMark(labelLineMark);\n }\n }\n\n afterInitMark(): void {\n super.afterInitMark();\n this._trigger.setStateKeys([this._seriesField as string, ...this._radiusField]);\n }\n\n initEvent(): void {\n super.initEvent();\n this._viewDataLabel.getDataView()?.target.addListener('change', this.viewDataLabelUpdate.bind(this));\n }\n\n // 饼图不支持分组\n initGroups() {\n return;\n }\n\n /**\n * @override\n * @param ctx\n */\n onLayoutEnd(ctx: IModelLayoutOption): void {\n this._viewDataLabel.getDataView().reRunAllTransform();\n this.onMarkPositionUpdate();\n super.onLayoutEnd(ctx);\n }\n\n getDimensionField(): string[] {\n return this._seriesField ? [this._seriesField] : [];\n }\n getMeasureField(): string[] {\n return this._angleField;\n }\n\n private viewDataLabelUpdate() {\n this.event.emit(ChartEvent.viewDataLabelUpdate, { model: this });\n this._viewDataLabel.updateData();\n }\n\n protected generateRadiusStyle(spec: any) {\n const style: any = {};\n spec?.outerRadius && (style.outerRadius = () => this.computeLayoutRadius() * spec?.outerRadius);\n spec?.innerRadius && (style.innerRadius = () => this.computeLayoutRadius() * spec?.innerRadius);\n spec?.cornerRadius && (style.cornerRadius = () => this.computeLayoutRadius() * spec?.cornerRadius);\n return style;\n }\n\n protected computeLayoutRadius() {\n const { width, height } = this._region.getLayoutRect();\n return Math.min(width / 2, height / 2);\n }\n\n computeCenter(datum: Datum): IPoint {\n return {\n x: this._pieMark.getAttribute('x', datum, 'normal') as number,\n y: this._pieMark.getAttribute('y', datum, 'normal') as number\n };\n }\n\n protected generateLinePath(state: StateValueType) {\n const key = state === 'normal' ? 'POINT' : state.toUpperCase();\n return {\n path: (datum: Datum) => {\n return (\n `M${Math.round(datum[`${PREFIX}_ARC_LABEL_${key}_AX`])},${Math.round(\n datum[`${PREFIX}_ARC_LABEL_${key}_AY`]\n )}` +\n ` L${Math.round(datum[ARC_LABEL_POINT_BX])},${Math.round(datum[ARC_LABEL_POINT_BY])}` +\n ` L${Math.round(datum[ARC_LABEL_POINT_CX])},${Math.round(datum[ARC_LABEL_POINT_CY])}`\n );\n }\n };\n }\n\n getRadius(state: StateValueType = 'normal'): number {\n const styleRadius =\n state === 'normal'\n ? this.getSpec()[this._pieMark?.name || 'pie']?.style?.outerRadius\n : this.getSpec()[this._pieMark?.name || 'pie']?.state?.[state]?.outerRadius;\n return styleRadius ?? this._outerRadius;\n }\n\n getInnerRadius(state: StateValueType = 'normal'): number {\n const styleRadius =\n state === 'normal'\n ? this.getSpec()[this._pieMark?.name || 'pie']?.style?.innerRadius\n : this.getSpec()[this._pieMark?.name || 'pie']?.state?.[state]?.innerRadius;\n return styleRadius ?? this._innerRadius;\n }\n\n getLabelConfig(): IArcLabelSpec {\n // TODO: 转换 series spec\n return {\n visible: true,\n position: 'outside',\n showRule: 'all',\n rotate: true,\n coverEnable: false,\n spaceWidth: 5,\n layoutArcGap: 6,\n ...this._spec.label,\n\n style: {\n visible: true,\n ...this._spec.label?.style\n },\n line: {\n visible: true,\n line1MinLength: this._spec.label?.line?.line1MinLength ?? 20,\n line2MinLength: this._spec.label?.line?.line2MinLength ?? 10,\n ...this._spec.label?.line\n },\n layout: {\n align: 'arc',\n strategy: 'priority',\n tangentConstraint: true,\n ...this._spec.label?.layout\n }\n };\n }\n\n computeRadius(r: number, k?: number): number {\n return this.computeLayoutRadius() * r * (isNil(k) ? 1 : k) + this._centerOffset;\n }\n\n computeDatumRadius(datum: Datum, state?: string): number {\n return this.computeLayoutRadius() * this.getRadius(state) + this._centerOffset;\n }\n\n updateSpec(spec: any) {\n // super updateSpec 会执行 setAttrFromSpec 所以先缓存比对值\n const originalSpec = this._originalSpec;\n const { centerX, centerY, centerOffset, radius, innerRadius, cornerRadius, startAngle, endAngle, padAngle } =\n originalSpec;\n const result = super.updateSpec(spec);\n if (\n spec?.centerX !== centerX ||\n spec?.centerY !== centerY ||\n spec?.centerOffset !== centerOffset ||\n spec?.radius !== radius ||\n spec?.innerRadius !== innerRadius ||\n spec?.cornerRadius !== cornerRadius ||\n spec?.startAngle !== startAngle ||\n spec?.endAngle !== endAngle ||\n spec?.padAngle !== padAngle\n ) {\n result.reRender = true;\n result.change = true;\n }\n return result;\n }\n\n computeDatumInnerRadius(datum: Datum, state?: string): number {\n return this.computeLayoutRadius() * this.getInnerRadius(state) + this._centerOffset;\n }\n\n dataToPosition(datum: Datum): IPoint | null {\n const angle = datum[ARC_MIDDLE_ANGLE];\n if (isNil(angle)) {\n return null;\n }\n const radius = this.computeDatumRadius(datum);\n const center = this.computeCenter(datum);\n const delta = polarToCartesian({ angle, radius });\n return { x: center.x + delta.x, y: center.y + delta.y };\n }\n\n dataToCentralPosition = (datum: Datum): IPoint | null => {\n // 和 PieSeries.dataToPosition 实现不同,这里考虑了美观性,返回的位置是曲边梯形的中心\n const angle = datum[ARC_MIDDLE_ANGLE];\n if (isNil(angle)) {\n return null;\n }\n const radius = this.computeDatumRadius(datum);\n const innerRadius = this.computeDatumInnerRadius(datum);\n const center = this.computeCenter(datum);\n const delta = polarToCartesian({ angle, radius: (radius + innerRadius) / 2 });\n return { x: center.x + delta.x, y: center.y + delta.y };\n };\n\n initAnimation() {\n const animationParams: IPieAnimationParams = {\n growFrom: (datum, element, state) => {\n if (state === AnimationStateEnum.appear) {\n return this._startAngle;\n }\n if (state === AnimationStateEnum.disappear) {\n return this._endAngle;\n }\n\n const outState = [AnimationStateEnum.disappear, AnimationStateEnum.exit];\n const markElements = element.mark.elements;\n\n const data = datum;\n const dataIndex = data?.[DEFAULT_DATA_INDEX];\n\n // 当前 mark 在上个状态是否处于第一个\n if (markElements.find(e => e.data[0]?.[DEFAULT_DATA_INDEX] < dataIndex) === undefined) {\n return this._startAngle;\n }\n // 当前 mark 在上个状态是否处于最后一个\n if (markElements.find(e => e.data[0]?.[DEFAULT_DATA_INDEX] > dataIndex) === undefined) {\n return this._endAngle;\n }\n\n // 扇形不在边缘时,获取扇形生长点:获取相邻状态下相邻扇形的边缘\n // @ts-ignore\n // TODO: findLast is a new prototype function, we will later polyfill it in v-util.\n const prevMarkElement = markElements.findLast(e => e.data[0]?.[DEFAULT_DATA_INDEX] < dataIndex);\n if (outState.includes(state)) {\n return prevMarkElement?.getGraphicItem().nextAttrs?.endAngle;\n }\n return prevMarkElement?.getGraphicItem().prevAttrs?.endAngle;\n }\n };\n const appearPreset = (this._spec?.animationAppear as IStateAnimateSpec<PieAppearPreset>)?.preset;\n\n if (this._pieMark) {\n const pieAnimationConfig = animationConfig(\n DEFAULT_MARK_ANIMATION.pie(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.pie, this._spec)\n );\n\n if (pieAnimationConfig.normal && (pieAnimationConfig.normal as IAnimationTypeConfig).type) {\n pieAnimationConfig.normal = centerOffsetConfig(\n this._pieMark,\n pieAnimationConfig.normal as IAnimationTypeConfig\n );\n }\n\n this._pieMark.setAnimationConfig(pieAnimationConfig);\n }\n\n if (this._labelMark) {\n this._labelMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.label, this._spec))\n );\n\n if (this._labelLineMark) {\n this._labelLineMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.label(), userAnimationConfig(SeriesMarkNameEnum.labelLine, this._spec))\n );\n }\n }\n }\n\n getDefaultShapeType(): string {\n return 'square';\n }\n\n getGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n getStackGroupFields(): string[] {\n // do nothing\n return [];\n }\n\n getStackValueField(): string {\n // do nothing\n return '';\n }\n\n setValueFieldToStack(): void {\n // do nothing\n }\n\n setValueFieldToPercent(): void {\n //do nothing\n }\n}\n\nexport class PieSeries extends BasePieSeries<IPieSeriesSpec> implements IArcSeries {\n static readonly type: string = SeriesTypeEnum.pie;\n type = SeriesTypeEnum.pie;\n}\n\nexport class Pie3dSeries extends BasePieSeries<IPie3dSeriesSpec> implements IArcSeries {\n static readonly type: string = SeriesTypeEnum.pie3d;\n type = SeriesTypeEnum.pie3d;\n protected _pieMarkName: SeriesMarkNameEnum = SeriesMarkNameEnum.pie3d;\n protected _pieMarkType: MarkTypeEnum = MarkTypeEnum.arc3d;\n\n static readonly mark: SeriesMarkMap = {\n ...BaseSeries.mark,\n [SeriesMarkNameEnum.pie3d]: { name: SeriesMarkNameEnum.pie3d, type: MarkTypeEnum.arc3d },\n [SeriesMarkNameEnum.labelLine]: { name: SeriesMarkNameEnum.labelLine, type: MarkTypeEnum.path }\n };\n\n protected _angle3d: number;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n this._angle3d = this._spec?.angle3d ?? -Math.PI / 3;\n }\n\n initMarkStyle(): void {\n const pieMark = this._pieMark;\n if (pieMark) {\n this.setMarkStyle(\n pieMark,\n {\n x: () => this._center?.x ?? this._region.getLayoutRect().width / 2,\n y: () => this._center?.y ?? this._region.getLayoutRect().height / 2,\n beta: () => this._angle3d,\n fill: this.getColorAttribute(),\n outerRadius: () => this.computeLayoutRadius() * this._outerRadius,\n innerRadius: () => this.computeLayoutRadius() * this._innerRadius,\n cornerRadius: () => this.computeLayoutRadius() * this._cornerRadius,\n startAngle: field(ARC_START_ANGLE).bind(this),\n endAngle: field(ARC_END_ANGLE).bind(this),\n padAngle: this._padAngle,\n centerOffset: this._centerOffset\n },\n 'normal',\n AttributeLevel.Series\n );\n\n // radius 配置需要额外处理比例值\n const pieSpec = this.getSpec()[pieMark.name];\n if (pieSpec) {\n // pieMark.setStyle(pieSpec.style, 'normal', AttributeLevel.User_Mark);\n for (const state in pieSpec.state || {}) {\n this.setMarkStyle(pieMark, this.generateRadiusStyle(pieSpec.state[state]), state, AttributeLevel.User_Mark);\n }\n }\n\n this._trigger.registerMark(pieMark);\n this._tooltipHelper?.activeTriggerSet.mark.add(pieMark);\n }\n\n const labelMark = this._labelMark;\n const spec = this.getSpec();\n const params3d: {\n beta?: number;\n anchor3d?: (datum: Datum) => any;\n } = {};\n if (spec?.label?.support3d) {\n params3d.beta = -Math.PI / 3;\n params3d.anchor3d = (datum: Datum) => {\n const anchor = [\n (this._center?.x ?? this._region.getLayoutRect().width / 2) - field(DEFAULT_LABEL_X).bind(this)(datum),\n (this._center?.y ?? this._region.getLayoutRect().height / 2) - field(DEFAULT_LABEL_Y).bind(this)(datum)\n ];\n return anchor;\n };\n }\n if (labelMark) {\n this.setMarkStyle(\n labelMark,\n {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n x: field(DEFAULT_LABEL_X).bind(this),\n y: field(DEFAULT_LABEL_Y).bind(this),\n text: field(DEFAULT_LABEL_TEXT).bind(this),\n fill: this._spec.label?.style?.fill || this.getColorAttribute(),\n textAlign: field(DEFAULT_LABEL_ALIGN).bind(this),\n textBaseline: this._spec.label?.position === 'inside' ? 'middle' : 'top',\n angle: (datum: Datum) => {\n const angle = datum[ARC_MIDDLE_ANGLE];\n return this._spec.label?.position === 'inside' ? degrees(angle) : 0;\n },\n limit: field(DEFAULT_LABEL_LIMIT).bind(this),\n ...params3d\n },\n undefined,\n // 标签属性基于用户配置生成,样式优先级应当为用户级\n AttributeLevel.User_Mark\n );\n\n this._trigger.registerMark(labelMark);\n }\n\n const labelLineMark = this._labelLineMark;\n if (labelLineMark) {\n this.setMarkStyle(labelLineMark, {\n visible: field(DEFAULT_LABEL_VISIBLE).bind(this),\n stroke: (this._spec.label?.line?.style?.stroke as any) || this.getColorAttribute(),\n lineWidth: 1,\n ...this.generateLinePath('normal'),\n ...params3d,\n anchor3d: () => {\n return [\n this._center?.x ?? this._region.getLayoutRect().width / 2,\n this._center?.y ?? this._region.getLayoutRect().height / 2\n ];\n }\n });\n this.setMarkStyle(labelLineMark, this.generateLinePath('hover'), 'hover');\n this.setMarkStyle(labelLineMark, this.generateLinePath('selected'), 'selected');\n\n this._trigger.registerMark(labelLineMark);\n }\n }\n}\n"]}
|