@visactor/vchart 2.1.0-alpha.14 → 2.1.0-alpha.15
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 +56784 -64559
- package/build/index.js +56787 -64562
- package/build/index.min.js +2 -2
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/animation/callback-disappear.d.ts +1 -1
- package/cjs/animation/callback-disappear.js +2 -2
- package/cjs/animation/callback-disappear.js.map +1 -1
- package/cjs/animation/config.js +34 -34
- package/cjs/animation/config.js.map +1 -1
- package/cjs/animation/index.js +2 -1
- package/cjs/chart/base/base-chart-transformer.d.ts +0 -3
- package/cjs/chart/base/base-chart-transformer.js +3 -23
- package/cjs/chart/base/base-chart-transformer.js.map +1 -1
- package/cjs/chart/base/base-chart.d.ts +9 -27
- package/cjs/chart/base/base-chart.js +28 -209
- package/cjs/chart/base/base-chart.js.map +1 -1
- package/cjs/chart/gauge/gauge-transformer.js +2 -3
- package/cjs/chart/gauge/gauge-transformer.js.map +1 -1
- package/cjs/chart/interface/chart.d.ts +0 -1
- 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 +1 -2
- 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 +2 -3
- 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 +1 -2
- package/cjs/chart/rose/rose-transformer.js.map +1 -1
- package/cjs/chart/util.d.ts +1 -4
- package/cjs/chart/util.js +4 -40
- package/cjs/chart/util.js.map +1 -1
- package/cjs/chart/waterfall/waterfall-transformer.js +1 -2
- package/cjs/chart/waterfall/waterfall-transformer.js.map +1 -1
- package/cjs/compile/compiler.d.ts +0 -2
- package/cjs/compile/compiler.js +48 -68
- 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/compile/interface/compiler.d.ts +1 -2
- package/cjs/compile/interface/compiler.js.map +1 -1
- package/cjs/compile/morph.js +4 -4
- package/cjs/compile/morph.js.map +1 -1
- package/cjs/compile/state-manager.js +1 -2
- package/cjs/component/axis/base-axis.d.ts +8 -3
- package/cjs/component/axis/base-axis.js +7 -27
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/band-axis.d.ts +7 -1
- package/cjs/component/axis/cartesian/band-axis.js +4 -4
- package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/linear-axis.d.ts +1 -1
- package/cjs/component/axis/cartesian/linear-axis.js +4 -4
- package/cjs/component/axis/cartesian/linear-axis.js.map +1 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.js +10 -7
- package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/cjs/component/axis/polar/band-axis.d.ts +0 -2
- package/cjs/component/axis/polar/band-axis.js +0 -3
- package/cjs/component/axis/polar/band-axis.js.map +1 -1
- package/cjs/component/axis/polar/linear-axis.js +0 -3
- 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 +6 -41
- package/cjs/component/base/base-component.js.map +1 -1
- package/cjs/component/brush/brush.d.ts +7 -3
- package/cjs/component/brush/brush.js +16 -34
- package/cjs/component/brush/brush.js.map +1 -1
- package/cjs/component/crosshair/base.d.ts +8 -5
- package/cjs/component/crosshair/base.js +5 -33
- package/cjs/component/crosshair/base.js.map +1 -1
- package/cjs/component/crosshair/cartesian.js +3 -3
- package/cjs/component/crosshair/cartesian.js.map +1 -1
- package/cjs/component/custom-mark/custom-mark.d.ts +7 -4
- package/cjs/component/custom-mark/custom-mark.js +3 -27
- package/cjs/component/custom-mark/custom-mark.js.map +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.d.ts +7 -3
- package/cjs/component/data-zoom/data-filter-base-component.js +2 -15
- package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +0 -1
- package/cjs/component/data-zoom/data-zoom/data-zoom.js +1 -19
- package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +0 -1
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +1 -12
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
- package/cjs/component/geo/geo-coordinate.d.ts +7 -1
- package/cjs/component/index.js +2 -1
- package/cjs/component/indicator/indicator.d.ts +0 -1
- package/cjs/component/indicator/indicator.js +2 -11
- package/cjs/component/indicator/indicator.js.map +1 -1
- package/cjs/component/indicator/util.d.ts +3 -4
- 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 +7 -1
- package/cjs/component/label/base-label.js +2 -6
- package/cjs/component/label/base-label.js.map +1 -1
- package/cjs/component/label/label.js +3 -3
- package/cjs/component/label/label.js.map +1 -1
- package/cjs/component/legend/base-legend.d.ts +7 -2
- package/cjs/component/legend/base-legend.js +3 -20
- package/cjs/component/legend/base-legend.js.map +1 -1
- package/cjs/component/legend/discrete/legend.d.ts +1 -1
- package/cjs/component/legend/discrete/legend.js +7 -7
- package/cjs/component/legend/discrete/legend.js.map +1 -1
- package/cjs/component/marker/base-marker.d.ts +7 -14
- package/cjs/component/marker/base-marker.js +12 -112
- 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 +4 -2
- 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 +11 -26
- 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 +23 -27
- package/cjs/component/marker/utils.js.map +1 -1
- package/cjs/component/player/player.d.ts +0 -1
- package/cjs/component/player/player.js +0 -10
- package/cjs/component/player/player.js.map +1 -1
- package/cjs/component/title/title.d.ts +7 -1
- package/cjs/component/title/title.js +2 -6
- package/cjs/component/title/title.js.map +1 -1
- package/cjs/component/tooltip/tooltip.d.ts +0 -1
- package/cjs/component/tooltip/tooltip.js +0 -8
- package/cjs/component/tooltip/tooltip.js.map +1 -1
- package/cjs/component/util.js +1 -2
- package/cjs/constant/scatter.js +2 -1
- package/cjs/constant/scroll-bar.js +1 -2
- package/cjs/core/index.d.ts +1 -2
- package/cjs/core/index.js +4 -8
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/instance-manager.js +1 -1
- package/cjs/core/vchart.d.ts +1 -5
- package/cjs/core/vchart.js +18 -30
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/data/transforms/box-plot.d.ts +1 -4
- 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 +4 -11
- package/cjs/data/transforms/correlation-center.js +2 -3
- package/cjs/data/transforms/correlation-center.js.map +1 -1
- package/cjs/data/transforms/correlation.d.ts +15 -18
- package/cjs/data/transforms/correlation.js +17 -22
- package/cjs/data/transforms/correlation.js.map +1 -1
- package/cjs/data/transforms/funnel.d.ts +8 -10
- package/cjs/data/transforms/funnel.js +3 -4
- package/cjs/data/transforms/funnel.js.map +1 -1
- package/cjs/data/transforms/lookup.d.ts +3 -3
- package/cjs/data/transforms/lookup.js +7 -12
- package/cjs/data/transforms/lookup.js.map +1 -1
- package/cjs/data/transforms/map.d.ts +2 -8
- package/cjs/data/transforms/map.js +6 -9
- package/cjs/data/transforms/map.js.map +1 -1
- package/cjs/data/transforms/sankey.d.ts +4 -12
- package/cjs/data/transforms/sankey.js +13 -18
- package/cjs/data/transforms/sankey.js.map +1 -1
- package/cjs/data/transforms/stack-split.d.ts +1 -2
- 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 +3 -5
- package/cjs/data/transforms/treemap.js +6 -7
- package/cjs/data/transforms/treemap.js.map +1 -1
- package/cjs/data/transforms/venn.d.ts +2 -4
- package/cjs/data/transforms/venn.js +4 -4
- package/cjs/data/transforms/venn.js.map +1 -1
- package/cjs/data/transforms/waterfall.d.ts +2 -4
- package/cjs/data/transforms/waterfall.js +7 -7
- package/cjs/data/transforms/waterfall.js.map +1 -1
- package/cjs/env/env.js +10 -10
- package/cjs/env/env.js.map +1 -1
- package/cjs/event/event.d.ts +0 -4
- package/cjs/event/event.js +7 -26
- package/cjs/event/event.js.map +1 -1
- package/cjs/interaction/interaction.js +8 -11
- package/cjs/interaction/interaction.js.map +1 -1
- package/cjs/interaction/triggers/element-active-by-legend.js +2 -3
- package/cjs/interaction/triggers/element-active-by-legend.js.map +1 -1
- package/cjs/interaction/triggers/element-active.js +3 -4
- package/cjs/interaction/triggers/element-active.js.map +1 -1
- package/cjs/interaction/triggers/element-highlight-by-group.js +2 -3
- package/cjs/interaction/triggers/element-highlight-by-group.js.map +1 -1
- package/cjs/interaction/triggers/element-highlight-by-legend.js +2 -2
- package/cjs/interaction/triggers/element-highlight-by-legend.js.map +1 -1
- package/cjs/interaction/triggers/element-highlight-by-name.js +2 -2
- package/cjs/interaction/triggers/element-highlight-by-name.js.map +1 -1
- package/cjs/interaction/triggers/element-highlight.js +2 -2
- package/cjs/interaction/triggers/element-highlight.js.map +1 -1
- package/cjs/interaction/triggers/element-select.js +3 -3
- package/cjs/interaction/triggers/element-select.js.map +1 -1
- package/cjs/mark/arc.js +4 -4
- package/cjs/mark/arc.js.map +1 -1
- package/cjs/mark/area.js +5 -4
- package/cjs/mark/area.js.map +1 -1
- package/cjs/mark/base/base-mark.d.ts +2 -13
- package/cjs/mark/base/base-mark.js +29 -106
- package/cjs/mark/base/base-mark.js.map +1 -1
- package/cjs/mark/component.d.ts +0 -9
- package/cjs/mark/component.js +3 -51
- package/cjs/mark/component.js.map +1 -1
- package/cjs/mark/group.js +6 -6
- package/cjs/mark/group.js.map +1 -1
- package/cjs/mark/interface/mark.d.ts +0 -2
- package/cjs/mark/interface/mark.js.map +1 -1
- package/cjs/mark/line.js +5 -4
- package/cjs/mark/line.js.map +1 -1
- package/cjs/mark/rect.js +3 -3
- package/cjs/mark/rect.js.map +1 -1
- package/cjs/mark/symbol.js +3 -3
- package/cjs/mark/symbol.js.map +1 -1
- package/cjs/mark/text.js +4 -4
- package/cjs/mark/text.js.map +1 -1
- package/cjs/mark/utils/glyph.js +2 -3
- package/cjs/mark/utils/glyph.js.map +1 -1
- package/cjs/model/base-model.d.ts +15 -3
- package/cjs/model/base-model.js.map +1 -1
- package/cjs/model/interface.d.ts +0 -13
- package/cjs/model/interface.js.map +1 -1
- package/cjs/plugin/components/axis-sync/tick-align-transform.js +2 -2
- package/cjs/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.d.ts +2 -2
- package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.js +2 -2
- package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.js.map +1 -1
- package/cjs/plugin/other.js +5 -5
- package/cjs/plugin/other.js.map +1 -1
- package/cjs/region/region.d.ts +7 -1
- package/cjs/scale/color-ordinal-scale.d.ts +0 -1
- package/cjs/scale/color-ordinal-scale.js +0 -3
- package/cjs/scale/color-ordinal-scale.js.map +1 -1
- package/cjs/scale/global-scale.js +2 -9
- package/cjs/scale/global-scale.js.map +1 -1
- package/cjs/series/area/area.d.ts +0 -2
- package/cjs/series/area/area.js +0 -6
- package/cjs/series/area/area.js.map +1 -1
- package/cjs/series/bar/bar.d.ts +0 -3
- package/cjs/series/bar/bar.js +4 -30
- package/cjs/series/bar/bar.js.map +1 -1
- package/cjs/series/base/base-series.d.ts +7 -11
- package/cjs/series/base/base-series.js +18 -88
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/base/constant.d.ts +0 -3
- package/cjs/series/base/constant.js +1 -9
- package/cjs/series/base/constant.js.map +1 -1
- package/cjs/series/box-plot/box-plot.d.ts +0 -2
- package/cjs/series/box-plot/box-plot.js +4 -16
- package/cjs/series/box-plot/box-plot.js.map +1 -1
- package/cjs/series/correlation/correlation.js +11 -13
- package/cjs/series/correlation/correlation.js.map +1 -1
- package/cjs/series/dot/dot.d.ts +0 -12
- package/cjs/series/dot/dot.js +1 -16
- package/cjs/series/dot/dot.js.map +1 -1
- package/cjs/series/funnel/funnel.js +8 -5
- package/cjs/series/funnel/funnel.js.map +1 -1
- package/cjs/series/heatmap/heatmap.d.ts +0 -2
- package/cjs/series/heatmap/heatmap.js +0 -10
- package/cjs/series/heatmap/heatmap.js.map +1 -1
- package/cjs/series/line/line.d.ts +0 -2
- package/cjs/series/line/line.js +3 -9
- 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 +0 -1
- package/cjs/series/mixin/line-mixin.js +1 -6
- package/cjs/series/mixin/line-mixin.js.map +1 -1
- package/cjs/series/pie/pie.d.ts +7 -3
- package/cjs/series/pie/pie.js +1 -16
- package/cjs/series/pie/pie.js.map +1 -1
- package/cjs/series/polar/progress-like/progress-like.d.ts +0 -2
- package/cjs/series/polar/progress-like/progress-like.js +1 -16
- package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
- package/cjs/series/polar/rose-like/rose-like.d.ts +0 -2
- package/cjs/series/polar/rose-like/rose-like.js +1 -15
- package/cjs/series/polar/rose-like/rose-like.js.map +1 -1
- package/cjs/series/progress/circular/circular.d.ts +0 -2
- package/cjs/series/progress/circular/circular.js +1 -10
- package/cjs/series/progress/circular/circular.js.map +1 -1
- package/cjs/series/progress/linear/linear.d.ts +0 -2
- package/cjs/series/progress/linear/linear.js +1 -19
- package/cjs/series/progress/linear/linear.js.map +1 -1
- package/cjs/series/sankey/sankey.js +57 -67
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/cjs/series/scatter/scatter.d.ts +0 -2
- package/cjs/series/scatter/scatter.js +1 -9
- package/cjs/series/scatter/scatter.js.map +1 -1
- package/cjs/series/treemap/treemap.js +20 -23
- 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 +0 -2
- package/cjs/series/waterfall/waterfall.js +20 -36
- package/cjs/series/waterfall/waterfall.js.map +1 -1
- package/cjs/series/word-cloud/animation.js +0 -3
- package/cjs/series/word-cloud/animation.js.map +1 -1
- package/cjs/theme/builtin/common/series/word-cloud.js +6 -2
- package/cjs/theme/builtin/common/series/word-cloud.js.map +1 -1
- package/cjs/util/math.d.ts +1 -1
- package/cjs/util/math.js +2 -2
- package/cjs/util/math.js.map +1 -1
- package/cjs/util/text.js +2 -2
- package/cjs/util/text.js.map +1 -1
- package/esm/animation/callback-disappear.d.ts +1 -1
- package/esm/animation/callback-disappear.js +1 -1
- package/esm/animation/callback-disappear.js.map +1 -1
- package/esm/animation/config.js +1 -33
- package/esm/animation/config.js.map +1 -1
- package/esm/animation/index.js +2 -1
- package/esm/chart/base/base-chart-transformer.d.ts +0 -3
- package/esm/chart/base/base-chart-transformer.js +2 -24
- package/esm/chart/base/base-chart-transformer.js.map +1 -1
- package/esm/chart/base/base-chart.d.ts +9 -27
- package/esm/chart/base/base-chart.js +27 -202
- package/esm/chart/base/base-chart.js.map +1 -1
- package/esm/chart/gauge/gauge-transformer.js +2 -3
- package/esm/chart/gauge/gauge-transformer.js.map +1 -1
- package/esm/chart/interface/chart.d.ts +0 -1
- 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 +1 -2
- 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 +2 -3
- 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 +1 -2
- package/esm/chart/rose/rose-transformer.js.map +1 -1
- package/esm/chart/util.d.ts +1 -4
- package/esm/chart/util.js +1 -34
- package/esm/chart/util.js.map +1 -1
- package/esm/chart/waterfall/waterfall-transformer.js +1 -2
- package/esm/chart/waterfall/waterfall-transformer.js.map +1 -1
- package/esm/compile/compiler.d.ts +0 -2
- package/esm/compile/compiler.js +47 -69
- 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/compile/interface/compiler.d.ts +1 -2
- package/esm/compile/interface/compiler.js.map +1 -1
- package/esm/compile/morph.js +1 -1
- package/esm/compile/morph.js.map +1 -1
- package/esm/compile/state-manager.js +1 -2
- package/esm/component/axis/base-axis.d.ts +8 -3
- package/esm/component/axis/base-axis.js +6 -27
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/axis/cartesian/band-axis.d.ts +7 -1
- package/esm/component/axis/cartesian/band-axis.js +2 -4
- package/esm/component/axis/cartesian/band-axis.js.map +1 -1
- package/esm/component/axis/cartesian/linear-axis.d.ts +1 -1
- package/esm/component/axis/cartesian/linear-axis.js +1 -5
- package/esm/component/axis/cartesian/linear-axis.js.map +1 -1
- package/esm/component/axis/mixin/linear-axis-mixin.js +10 -7
- package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/esm/component/axis/polar/band-axis.d.ts +0 -2
- package/esm/component/axis/polar/band-axis.js +0 -3
- package/esm/component/axis/polar/band-axis.js.map +1 -1
- package/esm/component/axis/polar/linear-axis.js +0 -3
- 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 +5 -41
- package/esm/component/base/base-component.js.map +1 -1
- package/esm/component/brush/brush.d.ts +7 -3
- package/esm/component/brush/brush.js +11 -29
- package/esm/component/brush/brush.js.map +1 -1
- package/esm/component/crosshair/base.d.ts +8 -5
- package/esm/component/crosshair/base.js +3 -27
- package/esm/component/crosshair/base.js.map +1 -1
- package/esm/component/crosshair/cartesian.js +1 -3
- package/esm/component/crosshair/cartesian.js.map +1 -1
- package/esm/component/custom-mark/custom-mark.d.ts +7 -4
- package/esm/component/custom-mark/custom-mark.js +2 -27
- package/esm/component/custom-mark/custom-mark.js.map +1 -1
- package/esm/component/data-zoom/data-filter-base-component.d.ts +7 -3
- package/esm/component/data-zoom/data-filter-base-component.js +2 -14
- package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +0 -1
- package/esm/component/data-zoom/data-zoom/data-zoom.js +0 -20
- package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +0 -1
- package/esm/component/data-zoom/scroll-bar/scroll-bar.js +1 -12
- package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
- package/esm/component/geo/geo-coordinate.d.ts +7 -1
- package/esm/component/index.js +2 -1
- package/esm/component/indicator/indicator.d.ts +0 -1
- package/esm/component/indicator/indicator.js +2 -11
- package/esm/component/indicator/indicator.js.map +1 -1
- package/esm/component/indicator/util.d.ts +3 -4
- 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 +7 -1
- package/esm/component/label/base-label.js +1 -5
- package/esm/component/label/base-label.js.map +1 -1
- package/esm/component/label/label.js +2 -2
- package/esm/component/label/label.js.map +1 -1
- package/esm/component/legend/base-legend.d.ts +7 -2
- package/esm/component/legend/base-legend.js +2 -20
- package/esm/component/legend/base-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/marker/base-marker.d.ts +7 -14
- package/esm/component/marker/base-marker.js +11 -113
- 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 +4 -2
- 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 +11 -24
- 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 +23 -27
- package/esm/component/marker/utils.js.map +1 -1
- package/esm/component/player/player.d.ts +0 -1
- package/esm/component/player/player.js +0 -10
- package/esm/component/player/player.js.map +1 -1
- package/esm/component/title/title.d.ts +7 -1
- package/esm/component/title/title.js +2 -6
- package/esm/component/title/title.js.map +1 -1
- package/esm/component/tooltip/tooltip.d.ts +0 -1
- package/esm/component/tooltip/tooltip.js +1 -9
- package/esm/component/tooltip/tooltip.js.map +1 -1
- package/esm/component/util.js +1 -2
- package/esm/constant/scatter.js +2 -1
- package/esm/constant/scroll-bar.js +1 -2
- package/esm/core/index.d.ts +1 -2
- package/esm/core/index.js +1 -3
- package/esm/core/index.js.map +1 -1
- package/esm/core/instance-manager.js +1 -1
- package/esm/core/vchart.d.ts +1 -5
- package/esm/core/vchart.js +18 -31
- package/esm/core/vchart.js.map +1 -1
- package/esm/data/transforms/box-plot.d.ts +1 -4
- 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 +4 -11
- package/esm/data/transforms/correlation-center.js +2 -4
- package/esm/data/transforms/correlation-center.js.map +1 -1
- package/esm/data/transforms/correlation.d.ts +15 -18
- package/esm/data/transforms/correlation.js +8 -13
- package/esm/data/transforms/correlation.js.map +1 -1
- package/esm/data/transforms/funnel.d.ts +8 -10
- package/esm/data/transforms/funnel.js +3 -5
- package/esm/data/transforms/funnel.js.map +1 -1
- package/esm/data/transforms/lookup.d.ts +3 -3
- package/esm/data/transforms/lookup.js +6 -12
- package/esm/data/transforms/lookup.js.map +1 -1
- package/esm/data/transforms/map.d.ts +2 -8
- package/esm/data/transforms/map.js +6 -11
- package/esm/data/transforms/map.js.map +1 -1
- package/esm/data/transforms/sankey.d.ts +4 -12
- package/esm/data/transforms/sankey.js +14 -19
- package/esm/data/transforms/sankey.js.map +1 -1
- package/esm/data/transforms/stack-split.d.ts +1 -2
- 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 +3 -5
- package/esm/data/transforms/treemap.js +5 -8
- package/esm/data/transforms/treemap.js.map +1 -1
- package/esm/data/transforms/venn.d.ts +2 -4
- package/esm/data/transforms/venn.js +3 -5
- package/esm/data/transforms/venn.js.map +1 -1
- package/esm/data/transforms/waterfall.d.ts +2 -4
- package/esm/data/transforms/waterfall.js +8 -7
- package/esm/data/transforms/waterfall.js.map +1 -1
- package/esm/env/env.js +1 -1
- package/esm/env/env.js.map +1 -1
- package/esm/event/event.d.ts +0 -4
- package/esm/event/event.js +7 -26
- package/esm/event/event.js.map +1 -1
- package/esm/interaction/interaction.js +8 -10
- package/esm/interaction/interaction.js.map +1 -1
- package/esm/interaction/triggers/element-active-by-legend.js +1 -3
- package/esm/interaction/triggers/element-active-by-legend.js.map +1 -1
- package/esm/interaction/triggers/element-active.js +2 -4
- package/esm/interaction/triggers/element-active.js.map +1 -1
- package/esm/interaction/triggers/element-highlight-by-group.js +1 -4
- package/esm/interaction/triggers/element-highlight-by-group.js.map +1 -1
- package/esm/interaction/triggers/element-highlight-by-legend.js +1 -3
- package/esm/interaction/triggers/element-highlight-by-legend.js.map +1 -1
- package/esm/interaction/triggers/element-highlight-by-name.js +1 -3
- package/esm/interaction/triggers/element-highlight-by-name.js.map +1 -1
- package/esm/interaction/triggers/element-highlight.js +1 -3
- package/esm/interaction/triggers/element-highlight.js.map +1 -1
- package/esm/interaction/triggers/element-select.js +2 -4
- package/esm/interaction/triggers/element-select.js.map +1 -1
- package/esm/mark/arc.js +2 -4
- package/esm/mark/arc.js.map +1 -1
- package/esm/mark/area.js +2 -6
- package/esm/mark/area.js.map +1 -1
- package/esm/mark/base/base-mark.d.ts +2 -13
- package/esm/mark/base/base-mark.js +28 -107
- package/esm/mark/base/base-mark.js.map +1 -1
- package/esm/mark/component.d.ts +0 -9
- package/esm/mark/component.js +2 -51
- package/esm/mark/component.js.map +1 -1
- package/esm/mark/group.js +5 -6
- package/esm/mark/group.js.map +1 -1
- package/esm/mark/interface/mark.d.ts +0 -2
- package/esm/mark/interface/mark.js.map +1 -1
- package/esm/mark/line.js +2 -6
- package/esm/mark/line.js.map +1 -1
- package/esm/mark/rect.js +2 -4
- package/esm/mark/rect.js.map +1 -1
- package/esm/mark/symbol.js +2 -4
- package/esm/mark/symbol.js.map +1 -1
- package/esm/mark/text.js +1 -5
- package/esm/mark/text.js.map +1 -1
- package/esm/mark/utils/glyph.js +1 -3
- package/esm/mark/utils/glyph.js.map +1 -1
- package/esm/model/base-model.d.ts +15 -3
- package/esm/model/base-model.js.map +1 -1
- package/esm/model/interface.d.ts +0 -13
- package/esm/model/interface.js.map +1 -1
- package/esm/plugin/components/axis-sync/tick-align-transform.js +1 -1
- package/esm/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.d.ts +2 -2
- package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.js +1 -1
- package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.js.map +1 -1
- package/esm/plugin/other.js +2 -2
- package/esm/plugin/other.js.map +1 -1
- package/esm/region/region.d.ts +7 -1
- package/esm/scale/color-ordinal-scale.d.ts +0 -1
- package/esm/scale/color-ordinal-scale.js +0 -3
- package/esm/scale/color-ordinal-scale.js.map +1 -1
- package/esm/scale/global-scale.js +1 -9
- package/esm/scale/global-scale.js.map +1 -1
- package/esm/series/area/area.d.ts +0 -2
- package/esm/series/area/area.js +1 -7
- package/esm/series/area/area.js.map +1 -1
- package/esm/series/bar/bar.d.ts +0 -3
- package/esm/series/bar/bar.js +4 -30
- package/esm/series/bar/bar.js.map +1 -1
- package/esm/series/base/base-series.d.ts +7 -11
- package/esm/series/base/base-series.js +16 -84
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/base/constant.d.ts +0 -3
- package/esm/series/base/constant.js +0 -10
- package/esm/series/base/constant.js.map +1 -1
- package/esm/series/box-plot/box-plot.d.ts +0 -2
- package/esm/series/box-plot/box-plot.js +4 -15
- package/esm/series/box-plot/box-plot.js.map +1 -1
- package/esm/series/correlation/correlation.js +11 -13
- package/esm/series/correlation/correlation.js.map +1 -1
- package/esm/series/dot/dot.d.ts +0 -12
- package/esm/series/dot/dot.js +0 -17
- package/esm/series/dot/dot.js.map +1 -1
- package/esm/series/funnel/funnel.js +8 -5
- package/esm/series/funnel/funnel.js.map +1 -1
- package/esm/series/heatmap/heatmap.d.ts +0 -2
- package/esm/series/heatmap/heatmap.js +0 -10
- package/esm/series/heatmap/heatmap.js.map +1 -1
- package/esm/series/line/line.d.ts +0 -2
- package/esm/series/line/line.js +2 -10
- 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 +0 -1
- package/esm/series/mixin/line-mixin.js +0 -5
- package/esm/series/mixin/line-mixin.js.map +1 -1
- package/esm/series/pie/pie.d.ts +7 -3
- package/esm/series/pie/pie.js +0 -17
- package/esm/series/pie/pie.js.map +1 -1
- package/esm/series/polar/progress-like/progress-like.d.ts +0 -2
- package/esm/series/polar/progress-like/progress-like.js +0 -17
- package/esm/series/polar/progress-like/progress-like.js.map +1 -1
- package/esm/series/polar/rose-like/rose-like.d.ts +0 -2
- package/esm/series/polar/rose-like/rose-like.js +0 -16
- package/esm/series/polar/rose-like/rose-like.js.map +1 -1
- package/esm/series/progress/circular/circular.d.ts +0 -2
- package/esm/series/progress/circular/circular.js +0 -11
- package/esm/series/progress/circular/circular.js.map +1 -1
- package/esm/series/progress/linear/linear.d.ts +0 -2
- package/esm/series/progress/linear/linear.js +0 -20
- package/esm/series/progress/linear/linear.js.map +1 -1
- package/esm/series/sankey/sankey.js +54 -60
- package/esm/series/sankey/sankey.js.map +1 -1
- package/esm/series/scatter/scatter.d.ts +0 -2
- package/esm/series/scatter/scatter.js +0 -10
- package/esm/series/scatter/scatter.js.map +1 -1
- package/esm/series/treemap/treemap.js +20 -23
- 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 +0 -2
- package/esm/series/waterfall/waterfall.js +20 -36
- package/esm/series/waterfall/waterfall.js.map +1 -1
- package/esm/series/word-cloud/animation.js +0 -3
- package/esm/series/word-cloud/animation.js.map +1 -1
- package/esm/theme/builtin/common/series/word-cloud.js +6 -2
- package/esm/theme/builtin/common/series/word-cloud.js.map +1 -1
- package/esm/util/math.d.ts +1 -1
- package/esm/util/math.js +1 -1
- package/esm/util/math.js.map +1 -1
- package/esm/util/text.js +1 -1
- package/esm/util/text.js.map +1 -1
- package/package.json +8 -10
- package/cjs/compile/stage-app.d.ts +0 -17
- package/cjs/compile/stage-app.js +0 -82
- package/cjs/compile/stage-app.js.map +0 -1
- package/cjs/component/base/release-vrender-component.d.ts +0 -10
- package/cjs/component/base/release-vrender-component.js +0 -37
- package/cjs/component/base/release-vrender-component.js.map +0 -1
- package/cjs/data/data-view-utils.d.ts +0 -5
- package/cjs/data/data-view-utils.js +0 -58
- package/cjs/data/data-view-utils.js.map +0 -1
- package/cjs/util/graphic-state.d.ts +0 -4
- package/cjs/util/graphic-state.js +0 -40
- package/cjs/util/graphic-state.js.map +0 -1
- package/esm/compile/stage-app.d.ts +0 -17
- package/esm/compile/stage-app.js +0 -77
- package/esm/compile/stage-app.js.map +0 -1
- package/esm/component/base/release-vrender-component.d.ts +0 -10
- package/esm/component/base/release-vrender-component.js +0 -24
- package/esm/component/base/release-vrender-component.js.map +0 -1
- package/esm/data/data-view-utils.d.ts +0 -5
- package/esm/data/data-view-utils.js +0 -46
- package/esm/data/data-view-utils.js.map +0 -1
- package/esm/util/graphic-state.d.ts +0 -4
- package/esm/util/graphic-state.js +0 -30
- package/esm/util/graphic-state.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/crosshair/cartesian.ts"],"names":[],"mappings":"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","file":"cartesian.js","sourcesContent":["import type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isValid } from '@visactor/vutils';\nimport type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { ICartesianCrosshairSpec } from './interface';\nimport type { ICartesianSeries } from '../../series/interface';\nimport { LineCrosshair } from '@visactor/vrender-components/crosshair/line';\nimport { RectCrosshair } from '@visactor/vrender-components/crosshair/rect';\n// eslint-disable-next-line no-duplicate-imports\nimport { BaseCrossHair } from './base';\nimport type { INode } from '@visactor/vrender-core';\nimport type { IAxis } from '../axis/interface';\nimport type { IOrientType, IPoint, StringOrNumber, TooltipActiveType, TooltipData } from '../../typings';\nimport { isXAxis, isYAxis } from '../axis/cartesian/util/common';\nimport { Factory } from '../../core/factory';\nimport type { IModelSpecInfo } from '../../model/interface';\nimport { layoutByValue, layoutCrosshair } from './utils/cartesian';\nimport { getFirstSeries } from '../../util';\nimport type { IDimensionData, IDimensionInfo } from '../../event/events/dimension/interface';\nimport { getSpecInfo } from '../util';\nimport { crosshair } from '../../theme/builtin/common/component/crosshair';\n\n// 1. crosshair保存上次记录的x和y轴dimension\n// 2. 每次交互触发时,首先转化成dimension保存,然后依据dimension计算x和y绘制\n// 3. 如果同方向同时有多个轴,那么同时保存这些轴的数据\n// 4. 如果同方向的轴有多个离散轴,那么直接不显示\n\nexport class CartesianCrossHair<T extends ICartesianCrosshairSpec = ICartesianCrosshairSpec> extends BaseCrossHair<T> {\n static specKey = 'crosshair';\n\n static readonly builtInTheme = {\n crosshair\n };\n static type = ComponentTypeEnum.cartesianCrosshair;\n type = ComponentTypeEnum.cartesianCrosshair;\n name: string = ComponentTypeEnum.cartesianCrosshair;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n return getSpecInfo<ICartesianCrosshairSpec>(chartSpec, this.specKey, this.type, (s: ICartesianCrosshairSpec) => {\n return (s.xField && s.xField.visible !== false) || (s.yField && s.yField.visible !== false);\n });\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n\n this._stateByField = {\n xField: {\n coordKey: 'x',\n anotherAxisKey: 'y',\n currentValue: new Map(),\n labelsComp: {\n top: null,\n bottom: null\n }\n },\n yField: {\n coordKey: 'y',\n anotherAxisKey: 'x',\n currentValue: new Map(),\n labelsComp: {\n left: null,\n right: null\n }\n }\n };\n }\n\n /**\n * 查找所有落在x和y区域的轴\n * @param relativeX\n * @param relativeY\n */\n private _findAllAxisContains(relativeX: number, relativeY: number) {\n const xAxisMap = this._getAxisInfoByField<IAxis>('x');\n const yAxisMap = this._getAxisInfoByField<IAxis>('y');\n return {\n xAxisMap: this._filterAxisByPoint(xAxisMap, relativeX, relativeY),\n yAxisMap: this._filterAxisByPoint(yAxisMap, relativeX, relativeY)\n };\n }\n\n protected _getDatumAtPoint(axis: IAxis, point: IPoint): number | string {\n const dim = isXAxis(axis.getOrient() as unknown as IOrientType) ? 'x' : 'y';\n const coordByAxis = point[dim] - (axis.getLayoutStartPoint()[dim] - this.getLayoutStartPoint()[dim]);\n const value = axis.getScale().invert(coordByAxis);\n return value;\n }\n\n /**\n * set axis value of crosshair\n */\n setAxisValue(datum: StringOrNumber, axis: IAxis) {\n if (isXAxis(axis.getOrient() as unknown as IOrientType)) {\n this._stateByField.xField.currentValue.set(axis.getSpecIndex(), {\n datum,\n axis\n });\n } else {\n this._stateByField.yField.currentValue.set(axis.getSpecIndex(), {\n datum,\n axis\n });\n }\n }\n\n protected _layoutCrosshair(\n relativeX: number,\n relativeY: number,\n tooltipData?: TooltipData,\n activeType?: TooltipActiveType\n ) {\n let x = relativeX;\n let y = relativeY;\n\n if (tooltipData && tooltipData.length) {\n if (activeType === 'dimension') {\n const dimensionInfo = (tooltipData as IDimensionInfo[])[0];\n // 图例筛选时, 找到第一个没有被筛选的系列\n const datumIndex = dimensionInfo.data.findIndex(dimData => dimData.datum.length > 0);\n let pos;\n if (datumIndex > -1) {\n const dimensionData = dimensionInfo.data[datumIndex];\n pos = dimensionData.series.dataToPosition(dimensionData.datum[0]);\n }\n\n const isY = isValid(dimensionInfo.dimType)\n ? dimensionInfo.dimType === 'y'\n : isYAxis(dimensionInfo?.axis?.getOrient() as IOrientType);\n\n if (isY) {\n y = pos?.y;\n } else {\n x = pos?.x;\n }\n } else if (activeType === 'mark') {\n const dimensionData = (tooltipData as IDimensionData[])[0];\n const pos = dimensionData.series.dataToPosition(dimensionData.datum[0]);\n\n x = pos?.x;\n y = pos?.y;\n }\n }\n // 删除之前的currValue\n this.clearAxisValue();\n // 找到所有的包含这个点的轴\n const { xAxisMap, yAxisMap } = this._findAllAxisContains(x, y);\n if ((xAxisMap && xAxisMap.size === 0) || (yAxisMap && yAxisMap.size === 0)) {\n if (this.enableRemain) {\n return;\n }\n // 隐藏\n this.hide();\n return;\n }\n\n // 将数据保存到这个对象中,如果不存在,就直接不执行后续逻辑\n xAxisMap && xAxisMap.size && this._setAllAxisValues(xAxisMap, { x, y }, 'xField');\n yAxisMap && yAxisMap.size && this._setAllAxisValues(yAxisMap, { x, y }, 'yField');\n\n this.layoutByValue();\n }\n\n layoutByValue(enableRemain?: boolean) {\n if (!this.enable) {\n return;\n }\n const series = getFirstSeries(this._regions, 'cartesian') as ICartesianSeries;\n if (!series) {\n return;\n }\n\n layoutByValue(this._stateByField, series, this.getLayoutStartPoint(), enableRemain ?? this.enableRemain);\n\n Object.keys(this._stateByField).forEach(field => {\n this._layoutByField(field);\n });\n }\n\n private _layoutByField(field: string) {\n const { cacheInfo, attributes, labelsComp, bandSize, coordKey } = this._stateByField[field];\n if (!attributes || !cacheInfo || (cacheInfo._isCache && this.enableRemain)) {\n return;\n }\n\n const { coord, labels, visible, labelsTextStyle } = cacheInfo;\n\n if (visible) {\n // 外部设置的size\n const positionAttribute = layoutCrosshair(this._stateByField[field]);\n this._updateCrosshairByField(field, positionAttribute);\n\n Object.keys(labels).forEach(labelKey => {\n if (labels[labelKey].visible) {\n const updateAttrs = {\n [coordKey]: coord + bandSize / 2,\n ...labels[labelKey],\n ...attributes.label,\n angle: attributes.label.syncAxisLabelAngle ? cacheInfo.axisLabel?.attribute.angle ?? 0 : 0,\n textStyle: {\n ...attributes.label?.textStyle,\n ...labelsTextStyle[labelKey]\n },\n zIndex: this.labelZIndex,\n visible: true\n };\n this._updateCrosshairLabel(labelsComp[labelKey], updateAttrs, label => {\n label.name = `crosshair-${field.replace('Field', '')}-${labelKey}-label`;\n labelsComp[labelKey] = label;\n });\n } else {\n labelsComp[labelKey] && labelsComp[labelKey].hideAll();\n }\n });\n } else {\n this._hideByField(field);\n }\n }\n\n private _updateCrosshairByField(field: string, positionAttribute: any) {\n const container = this.getContainer();\n const { attributes } = this._stateByField[field];\n let { crosshairComp } = this._stateByField[field];\n\n if (crosshairComp) {\n crosshairComp.setAttributes(positionAttribute);\n } else {\n const style = attributes.style;\n // 创建\n if (attributes.type === 'line') {\n crosshairComp = new LineCrosshair({\n ...positionAttribute,\n lineStyle: style,\n zIndex: this.gridZIndex + 1, // 样式优化:线盖在面上\n disableTriggerEvent: this._option.disableTriggerEvent,\n pickable: false\n });\n } else if (attributes.type === 'rect') {\n crosshairComp = new RectCrosshair({\n ...positionAttribute,\n rectStyle: style,\n zIndex: this.gridZIndex,\n disableTriggerEvent: this._option.disableTriggerEvent,\n pickable: false\n });\n }\n // 添加至场景树\n container?.add(crosshairComp as unknown as INode);\n\n this._stateByField[field].crosshairComp = crosshairComp;\n }\n }\n}\n\nexport const registerCartesianCrossHair = () => {\n Factory.registerComponent(CartesianCrossHair.type, CartesianCrossHair);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/crosshair/cartesian.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAG3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE5E,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAIvC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAO3E,MAAM,OAAO,kBAAgF,SAAQ,aAAgB;IAUnH,MAAM,CAAC,WAAW,CAAC,SAAc;QAC/B,OAAO,WAAW,CAA0B,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAA0B,EAAE,EAAE;YAC7G,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC;QAC9F,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,IAAO,EAAE,OAAyB;QAC5C,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAVvB,SAAI,GAAG,iBAAiB,CAAC,kBAAkB,CAAC;QAC5C,SAAI,GAAW,iBAAiB,CAAC,kBAAkB,CAAC;QAWlD,IAAI,CAAC,aAAa,GAAG;YACnB,MAAM,EAAE;gBACN,QAAQ,EAAE,GAAG;gBACb,cAAc,EAAE,GAAG;gBACnB,YAAY,EAAE,IAAI,GAAG,EAAE;gBACvB,UAAU,EAAE;oBACV,GAAG,EAAE,IAAI;oBACT,MAAM,EAAE,IAAI;iBACb;aACF;YACD,MAAM,EAAE;gBACN,QAAQ,EAAE,GAAG;gBACb,cAAc,EAAE,GAAG;gBACnB,YAAY,EAAE,IAAI,GAAG,EAAE;gBACvB,UAAU,EAAE;oBACV,IAAI,EAAE,IAAI;oBACV,KAAK,EAAE,IAAI;iBACZ;aACF;SACF,CAAC;IACJ,CAAC;IAOO,oBAAoB,CAAC,SAAiB,EAAE,SAAiB;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAQ,GAAG,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAQ,GAAG,CAAC,CAAC;QACtD,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;YACjE,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;SAClE,CAAC;IACJ,CAAC;IAES,gBAAgB,CAAC,IAAW,EAAE,KAAa;QACnD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAA4B,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC5E,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACrG,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IAKD,YAAY,CAAC,KAAqB,EAAE,IAAW;QAC7C,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,EAA4B,CAAC,EAAE;YACvD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;gBAC9D,KAAK;gBACL,IAAI;aACL,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;gBAC9D,KAAK;gBACL,IAAI;aACL,CAAC,CAAC;SACJ;IACH,CAAC;IAES,gBAAgB,CACxB,SAAiB,EACjB,SAAiB,EACjB,WAAyB,EACzB,UAA8B;;QAE9B,IAAI,CAAC,GAAG,SAAS,CAAC;QAClB,IAAI,CAAC,GAAG,SAAS,CAAC;QAElB,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,EAAE;YACrC,IAAI,UAAU,KAAK,WAAW,EAAE;gBAC9B,MAAM,aAAa,GAAI,WAAgC,CAAC,CAAC,CAAC,CAAC;gBAE3D,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACrF,IAAI,GAAG,CAAC;gBACR,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE;oBACnB,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBACrD,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;iBACnE;gBAED,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC;oBACxC,CAAC,CAAC,aAAa,CAAC,OAAO,KAAK,GAAG;oBAC/B,CAAC,CAAC,OAAO,CAAC,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,0CAAE,SAAS,EAAiB,CAAC,CAAC;gBAE7D,IAAI,GAAG,EAAE;oBACP,CAAC,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,CAAC,CAAC;iBACZ;qBAAM;oBACL,CAAC,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,CAAC,CAAC;iBACZ;aACF;iBAAM,IAAI,UAAU,KAAK,MAAM,EAAE;gBAChC,MAAM,aAAa,GAAI,WAAgC,CAAC,CAAC,CAAC,CAAC;gBAC3D,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAExE,CAAC,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,CAAC,CAAC;gBACX,CAAC,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,CAAC,CAAC;aACZ;SACF;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;QAEtB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE;YAC1E,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,OAAO;aACR;YAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO;SACR;QAGD,QAAQ,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAClF,QAAQ,IAAI,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAElF,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,aAAa,CAAC,YAAsB;QAClC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,OAAO;SACR;QACD,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAqB,CAAC;QAC9E,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QAED,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE,EAAE,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,IAAI,CAAC,YAAY,CAAC,CAAC;QAEzG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC9C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,cAAc,CAAC,KAAa;QAClC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5F,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE;YAC1E,OAAO;SACR;QAED,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC;QAE9D,IAAI,OAAO,EAAE;YAEX,MAAM,iBAAiB,GAAG,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;YACrE,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;YAEvD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;;gBACrC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;oBAC5B,MAAM,WAAW,+CACf,CAAC,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,CAAC,IAC7B,MAAM,CAAC,QAAQ,CAAC,GAChB,UAAU,CAAC,KAAK,KACnB,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAA,MAAA,SAAS,CAAC,SAAS,0CAAE,SAAS,CAAC,KAAK,mCAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAC1F,SAAS,kCACJ,MAAA,UAAU,CAAC,KAAK,0CAAE,SAAS,GAC3B,eAAe,CAAC,QAAQ,CAAC,GAE9B,MAAM,EAAE,IAAI,CAAC,WAAW,EACxB,OAAO,EAAE,IAAI,GACd,CAAC;oBACF,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE;wBACpE,KAAK,CAAC,IAAI,GAAG,aAAa,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,QAAQ,QAAQ,CAAC;wBACzE,UAAU,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;oBAC/B,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,UAAU,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;iBACxD;YACH,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SAC1B;IACH,CAAC;IAEO,uBAAuB,CAAC,KAAa,EAAE,iBAAsB;QACnE,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAElD,IAAI,aAAa,EAAE;YACjB,aAAa,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;SAChD;aAAM;YACL,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;YAE/B,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE;gBAC9B,aAAa,GAAG,IAAI,aAAa,iCAC5B,iBAAiB,KACpB,SAAS,EAAE,KAAK,EAChB,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,EAC3B,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,EACrD,QAAQ,EAAE,KAAK,IACf,CAAC;aACJ;iBAAM,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE;gBACrC,aAAa,GAAG,IAAI,aAAa,iCAC5B,iBAAiB,KACpB,SAAS,EAAE,KAAK,EAChB,MAAM,EAAE,IAAI,CAAC,UAAU,EACvB,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,EACrD,QAAQ,EAAE,KAAK,IACf,CAAC;aACJ;YAED,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,GAAG,CAAC,aAAiC,CAAC,CAAC;YAElD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,aAAa,GAAG,aAAa,CAAC;SACzD;IACH,CAAC;;AA/NM,0BAAO,GAAG,WAAW,CAAC;AAEb,+BAAY,GAAG;IAC7B,SAAS;CACV,CAAC;AACK,uBAAI,GAAG,iBAAiB,CAAC,kBAAkB,CAAC;AA6NrD,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,EAAE;IAC7C,OAAO,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;AACzE,CAAC,CAAC","file":"cartesian.js","sourcesContent":["import type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isValid } from '@visactor/vutils';\nimport type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { ICartesianCrosshairSpec } from './interface';\nimport type { ICartesianSeries } from '../../series/interface';\nimport { LineCrosshair, RectCrosshair } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { BaseCrossHair } from './base';\nimport type { INode } from '@visactor/vrender-core';\nimport type { IAxis } from '../axis/interface';\nimport type { IOrientType, IPoint, StringOrNumber, TooltipActiveType, TooltipData } from '../../typings';\nimport { isXAxis, isYAxis } from '../axis/cartesian/util/common';\nimport { Factory } from '../../core/factory';\nimport type { IModelSpecInfo } from '../../model/interface';\nimport { layoutByValue, layoutCrosshair } from './utils/cartesian';\nimport { getFirstSeries } from '../../util';\nimport type { IDimensionData, IDimensionInfo } from '../../event/events/dimension/interface';\nimport { getSpecInfo } from '../util';\nimport { crosshair } from '../../theme/builtin/common/component/crosshair';\n\n// 1. crosshair保存上次记录的x和y轴dimension\n// 2. 每次交互触发时,首先转化成dimension保存,然后依据dimension计算x和y绘制\n// 3. 如果同方向同时有多个轴,那么同时保存这些轴的数据\n// 4. 如果同方向的轴有多个离散轴,那么直接不显示\n\nexport class CartesianCrossHair<T extends ICartesianCrosshairSpec = ICartesianCrosshairSpec> extends BaseCrossHair<T> {\n static specKey = 'crosshair';\n\n static readonly builtInTheme = {\n crosshair\n };\n static type = ComponentTypeEnum.cartesianCrosshair;\n type = ComponentTypeEnum.cartesianCrosshair;\n name: string = ComponentTypeEnum.cartesianCrosshair;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n return getSpecInfo<ICartesianCrosshairSpec>(chartSpec, this.specKey, this.type, (s: ICartesianCrosshairSpec) => {\n return (s.xField && s.xField.visible !== false) || (s.yField && s.yField.visible !== false);\n });\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n\n this._stateByField = {\n xField: {\n coordKey: 'x',\n anotherAxisKey: 'y',\n currentValue: new Map(),\n labelsComp: {\n top: null,\n bottom: null\n }\n },\n yField: {\n coordKey: 'y',\n anotherAxisKey: 'x',\n currentValue: new Map(),\n labelsComp: {\n left: null,\n right: null\n }\n }\n };\n }\n\n /**\n * 查找所有落在x和y区域的轴\n * @param relativeX\n * @param relativeY\n */\n private _findAllAxisContains(relativeX: number, relativeY: number) {\n const xAxisMap = this._getAxisInfoByField<IAxis>('x');\n const yAxisMap = this._getAxisInfoByField<IAxis>('y');\n return {\n xAxisMap: this._filterAxisByPoint(xAxisMap, relativeX, relativeY),\n yAxisMap: this._filterAxisByPoint(yAxisMap, relativeX, relativeY)\n };\n }\n\n protected _getDatumAtPoint(axis: IAxis, point: IPoint): number | string {\n const dim = isXAxis(axis.getOrient() as unknown as IOrientType) ? 'x' : 'y';\n const coordByAxis = point[dim] - (axis.getLayoutStartPoint()[dim] - this.getLayoutStartPoint()[dim]);\n const value = axis.getScale().invert(coordByAxis);\n return value;\n }\n\n /**\n * set axis value of crosshair\n */\n setAxisValue(datum: StringOrNumber, axis: IAxis) {\n if (isXAxis(axis.getOrient() as unknown as IOrientType)) {\n this._stateByField.xField.currentValue.set(axis.getSpecIndex(), {\n datum,\n axis\n });\n } else {\n this._stateByField.yField.currentValue.set(axis.getSpecIndex(), {\n datum,\n axis\n });\n }\n }\n\n protected _layoutCrosshair(\n relativeX: number,\n relativeY: number,\n tooltipData?: TooltipData,\n activeType?: TooltipActiveType\n ) {\n let x = relativeX;\n let y = relativeY;\n\n if (tooltipData && tooltipData.length) {\n if (activeType === 'dimension') {\n const dimensionInfo = (tooltipData as IDimensionInfo[])[0];\n // 图例筛选时, 找到第一个没有被筛选的系列\n const datumIndex = dimensionInfo.data.findIndex(dimData => dimData.datum.length > 0);\n let pos;\n if (datumIndex > -1) {\n const dimensionData = dimensionInfo.data[datumIndex];\n pos = dimensionData.series.dataToPosition(dimensionData.datum[0]);\n }\n\n const isY = isValid(dimensionInfo.dimType)\n ? dimensionInfo.dimType === 'y'\n : isYAxis(dimensionInfo?.axis?.getOrient() as IOrientType);\n\n if (isY) {\n y = pos?.y;\n } else {\n x = pos?.x;\n }\n } else if (activeType === 'mark') {\n const dimensionData = (tooltipData as IDimensionData[])[0];\n const pos = dimensionData.series.dataToPosition(dimensionData.datum[0]);\n\n x = pos?.x;\n y = pos?.y;\n }\n }\n // 删除之前的currValue\n this.clearAxisValue();\n // 找到所有的包含这个点的轴\n const { xAxisMap, yAxisMap } = this._findAllAxisContains(x, y);\n if ((xAxisMap && xAxisMap.size === 0) || (yAxisMap && yAxisMap.size === 0)) {\n if (this.enableRemain) {\n return;\n }\n // 隐藏\n this.hide();\n return;\n }\n\n // 将数据保存到这个对象中,如果不存在,就直接不执行后续逻辑\n xAxisMap && xAxisMap.size && this._setAllAxisValues(xAxisMap, { x, y }, 'xField');\n yAxisMap && yAxisMap.size && this._setAllAxisValues(yAxisMap, { x, y }, 'yField');\n\n this.layoutByValue();\n }\n\n layoutByValue(enableRemain?: boolean) {\n if (!this.enable) {\n return;\n }\n const series = getFirstSeries(this._regions, 'cartesian') as ICartesianSeries;\n if (!series) {\n return;\n }\n\n layoutByValue(this._stateByField, series, this.getLayoutStartPoint(), enableRemain ?? this.enableRemain);\n\n Object.keys(this._stateByField).forEach(field => {\n this._layoutByField(field);\n });\n }\n\n private _layoutByField(field: string) {\n const { cacheInfo, attributes, labelsComp, bandSize, coordKey } = this._stateByField[field];\n if (!attributes || !cacheInfo || (cacheInfo._isCache && this.enableRemain)) {\n return;\n }\n\n const { coord, labels, visible, labelsTextStyle } = cacheInfo;\n\n if (visible) {\n // 外部设置的size\n const positionAttribute = layoutCrosshair(this._stateByField[field]);\n this._updateCrosshairByField(field, positionAttribute);\n\n Object.keys(labels).forEach(labelKey => {\n if (labels[labelKey].visible) {\n const updateAttrs = {\n [coordKey]: coord + bandSize / 2,\n ...labels[labelKey],\n ...attributes.label,\n angle: attributes.label.syncAxisLabelAngle ? cacheInfo.axisLabel?.attribute.angle ?? 0 : 0,\n textStyle: {\n ...attributes.label?.textStyle,\n ...labelsTextStyle[labelKey]\n },\n zIndex: this.labelZIndex,\n visible: true\n };\n this._updateCrosshairLabel(labelsComp[labelKey], updateAttrs, label => {\n label.name = `crosshair-${field.replace('Field', '')}-${labelKey}-label`;\n labelsComp[labelKey] = label;\n });\n } else {\n labelsComp[labelKey] && labelsComp[labelKey].hideAll();\n }\n });\n } else {\n this._hideByField(field);\n }\n }\n\n private _updateCrosshairByField(field: string, positionAttribute: any) {\n const container = this.getContainer();\n const { attributes } = this._stateByField[field];\n let { crosshairComp } = this._stateByField[field];\n\n if (crosshairComp) {\n crosshairComp.setAttributes(positionAttribute);\n } else {\n const style = attributes.style;\n // 创建\n if (attributes.type === 'line') {\n crosshairComp = new LineCrosshair({\n ...positionAttribute,\n lineStyle: style,\n zIndex: this.gridZIndex + 1, // 样式优化:线盖在面上\n disableTriggerEvent: this._option.disableTriggerEvent,\n pickable: false\n });\n } else if (attributes.type === 'rect') {\n crosshairComp = new RectCrosshair({\n ...positionAttribute,\n rectStyle: style,\n zIndex: this.gridZIndex,\n disableTriggerEvent: this._option.disableTriggerEvent,\n pickable: false\n });\n }\n // 添加至场景树\n container?.add(crosshairComp as unknown as INode);\n\n this._stateByField[field].crosshairComp = crosshairComp;\n }\n }\n}\n\nexport const registerCartesianCrossHair = () => {\n Factory.registerComponent(CartesianCrossHair.type, CartesianCrossHair);\n};\n"]}
|
|
@@ -18,10 +18,13 @@ export declare class CustomMark extends BaseComponent<ICustomMarkSpec<EnableMark
|
|
|
18
18
|
protected initMarks(): void;
|
|
19
19
|
private _createExtensionMark;
|
|
20
20
|
initEvent(): void;
|
|
21
|
-
_compareSpec(spec: ICustomMarkSpec<EnableMarkType>, prevSpec: ICustomMarkSpec<EnableMarkType>):
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
_compareSpec(spec: ICustomMarkSpec<EnableMarkType>, prevSpec: ICustomMarkSpec<EnableMarkType>): {
|
|
22
|
+
change: boolean;
|
|
23
|
+
reMake: boolean;
|
|
24
|
+
reRender: boolean;
|
|
25
|
+
reSize: boolean;
|
|
26
|
+
reCompile: boolean;
|
|
27
|
+
};
|
|
25
28
|
private _getMarkAttributeContext;
|
|
26
29
|
private _getLayoutRect;
|
|
27
30
|
getBoundsInRect(rect: ILayoutRect): {
|
|
@@ -12,11 +12,6 @@ import { Factory } from "../../core/factory";
|
|
|
12
12
|
|
|
13
13
|
import { animationConfig, userAnimationConfig } from "../../animation/utils";
|
|
14
14
|
|
|
15
|
-
const CUSTOM_MARK_COMPONENT_ONLY_CHANGE_KEYS = {
|
|
16
|
-
style: !0,
|
|
17
|
-
state: !0
|
|
18
|
-
};
|
|
19
|
-
|
|
20
15
|
export class CustomMark extends BaseComponent {
|
|
21
16
|
constructor() {
|
|
22
17
|
super(...arguments), this.type = ComponentTypeEnum.customMark, this.specKey = "customMark",
|
|
@@ -77,28 +72,8 @@ export class CustomMark extends BaseComponent {
|
|
|
77
72
|
initEvent() {}
|
|
78
73
|
_compareSpec(spec, prevSpec) {
|
|
79
74
|
const result = super._compareSpec(spec, prevSpec);
|
|
80
|
-
return isEqual(prevSpec, spec) || (result.reMake
|
|
81
|
-
|
|
82
|
-
render: !0
|
|
83
|
-
})), result.change = !0, result.reRender = !0, result;
|
|
84
|
-
}
|
|
85
|
-
_isComponentOnlySpecChange(spec, prevSpec) {
|
|
86
|
-
return Object.keys(Object.assign(Object.assign({}, prevSpec), spec)).every((key => isEqual(null == prevSpec ? void 0 : prevSpec[key], null == spec ? void 0 : spec[key]) || CUSTOM_MARK_COMPONENT_ONLY_CHANGE_KEYS[key]));
|
|
87
|
-
}
|
|
88
|
-
reInit(spec) {
|
|
89
|
-
super.reInit(spec), this._updateMarkStyleWithSpec(this._spec, this.getMarks()[0]),
|
|
90
|
-
this.getMarks().forEach((mark => {
|
|
91
|
-
mark.commit(!1, !0);
|
|
92
|
-
}));
|
|
93
|
-
}
|
|
94
|
-
_updateMarkStyleWithSpec(spec, mark) {
|
|
95
|
-
var _a, _b, _c, _d;
|
|
96
|
-
if (spec && mark && (this.initMarkStyleWithSpec(mark, spec), "group" === spec.type)) {
|
|
97
|
-
const children = null !== (_c = null === (_b = (_a = mark).getMarks) || void 0 === _b ? void 0 : _b.call(_a)) && void 0 !== _c ? _c : [];
|
|
98
|
-
null === (_d = spec.children) || void 0 === _d || _d.forEach(((childSpec, index) => {
|
|
99
|
-
this._updateMarkStyleWithSpec(childSpec, children[index]);
|
|
100
|
-
}));
|
|
101
|
-
}
|
|
75
|
+
return isEqual(prevSpec, spec) || (result.reMake = !0), result.change = !0, result.reRender = !0,
|
|
76
|
+
result;
|
|
102
77
|
}
|
|
103
78
|
_getMarkAttributeContext() {
|
|
104
79
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/custom-mark/custom-mark.ts"],"names":[],"mappings":"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","file":"custom-mark.js","sourcesContent":["import { BaseComponent } from '../base/base-component';\nimport { ComponentTypeEnum } from '../interface/type';\n// eslint-disable-next-line no-duplicate-imports\nimport { LayoutLevel, LayoutZIndex } from '../../constant/layout';\nimport { PREFIX } from '../../constant/base';\nimport type { EnableMarkType, ICustomMarkGroupSpec, ICustomMarkSpec, ILayoutRect } from '../../typings';\nimport type { IComponentMark, IMark } from '../../mark/interface';\nimport { MarkTypeEnum, type IGroupMark } from '../../mark/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { Bounds, isEqual, isNil, isValid, isValidNumber } from '@visactor/vutils';\nimport { Factory } from '../../core/factory';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport type { IModelMarkAttributeContext } from '../../compile/mark/interface';\n\nconst CUSTOM_MARK_COMPONENT_ONLY_CHANGE_KEYS: Record<string, boolean> = {\n style: true,\n state: true\n};\n\n// TODO: 规范范型\nexport class CustomMark extends BaseComponent<ICustomMarkSpec<EnableMarkType>> {\n static type = ComponentTypeEnum.customMark;\n type = ComponentTypeEnum.customMark;\n\n static specKey = 'customMark';\n specKey = 'customMark';\n\n layoutType: 'none' = 'none';\n layoutZIndex: number = LayoutZIndex.CustomMark;\n layoutLevel: number = LayoutLevel.CustomMark;\n\n protected declare _spec: ICustomMarkSpec<Exclude<EnableMarkType, 'group'>> | ICustomMarkGroupSpec;\n\n created() {\n super.created();\n this.initMarks();\n this.initEvent();\n }\n\n protected _markAttributeContext: IModelMarkAttributeContext;\n getMarkAttributeContext() {\n return this._markAttributeContext;\n }\n\n protected _buildMarkAttributeContext() {\n this._markAttributeContext = {\n vchart: this._option.globalInstance,\n globalScale: (key: string, value: string | number) => {\n return this._option.globalScale.getScale(key)?.scale(value);\n }\n };\n }\n\n protected initMarks() {\n if (!this._spec) {\n return;\n }\n\n let parentMark: IGroupMark | null = null;\n if (this._spec.parent) {\n const mark = this.getChart()\n .getAllMarks()\n .find(m => m.getUserId() === this._spec.parent) as IGroupMark;\n if (mark.type === 'group') {\n parentMark = mark;\n }\n }\n this._createExtensionMark(this._spec, parentMark, `${PREFIX}_series_${this.id}_extensionMark`, 0);\n }\n\n private _createExtensionMark(\n spec: ICustomMarkSpec<Exclude<EnableMarkType, 'group'>> | ICustomMarkGroupSpec,\n parentMark: null | IGroupMark,\n namePrefix: string,\n index: number = 0\n ) {\n const mark = this._createMark(\n {\n type: spec.type,\n name: isValid(spec.name) ? `${spec.name}` : `${namePrefix}_${index}`\n },\n {\n // 避免二次dataflow\n skipBeforeLayouted: true,\n attributeContext: this._getMarkAttributeContext(),\n componentType: spec.componentType,\n key: spec.dataKey\n }\n ) as IGroupMark;\n if (!mark) {\n return;\n }\n\n if (isValid(spec.id)) {\n mark.setUserId(spec.id);\n }\n\n if (this._option.globalInstance?.isAnimationEnable() && spec.animation) {\n // 自定义图元默认不添加动画\n const config = animationConfig({}, userAnimationConfig(spec.type, spec as any, this._markAttributeContext));\n mark.setAnimationConfig(config);\n }\n\n if (isNil(parentMark)) {\n this._marks.addMark(mark);\n } else if (parentMark) {\n parentMark.addMark(mark);\n }\n // set style\n this.initMarkStyleWithSpec(mark, spec);\n if (spec.type === 'group') {\n namePrefix = `${namePrefix}_${index}`;\n spec.children?.forEach((s, i) => {\n this._createExtensionMark(s as any, mark, namePrefix, i);\n });\n }\n\n if (isValid(spec.dataId) || isValidNumber(spec.dataIndex)) {\n const dataview = this.getChart().getSeriesData(spec.dataId, spec.dataIndex);\n\n if (dataview) {\n mark.setDataView(dataview);\n dataview.target.addListener('change', () => {\n mark.getData().updateData();\n });\n }\n }\n }\n\n initEvent() {\n // do nothing\n }\n\n /**\n * updateSpec\n */\n _compareSpec(spec: ICustomMarkSpec<EnableMarkType>, prevSpec: ICustomMarkSpec<EnableMarkType>) {\n const result = super._compareSpec(spec, prevSpec);\n if (!isEqual(prevSpec, spec)) {\n if (!result.reMake && !result.reCompile && this._isComponentOnlySpecChange(spec, prevSpec)) {\n result.effects = {\n ...result.effects,\n component: true,\n render: true\n };\n } else {\n result.reMake = true;\n }\n }\n\n result.change = true;\n result.reRender = true;\n return result;\n }\n\n protected _isComponentOnlySpecChange(\n spec: ICustomMarkSpec<EnableMarkType>,\n prevSpec: ICustomMarkSpec<EnableMarkType>\n ) {\n const keys = Object.keys({\n ...prevSpec,\n ...spec\n });\n\n return keys.every(key => {\n return isEqual(prevSpec?.[key], spec?.[key]) || CUSTOM_MARK_COMPONENT_ONLY_CHANGE_KEYS[key];\n });\n }\n\n reInit(spec?: ICustomMarkSpec<EnableMarkType>) {\n super.reInit(spec);\n this._updateMarkStyleWithSpec(this._spec, this.getMarks()[0]);\n this.getMarks().forEach(mark => {\n mark.commit(false, true);\n });\n }\n\n private _updateMarkStyleWithSpec(\n spec: ICustomMarkSpec<EnableMarkType> | ICustomMarkGroupSpec,\n mark: IMark\n ) {\n if (!spec || !mark) {\n return;\n }\n\n this.initMarkStyleWithSpec(mark, spec);\n if (spec.type === 'group') {\n const children = (mark as IGroupMark).getMarks?.() ?? [];\n (spec as ICustomMarkGroupSpec).children?.forEach((childSpec, index) => {\n this._updateMarkStyleWithSpec(childSpec, children[index]);\n });\n }\n }\n\n private _getMarkAttributeContext() {\n return {\n vchart: this._option.globalInstance,\n chart: this.getChart(),\n globalScale: (key: string, value: string | number) => {\n return this._option.globalScale.getScale(key)?.scale(value);\n },\n getLayoutBounds: () => {\n const { x, y } = this.getLayoutStartPoint();\n const { width, height } = this.getLayoutRect();\n return new Bounds().set(x, y, x + width, y + height);\n }\n };\n }\n\n private _getLayoutRect() {\n const bounds = new Bounds();\n\n this.getMarks().forEach(mark => {\n const product = mark.getProduct();\n\n if (product) {\n bounds.union(product.AABBBounds);\n }\n });\n\n if (bounds.empty()) {\n return {\n width: 0,\n height: 0\n };\n }\n\n return {\n width: bounds.width(),\n height: bounds.height()\n };\n }\n\n getBoundsInRect(rect: ILayoutRect) {\n this.setLayoutRect(rect);\n\n const result = this._getLayoutRect();\n const { x, y } = this.getLayoutStartPoint();\n return {\n x1: x,\n y1: y,\n x2: x + result.width,\n y2: y + result.height\n };\n }\n\n getVRenderComponents() {\n const comps: any[] = [];\n const checkFunc = (m: IComponentMark) => {\n if (m && m.type === MarkTypeEnum.group) {\n m.getMarks().forEach(child => {\n checkFunc(child as IComponentMark);\n });\n } else if (m.type === MarkTypeEnum.component) {\n const comp = m?.getComponent();\n\n if (comp) {\n comps.push(comp);\n }\n }\n };\n\n this.getMarks().forEach(m => {\n checkFunc(m as IComponentMark);\n });\n\n return comps;\n }\n}\n\nexport const registerCustomMark = () => {\n Factory.registerComponent(CustomMark.type, CustomMark);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/custom-mark/custom-mark.ts"],"names":[],"mappings":"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","file":"custom-mark.js","sourcesContent":["import { BaseComponent } from '../base/base-component';\nimport { ComponentTypeEnum } from '../interface/type';\n// eslint-disable-next-line no-duplicate-imports\nimport { LayoutLevel, LayoutZIndex } from '../../constant/layout';\nimport { PREFIX } from '../../constant/base';\nimport type { EnableMarkType, ICustomMarkGroupSpec, ICustomMarkSpec, ILayoutRect } from '../../typings';\nimport type { IComponentMark } from '../../mark/interface';\nimport { MarkTypeEnum, type IGroupMark } from '../../mark/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { Bounds, isEqual, isNil, isValid, isValidNumber } from '@visactor/vutils';\nimport { Factory } from '../../core/factory';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport type { IModelMarkAttributeContext } from '../../compile/mark/interface';\n\n// TODO: 规范范型\nexport class CustomMark extends BaseComponent<ICustomMarkSpec<EnableMarkType>> {\n static type = ComponentTypeEnum.customMark;\n type = ComponentTypeEnum.customMark;\n\n static specKey = 'customMark';\n specKey = 'customMark';\n\n layoutType: 'none' = 'none';\n layoutZIndex: number = LayoutZIndex.CustomMark;\n layoutLevel: number = LayoutLevel.CustomMark;\n\n protected declare _spec: ICustomMarkSpec<Exclude<EnableMarkType, 'group'>> | ICustomMarkGroupSpec;\n\n created() {\n super.created();\n this.initMarks();\n this.initEvent();\n }\n\n protected _markAttributeContext: IModelMarkAttributeContext;\n getMarkAttributeContext() {\n return this._markAttributeContext;\n }\n\n protected _buildMarkAttributeContext() {\n this._markAttributeContext = {\n vchart: this._option.globalInstance,\n globalScale: (key: string, value: string | number) => {\n return this._option.globalScale.getScale(key)?.scale(value);\n }\n };\n }\n\n protected initMarks() {\n if (!this._spec) {\n return;\n }\n\n let parentMark: IGroupMark | null = null;\n if (this._spec.parent) {\n const mark = this.getChart()\n .getAllMarks()\n .find(m => m.getUserId() === this._spec.parent) as IGroupMark;\n if (mark.type === 'group') {\n parentMark = mark;\n }\n }\n this._createExtensionMark(this._spec, parentMark, `${PREFIX}_series_${this.id}_extensionMark`, 0);\n }\n\n private _createExtensionMark(\n spec: ICustomMarkSpec<Exclude<EnableMarkType, 'group'>> | ICustomMarkGroupSpec,\n parentMark: null | IGroupMark,\n namePrefix: string,\n index: number = 0\n ) {\n const mark = this._createMark(\n {\n type: spec.type,\n name: isValid(spec.name) ? `${spec.name}` : `${namePrefix}_${index}`\n },\n {\n // 避免二次dataflow\n skipBeforeLayouted: true,\n attributeContext: this._getMarkAttributeContext(),\n componentType: spec.componentType,\n key: spec.dataKey\n }\n ) as IGroupMark;\n if (!mark) {\n return;\n }\n\n if (isValid(spec.id)) {\n mark.setUserId(spec.id);\n }\n\n if (this._option.globalInstance?.isAnimationEnable() && spec.animation) {\n // 自定义图元默认不添加动画\n const config = animationConfig({}, userAnimationConfig(spec.type, spec as any, this._markAttributeContext));\n mark.setAnimationConfig(config);\n }\n\n if (isNil(parentMark)) {\n this._marks.addMark(mark);\n } else if (parentMark) {\n parentMark.addMark(mark);\n }\n // set style\n this.initMarkStyleWithSpec(mark, spec);\n if (spec.type === 'group') {\n namePrefix = `${namePrefix}_${index}`;\n spec.children?.forEach((s, i) => {\n this._createExtensionMark(s as any, mark, namePrefix, i);\n });\n }\n\n if (isValid(spec.dataId) || isValidNumber(spec.dataIndex)) {\n const dataview = this.getChart().getSeriesData(spec.dataId, spec.dataIndex);\n\n if (dataview) {\n mark.setDataView(dataview);\n dataview.target.addListener('change', () => {\n mark.getData().updateData();\n });\n }\n }\n }\n\n initEvent() {\n // do nothing\n }\n\n /**\n * updateSpec\n */\n _compareSpec(spec: ICustomMarkSpec<EnableMarkType>, prevSpec: ICustomMarkSpec<EnableMarkType>) {\n const result = super._compareSpec(spec, prevSpec);\n if (!isEqual(prevSpec, spec)) {\n result.reMake = true;\n }\n\n result.change = true;\n result.reRender = true;\n return result;\n }\n\n private _getMarkAttributeContext() {\n return {\n vchart: this._option.globalInstance,\n chart: this.getChart(),\n globalScale: (key: string, value: string | number) => {\n return this._option.globalScale.getScale(key)?.scale(value);\n },\n getLayoutBounds: () => {\n const { x, y } = this.getLayoutStartPoint();\n const { width, height } = this.getLayoutRect();\n return new Bounds().set(x, y, x + width, y + height);\n }\n };\n }\n\n private _getLayoutRect() {\n const bounds = new Bounds();\n\n this.getMarks().forEach(mark => {\n const product = mark.getProduct();\n\n if (product) {\n bounds.union(product.AABBBounds);\n }\n });\n\n if (bounds.empty()) {\n return {\n width: 0,\n height: 0\n };\n }\n\n return {\n width: bounds.width(),\n height: bounds.height()\n };\n }\n\n getBoundsInRect(rect: ILayoutRect) {\n this.setLayoutRect(rect);\n\n const result = this._getLayoutRect();\n const { x, y } = this.getLayoutStartPoint();\n return {\n x1: x,\n y1: y,\n x2: x + result.width,\n y2: y + result.height\n };\n }\n\n getVRenderComponents() {\n const comps: any[] = [];\n const checkFunc = (m: IComponentMark) => {\n if (m && m.type === MarkTypeEnum.group) {\n m.getMarks().forEach(child => {\n checkFunc(child as IComponentMark);\n });\n } else if (m.type === MarkTypeEnum.component) {\n const comp = m?.getComponent();\n\n if (comp) {\n comps.push(comp);\n }\n }\n };\n\n this.getMarks().forEach(m => {\n checkFunc(m as IComponentMark);\n });\n\n return comps;\n }\n}\n\nexport const registerCustomMark = () => {\n Factory.registerComponent(CustomMark.type, CustomMark);\n};\n"]}
|
|
@@ -76,9 +76,13 @@ export declare abstract class DataFilterBaseComponent<T extends IDataFilterCompo
|
|
|
76
76
|
created(): void;
|
|
77
77
|
initLayout(): void;
|
|
78
78
|
init(option: IModelInitOption): void;
|
|
79
|
-
_compareSpec(spec: AdaptiveSpec<T, 'width' | 'height'>, prevSpec: AdaptiveSpec<T, 'width' | 'height'>):
|
|
80
|
-
|
|
81
|
-
|
|
79
|
+
_compareSpec(spec: AdaptiveSpec<T, 'width' | 'height'>, prevSpec: AdaptiveSpec<T, 'width' | 'height'>): {
|
|
80
|
+
change: boolean;
|
|
81
|
+
reMake: boolean;
|
|
82
|
+
reRender: boolean;
|
|
83
|
+
reSize: boolean;
|
|
84
|
+
reCompile: boolean;
|
|
85
|
+
};
|
|
82
86
|
reInit(spec?: AdaptiveSpec<T, 'width' | 'height'>): void;
|
|
83
87
|
onLayoutStart(layoutRect: IRect, viewRect: ILayoutRect): void;
|
|
84
88
|
updateLayoutAttribute(): void;
|
|
@@ -149,20 +149,8 @@ export class DataFilterBaseComponent extends BaseComponent {
|
|
|
149
149
|
}
|
|
150
150
|
_compareSpec(spec, prevSpec) {
|
|
151
151
|
const result = super._compareSpec(spec, prevSpec);
|
|
152
|
-
return result.reMake || isEqual(prevSpec, spec) || (result.
|
|
153
|
-
|
|
154
|
-
component: !0,
|
|
155
|
-
layout: !0,
|
|
156
|
-
render: !0
|
|
157
|
-
}) : result.reMake = !0), result;
|
|
158
|
-
}
|
|
159
|
-
_getComponentOnlySpecKeys() {
|
|
160
|
-
return null;
|
|
161
|
-
}
|
|
162
|
-
_isComponentOnlySpecChange(spec, prevSpec) {
|
|
163
|
-
const componentOnlySpecKeys = this._getComponentOnlySpecKeys();
|
|
164
|
-
if (!componentOnlySpecKeys) return !1;
|
|
165
|
-
return Object.keys(Object.assign(Object.assign({}, prevSpec), spec)).every((key => isEqual(null == prevSpec ? void 0 : prevSpec[key], null == spec ? void 0 : spec[key]) || componentOnlySpecKeys[key]));
|
|
152
|
+
return result.reMake || isEqual(prevSpec, spec) || (result.reRender = !0, result.reMake = !0),
|
|
153
|
+
result;
|
|
166
154
|
}
|
|
167
155
|
reInit(spec) {
|
|
168
156
|
super.reInit(spec), this._marks.forEach((g => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/data-zoom/data-filter-base-component.ts"],"names":[],"mappings":"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","file":"data-filter-base-component.js","sourcesContent":["import type { ICartesianSeries, IPolarSeries, ISeries } from '../../series/interface';\nimport { eachSeries } from '../../util/model';\nimport { BaseComponent } from '../base/base-component';\nimport type { IEffect, IModelInitOption } from '../../model/interface';\nimport { ComponentTypeEnum, type IComponent, type IComponentOption } from '../interface';\nimport {\n dataFilterComputeDomain,\n dataFilterWithNewDomain,\n dataToStatePoint,\n getAxisBandSize,\n isReverse,\n lockStatisticsFilter,\n modeCheck,\n parseDomainFromStateAndValue,\n parseDomainFromState,\n statePointToData\n} from './util';\nimport type {\n AdaptiveSpec,\n ILayoutPoint,\n ILayoutRect,\n ILayoutType,\n IOrientType,\n IRect,\n StringOrNumber\n} from '../../typings';\nimport { registerDataSetInstanceParser, registerDataSetInstanceTransform } from '../../data/register';\nimport type { IContinuousScale } from '@visactor/vscale';\nimport {\n BandScale,\n isContinuous,\n isDiscrete,\n LinearScale,\n type IBandLikeScale,\n type IBaseScale\n} from '@visactor/vscale';\nimport { Direction } from '../../typings/space';\nimport type { CartesianAxis, ICartesianBandAxisSpec } from '../axis/cartesian';\nimport type { IAxis } from '../axis';\nimport { getDirectionByOrient, getOrient } from '../axis/cartesian/util/common';\nimport {\n mixin,\n isNil,\n isEqual,\n isValid,\n array,\n minInArray,\n maxInArray,\n last,\n type IBoundsLike,\n isValidNumber\n} from '@visactor/vutils';\nimport type { IDataFilterComponent, IDataFilterComponentSpec, IFilterMode } from './interface';\nimport { dataViewParser, DataView } from '@visactor/vdataset';\nimport { CompilableData } from '../../compile/data/compilable-data';\nimport { Zoomable } from '../../interaction/zoom/zoomable';\nimport type { AbstractComponent, DataZoom as DataZoomComponent } from '@visactor/vrender-components';\nimport { TransformLevel } from '../../data/initialize';\nimport type { IDataZoomSpec } from './data-zoom/interface';\nimport type { IGraphic, IGroup } from '@visactor/vrender-core';\nimport { AttributeLevel } from '../../constant/attribute';\nimport type { IGroupMark } from '../../mark/interface/mark';\nimport { DataFilterEvent } from './data-filter-event';\nimport { ChartEvent } from '../../constant/event';\n\nexport abstract class DataFilterBaseComponent<T extends IDataFilterComponentSpec = IDataFilterComponentSpec>\n extends BaseComponent<AdaptiveSpec<T, 'width' | 'height'>>\n implements IDataFilterComponent\n{\n protected _dataFilterEvent: DataFilterEvent;\n layoutType: ILayoutType | 'none' = 'none';\n\n protected _component: AbstractComponent;\n\n protected _orient: IOrientType = 'left';\n protected _isHorizontal: boolean;\n get isHorizontal() {\n return this._isHorizontal;\n }\n\n // 是否为自动模式\n protected _auto?: boolean;\n protected _fixedBandSize?: number;\n protected _cacheRect?: ILayoutRect;\n protected _cacheLayoutStartPoint?: ILayoutPoint;\n protected _cacheVisibility?: boolean = undefined;\n protected _dataUpdating: boolean = false;\n\n // 数据\n protected _stateScale: IBaseScale;\n get stateScale() {\n return this._stateScale;\n }\n protected _hasInitStateScale: boolean = false;\n\n // 与系列的关联关系\n // 优先级:id > index\n // 最终结果:series & region取交集\n protected _seriesUserId?: StringOrNumber[];\n protected _seriesIndex?: number[];\n protected _regionUserId!: string[];\n protected _regionIndex!: number[];\n protected _newDomain: any[];\n protected _relatedAxisComponent!: IComponent;\n get relatedAxisComponent() {\n return this._relatedAxisComponent;\n }\n protected _originalStateFields: Record<number, string | number>;\n\n // 起点数据\n protected _startValue!: number | string;\n // 终点数据\n protected _endValue!: number | string;\n // 开始值,百分比值,0 - 1\n protected _start!: number;\n // 结束值,百分比值,0 - 1\n protected _end!: number;\n // 最小窗口范围\n protected _minSpan!: number;\n // 最大窗口范围\n protected _maxSpan!: number;\n // 窗口范围缓存\n protected _spanCache!: number;\n protected _shouldChange: boolean = true;\n\n protected _domainCache!: any;\n\n protected _field!: string | undefined;\n protected _stateField: string = 'x';\n protected _valueField?: string;\n\n protected _width!: number;\n protected _height!: number;\n\n protected _filterMode!: IFilterMode;\n\n protected _handleDataCollectionChangeBound!: any;\n protected _currentDataCollection: any[] = [];\n\n /*** start: public function ***/\n /**\n * 外部可以通过此方法强制改变datazoom的start和end,达到聚焦定位的效果\n * @param start datazoom起点所在的相对位置\n * @param end datazoom终点所在的相对位置\n * @returns\n */\n setStartAndEnd(\n start: number | string,\n end: number | string,\n rangeMode: ['percent' | 'value', 'percent' | 'value'] = ['percent', 'percent']\n ) {\n const [startMode = 'percent', endMode = 'percent'] = rangeMode;\n\n const startPercent = (\n startMode === 'percent' ? start : dataToStatePoint(start, this._stateScale, this._isHorizontal)\n ) as number;\n const endPercent = (\n endMode === 'percent' ? end : dataToStatePoint(end, this._stateScale, this._isHorizontal)\n ) as number;\n this._handleChange(startPercent, endPercent, true);\n }\n enableInteraction() {\n this._dataFilterEvent.enableInteraction();\n }\n disableInteraction() {\n this._dataFilterEvent.disableInteraction();\n }\n zoomIn(location?: { x: number; y: number }) {\n this._dataFilterEvent.zoomIn(location);\n }\n zoomOut(location?: { x: number; y: number }) {\n this._dataFilterEvent.zoomOut(location);\n }\n /*** end: public function ***/\n\n protected abstract _createOrUpdateComponent(): void;\n protected abstract _computeWidth(): number;\n protected abstract _computeHeight(): number;\n protected abstract _handleDataCollectionChange(): void;\n protected abstract _updateScaleRange(): void;\n\n /*** start: init event and event dispatch ***/\n protected _initEvent() {\n this._dataFilterEvent.initZoomEvent();\n\n this._relatedAxisComponent?.event.on(ChartEvent.scaleRawDomainUpdate, ({ model }) => {\n // eslint-disable-next-line no-console\n console.log('scaleRawDomainUpdate', (model as unknown as { getRawDomain: () => any }).getRawDomain());\n });\n }\n protected _handleChange(start: number, end: number, updateComponent?: boolean) {\n const zoomLock = this._spec?.zoomLock ?? false;\n if (\n zoomLock ||\n // 拖拽两端的handler, 而非拖拽中间handler\n (end - start !== this._spanCache &&\n // 拖拽后超出限制范围\n (end - start < this._minSpan || end - start > this._maxSpan))\n ) {\n this._shouldChange = false;\n } else {\n this._shouldChange = true;\n this._spanCache = end - start;\n }\n }\n\n protected _updateRangeFactor(tag?: 'startHandler' | 'endHandler') {\n // 轴的range有时是相反的\n // 比如相同的region范围, 有的场景range为[0, 500], 有的场景range为[500, 0]\n // 而datazoom/scrollbar的range是根据布局强制转化为[0, 500]\n // 所以这里在转换时进行判断并做转置, 有待优化\n // 轴在inverse时,也要做转置处理\n const axis = this._relatedAxisComponent as CartesianAxis<any>;\n const axisScale = axis.getScale() as IBandLikeScale;\n const reverse = isReverse(axis, this._isHorizontal);\n const newRangeFactor: [number, number] = reverse ? [1 - this._end, 1 - this._start] : [this._start, this._end];\n\n if (reverse) {\n switch (tag) {\n case 'startHandler':\n axis.scaleRangeFactorEnd(newRangeFactor[1]);\n break;\n case 'endHandler':\n axis.scaleRangeFactorStart(newRangeFactor[0]);\n break;\n default:\n axis.scaleRangeFactorStart(newRangeFactor[0], true);\n axis.scaleRangeFactorEnd(newRangeFactor[1]); // end 保证为准确值\n }\n } else {\n switch (tag) {\n case 'startHandler':\n axis.scaleRangeFactorStart(newRangeFactor[0]);\n break;\n case 'endHandler':\n axis.scaleRangeFactorEnd(newRangeFactor[1]);\n break;\n default:\n axis.scaleRangeFactorEnd(newRangeFactor[1], true);\n axis.scaleRangeFactorStart(newRangeFactor[0]); // start 保证为准确值\n }\n }\n\n const newFactor = axisScale.rangeFactor();\n if (newFactor) {\n this._start = reverse ? 1 - newFactor[1] : newFactor[0];\n this._end = reverse ? 1 - newFactor[0] : newFactor[1];\n } else {\n this._start = 0;\n this._end = 1;\n }\n }\n\n protected _handleStateChange = (startValue: number, endValue: number, tag?: string) => {\n this._startValue = startValue;\n this._endValue = endValue;\n this._newDomain = parseDomainFromState(this._startValue, this._endValue, this._stateScale);\n this.effect.onZoomChange?.(tag);\n return true;\n };\n\n effect: IEffect = {\n onZoomChange: (tag?: 'startHandler' | 'endHandler') => {\n const axis = this._relatedAxisComponent as CartesianAxis<any>;\n if (axis && this._filterMode === 'axis') {\n const axisScale = axis.getScale() as IBandLikeScale;\n const axisSpec = axis.getSpec() as ICartesianBandAxisSpec;\n // 判断是否允许自由更改轴 bandSize\n if (this._auto && getAxisBandSize(axisSpec) && (this._spec as IDataZoomSpec).ignoreBandSize) {\n axisScale.bandwidth('auto');\n axisScale.maxBandwidth('auto');\n axisScale.minBandwidth('auto');\n }\n\n this._updateRangeFactor(tag);\n if (this._auto) {\n // tag\n (this._component as DataZoomComponent)?.setStartAndEnd?.(this._start, this._end);\n }\n\n // 强制更新视图, 不管/component/axis/base-axis.ts computeData中的tickData判断\n axis.effect.scaleUpdate({\n value: 'force'\n });\n } else {\n eachSeries(\n this._regions,\n s => {\n s.getViewData()?.markRunning();\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n eachSeries(\n this._regions,\n s => {\n s.reFilterViewData();\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n }\n };\n /*** end: init event and event dispatch ***/\n\n protected _visible: boolean = true;\n get visible() {\n return this._visible;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec as any, options);\n this._orient = getOrient(spec as any);\n this._isHorizontal = getDirectionByOrient(this._orient) === Direction.horizontal;\n this._dataFilterEvent = new DataFilterEvent(\n (this as any).type,\n this._spec,\n this._handleChange.bind(this),\n this.getLayoutRect.bind(this),\n () => {\n return {\n start: this._start,\n end: this._end\n };\n },\n () => this._regions,\n (() => this._option).bind(this),\n () => this.event\n );\n }\n\n /*** start: component lifecycle ***/\n created() {\n this._handleDataCollectionChangeBound = this._handleDataCollectionChange.bind(this);\n super.created();\n this._setAxisFromSpec();\n this._setRegionsFromSpec();\n this._initEvent();\n this._initData();\n this._initStateScale();\n this._setStateFromSpec();\n }\n\n initLayout(): void {\n super.initLayout();\n this._layout && (this._layout.layoutOrient = this._orient);\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n this._addTransformToSeries();\n // 初始化轴的 domain 这样在轴初次布局时,能正确的获取展示标签\n if (this._start !== 0 || this._end !== 1) {\n this.effect.onZoomChange();\n }\n }\n\n _compareSpec(spec: AdaptiveSpec<T, 'width' | 'height'>, prevSpec: AdaptiveSpec<T, 'width' | 'height'>) {\n const result = super._compareSpec(spec, prevSpec);\n if (!result.reMake && !isEqual(prevSpec, spec)) {\n result.change = true;\n result.reRender = true;\n if (!result.reCompile && this._isComponentOnlySpecChange(spec, prevSpec)) {\n result.effects = {\n ...result.effects,\n component: true,\n layout: true,\n render: true\n };\n } else {\n result.reMake = true;\n }\n }\n\n return result;\n }\n\n protected _getComponentOnlySpecKeys(): Record<string, boolean> {\n return null;\n }\n\n protected _isComponentOnlySpecChange(\n spec: AdaptiveSpec<T, 'width' | 'height'>,\n prevSpec: AdaptiveSpec<T, 'width' | 'height'>\n ) {\n const componentOnlySpecKeys = this._getComponentOnlySpecKeys();\n\n if (!componentOnlySpecKeys) {\n return false;\n }\n\n const keys = Object.keys({\n ...prevSpec,\n ...spec\n });\n\n return keys.every(key => {\n return isEqual(prevSpec?.[key], spec?.[key]) || componentOnlySpecKeys[key];\n });\n }\n\n reInit(spec?: AdaptiveSpec<T, 'width' | 'height'>) {\n super.reInit(spec);\n\n this._marks.forEach(g => {\n (<IGroupMark>g).getMarks().forEach(m => {\n this.initMarkStyleWithSpec(m, (this._spec as any)[m.name]);\n });\n });\n }\n\n onLayoutStart(layoutRect: IRect, viewRect: ILayoutRect): void {\n super.onLayoutStart(layoutRect, viewRect);\n const isShown = this._autoUpdate(layoutRect);\n this._autoVisible(isShown);\n this._dataUpdating = false;\n }\n\n updateLayoutAttribute(): void {\n this._visible && this._createOrUpdateComponent();\n\n // 第一次渲染, 根据配置强制触发start和end变更\n if (!this._hasInitStateScale) {\n if (this._start !== 0 || this._end !== 1) {\n this._newDomain = parseDomainFromStateAndValue(\n this._spec.start,\n this._startValue,\n this._spec.end,\n this._endValue,\n this._stateScale\n );\n this.effect.onZoomChange();\n }\n this._hasInitStateScale = true;\n }\n }\n\n protected _initAfterLayout() {\n // clear stateScale, 避免在_initStateScale中使用到旧的scale domain\n this._stateScale = null;\n this._initStateScale();\n // 这时轴的 scale range 是对的\n this._updateScaleRange();\n this._setStateFromAxis();\n }\n\n protected _beforeLayoutEnd() {\n if (!this._hasInitStateScale) {\n this._initAfterLayout();\n } else {\n this._updateScaleRange();\n }\n }\n\n onLayoutEnd(): void {\n this._beforeLayoutEnd();\n // 布局结束后, start和end会发生变化, 因此需要再次更新visible\n const isShown = !(this._start === 0 && this._end === 1);\n this._autoVisible(isShown);\n // onLayoutEnd 做的事情\n // updateLayoutAttribute\n // 更新 _newDomain\n // 创建 更新vrender组件属性\n super.onLayoutEnd();\n // 这里修改了轴的scaleRange, 因此需要更新轴的视图\n (this._relatedAxisComponent as IAxis)?.updateScaleRange();\n }\n\n /**\n * bounds预计算\n * @param rect\n * @returns\n */\n getBoundsInRect(rect: ILayoutRect): IBoundsLike {\n const result: IBoundsLike = { x1: this.getLayoutStartPoint().x, y1: this.getLayoutStartPoint().y, x2: 0, y2: 0 };\n\n if (this._isHorizontal) {\n result.y2 = result.y1 + this._height;\n result.x2 = result.x1 + rect.width;\n } else {\n result.x2 = result.x1 + this._width;\n result.y2 = result.y1 + rect.height;\n }\n return result;\n }\n /*** end: component lifecycle **/\n\n /*** start: set attributes & bind related axis and region ***/\n setAttrFromSpec() {\n super.setAttrFromSpec();\n // interaction相关\n this._dataFilterEvent.setEventAttrFromSpec();\n // style相关\n this._field = this._spec.field;\n this._width = this._computeWidth();\n this._height = this._computeHeight();\n this._visible = this._spec.visible ?? true;\n }\n protected _setAxisFromSpec() {\n if (isValid(this._spec.axisId)) {\n this._relatedAxisComponent = this._option.getComponentByUserId(this._spec.axisId);\n } else if (isValid(this._spec.axisIndex)) {\n this._relatedAxisComponent = this._option.getComponentByIndex('axes', this._spec.axisIndex);\n }\n\n // 如果用户没有配置关联轴 或 用户配置的关联轴和datazoom方向不一致\n // 则 使用与datazoom的方向相同的第一个axis作为关联轴\n if (isNil(this._spec.field) && !this._relatedAxisComponent) {\n const axes = this._option.getComponentsByKey('axes');\n const sameOrientAxis = axes.find(\n (cm: any) => getDirectionByOrient((cm as any)._orient) === getDirectionByOrient(this._orient)\n );\n\n if (sameOrientAxis) {\n this._relatedAxisComponent = sameOrientAxis;\n } else {\n const bandAxis = axes.find((cm: any) => !isContinuous((cm as any).getScale().type));\n\n this._relatedAxisComponent = bandAxis;\n }\n }\n if (this._relatedAxisComponent && this._filterMode === 'axis') {\n (this._relatedAxisComponent as CartesianAxis<any>).autoIndentOnce = true;\n }\n }\n\n protected _setRegionsFromSpec() {\n // 从axis中获取关联的regions\n this._regions = this._relatedAxisComponent ? this._relatedAxisComponent.getRegions() : this._option.getAllRegions();\n // 默认使用关联轴的系列绑定关系\n const bindSeriesFilter = this._relatedAxisComponent ? this._relatedAxisComponent.getBindSeriesFilter?.() : null;\n if (isValid(bindSeriesFilter)) {\n isValid(bindSeriesFilter.userId) && (this._seriesUserId = array(bindSeriesFilter.userId));\n isValid(bindSeriesFilter.specIndex) && (this._seriesIndex = array(bindSeriesFilter.specIndex));\n }\n // spec中的系列绑定关系 取交集\n if (isValid(this._spec.seriesId)) {\n const specSeriesId = array(this._spec.seriesId);\n if (this._seriesUserId) {\n this._seriesUserId = this._seriesUserId.filter(s => specSeriesId.includes(s));\n } else {\n this._seriesUserId = specSeriesId;\n }\n }\n if (isValid(this._spec.seriesIndex)) {\n const specSeriesIndex = array(this._spec.seriesIndex);\n if (this._seriesIndex) {\n this._seriesIndex = this._seriesIndex.filter(s => specSeriesIndex.includes(s));\n } else {\n this._seriesIndex = specSeriesIndex;\n }\n }\n if (isValid(this._spec.regionIndex)) {\n const regionsFromSpec = this._option.getRegionsInIndex(array(this._spec.regionIndex));\n // 如果用户配置了region就取 axis关联 和 用户配置 的交集\n this._regions = this._regions.filter(r => regionsFromSpec.includes(r));\n return;\n }\n if (isValid(this._spec.regionId)) {\n const ids = array(this._spec.regionId);\n // 如果用户配置了region就取 axis关联 和 用户配置 的交集\n this._regions = ids.length ? this._regions.filter(r => ids.includes(r.id)) : [];\n return;\n }\n return;\n }\n\n /*** end: set attributes & bind related axis and region ***/\n\n /*** start: data change and reset view ***/\n protected _collectDataInfo() {\n const dataCollection: any[] = [];\n const seriesCollection: any[] = [];\n const stateFields: string[] = [];\n const valueFields: string[] = [];\n let isCategoryState: boolean;\n if (this._relatedAxisComponent) {\n const originalStateFields: any = {};\n eachSeries(\n this._regions,\n s => {\n // 如果副轴的类型是time或band,则无法进行数据统计\n const xAxisHelper =\n s.coordinate === 'cartesian'\n ? (s as ICartesianSeries).getXAxisHelper()\n : s.coordinate === 'polar'\n ? (s as IPolarSeries).angleAxisHelper\n : null;\n const yAxisHelper =\n s.coordinate === 'cartesian'\n ? (s as ICartesianSeries).getYAxisHelper()\n : s.coordinate === 'polar'\n ? (s as IPolarSeries).radiusAxisHelper\n : null;\n if (!xAxisHelper || !yAxisHelper) {\n return;\n }\n const stateAxisHelper =\n xAxisHelper.getAxisId() === this._relatedAxisComponent.id\n ? xAxisHelper\n : yAxisHelper.getAxisId() === this._relatedAxisComponent.id\n ? yAxisHelper\n : this._isHorizontal\n ? xAxisHelper\n : yAxisHelper;\n const valueAxisHelper = stateAxisHelper === xAxisHelper ? yAxisHelper : xAxisHelper;\n const isValidateValueAxis = isContinuous(valueAxisHelper.getScale(0).type);\n const isValidateStateAxis = isContinuous(stateAxisHelper.getScale(0).type);\n\n dataCollection.push(s.getRawData());\n // 这里获取原始的spec中的xField和yField,而非经过stack处理后的fieldX和fieldY,原因如下:\n // 1. dataFilterComputeDomain处理时拿到的viewData中没有__VCHART_STACK_START等属性,也就是还没处理\n // 2. datazoom计算的是原始的value值,如果要根据stack后的数据来算,则需要__VCHART_STACK_END - __VCHART_STACK_START\n const seriesSpec = s.getSpec();\n\n const xField =\n s.coordinate === 'cartesian'\n ? array(seriesSpec.xField)\n : array(seriesSpec.angleField ?? seriesSpec.categoryField);\n const yField =\n s.coordinate === 'cartesian'\n ? array(seriesSpec.yField)\n : array(seriesSpec.radiusField ?? seriesSpec.valueField);\n\n originalStateFields[s.id] =\n s.type === 'link' ? ['from_xField'] : stateAxisHelper === xAxisHelper ? xField : yField;\n\n if (isValidateStateAxis) {\n isCategoryState = false;\n stateFields.push(originalStateFields[s.id]);\n } else {\n isCategoryState = true;\n stateFields.push(originalStateFields[s.id][0]);\n }\n\n if (this._valueField) {\n const valueField = s.type === 'link' ? ['from_yField'] : valueAxisHelper === xAxisHelper ? xField : yField;\n if (isValidateValueAxis) {\n valueFields.push(...valueField);\n }\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n\n this._originalStateFields = originalStateFields;\n } else {\n eachSeries(\n this._regions,\n s => {\n dataCollection.push(s.getRawData());\n seriesCollection.push(s);\n\n stateFields.push(this._field);\n if (this._valueField) {\n valueFields.push(this._spec.valueField);\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n return { dataCollection, seriesCollection, stateFields, valueFields, isCategoryState };\n }\n\n protected _initData() {\n const { dataCollection, seriesCollection, stateFields, valueFields, isCategoryState } = this._collectDataInfo();\n const { dataSet } = this._option;\n registerDataSetInstanceParser(dataSet, 'dataview', dataViewParser);\n registerDataSetInstanceTransform(dataSet, 'dataFilterComputeDomain', dataFilterComputeDomain);\n const data = new DataView(dataSet, { name: `${this.type}_${this.id}_data` });\n data.transform(\n {\n type: 'dataFilterComputeDomain',\n options: {\n input: {\n dataCollection: dataCollection,\n seriesCollection,\n stateFields,\n valueFields,\n isCategoryState\n },\n output: {\n stateField: this._stateField,\n valueField: this._valueField\n }\n }\n },\n false\n );\n\n // todo 似乎没必要创建\n this._data = new CompilableData(this._option, data);\n data.reRunAllTransform();\n this._currentDataCollection = dataCollection;\n dataSet.multipleDataViewAddListener(dataCollection, 'change', this._handleDataCollectionChangeBound);\n }\n protected _addTransformToSeries() {\n if (!this._relatedAxisComponent || this._filterMode !== 'axis') {\n registerDataSetInstanceTransform(this._option.dataSet, 'dataFilterWithNewDomain', dataFilterWithNewDomain);\n registerDataSetInstanceTransform(this._option.dataSet, 'lockStatisticsFilter', lockStatisticsFilter);\n\n eachSeries(\n this._regions,\n s => {\n s.getViewDataStatistics().transform(\n {\n type: 'lockStatisticsFilter',\n options: {\n originalFields: () => {\n return s.getViewDataStatistics().getFields();\n },\n getNewDomain: () => this._newDomain,\n field: () => {\n return this._field ?? this._parseFieldOfSeries(s);\n },\n isContinuous: () => isContinuous(this._stateScale.type)\n },\n level: 1\n },\n false\n );\n\n s.addViewDataFilter({\n type: 'dataFilterWithNewDomain',\n options: {\n getNewDomain: () => this._newDomain,\n field: () => {\n return this._field ?? this._parseFieldOfSeries(s);\n },\n isContinuous: () => isContinuous(this._stateScale.type)\n },\n level: TransformLevel.dataZoomFilter\n });\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n }\n\n // 数据更新流程\n onDataUpdate(): void {\n const { dataCollection, seriesCollection, stateFields, valueFields, isCategoryState } = this._collectDataInfo();\n\n // 1. 重新注册事件\n if (\n this._currentDataCollection.length !== dataCollection.length ||\n this._currentDataCollection.some((dv, i) => dv !== dataCollection[i])\n ) {\n this._currentDataCollection.forEach(dv => {\n dv?.target?.removeListener('change', this._handleDataCollectionChangeBound);\n });\n this._currentDataCollection = dataCollection;\n const { dataSet } = this._option;\n dataSet.multipleDataViewAddListener(this._currentDataCollection, 'change', this._handleDataCollectionChangeBound);\n }\n\n // 2. 执行数据更新\n this._data.getDataView().transform(\n {\n type: 'dataFilterComputeDomain',\n options: {\n input: {\n dataCollection: dataCollection,\n seriesCollection,\n stateFields,\n valueFields,\n isCategoryState\n },\n output: {\n stateField: this._stateField,\n valueField: this._valueField\n }\n }\n },\n false\n );\n this._data.getDataView().reRunAllTransform();\n\n // 3. 重新计算domain\n const domain = this._computeDomainOfStateScale(isContinuous(this._stateScale.type));\n this._stateScale.domain(domain, false);\n\n // 4. 重新计算start和end\n // 如果 spec 中有配置 start/end,使用 spec 中的配置\n // 否则保持当前的 start/end\n if (isValid(this._spec.start) || isValid(this._spec.end)) {\n this._setStateFromSpec();\n }\n this._handleChange(this._start, this._end, true);\n\n // 5. 重新布局\n // auto 模式下需要重新布局\n if (this._spec.auto && !isEqual(this._domainCache, domain)) {\n this._domainCache = domain;\n this._dataUpdating = true;\n this.getChart()?.setLayoutTag(true, null, false);\n }\n }\n private _parseFieldOfSeries(s: ISeries) {\n return this._originalStateFields?.[s.id];\n }\n /*** end: data change and reset view ***/\n\n /*** start: scale of filter ***/\n\n protected _setStateFromSpec() {\n this._auto = !!this._spec.auto;\n\n let start;\n let end;\n if (this._spec.rangeMode) {\n const [startMode, endMode] = this._spec.rangeMode;\n // 只有mode与配置相符时,才会生效\n // 比如rangeMode为['value', 'percent'],那么start为dataValue, end为[0, 1]\n if (modeCheck('start', startMode, this._spec) && modeCheck('end', endMode, this._spec)) {\n start =\n startMode === 'percent'\n ? this._spec.start\n : dataToStatePoint(this._spec.startValue, this._stateScale, this._isHorizontal);\n end =\n endMode === 'percent'\n ? this._spec.end\n : dataToStatePoint(this._spec.endValue, this._stateScale, this._isHorizontal);\n }\n } else {\n start = this._spec.start\n ? this._spec.start\n : this._spec.startValue\n ? dataToStatePoint(this._spec.startValue, this._stateScale, this._isHorizontal)\n : 0;\n end = this._spec.end\n ? this._spec.end\n : this._spec.endValue\n ? dataToStatePoint(this._spec.endValue, this._stateScale, this._isHorizontal)\n : 1;\n }\n this._start = Math.max(0, Math.min(1, start));\n this._end = Math.max(0, Math.min(1, end));\n }\n protected _setStateFromAxis() {\n // 此时 state scale 进行了更新,stateFromSpec 中补分逻辑需要使用scale计算,重新获取一遍\n this._setStateFromSpec();\n const axis = this._relatedAxisComponent as CartesianAxis<any>;\n this._startValue = statePointToData(this._start, this._stateScale, isReverse(axis, this._isHorizontal));\n this._endValue = statePointToData(this._end, this._stateScale, isReverse(axis, this._isHorizontal));\n this._minSpan = this._spec.minSpan ?? 0;\n this._maxSpan = this._spec.maxSpan ?? 1;\n if (isContinuous(this._stateScale.type) && this._stateScale.domain()[0] !== last(this._stateScale.domain())) {\n if (this._spec.minValueSpan) {\n this._minSpan = this._spec.minValueSpan / (last(this._stateScale.domain()) - this._stateScale.domain()[0]);\n }\n if (this._spec.maxValueSpan) {\n this._maxSpan = this._spec.maxValueSpan / (last(this._stateScale.domain()) - this._stateScale.domain()[0]);\n }\n }\n this._minSpan = Math.max(0, this._minSpan);\n this._maxSpan = Math.min(this._maxSpan, 1);\n if (!axis) {\n return;\n }\n // eslint-disable-next-line max-len\n if ((!axis || this._filterMode !== 'axis') && (this._start !== 0 || this._end !== 1)) {\n this._newDomain = parseDomainFromState(this._startValue, this._endValue, this._stateScale);\n }\n }\n protected _initStateScale() {\n const defaultRange = [0, 1];\n if (this._relatedAxisComponent) {\n const scale = (this._relatedAxisComponent as CartesianAxis<any>).getScale().clone() as\n | IContinuousScale\n | IBandLikeScale;\n // 需要清除rangeFactor 缓存,否则会导致计算错误\n this._stateScale = scale;\n (scale as IBandLikeScale).maxBandwidth?.('auto', true);\n (scale as IBandLikeScale).minBandwidth?.('auto', true);\n (scale as IBandLikeScale).bandwidth?.('auto', true);\n scale.rangeFactor(defaultRange as [number, number], true).range(defaultRange);\n } else {\n let fieldLinear = true;\n if (this._field) {\n eachSeries(\n this._regions,\n s => {\n const stats = s.getRawDataStatisticsByField(this._field);\n if (!isValidNumber(stats?.min) || !isValidNumber(stats?.max)) {\n fieldLinear = false;\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n this._stateScale = fieldLinear ? new LinearScale() : new BandScale();\n this._stateScale.domain(this._computeDomainOfStateScale(fieldLinear), true).range(defaultRange);\n }\n }\n\n protected _computeDomainOfStateScale(isContinuous?: boolean) {\n if ((this._spec as IDataZoomSpec).customDomain) {\n return (this._spec as IDataZoomSpec).customDomain;\n }\n const domain = this._data.getLatestData().map((d: any) => d[this._stateField]);\n if (isContinuous) {\n const domainNum = domain.map((n: any) => n * 1);\n return domain.length ? [minInArray(domainNum), maxInArray(domainNum)] : [-Infinity, Infinity];\n }\n\n return domain;\n }\n /*** end: scale of filter ***/\n\n /*** start: auto model process ***/\n protected _autoVisible(isShown: boolean) {\n if (!this._auto) {\n return;\n }\n if (isShown) {\n this.show();\n } else {\n this.hide();\n }\n const sizeKey = this._isHorizontal ? 'height' : 'width';\n this.layout.setLayoutRect(\n {\n [sizeKey]: isShown ? this[`_${sizeKey}`] : 0\n },\n {\n [sizeKey]: AttributeLevel.Built_In\n }\n );\n }\n hide() {\n this._component?.hideAll();\n }\n\n show() {\n this._component?.showAll();\n }\n\n protected _autoUpdate(rect?: ILayoutRect): boolean {\n if (!this._auto) {\n this._cacheVisibility = undefined;\n return true;\n }\n\n const axis = this._relatedAxisComponent as CartesianAxis<any>;\n const axisSpec = axis?.getSpec() as ICartesianBandAxisSpec | undefined;\n const axisScale = axis?.getScale() as IBandLikeScale;\n const bandSizeResult = getAxisBandSize(axisSpec);\n\n if (\n !this._dataUpdating &&\n isDiscrete(axisScale.type) &&\n rect?.height === this._cacheRect?.height &&\n rect?.width === this._cacheRect?.width &&\n this._fixedBandSize === bandSizeResult?.bandSize\n ) {\n return this._cacheVisibility;\n }\n\n let isShown = true;\n if (this._isHorizontal && rect?.width !== this._cacheRect?.width) {\n axisScale.range(axis.getInverse() ? [rect.width, 0] : [0, rect.width]);\n } else if (rect?.height !== this._cacheRect?.height) {\n axisScale.range(axis.getInverse() ? [0, rect.height] : [rect.height, 0]);\n }\n\n this._cacheRect = {\n width: rect?.width,\n height: rect?.height\n };\n this._fixedBandSize = bandSizeResult?.bandSize;\n\n if (isDiscrete(axisScale.type)) {\n if (bandSizeResult && (this._start || this._end)) {\n if (this.type === ComponentTypeEnum.scrollBar) {\n this._start = 0;\n this._end = 1;\n }\n this._updateRangeFactor();\n }\n const [start, end] = axisScale.rangeFactor() ?? [];\n if (isNil(start) && isNil(end)) {\n isShown = false;\n } else {\n isShown = !(start === 0 && end === 1);\n }\n } else {\n const [start, end] = axisScale.rangeFactor() ?? [this._start, this._end];\n isShown = !(start === 0 && end === 1);\n }\n this.setStartAndEnd(this._start, this._end);\n this._cacheVisibility = isShown;\n return isShown;\n }\n /*** end: auto model process ***/\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._component] as unknown as IGroup[];\n }\n}\n\nmixin(DataFilterBaseComponent, Zoomable);\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/data-zoom/data-filter-base-component.ts"],"names":[],"mappings":"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","file":"data-filter-base-component.js","sourcesContent":["import type { ICartesianSeries, IPolarSeries, ISeries } from '../../series/interface';\nimport { eachSeries } from '../../util/model';\nimport { BaseComponent } from '../base/base-component';\nimport type { IEffect, IModelInitOption } from '../../model/interface';\nimport { ComponentTypeEnum, type IComponent, type IComponentOption } from '../interface';\nimport {\n dataFilterComputeDomain,\n dataFilterWithNewDomain,\n dataToStatePoint,\n getAxisBandSize,\n isReverse,\n lockStatisticsFilter,\n modeCheck,\n parseDomainFromStateAndValue,\n parseDomainFromState,\n statePointToData\n} from './util';\nimport type {\n AdaptiveSpec,\n ILayoutPoint,\n ILayoutRect,\n ILayoutType,\n IOrientType,\n IRect,\n StringOrNumber\n} from '../../typings';\nimport { registerDataSetInstanceParser, registerDataSetInstanceTransform } from '../../data/register';\nimport type { IContinuousScale } from '@visactor/vscale';\nimport {\n BandScale,\n isContinuous,\n isDiscrete,\n LinearScale,\n type IBandLikeScale,\n type IBaseScale\n} from '@visactor/vscale';\nimport { Direction } from '../../typings/space';\nimport type { CartesianAxis, ICartesianBandAxisSpec } from '../axis/cartesian';\nimport type { IAxis } from '../axis';\nimport { getDirectionByOrient, getOrient } from '../axis/cartesian/util/common';\nimport {\n mixin,\n isNil,\n isEqual,\n isValid,\n array,\n minInArray,\n maxInArray,\n last,\n type IBoundsLike,\n isValidNumber\n} from '@visactor/vutils';\nimport type { IDataFilterComponent, IDataFilterComponentSpec, IFilterMode } from './interface';\nimport { dataViewParser, DataView } from '@visactor/vdataset';\nimport { CompilableData } from '../../compile/data/compilable-data';\nimport { Zoomable } from '../../interaction/zoom/zoomable';\nimport type { AbstractComponent, DataZoom as DataZoomComponent } from '@visactor/vrender-components';\nimport { TransformLevel } from '../../data/initialize';\nimport type { IDataZoomSpec } from './data-zoom/interface';\nimport type { IGraphic, IGroup } from '@visactor/vrender-core';\nimport { AttributeLevel } from '../../constant/attribute';\nimport type { IGroupMark } from '../../mark/interface/mark';\nimport { DataFilterEvent } from './data-filter-event';\nimport { ChartEvent } from '../../constant/event';\n\nexport abstract class DataFilterBaseComponent<T extends IDataFilterComponentSpec = IDataFilterComponentSpec>\n extends BaseComponent<AdaptiveSpec<T, 'width' | 'height'>>\n implements IDataFilterComponent\n{\n protected _dataFilterEvent: DataFilterEvent;\n layoutType: ILayoutType | 'none' = 'none';\n\n protected _component: AbstractComponent;\n\n protected _orient: IOrientType = 'left';\n protected _isHorizontal: boolean;\n get isHorizontal() {\n return this._isHorizontal;\n }\n\n // 是否为自动模式\n protected _auto?: boolean;\n protected _fixedBandSize?: number;\n protected _cacheRect?: ILayoutRect;\n protected _cacheLayoutStartPoint?: ILayoutPoint;\n protected _cacheVisibility?: boolean = undefined;\n protected _dataUpdating: boolean = false;\n\n // 数据\n protected _stateScale: IBaseScale;\n get stateScale() {\n return this._stateScale;\n }\n protected _hasInitStateScale: boolean = false;\n\n // 与系列的关联关系\n // 优先级:id > index\n // 最终结果:series & region取交集\n protected _seriesUserId?: StringOrNumber[];\n protected _seriesIndex?: number[];\n protected _regionUserId!: string[];\n protected _regionIndex!: number[];\n protected _newDomain: any[];\n protected _relatedAxisComponent!: IComponent;\n get relatedAxisComponent() {\n return this._relatedAxisComponent;\n }\n protected _originalStateFields: Record<number, string | number>;\n\n // 起点数据\n protected _startValue!: number | string;\n // 终点数据\n protected _endValue!: number | string;\n // 开始值,百分比值,0 - 1\n protected _start!: number;\n // 结束值,百分比值,0 - 1\n protected _end!: number;\n // 最小窗口范围\n protected _minSpan!: number;\n // 最大窗口范围\n protected _maxSpan!: number;\n // 窗口范围缓存\n protected _spanCache!: number;\n protected _shouldChange: boolean = true;\n\n protected _domainCache!: any;\n\n protected _field!: string | undefined;\n protected _stateField: string = 'x';\n protected _valueField?: string;\n\n protected _width!: number;\n protected _height!: number;\n\n protected _filterMode!: IFilterMode;\n\n protected _handleDataCollectionChangeBound!: any;\n protected _currentDataCollection: any[] = [];\n\n /*** start: public function ***/\n /**\n * 外部可以通过此方法强制改变datazoom的start和end,达到聚焦定位的效果\n * @param start datazoom起点所在的相对位置\n * @param end datazoom终点所在的相对位置\n * @returns\n */\n setStartAndEnd(\n start: number | string,\n end: number | string,\n rangeMode: ['percent' | 'value', 'percent' | 'value'] = ['percent', 'percent']\n ) {\n const [startMode = 'percent', endMode = 'percent'] = rangeMode;\n\n const startPercent = (\n startMode === 'percent' ? start : dataToStatePoint(start, this._stateScale, this._isHorizontal)\n ) as number;\n const endPercent = (\n endMode === 'percent' ? end : dataToStatePoint(end, this._stateScale, this._isHorizontal)\n ) as number;\n this._handleChange(startPercent, endPercent, true);\n }\n enableInteraction() {\n this._dataFilterEvent.enableInteraction();\n }\n disableInteraction() {\n this._dataFilterEvent.disableInteraction();\n }\n zoomIn(location?: { x: number; y: number }) {\n this._dataFilterEvent.zoomIn(location);\n }\n zoomOut(location?: { x: number; y: number }) {\n this._dataFilterEvent.zoomOut(location);\n }\n /*** end: public function ***/\n\n protected abstract _createOrUpdateComponent(): void;\n protected abstract _computeWidth(): number;\n protected abstract _computeHeight(): number;\n protected abstract _handleDataCollectionChange(): void;\n protected abstract _updateScaleRange(): void;\n\n /*** start: init event and event dispatch ***/\n protected _initEvent() {\n this._dataFilterEvent.initZoomEvent();\n\n this._relatedAxisComponent?.event.on(ChartEvent.scaleRawDomainUpdate, ({ model }) => {\n // eslint-disable-next-line no-console\n console.log('scaleRawDomainUpdate', (model as unknown as { getRawDomain: () => any }).getRawDomain());\n });\n }\n protected _handleChange(start: number, end: number, updateComponent?: boolean) {\n const zoomLock = this._spec?.zoomLock ?? false;\n if (\n zoomLock ||\n // 拖拽两端的handler, 而非拖拽中间handler\n (end - start !== this._spanCache &&\n // 拖拽后超出限制范围\n (end - start < this._minSpan || end - start > this._maxSpan))\n ) {\n this._shouldChange = false;\n } else {\n this._shouldChange = true;\n this._spanCache = end - start;\n }\n }\n\n protected _updateRangeFactor(tag?: 'startHandler' | 'endHandler') {\n // 轴的range有时是相反的\n // 比如相同的region范围, 有的场景range为[0, 500], 有的场景range为[500, 0]\n // 而datazoom/scrollbar的range是根据布局强制转化为[0, 500]\n // 所以这里在转换时进行判断并做转置, 有待优化\n // 轴在inverse时,也要做转置处理\n const axis = this._relatedAxisComponent as CartesianAxis<any>;\n const axisScale = axis.getScale() as IBandLikeScale;\n const reverse = isReverse(axis, this._isHorizontal);\n const newRangeFactor: [number, number] = reverse ? [1 - this._end, 1 - this._start] : [this._start, this._end];\n\n if (reverse) {\n switch (tag) {\n case 'startHandler':\n axis.scaleRangeFactorEnd(newRangeFactor[1]);\n break;\n case 'endHandler':\n axis.scaleRangeFactorStart(newRangeFactor[0]);\n break;\n default:\n axis.scaleRangeFactorStart(newRangeFactor[0], true);\n axis.scaleRangeFactorEnd(newRangeFactor[1]); // end 保证为准确值\n }\n } else {\n switch (tag) {\n case 'startHandler':\n axis.scaleRangeFactorStart(newRangeFactor[0]);\n break;\n case 'endHandler':\n axis.scaleRangeFactorEnd(newRangeFactor[1]);\n break;\n default:\n axis.scaleRangeFactorEnd(newRangeFactor[1], true);\n axis.scaleRangeFactorStart(newRangeFactor[0]); // start 保证为准确值\n }\n }\n\n const newFactor = axisScale.rangeFactor();\n if (newFactor) {\n this._start = reverse ? 1 - newFactor[1] : newFactor[0];\n this._end = reverse ? 1 - newFactor[0] : newFactor[1];\n } else {\n this._start = 0;\n this._end = 1;\n }\n }\n\n protected _handleStateChange = (startValue: number, endValue: number, tag?: string) => {\n this._startValue = startValue;\n this._endValue = endValue;\n this._newDomain = parseDomainFromState(this._startValue, this._endValue, this._stateScale);\n this.effect.onZoomChange?.(tag);\n return true;\n };\n\n effect: IEffect = {\n onZoomChange: (tag?: 'startHandler' | 'endHandler') => {\n const axis = this._relatedAxisComponent as CartesianAxis<any>;\n if (axis && this._filterMode === 'axis') {\n const axisScale = axis.getScale() as IBandLikeScale;\n const axisSpec = axis.getSpec() as ICartesianBandAxisSpec;\n // 判断是否允许自由更改轴 bandSize\n if (this._auto && getAxisBandSize(axisSpec) && (this._spec as IDataZoomSpec).ignoreBandSize) {\n axisScale.bandwidth('auto');\n axisScale.maxBandwidth('auto');\n axisScale.minBandwidth('auto');\n }\n\n this._updateRangeFactor(tag);\n if (this._auto) {\n // tag\n (this._component as DataZoomComponent)?.setStartAndEnd?.(this._start, this._end);\n }\n\n // 强制更新视图, 不管/component/axis/base-axis.ts computeData中的tickData判断\n axis.effect.scaleUpdate({\n value: 'force'\n });\n } else {\n eachSeries(\n this._regions,\n s => {\n s.getViewData()?.markRunning();\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n eachSeries(\n this._regions,\n s => {\n s.reFilterViewData();\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n }\n };\n /*** end: init event and event dispatch ***/\n\n protected _visible: boolean = true;\n get visible() {\n return this._visible;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec as any, options);\n this._orient = getOrient(spec as any);\n this._isHorizontal = getDirectionByOrient(this._orient) === Direction.horizontal;\n this._dataFilterEvent = new DataFilterEvent(\n (this as any).type,\n this._spec,\n this._handleChange.bind(this),\n this.getLayoutRect.bind(this),\n () => {\n return {\n start: this._start,\n end: this._end\n };\n },\n () => this._regions,\n (() => this._option).bind(this),\n () => this.event\n );\n }\n\n /*** start: component lifecycle ***/\n created() {\n this._handleDataCollectionChangeBound = this._handleDataCollectionChange.bind(this);\n super.created();\n this._setAxisFromSpec();\n this._setRegionsFromSpec();\n this._initEvent();\n this._initData();\n this._initStateScale();\n this._setStateFromSpec();\n }\n\n initLayout(): void {\n super.initLayout();\n this._layout && (this._layout.layoutOrient = this._orient);\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n this._addTransformToSeries();\n // 初始化轴的 domain 这样在轴初次布局时,能正确的获取展示标签\n if (this._start !== 0 || this._end !== 1) {\n this.effect.onZoomChange();\n }\n }\n\n _compareSpec(spec: AdaptiveSpec<T, 'width' | 'height'>, prevSpec: AdaptiveSpec<T, 'width' | 'height'>) {\n const result = super._compareSpec(spec, prevSpec);\n if (!result.reMake && !isEqual(prevSpec, spec)) {\n result.reRender = true;\n result.reMake = true;\n }\n\n return result;\n }\n\n reInit(spec?: AdaptiveSpec<T, 'width' | 'height'>) {\n super.reInit(spec);\n\n this._marks.forEach(g => {\n (<IGroupMark>g).getMarks().forEach(m => {\n this.initMarkStyleWithSpec(m, (this._spec as any)[m.name]);\n });\n });\n }\n\n onLayoutStart(layoutRect: IRect, viewRect: ILayoutRect): void {\n super.onLayoutStart(layoutRect, viewRect);\n const isShown = this._autoUpdate(layoutRect);\n this._autoVisible(isShown);\n this._dataUpdating = false;\n }\n\n updateLayoutAttribute(): void {\n this._visible && this._createOrUpdateComponent();\n\n // 第一次渲染, 根据配置强制触发start和end变更\n if (!this._hasInitStateScale) {\n if (this._start !== 0 || this._end !== 1) {\n this._newDomain = parseDomainFromStateAndValue(\n this._spec.start,\n this._startValue,\n this._spec.end,\n this._endValue,\n this._stateScale\n );\n this.effect.onZoomChange();\n }\n this._hasInitStateScale = true;\n }\n }\n\n protected _initAfterLayout() {\n // clear stateScale, 避免在_initStateScale中使用到旧的scale domain\n this._stateScale = null;\n this._initStateScale();\n // 这时轴的 scale range 是对的\n this._updateScaleRange();\n this._setStateFromAxis();\n }\n\n protected _beforeLayoutEnd() {\n if (!this._hasInitStateScale) {\n this._initAfterLayout();\n } else {\n this._updateScaleRange();\n }\n }\n\n onLayoutEnd(): void {\n this._beforeLayoutEnd();\n // 布局结束后, start和end会发生变化, 因此需要再次更新visible\n const isShown = !(this._start === 0 && this._end === 1);\n this._autoVisible(isShown);\n // onLayoutEnd 做的事情\n // updateLayoutAttribute\n // 更新 _newDomain\n // 创建 更新vrender组件属性\n super.onLayoutEnd();\n // 这里修改了轴的scaleRange, 因此需要更新轴的视图\n (this._relatedAxisComponent as IAxis)?.updateScaleRange();\n }\n\n /**\n * bounds预计算\n * @param rect\n * @returns\n */\n getBoundsInRect(rect: ILayoutRect): IBoundsLike {\n const result: IBoundsLike = { x1: this.getLayoutStartPoint().x, y1: this.getLayoutStartPoint().y, x2: 0, y2: 0 };\n\n if (this._isHorizontal) {\n result.y2 = result.y1 + this._height;\n result.x2 = result.x1 + rect.width;\n } else {\n result.x2 = result.x1 + this._width;\n result.y2 = result.y1 + rect.height;\n }\n return result;\n }\n /*** end: component lifecycle **/\n\n /*** start: set attributes & bind related axis and region ***/\n setAttrFromSpec() {\n super.setAttrFromSpec();\n // interaction相关\n this._dataFilterEvent.setEventAttrFromSpec();\n // style相关\n this._field = this._spec.field;\n this._width = this._computeWidth();\n this._height = this._computeHeight();\n this._visible = this._spec.visible ?? true;\n }\n protected _setAxisFromSpec() {\n if (isValid(this._spec.axisId)) {\n this._relatedAxisComponent = this._option.getComponentByUserId(this._spec.axisId);\n } else if (isValid(this._spec.axisIndex)) {\n this._relatedAxisComponent = this._option.getComponentByIndex('axes', this._spec.axisIndex);\n }\n\n // 如果用户没有配置关联轴 或 用户配置的关联轴和datazoom方向不一致\n // 则 使用与datazoom的方向相同的第一个axis作为关联轴\n if (isNil(this._spec.field) && !this._relatedAxisComponent) {\n const axes = this._option.getComponentsByKey('axes');\n const sameOrientAxis = axes.find(\n (cm: any) => getDirectionByOrient((cm as any)._orient) === getDirectionByOrient(this._orient)\n );\n\n if (sameOrientAxis) {\n this._relatedAxisComponent = sameOrientAxis;\n } else {\n const bandAxis = axes.find((cm: any) => !isContinuous((cm as any).getScale().type));\n\n this._relatedAxisComponent = bandAxis;\n }\n }\n if (this._relatedAxisComponent && this._filterMode === 'axis') {\n (this._relatedAxisComponent as CartesianAxis<any>).autoIndentOnce = true;\n }\n }\n\n protected _setRegionsFromSpec() {\n // 从axis中获取关联的regions\n this._regions = this._relatedAxisComponent ? this._relatedAxisComponent.getRegions() : this._option.getAllRegions();\n // 默认使用关联轴的系列绑定关系\n const bindSeriesFilter = this._relatedAxisComponent ? this._relatedAxisComponent.getBindSeriesFilter?.() : null;\n if (isValid(bindSeriesFilter)) {\n isValid(bindSeriesFilter.userId) && (this._seriesUserId = array(bindSeriesFilter.userId));\n isValid(bindSeriesFilter.specIndex) && (this._seriesIndex = array(bindSeriesFilter.specIndex));\n }\n // spec中的系列绑定关系 取交集\n if (isValid(this._spec.seriesId)) {\n const specSeriesId = array(this._spec.seriesId);\n if (this._seriesUserId) {\n this._seriesUserId = this._seriesUserId.filter(s => specSeriesId.includes(s));\n } else {\n this._seriesUserId = specSeriesId;\n }\n }\n if (isValid(this._spec.seriesIndex)) {\n const specSeriesIndex = array(this._spec.seriesIndex);\n if (this._seriesIndex) {\n this._seriesIndex = this._seriesIndex.filter(s => specSeriesIndex.includes(s));\n } else {\n this._seriesIndex = specSeriesIndex;\n }\n }\n if (isValid(this._spec.regionIndex)) {\n const regionsFromSpec = this._option.getRegionsInIndex(array(this._spec.regionIndex));\n // 如果用户配置了region就取 axis关联 和 用户配置 的交集\n this._regions = this._regions.filter(r => regionsFromSpec.includes(r));\n return;\n }\n if (isValid(this._spec.regionId)) {\n const ids = array(this._spec.regionId);\n // 如果用户配置了region就取 axis关联 和 用户配置 的交集\n this._regions = ids.length ? this._regions.filter(r => ids.includes(r.id)) : [];\n return;\n }\n return;\n }\n\n /*** end: set attributes & bind related axis and region ***/\n\n /*** start: data change and reset view ***/\n protected _collectDataInfo() {\n const dataCollection: any[] = [];\n const seriesCollection: any[] = [];\n const stateFields: string[] = [];\n const valueFields: string[] = [];\n let isCategoryState: boolean;\n if (this._relatedAxisComponent) {\n const originalStateFields: any = {};\n eachSeries(\n this._regions,\n s => {\n // 如果副轴的类型是time或band,则无法进行数据统计\n const xAxisHelper =\n s.coordinate === 'cartesian'\n ? (s as ICartesianSeries).getXAxisHelper()\n : s.coordinate === 'polar'\n ? (s as IPolarSeries).angleAxisHelper\n : null;\n const yAxisHelper =\n s.coordinate === 'cartesian'\n ? (s as ICartesianSeries).getYAxisHelper()\n : s.coordinate === 'polar'\n ? (s as IPolarSeries).radiusAxisHelper\n : null;\n if (!xAxisHelper || !yAxisHelper) {\n return;\n }\n const stateAxisHelper =\n xAxisHelper.getAxisId() === this._relatedAxisComponent.id\n ? xAxisHelper\n : yAxisHelper.getAxisId() === this._relatedAxisComponent.id\n ? yAxisHelper\n : this._isHorizontal\n ? xAxisHelper\n : yAxisHelper;\n const valueAxisHelper = stateAxisHelper === xAxisHelper ? yAxisHelper : xAxisHelper;\n const isValidateValueAxis = isContinuous(valueAxisHelper.getScale(0).type);\n const isValidateStateAxis = isContinuous(stateAxisHelper.getScale(0).type);\n\n dataCollection.push(s.getRawData());\n // 这里获取原始的spec中的xField和yField,而非经过stack处理后的fieldX和fieldY,原因如下:\n // 1. dataFilterComputeDomain处理时拿到的viewData中没有__VCHART_STACK_START等属性,也就是还没处理\n // 2. datazoom计算的是原始的value值,如果要根据stack后的数据来算,则需要__VCHART_STACK_END - __VCHART_STACK_START\n const seriesSpec = s.getSpec();\n\n const xField =\n s.coordinate === 'cartesian'\n ? array(seriesSpec.xField)\n : array(seriesSpec.angleField ?? seriesSpec.categoryField);\n const yField =\n s.coordinate === 'cartesian'\n ? array(seriesSpec.yField)\n : array(seriesSpec.radiusField ?? seriesSpec.valueField);\n\n originalStateFields[s.id] =\n s.type === 'link' ? ['from_xField'] : stateAxisHelper === xAxisHelper ? xField : yField;\n\n if (isValidateStateAxis) {\n isCategoryState = false;\n stateFields.push(originalStateFields[s.id]);\n } else {\n isCategoryState = true;\n stateFields.push(originalStateFields[s.id][0]);\n }\n\n if (this._valueField) {\n const valueField = s.type === 'link' ? ['from_yField'] : valueAxisHelper === xAxisHelper ? xField : yField;\n if (isValidateValueAxis) {\n valueFields.push(...valueField);\n }\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n\n this._originalStateFields = originalStateFields;\n } else {\n eachSeries(\n this._regions,\n s => {\n dataCollection.push(s.getRawData());\n seriesCollection.push(s);\n\n stateFields.push(this._field);\n if (this._valueField) {\n valueFields.push(this._spec.valueField);\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n return { dataCollection, seriesCollection, stateFields, valueFields, isCategoryState };\n }\n\n protected _initData() {\n const { dataCollection, seriesCollection, stateFields, valueFields, isCategoryState } = this._collectDataInfo();\n const { dataSet } = this._option;\n registerDataSetInstanceParser(dataSet, 'dataview', dataViewParser);\n registerDataSetInstanceTransform(dataSet, 'dataFilterComputeDomain', dataFilterComputeDomain);\n const data = new DataView(dataSet, { name: `${this.type}_${this.id}_data` });\n data.transform(\n {\n type: 'dataFilterComputeDomain',\n options: {\n input: {\n dataCollection: dataCollection,\n seriesCollection,\n stateFields,\n valueFields,\n isCategoryState\n },\n output: {\n stateField: this._stateField,\n valueField: this._valueField\n }\n }\n },\n false\n );\n\n // todo 似乎没必要创建\n this._data = new CompilableData(this._option, data);\n data.reRunAllTransform();\n this._currentDataCollection = dataCollection;\n dataSet.multipleDataViewAddListener(dataCollection, 'change', this._handleDataCollectionChangeBound);\n }\n protected _addTransformToSeries() {\n if (!this._relatedAxisComponent || this._filterMode !== 'axis') {\n registerDataSetInstanceTransform(this._option.dataSet, 'dataFilterWithNewDomain', dataFilterWithNewDomain);\n registerDataSetInstanceTransform(this._option.dataSet, 'lockStatisticsFilter', lockStatisticsFilter);\n\n eachSeries(\n this._regions,\n s => {\n s.getViewDataStatistics().transform(\n {\n type: 'lockStatisticsFilter',\n options: {\n originalFields: () => {\n return s.getViewDataStatistics().getFields();\n },\n getNewDomain: () => this._newDomain,\n field: () => {\n return this._field ?? this._parseFieldOfSeries(s);\n },\n isContinuous: () => isContinuous(this._stateScale.type)\n },\n level: 1\n },\n false\n );\n\n s.addViewDataFilter({\n type: 'dataFilterWithNewDomain',\n options: {\n getNewDomain: () => this._newDomain,\n field: () => {\n return this._field ?? this._parseFieldOfSeries(s);\n },\n isContinuous: () => isContinuous(this._stateScale.type)\n },\n level: TransformLevel.dataZoomFilter\n });\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n }\n\n // 数据更新流程\n onDataUpdate(): void {\n const { dataCollection, seriesCollection, stateFields, valueFields, isCategoryState } = this._collectDataInfo();\n\n // 1. 重新注册事件\n if (\n this._currentDataCollection.length !== dataCollection.length ||\n this._currentDataCollection.some((dv, i) => dv !== dataCollection[i])\n ) {\n this._currentDataCollection.forEach(dv => {\n dv?.target?.removeListener('change', this._handleDataCollectionChangeBound);\n });\n this._currentDataCollection = dataCollection;\n const { dataSet } = this._option;\n dataSet.multipleDataViewAddListener(this._currentDataCollection, 'change', this._handleDataCollectionChangeBound);\n }\n\n // 2. 执行数据更新\n this._data.getDataView().transform(\n {\n type: 'dataFilterComputeDomain',\n options: {\n input: {\n dataCollection: dataCollection,\n seriesCollection,\n stateFields,\n valueFields,\n isCategoryState\n },\n output: {\n stateField: this._stateField,\n valueField: this._valueField\n }\n }\n },\n false\n );\n this._data.getDataView().reRunAllTransform();\n\n // 3. 重新计算domain\n const domain = this._computeDomainOfStateScale(isContinuous(this._stateScale.type));\n this._stateScale.domain(domain, false);\n\n // 4. 重新计算start和end\n // 如果 spec 中有配置 start/end,使用 spec 中的配置\n // 否则保持当前的 start/end\n if (isValid(this._spec.start) || isValid(this._spec.end)) {\n this._setStateFromSpec();\n }\n this._handleChange(this._start, this._end, true);\n\n // 5. 重新布局\n // auto 模式下需要重新布局\n if (this._spec.auto && !isEqual(this._domainCache, domain)) {\n this._domainCache = domain;\n this._dataUpdating = true;\n this.getChart()?.setLayoutTag(true, null, false);\n }\n }\n private _parseFieldOfSeries(s: ISeries) {\n return this._originalStateFields?.[s.id];\n }\n /*** end: data change and reset view ***/\n\n /*** start: scale of filter ***/\n\n protected _setStateFromSpec() {\n this._auto = !!this._spec.auto;\n\n let start;\n let end;\n if (this._spec.rangeMode) {\n const [startMode, endMode] = this._spec.rangeMode;\n // 只有mode与配置相符时,才会生效\n // 比如rangeMode为['value', 'percent'],那么start为dataValue, end为[0, 1]\n if (modeCheck('start', startMode, this._spec) && modeCheck('end', endMode, this._spec)) {\n start =\n startMode === 'percent'\n ? this._spec.start\n : dataToStatePoint(this._spec.startValue, this._stateScale, this._isHorizontal);\n end =\n endMode === 'percent'\n ? this._spec.end\n : dataToStatePoint(this._spec.endValue, this._stateScale, this._isHorizontal);\n }\n } else {\n start = this._spec.start\n ? this._spec.start\n : this._spec.startValue\n ? dataToStatePoint(this._spec.startValue, this._stateScale, this._isHorizontal)\n : 0;\n end = this._spec.end\n ? this._spec.end\n : this._spec.endValue\n ? dataToStatePoint(this._spec.endValue, this._stateScale, this._isHorizontal)\n : 1;\n }\n this._start = Math.max(0, Math.min(1, start));\n this._end = Math.max(0, Math.min(1, end));\n }\n protected _setStateFromAxis() {\n // 此时 state scale 进行了更新,stateFromSpec 中补分逻辑需要使用scale计算,重新获取一遍\n this._setStateFromSpec();\n const axis = this._relatedAxisComponent as CartesianAxis<any>;\n this._startValue = statePointToData(this._start, this._stateScale, isReverse(axis, this._isHorizontal));\n this._endValue = statePointToData(this._end, this._stateScale, isReverse(axis, this._isHorizontal));\n this._minSpan = this._spec.minSpan ?? 0;\n this._maxSpan = this._spec.maxSpan ?? 1;\n if (isContinuous(this._stateScale.type) && this._stateScale.domain()[0] !== last(this._stateScale.domain())) {\n if (this._spec.minValueSpan) {\n this._minSpan = this._spec.minValueSpan / (last(this._stateScale.domain()) - this._stateScale.domain()[0]);\n }\n if (this._spec.maxValueSpan) {\n this._maxSpan = this._spec.maxValueSpan / (last(this._stateScale.domain()) - this._stateScale.domain()[0]);\n }\n }\n this._minSpan = Math.max(0, this._minSpan);\n this._maxSpan = Math.min(this._maxSpan, 1);\n if (!axis) {\n return;\n }\n // eslint-disable-next-line max-len\n if ((!axis || this._filterMode !== 'axis') && (this._start !== 0 || this._end !== 1)) {\n this._newDomain = parseDomainFromState(this._startValue, this._endValue, this._stateScale);\n }\n }\n protected _initStateScale() {\n const defaultRange = [0, 1];\n if (this._relatedAxisComponent) {\n const scale = (this._relatedAxisComponent as CartesianAxis<any>).getScale().clone() as\n | IContinuousScale\n | IBandLikeScale;\n // 需要清除rangeFactor 缓存,否则会导致计算错误\n this._stateScale = scale;\n (scale as IBandLikeScale).maxBandwidth?.('auto', true);\n (scale as IBandLikeScale).minBandwidth?.('auto', true);\n (scale as IBandLikeScale).bandwidth?.('auto', true);\n scale.rangeFactor(defaultRange as [number, number], true).range(defaultRange);\n } else {\n let fieldLinear = true;\n if (this._field) {\n eachSeries(\n this._regions,\n s => {\n const stats = s.getRawDataStatisticsByField(this._field);\n if (!isValidNumber(stats?.min) || !isValidNumber(stats?.max)) {\n fieldLinear = false;\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n this._stateScale = fieldLinear ? new LinearScale() : new BandScale();\n this._stateScale.domain(this._computeDomainOfStateScale(fieldLinear), true).range(defaultRange);\n }\n }\n\n protected _computeDomainOfStateScale(isContinuous?: boolean) {\n if ((this._spec as IDataZoomSpec).customDomain) {\n return (this._spec as IDataZoomSpec).customDomain;\n }\n const domain = this._data.getLatestData().map((d: any) => d[this._stateField]);\n if (isContinuous) {\n const domainNum = domain.map((n: any) => n * 1);\n return domain.length ? [minInArray(domainNum), maxInArray(domainNum)] : [-Infinity, Infinity];\n }\n\n return domain;\n }\n /*** end: scale of filter ***/\n\n /*** start: auto model process ***/\n protected _autoVisible(isShown: boolean) {\n if (!this._auto) {\n return;\n }\n if (isShown) {\n this.show();\n } else {\n this.hide();\n }\n const sizeKey = this._isHorizontal ? 'height' : 'width';\n this.layout.setLayoutRect(\n {\n [sizeKey]: isShown ? this[`_${sizeKey}`] : 0\n },\n {\n [sizeKey]: AttributeLevel.Built_In\n }\n );\n }\n hide() {\n this._component?.hideAll();\n }\n\n show() {\n this._component?.showAll();\n }\n\n protected _autoUpdate(rect?: ILayoutRect): boolean {\n if (!this._auto) {\n this._cacheVisibility = undefined;\n return true;\n }\n\n const axis = this._relatedAxisComponent as CartesianAxis<any>;\n const axisSpec = axis?.getSpec() as ICartesianBandAxisSpec | undefined;\n const axisScale = axis?.getScale() as IBandLikeScale;\n const bandSizeResult = getAxisBandSize(axisSpec);\n\n if (\n !this._dataUpdating &&\n isDiscrete(axisScale.type) &&\n rect?.height === this._cacheRect?.height &&\n rect?.width === this._cacheRect?.width &&\n this._fixedBandSize === bandSizeResult?.bandSize\n ) {\n return this._cacheVisibility;\n }\n\n let isShown = true;\n if (this._isHorizontal && rect?.width !== this._cacheRect?.width) {\n axisScale.range(axis.getInverse() ? [rect.width, 0] : [0, rect.width]);\n } else if (rect?.height !== this._cacheRect?.height) {\n axisScale.range(axis.getInverse() ? [0, rect.height] : [rect.height, 0]);\n }\n\n this._cacheRect = {\n width: rect?.width,\n height: rect?.height\n };\n this._fixedBandSize = bandSizeResult?.bandSize;\n\n if (isDiscrete(axisScale.type)) {\n if (bandSizeResult && (this._start || this._end)) {\n if (this.type === ComponentTypeEnum.scrollBar) {\n this._start = 0;\n this._end = 1;\n }\n this._updateRangeFactor();\n }\n const [start, end] = axisScale.rangeFactor() ?? [];\n if (isNil(start) && isNil(end)) {\n isShown = false;\n } else {\n isShown = !(start === 0 && end === 1);\n }\n } else {\n const [start, end] = axisScale.rangeFactor() ?? [this._start, this._end];\n isShown = !(start === 0 && end === 1);\n }\n this.setStartAndEnd(this._start, this._end);\n this._cacheVisibility = isShown;\n return isShown;\n }\n /*** end: auto model process ***/\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._component] as unknown as IGroup[];\n }\n}\n\nmixin(DataFilterBaseComponent, Zoomable);\n"]}
|
|
@@ -36,7 +36,6 @@ export declare class DataZoom<T extends IDataZoomSpec = IDataZoomSpec> extends D
|
|
|
36
36
|
created(): void;
|
|
37
37
|
updateLayoutAttribute(): void;
|
|
38
38
|
protected _beforeLayoutEnd(): void;
|
|
39
|
-
protected _getComponentOnlySpecKeys(): Record<string, boolean>;
|
|
40
39
|
clear(): void;
|
|
41
40
|
getBoundsInRect(rect: ILayoutRect): IBoundsLike;
|
|
42
41
|
setAttrFromSpec(): void;
|
|
@@ -26,23 +26,6 @@ import { dataZoom } from "../../../theme/builtin/common/component/data-zoom";
|
|
|
26
26
|
|
|
27
27
|
import { isReverse, statePointToData } from "../util";
|
|
28
28
|
|
|
29
|
-
const DATA_ZOOM_COMPONENT_ONLY_CHANGE_KEYS = {
|
|
30
|
-
width: !0,
|
|
31
|
-
height: !0,
|
|
32
|
-
showDetail: !0,
|
|
33
|
-
middleHandler: !0,
|
|
34
|
-
background: !0,
|
|
35
|
-
startHandler: !0,
|
|
36
|
-
endHandler: !0,
|
|
37
|
-
startText: !0,
|
|
38
|
-
endText: !0,
|
|
39
|
-
dragMask: !0,
|
|
40
|
-
selectedBackground: !0,
|
|
41
|
-
backgroundChart: !0,
|
|
42
|
-
selectedBackgroundChart: !0,
|
|
43
|
-
showBackgroundChart: !0
|
|
44
|
-
};
|
|
45
|
-
|
|
46
29
|
export class DataZoom extends DataFilterBaseComponent {
|
|
47
30
|
constructor(spec, options) {
|
|
48
31
|
var _a;
|
|
@@ -99,9 +82,6 @@ export class DataZoom extends DataFilterBaseComponent {
|
|
|
99
82
|
(isReverse(axis, this._isHorizontal) && !this._isReverseCache || this._auto) && (this._isReverseCache = isReverse(axis, this._isHorizontal),
|
|
100
83
|
this.effect.onZoomChange());
|
|
101
84
|
}
|
|
102
|
-
_getComponentOnlySpecKeys() {
|
|
103
|
-
return DATA_ZOOM_COMPONENT_ONLY_CHANGE_KEYS;
|
|
104
|
-
}
|
|
105
85
|
clear() {
|
|
106
86
|
if (this._component) {
|
|
107
87
|
const container = this.getContainer();
|