@visactor/vchart 2.1.0-alpha.1 → 2.1.0-alpha.10
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/build/es5/index.js +3 -3
- package/build/index.es.js +5950 -3342
- package/build/index.js +5950 -3342
- package/build/index.min.js +2 -2
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/chart/base/base-chart-transformer.d.ts +3 -0
- package/cjs/chart/base/base-chart-transformer.js +23 -3
- package/cjs/chart/base/base-chart-transformer.js.map +1 -1
- package/cjs/chart/base/base-chart.d.ts +25 -9
- package/cjs/chart/base/base-chart.js +199 -27
- package/cjs/chart/base/base-chart.js.map +1 -1
- package/cjs/chart/gauge/gauge-transformer.js +3 -2
- package/cjs/chart/gauge/gauge-transformer.js.map +1 -1
- package/cjs/chart/index.js +1 -1
- package/cjs/chart/interface/chart.d.ts +1 -0
- package/cjs/chart/interface/chart.js.map +1 -1
- package/cjs/chart/pie/base/pie-transformer.js +2 -2
- package/cjs/chart/pie/base/pie-transformer.js.map +1 -1
- package/cjs/chart/polar/polar-transformer.js +1 -1
- package/cjs/chart/polar/polar-transformer.js.map +1 -1
- package/cjs/chart/polar/progress-like/progress-like-transformer.js +1 -1
- package/cjs/chart/polar/progress-like/progress-like-transformer.js.map +1 -1
- package/cjs/chart/progress/circular/circular-progress-transformer.js +2 -1
- package/cjs/chart/progress/circular/circular-progress-transformer.js.map +1 -1
- package/cjs/chart/progress/linear/linear-progress-transformer.js +1 -1
- package/cjs/chart/progress/linear/linear-progress-transformer.js.map +1 -1
- package/cjs/chart/radar/radar-transformer.js +3 -2
- package/cjs/chart/radar/radar-transformer.js.map +1 -1
- package/cjs/chart/range-area/range-area-transformer.js +2 -2
- package/cjs/chart/range-area/range-area-transformer.js.map +1 -1
- package/cjs/chart/rose/rose-transformer.js +2 -1
- package/cjs/chart/rose/rose-transformer.js.map +1 -1
- package/cjs/chart/stack.js +1 -1
- package/cjs/chart/util.d.ts +4 -1
- package/cjs/chart/util.js +41 -5
- package/cjs/chart/util.js.map +1 -1
- package/cjs/chart/waterfall/waterfall-transformer.js +2 -1
- package/cjs/chart/waterfall/waterfall-transformer.js.map +1 -1
- package/cjs/compile/compiler.js +11 -9
- package/cjs/compile/compiler.js.map +1 -1
- package/cjs/compile/data/compilable-data.d.ts +1 -1
- package/cjs/compile/data/compilable-data.js +1 -1
- package/cjs/compile/data/compilable-data.js.map +1 -1
- package/cjs/compile/grammar-item.d.ts +1 -1
- package/cjs/compile/grammar-item.js.map +1 -1
- package/cjs/compile/interface/compilable-item.d.ts +1 -1
- package/cjs/compile/interface/compilable-item.js.map +1 -1
- package/cjs/component/axis/base-axis.d.ts +2 -7
- package/cjs/component/axis/base-axis.js +26 -6
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/band-axis.d.ts +1 -7
- package/cjs/component/axis/mixin/linear-axis-mixin.js +7 -10
- package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/cjs/component/axis/polar/band-axis.d.ts +2 -0
- package/cjs/component/axis/polar/band-axis.js +3 -0
- package/cjs/component/axis/polar/band-axis.js.map +1 -1
- package/cjs/component/axis/polar/linear-axis.js +3 -0
- package/cjs/component/axis/polar/linear-axis.js.map +1 -1
- package/cjs/component/base/base-component.d.ts +7 -7
- package/cjs/component/base/base-component.js +41 -6
- package/cjs/component/base/base-component.js.map +1 -1
- package/cjs/component/base/release-vrender-component.d.ts +10 -0
- package/cjs/component/base/release-vrender-component.js +37 -0
- package/cjs/component/base/release-vrender-component.js.map +1 -0
- package/cjs/component/brush/brush.d.ts +3 -7
- package/cjs/component/brush/brush.js +22 -5
- package/cjs/component/brush/brush.js.map +1 -1
- package/cjs/component/crosshair/base.d.ts +4 -7
- package/cjs/component/crosshair/base.js +30 -2
- package/cjs/component/crosshair/base.js.map +1 -1
- package/cjs/component/custom-mark/custom-mark.d.ts +4 -7
- package/cjs/component/custom-mark/custom-mark.js +27 -3
- package/cjs/component/custom-mark/custom-mark.js.map +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.d.ts +3 -7
- package/cjs/component/data-zoom/data-filter-base-component.js +15 -2
- package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +1 -0
- package/cjs/component/data-zoom/data-zoom/data-zoom.js +19 -1
- package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +1 -0
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +12 -1
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
- package/cjs/component/geo/geo-coordinate.d.ts +1 -7
- package/cjs/component/index.js +1 -2
- package/cjs/component/indicator/indicator.d.ts +1 -0
- package/cjs/component/indicator/indicator.js +11 -2
- package/cjs/component/indicator/indicator.js.map +1 -1
- package/cjs/component/indicator/util.d.ts +4 -3
- package/cjs/component/indicator/util.js +1 -1
- package/cjs/component/indicator/util.js.map +1 -1
- package/cjs/component/label/base-label.d.ts +1 -7
- package/cjs/component/label/base-label.js +6 -2
- package/cjs/component/label/base-label.js.map +1 -1
- package/cjs/component/label/label.js +1 -1
- package/cjs/component/label/label.js.map +1 -1
- package/cjs/component/legend/base-legend.d.ts +2 -7
- package/cjs/component/legend/base-legend.js +20 -3
- package/cjs/component/legend/base-legend.js.map +1 -1
- package/cjs/component/marker/base-marker.d.ts +14 -7
- package/cjs/component/marker/base-marker.js +108 -12
- package/cjs/component/marker/base-marker.js.map +1 -1
- package/cjs/component/marker/mark-area/cartesian-mark-area.js +3 -3
- package/cjs/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
- package/cjs/component/marker/mark-area/polar-mark-area.js +2 -2
- package/cjs/component/marker/mark-area/polar-mark-area.js.map +1 -1
- package/cjs/component/marker/mark-line/base-mark-line.js +2 -4
- package/cjs/component/marker/mark-line/base-mark-line.js.map +1 -1
- package/cjs/component/marker/mark-line/cartesian-mark-line.js +2 -2
- package/cjs/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
- package/cjs/component/marker/mark-line/polar-mark-line.js +2 -2
- package/cjs/component/marker/mark-line/polar-mark-line.js.map +1 -1
- package/cjs/component/marker/mark-point/base-mark-point.js +20 -6
- package/cjs/component/marker/mark-point/base-mark-point.js.map +1 -1
- package/cjs/component/marker/mark-point/cartesian-mark-point.js +2 -2
- package/cjs/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
- package/cjs/component/marker/mark-point/polar-mark-point.js +1 -1
- package/cjs/component/marker/mark-point/polar-mark-point.js.map +1 -1
- package/cjs/component/marker/utils.d.ts +4 -4
- package/cjs/component/marker/utils.js +27 -23
- package/cjs/component/marker/utils.js.map +1 -1
- package/cjs/component/player/player.d.ts +1 -0
- package/cjs/component/player/player.js +10 -0
- package/cjs/component/player/player.js.map +1 -1
- package/cjs/component/title/title.d.ts +1 -7
- package/cjs/component/title/title.js +6 -2
- package/cjs/component/title/title.js.map +1 -1
- package/cjs/component/tooltip/tooltip.d.ts +1 -0
- package/cjs/component/tooltip/tooltip.js +8 -0
- package/cjs/component/tooltip/tooltip.js.map +1 -1
- package/cjs/component/util.js +1 -1
- package/cjs/constant/box-plot.js +2 -1
- package/cjs/constant/scatter.js +1 -2
- package/cjs/core/expression-function.js +2 -1
- package/cjs/core/factory.js +1 -1
- package/cjs/core/index.js +1 -1
- package/cjs/core/instance-manager.js +1 -1
- package/cjs/core/interface.js +1 -1
- package/cjs/core/util.js +1 -1
- package/cjs/core/vchart.d.ts +5 -1
- package/cjs/core/vchart.js +30 -18
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/data/data-view-utils.d.ts +5 -0
- package/cjs/data/data-view-utils.js +58 -0
- package/cjs/data/data-view-utils.js.map +1 -0
- package/cjs/data/register.js +1 -1
- package/cjs/data/transforms/box-plot.d.ts +4 -1
- package/cjs/data/transforms/box-plot.js +3 -3
- package/cjs/data/transforms/box-plot.js.map +1 -1
- package/cjs/data/transforms/correlation-center.d.ts +11 -4
- package/cjs/data/transforms/correlation-center.js +3 -2
- package/cjs/data/transforms/correlation-center.js.map +1 -1
- package/cjs/data/transforms/correlation.d.ts +18 -15
- package/cjs/data/transforms/correlation.js +22 -17
- package/cjs/data/transforms/correlation.js.map +1 -1
- package/cjs/data/transforms/funnel.d.ts +10 -8
- package/cjs/data/transforms/funnel.js +4 -3
- package/cjs/data/transforms/funnel.js.map +1 -1
- package/cjs/data/transforms/lookup.d.ts +3 -3
- package/cjs/data/transforms/lookup.js +12 -7
- package/cjs/data/transforms/lookup.js.map +1 -1
- package/cjs/data/transforms/map.d.ts +8 -2
- package/cjs/data/transforms/map.js +9 -6
- package/cjs/data/transforms/map.js.map +1 -1
- package/cjs/data/transforms/sankey.d.ts +12 -4
- package/cjs/data/transforms/sankey.js +18 -13
- package/cjs/data/transforms/sankey.js.map +1 -1
- package/cjs/data/transforms/stack-split.d.ts +2 -1
- package/cjs/data/transforms/stack-split.js +1 -1
- package/cjs/data/transforms/stack-split.js.map +1 -1
- package/cjs/data/transforms/treemap.d.ts +5 -3
- package/cjs/data/transforms/treemap.js +7 -6
- package/cjs/data/transforms/treemap.js.map +1 -1
- package/cjs/data/transforms/venn.d.ts +4 -2
- package/cjs/data/transforms/venn.js +4 -4
- package/cjs/data/transforms/venn.js.map +1 -1
- package/cjs/data/transforms/waterfall.d.ts +4 -2
- package/cjs/data/transforms/waterfall.js +7 -7
- package/cjs/data/transforms/waterfall.js.map +1 -1
- package/cjs/event/event.d.ts +4 -0
- package/cjs/event/event.js +26 -7
- package/cjs/event/event.js.map +1 -1
- package/cjs/mark/base/base-mark.d.ts +12 -2
- package/cjs/mark/base/base-mark.js +86 -23
- package/cjs/mark/base/base-mark.js.map +1 -1
- package/cjs/mark/component.d.ts +9 -0
- package/cjs/mark/component.js +51 -3
- package/cjs/mark/component.js.map +1 -1
- package/cjs/mark/group.js +1 -1
- package/cjs/mark/group.js.map +1 -1
- package/cjs/mark/interface/mark.d.ts +2 -0
- package/cjs/mark/interface/mark.js.map +1 -1
- package/cjs/model/base-model.d.ts +3 -15
- package/cjs/model/base-model.js.map +1 -1
- package/cjs/model/interface.d.ts +13 -0
- package/cjs/model/interface.js.map +1 -1
- package/cjs/region/region.d.ts +1 -7
- package/cjs/scale/color-ordinal-scale.d.ts +1 -0
- package/cjs/scale/color-ordinal-scale.js +3 -0
- package/cjs/scale/color-ordinal-scale.js.map +1 -1
- package/cjs/scale/global-scale.js +9 -2
- package/cjs/scale/global-scale.js.map +1 -1
- package/cjs/series/area/area.d.ts +2 -0
- package/cjs/series/area/area.js +6 -0
- package/cjs/series/area/area.js.map +1 -1
- package/cjs/series/bar/bar.d.ts +3 -0
- package/cjs/series/bar/bar.js +30 -4
- package/cjs/series/bar/bar.js.map +1 -1
- package/cjs/series/base/base-series.d.ts +10 -7
- package/cjs/series/base/base-series.js +78 -18
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/base/constant.d.ts +3 -0
- package/cjs/series/base/constant.js +9 -1
- package/cjs/series/base/constant.js.map +1 -1
- package/cjs/series/box-plot/box-plot.d.ts +2 -0
- package/cjs/series/box-plot/box-plot.js +16 -4
- package/cjs/series/box-plot/box-plot.js.map +1 -1
- package/cjs/series/correlation/correlation.js +13 -11
- package/cjs/series/correlation/correlation.js.map +1 -1
- package/cjs/series/dot/dot.d.ts +12 -0
- package/cjs/series/dot/dot.js +16 -1
- package/cjs/series/dot/dot.js.map +1 -1
- package/cjs/series/funnel/funnel.js +5 -8
- package/cjs/series/funnel/funnel.js.map +1 -1
- package/cjs/series/heatmap/heatmap.d.ts +2 -0
- package/cjs/series/heatmap/heatmap.js +10 -0
- package/cjs/series/heatmap/heatmap.js.map +1 -1
- package/cjs/series/line/line.d.ts +2 -0
- package/cjs/series/line/line.js +6 -0
- package/cjs/series/line/line.js.map +1 -1
- package/cjs/series/map/map.js +3 -3
- package/cjs/series/map/map.js.map +1 -1
- package/cjs/series/mixin/line-mixin.d.ts +1 -0
- package/cjs/series/mixin/line-mixin.js +6 -1
- package/cjs/series/mixin/line-mixin.js.map +1 -1
- package/cjs/series/pie/pie.d.ts +3 -7
- package/cjs/series/pie/pie.js +16 -1
- package/cjs/series/pie/pie.js.map +1 -1
- package/cjs/series/polar/progress-like/progress-like.d.ts +2 -0
- package/cjs/series/polar/progress-like/progress-like.js +16 -1
- package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
- package/cjs/series/polar/rose-like/rose-like.d.ts +2 -0
- package/cjs/series/polar/rose-like/rose-like.js +15 -1
- package/cjs/series/polar/rose-like/rose-like.js.map +1 -1
- package/cjs/series/progress/circular/circular.d.ts +2 -0
- package/cjs/series/progress/circular/circular.js +10 -1
- package/cjs/series/progress/circular/circular.js.map +1 -1
- package/cjs/series/progress/linear/linear.d.ts +2 -0
- package/cjs/series/progress/linear/linear.js +19 -1
- package/cjs/series/progress/linear/linear.js.map +1 -1
- package/cjs/series/sankey/sankey.js +35 -33
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/cjs/series/scatter/scatter.d.ts +2 -0
- package/cjs/series/scatter/scatter.js +9 -1
- package/cjs/series/scatter/scatter.js.map +1 -1
- package/cjs/series/treemap/treemap.js +23 -20
- package/cjs/series/treemap/treemap.js.map +1 -1
- package/cjs/series/venn/venn.js +2 -2
- package/cjs/series/venn/venn.js.map +1 -1
- package/cjs/series/waterfall/waterfall.d.ts +2 -0
- package/cjs/series/waterfall/waterfall.js +36 -20
- package/cjs/series/waterfall/waterfall.js.map +1 -1
- package/cjs/util/graphic-state.d.ts +1 -0
- package/cjs/util/graphic-state.js +19 -4
- package/cjs/util/graphic-state.js.map +1 -1
- package/esm/chart/base/base-chart-transformer.d.ts +3 -0
- package/esm/chart/base/base-chart-transformer.js +24 -2
- package/esm/chart/base/base-chart-transformer.js.map +1 -1
- package/esm/chart/base/base-chart.d.ts +25 -9
- package/esm/chart/base/base-chart.js +192 -26
- package/esm/chart/base/base-chart.js.map +1 -1
- package/esm/chart/gauge/gauge-transformer.js +3 -2
- package/esm/chart/gauge/gauge-transformer.js.map +1 -1
- package/esm/chart/index.js +1 -1
- package/esm/chart/interface/chart.d.ts +1 -0
- package/esm/chart/interface/chart.js.map +1 -1
- package/esm/chart/pie/base/pie-transformer.js +2 -2
- package/esm/chart/pie/base/pie-transformer.js.map +1 -1
- package/esm/chart/polar/polar-transformer.js +1 -1
- package/esm/chart/polar/polar-transformer.js.map +1 -1
- package/esm/chart/polar/progress-like/progress-like-transformer.js +1 -1
- package/esm/chart/polar/progress-like/progress-like-transformer.js.map +1 -1
- package/esm/chart/progress/circular/circular-progress-transformer.js +2 -1
- package/esm/chart/progress/circular/circular-progress-transformer.js.map +1 -1
- package/esm/chart/progress/linear/linear-progress-transformer.js +1 -1
- package/esm/chart/progress/linear/linear-progress-transformer.js.map +1 -1
- package/esm/chart/radar/radar-transformer.js +3 -2
- package/esm/chart/radar/radar-transformer.js.map +1 -1
- package/esm/chart/range-area/range-area-transformer.js +2 -2
- package/esm/chart/range-area/range-area-transformer.js.map +1 -1
- package/esm/chart/rose/rose-transformer.js +2 -1
- package/esm/chart/rose/rose-transformer.js.map +1 -1
- package/esm/chart/stack.js +1 -1
- package/esm/chart/util.d.ts +4 -1
- package/esm/chart/util.js +35 -2
- package/esm/chart/util.js.map +1 -1
- package/esm/chart/waterfall/waterfall-transformer.js +2 -1
- package/esm/chart/waterfall/waterfall-transformer.js.map +1 -1
- package/esm/compile/compiler.js +11 -9
- package/esm/compile/compiler.js.map +1 -1
- package/esm/compile/data/compilable-data.d.ts +1 -1
- package/esm/compile/data/compilable-data.js +1 -1
- package/esm/compile/data/compilable-data.js.map +1 -1
- package/esm/compile/grammar-item.d.ts +1 -1
- package/esm/compile/grammar-item.js.map +1 -1
- package/esm/compile/interface/compilable-item.d.ts +1 -1
- package/esm/compile/interface/compilable-item.js.map +1 -1
- package/esm/component/axis/base-axis.d.ts +2 -7
- package/esm/component/axis/base-axis.js +26 -5
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/axis/cartesian/band-axis.d.ts +1 -7
- package/esm/component/axis/mixin/linear-axis-mixin.js +7 -10
- package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/esm/component/axis/polar/band-axis.d.ts +2 -0
- package/esm/component/axis/polar/band-axis.js +3 -0
- package/esm/component/axis/polar/band-axis.js.map +1 -1
- package/esm/component/axis/polar/linear-axis.js +3 -0
- package/esm/component/axis/polar/linear-axis.js.map +1 -1
- package/esm/component/base/base-component.d.ts +7 -7
- package/esm/component/base/base-component.js +41 -5
- package/esm/component/base/base-component.js.map +1 -1
- package/esm/component/base/release-vrender-component.d.ts +10 -0
- package/esm/component/base/release-vrender-component.js +24 -0
- package/esm/component/base/release-vrender-component.js.map +1 -0
- package/esm/component/brush/brush.d.ts +3 -7
- package/esm/component/brush/brush.js +20 -4
- package/esm/component/brush/brush.js.map +1 -1
- package/esm/component/crosshair/base.d.ts +4 -7
- package/esm/component/crosshair/base.js +26 -2
- package/esm/component/crosshair/base.js.map +1 -1
- package/esm/component/custom-mark/custom-mark.d.ts +4 -7
- package/esm/component/custom-mark/custom-mark.js +27 -2
- package/esm/component/custom-mark/custom-mark.js.map +1 -1
- package/esm/component/data-zoom/data-filter-base-component.d.ts +3 -7
- package/esm/component/data-zoom/data-filter-base-component.js +14 -2
- package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +1 -0
- package/esm/component/data-zoom/data-zoom/data-zoom.js +20 -0
- package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +1 -0
- package/esm/component/data-zoom/scroll-bar/scroll-bar.js +12 -1
- package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
- package/esm/component/geo/geo-coordinate.d.ts +1 -7
- package/esm/component/index.js +1 -2
- package/esm/component/indicator/indicator.d.ts +1 -0
- package/esm/component/indicator/indicator.js +11 -2
- package/esm/component/indicator/indicator.js.map +1 -1
- package/esm/component/indicator/util.d.ts +4 -3
- package/esm/component/indicator/util.js +2 -2
- package/esm/component/indicator/util.js.map +1 -1
- package/esm/component/label/base-label.d.ts +1 -7
- package/esm/component/label/base-label.js +5 -1
- package/esm/component/label/base-label.js.map +1 -1
- package/esm/component/label/label.js +1 -1
- package/esm/component/label/label.js.map +1 -1
- package/esm/component/legend/base-legend.d.ts +2 -7
- package/esm/component/legend/base-legend.js +20 -2
- package/esm/component/legend/base-legend.js.map +1 -1
- package/esm/component/marker/base-marker.d.ts +14 -7
- package/esm/component/marker/base-marker.js +109 -11
- package/esm/component/marker/base-marker.js.map +1 -1
- package/esm/component/marker/mark-area/cartesian-mark-area.js +3 -3
- package/esm/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
- package/esm/component/marker/mark-area/polar-mark-area.js +2 -2
- package/esm/component/marker/mark-area/polar-mark-area.js.map +1 -1
- package/esm/component/marker/mark-line/base-mark-line.js +2 -4
- package/esm/component/marker/mark-line/base-mark-line.js.map +1 -1
- package/esm/component/marker/mark-line/cartesian-mark-line.js +2 -2
- package/esm/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
- package/esm/component/marker/mark-line/polar-mark-line.js +2 -2
- package/esm/component/marker/mark-line/polar-mark-line.js.map +1 -1
- package/esm/component/marker/mark-point/base-mark-point.js +19 -6
- package/esm/component/marker/mark-point/base-mark-point.js.map +1 -1
- package/esm/component/marker/mark-point/cartesian-mark-point.js +1 -1
- package/esm/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
- package/esm/component/marker/mark-point/polar-mark-point.js +1 -1
- package/esm/component/marker/mark-point/polar-mark-point.js.map +1 -1
- package/esm/component/marker/utils.d.ts +4 -4
- package/esm/component/marker/utils.js +27 -23
- package/esm/component/marker/utils.js.map +1 -1
- package/esm/component/player/player.d.ts +1 -0
- package/esm/component/player/player.js +10 -0
- package/esm/component/player/player.js.map +1 -1
- package/esm/component/title/title.d.ts +1 -7
- package/esm/component/title/title.js +6 -2
- package/esm/component/title/title.js.map +1 -1
- package/esm/component/tooltip/tooltip.d.ts +1 -0
- package/esm/component/tooltip/tooltip.js +9 -1
- package/esm/component/tooltip/tooltip.js.map +1 -1
- package/esm/component/util.js +1 -1
- package/esm/constant/box-plot.js +2 -1
- package/esm/constant/scatter.js +1 -2
- package/esm/core/expression-function.js +2 -1
- package/esm/core/factory.js +1 -1
- package/esm/core/index.js +1 -1
- package/esm/core/instance-manager.js +1 -1
- package/esm/core/interface.js +1 -1
- package/esm/core/util.js +1 -1
- package/esm/core/vchart.d.ts +5 -1
- package/esm/core/vchart.js +31 -18
- package/esm/core/vchart.js.map +1 -1
- package/esm/data/data-view-utils.d.ts +5 -0
- package/esm/data/data-view-utils.js +46 -0
- package/esm/data/data-view-utils.js.map +1 -0
- package/esm/data/register.js +1 -1
- package/esm/data/transforms/box-plot.d.ts +4 -1
- package/esm/data/transforms/box-plot.js +4 -4
- package/esm/data/transforms/box-plot.js.map +1 -1
- package/esm/data/transforms/correlation-center.d.ts +11 -4
- package/esm/data/transforms/correlation-center.js +4 -2
- package/esm/data/transforms/correlation-center.js.map +1 -1
- package/esm/data/transforms/correlation.d.ts +18 -15
- package/esm/data/transforms/correlation.js +13 -8
- package/esm/data/transforms/correlation.js.map +1 -1
- package/esm/data/transforms/funnel.d.ts +10 -8
- package/esm/data/transforms/funnel.js +5 -3
- package/esm/data/transforms/funnel.js.map +1 -1
- package/esm/data/transforms/lookup.d.ts +3 -3
- package/esm/data/transforms/lookup.js +12 -6
- package/esm/data/transforms/lookup.js.map +1 -1
- package/esm/data/transforms/map.d.ts +8 -2
- package/esm/data/transforms/map.js +11 -6
- package/esm/data/transforms/map.js.map +1 -1
- package/esm/data/transforms/sankey.d.ts +12 -4
- package/esm/data/transforms/sankey.js +19 -14
- package/esm/data/transforms/sankey.js.map +1 -1
- package/esm/data/transforms/stack-split.d.ts +2 -1
- package/esm/data/transforms/stack-split.js +2 -2
- package/esm/data/transforms/stack-split.js.map +1 -1
- package/esm/data/transforms/treemap.d.ts +5 -3
- package/esm/data/transforms/treemap.js +8 -5
- package/esm/data/transforms/treemap.js.map +1 -1
- package/esm/data/transforms/venn.d.ts +4 -2
- package/esm/data/transforms/venn.js +5 -3
- package/esm/data/transforms/venn.js.map +1 -1
- package/esm/data/transforms/waterfall.d.ts +4 -2
- package/esm/data/transforms/waterfall.js +7 -8
- package/esm/data/transforms/waterfall.js.map +1 -1
- package/esm/event/event.d.ts +4 -0
- package/esm/event/event.js +26 -7
- package/esm/event/event.js.map +1 -1
- package/esm/mark/base/base-mark.d.ts +12 -2
- package/esm/mark/base/base-mark.js +86 -22
- package/esm/mark/base/base-mark.js.map +1 -1
- package/esm/mark/component.d.ts +9 -0
- package/esm/mark/component.js +51 -2
- package/esm/mark/component.js.map +1 -1
- package/esm/mark/group.js +1 -1
- package/esm/mark/group.js.map +1 -1
- package/esm/mark/interface/mark.d.ts +2 -0
- package/esm/mark/interface/mark.js.map +1 -1
- package/esm/model/base-model.d.ts +3 -15
- package/esm/model/base-model.js.map +1 -1
- package/esm/model/interface.d.ts +13 -0
- package/esm/model/interface.js.map +1 -1
- package/esm/region/region.d.ts +1 -7
- package/esm/scale/color-ordinal-scale.d.ts +1 -0
- package/esm/scale/color-ordinal-scale.js +3 -0
- package/esm/scale/color-ordinal-scale.js.map +1 -1
- package/esm/scale/global-scale.js +9 -1
- package/esm/scale/global-scale.js.map +1 -1
- package/esm/series/area/area.d.ts +2 -0
- package/esm/series/area/area.js +7 -1
- package/esm/series/area/area.js.map +1 -1
- package/esm/series/bar/bar.d.ts +3 -0
- package/esm/series/bar/bar.js +30 -4
- package/esm/series/bar/bar.js.map +1 -1
- package/esm/series/base/base-series.d.ts +10 -7
- package/esm/series/base/base-series.js +73 -16
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/base/constant.d.ts +3 -0
- package/esm/series/base/constant.js +10 -0
- package/esm/series/base/constant.js.map +1 -1
- package/esm/series/box-plot/box-plot.d.ts +2 -0
- package/esm/series/box-plot/box-plot.js +15 -4
- package/esm/series/box-plot/box-plot.js.map +1 -1
- package/esm/series/correlation/correlation.js +13 -11
- package/esm/series/correlation/correlation.js.map +1 -1
- package/esm/series/dot/dot.d.ts +12 -0
- package/esm/series/dot/dot.js +17 -0
- package/esm/series/dot/dot.js.map +1 -1
- package/esm/series/funnel/funnel.js +5 -8
- package/esm/series/funnel/funnel.js.map +1 -1
- package/esm/series/heatmap/heatmap.d.ts +2 -0
- package/esm/series/heatmap/heatmap.js +10 -0
- package/esm/series/heatmap/heatmap.js.map +1 -1
- package/esm/series/line/line.d.ts +2 -0
- package/esm/series/line/line.js +7 -1
- package/esm/series/line/line.js.map +1 -1
- package/esm/series/map/map.js +3 -3
- package/esm/series/map/map.js.map +1 -1
- package/esm/series/mixin/line-mixin.d.ts +1 -0
- package/esm/series/mixin/line-mixin.js +5 -0
- package/esm/series/mixin/line-mixin.js.map +1 -1
- package/esm/series/pie/pie.d.ts +3 -7
- package/esm/series/pie/pie.js +17 -0
- package/esm/series/pie/pie.js.map +1 -1
- package/esm/series/polar/progress-like/progress-like.d.ts +2 -0
- package/esm/series/polar/progress-like/progress-like.js +17 -0
- package/esm/series/polar/progress-like/progress-like.js.map +1 -1
- package/esm/series/polar/rose-like/rose-like.d.ts +2 -0
- package/esm/series/polar/rose-like/rose-like.js +16 -0
- package/esm/series/polar/rose-like/rose-like.js.map +1 -1
- package/esm/series/progress/circular/circular.d.ts +2 -0
- package/esm/series/progress/circular/circular.js +11 -0
- package/esm/series/progress/circular/circular.js.map +1 -1
- package/esm/series/progress/linear/linear.d.ts +2 -0
- package/esm/series/progress/linear/linear.js +20 -0
- package/esm/series/progress/linear/linear.js.map +1 -1
- package/esm/series/sankey/sankey.js +35 -33
- package/esm/series/sankey/sankey.js.map +1 -1
- package/esm/series/scatter/scatter.d.ts +2 -0
- package/esm/series/scatter/scatter.js +10 -0
- package/esm/series/scatter/scatter.js.map +1 -1
- package/esm/series/treemap/treemap.js +23 -20
- package/esm/series/treemap/treemap.js.map +1 -1
- package/esm/series/venn/venn.js +2 -2
- package/esm/series/venn/venn.js.map +1 -1
- package/esm/series/waterfall/waterfall.d.ts +2 -0
- package/esm/series/waterfall/waterfall.js +36 -20
- package/esm/series/waterfall/waterfall.js.map +1 -1
- package/esm/util/graphic-state.d.ts +1 -0
- package/esm/util/graphic-state.js +16 -3
- package/esm/util/graphic-state.js.map +1 -1
- package/package.json +10 -9
|
@@ -12,8 +12,19 @@ import { array } from "../../util";
|
|
|
12
12
|
|
|
13
13
|
import { getSpecInfo } from "../../component/util";
|
|
14
14
|
|
|
15
|
+
const DEFAULT_SERIES_RELATED_CHART_SPEC_KEYS = {
|
|
16
|
+
series: !0,
|
|
17
|
+
label: !0,
|
|
18
|
+
animationAppear: !0,
|
|
19
|
+
animationEnter: !0,
|
|
20
|
+
animationUpdate: !0,
|
|
21
|
+
animationExit: !0,
|
|
22
|
+
animationNormal: !0
|
|
23
|
+
};
|
|
24
|
+
|
|
15
25
|
export class BaseChartSpecTransformer {
|
|
16
26
|
constructor(option) {
|
|
27
|
+
this._seriesRelatedSpecKeys = Object.assign({}, DEFAULT_SERIES_RELATED_CHART_SPEC_KEYS),
|
|
17
28
|
this._option = option, this.type = option.type, this.seriesType = option.seriesType;
|
|
18
29
|
}
|
|
19
30
|
initChartSpec(chartSpec) {
|
|
@@ -73,8 +84,19 @@ export class BaseChartSpecTransformer {
|
|
|
73
84
|
_isValidSeries(seriesType) {
|
|
74
85
|
return !0;
|
|
75
86
|
}
|
|
87
|
+
getSeriesRelatedSpecKeys() {
|
|
88
|
+
return this._seriesRelatedSpecKeys;
|
|
89
|
+
}
|
|
90
|
+
_addSeriesRelatedSpecKeys(...keysList) {
|
|
91
|
+
keysList.forEach((keys => {
|
|
92
|
+
null == keys || keys.forEach((key => {
|
|
93
|
+
this._seriesRelatedSpecKeys[key] = !0;
|
|
94
|
+
}));
|
|
95
|
+
}));
|
|
96
|
+
}
|
|
76
97
|
_getDefaultSeriesSpec(chartSpec, pickKeys, pickKeys2) {
|
|
77
98
|
var _a, _b, _c, _d, _e;
|
|
99
|
+
this._addSeriesRelatedSpecKeys(pickKeys, pickKeys2);
|
|
78
100
|
const series = {
|
|
79
101
|
dataKey: chartSpec.dataKey,
|
|
80
102
|
hover: chartSpec.hover,
|
|
@@ -101,8 +123,8 @@ export class BaseChartSpecTransformer {
|
|
|
101
123
|
morph: chartSpec.morph,
|
|
102
124
|
interactions: chartSpec.interactions
|
|
103
125
|
}, seriesType = this.seriesType;
|
|
104
|
-
return seriesType && (
|
|
105
|
-
pickKeys && pickKeys.length && pickKeys.forEach((k => {
|
|
126
|
+
return seriesType && (this._addSeriesRelatedSpecKeys([ seriesType ]), series.type = seriesType,
|
|
127
|
+
series[seriesType] = chartSpec[seriesType]), pickKeys && pickKeys.length && pickKeys.forEach((k => {
|
|
106
128
|
series[k] = chartSpec[k];
|
|
107
129
|
})), pickKeys2 && pickKeys2.length && pickKeys2.forEach((k => {
|
|
108
130
|
series[k] = chartSpec[k];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/chart/base/base-chart-transformer.ts"],"names":[],"mappings":"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","file":"base-chart-transformer.js","sourcesContent":["import { isArray, isNumber, isValid } from '@visactor/vutils';\nimport type { IChartSpec, ISeriesSpec } from '../../typings';\nimport type { IChartSpecInfo, IChartSpecTransformer, IChartSpecTransformerOption } from '../interface';\nimport type { IModelConstructor, IModelSpecInfo } from '../../model/interface';\nimport type { IRegionConstructor, RegionSpec } from '../../region/interface';\nimport { Factory } from '../../core';\nimport type { ISeriesConstructor } from '../../series';\nimport type { IComponentConstructor } from '../../component/interface/common';\nimport { ComponentTypeEnum } from '../../component/interface';\nimport { setProperty } from '@visactor/vutils-extension';\nimport { getRelatedRegionInfo, getRelatedSeriesInfo } from './util';\nimport type { ICartesianBandAxisSpec } from '../..//component/axis/cartesian/interface';\nimport { array } from '../../util';\nimport { getSpecInfo } from '../../component/util';\n\nexport class BaseChartSpecTransformer<T extends IChartSpec> implements IChartSpecTransformer {\n readonly type: string;\n readonly seriesType: string;\n\n protected _option: IChartSpecTransformerOption;\n\n constructor(option: IChartSpecTransformerOption) {\n this._option = option;\n this.type = option.type;\n this.seriesType = option.seriesType;\n }\n\n /** 此方法不建议重写 */\n initChartSpec(chartSpec: T): IChartSpecInfo {\n this.transformSpec(chartSpec);\n return this.transformModelSpec(chartSpec);\n }\n\n /**\n * 转换 chart spec。包含以下步骤:\n * - 将图表 spec 统一转换为 common 图表 spec\n * - 图表层级的在初始化阶段的 spec 修改\n */\n transformSpec(chartSpec: T): void {\n if (!chartSpec.region || chartSpec.region.length === 0) {\n chartSpec.region = [{}];\n }\n if (chartSpec.tooltip === undefined) {\n chartSpec.tooltip = {};\n }\n // 堆积逆序\n if (isValid(chartSpec.stackInverse)) {\n chartSpec.region.forEach((r: RegionSpec) => {\n !isValid(r.stackInverse) && (r.stackInverse = chartSpec.stackInverse);\n });\n }\n // 堆积排序\n if (isValid(chartSpec.stackSort)) {\n chartSpec.region.forEach((r: RegionSpec) => {\n !isValid(r.stackSort) && (r.stackSort = chartSpec.stackSort);\n });\n }\n }\n\n generateTransform(chartSpec: T, isRuntime?: boolean) {\n return (constructor: IModelConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => {\n const { spec, specPath, specInfoPath, type } = specInfo;\n const transformer = new constructor.transformerConstructor({\n ...this._option,\n type\n });\n // 调用 model 自己的 transformer 进行转换\n const transformResult = transformer.transformSpec(spec, chartSpec, chartSpecInfo);\n const chartSpecInfoValue = {\n ...specInfo,\n ...transformResult\n };\n if (isRuntime) {\n chartSpecInfoValue.theme = transformer.getTheme(spec, chartSpec);\n } else {\n setProperty(chartSpec, specPath, transformResult.spec);\n }\n setProperty(chartSpecInfo, specInfoPath ?? specPath, chartSpecInfoValue);\n };\n }\n\n /**\n * 转换 model spec。包含以下步骤:\n * - model 层级的主题合并\n * - model 层级的在初始化阶段的 spec 修改,如添加 label spec\n */\n transformModelSpec(chartSpec: T): IChartSpecInfo {\n return this.createSpecInfo(chartSpec, this.generateTransform(chartSpec, false));\n }\n\n /** 遍历图表 spec 中包含的所有的 model,进行 spec 转换并生成图表 spec info */\n createSpecInfo(\n chartSpec: T,\n transform?: (\n /** 当前 model 的类 */\n constructor: IModelConstructor,\n /** 当前 model 的 spec info */\n specInfo: IModelSpecInfo,\n /** 图表 spec info */\n chartSpecInfo?: IChartSpecInfo\n ) => void\n ): IChartSpecInfo {\n if (!transform) {\n transform = this.generateTransform(chartSpec, true);\n }\n\n const currentChartSpecInfo: IChartSpecInfo = {};\n\n /* 预处理 region */\n this.forEachRegionInSpec(chartSpec, transform, currentChartSpecInfo);\n\n /* 预处理 series */\n this.forEachSeriesInSpec(chartSpec, transform, currentChartSpecInfo);\n // 记录每个 series 关联的 region\n currentChartSpecInfo.series?.forEach((seriesSpecInfo, i) => {\n const relatedRegion =\n getRelatedRegionInfo(seriesSpecInfo, currentChartSpecInfo) ?? currentChartSpecInfo.region ?? [];\n const region = relatedRegion[0];\n if (region) {\n if (!region.seriesIndexes) {\n region.seriesIndexes = [];\n }\n region.seriesIndexes.push(i);\n seriesSpecInfo.regionIndexes = region.regionIndexes.slice();\n }\n });\n\n /* 预处理 component */\n this.forEachComponentInSpec(chartSpec, transform, currentChartSpecInfo);\n // 记录每个 component 关联的 region、series\n Object.values(currentChartSpecInfo.component ?? {}).forEach(specInfoList =>\n specInfoList.forEach((componentSpecInfo, i) => {\n if (!componentSpecInfo) {\n return;\n }\n if (!componentSpecInfo.regionIndexes) {\n const relatedRegion =\n getRelatedRegionInfo(componentSpecInfo, currentChartSpecInfo) ?? currentChartSpecInfo.region ?? [];\n componentSpecInfo.regionIndexes = relatedRegion.map(region => region.regionIndexes[0]);\n }\n if (!componentSpecInfo.seriesIndexes) {\n const seriesInfo = getRelatedSeriesInfo(componentSpecInfo, currentChartSpecInfo);\n if (!seriesInfo) {\n const seriesIndexSet = new Set<number>();\n (componentSpecInfo.regionIndexes ?? []).forEach(regionIndex => {\n const region = currentChartSpecInfo.region?.[regionIndex];\n region?.seriesIndexes?.forEach(seriesIndex => seriesIndexSet.add(seriesIndex));\n });\n componentSpecInfo.seriesIndexes = Array.from(seriesIndexSet);\n } else {\n componentSpecInfo.seriesIndexes = seriesInfo.map(({ seriesIndexes }) => seriesIndexes[0]);\n }\n }\n })\n );\n return currentChartSpecInfo;\n }\n\n protected _isValidSeries(seriesType: string): boolean {\n return true;\n }\n\n protected _getDefaultSeriesSpec(chartSpec: any, pickKeys?: string[], pickKeys2?: string[]) {\n const series: any = {\n dataKey: chartSpec.dataKey,\n\n hover: chartSpec.hover,\n select: chartSpec.select,\n\n label: chartSpec.label,\n\n seriesStyle: chartSpec.seriesStyle,\n\n animation: chartSpec.animation ?? this._option.globalInstance?.isAnimationEnable(),\n animationThreshold: chartSpec.animationThreshold ?? this._option.getTheme?.('animationThreshold'),\n animationAppear: chartSpec.animationAppear,\n animationDisappear: chartSpec.animationDisappear,\n animationEnter: chartSpec.animationEnter,\n animationUpdate: chartSpec.animationUpdate,\n animationExit: chartSpec.animationExit,\n animationNormal: chartSpec.animationNormal,\n animationState: chartSpec.animationState,\n\n extensionMark: chartSpec.extensionMark,\n\n large: chartSpec.large,\n largeThreshold: chartSpec.largeThreshold,\n progressiveStep: chartSpec.progressiveStep,\n progressiveThreshold: chartSpec.progressiveThreshold,\n background: chartSpec.seriesBackground,\n\n invalidType: chartSpec.invalidType,\n\n seriesField: chartSpec.seriesField,\n\n morph: chartSpec.morph,\n\n interactions: chartSpec.interactions\n };\n\n const seriesType = this.seriesType;\n if (seriesType) {\n series.type = seriesType;\n series[seriesType] = (chartSpec as any)[seriesType];\n }\n\n if (pickKeys && pickKeys.length) {\n pickKeys.forEach(k => {\n series[k] = chartSpec[k];\n });\n }\n if (pickKeys2 && pickKeys2.length) {\n pickKeys2.forEach(k => {\n series[k] = chartSpec[k];\n });\n }\n return series;\n }\n\n /** 遍历 spec 中每个有效的 region */\n forEachRegionInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: IRegionConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const regionSpec = (chartSpec.region as RegionSpec[]) ?? [];\n return regionSpec.map((spec, index) =>\n callbackfn(\n Factory.getRegionInType('region'),\n {\n spec,\n specPath: ['region', index],\n type: 'region',\n regionIndexes: [index]\n },\n chartSpecInfo\n )\n );\n }\n\n /** 遍历 spec 中每个有效的 series */\n forEachSeriesInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: ISeriesConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const seriesSpec = (chartSpec.series as ISeriesSpec[]) ?? [];\n return seriesSpec.map((spec, index) =>\n callbackfn(\n Factory.getSeriesInType(spec.type),\n {\n spec,\n specPath: ['series', index],\n type: spec.type,\n seriesIndexes: [index]\n },\n chartSpecInfo\n )\n );\n }\n\n /** 遍历 spec 中每个有效的 component */\n forEachComponentInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: IComponentConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const results: K[] = [];\n const components = Factory.getComponents();\n\n // 坐标轴组件只需要调用一次\n let cartesianAxis: IComponentConstructor;\n let polarAxis: IComponentConstructor;\n let geoCoordinate: IComponentConstructor;\n let tooltip: IComponentConstructor;\n const otherComponents = [];\n\n for (let index = 0; index < components.length; index++) {\n const { cmp, alwaysCheck } = components[index];\n if (cmp.type.startsWith(ComponentTypeEnum.cartesianAxis)) {\n cartesianAxis = cmp;\n } else if (cmp.type.startsWith(ComponentTypeEnum.polarAxis)) {\n polarAxis = cmp;\n } else if (cmp.type === ComponentTypeEnum.geoCoordinate) {\n geoCoordinate = cmp;\n } else if (alwaysCheck || (chartSpec as any)[cmp.specKey ?? cmp.type]) {\n if (cmp.type === ComponentTypeEnum.tooltip) {\n tooltip = cmp;\n } else {\n otherComponents.push(components[index]);\n }\n }\n }\n\n // NOTE: 坐标轴组件需要在其他组件之前创建\n let hasInitAxis = false;\n if (cartesianAxis) {\n const infoList = cartesianAxis.getSpecInfo(chartSpec, chartSpecInfo);\n if (infoList?.length > 0) {\n hasInitAxis = true;\n infoList.forEach(info => {\n const cmp = Factory.getComponentInKey(info.type);\n results.push(callbackfn(cmp, info, chartSpecInfo));\n });\n }\n }\n\n if (polarAxis && !hasInitAxis) {\n const infoList = polarAxis.getSpecInfo(chartSpec, chartSpecInfo);\n if (infoList?.length > 0) {\n hasInitAxis = true;\n infoList.forEach(info => {\n const cmp = Factory.getComponentInKey(info.type);\n results.push(callbackfn(cmp, info, chartSpecInfo));\n });\n }\n }\n\n if (geoCoordinate && !hasInitAxis) {\n geoCoordinate.getSpecInfo(chartSpec, chartSpecInfo)?.forEach(info => {\n results.push(callbackfn(geoCoordinate, info, chartSpecInfo));\n });\n }\n\n otherComponents.sort((a, b) => {\n return a.createOrder - b.createOrder;\n });\n\n otherComponents.forEach(({ cmp: C }) => {\n (C.getSpecInfo ? C.getSpecInfo(chartSpec, chartSpecInfo) : getSpecInfo(chartSpec, C.specKey, C.type))?.forEach(\n info => {\n results.push(callbackfn(C, info, chartSpecInfo));\n }\n );\n });\n\n // NOTE: tooltip 组件需要在 crosshair 组件之后创建\n if (tooltip) {\n getSpecInfo(chartSpec, tooltip.specKey, tooltip.type)?.forEach(info => {\n results.push(callbackfn(tooltip, info, chartSpecInfo));\n });\n }\n\n return results;\n }\n\n /** 处理series配置 */\n transformSeriesSpec(spec: T): void {\n const defaultSeriesSpec = this._getDefaultSeriesSpec(spec);\n if (!spec.series || spec.series.length === 0) {\n spec.series = [defaultSeriesSpec];\n } else {\n spec.series.forEach(s => {\n if (!this._isValidSeries(s.type)) {\n return;\n }\n Object.keys(defaultSeriesSpec).forEach(k => {\n if (!(k in s)) {\n (s as any)[k] = defaultSeriesSpec[k];\n }\n });\n });\n }\n }\n\n protected _findBandAxisBySeries(seriesSpec: ISeriesSpec, seriesIndex: number, axesSpec: any) {\n const isHorizontal = (seriesSpec as any)?.direction === 'horizontal';\n const matchOrient = isHorizontal ? ['left', 'right'] : ['top', 'bottom'];\n const targetBandAxis: any = axesSpec.find((axis: any) => {\n if (!matchOrient.includes(axis.orient)) {\n // orient必须匹配\n return false;\n }\n if (isValid(axis.seriesId)) {\n // 1. 通过seriesId绑定\n if (array(axis.seriesId).includes(seriesSpec?.id)) {\n return true;\n }\n } else if (isValid(axis.seriesIndex)) {\n // 2. 通过seriesIndex绑定\n if (array(axis.seriesIndex).includes(seriesIndex)) {\n return true;\n }\n } else if (axis.type === 'band') {\n // 3. 通过axis type识别\n return true;\n }\n // 4. 剩下的情况满足axis orient要求\n return true;\n });\n\n return targetBandAxis;\n }\n\n /**\n * @description bar chart 和 common chart支持autoBandsize, 此方法用于识别barWidth配置后应用到轴上\n * */\n protected _applyAxisBandSize(\n axis: ICartesianBandAxisSpec,\n extend: number,\n barWidthSpec: {\n barMaxWidth: number | string;\n barMinWidth: number | string;\n barWidth: number | string;\n barGapInGroup: number | string | (number | string)[];\n }\n ) {\n const { barMaxWidth, barMinWidth, barWidth, barGapInGroup } = barWidthSpec;\n let hasBarWidth = false;\n if (isNumber(barMinWidth)) {\n axis.minBandSize = barMinWidth as number;\n hasBarWidth = true;\n } else if (isNumber(barWidth)) {\n axis.minBandSize = barWidth as number;\n hasBarWidth = true;\n } else if (isNumber(barMaxWidth)) {\n axis.minBandSize = barMaxWidth as number;\n hasBarWidth = true;\n }\n if (hasBarWidth) {\n axis.bandSizeLevel = Number.MAX_VALUE; // 影响最底层的 scale\n axis.bandSizeExtend = {\n extend,\n gap: isArray(barGapInGroup) ? barGapInGroup[(barGapInGroup as any[]).length - 1] : barGapInGroup\n };\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/chart/base/base-chart-transformer.ts"],"names":[],"mappings":"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","file":"base-chart-transformer.js","sourcesContent":["import { isArray, isNumber, isValid } from '@visactor/vutils';\nimport type { IChartSpec, ISeriesSpec } from '../../typings';\nimport type { IChartSpecInfo, IChartSpecTransformer, IChartSpecTransformerOption } from '../interface';\nimport type { IModelConstructor, IModelSpecInfo } from '../../model/interface';\nimport type { IRegionConstructor, RegionSpec } from '../../region/interface';\nimport { Factory } from '../../core';\nimport type { ISeriesConstructor } from '../../series';\nimport type { IComponentConstructor } from '../../component/interface/common';\nimport { ComponentTypeEnum } from '../../component/interface';\nimport { setProperty } from '@visactor/vutils-extension';\nimport { getRelatedRegionInfo, getRelatedSeriesInfo } from './util';\nimport type { ICartesianBandAxisSpec } from '../..//component/axis/cartesian/interface';\nimport { array } from '../../util';\nimport { getSpecInfo } from '../../component/util';\n\nconst DEFAULT_SERIES_RELATED_CHART_SPEC_KEYS: Record<string, true> = {\n series: true,\n label: true,\n animationAppear: true,\n animationEnter: true,\n animationUpdate: true,\n animationExit: true,\n animationNormal: true\n};\n\nexport class BaseChartSpecTransformer<T extends IChartSpec> implements IChartSpecTransformer {\n readonly type: string;\n readonly seriesType: string;\n protected _seriesRelatedSpecKeys: Record<string, true> = { ...DEFAULT_SERIES_RELATED_CHART_SPEC_KEYS };\n\n protected _option: IChartSpecTransformerOption;\n\n constructor(option: IChartSpecTransformerOption) {\n this._option = option;\n this.type = option.type;\n this.seriesType = option.seriesType;\n }\n\n /** 此方法不建议重写 */\n initChartSpec(chartSpec: T): IChartSpecInfo {\n this.transformSpec(chartSpec);\n return this.transformModelSpec(chartSpec);\n }\n\n /**\n * 转换 chart spec。包含以下步骤:\n * - 将图表 spec 统一转换为 common 图表 spec\n * - 图表层级的在初始化阶段的 spec 修改\n */\n transformSpec(chartSpec: T): void {\n if (!chartSpec.region || chartSpec.region.length === 0) {\n chartSpec.region = [{}];\n }\n if (chartSpec.tooltip === undefined) {\n chartSpec.tooltip = {};\n }\n // 堆积逆序\n if (isValid(chartSpec.stackInverse)) {\n chartSpec.region.forEach((r: RegionSpec) => {\n !isValid(r.stackInverse) && (r.stackInverse = chartSpec.stackInverse);\n });\n }\n // 堆积排序\n if (isValid(chartSpec.stackSort)) {\n chartSpec.region.forEach((r: RegionSpec) => {\n !isValid(r.stackSort) && (r.stackSort = chartSpec.stackSort);\n });\n }\n }\n\n generateTransform(chartSpec: T, isRuntime?: boolean) {\n return (constructor: IModelConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => {\n const { spec, specPath, specInfoPath, type } = specInfo;\n const transformer = new constructor.transformerConstructor({\n ...this._option,\n type\n });\n // 调用 model 自己的 transformer 进行转换\n const transformResult = transformer.transformSpec(spec, chartSpec, chartSpecInfo);\n const chartSpecInfoValue = {\n ...specInfo,\n ...transformResult\n };\n if (isRuntime) {\n chartSpecInfoValue.theme = transformer.getTheme(spec, chartSpec);\n } else {\n setProperty(chartSpec, specPath, transformResult.spec);\n }\n setProperty(chartSpecInfo, specInfoPath ?? specPath, chartSpecInfoValue);\n };\n }\n\n /**\n * 转换 model spec。包含以下步骤:\n * - model 层级的主题合并\n * - model 层级的在初始化阶段的 spec 修改,如添加 label spec\n */\n transformModelSpec(chartSpec: T): IChartSpecInfo {\n return this.createSpecInfo(chartSpec, this.generateTransform(chartSpec, false));\n }\n\n /** 遍历图表 spec 中包含的所有的 model,进行 spec 转换并生成图表 spec info */\n createSpecInfo(\n chartSpec: T,\n transform?: (\n /** 当前 model 的类 */\n constructor: IModelConstructor,\n /** 当前 model 的 spec info */\n specInfo: IModelSpecInfo,\n /** 图表 spec info */\n chartSpecInfo?: IChartSpecInfo\n ) => void\n ): IChartSpecInfo {\n if (!transform) {\n transform = this.generateTransform(chartSpec, true);\n }\n\n const currentChartSpecInfo: IChartSpecInfo = {};\n\n /* 预处理 region */\n this.forEachRegionInSpec(chartSpec, transform, currentChartSpecInfo);\n\n /* 预处理 series */\n this.forEachSeriesInSpec(chartSpec, transform, currentChartSpecInfo);\n // 记录每个 series 关联的 region\n currentChartSpecInfo.series?.forEach((seriesSpecInfo, i) => {\n const relatedRegion =\n getRelatedRegionInfo(seriesSpecInfo, currentChartSpecInfo) ?? currentChartSpecInfo.region ?? [];\n const region = relatedRegion[0];\n if (region) {\n if (!region.seriesIndexes) {\n region.seriesIndexes = [];\n }\n region.seriesIndexes.push(i);\n seriesSpecInfo.regionIndexes = region.regionIndexes.slice();\n }\n });\n\n /* 预处理 component */\n this.forEachComponentInSpec(chartSpec, transform, currentChartSpecInfo);\n // 记录每个 component 关联的 region、series\n Object.values(currentChartSpecInfo.component ?? {}).forEach(specInfoList =>\n specInfoList.forEach((componentSpecInfo, i) => {\n if (!componentSpecInfo) {\n return;\n }\n if (!componentSpecInfo.regionIndexes) {\n const relatedRegion =\n getRelatedRegionInfo(componentSpecInfo, currentChartSpecInfo) ?? currentChartSpecInfo.region ?? [];\n componentSpecInfo.regionIndexes = relatedRegion.map(region => region.regionIndexes[0]);\n }\n if (!componentSpecInfo.seriesIndexes) {\n const seriesInfo = getRelatedSeriesInfo(componentSpecInfo, currentChartSpecInfo);\n if (!seriesInfo) {\n const seriesIndexSet = new Set<number>();\n (componentSpecInfo.regionIndexes ?? []).forEach(regionIndex => {\n const region = currentChartSpecInfo.region?.[regionIndex];\n region?.seriesIndexes?.forEach(seriesIndex => seriesIndexSet.add(seriesIndex));\n });\n componentSpecInfo.seriesIndexes = Array.from(seriesIndexSet);\n } else {\n componentSpecInfo.seriesIndexes = seriesInfo.map(({ seriesIndexes }) => seriesIndexes[0]);\n }\n }\n })\n );\n return currentChartSpecInfo;\n }\n\n protected _isValidSeries(seriesType: string): boolean {\n return true;\n }\n\n getSeriesRelatedSpecKeys(): Record<string, true> {\n return this._seriesRelatedSpecKeys;\n }\n\n protected _addSeriesRelatedSpecKeys(...keysList: Array<string[] | undefined>) {\n keysList.forEach(keys => {\n keys?.forEach(key => {\n this._seriesRelatedSpecKeys[key] = true;\n });\n });\n }\n\n protected _getDefaultSeriesSpec(chartSpec: any, pickKeys?: string[], pickKeys2?: string[]) {\n this._addSeriesRelatedSpecKeys(pickKeys, pickKeys2);\n\n const series: any = {\n dataKey: chartSpec.dataKey,\n\n hover: chartSpec.hover,\n select: chartSpec.select,\n\n label: chartSpec.label,\n\n seriesStyle: chartSpec.seriesStyle,\n\n animation: chartSpec.animation ?? this._option.globalInstance?.isAnimationEnable(),\n animationThreshold: chartSpec.animationThreshold ?? this._option.getTheme?.('animationThreshold'),\n animationAppear: chartSpec.animationAppear,\n animationDisappear: chartSpec.animationDisappear,\n animationEnter: chartSpec.animationEnter,\n animationUpdate: chartSpec.animationUpdate,\n animationExit: chartSpec.animationExit,\n animationNormal: chartSpec.animationNormal,\n animationState: chartSpec.animationState,\n\n extensionMark: chartSpec.extensionMark,\n\n large: chartSpec.large,\n largeThreshold: chartSpec.largeThreshold,\n progressiveStep: chartSpec.progressiveStep,\n progressiveThreshold: chartSpec.progressiveThreshold,\n background: chartSpec.seriesBackground,\n\n invalidType: chartSpec.invalidType,\n\n seriesField: chartSpec.seriesField,\n\n morph: chartSpec.morph,\n\n interactions: chartSpec.interactions\n };\n\n const seriesType = this.seriesType;\n if (seriesType) {\n this._addSeriesRelatedSpecKeys([seriesType]);\n series.type = seriesType;\n series[seriesType] = (chartSpec as any)[seriesType];\n }\n\n if (pickKeys && pickKeys.length) {\n pickKeys.forEach(k => {\n series[k] = chartSpec[k];\n });\n }\n if (pickKeys2 && pickKeys2.length) {\n pickKeys2.forEach(k => {\n series[k] = chartSpec[k];\n });\n }\n return series;\n }\n\n /** 遍历 spec 中每个有效的 region */\n forEachRegionInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: IRegionConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const regionSpec = (chartSpec.region as RegionSpec[]) ?? [];\n return regionSpec.map((spec, index) =>\n callbackfn(\n Factory.getRegionInType('region'),\n {\n spec,\n specPath: ['region', index],\n type: 'region',\n regionIndexes: [index]\n },\n chartSpecInfo\n )\n );\n }\n\n /** 遍历 spec 中每个有效的 series */\n forEachSeriesInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: ISeriesConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const seriesSpec = (chartSpec.series as ISeriesSpec[]) ?? [];\n return seriesSpec.map((spec, index) =>\n callbackfn(\n Factory.getSeriesInType(spec.type),\n {\n spec,\n specPath: ['series', index],\n type: spec.type,\n seriesIndexes: [index]\n },\n chartSpecInfo\n )\n );\n }\n\n /** 遍历 spec 中每个有效的 component */\n forEachComponentInSpec<K>(\n chartSpec: T,\n callbackfn: (constructor: IComponentConstructor, specInfo: IModelSpecInfo, chartSpecInfo?: IChartSpecInfo) => K,\n chartSpecInfo?: IChartSpecInfo\n ): K[] {\n const results: K[] = [];\n const components = Factory.getComponents();\n\n // 坐标轴组件只需要调用一次\n let cartesianAxis: IComponentConstructor;\n let polarAxis: IComponentConstructor;\n let geoCoordinate: IComponentConstructor;\n let tooltip: IComponentConstructor;\n const otherComponents = [];\n\n for (let index = 0; index < components.length; index++) {\n const { cmp, alwaysCheck } = components[index];\n if (cmp.type.startsWith(ComponentTypeEnum.cartesianAxis)) {\n cartesianAxis = cmp;\n } else if (cmp.type.startsWith(ComponentTypeEnum.polarAxis)) {\n polarAxis = cmp;\n } else if (cmp.type === ComponentTypeEnum.geoCoordinate) {\n geoCoordinate = cmp;\n } else if (alwaysCheck || (chartSpec as any)[cmp.specKey ?? cmp.type]) {\n if (cmp.type === ComponentTypeEnum.tooltip) {\n tooltip = cmp;\n } else {\n otherComponents.push(components[index]);\n }\n }\n }\n\n // NOTE: 坐标轴组件需要在其他组件之前创建\n let hasInitAxis = false;\n if (cartesianAxis) {\n const infoList = cartesianAxis.getSpecInfo(chartSpec, chartSpecInfo);\n if (infoList?.length > 0) {\n hasInitAxis = true;\n infoList.forEach(info => {\n const cmp = Factory.getComponentInKey(info.type);\n results.push(callbackfn(cmp, info, chartSpecInfo));\n });\n }\n }\n\n if (polarAxis && !hasInitAxis) {\n const infoList = polarAxis.getSpecInfo(chartSpec, chartSpecInfo);\n if (infoList?.length > 0) {\n hasInitAxis = true;\n infoList.forEach(info => {\n const cmp = Factory.getComponentInKey(info.type);\n results.push(callbackfn(cmp, info, chartSpecInfo));\n });\n }\n }\n\n if (geoCoordinate && !hasInitAxis) {\n geoCoordinate.getSpecInfo(chartSpec, chartSpecInfo)?.forEach(info => {\n results.push(callbackfn(geoCoordinate, info, chartSpecInfo));\n });\n }\n\n otherComponents.sort((a, b) => {\n return a.createOrder - b.createOrder;\n });\n\n otherComponents.forEach(({ cmp: C }) => {\n (C.getSpecInfo ? C.getSpecInfo(chartSpec, chartSpecInfo) : getSpecInfo(chartSpec, C.specKey, C.type))?.forEach(\n info => {\n results.push(callbackfn(C, info, chartSpecInfo));\n }\n );\n });\n\n // NOTE: tooltip 组件需要在 crosshair 组件之后创建\n if (tooltip) {\n getSpecInfo(chartSpec, tooltip.specKey, tooltip.type)?.forEach(info => {\n results.push(callbackfn(tooltip, info, chartSpecInfo));\n });\n }\n\n return results;\n }\n\n /** 处理series配置 */\n transformSeriesSpec(spec: T): void {\n const defaultSeriesSpec = this._getDefaultSeriesSpec(spec);\n if (!spec.series || spec.series.length === 0) {\n spec.series = [defaultSeriesSpec];\n } else {\n spec.series.forEach(s => {\n if (!this._isValidSeries(s.type)) {\n return;\n }\n Object.keys(defaultSeriesSpec).forEach(k => {\n if (!(k in s)) {\n (s as any)[k] = defaultSeriesSpec[k];\n }\n });\n });\n }\n }\n\n protected _findBandAxisBySeries(seriesSpec: ISeriesSpec, seriesIndex: number, axesSpec: any) {\n const isHorizontal = (seriesSpec as any)?.direction === 'horizontal';\n const matchOrient = isHorizontal ? ['left', 'right'] : ['top', 'bottom'];\n const targetBandAxis: any = axesSpec.find((axis: any) => {\n if (!matchOrient.includes(axis.orient)) {\n // orient必须匹配\n return false;\n }\n if (isValid(axis.seriesId)) {\n // 1. 通过seriesId绑定\n if (array(axis.seriesId).includes(seriesSpec?.id)) {\n return true;\n }\n } else if (isValid(axis.seriesIndex)) {\n // 2. 通过seriesIndex绑定\n if (array(axis.seriesIndex).includes(seriesIndex)) {\n return true;\n }\n } else if (axis.type === 'band') {\n // 3. 通过axis type识别\n return true;\n }\n // 4. 剩下的情况满足axis orient要求\n return true;\n });\n\n return targetBandAxis;\n }\n\n /**\n * @description bar chart 和 common chart支持autoBandsize, 此方法用于识别barWidth配置后应用到轴上\n * */\n protected _applyAxisBandSize(\n axis: ICartesianBandAxisSpec,\n extend: number,\n barWidthSpec: {\n barMaxWidth: number | string;\n barMinWidth: number | string;\n barWidth: number | string;\n barGapInGroup: number | string | (number | string)[];\n }\n ) {\n const { barMaxWidth, barMinWidth, barWidth, barGapInGroup } = barWidthSpec;\n let hasBarWidth = false;\n if (isNumber(barMinWidth)) {\n axis.minBandSize = barMinWidth as number;\n hasBarWidth = true;\n } else if (isNumber(barWidth)) {\n axis.minBandSize = barWidth as number;\n hasBarWidth = true;\n } else if (isNumber(barMaxWidth)) {\n axis.minBandSize = barMaxWidth as number;\n hasBarWidth = true;\n }\n if (hasBarWidth) {\n axis.bandSizeLevel = Number.MAX_VALUE; // 影响最底层的 scale\n axis.bandSizeExtend = {\n extend,\n gap: isArray(barGapInGroup) ? barGapInGroup[(barGapInGroup as any[]).length - 1] : barGapInGroup\n };\n }\n }\n}\n"]}
|
|
@@ -30,6 +30,7 @@ export declare class BaseChart<T extends IChartSpec> extends CompilableBase impl
|
|
|
30
30
|
protected _regions: IRegion[];
|
|
31
31
|
protected _series: ISeries[];
|
|
32
32
|
protected _components: IComponent[];
|
|
33
|
+
protected _specTransformer: Maybe<IChartSpecTransformer>;
|
|
33
34
|
protected _layoutFunc: LayoutCallBack;
|
|
34
35
|
protected _layoutRect: IRect;
|
|
35
36
|
getLayoutRect(): IRect;
|
|
@@ -118,17 +119,32 @@ export declare class BaseChart<T extends IChartSpec> extends CompilableBase impl
|
|
|
118
119
|
updateGlobalScale(result: IUpdateSpecResult): void;
|
|
119
120
|
updateGlobalScaleTheme(): void;
|
|
120
121
|
private _getSpecKeys;
|
|
121
|
-
updateSpec(spec: T):
|
|
122
|
-
change: boolean;
|
|
123
|
-
reMake: boolean;
|
|
124
|
-
reRender: boolean;
|
|
125
|
-
reSize: boolean;
|
|
126
|
-
reCompile: boolean;
|
|
127
|
-
};
|
|
122
|
+
updateSpec(spec: T): IUpdateSpecResult;
|
|
128
123
|
updateChartConfig(result: IUpdateSpecResult, oldSpec: IChartSpec): void;
|
|
129
124
|
updateDataSpec(): void;
|
|
130
125
|
updateRegionSpec(result: IUpdateSpecResult): void;
|
|
131
|
-
updateComponentSpec(result: IUpdateSpecResult):
|
|
126
|
+
updateComponentSpec(result: IUpdateSpecResult): {
|
|
127
|
+
componentOnlyUpdatedComponents: IComponent[];
|
|
128
|
+
hasNonComponentOnlyUpdate: boolean;
|
|
129
|
+
};
|
|
130
|
+
private _canChangeMarkerComponentsWithoutRemake;
|
|
131
|
+
private _canAddMarkerComponentsWithoutRemake;
|
|
132
|
+
private _isMarkerAdditionSpecSafeWithoutRemake;
|
|
133
|
+
private _isAutoRangeMarkerSpec;
|
|
134
|
+
private _canRemoveMarkerComponentsWithoutRemake;
|
|
135
|
+
private _isOnlyMarkerComponentsRemoved;
|
|
136
|
+
private _isComponentSpecKey;
|
|
137
|
+
private _isOnlyComponentSpecsChanged;
|
|
138
|
+
private _isOnlySeriesSpecsChanged;
|
|
139
|
+
private _isOnlyComponentOrSeriesSpecsChanged;
|
|
140
|
+
private _canSkipChartDataStages;
|
|
141
|
+
private _isComponentScaleDomainOnlyUpdate;
|
|
142
|
+
private _reRunStackDataFlow;
|
|
143
|
+
private _getModelSpecIndex;
|
|
144
|
+
private _hasComponentForSpecInfo;
|
|
145
|
+
private _createMissingMarkerComponentsForSpecs;
|
|
146
|
+
private _removeMarkerComponentsForEmptySpecs;
|
|
147
|
+
private _removeComponent;
|
|
132
148
|
updateSeriesSpec(result: IUpdateSpecResult): void;
|
|
133
149
|
getCanvas(): HTMLCanvasElement;
|
|
134
150
|
private _updateLayoutRect;
|
|
@@ -142,7 +158,7 @@ export declare class BaseChart<T extends IChartSpec> extends CompilableBase impl
|
|
|
142
158
|
compileRegions(): void;
|
|
143
159
|
compileSeries(): void;
|
|
144
160
|
compileComponents(): void;
|
|
145
|
-
release(): void;
|
|
161
|
+
release(forceReleaseVRenderComponents?: boolean): void;
|
|
146
162
|
onLayout(): void;
|
|
147
163
|
updateState(state: Record<string, Omit<IMarkStateSpec<unknown>, 'style'>>, filter?: (series: ISeries, mark: IMark, stateKey: string) => boolean): void;
|
|
148
164
|
setSelected(datum: MaybeArray<any> | null, filter?: (series: ISeries, mark: IMark) => boolean, region?: IRegionQuerier): void;
|
|
@@ -38,7 +38,7 @@ import { ChartEvent, HOOK_EVENT } from "../../constant/event";
|
|
|
38
38
|
|
|
39
39
|
import { DimensionEventEnum } from "../../event/events/dimension/interface";
|
|
40
40
|
|
|
41
|
-
import { calculateChartSize, mergeUpdateResult } from "../util";
|
|
41
|
+
import { calculateChartSize, isUpdateSpecResultComponentOnly, isUpdateSpecResultLocalOnly, mergeUpdateResult } from "../util";
|
|
42
42
|
|
|
43
43
|
import { isDiscrete } from "@visactor/vscale";
|
|
44
44
|
|
|
@@ -50,6 +50,19 @@ import { Interaction } from "../../interaction/interaction";
|
|
|
50
50
|
|
|
51
51
|
import { animationConfig, userAnimationConfig } from "../../animation/utils";
|
|
52
52
|
|
|
53
|
+
const MARKER_COMPONENT_SPEC_KEYS = {
|
|
54
|
+
[ComponentTypeEnum.markPoint]: !0,
|
|
55
|
+
[ComponentTypeEnum.markLine]: !0,
|
|
56
|
+
[ComponentTypeEnum.markArea]: !0
|
|
57
|
+
}, MARKER_ADDITION_REMAKE_SPEC_KEYS = {
|
|
58
|
+
regionId: !0,
|
|
59
|
+
regionIndex: !0,
|
|
60
|
+
seriesId: !0,
|
|
61
|
+
seriesIndex: !0,
|
|
62
|
+
specifiedDataSeriesId: !0,
|
|
63
|
+
specifiedDataSeriesIndex: !0
|
|
64
|
+
};
|
|
65
|
+
|
|
53
66
|
export class BaseChart extends CompilableBase {
|
|
54
67
|
getSpec() {
|
|
55
68
|
return this._spec;
|
|
@@ -94,7 +107,7 @@ export class BaseChart extends CompilableBase {
|
|
|
94
107
|
constructor(spec, option) {
|
|
95
108
|
var _a, _b, _c, _d;
|
|
96
109
|
super(option), this.type = "chart", this.id = createID(), this._regions = [], this._series = [],
|
|
97
|
-
this._components = [], this._layoutRect = {
|
|
110
|
+
this._components = [], this._specTransformer = null, this._layoutRect = {
|
|
98
111
|
x: 0,
|
|
99
112
|
y: 0,
|
|
100
113
|
width: DEFAULT_CHART_WIDTH,
|
|
@@ -136,7 +149,11 @@ export class BaseChart extends CompilableBase {
|
|
|
136
149
|
const component = this._components.find((s => s.userId === userId));
|
|
137
150
|
if (component) return component;
|
|
138
151
|
}, this.getComponentsByType = type => this._components.filter((c => c.type === type)),
|
|
139
|
-
this.
|
|
152
|
+
this._isMarkerAdditionSpecSafeWithoutRemake = spec => {
|
|
153
|
+
if (!spec || "object" != typeof spec) return !1;
|
|
154
|
+
const markerSpec = spec;
|
|
155
|
+
return !1 !== markerSpec.visible && !Object.keys(MARKER_ADDITION_REMAKE_SPEC_KEYS).some((key => !isNil(markerSpec[key])));
|
|
156
|
+
}, this._paddingSpec = normalizeLayoutPaddingSpec(null !== (_a = spec.padding) && void 0 !== _a ? _a : option.getTheme("padding")),
|
|
140
157
|
this._event = new Event(option.eventDispatcher, option.mode), this._dataSet = option.dataSet,
|
|
141
158
|
this._chartData = new ChartData(this._dataSet), this._modelOption = Object.assign(Object.assign({}, option), {
|
|
142
159
|
mode: this._option.mode,
|
|
@@ -153,8 +170,8 @@ export class BaseChart extends CompilableBase {
|
|
|
153
170
|
}), this._setModelOption && this._setModelOption(), this._spec = spec;
|
|
154
171
|
}
|
|
155
172
|
created(transformer) {
|
|
156
|
-
this._chartData.parseData(this._spec.data),
|
|
157
|
-
this._createLayout(), transformer.forEachRegionInSpec(this._spec, this._createRegion.bind(this)),
|
|
173
|
+
this._specTransformer = transformer, this._chartData.parseData(this._spec.data),
|
|
174
|
+
this._createGlobalScale(), this._createBackground(), this._createLayout(), transformer.forEachRegionInSpec(this._spec, this._createRegion.bind(this)),
|
|
158
175
|
transformer.forEachSeriesInSpec(this._spec, this._createSeries.bind(this)), transformer.forEachComponentInSpec(this._spec, this._createComponent.bind(this), this._option.getSpecInfo());
|
|
159
176
|
}
|
|
160
177
|
_initInteractions() {
|
|
@@ -446,11 +463,14 @@ export class BaseChart extends CompilableBase {
|
|
|
446
463
|
_getSpecKeys(spec) {
|
|
447
464
|
const ignoreKeys = {
|
|
448
465
|
width: !0,
|
|
449
|
-
height: !0
|
|
466
|
+
height: !0,
|
|
467
|
+
xField: !0,
|
|
468
|
+
yField: !0
|
|
450
469
|
};
|
|
451
470
|
return Object.keys(spec).filter((key => !ignoreKeys[key])).sort();
|
|
452
471
|
}
|
|
453
472
|
updateSpec(spec) {
|
|
473
|
+
var _a, _b;
|
|
454
474
|
const result = {
|
|
455
475
|
change: !1,
|
|
456
476
|
reMake: !1,
|
|
@@ -458,20 +478,34 @@ export class BaseChart extends CompilableBase {
|
|
|
458
478
|
reSize: !1,
|
|
459
479
|
reCompile: !1
|
|
460
480
|
};
|
|
461
|
-
if (
|
|
481
|
+
if (spec.type !== this.type) return result.reMake = !0, this.setLayoutTag(!0, null, !1),
|
|
462
482
|
result;
|
|
463
483
|
const currentKeys = this._getSpecKeys(this._spec), nextKeys = this._getSpecKeys(spec);
|
|
464
|
-
if (!isEqual(currentKeys, nextKeys)) return result.reMake = !0,
|
|
484
|
+
if (!isEqual(currentKeys, nextKeys)) return result.reMake = !0, this.setLayoutTag(!0, null, !1),
|
|
485
|
+
result;
|
|
465
486
|
for (let i = 0; i < currentKeys.length; i++) {
|
|
466
|
-
const key = currentKeys[i];
|
|
467
|
-
if (isArray(
|
|
468
|
-
result;
|
|
487
|
+
const key = currentKeys[i], currentSpec = this._spec[key], nextSpec = spec[key];
|
|
488
|
+
if (isArray(currentSpec) && currentSpec.length !== array(nextSpec).length && !this._canChangeMarkerComponentsWithoutRemake(key, currentSpec, nextSpec)) return result.reMake = !0,
|
|
489
|
+
this.setLayoutTag(!0, null, !1), result;
|
|
469
490
|
}
|
|
470
|
-
const oldSpec = this._spec;
|
|
471
|
-
|
|
472
|
-
result
|
|
473
|
-
|
|
474
|
-
|
|
491
|
+
const oldSpec = this._spec, onlyMarkerComponentsRemoved = this._isOnlyMarkerComponentsRemoved(this._spec, spec, currentKeys), onlyComponentSpecsChanged = this._isOnlyComponentSpecsChanged(this._spec, spec, currentKeys), onlySeriesSpecsChanged = this._isOnlySeriesSpecsChanged(this._spec, spec, currentKeys), onlyComponentOrSeriesSpecsChanged = !(!onlyComponentSpecsChanged && !onlySeriesSpecsChanged) || this._isOnlyComponentOrSeriesSpecsChanged(this._spec, spec, currentKeys);
|
|
492
|
+
if (this._spec = spec, onlyMarkerComponentsRemoved) return this._removeMarkerComponentsForEmptySpecs(result),
|
|
493
|
+
result;
|
|
494
|
+
if (this.updateChartConfig(result, oldSpec), result.reMake) return this.setLayoutTag(!0, null, !1),
|
|
495
|
+
result;
|
|
496
|
+
if (this.updateGlobalScale(result), result.reMake) return this.setLayoutTag(!0, null, !1),
|
|
497
|
+
result;
|
|
498
|
+
if (this.updateRegionSpec(result), result.reMake) return this.setLayoutTag(!0, null, !1),
|
|
499
|
+
result;
|
|
500
|
+
const componentUpdateResult = this.updateComponentSpec(result);
|
|
501
|
+
return result.reMake ? (this.setLayoutTag(!0, null, !1), result) : (!onlyComponentSpecsChanged && (null === (_a = result.effects) || void 0 === _a ? void 0 : _a.localOnly) && delete result.effects.localOnly,
|
|
502
|
+
isUpdateSpecResultLocalOnly(result) ? result : onlyComponentSpecsChanged && !componentUpdateResult.hasNonComponentOnlyUpdate && (isUpdateSpecResultComponentOnly(result) || this._isComponentScaleDomainOnlyUpdate(result)) ? (componentUpdateResult.componentOnlyUpdatedComponents.forEach((component => {
|
|
503
|
+
component.reInit(component.getSpec());
|
|
504
|
+
})), (null === (_b = result.effects) || void 0 === _b ? void 0 : _b.layout) && this.setLayoutTag(!0, null, !1),
|
|
505
|
+
result) : (this.setLayoutTag(!0, null, !1), this.updateSeriesSpec(result), result.reMake || (this.reInit(),
|
|
506
|
+
onlyComponentOrSeriesSpecsChanged && this._canSkipChartDataStages(result) || (this.updateDataSpec(),
|
|
507
|
+
this.reDataFlow(), this._reRunStackDataFlow(), this.getAllModels().forEach((model => model.onDataUpdate())))),
|
|
508
|
+
result));
|
|
475
509
|
}
|
|
476
510
|
updateChartConfig(result, oldSpec) {
|
|
477
511
|
var _a, _b;
|
|
@@ -488,33 +522,165 @@ export class BaseChart extends CompilableBase {
|
|
|
488
522
|
})) : result.reMake = !0);
|
|
489
523
|
}
|
|
490
524
|
updateComponentSpec(result) {
|
|
525
|
+
const componentOnlyUpdatedComponents = [];
|
|
526
|
+
let hasNonComponentOnlyUpdate = !1;
|
|
491
527
|
const componentCache = {}, checkVisibleComponents = {
|
|
492
528
|
[ComponentTypeEnum.title]: !0,
|
|
493
529
|
[ComponentTypeEnum.brush]: !0,
|
|
494
530
|
[ComponentTypeEnum.indicator]: !0
|
|
495
|
-
};
|
|
531
|
+
}, removedComponents = [];
|
|
532
|
+
let hasNonLocalComponentRemoval = !1;
|
|
496
533
|
this._components.forEach((c => {
|
|
497
534
|
var _a, _b;
|
|
498
|
-
if (c.type === ComponentTypeEnum.label || c.type === ComponentTypeEnum.totalLabel) return
|
|
535
|
+
if (c.type === ComponentTypeEnum.label || c.type === ComponentTypeEnum.totalLabel) return void (c.getSpecInfo() || (removedComponents.push(c),
|
|
536
|
+
hasNonLocalComponentRemoval = !0, hasNonComponentOnlyUpdate = !0));
|
|
499
537
|
checkVisibleComponents[c.type] && (checkVisibleComponents[c.type] = !1);
|
|
500
538
|
const compSpecKey = c.specKey || c.type, cmpSpec = null !== (_a = this._spec[compSpecKey]) && void 0 !== _a ? _a : {};
|
|
501
|
-
isArray(cmpSpec)
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
539
|
+
if (isArray(cmpSpec)) {
|
|
540
|
+
if (componentCache[compSpecKey] = componentCache[compSpecKey] || {
|
|
541
|
+
specCount: cmpSpec.length,
|
|
542
|
+
componentCount: 0
|
|
543
|
+
}, this._canRemoveMarkerComponentsWithoutRemake(compSpecKey, [ c.getSpec() ], cmpSpec)) return void removedComponents.push(c);
|
|
544
|
+
componentCache[compSpecKey].componentCount++;
|
|
545
|
+
const componentSpec = null !== (_b = cmpSpec[c.getSpecIndex()]) && void 0 !== _b ? _b : {}, previousComponentSpec = c.getSpec(), componentResult = c.updateSpec(componentSpec, cmpSpec);
|
|
546
|
+
isUpdateSpecResultComponentOnly(componentResult) || this._isComponentScaleDomainOnlyUpdate(componentResult) ? componentOnlyUpdatedComponents.push(c) : isEqual(previousComponentSpec, componentSpec) || (hasNonComponentOnlyUpdate = !0),
|
|
547
|
+
mergeUpdateResult(result, componentResult);
|
|
548
|
+
} else {
|
|
549
|
+
const previousComponentSpec = c.getSpec(), componentResult = c.updateSpec(cmpSpec);
|
|
550
|
+
isUpdateSpecResultComponentOnly(componentResult) || this._isComponentScaleDomainOnlyUpdate(componentResult) ? componentOnlyUpdatedComponents.push(c) : isEqual(previousComponentSpec, cmpSpec) || (hasNonComponentOnlyUpdate = !0),
|
|
551
|
+
mergeUpdateResult(result, componentResult);
|
|
552
|
+
}
|
|
553
|
+
})), result.reMake || this._createMissingMarkerComponentsForSpecs(result, componentCache);
|
|
506
554
|
for (const key in componentCache) if (Object.prototype.hasOwnProperty.call(componentCache, key)) {
|
|
507
555
|
const element = componentCache[key];
|
|
508
556
|
element.componentCount !== element.specCount && (result.reMake = !0);
|
|
509
557
|
}
|
|
558
|
+
removedComponents.length && (removedComponents.forEach((component => {
|
|
559
|
+
this._removeComponent(component);
|
|
560
|
+
})), result.change = !0, result.effects = Object.assign(Object.assign(Object.assign({}, result.effects), {
|
|
561
|
+
component: !0
|
|
562
|
+
}), hasNonLocalComponentRemoval ? {
|
|
563
|
+
layout: !0,
|
|
564
|
+
render: !0
|
|
565
|
+
} : {
|
|
566
|
+
localOnly: !0
|
|
567
|
+
}));
|
|
510
568
|
const isVisible = compSpec => compSpec && !1 !== compSpec.visible;
|
|
511
|
-
Object.keys(checkVisibleComponents).forEach((type => {
|
|
569
|
+
return Object.keys(checkVisibleComponents).forEach((type => {
|
|
512
570
|
if (checkVisibleComponents[type]) {
|
|
513
571
|
const compSpec = this._spec[type];
|
|
514
572
|
(isArray(compSpec) ? compSpec.some(isVisible) : isVisible(compSpec)) && (result.reMake = !0);
|
|
515
573
|
}
|
|
574
|
+
})), {
|
|
575
|
+
componentOnlyUpdatedComponents: componentOnlyUpdatedComponents,
|
|
576
|
+
hasNonComponentOnlyUpdate: hasNonComponentOnlyUpdate
|
|
577
|
+
};
|
|
578
|
+
}
|
|
579
|
+
_canChangeMarkerComponentsWithoutRemake(key, currentSpec, nextSpec) {
|
|
580
|
+
return this._canRemoveMarkerComponentsWithoutRemake(key, currentSpec, nextSpec) || this._canAddMarkerComponentsWithoutRemake(key, currentSpec, nextSpec);
|
|
581
|
+
}
|
|
582
|
+
_canAddMarkerComponentsWithoutRemake(key, currentSpec, nextSpec) {
|
|
583
|
+
return !!(MARKER_COMPONENT_SPEC_KEYS[key] && isArray(currentSpec) && isArray(nextSpec)) && (!(nextSpec.length <= currentSpec.length) && nextSpec.slice(currentSpec.length).every(this._isMarkerAdditionSpecSafeWithoutRemake));
|
|
584
|
+
}
|
|
585
|
+
_isAutoRangeMarkerSpec(spec) {
|
|
586
|
+
return !!spec && "object" == typeof spec && !0 === spec.autoRange;
|
|
587
|
+
}
|
|
588
|
+
_canRemoveMarkerComponentsWithoutRemake(key, currentSpec, nextSpec) {
|
|
589
|
+
return MARKER_COMPONENT_SPEC_KEYS[key] && isArray(currentSpec) && currentSpec.length > 0 && isArray(nextSpec) && 0 === nextSpec.length;
|
|
590
|
+
}
|
|
591
|
+
_isOnlyMarkerComponentsRemoved(currentSpec, nextSpec, specKeys) {
|
|
592
|
+
let hasMarkerRemoval = !1;
|
|
593
|
+
const onlyMarkerRemoval = specKeys.every((key => this._canRemoveMarkerComponentsWithoutRemake(key, currentSpec[key], nextSpec[key]) ? (hasMarkerRemoval = !0,
|
|
594
|
+
!0) : isEqual(currentSpec[key], nextSpec[key])));
|
|
595
|
+
return hasMarkerRemoval && onlyMarkerRemoval;
|
|
596
|
+
}
|
|
597
|
+
_isComponentSpecKey(key) {
|
|
598
|
+
return !!MARKER_COMPONENT_SPEC_KEYS[key] || this._components.some((component => (component.specKey || component.type) === key));
|
|
599
|
+
}
|
|
600
|
+
_isOnlyComponentSpecsChanged(currentSpec, nextSpec, specKeys) {
|
|
601
|
+
let hasComponentSpecChange = !1;
|
|
602
|
+
const currentSpecRecord = currentSpec, nextSpecRecord = nextSpec, onlyComponentSpecChange = specKeys.every((key => !!isEqual(currentSpecRecord[key], nextSpecRecord[key]) || !!this._isComponentSpecKey(key) && (hasComponentSpecChange = !0,
|
|
603
|
+
!0)));
|
|
604
|
+
return hasComponentSpecChange && onlyComponentSpecChange;
|
|
605
|
+
}
|
|
606
|
+
_isOnlySeriesSpecsChanged(currentSpec, nextSpec, specKeys) {
|
|
607
|
+
var _a, _b;
|
|
608
|
+
let hasSeriesSpecChange = !1;
|
|
609
|
+
const currentSpecRecord = currentSpec, nextSpecRecord = nextSpec, seriesRelatedSpecKeys = null !== (_b = null === (_a = this._specTransformer) || void 0 === _a ? void 0 : _a.getSeriesRelatedSpecKeys()) && void 0 !== _b ? _b : {}, onlySeriesSpecChange = specKeys.every((key => !!isEqual(currentSpecRecord[key], nextSpecRecord[key]) || !!seriesRelatedSpecKeys[key] && (hasSeriesSpecChange = !0,
|
|
610
|
+
!0)));
|
|
611
|
+
return hasSeriesSpecChange && onlySeriesSpecChange;
|
|
612
|
+
}
|
|
613
|
+
_isOnlyComponentOrSeriesSpecsChanged(currentSpec, nextSpec, specKeys) {
|
|
614
|
+
var _a, _b;
|
|
615
|
+
let hasComponentOrSeriesSpecChange = !1;
|
|
616
|
+
const currentSpecRecord = currentSpec, nextSpecRecord = nextSpec, seriesRelatedSpecKeys = null !== (_b = null === (_a = this._specTransformer) || void 0 === _a ? void 0 : _a.getSeriesRelatedSpecKeys()) && void 0 !== _b ? _b : {}, onlyComponentOrSeriesSpecChange = specKeys.every((key => !!isEqual(currentSpecRecord[key], nextSpecRecord[key]) || !(!this._isComponentSpecKey(key) && !seriesRelatedSpecKeys[key]) && (hasComponentOrSeriesSpecChange = !0,
|
|
617
|
+
!0)));
|
|
618
|
+
return hasComponentOrSeriesSpecChange && onlyComponentOrSeriesSpecChange;
|
|
619
|
+
}
|
|
620
|
+
_canSkipChartDataStages(result) {
|
|
621
|
+
const effects = result.effects;
|
|
622
|
+
return !(!(null == effects ? void 0 : effects.series) || effects.remake || effects.data || effects.scaleDomain || result.reMake);
|
|
623
|
+
}
|
|
624
|
+
_isComponentScaleDomainOnlyUpdate(result) {
|
|
625
|
+
const effects = result.effects;
|
|
626
|
+
return !(!(null == effects ? void 0 : effects.component) || !effects.scaleDomain || result.reMake || result.reCompile || result.reSize || effects.remake || effects.compile || effects.data || effects.series || effects.animation || result.reTransformSpec || result.reAnimate || result.changeTheme || result.changeBackground);
|
|
627
|
+
}
|
|
628
|
+
_reRunStackDataFlow() {
|
|
629
|
+
var _a, _b;
|
|
630
|
+
this._series.some((series => {
|
|
631
|
+
var _a;
|
|
632
|
+
return null === (_a = series.getStack) || void 0 === _a ? void 0 : _a.call(series);
|
|
633
|
+
})) && (null === (_b = null === (_a = this._stack) || void 0 === _a ? void 0 : _a.stackAll) || void 0 === _b || _b.call(_a),
|
|
634
|
+
this._series.forEach((series => {
|
|
635
|
+
series.getViewDataFilter() && series.reTransformViewData();
|
|
636
|
+
})));
|
|
637
|
+
}
|
|
638
|
+
_getModelSpecIndex(specInfo) {
|
|
639
|
+
var _a;
|
|
640
|
+
const specPath = null !== (_a = specInfo.specPath) && void 0 !== _a ? _a : [], specIndex = specPath[specPath.length - 1];
|
|
641
|
+
return "number" == typeof specIndex ? specIndex : 0;
|
|
642
|
+
}
|
|
643
|
+
_hasComponentForSpecInfo(key, specInfo) {
|
|
644
|
+
const specIndex = this._getModelSpecIndex(specInfo);
|
|
645
|
+
return this._components.some((component => (component.specKey || component.type) === key && component.getSpecIndex() === specIndex));
|
|
646
|
+
}
|
|
647
|
+
_createMissingMarkerComponentsForSpecs(result, componentCache) {
|
|
648
|
+
var _a;
|
|
649
|
+
let createdCount = 0, hasAutoRangeMarker = !1;
|
|
650
|
+
null === (_a = this._specTransformer) || void 0 === _a || _a.forEachComponentInSpec(this._spec, ((constructor, specInfo) => {
|
|
651
|
+
if (result.reMake) return;
|
|
652
|
+
const compSpecKey = constructor.specKey || constructor.type;
|
|
653
|
+
MARKER_COMPONENT_SPEC_KEYS[compSpecKey] && !this._hasComponentForSpecInfo(compSpecKey, specInfo) && (this._isMarkerAdditionSpecSafeWithoutRemake(specInfo.spec) ? (this._createComponent(constructor, specInfo),
|
|
654
|
+
componentCache[compSpecKey] && componentCache[compSpecKey].componentCount++, createdCount++,
|
|
655
|
+
hasAutoRangeMarker = hasAutoRangeMarker || this._isAutoRangeMarkerSpec(specInfo.spec)) : result.reMake = !0);
|
|
656
|
+
}), this._option.getSpecInfo()), createdCount && (result.change = !0, result.effects = Object.assign(Object.assign(Object.assign(Object.assign({}, result.effects), {
|
|
657
|
+
component: !0
|
|
658
|
+
}), hasAutoRangeMarker ? {
|
|
659
|
+
scaleDomain: !0
|
|
660
|
+
} : null), {
|
|
661
|
+
layout: !0,
|
|
662
|
+
render: !0
|
|
516
663
|
}));
|
|
517
664
|
}
|
|
665
|
+
_removeMarkerComponentsForEmptySpecs(result) {
|
|
666
|
+
const removedComponents = this._components.filter((component => {
|
|
667
|
+
var _a;
|
|
668
|
+
const compSpecKey = component.specKey || component.type, cmpSpec = null !== (_a = this._spec[compSpecKey]) && void 0 !== _a ? _a : {};
|
|
669
|
+
return this._canRemoveMarkerComponentsWithoutRemake(compSpecKey, [ component.getSpec() ], cmpSpec);
|
|
670
|
+
}));
|
|
671
|
+
removedComponents.length && (removedComponents.forEach((component => {
|
|
672
|
+
this._removeComponent(component);
|
|
673
|
+
})), result.change = !0, result.effects = Object.assign(Object.assign({}, result.effects), {
|
|
674
|
+
component: !0,
|
|
675
|
+
localOnly: !0
|
|
676
|
+
}));
|
|
677
|
+
}
|
|
678
|
+
_removeComponent(component) {
|
|
679
|
+
this._components = this._components.filter((c => c !== component)), this._idMap.delete(component.id),
|
|
680
|
+
component.getMarks().forEach((mark => {
|
|
681
|
+
this.getCompiler().removeRootMark(mark);
|
|
682
|
+
})), component.release();
|
|
683
|
+
}
|
|
518
684
|
updateSeriesSpec(result) {
|
|
519
685
|
this._spec.series.length === this._series.length ? this._series.forEach((s => {
|
|
520
686
|
const spec = this._spec.series[s.getSpecIndex()];
|
|
@@ -610,8 +776,8 @@ export class BaseChart extends CompilableBase {
|
|
|
610
776
|
c.compile();
|
|
611
777
|
})), null === (_d = null === (_c = this._option.performanceHook) || void 0 === _c ? void 0 : _c.afterComponentCompile) || void 0 === _d || _d.call(_c, this._option.globalInstance);
|
|
612
778
|
}
|
|
613
|
-
release() {
|
|
614
|
-
[ ...this._components, ...this._regions, ...this._series ].forEach((m => {
|
|
779
|
+
release(forceReleaseVRenderComponents = !0) {
|
|
780
|
+
forceReleaseVRenderComponents && [ ...this._components, ...this._regions, ...this._series ].forEach((m => {
|
|
615
781
|
m.beforeRelease();
|
|
616
782
|
})), super.release(), this.clear(), [ ...this._components, ...this._regions, ...this._series ].forEach((m => {
|
|
617
783
|
m.release();
|