@visactor/vchart 1.6.7 → 1.7.0-alpha.1
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 +1 -1
- package/build/index.js +44570 -43966
- package/build/index.min.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/animation/utils.d.ts +2 -2
- package/cjs/chart/area/area.js +2 -1
- package/cjs/chart/area/area.js.map +1 -1
- package/cjs/chart/base-chart.d.ts +13 -16
- package/cjs/chart/base-chart.js +68 -68
- package/cjs/chart/base-chart.js.map +1 -1
- package/cjs/chart/interface/chart.d.ts +4 -6
- package/cjs/chart/interface/chart.js.map +1 -1
- package/cjs/chart/line/line.js +2 -1
- package/cjs/chart/line/line.js.map +1 -1
- package/cjs/chart/sequence/sequence.d.ts +1 -1
- package/cjs/chart/sequence/sequence.js +1 -1
- package/cjs/chart/sequence/sequence.js.map +1 -1
- package/cjs/compile/compiler.js +1 -2
- package/cjs/compile/grammar-item.js +2 -1
- package/cjs/compile/mark/compilable-mark.d.ts +10 -6
- package/cjs/compile/mark/compilable-mark.js +22 -11
- package/cjs/compile/mark/compilable-mark.js.map +1 -1
- package/cjs/compile/mark/interface.d.ts +6 -4
- package/cjs/compile/mark/interface.js.map +1 -1
- package/cjs/compile/mark/util.d.ts +1 -3
- package/cjs/compile/mark/util.js +1 -37
- package/cjs/compile/mark/util.js.map +1 -1
- package/cjs/component/axis/base-axis.d.ts +2 -4
- package/cjs/component/axis/base-axis.js +20 -35
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/axis.d.ts +12 -22
- package/cjs/component/axis/cartesian/axis.js +51 -67
- package/cjs/component/axis/cartesian/axis.js.map +1 -1
- package/cjs/component/axis/cartesian/band-axis.d.ts +0 -7
- package/cjs/component/axis/cartesian/band-axis.js +0 -1
- package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/interface/common.d.ts +0 -6
- package/cjs/component/axis/cartesian/interface/common.js.map +1 -1
- package/cjs/component/axis/cartesian/interface/theme.d.ts +1 -1
- package/cjs/component/axis/cartesian/interface/theme.js.map +1 -1
- package/cjs/component/axis/interface/common.d.ts +0 -1
- package/cjs/component/axis/interface/common.js.map +1 -1
- package/cjs/component/axis/interface/spec.js.map +1 -1
- package/cjs/component/axis/mixin/band-axis-mixin.d.ts +0 -1
- package/cjs/component/axis/mixin/band-axis-mixin.js +2 -2
- package/cjs/component/axis/mixin/band-axis-mixin.js.map +1 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.d.ts +0 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.js +4 -3
- package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/cjs/component/axis/polar/axis.d.ts +3 -4
- package/cjs/component/axis/polar/axis.js +13 -15
- package/cjs/component/axis/polar/axis.js.map +1 -1
- package/cjs/component/base/base-component.d.ts +12 -4
- package/cjs/component/base/base-component.js +21 -11
- package/cjs/component/base/base-component.js.map +1 -1
- package/cjs/component/base/util.js +16 -12
- package/cjs/component/base/util.js.map +1 -1
- package/cjs/component/brush/brush.d.ts +2 -4
- package/cjs/component/brush/brush.js +4 -6
- package/cjs/component/brush/brush.js.map +1 -1
- package/cjs/component/crosshair/base.d.ts +3 -4
- package/cjs/component/crosshair/base.js +1 -1
- package/cjs/component/crosshair/base.js.map +1 -1
- package/cjs/component/crosshair/cartesian.d.ts +2 -0
- package/cjs/component/crosshair/cartesian.js +6 -8
- package/cjs/component/crosshair/cartesian.js.map +1 -1
- package/cjs/component/crosshair/interface/spec.d.ts +1 -1
- package/cjs/component/crosshair/interface/spec.js.map +1 -1
- package/cjs/component/crosshair/polar.d.ts +2 -0
- package/cjs/component/crosshair/polar.js +5 -8
- package/cjs/component/crosshair/polar.js.map +1 -1
- package/cjs/component/custom-mark/custom-mark.d.ts +2 -3
- package/cjs/component/custom-mark/custom-mark.js +2 -3
- package/cjs/component/custom-mark/custom-mark.js.map +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.d.ts +8 -8
- package/cjs/component/data-zoom/data-filter-base-component.js +60 -38
- package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +4 -2
- package/cjs/component/data-zoom/data-zoom/data-zoom.js +47 -44
- package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/cjs/component/data-zoom/data-zoom/interface.d.ts +6 -1
- package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
- package/cjs/component/data-zoom/scroll-bar/interface.d.ts +6 -2
- package/cjs/component/data-zoom/scroll-bar/interface.js.map +1 -1
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +3 -0
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +24 -23
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
- package/cjs/component/data-zoom/util.d.ts +4 -0
- package/cjs/component/data-zoom/util.js +11 -2
- package/cjs/component/data-zoom/util.js.map +1 -1
- package/cjs/component/geo/geo-coordinate.d.ts +3 -2
- package/cjs/component/geo/geo-coordinate.js +4 -4
- package/cjs/component/geo/geo-coordinate.js.map +1 -1
- package/cjs/component/index.d.ts +3 -2
- package/cjs/component/index.js.map +1 -1
- package/cjs/component/indicator/indicator.d.ts +1 -3
- package/cjs/component/indicator/indicator.js +4 -5
- package/cjs/component/indicator/indicator.js.map +1 -1
- package/cjs/component/indicator/interface.d.ts +1 -1
- package/cjs/component/indicator/interface.js.map +1 -1
- package/cjs/component/interface/common.d.ts +3 -3
- package/cjs/component/interface/common.js.map +1 -1
- package/cjs/component/interface/theme.d.ts +2 -1
- package/cjs/component/interface/theme.js.map +1 -1
- package/cjs/component/label/base-label.d.ts +2 -4
- package/cjs/component/label/base-label.js +1 -3
- package/cjs/component/label/base-label.js.map +1 -1
- package/cjs/component/label/interface.d.ts +4 -0
- package/cjs/component/label/interface.js.map +1 -1
- package/cjs/component/label/label.d.ts +5 -7
- package/cjs/component/label/label.js +15 -11
- package/cjs/component/label/label.js.map +1 -1
- package/cjs/component/label/totalLabel.d.ts +1 -3
- package/cjs/component/label/totalLabel.js +4 -4
- package/cjs/component/label/totalLabel.js.map +1 -1
- package/cjs/component/label/util.d.ts +9 -2
- package/cjs/component/label/util.js +20 -5
- package/cjs/component/label/util.js.map +1 -1
- package/cjs/component/legend/base-legend.d.ts +6 -9
- package/cjs/component/legend/base-legend.js +3 -9
- package/cjs/component/legend/base-legend.js.map +1 -1
- package/cjs/component/legend/continuous/legend.d.ts +4 -1
- package/cjs/component/legend/continuous/legend.js +7 -7
- package/cjs/component/legend/continuous/legend.js.map +1 -1
- package/cjs/component/legend/discrete/legend.d.ts +4 -1
- package/cjs/component/legend/discrete/legend.js +6 -7
- package/cjs/component/legend/discrete/legend.js.map +1 -1
- package/cjs/component/legend/discrete/util.d.ts +1 -1
- package/cjs/component/legend/discrete/util.js.map +1 -1
- package/cjs/component/legend/util.d.ts +2 -2
- package/cjs/component/map-label/component.d.ts +1 -3
- package/cjs/component/map-label/component.js +2 -3
- package/cjs/component/map-label/component.js.map +1 -1
- package/cjs/component/marker/base-marker.d.ts +7 -3
- package/cjs/component/marker/base-marker.js +43 -19
- package/cjs/component/marker/base-marker.js.map +1 -1
- package/cjs/component/marker/interface.d.ts +15 -4
- package/cjs/component/marker/interface.js.map +1 -1
- package/cjs/component/marker/mark-area/interface/spec.d.ts +1 -1
- package/cjs/component/marker/mark-area/interface/spec.js.map +1 -1
- package/cjs/component/marker/mark-area/mark-area.d.ts +1 -3
- package/cjs/component/marker/mark-area/mark-area.js +32 -20
- package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
- package/cjs/component/marker/mark-line/interface/spec.d.ts +3 -4
- package/cjs/component/marker/mark-line/interface/spec.js.map +1 -1
- package/cjs/component/marker/mark-line/mark-line.d.ts +1 -3
- package/cjs/component/marker/mark-line/mark-line.js +36 -22
- package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
- package/cjs/component/marker/mark-line/util.d.ts +3 -3
- package/cjs/component/marker/mark-line/util.js.map +1 -1
- package/cjs/component/marker/mark-point/interface/spec.d.ts +5 -4
- package/cjs/component/marker/mark-point/interface/spec.js.map +1 -1
- package/cjs/component/marker/mark-point/interface/theme.d.ts +5 -5
- package/cjs/component/marker/mark-point/interface/theme.js.map +1 -1
- package/cjs/component/marker/mark-point/mark-point.d.ts +1 -3
- package/cjs/component/marker/mark-point/mark-point.js +17 -13
- package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
- package/cjs/component/marker/utils.d.ts +3 -4
- package/cjs/component/marker/utils.js +44 -25
- package/cjs/component/marker/utils.js.map +1 -1
- package/cjs/component/player/interface/theme.d.ts +1 -1
- package/cjs/component/player/interface/theme.js.map +1 -1
- package/cjs/component/player/player.d.ts +6 -7
- package/cjs/component/player/player.js +4 -7
- package/cjs/component/player/player.js.map +1 -1
- package/cjs/component/title/interface/theme.d.ts +1 -1
- package/cjs/component/title/interface/theme.js.map +1 -1
- package/cjs/component/title/title.d.ts +6 -9
- package/cjs/component/title/title.js +13 -24
- package/cjs/component/title/title.js.map +1 -1
- package/cjs/component/tooltip/handler/base.js +6 -6
- package/cjs/component/tooltip/handler/base.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/util.js +3 -2
- package/cjs/component/tooltip/handler/dom/util.js.map +1 -1
- package/cjs/component/tooltip/handler/utils/attribute.d.ts +3 -3
- package/cjs/component/tooltip/handler/utils/attribute.js.map +1 -1
- package/cjs/component/tooltip/handler/utils/common.js.map +1 -1
- package/cjs/component/tooltip/interface/spec.d.ts +1 -1
- package/cjs/component/tooltip/interface/spec.js.map +1 -1
- package/cjs/component/tooltip/interface/theme.d.ts +10 -11
- package/cjs/component/tooltip/interface/theme.js.map +1 -1
- package/cjs/component/tooltip/tooltip.d.ts +3 -2
- package/cjs/component/tooltip/tooltip.js +7 -11
- package/cjs/component/tooltip/tooltip.js.map +1 -1
- package/cjs/component/util.d.ts +1 -3
- package/cjs/component/util.js +2 -2
- package/cjs/component/util.js.map +1 -1
- package/cjs/constant/index.js +2 -1
- package/cjs/constant/layout.d.ts +1 -0
- package/cjs/constant/layout.js +2 -2
- package/cjs/constant/layout.js.map +1 -1
- package/cjs/constant/scatter.js +1 -2
- package/cjs/core/expression-function.d.ts +12 -0
- package/cjs/core/expression-function.js +30 -0
- package/cjs/core/expression-function.js.map +1 -0
- package/cjs/core/factory.d.ts +5 -2
- package/cjs/core/factory.js +6 -3
- package/cjs/core/factory.js.map +1 -1
- package/cjs/core/index.d.ts +2 -1
- package/cjs/core/index.js +3 -2
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/interface.d.ts +5 -0
- package/cjs/core/interface.js.map +1 -1
- package/cjs/core/vchart.d.ts +9 -1
- package/cjs/core/vchart.js +94 -68
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/data/initialize.js +7 -6
- package/cjs/data/initialize.js.map +1 -1
- package/cjs/data/transforms/aggregation.d.ts +4 -3
- package/cjs/data/transforms/aggregation.js +4 -4
- package/cjs/data/transforms/aggregation.js.map +1 -1
- package/cjs/data/transforms/dimension-statistics.js +14 -4
- package/cjs/data/transforms/dimension-statistics.js.map +1 -1
- package/cjs/event/bubble.js +1 -2
- package/cjs/event/event.js +2 -1
- package/cjs/event/events/base.d.ts +16 -0
- package/cjs/event/events/base.js +23 -0
- package/cjs/event/events/base.js.map +1 -0
- package/cjs/event/events/dimension/util/cartesian.d.ts +1 -1
- package/cjs/event/events/dimension/util/cartesian.js.map +1 -1
- package/cjs/event/events/dimension/util/common.d.ts +1 -2
- package/cjs/event/events/dimension/util/common.js +1 -1
- package/cjs/event/events/dimension/util/common.js.map +1 -1
- package/cjs/event/events/dimension/util/polar.d.ts +1 -1
- package/cjs/event/events/dimension/util/polar.js.map +1 -1
- package/cjs/event/interface.d.ts +2 -2
- package/cjs/event/interface.js.map +1 -1
- package/cjs/index-wx-simple.d.ts +4 -0
- package/cjs/index-wx-simple.js +35 -0
- package/cjs/index-wx-simple.js.map +1 -0
- package/cjs/interaction/trigger.js +1 -1
- package/cjs/interaction/zoom/zoomable.d.ts +1 -0
- package/cjs/interaction/zoom/zoomable.js +6 -5
- package/cjs/interaction/zoom/zoomable.js.map +1 -1
- package/cjs/layout/base-layout.d.ts +3 -5
- package/cjs/layout/base-layout.js +9 -9
- package/cjs/layout/base-layout.js.map +1 -1
- package/cjs/layout/grid-layout/grid-layout.d.ts +1 -2
- package/cjs/layout/grid-layout/grid-layout.js +6 -4
- package/cjs/layout/grid-layout/grid-layout.js.map +1 -1
- package/cjs/layout/interface.d.ts +74 -6
- package/cjs/layout/interface.js.map +1 -1
- package/cjs/{model → layout}/layout-item.d.ts +35 -23
- package/cjs/{model → layout}/layout-item.js +98 -64
- package/cjs/layout/layout-item.js.map +1 -0
- package/cjs/layout/layout3d/index.d.ts +2 -4
- package/cjs/layout/layout3d/index.js +6 -6
- package/cjs/layout/layout3d/index.js.map +1 -1
- package/cjs/layout/util.d.ts +1 -1
- package/cjs/layout/util.js.map +1 -1
- package/cjs/mark/arc.js +2 -2
- package/cjs/mark/arc.js.map +1 -1
- package/cjs/mark/base/base-mark.d.ts +2 -2
- package/cjs/mark/base/base-mark.js +62 -40
- package/cjs/mark/base/base-mark.js.map +1 -1
- package/cjs/mark/label.js +1 -4
- package/cjs/mark/label.js.map +1 -1
- package/cjs/model/base-model.d.ts +10 -8
- package/cjs/model/base-model.js +27 -31
- package/cjs/model/base-model.js.map +1 -1
- package/cjs/model/interface.d.ts +21 -89
- package/cjs/model/interface.js.map +1 -1
- package/cjs/model/layout-model.d.ts +41 -0
- package/cjs/model/layout-model.js +86 -0
- package/cjs/model/layout-model.js.map +1 -0
- package/cjs/region/interface.d.ts +3 -2
- package/cjs/region/interface.js.map +1 -1
- package/cjs/region/region.d.ts +12 -7
- package/cjs/region/region.js +18 -10
- package/cjs/region/region.js.map +1 -1
- package/cjs/series/area/area.d.ts +1 -1
- package/cjs/series/area/area.js +5 -6
- package/cjs/series/area/area.js.map +1 -1
- package/cjs/series/area/interface.d.ts +4 -0
- package/cjs/series/area/interface.js.map +1 -1
- package/cjs/series/bar/bar.js +2 -4
- package/cjs/series/bar/bar.js.map +1 -1
- package/cjs/series/base/base-series.d.ts +14 -4
- package/cjs/series/base/base-series.js +40 -15
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/cartesian/cartesian.d.ts +3 -0
- package/cjs/series/cartesian/cartesian.js +16 -4
- package/cjs/series/cartesian/cartesian.js.map +1 -1
- package/cjs/series/correlation/correlation.js +3 -7
- package/cjs/series/correlation/correlation.js.map +1 -1
- package/cjs/series/funnel/funnel-3d.js +1 -1
- package/cjs/series/funnel/funnel-3d.js.map +1 -1
- package/cjs/series/funnel/funnel.js +2 -6
- package/cjs/series/funnel/funnel.js.map +1 -1
- package/cjs/series/funnel/interface.d.ts +1 -2
- package/cjs/series/funnel/interface.js.map +1 -1
- package/cjs/series/gauge/gauge.d.ts +0 -1
- package/cjs/series/gauge/gauge.js +3 -8
- package/cjs/series/gauge/gauge.js.map +1 -1
- package/cjs/series/heatmap/heatmap.js +2 -4
- package/cjs/series/heatmap/heatmap.js.map +1 -1
- package/cjs/series/index.d.ts +2 -2
- package/cjs/series/index.js.map +1 -1
- package/cjs/series/interface/common.d.ts +2 -2
- package/cjs/series/interface/common.js.map +1 -1
- package/cjs/series/interface/series.d.ts +4 -2
- package/cjs/series/interface/series.js.map +1 -1
- package/cjs/series/interface/type.d.ts +3 -1
- package/cjs/series/interface/type.js +2 -1
- package/cjs/series/interface/type.js.map +1 -1
- package/cjs/series/line/interface.d.ts +4 -0
- package/cjs/series/line/interface.js.map +1 -1
- package/cjs/series/line/line.d.ts +1 -1
- package/cjs/series/line/line.js.map +1 -1
- package/cjs/series/map/map.js +2 -4
- package/cjs/series/map/map.js.map +1 -1
- package/cjs/series/mixin/line-mixin.d.ts +5 -2
- package/cjs/series/mixin/line-mixin.js +16 -10
- package/cjs/series/mixin/line-mixin.js.map +1 -1
- package/cjs/series/pie/pie.js +1 -4
- package/cjs/series/pie/pie.js.map +1 -1
- package/cjs/series/polar/progress-like/progress-like.js +4 -4
- package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
- package/cjs/series/radar/animation.js.map +1 -1
- package/cjs/series/range-column/range-column.js +2 -2
- package/cjs/series/range-column/range-column.js.map +1 -1
- package/cjs/series/rose/rose.d.ts +2 -1
- package/cjs/series/rose/rose.js +2 -4
- package/cjs/series/rose/rose.js.map +1 -1
- package/cjs/series/scatter/scatter.js +2 -4
- package/cjs/series/scatter/scatter.js.map +1 -1
- package/cjs/series/waterfall/waterfall.js +1 -1
- package/cjs/series/waterfall/waterfall.js.map +1 -1
- package/cjs/series/word-cloud/base.d.ts +1 -0
- package/cjs/series/word-cloud/base.js +33 -33
- package/cjs/series/word-cloud/base.js.map +1 -1
- package/cjs/series/word-cloud/word-cloud-3d.js +32 -32
- package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
- package/cjs/theme/builtin/common/component/axis/cartesian-axis.js +2 -2
- package/cjs/theme/builtin/common/component/axis/cartesian-axis.js.map +1 -1
- package/cjs/theme/builtin/common/component/axis/common-axis.js +1 -1
- package/cjs/theme/builtin/common/component/axis/common-axis.js.map +1 -1
- package/cjs/theme/builtin/common/component/crosshair.js +5 -5
- package/cjs/theme/builtin/common/component/crosshair.js.map +1 -1
- package/cjs/theme/builtin/common/component/data-zoom.js +10 -10
- package/cjs/theme/builtin/common/component/data-zoom.js.map +1 -1
- package/cjs/theme/builtin/common/component/indicator.js +1 -1
- package/cjs/theme/builtin/common/component/indicator.js.map +1 -1
- package/cjs/theme/builtin/common/component/legend/color-legend.js +3 -4
- package/cjs/theme/builtin/common/component/legend/color-legend.js.map +1 -1
- package/cjs/theme/builtin/common/component/legend/discrete-legend.js +2 -2
- package/cjs/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
- package/cjs/theme/builtin/common/component/legend/size-legend.js +6 -6
- package/cjs/theme/builtin/common/component/legend/size-legend.js.map +1 -1
- package/cjs/theme/builtin/common/component/map-label.js.map +1 -1
- package/cjs/theme/builtin/common/component/mark-area.js.map +1 -1
- package/cjs/theme/builtin/common/component/mark-line.js +9 -9
- package/cjs/theme/builtin/common/component/mark-line.js.map +1 -1
- package/cjs/theme/builtin/common/component/mark-point.js +15 -3
- package/cjs/theme/builtin/common/component/mark-point.js.map +1 -1
- package/cjs/theme/builtin/common/component/player.js +7 -7
- package/cjs/theme/builtin/common/component/player.js.map +1 -1
- package/cjs/theme/builtin/common/component/poptip.js +3 -4
- package/cjs/theme/builtin/common/component/poptip.js.map +1 -1
- package/cjs/theme/builtin/common/component/scroll-bar.js +20 -7
- package/cjs/theme/builtin/common/component/scroll-bar.js.map +1 -1
- package/cjs/theme/builtin/common/component/title.js +1 -1
- package/cjs/theme/builtin/common/component/title.js.map +1 -1
- package/cjs/theme/builtin/common/component/tooltip.d.ts +2 -1
- package/cjs/theme/builtin/common/component/tooltip.js +3 -4
- package/cjs/theme/builtin/common/component/tooltip.js.map +1 -1
- package/cjs/theme/builtin/common/component/total-label.js.map +1 -1
- package/cjs/theme/builtin/common/mark.js.map +1 -1
- package/cjs/theme/builtin/common/series/rangeColumn.js +1 -1
- package/cjs/theme/builtin/common/series/rangeColumn.js.map +1 -1
- package/cjs/theme/builtin/common-mobile/component/axis/band-axis.d.ts +2 -0
- package/cjs/theme/builtin/common-mobile/component/axis/band-axis.js +22 -0
- package/cjs/theme/builtin/common-mobile/component/axis/band-axis.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/component/axis/cartesian-axis.d.ts +3 -0
- package/cjs/theme/builtin/common-mobile/component/axis/cartesian-axis.js +36 -0
- package/cjs/theme/builtin/common-mobile/component/axis/cartesian-axis.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/component/axis/common-axis.d.ts +2 -0
- package/cjs/theme/builtin/common-mobile/component/axis/common-axis.js +42 -0
- package/cjs/theme/builtin/common-mobile/component/axis/common-axis.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/component/axis/linear-axis.d.ts +2 -0
- package/cjs/theme/builtin/common-mobile/component/axis/linear-axis.js +22 -0
- package/cjs/theme/builtin/common-mobile/component/axis/linear-axis.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/component/axis/polar-axis.d.ts +3 -0
- package/cjs/theme/builtin/common-mobile/component/axis/polar-axis.js +25 -0
- package/cjs/theme/builtin/common-mobile/component/axis/polar-axis.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/component/crosshair.d.ts +2 -0
- package/cjs/theme/builtin/common-mobile/component/crosshair.js +39 -0
- package/cjs/theme/builtin/common-mobile/component/crosshair.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/component/data-zoom.d.ts +2 -0
- package/cjs/theme/builtin/common-mobile/component/data-zoom.js +40 -0
- package/cjs/theme/builtin/common-mobile/component/data-zoom.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/component/index.d.ts +2 -0
- package/cjs/theme/builtin/common-mobile/component/index.js +33 -0
- package/cjs/theme/builtin/common-mobile/component/index.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/component/indicator.d.ts +2 -0
- package/cjs/theme/builtin/common-mobile/component/indicator.js +23 -0
- package/cjs/theme/builtin/common-mobile/component/indicator.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/component/legend/color-legend.d.ts +2 -0
- package/cjs/theme/builtin/common-mobile/component/legend/color-legend.js +23 -0
- package/cjs/theme/builtin/common-mobile/component/legend/color-legend.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/component/legend/continuous.d.ts +2 -0
- package/cjs/theme/builtin/common-mobile/component/legend/continuous.js +44 -0
- package/cjs/theme/builtin/common-mobile/component/legend/continuous.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/component/legend/discrete-legend.d.ts +2 -0
- package/cjs/theme/builtin/common-mobile/component/legend/discrete-legend.js +39 -0
- package/cjs/theme/builtin/common-mobile/component/legend/discrete-legend.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/component/legend/size-legend.d.ts +2 -0
- package/cjs/theme/builtin/common-mobile/component/legend/size-legend.js +23 -0
- package/cjs/theme/builtin/common-mobile/component/legend/size-legend.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/component/map-label.d.ts +2 -0
- package/cjs/theme/builtin/common-mobile/component/map-label.js +39 -0
- package/cjs/theme/builtin/common-mobile/component/map-label.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/component/mark-area.d.ts +2 -0
- package/cjs/theme/builtin/common-mobile/component/mark-area.js +24 -0
- package/cjs/theme/builtin/common-mobile/component/mark-area.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/component/mark-line.d.ts +2 -0
- package/cjs/theme/builtin/common-mobile/component/mark-line.js +33 -0
- package/cjs/theme/builtin/common-mobile/component/mark-line.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/component/mark-point.d.ts +2 -0
- package/cjs/theme/builtin/common-mobile/component/mark-point.js +19 -0
- package/cjs/theme/builtin/common-mobile/component/mark-point.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/component/player.d.ts +2 -0
- package/cjs/theme/builtin/common-mobile/component/player.js +51 -0
- package/cjs/theme/builtin/common-mobile/component/player.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/component/poptip.d.ts +2 -0
- package/cjs/theme/builtin/common-mobile/component/poptip.js +25 -0
- package/cjs/theme/builtin/common-mobile/component/poptip.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/component/title.d.ts +2 -0
- package/cjs/theme/builtin/common-mobile/component/title.js +23 -0
- package/cjs/theme/builtin/common-mobile/component/title.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/component/tooltip.d.ts +2 -0
- package/cjs/theme/builtin/common-mobile/component/tooltip.js +43 -0
- package/cjs/theme/builtin/common-mobile/component/tooltip.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/component/total-label.d.ts +2 -0
- package/cjs/theme/builtin/common-mobile/component/total-label.js +16 -0
- package/cjs/theme/builtin/common-mobile/component/total-label.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/constants.d.ts +2 -0
- package/cjs/theme/builtin/common-mobile/constants.js +23 -0
- package/cjs/theme/builtin/common-mobile/constants.js.map +1 -0
- package/cjs/theme/builtin/common-mobile/mark.d.ts +3 -0
- package/cjs/theme/builtin/common-mobile/mark.js +35 -0
- package/cjs/theme/builtin/common-mobile/mark.js.map +1 -0
- package/cjs/theme/builtin/dark/color-scheme.js +20 -11
- package/cjs/theme/builtin/dark/color-scheme.js.map +1 -1
- package/cjs/theme/builtin/dark-mobile/index.d.ts +2 -0
- package/cjs/theme/builtin/dark-mobile/index.js +18 -0
- package/cjs/theme/builtin/dark-mobile/index.js.map +1 -0
- package/cjs/theme/builtin/index.d.ts +2 -4
- package/cjs/theme/builtin/index.js +17 -20
- package/cjs/theme/builtin/index.js.map +1 -1
- package/cjs/theme/builtin/light/color-scheme.js +19 -10
- package/cjs/theme/builtin/light/color-scheme.js.map +1 -1
- package/cjs/theme/builtin/light-mobile/index.d.ts +2 -0
- package/cjs/theme/builtin/light-mobile/index.js +18 -0
- package/cjs/theme/builtin/light-mobile/index.js.map +1 -0
- package/cjs/theme/color-scheme/builtin/interface.d.ts +16 -7
- package/cjs/theme/color-scheme/builtin/interface.js.map +1 -1
- package/cjs/theme/color-scheme/legacy.js +18 -2
- package/cjs/theme/color-scheme/legacy.js.map +1 -1
- package/cjs/theme/color-scheme/util.js +2 -2
- package/cjs/theme/color-scheme/util.js.map +1 -1
- package/cjs/theme/interface.d.ts +1 -2
- package/cjs/theme/interface.js.map +1 -1
- package/cjs/theme/theme-manager.d.ts +1 -1
- package/cjs/theme/theme-manager.js +2 -2
- package/cjs/theme/theme-manager.js.map +1 -1
- package/cjs/typings/index.d.ts +1 -0
- package/cjs/typings/index.js +2 -1
- package/cjs/typings/index.js.map +1 -1
- package/cjs/typings/layout.d.ts +23 -0
- package/cjs/typings/layout.js +6 -0
- package/cjs/typings/layout.js.map +1 -0
- package/cjs/typings/spec/common.d.ts +2 -4
- package/cjs/typings/spec/common.js.map +1 -1
- package/cjs/typings/visual.d.ts +1 -1
- package/cjs/typings/visual.js.map +1 -1
- package/cjs/util/space.d.ts +1 -1
- package/cjs/util/space.js.map +1 -1
- package/cjs/util/spec/background.js +8 -14
- package/cjs/util/spec/background.js.map +1 -1
- package/cjs/util/spec/common.d.ts +1 -1
- package/cjs/util/spec/common.js +2 -2
- package/cjs/util/spec/common.js.map +1 -1
- package/cjs/util/spec/preprocess.d.ts +1 -1
- package/cjs/util/spec/preprocess.js +7 -17
- package/cjs/util/spec/preprocess.js.map +1 -1
- package/cjs/util/spec/transform.d.ts +2 -0
- package/cjs/util/spec/transform.js +18 -2
- package/cjs/util/spec/transform.js.map +1 -1
- package/cjs/vchart-all.js +2 -3
- package/cjs/vchart-all.js.map +1 -1
- package/cjs/vchart-simple.d.ts +1 -0
- package/cjs/vchart-simple.js +4 -4
- package/cjs/vchart-simple.js.map +1 -1
- package/esm/animation/utils.d.ts +2 -2
- package/esm/chart/area/area.js +2 -1
- package/esm/chart/area/area.js.map +1 -1
- package/esm/chart/base-chart.d.ts +13 -16
- package/esm/chart/base-chart.js +66 -67
- package/esm/chart/base-chart.js.map +1 -1
- package/esm/chart/interface/chart.d.ts +4 -6
- package/esm/chart/interface/chart.js.map +1 -1
- package/esm/chart/line/line.js +2 -1
- package/esm/chart/line/line.js.map +1 -1
- package/esm/chart/sequence/sequence.d.ts +1 -1
- package/esm/chart/sequence/sequence.js +1 -1
- package/esm/chart/sequence/sequence.js.map +1 -1
- package/esm/compile/compiler.js +1 -2
- package/esm/compile/grammar-item.js +2 -1
- package/esm/compile/mark/compilable-mark.d.ts +10 -6
- package/esm/compile/mark/compilable-mark.js +23 -12
- package/esm/compile/mark/compilable-mark.js.map +1 -1
- package/esm/compile/mark/interface.d.ts +6 -4
- package/esm/compile/mark/interface.js.map +1 -1
- package/esm/compile/mark/util.d.ts +1 -3
- package/esm/compile/mark/util.js +0 -34
- package/esm/compile/mark/util.js.map +1 -1
- package/esm/component/axis/base-axis.d.ts +2 -4
- package/esm/component/axis/base-axis.js +19 -36
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/axis/cartesian/axis.d.ts +12 -22
- package/esm/component/axis/cartesian/axis.js +49 -63
- package/esm/component/axis/cartesian/axis.js.map +1 -1
- package/esm/component/axis/cartesian/band-axis.d.ts +0 -7
- package/esm/component/axis/cartesian/band-axis.js +0 -1
- package/esm/component/axis/cartesian/band-axis.js.map +1 -1
- package/esm/component/axis/cartesian/interface/common.d.ts +0 -6
- package/esm/component/axis/cartesian/interface/common.js.map +1 -1
- package/esm/component/axis/cartesian/interface/theme.d.ts +1 -1
- package/esm/component/axis/cartesian/interface/theme.js.map +1 -1
- package/esm/component/axis/interface/common.d.ts +0 -1
- package/esm/component/axis/interface/common.js.map +1 -1
- package/esm/component/axis/interface/spec.js.map +1 -1
- package/esm/component/axis/mixin/band-axis-mixin.d.ts +0 -1
- package/esm/component/axis/mixin/band-axis-mixin.js +2 -2
- package/esm/component/axis/mixin/band-axis-mixin.js.map +1 -1
- package/esm/component/axis/mixin/linear-axis-mixin.d.ts +0 -1
- package/esm/component/axis/mixin/linear-axis-mixin.js +4 -3
- package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/esm/component/axis/polar/axis.d.ts +3 -4
- package/esm/component/axis/polar/axis.js +12 -14
- package/esm/component/axis/polar/axis.js.map +1 -1
- package/esm/component/base/base-component.d.ts +12 -4
- package/esm/component/base/base-component.js +22 -14
- package/esm/component/base/base-component.js.map +1 -1
- package/esm/component/base/util.js +7 -3
- package/esm/component/base/util.js.map +1 -1
- package/esm/component/brush/brush.d.ts +2 -4
- package/esm/component/brush/brush.js +4 -6
- package/esm/component/brush/brush.js.map +1 -1
- package/esm/component/crosshair/base.d.ts +3 -4
- package/esm/component/crosshair/base.js +1 -1
- package/esm/component/crosshair/base.js.map +1 -1
- package/esm/component/crosshair/cartesian.d.ts +2 -0
- package/esm/component/crosshair/cartesian.js +5 -8
- package/esm/component/crosshair/cartesian.js.map +1 -1
- package/esm/component/crosshair/interface/spec.d.ts +1 -1
- package/esm/component/crosshair/interface/spec.js.map +1 -1
- package/esm/component/crosshair/polar.d.ts +2 -0
- package/esm/component/crosshair/polar.js +5 -8
- package/esm/component/crosshair/polar.js.map +1 -1
- package/esm/component/custom-mark/custom-mark.d.ts +2 -3
- package/esm/component/custom-mark/custom-mark.js +2 -3
- package/esm/component/custom-mark/custom-mark.js.map +1 -1
- package/esm/component/data-zoom/data-filter-base-component.d.ts +8 -8
- package/esm/component/data-zoom/data-filter-base-component.js +60 -37
- package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +4 -2
- package/esm/component/data-zoom/data-zoom/data-zoom.js +47 -44
- package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/esm/component/data-zoom/data-zoom/interface.d.ts +6 -1
- package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
- package/esm/component/data-zoom/scroll-bar/interface.d.ts +6 -2
- package/esm/component/data-zoom/scroll-bar/interface.js.map +1 -1
- package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +3 -0
- package/esm/component/data-zoom/scroll-bar/scroll-bar.js +24 -23
- package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
- package/esm/component/data-zoom/util.d.ts +4 -0
- package/esm/component/data-zoom/util.js +13 -1
- package/esm/component/data-zoom/util.js.map +1 -1
- package/esm/component/geo/geo-coordinate.d.ts +3 -2
- package/esm/component/geo/geo-coordinate.js +3 -1
- package/esm/component/geo/geo-coordinate.js.map +1 -1
- package/esm/component/index.d.ts +3 -2
- package/esm/component/index.js.map +1 -1
- package/esm/component/indicator/indicator.d.ts +1 -3
- package/esm/component/indicator/indicator.js +4 -5
- package/esm/component/indicator/indicator.js.map +1 -1
- package/esm/component/indicator/interface.d.ts +1 -1
- package/esm/component/indicator/interface.js.map +1 -1
- package/esm/component/interface/common.d.ts +3 -3
- package/esm/component/interface/common.js.map +1 -1
- package/esm/component/interface/theme.d.ts +2 -1
- package/esm/component/interface/theme.js.map +1 -1
- package/esm/component/label/base-label.d.ts +2 -4
- package/esm/component/label/base-label.js +1 -3
- package/esm/component/label/base-label.js.map +1 -1
- package/esm/component/label/interface.d.ts +4 -0
- package/esm/component/label/interface.js.map +1 -1
- package/esm/component/label/label.d.ts +5 -7
- package/esm/component/label/label.js +16 -11
- package/esm/component/label/label.js.map +1 -1
- package/esm/component/label/totalLabel.d.ts +1 -3
- package/esm/component/label/totalLabel.js +4 -4
- package/esm/component/label/totalLabel.js.map +1 -1
- package/esm/component/label/util.d.ts +9 -2
- package/esm/component/label/util.js +17 -3
- package/esm/component/label/util.js.map +1 -1
- package/esm/component/legend/base-legend.d.ts +6 -9
- package/esm/component/legend/base-legend.js +3 -9
- package/esm/component/legend/base-legend.js.map +1 -1
- package/esm/component/legend/continuous/legend.d.ts +4 -1
- package/esm/component/legend/continuous/legend.js +6 -7
- package/esm/component/legend/continuous/legend.js.map +1 -1
- package/esm/component/legend/discrete/legend.d.ts +4 -1
- package/esm/component/legend/discrete/legend.js +6 -7
- package/esm/component/legend/discrete/legend.js.map +1 -1
- package/esm/component/legend/discrete/util.d.ts +1 -1
- package/esm/component/legend/discrete/util.js.map +1 -1
- package/esm/component/legend/util.d.ts +2 -2
- package/esm/component/map-label/component.d.ts +1 -3
- package/esm/component/map-label/component.js +2 -2
- package/esm/component/map-label/component.js.map +1 -1
- package/esm/component/marker/base-marker.d.ts +7 -3
- package/esm/component/marker/base-marker.js +41 -18
- package/esm/component/marker/base-marker.js.map +1 -1
- package/esm/component/marker/interface.d.ts +15 -4
- package/esm/component/marker/interface.js.map +1 -1
- package/esm/component/marker/mark-area/interface/spec.d.ts +1 -1
- package/esm/component/marker/mark-area/interface/spec.js.map +1 -1
- package/esm/component/marker/mark-area/mark-area.d.ts +1 -3
- package/esm/component/marker/mark-area/mark-area.js +29 -18
- package/esm/component/marker/mark-area/mark-area.js.map +1 -1
- package/esm/component/marker/mark-line/interface/spec.d.ts +3 -4
- package/esm/component/marker/mark-line/interface/spec.js.map +1 -1
- package/esm/component/marker/mark-line/mark-line.d.ts +1 -3
- package/esm/component/marker/mark-line/mark-line.js +36 -18
- package/esm/component/marker/mark-line/mark-line.js.map +1 -1
- package/esm/component/marker/mark-line/util.d.ts +3 -3
- package/esm/component/marker/mark-line/util.js.map +1 -1
- package/esm/component/marker/mark-point/interface/spec.d.ts +5 -4
- package/esm/component/marker/mark-point/interface/spec.js.map +1 -1
- package/esm/component/marker/mark-point/interface/theme.d.ts +5 -5
- package/esm/component/marker/mark-point/interface/theme.js.map +1 -1
- package/esm/component/marker/mark-point/mark-point.d.ts +1 -3
- package/esm/component/marker/mark-point/mark-point.js +17 -12
- package/esm/component/marker/mark-point/mark-point.js.map +1 -1
- package/esm/component/marker/utils.d.ts +3 -4
- package/esm/component/marker/utils.js +43 -23
- package/esm/component/marker/utils.js.map +1 -1
- package/esm/component/player/interface/theme.d.ts +1 -1
- package/esm/component/player/interface/theme.js.map +1 -1
- package/esm/component/player/player.d.ts +6 -7
- package/esm/component/player/player.js +4 -7
- package/esm/component/player/player.js.map +1 -1
- package/esm/component/title/interface/theme.d.ts +1 -1
- package/esm/component/title/interface/theme.js.map +1 -1
- package/esm/component/title/title.d.ts +6 -9
- package/esm/component/title/title.js +12 -22
- package/esm/component/title/title.js.map +1 -1
- package/esm/component/tooltip/handler/base.js +5 -7
- package/esm/component/tooltip/handler/base.js.map +1 -1
- package/esm/component/tooltip/handler/dom/util.js +3 -1
- package/esm/component/tooltip/handler/dom/util.js.map +1 -1
- package/esm/component/tooltip/handler/utils/attribute.d.ts +3 -3
- package/esm/component/tooltip/handler/utils/attribute.js.map +1 -1
- package/esm/component/tooltip/handler/utils/common.js.map +1 -1
- package/esm/component/tooltip/interface/spec.d.ts +1 -1
- package/esm/component/tooltip/interface/spec.js.map +1 -1
- package/esm/component/tooltip/interface/theme.d.ts +10 -11
- package/esm/component/tooltip/interface/theme.js.map +1 -1
- package/esm/component/tooltip/tooltip.d.ts +3 -2
- package/esm/component/tooltip/tooltip.js +7 -10
- package/esm/component/tooltip/tooltip.js.map +1 -1
- package/esm/component/util.d.ts +1 -3
- package/esm/component/util.js +2 -2
- package/esm/component/util.js.map +1 -1
- package/esm/constant/index.js +2 -1
- package/esm/constant/layout.d.ts +1 -0
- package/esm/constant/layout.js +2 -0
- package/esm/constant/layout.js.map +1 -1
- package/esm/constant/scatter.js +1 -2
- package/esm/core/expression-function.d.ts +12 -0
- package/esm/core/expression-function.js +22 -0
- package/esm/core/expression-function.js.map +1 -0
- package/esm/core/factory.d.ts +5 -2
- package/esm/core/factory.js +6 -3
- package/esm/core/factory.js.map +1 -1
- package/esm/core/index.d.ts +2 -1
- package/esm/core/index.js +3 -1
- package/esm/core/index.js.map +1 -1
- package/esm/core/interface.d.ts +5 -0
- package/esm/core/interface.js.map +1 -1
- package/esm/core/vchart.d.ts +9 -1
- package/esm/core/vchart.js +62 -41
- package/esm/core/vchart.js.map +1 -1
- package/esm/data/initialize.js +7 -7
- package/esm/data/initialize.js.map +1 -1
- package/esm/data/transforms/aggregation.d.ts +4 -3
- package/esm/data/transforms/aggregation.js +6 -6
- package/esm/data/transforms/aggregation.js.map +1 -1
- package/esm/data/transforms/dimension-statistics.js +14 -4
- package/esm/data/transforms/dimension-statistics.js.map +1 -1
- package/esm/event/bubble.js +1 -2
- package/esm/event/event.js +2 -1
- package/esm/event/events/base.d.ts +16 -0
- package/esm/event/events/base.js +15 -0
- package/esm/event/events/base.js.map +1 -0
- package/esm/event/events/dimension/util/cartesian.d.ts +1 -1
- package/esm/event/events/dimension/util/cartesian.js.map +1 -1
- package/esm/event/events/dimension/util/common.d.ts +1 -2
- package/esm/event/events/dimension/util/common.js +1 -1
- package/esm/event/events/dimension/util/common.js.map +1 -1
- package/esm/event/events/dimension/util/polar.d.ts +1 -1
- package/esm/event/events/dimension/util/polar.js.map +1 -1
- package/esm/event/interface.d.ts +2 -2
- package/esm/event/interface.js.map +1 -1
- package/esm/index-wx-simple.d.ts +4 -0
- package/esm/index-wx-simple.js +35 -0
- package/esm/index-wx-simple.js.map +1 -0
- package/esm/interaction/trigger.js +1 -1
- package/esm/interaction/zoom/zoomable.d.ts +1 -0
- package/esm/interaction/zoom/zoomable.js +6 -5
- package/esm/interaction/zoom/zoomable.js.map +1 -1
- package/esm/layout/base-layout.d.ts +3 -5
- package/esm/layout/base-layout.js +9 -9
- package/esm/layout/base-layout.js.map +1 -1
- package/esm/layout/grid-layout/grid-layout.d.ts +1 -2
- package/esm/layout/grid-layout/grid-layout.js +6 -4
- package/esm/layout/grid-layout/grid-layout.js.map +1 -1
- package/esm/layout/interface.d.ts +74 -6
- package/esm/layout/interface.js.map +1 -1
- package/esm/{model → layout}/layout-item.d.ts +35 -23
- package/esm/{model → layout}/layout-item.js +93 -63
- package/esm/layout/layout-item.js.map +1 -0
- package/esm/layout/layout3d/index.d.ts +2 -4
- package/esm/layout/layout3d/index.js +5 -5
- package/esm/layout/layout3d/index.js.map +1 -1
- package/esm/layout/util.d.ts +1 -1
- package/esm/layout/util.js.map +1 -1
- package/esm/mark/arc.js +2 -2
- package/esm/mark/arc.js.map +1 -1
- package/esm/mark/base/base-mark.d.ts +2 -2
- package/esm/mark/base/base-mark.js +59 -38
- package/esm/mark/base/base-mark.js.map +1 -1
- package/esm/mark/label.js +1 -4
- package/esm/mark/label.js.map +1 -1
- package/esm/model/base-model.d.ts +10 -8
- package/esm/model/base-model.js +27 -35
- package/esm/model/base-model.js.map +1 -1
- package/esm/model/interface.d.ts +21 -89
- package/esm/model/interface.js.map +1 -1
- package/esm/model/layout-model.d.ts +41 -0
- package/esm/model/layout-model.js +80 -0
- package/esm/model/layout-model.js.map +1 -0
- package/esm/region/interface.d.ts +3 -2
- package/esm/region/interface.js.map +1 -1
- package/esm/region/region.d.ts +12 -7
- package/esm/region/region.js +19 -11
- package/esm/region/region.js.map +1 -1
- package/esm/series/area/area.d.ts +1 -1
- package/esm/series/area/area.js +5 -6
- package/esm/series/area/area.js.map +1 -1
- package/esm/series/area/interface.d.ts +4 -0
- package/esm/series/area/interface.js.map +1 -1
- package/esm/series/bar/bar.js +1 -5
- package/esm/series/bar/bar.js.map +1 -1
- package/esm/series/base/base-series.d.ts +14 -4
- package/esm/series/base/base-series.js +38 -16
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/cartesian/cartesian.d.ts +3 -0
- package/esm/series/cartesian/cartesian.js +16 -4
- package/esm/series/cartesian/cartesian.js.map +1 -1
- package/esm/series/correlation/correlation.js +2 -8
- package/esm/series/correlation/correlation.js.map +1 -1
- package/esm/series/funnel/funnel-3d.js +1 -1
- package/esm/series/funnel/funnel-3d.js.map +1 -1
- package/esm/series/funnel/funnel.js +3 -7
- package/esm/series/funnel/funnel.js.map +1 -1
- package/esm/series/funnel/interface.d.ts +1 -2
- package/esm/series/funnel/interface.js.map +1 -1
- package/esm/series/gauge/gauge.d.ts +0 -1
- package/esm/series/gauge/gauge.js +2 -9
- package/esm/series/gauge/gauge.js.map +1 -1
- package/esm/series/heatmap/heatmap.js +1 -5
- package/esm/series/heatmap/heatmap.js.map +1 -1
- package/esm/series/index.d.ts +2 -2
- package/esm/series/index.js.map +1 -1
- package/esm/series/interface/common.d.ts +2 -2
- package/esm/series/interface/common.js.map +1 -1
- package/esm/series/interface/series.d.ts +4 -2
- package/esm/series/interface/series.js.map +1 -1
- package/esm/series/interface/type.d.ts +3 -1
- package/esm/series/interface/type.js +2 -1
- package/esm/series/interface/type.js.map +1 -1
- package/esm/series/line/interface.d.ts +4 -0
- package/esm/series/line/interface.js.map +1 -1
- package/esm/series/line/line.d.ts +1 -1
- package/esm/series/line/line.js.map +1 -1
- package/esm/series/map/map.js +1 -5
- package/esm/series/map/map.js.map +1 -1
- package/esm/series/mixin/line-mixin.d.ts +5 -2
- package/esm/series/mixin/line-mixin.js +15 -10
- package/esm/series/mixin/line-mixin.js.map +1 -1
- package/esm/series/pie/pie.js +1 -4
- package/esm/series/pie/pie.js.map +1 -1
- package/esm/series/polar/progress-like/progress-like.js +3 -4
- package/esm/series/polar/progress-like/progress-like.js.map +1 -1
- package/esm/series/radar/animation.js.map +1 -1
- package/esm/series/range-column/range-column.js +1 -3
- package/esm/series/range-column/range-column.js.map +1 -1
- package/esm/series/rose/rose.d.ts +2 -1
- package/esm/series/rose/rose.js +1 -5
- package/esm/series/rose/rose.js.map +1 -1
- package/esm/series/scatter/scatter.js +1 -5
- package/esm/series/scatter/scatter.js.map +1 -1
- package/esm/series/waterfall/waterfall.js +1 -1
- package/esm/series/waterfall/waterfall.js.map +1 -1
- package/esm/series/word-cloud/base.d.ts +1 -0
- package/esm/series/word-cloud/base.js +33 -33
- package/esm/series/word-cloud/base.js.map +1 -1
- package/esm/series/word-cloud/word-cloud-3d.js +32 -32
- package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
- package/esm/theme/builtin/common/component/axis/cartesian-axis.js +2 -2
- package/esm/theme/builtin/common/component/axis/cartesian-axis.js.map +1 -1
- package/esm/theme/builtin/common/component/axis/common-axis.js +1 -1
- package/esm/theme/builtin/common/component/axis/common-axis.js.map +1 -1
- package/esm/theme/builtin/common/component/crosshair.js +5 -5
- package/esm/theme/builtin/common/component/crosshair.js.map +1 -1
- package/esm/theme/builtin/common/component/data-zoom.js +10 -10
- package/esm/theme/builtin/common/component/data-zoom.js.map +1 -1
- package/esm/theme/builtin/common/component/indicator.js +1 -1
- package/esm/theme/builtin/common/component/indicator.js.map +1 -1
- package/esm/theme/builtin/common/component/legend/color-legend.js +3 -4
- package/esm/theme/builtin/common/component/legend/color-legend.js.map +1 -1
- package/esm/theme/builtin/common/component/legend/discrete-legend.js +2 -2
- package/esm/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
- package/esm/theme/builtin/common/component/legend/size-legend.js +6 -6
- package/esm/theme/builtin/common/component/legend/size-legend.js.map +1 -1
- package/esm/theme/builtin/common/component/map-label.js.map +1 -1
- package/esm/theme/builtin/common/component/mark-area.js.map +1 -1
- package/esm/theme/builtin/common/component/mark-line.js +9 -9
- package/esm/theme/builtin/common/component/mark-line.js.map +1 -1
- package/esm/theme/builtin/common/component/mark-point.js +15 -3
- package/esm/theme/builtin/common/component/mark-point.js.map +1 -1
- package/esm/theme/builtin/common/component/player.js +7 -7
- package/esm/theme/builtin/common/component/player.js.map +1 -1
- package/esm/theme/builtin/common/component/poptip.js +3 -4
- package/esm/theme/builtin/common/component/poptip.js.map +1 -1
- package/esm/theme/builtin/common/component/scroll-bar.js +20 -7
- package/esm/theme/builtin/common/component/scroll-bar.js.map +1 -1
- package/esm/theme/builtin/common/component/title.js +1 -1
- package/esm/theme/builtin/common/component/title.js.map +1 -1
- package/esm/theme/builtin/common/component/tooltip.d.ts +2 -1
- package/esm/theme/builtin/common/component/tooltip.js +3 -4
- package/esm/theme/builtin/common/component/tooltip.js.map +1 -1
- package/esm/theme/builtin/common/component/total-label.js.map +1 -1
- package/esm/theme/builtin/common/mark.js.map +1 -1
- package/esm/theme/builtin/common/series/rangeColumn.js +1 -1
- package/esm/theme/builtin/common/series/rangeColumn.js.map +1 -1
- package/esm/theme/builtin/common-mobile/component/axis/band-axis.d.ts +2 -0
- package/esm/theme/builtin/common-mobile/component/axis/band-axis.js +18 -0
- package/esm/theme/builtin/common-mobile/component/axis/band-axis.js.map +1 -0
- package/esm/theme/builtin/common-mobile/component/axis/cartesian-axis.d.ts +3 -0
- package/esm/theme/builtin/common-mobile/component/axis/cartesian-axis.js +32 -0
- package/esm/theme/builtin/common-mobile/component/axis/cartesian-axis.js.map +1 -0
- package/esm/theme/builtin/common-mobile/component/axis/common-axis.d.ts +2 -0
- package/esm/theme/builtin/common-mobile/component/axis/common-axis.js +36 -0
- package/esm/theme/builtin/common-mobile/component/axis/common-axis.js.map +1 -0
- package/esm/theme/builtin/common-mobile/component/axis/linear-axis.d.ts +2 -0
- package/esm/theme/builtin/common-mobile/component/axis/linear-axis.js +18 -0
- package/esm/theme/builtin/common-mobile/component/axis/linear-axis.js.map +1 -0
- package/esm/theme/builtin/common-mobile/component/axis/polar-axis.d.ts +3 -0
- package/esm/theme/builtin/common-mobile/component/axis/polar-axis.js +23 -0
- package/esm/theme/builtin/common-mobile/component/axis/polar-axis.js.map +1 -0
- package/esm/theme/builtin/common-mobile/component/crosshair.d.ts +2 -0
- package/esm/theme/builtin/common-mobile/component/crosshair.js +35 -0
- package/esm/theme/builtin/common-mobile/component/crosshair.js.map +1 -0
- package/esm/theme/builtin/common-mobile/component/data-zoom.d.ts +2 -0
- package/esm/theme/builtin/common-mobile/component/data-zoom.js +34 -0
- package/esm/theme/builtin/common-mobile/component/data-zoom.js.map +1 -0
- package/esm/theme/builtin/common-mobile/component/index.d.ts +2 -0
- package/esm/theme/builtin/common-mobile/component/index.js +65 -0
- package/esm/theme/builtin/common-mobile/component/index.js.map +1 -0
- package/esm/theme/builtin/common-mobile/component/indicator.d.ts +2 -0
- package/esm/theme/builtin/common-mobile/component/indicator.js +17 -0
- package/esm/theme/builtin/common-mobile/component/indicator.js.map +1 -0
- package/esm/theme/builtin/common-mobile/component/legend/color-legend.d.ts +2 -0
- package/esm/theme/builtin/common-mobile/component/legend/color-legend.js +17 -0
- package/esm/theme/builtin/common-mobile/component/legend/color-legend.js.map +1 -0
- package/esm/theme/builtin/common-mobile/component/legend/continuous.d.ts +2 -0
- package/esm/theme/builtin/common-mobile/component/legend/continuous.js +38 -0
- package/esm/theme/builtin/common-mobile/component/legend/continuous.js.map +1 -0
- package/esm/theme/builtin/common-mobile/component/legend/discrete-legend.d.ts +2 -0
- package/esm/theme/builtin/common-mobile/component/legend/discrete-legend.js +33 -0
- package/esm/theme/builtin/common-mobile/component/legend/discrete-legend.js.map +1 -0
- package/esm/theme/builtin/common-mobile/component/legend/size-legend.d.ts +2 -0
- package/esm/theme/builtin/common-mobile/component/legend/size-legend.js +17 -0
- package/esm/theme/builtin/common-mobile/component/legend/size-legend.js.map +1 -0
- package/esm/theme/builtin/common-mobile/component/map-label.d.ts +2 -0
- package/esm/theme/builtin/common-mobile/component/map-label.js +33 -0
- package/esm/theme/builtin/common-mobile/component/map-label.js.map +1 -0
- package/esm/theme/builtin/common-mobile/component/mark-area.d.ts +2 -0
- package/esm/theme/builtin/common-mobile/component/mark-area.js +18 -0
- package/esm/theme/builtin/common-mobile/component/mark-area.js.map +1 -0
- package/esm/theme/builtin/common-mobile/component/mark-line.d.ts +2 -0
- package/esm/theme/builtin/common-mobile/component/mark-line.js +27 -0
- package/esm/theme/builtin/common-mobile/component/mark-line.js.map +1 -0
- package/esm/theme/builtin/common-mobile/component/mark-point.d.ts +2 -0
- package/esm/theme/builtin/common-mobile/component/mark-point.js +15 -0
- package/esm/theme/builtin/common-mobile/component/mark-point.js.map +1 -0
- package/esm/theme/builtin/common-mobile/component/player.d.ts +2 -0
- package/esm/theme/builtin/common-mobile/component/player.js +47 -0
- package/esm/theme/builtin/common-mobile/component/player.js.map +1 -0
- package/esm/theme/builtin/common-mobile/component/poptip.d.ts +2 -0
- package/esm/theme/builtin/common-mobile/component/poptip.js +19 -0
- package/esm/theme/builtin/common-mobile/component/poptip.js.map +1 -0
- package/esm/theme/builtin/common-mobile/component/title.d.ts +2 -0
- package/esm/theme/builtin/common-mobile/component/title.js +17 -0
- package/esm/theme/builtin/common-mobile/component/title.js.map +1 -0
- package/esm/theme/builtin/common-mobile/component/tooltip.d.ts +2 -0
- package/esm/theme/builtin/common-mobile/component/tooltip.js +37 -0
- package/esm/theme/builtin/common-mobile/component/tooltip.js.map +1 -0
- package/esm/theme/builtin/common-mobile/component/total-label.d.ts +2 -0
- package/esm/theme/builtin/common-mobile/component/total-label.js +10 -0
- package/esm/theme/builtin/common-mobile/component/total-label.js.map +1 -0
- package/esm/theme/builtin/common-mobile/constants.d.ts +2 -0
- package/esm/theme/builtin/common-mobile/constants.js +19 -0
- package/esm/theme/builtin/common-mobile/constants.js.map +1 -0
- package/esm/theme/builtin/common-mobile/mark.d.ts +3 -0
- package/esm/theme/builtin/common-mobile/mark.js +31 -0
- package/esm/theme/builtin/common-mobile/mark.js.map +1 -0
- package/esm/theme/builtin/dark/color-scheme.js +20 -11
- package/esm/theme/builtin/dark/color-scheme.js.map +1 -1
- package/esm/theme/builtin/dark-mobile/index.d.ts +2 -0
- package/esm/theme/builtin/dark-mobile/index.js +16 -0
- package/esm/theme/builtin/dark-mobile/index.js.map +1 -0
- package/esm/theme/builtin/index.d.ts +2 -4
- package/esm/theme/builtin/index.js +16 -23
- package/esm/theme/builtin/index.js.map +1 -1
- package/esm/theme/builtin/light/color-scheme.js +19 -10
- package/esm/theme/builtin/light/color-scheme.js.map +1 -1
- package/esm/theme/builtin/light-mobile/index.d.ts +2 -0
- package/esm/theme/builtin/light-mobile/index.js +16 -0
- package/esm/theme/builtin/light-mobile/index.js.map +1 -0
- package/esm/theme/color-scheme/builtin/interface.d.ts +16 -7
- package/esm/theme/color-scheme/builtin/interface.js.map +1 -1
- package/esm/theme/color-scheme/legacy.js +18 -2
- package/esm/theme/color-scheme/legacy.js.map +1 -1
- package/esm/theme/color-scheme/util.js +2 -2
- package/esm/theme/color-scheme/util.js.map +1 -1
- package/esm/theme/interface.d.ts +1 -2
- package/esm/theme/interface.js.map +1 -1
- package/esm/theme/theme-manager.d.ts +1 -1
- package/esm/theme/theme-manager.js +2 -2
- package/esm/theme/theme-manager.js.map +1 -1
- package/esm/typings/index.d.ts +1 -0
- package/esm/typings/index.js +2 -0
- package/esm/typings/index.js.map +1 -1
- package/esm/typings/layout.d.ts +23 -0
- package/esm/typings/layout.js +2 -0
- package/esm/typings/layout.js.map +1 -0
- package/esm/typings/spec/common.d.ts +2 -4
- package/esm/typings/spec/common.js.map +1 -1
- package/esm/typings/visual.d.ts +1 -1
- package/esm/typings/visual.js.map +1 -1
- package/esm/util/space.d.ts +1 -1
- package/esm/util/space.js.map +1 -1
- package/esm/util/spec/background.js +3 -11
- package/esm/util/spec/background.js.map +1 -1
- package/esm/util/spec/common.d.ts +1 -1
- package/esm/util/spec/common.js +2 -2
- package/esm/util/spec/common.js.map +1 -1
- package/esm/util/spec/preprocess.d.ts +1 -1
- package/esm/util/spec/preprocess.js +5 -18
- package/esm/util/spec/preprocess.js.map +1 -1
- package/esm/util/spec/transform.d.ts +2 -0
- package/esm/util/spec/transform.js +17 -1
- package/esm/util/spec/transform.js.map +1 -1
- package/esm/vchart-all.js +1 -4
- package/esm/vchart-all.js.map +1 -1
- package/esm/vchart-simple.d.ts +1 -0
- package/esm/vchart-simple.js +15 -14
- package/esm/vchart-simple.js.map +1 -1
- package/package.json +18 -19
- package/cjs/model/layout-item.js.map +0 -1
- package/cjs/theme/util.d.ts +0 -5
- package/cjs/theme/util.js +0 -35
- package/cjs/theme/util.js.map +0 -1
- package/esm/model/layout-item.js.map +0 -1
- package/esm/theme/util.d.ts +0 -5
- package/esm/theme/util.js +0 -37
- package/esm/theme/util.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/base/util.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"sources":["../src/component/base/util.ts"],"names":[],"mappings":";;;AACA,0DAA0D;AAC1D,uCAAwE;AACxE,4CAAuF;AACvF,4CAAuD;AACvD,4CAAsD;AACtD,yCAA2C;AAC3C,kCAAsD;AAEtD,SAAgB,gCAAgC,CAC9C,IAAuB,EACvB,MAA6B,EAC7B,aAAkB;;IAElB,MAAM,KAAK,GAAG,MAAA,MAAM,CAAC,QAAQ,sDAAI,CAAC;IAClC,QAAQ,IAAI,EAAE;QACZ,KAAK,wBAAiB,CAAC,iBAAiB;YACtC,OAAO,IAAA,4BAAqB,EAAC,IAAA,kBAAS,EAAC,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACzE,KAAK,wBAAiB,CAAC,mBAAmB;YACxC,OAAO,IAAA,4BAAqB,EAAC,IAAA,kBAAS,EAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3E,KAAK,wBAAiB,CAAC,gBAAgB;YACrC,OAAO,IAAA,4BAAqB,EAAC,IAAA,kBAAS,EAAC,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACxE,KAAK,wBAAiB,CAAC,mBAAmB;YACxC,OAAO,IAAA,4BAAqB,EAAC,IAAA,kBAAS,EAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC3E,KAAK,wBAAiB,CAAC,aAAa,CAAC;QACrC,KAAK,wBAAiB,CAAC,iBAAiB;YACtC,OAAO,IAAA,4BAAqB,EAAC,IAAA,kBAAS,EAAC,aAAa,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAC5E,KAAK,wBAAiB,CAAC,aAAa;YAClC,OAAO,IAAA,wBAAiB,EAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACjE,KAAK,wBAAiB,CAAC,eAAe;YACpC,OAAO,IAAA,wBAAiB,EAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACnE,KAAK,wBAAiB,CAAC,SAAS;YAC9B,OAAO,IAAA,wBAAiB,EAAC,aAAa,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACpE,KAAK,wBAAiB,CAAC,kBAAkB;YACvC,OAAO,IAAA,iCAA0B,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACnD,KAAK,wBAAiB,CAAC,cAAc;YACnC,OAAO,IAAA,6BAAsB,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC/C,KAAK,wBAAiB,CAAC,WAAW,CAAC;QACnC,KAAK,wBAAiB,CAAC,UAAU;YAC/B,OAAO,IAAA,kCAA2B,EAAC,GAAG,IAAI,IAAI,IAAA,gBAAS,EAAC,aAAa,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACpF,KAAK,wBAAiB,CAAC,QAAQ,CAAC;QAChC,KAAK,wBAAiB,CAAC,SAAS;YAC9B,OAAO,IAAA,yBAAkB,EAAC,IAAA,kBAAS,EAAC,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACpE;YACE,OAAO,IAAA,kCAA2B,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KACpD;AACH,CAAC;AArCD,4EAqCC","file":"util.js","sourcesContent":["import type { IModelOption } from '../../model/interface';\nimport { getOrient } from '../axis/cartesian/util/common';\nimport { getCartesianAxisTheme, getPolarAxisTheme } from '../axis/util';\nimport { getCartesianCrosshairTheme, getPolarCrosshairTheme } from '../crosshair/util';\nimport { getDataFilterTheme } from '../data-zoom/util';\nimport { ComponentTypeEnum } from '../interface/type';\nimport { getLayout } from '../legend/util';\nimport { getComponentThemeFromOption } from '../util';\n\nexport function getComponentThemeFromGlobalTheme(\n type: ComponentTypeEnum,\n option: Partial<IModelOption>,\n componentSpec: any\n) {\n const chart = option.getChart?.();\n switch (type) {\n case ComponentTypeEnum.cartesianBandAxis:\n return getCartesianAxisTheme(getOrient(componentSpec), 'band', option);\n case ComponentTypeEnum.cartesianLinearAxis:\n return getCartesianAxisTheme(getOrient(componentSpec), 'linear', option);\n case ComponentTypeEnum.cartesianLogAxis:\n return getCartesianAxisTheme(getOrient(componentSpec), 'log', option);\n case ComponentTypeEnum.cartesianSymlogAxis:\n return getCartesianAxisTheme(getOrient(componentSpec), 'symlog', option);\n case ComponentTypeEnum.cartesianAxis:\n case ComponentTypeEnum.cartesianTimeAxis:\n return getCartesianAxisTheme(getOrient(componentSpec), undefined, option);\n case ComponentTypeEnum.polarBandAxis:\n return getPolarAxisTheme(componentSpec.orient, 'band', option);\n case ComponentTypeEnum.polarLinearAxis:\n return getPolarAxisTheme(componentSpec.orient, 'linear', option);\n case ComponentTypeEnum.polarAxis:\n return getPolarAxisTheme(componentSpec.orient, undefined, option);\n case ComponentTypeEnum.cartesianCrosshair:\n return getCartesianCrosshairTheme(option, chart);\n case ComponentTypeEnum.polarCrosshair:\n return getPolarCrosshairTheme(option, chart);\n case ComponentTypeEnum.colorLegend:\n case ComponentTypeEnum.sizeLegend:\n return getComponentThemeFromOption(`${type}.${getLayout(componentSpec)}`, option);\n case ComponentTypeEnum.dataZoom:\n case ComponentTypeEnum.scrollBar:\n return getDataFilterTheme(getOrient(componentSpec), type, option);\n default:\n return getComponentThemeFromOption(type, option);\n }\n}\n"]}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { LayoutItem } from '../../model/layout-item';
|
|
2
1
|
import { BaseComponent } from '../base/base-component';
|
|
3
2
|
import type { IComponentOption } from '../interface';
|
|
4
3
|
import { ComponentTypeEnum } from '../interface/type';
|
|
@@ -10,12 +9,11 @@ import type { ISeries } from '../../series/interface';
|
|
|
10
9
|
import type { IElement } from '@visactor/vgrammar-core';
|
|
11
10
|
import type { BrushInteractiveRangeAttr, IBrush, IBrushSpec } from './interface';
|
|
12
11
|
export declare class Brush extends BaseComponent<IBrushSpec> implements IBrush {
|
|
13
|
-
layoutType:
|
|
12
|
+
layoutType: 'none';
|
|
14
13
|
static type: ComponentTypeEnum;
|
|
15
14
|
type: ComponentTypeEnum;
|
|
16
15
|
name: string;
|
|
17
|
-
layoutZIndex:
|
|
18
|
-
static speckey: string;
|
|
16
|
+
layoutZIndex: number;
|
|
19
17
|
protected _brushComponents: BrushComponent[];
|
|
20
18
|
protected _relativeRegions: IRegion[];
|
|
21
19
|
protected _linkedSeries: ISeries[];
|
|
@@ -8,7 +8,7 @@ const constant_1 = require("../../constant"), base_component_1 = require("../bas
|
|
|
8
8
|
|
|
9
9
|
class Brush extends base_component_1.BaseComponent {
|
|
10
10
|
constructor() {
|
|
11
|
-
super(...arguments), this.layoutType = "
|
|
11
|
+
super(...arguments), this.layoutType = "none", this.type = type_1.ComponentTypeEnum.brush,
|
|
12
12
|
this.name = type_1.ComponentTypeEnum.brush, this.layoutZIndex = constant_1.LayoutZIndex.Brush,
|
|
13
13
|
this._linkedSeries = [], this._itemMap = {}, this._linkedItemMap = {}, this._inBrushElementsMap = {},
|
|
14
14
|
this._outOfBrushElementsMap = {}, this._linkedInBrushElementsMap = {}, this._linkedOutOfBrushElementsMap = {},
|
|
@@ -25,10 +25,8 @@ class Brush extends base_component_1.BaseComponent {
|
|
|
25
25
|
}));
|
|
26
26
|
}
|
|
27
27
|
static createComponent(spec, options) {
|
|
28
|
-
const brushSpec = spec.brush
|
|
29
|
-
if (!(0, vutils_1.isNil)(brushSpec) && !1 !== brushSpec.visible) return [ new Brush(brushSpec,
|
|
30
|
-
specKey: Brush.speckey
|
|
31
|
-
})) ];
|
|
28
|
+
const brushSpec = spec.brush;
|
|
29
|
+
if (!(0, vutils_1.isNil)(brushSpec) && !1 !== brushSpec.visible) return [ new Brush(brushSpec, options) ];
|
|
32
30
|
}
|
|
33
31
|
created() {
|
|
34
32
|
super.created(), this.initEvent(), this._bindRegions(), this._bindLinkedSeries(),
|
|
@@ -266,7 +264,7 @@ class Brush extends base_component_1.BaseComponent {
|
|
|
266
264
|
}
|
|
267
265
|
}
|
|
268
266
|
|
|
269
|
-
exports.Brush = Brush, Brush.type = type_1.ComponentTypeEnum.brush
|
|
267
|
+
exports.Brush = Brush, Brush.type = type_1.ComponentTypeEnum.brush;
|
|
270
268
|
|
|
271
269
|
const registerBrush = () => {
|
|
272
270
|
factory_1.Factory.registerComponent(Brush.type, Brush);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/brush/brush.ts"],"names":[],"mappings":"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","file":"brush.js","sourcesContent":["import { AttributeLevel, ChartEvent, LayoutZIndex } from '../../constant';\nimport type { LayoutItem } from '../../model/layout-item';\nimport { BaseComponent } from '../base/base-component';\nimport type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport { Brush as BrushComponent, IOperateType } from '@visactor/vrender-components';\nimport type { IBounds, IPointLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { array, isNil, polygonIntersectPolygon, isValid } from '@visactor/vutils';\nimport type { IModelRenderOption } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport type {\n IGraphic,\n IGroup,\n INode,\n IPolygon,\n IRectGraphicAttribute,\n ISymbolGraphicAttribute\n} from '@visactor/vrender-core';\nimport { transformToGraphic } from '../../util/style';\nimport type { ISeries } from '../../series/interface';\nimport type { IMark } from '../../mark/interface';\nimport type { IElement } from '@visactor/vgrammar-core';\nimport type { BrushInteractiveRangeAttr, IBrush, IBrushSpec, selectedItemStyle } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEqual } from '@visactor/vutils';\nimport { Factory } from '../../core/factory';\n\nconst IN_BRUSH_STATE = 'inBrush';\nconst OUT_BRUSH_STATE = 'outOfBrush';\n\nexport class Brush extends BaseComponent<IBrushSpec> implements IBrush {\n layoutType: LayoutItem['layoutType'] = 'absolute';\n static type = ComponentTypeEnum.brush;\n type = ComponentTypeEnum.brush;\n name: string = ComponentTypeEnum.brush;\n\n layoutZIndex: LayoutItem['layoutZIndex'] = LayoutZIndex.Brush;\n\n static speckey = 'brush';\n\n // brush组件\n protected _brushComponents!: BrushComponent[];\n protected _relativeRegions!: IRegion[];\n protected _linkedSeries: ISeries[] = [];\n\n private _itemMap: { [regionId: string | number]: IMark[] } = {};\n private _linkedItemMap: { [seriesId: string | number]: IMark[] } = {};\n\n // 用brushName做分组管理的原因是: 如果有多个brush, 某个图元A brush内, 但在B brush外, 该图元state会被B误变成out of brush。 但其实该图元只有在A brush外才能被判断out of brush\n // 用dict做存储因为方便查找和删减对应图元\n protected _inBrushElementsMap: { [brushName: string]: { [elementKey: string]: IElement } } = {};\n protected _outOfBrushElementsMap: { [elementKey: string]: IElement } = {};\n protected _linkedInBrushElementsMap: { [brushName: string]: { [elementKey: string]: IElement } } = {};\n protected _linkedOutOfBrushElementsMap: { [elementKey: string]: IElement } = {};\n\n private _needInitOutState: boolean = true;\n private _cacheInteractiveRangeAttrs: BrushInteractiveRangeAttr[] = [];\n\n private _needEnablePickable: boolean = false;\n\n init() {\n const inBrushMarkAttr = this._transformBrushedMarkAttr(this._spec?.inBrush);\n const outOfBrushMarkAttr = this._transformBrushedMarkAttr(this._spec?.outOfBrush);\n // 写入mark state, 便于后续state管理\n this._option.getAllSeries().forEach((s: ISeries) => {\n s.getActiveMarks().forEach((m: IMark) => {\n if (m) {\n s.setMarkStyle(\n m,\n {\n ...inBrushMarkAttr\n },\n IN_BRUSH_STATE,\n AttributeLevel.Series\n );\n s.setMarkStyle(\n m,\n {\n ...outOfBrushMarkAttr\n },\n OUT_BRUSH_STATE,\n AttributeLevel.Series\n );\n }\n });\n });\n }\n\n static createComponent(spec: any, options: IComponentOption) {\n const brushSpec = spec.brush || options.defaultSpec;\n // brush不支持数组的形式配置\n if (isNil(brushSpec) || brushSpec.visible === false) {\n return undefined;\n }\n\n return [new Brush(brushSpec, { ...options, specKey: Brush.speckey })];\n }\n\n created() {\n super.created();\n\n // event\n this.initEvent();\n this._bindRegions();\n this._bindLinkedSeries();\n this._initNeedOperatedItem();\n }\n\n protected _extendDataInBrush(elementsMap: { [brushName: string]: { [elementKey: string]: IElement } }) {\n const data = [];\n for (const brushName in elementsMap) {\n for (const elementKey in elementsMap[brushName]) {\n data.push(elementsMap[brushName][elementKey].data[0]);\n }\n }\n return data;\n }\n\n protected _extendDatumOutOfBrush(elementsMap: { [elementKey: string]: IElement }) {\n const data = [];\n for (const elementKey in elementsMap) {\n data.push(elementsMap[elementKey].data[0]);\n }\n return data;\n }\n\n protected _getBrushInteractiveAttr(region: IRegion) {\n const seriesRegionStartX = region.getLayoutStartPoint().x;\n const seriesRegionEndX = seriesRegionStartX + region.getLayoutRect().width;\n const seriesRegionStartY = region.getLayoutStartPoint().y;\n const seriesRegionEndY = seriesRegionStartY + region.getLayoutRect().height;\n return {\n interactiveRange: {\n minY: seriesRegionStartY,\n maxY: seriesRegionEndY,\n minX: seriesRegionStartX,\n maxX: seriesRegionEndX\n },\n xRange: [seriesRegionStartX, seriesRegionEndX],\n yRange: [seriesRegionStartY, seriesRegionEndY]\n } as BrushInteractiveRangeAttr;\n }\n\n protected _updateBrushComponent(region: IRegion, componentIndex: number) {\n const interactiveAttr = this._getBrushInteractiveAttr(region);\n // 布局变化后, 更新可交互范围\n const brushComponent = this._brushComponents[componentIndex];\n brushComponent.setAttributes(interactiveAttr as any);\n\n // 布局变化后, 更新brush 和 图元状态\n // 方案一:\n // TODO: 更新mask位置(保持选框在画布中的相对位置)\n // TODO: 是否更新mask大小有待商榷(保持选框位置和图元高亮区域一致)\n\n // 方案二: 清空brushMask 和 图元高亮状态\n this._initMarkBrushState(componentIndex, '');\n brushComponent.children[0].removeAllChild();\n this._needInitOutState = true;\n }\n\n protected _createBrushComponent(region: IRegion, componentIndex: number) {\n const interactiveAttr = this._getBrushInteractiveAttr(region);\n const brush = new BrushComponent({\n zIndex: this.layoutZIndex,\n brushStyle: transformToGraphic(this._spec?.style),\n ...interactiveAttr,\n ...this._spec\n });\n brush.id = this._spec.id ?? `brush-${this.id}`;\n this.getContainer().add(brush as unknown as INode);\n const { brushMode = 'single' } = this._spec;\n this._brushComponents.push(brush);\n this._cacheInteractiveRangeAttrs.push(interactiveAttr);\n brush.setUpdateDragMaskCallback(\n (operateParams: {\n operateType: string;\n operateMask: IPolygon;\n operatedMaskAABBBounds: { [name: string]: IBounds };\n }) => {\n const { operateType, operateMask } = operateParams;\n let operateTypeCache = operateType;\n\n // 需要重置out状态的情况:\n // _needInitOutState:框选模式为'single' 且 开始后的第一次drawing时(这里不选择drawStart而选择第一次触发drawing的时机是因为点击空白处也会触发drawStart), 需要重置图元状态\n if (this._needInitOutState && brushMode === 'single' && operateType === IOperateType.drawing) {\n this._initMarkBrushState(componentIndex, OUT_BRUSH_STATE);\n }\n\n // 需要重置初始状态的情况:点击空白处clear所有状态\n // 是否点击到空白处由图表的事件监听判断\n this._option\n ?.getChart()\n ?.getEvent()\n ?.on('click', p => {\n if (!p.mark && operateTypeCache === IOperateType.brushClear) {\n this._initMarkBrushState(componentIndex, '');\n this._needInitOutState = true;\n operateTypeCache = null;\n }\n });\n\n // 下面的步骤是为了标记出第一次drawing状态的\n if (operateType === IOperateType.drawing) {\n this._needInitOutState = false;\n this._needEnablePickable = true;\n }\n if (operateType === IOperateType.drawEnd) {\n this._needInitOutState = true;\n this._needEnablePickable = false;\n }\n\n this._reconfigItem(operateMask, region);\n this._reconfigLinkedItem(operateMask, region);\n\n let eventType: string = ChartEvent.brushChange;\n if (operateType === IOperateType.drawStart || operateType === IOperateType.moveStart) {\n eventType = ChartEvent.brushStart;\n } else if (operateType === IOperateType.drawEnd || operateType === IOperateType.moveEnd) {\n eventType = ChartEvent.brushEnd;\n } else {\n eventType = ChartEvent.brushChange;\n }\n\n this.event.emit(eventType, {\n model: this,\n value: {\n // 操作类型\n operateType,\n // 正在操作的region\n operateRegion: region,\n // 在选框内的 element data\n inBrushData: this._extendDataInBrush(this._inBrushElementsMap),\n // 在选框外的 element data\n outOfBrushData: this._extendDatumOutOfBrush(this._outOfBrushElementsMap),\n // 被链接的系列中:在选框内的 element data\n linkInBrushData: this._extendDataInBrush(this._linkedInBrushElementsMap),\n // 被链接的系列中:在选框外的 element data\n linkOutOfBrushData: this._extendDatumOutOfBrush(this._linkedOutOfBrushElementsMap),\n // 在选框内的 vgrammar elements\n inBrushElementsMap: this._inBrushElementsMap,\n // 在选框外的 vgrammar elements\n outOfBrushElementsMap: this._outOfBrushElementsMap,\n // 被链接的系列中:在选框内的 vgrammar elements\n linkedInBrushElementsMap: this._linkedInBrushElementsMap,\n // 被链接的系列中:在选框外的 vgrammar elements\n linkedOutOfBrushElementsMap: this._linkedOutOfBrushElementsMap\n }\n });\n }\n );\n }\n\n private _transformBrushedMarkAttr(brushedStyle: selectedItemStyle) {\n const styleResult: any = {};\n if (brushedStyle?.symbol) {\n styleResult.symbolType = brushedStyle.symbol;\n }\n if (brushedStyle?.symbolSize) {\n styleResult.size = brushedStyle.symbolSize;\n }\n if (brushedStyle?.color) {\n styleResult.fill = brushedStyle.color;\n }\n if (brushedStyle?.colorAlpha) {\n styleResult.fillOpacity = brushedStyle.colorAlpha;\n }\n return {\n ...transformToGraphic(brushedStyle),\n ...styleResult\n };\n }\n\n private _reconfigItem(operateMask: IPolygon, region: IRegion) {\n // 遍历图元, 更新状态\n this._itemMap[region.id].forEach((mark: IMark) => {\n const grammarMark = mark.getProduct();\n if (!grammarMark || !grammarMark.elements || !grammarMark.elements.length) {\n return;\n }\n const elements = grammarMark.elements;\n elements.forEach((el: IElement) => {\n const graphicItem = el.getGraphicItem();\n const elementKey = mark.id + '_' + el.key;\n // 判断逻辑:\n // 应该被置为inBrush状态的图元:\n // before: 在out brush elment map, 即不在任何brush中\n // now: 在当前brush图元中\n\n // 应该被置为outOfBrush状态的图元:\n // before: 在当前brush 的 in brush element map中, 即在当前brush中\n // now: 不在当前brush中\n if (this._outOfBrushElementsMap?.[elementKey] && this._isBrushContainItem(operateMask, graphicItem)) {\n el.addState(IN_BRUSH_STATE);\n if (!this._inBrushElementsMap[operateMask?.name]) {\n this._inBrushElementsMap[operateMask?.name] = {};\n }\n this._inBrushElementsMap[operateMask?.name][elementKey] = el;\n delete this._outOfBrushElementsMap[elementKey];\n } else if (\n this._inBrushElementsMap?.[operateMask?.name]?.[elementKey] &&\n !this._isBrushContainItem(operateMask, graphicItem)\n ) {\n el.removeState(IN_BRUSH_STATE);\n el.addState(OUT_BRUSH_STATE);\n this._outOfBrushElementsMap[elementKey] = el;\n delete this._inBrushElementsMap[operateMask.name][elementKey];\n }\n graphicItem.setAttribute('pickable', !this._needEnablePickable);\n });\n });\n }\n\n private _reconfigLinkedItem(operateMask: IPolygon, region: IRegion) {\n const seriesId = region.getSeries().map(s => s.id);\n this._linkedSeries.forEach((s: ISeries) => {\n if (!seriesId.includes(s.id)) {\n const regionOffsetX = s.getRegion().getLayoutStartPoint().x - region.getLayoutStartPoint().x;\n const regionOffsetY = s.getRegion().getLayoutStartPoint().y - region.getLayoutStartPoint().y;\n\n this._linkedItemMap[s.id].forEach((mark: IMark) => {\n const grammarMark = mark.getProduct();\n if (!grammarMark || !grammarMark.elements || !grammarMark.elements.length) {\n return;\n }\n const elements = grammarMark.elements;\n elements.forEach((el: IElement) => {\n const graphicItem = el.getGraphicItem();\n const elementKey = mark.id + '_' + el.key;\n // 判断逻辑:\n // 应该被置为inBrush状态的图元:\n // before: 在out brush elment map, 即不在任何brush中\n // now: 在当前brush图元中\n\n // 应该被置为outOfBrush状态的图元:\n // before: 在当前brush 的 in brush element map中, 即在当前brush中\n // now: 不在当前brush中\n if (\n this._linkedOutOfBrushElementsMap?.[elementKey] &&\n this._isBrushContainItem(operateMask, graphicItem, { dx: regionOffsetX, dy: regionOffsetY })\n ) {\n el.addState(IN_BRUSH_STATE);\n if (!this._linkedInBrushElementsMap[operateMask?.name]) {\n this._linkedInBrushElementsMap[operateMask?.name] = {};\n }\n this._linkedInBrushElementsMap[operateMask?.name][elementKey] = el;\n delete this._linkedOutOfBrushElementsMap[elementKey];\n } else if (\n this._linkedInBrushElementsMap?.[operateMask?.name]?.[elementKey] &&\n !this._isBrushContainItem(operateMask, graphicItem, { dx: regionOffsetX, dy: regionOffsetY })\n ) {\n el.removeState(IN_BRUSH_STATE);\n el.addState(OUT_BRUSH_STATE);\n this._linkedOutOfBrushElementsMap[elementKey] = el;\n }\n graphicItem.setAttribute('pickable', !this._needEnablePickable);\n });\n });\n }\n });\n }\n\n private _isBrushContainItem(brushMask: IPolygon, item: IGraphic, linkedOffset?: { dx: number; dy: number }) {\n if (!brushMask?.globalTransMatrix || !brushMask?.attribute?.points) {\n return false;\n }\n\n // 根据变换矩阵得到brushMask的实际坐标\n const points = brushMask?.attribute?.points ?? [];\n const { a, b, c, d, e, f } = brushMask.globalTransMatrix;\n\n const dx = linkedOffset?.dx || 0;\n const dy = linkedOffset?.dy || 0;\n\n const pointsCoord = points.map((p: IPointLike) => {\n return {\n x: a * p.x + c * p.y + e + dx,\n y: b * p.x + d * p.y + f + dy\n };\n });\n\n const globalAABBBoundsOffset = brushMask.globalAABBBounds\n .clone()\n .set(\n brushMask.globalAABBBounds.x1 + dx,\n brushMask.globalAABBBounds.y1 + dy,\n brushMask.globalAABBBounds.x2 + dx,\n brushMask.globalAABBBounds.y2 + dy\n );\n\n // 根据变换矩阵得到item的实际坐标\n const x = item.globalTransMatrix.e;\n const y = item.globalTransMatrix.f;\n\n // brush与图表图元进行相交 或 包含判断\n let itemBounds: { x: number; y: number }[] = [];\n if (item.type === 'symbol') {\n const { size: itemSize = 0 } = item?.attribute as ISymbolGraphicAttribute;\n const size = array(itemSize)[0];\n itemBounds = [\n {\n x: x - size,\n y: y - size\n },\n {\n x: x + size,\n y: y - size\n },\n {\n x: x + size,\n y: y + size\n },\n {\n x: x - size,\n y: y + size\n }\n ];\n return polygonIntersectPolygon(pointsCoord, itemBounds);\n } else if (item.type === 'rect') {\n const { width = 0, height = 0 } = item?.attribute as IRectGraphicAttribute;\n itemBounds = [\n {\n x: x,\n y: y\n },\n {\n x: x + width,\n y: y\n },\n {\n x: x + width,\n y: y + height\n },\n {\n x: x,\n y: y + height\n }\n ];\n return polygonIntersectPolygon(pointsCoord, itemBounds);\n }\n return brushMask.globalAABBBounds.intersects(item.globalAABBBounds);\n }\n\n protected _bindRegions() {\n if (isValid(this._spec.regionId) && isValid(this._spec.regionIndex)) {\n this._relativeRegions = this._option.getAllRegions();\n }\n this._relativeRegions = this._option.getRegionsInUserIdOrIndex(\n array(this._spec.regionId),\n array(this._spec.regionIndex)\n );\n }\n\n protected _bindLinkedSeries() {\n if (isValid(this._spec.brushLinkSeriesId) && isValid(this._spec.brushLinkSeriesIndex)) {\n return;\n }\n this._linkedSeries = this._option.getSeriesInUserIdOrIndex(\n array(this._spec.brushLinkSeriesId),\n array(this._spec.brushLinkSeriesIndex)\n );\n }\n\n private _initNeedOperatedItem() {\n const seriesUserId = this._spec.seriesId;\n const seriesIndex = this._spec.seriesIndex;\n this._relativeRegions.forEach(r => {\n const allMarks: IMark[] = [];\n r.getSeries().forEach((s: ISeries) => {\n if (\n (seriesUserId && array(seriesUserId).includes(s.userId.toString())) ||\n (seriesIndex && array(seriesIndex).includes(s.getSpecIndex())) ||\n (!seriesIndex && !seriesUserId)\n ) {\n allMarks.push(...s.getMarksWithoutRoot());\n }\n this._itemMap[r.id] = allMarks;\n });\n });\n\n this._linkedSeries.forEach(s => {\n this._linkedItemMap[s.id] = s.getMarksWithoutRoot();\n });\n }\n\n protected _initMarkBrushState(componentIndex: number, stateName: string) {\n this._brushComponents.forEach((brush, index) => {\n if (index !== componentIndex) {\n brush.children[0].removeAllChild();\n }\n });\n\n this._inBrushElementsMap = {};\n this._outOfBrushElementsMap = {};\n this._linkedInBrushElementsMap = {};\n this._linkedOutOfBrushElementsMap = {};\n\n this._option.getAllSeries().forEach((s: ISeries) => {\n s.getMarksWithoutRoot().forEach((mark: IMark) => {\n const grammarMark = mark.getProduct();\n if (!grammarMark || !grammarMark.elements || !grammarMark.elements.length) {\n return;\n }\n const elements = grammarMark.elements;\n elements.forEach((el: IElement) => {\n const elementKey = mark.id + '_' + el.key;\n el.removeState(IN_BRUSH_STATE);\n el.removeState(OUT_BRUSH_STATE);\n el.addState(stateName);\n this._outOfBrushElementsMap[elementKey] = el;\n this._linkedOutOfBrushElementsMap[elementKey] = el;\n });\n });\n });\n }\n\n protected initEvent() {\n // do nothing\n }\n onRender(ctx: IModelRenderOption): void {\n // do nothing\n }\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n getVRenderComponents(): IGraphic[] {\n return this._brushComponents as unknown as IGroup[];\n }\n\n /**\n * updateSpec\n */\n _compareSpec() {\n if (this._brushComponents) {\n this._relativeRegions.forEach((region: IRegion, index: number) => {\n this._updateBrushComponent(region, index);\n });\n }\n const result = super._compareSpec();\n if (!isEqual(this._originalSpec, this._spec)) {\n result.reRender = true;\n result.reMake = true;\n }\n return result;\n }\n\n onLayoutEnd(ctx: any): void {\n super.onLayoutEnd(ctx);\n const brushVisible = this._spec.visible ?? true;\n if (brushVisible) {\n // 创建或更新marker组件\n if (!this._brushComponents) {\n this._brushComponents = [];\n this._relativeRegions.forEach((region: IRegion, index: number) => {\n this._createBrushComponent(region, index);\n });\n } else {\n this._relativeRegions.forEach((region: IRegion, index: number) => {\n this._updateBrushComponent(region, index);\n });\n }\n }\n }\n\n clear(): void {\n if (this._brushComponents) {\n this.getContainer()?.removeChild(this._brushComponents as unknown as INode);\n this._brushComponents.forEach(brush => {\n brush.releaseBrushEvents();\n });\n this._brushComponents = null;\n }\n super.clear();\n }\n}\n\nexport const registerBrush = () => {\n Factory.registerComponent(Brush.type, Brush);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/brush/brush.ts"],"names":[],"mappings":"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","file":"brush.js","sourcesContent":["import { AttributeLevel, ChartEvent, LayoutZIndex } from '../../constant';\nimport { BaseComponent } from '../base/base-component';\nimport type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport { Brush as BrushComponent, IOperateType } from '@visactor/vrender-components';\nimport type { IBounds, IPointLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { array, isNil, polygonIntersectPolygon, isValid } from '@visactor/vutils';\nimport type { IModelRenderOption } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport type {\n IGraphic,\n IGroup,\n INode,\n IPolygon,\n IRectGraphicAttribute,\n ISymbolGraphicAttribute\n} from '@visactor/vrender-core';\nimport { transformToGraphic } from '../../util/style';\nimport type { ISeries } from '../../series/interface';\nimport type { IMark } from '../../mark/interface';\nimport type { IElement } from '@visactor/vgrammar-core';\nimport type { BrushInteractiveRangeAttr, IBrush, IBrushSpec, selectedItemStyle } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEqual } from '@visactor/vutils';\nimport { Factory } from '../../core/factory';\n\nconst IN_BRUSH_STATE = 'inBrush';\nconst OUT_BRUSH_STATE = 'outOfBrush';\n\nexport class Brush extends BaseComponent<IBrushSpec> implements IBrush {\n layoutType: 'none' = 'none';\n static type = ComponentTypeEnum.brush;\n type = ComponentTypeEnum.brush;\n name: string = ComponentTypeEnum.brush;\n\n layoutZIndex: number = LayoutZIndex.Brush;\n\n // brush组件\n protected _brushComponents!: BrushComponent[];\n protected _relativeRegions!: IRegion[];\n protected _linkedSeries: ISeries[] = [];\n\n private _itemMap: { [regionId: string | number]: IMark[] } = {};\n private _linkedItemMap: { [seriesId: string | number]: IMark[] } = {};\n\n // 用brushName做分组管理的原因是: 如果有多个brush, 某个图元A brush内, 但在B brush外, 该图元state会被B误变成out of brush。 但其实该图元只有在A brush外才能被判断out of brush\n // 用dict做存储因为方便查找和删减对应图元\n protected _inBrushElementsMap: { [brushName: string]: { [elementKey: string]: IElement } } = {};\n protected _outOfBrushElementsMap: { [elementKey: string]: IElement } = {};\n protected _linkedInBrushElementsMap: { [brushName: string]: { [elementKey: string]: IElement } } = {};\n protected _linkedOutOfBrushElementsMap: { [elementKey: string]: IElement } = {};\n\n private _needInitOutState: boolean = true;\n private _cacheInteractiveRangeAttrs: BrushInteractiveRangeAttr[] = [];\n\n private _needEnablePickable: boolean = false;\n\n init() {\n const inBrushMarkAttr = this._transformBrushedMarkAttr(this._spec?.inBrush);\n const outOfBrushMarkAttr = this._transformBrushedMarkAttr(this._spec?.outOfBrush);\n // 写入mark state, 便于后续state管理\n this._option.getAllSeries().forEach((s: ISeries) => {\n s.getActiveMarks().forEach((m: IMark) => {\n if (m) {\n s.setMarkStyle(\n m,\n {\n ...inBrushMarkAttr\n },\n IN_BRUSH_STATE,\n AttributeLevel.Series\n );\n s.setMarkStyle(\n m,\n {\n ...outOfBrushMarkAttr\n },\n OUT_BRUSH_STATE,\n AttributeLevel.Series\n );\n }\n });\n });\n }\n\n static createComponent(spec: any, options: IComponentOption) {\n const brushSpec = spec.brush;\n // brush不支持数组的形式配置\n if (isNil(brushSpec) || brushSpec.visible === false) {\n return undefined;\n }\n\n return [new Brush(brushSpec, options)];\n }\n\n created() {\n super.created();\n\n // event\n this.initEvent();\n this._bindRegions();\n this._bindLinkedSeries();\n this._initNeedOperatedItem();\n }\n\n protected _extendDataInBrush(elementsMap: { [brushName: string]: { [elementKey: string]: IElement } }) {\n const data = [];\n for (const brushName in elementsMap) {\n for (const elementKey in elementsMap[brushName]) {\n data.push(elementsMap[brushName][elementKey].data[0]);\n }\n }\n return data;\n }\n\n protected _extendDatumOutOfBrush(elementsMap: { [elementKey: string]: IElement }) {\n const data = [];\n for (const elementKey in elementsMap) {\n data.push(elementsMap[elementKey].data[0]);\n }\n return data;\n }\n\n protected _getBrushInteractiveAttr(region: IRegion) {\n const seriesRegionStartX = region.getLayoutStartPoint().x;\n const seriesRegionEndX = seriesRegionStartX + region.getLayoutRect().width;\n const seriesRegionStartY = region.getLayoutStartPoint().y;\n const seriesRegionEndY = seriesRegionStartY + region.getLayoutRect().height;\n return {\n interactiveRange: {\n minY: seriesRegionStartY,\n maxY: seriesRegionEndY,\n minX: seriesRegionStartX,\n maxX: seriesRegionEndX\n },\n xRange: [seriesRegionStartX, seriesRegionEndX],\n yRange: [seriesRegionStartY, seriesRegionEndY]\n } as BrushInteractiveRangeAttr;\n }\n\n protected _updateBrushComponent(region: IRegion, componentIndex: number) {\n const interactiveAttr = this._getBrushInteractiveAttr(region);\n // 布局变化后, 更新可交互范围\n const brushComponent = this._brushComponents[componentIndex];\n brushComponent.setAttributes(interactiveAttr as any);\n\n // 布局变化后, 更新brush 和 图元状态\n // 方案一:\n // TODO: 更新mask位置(保持选框在画布中的相对位置)\n // TODO: 是否更新mask大小有待商榷(保持选框位置和图元高亮区域一致)\n\n // 方案二: 清空brushMask 和 图元高亮状态\n this._initMarkBrushState(componentIndex, '');\n brushComponent.children[0].removeAllChild();\n this._needInitOutState = true;\n }\n\n protected _createBrushComponent(region: IRegion, componentIndex: number) {\n const interactiveAttr = this._getBrushInteractiveAttr(region);\n const brush = new BrushComponent({\n zIndex: this.layoutZIndex,\n brushStyle: transformToGraphic(this._spec?.style),\n ...interactiveAttr,\n ...this._spec\n });\n brush.id = this._spec.id ?? `brush-${this.id}`;\n this.getContainer().add(brush as unknown as INode);\n const { brushMode = 'single' } = this._spec;\n this._brushComponents.push(brush);\n this._cacheInteractiveRangeAttrs.push(interactiveAttr);\n brush.setUpdateDragMaskCallback(\n (operateParams: {\n operateType: string;\n operateMask: IPolygon;\n operatedMaskAABBBounds: { [name: string]: IBounds };\n }) => {\n const { operateType, operateMask } = operateParams;\n let operateTypeCache = operateType;\n\n // 需要重置out状态的情况:\n // _needInitOutState:框选模式为'single' 且 开始后的第一次drawing时(这里不选择drawStart而选择第一次触发drawing的时机是因为点击空白处也会触发drawStart), 需要重置图元状态\n if (this._needInitOutState && brushMode === 'single' && operateType === IOperateType.drawing) {\n this._initMarkBrushState(componentIndex, OUT_BRUSH_STATE);\n }\n\n // 需要重置初始状态的情况:点击空白处clear所有状态\n // 是否点击到空白处由图表的事件监听判断\n this._option\n ?.getChart()\n ?.getEvent()\n ?.on('click', p => {\n if (!p.mark && operateTypeCache === IOperateType.brushClear) {\n this._initMarkBrushState(componentIndex, '');\n this._needInitOutState = true;\n operateTypeCache = null;\n }\n });\n\n // 下面的步骤是为了标记出第一次drawing状态的\n if (operateType === IOperateType.drawing) {\n this._needInitOutState = false;\n this._needEnablePickable = true;\n }\n if (operateType === IOperateType.drawEnd) {\n this._needInitOutState = true;\n this._needEnablePickable = false;\n }\n\n this._reconfigItem(operateMask, region);\n this._reconfigLinkedItem(operateMask, region);\n\n let eventType: string = ChartEvent.brushChange;\n if (operateType === IOperateType.drawStart || operateType === IOperateType.moveStart) {\n eventType = ChartEvent.brushStart;\n } else if (operateType === IOperateType.drawEnd || operateType === IOperateType.moveEnd) {\n eventType = ChartEvent.brushEnd;\n } else {\n eventType = ChartEvent.brushChange;\n }\n\n this.event.emit(eventType, {\n model: this,\n value: {\n // 操作类型\n operateType,\n // 正在操作的region\n operateRegion: region,\n // 在选框内的 element data\n inBrushData: this._extendDataInBrush(this._inBrushElementsMap),\n // 在选框外的 element data\n outOfBrushData: this._extendDatumOutOfBrush(this._outOfBrushElementsMap),\n // 被链接的系列中:在选框内的 element data\n linkInBrushData: this._extendDataInBrush(this._linkedInBrushElementsMap),\n // 被链接的系列中:在选框外的 element data\n linkOutOfBrushData: this._extendDatumOutOfBrush(this._linkedOutOfBrushElementsMap),\n // 在选框内的 vgrammar elements\n inBrushElementsMap: this._inBrushElementsMap,\n // 在选框外的 vgrammar elements\n outOfBrushElementsMap: this._outOfBrushElementsMap,\n // 被链接的系列中:在选框内的 vgrammar elements\n linkedInBrushElementsMap: this._linkedInBrushElementsMap,\n // 被链接的系列中:在选框外的 vgrammar elements\n linkedOutOfBrushElementsMap: this._linkedOutOfBrushElementsMap\n }\n });\n }\n );\n }\n\n private _transformBrushedMarkAttr(brushedStyle: selectedItemStyle) {\n const styleResult: any = {};\n if (brushedStyle?.symbol) {\n styleResult.symbolType = brushedStyle.symbol;\n }\n if (brushedStyle?.symbolSize) {\n styleResult.size = brushedStyle.symbolSize;\n }\n if (brushedStyle?.color) {\n styleResult.fill = brushedStyle.color;\n }\n if (brushedStyle?.colorAlpha) {\n styleResult.fillOpacity = brushedStyle.colorAlpha;\n }\n return {\n ...transformToGraphic(brushedStyle),\n ...styleResult\n };\n }\n\n private _reconfigItem(operateMask: IPolygon, region: IRegion) {\n // 遍历图元, 更新状态\n this._itemMap[region.id].forEach((mark: IMark) => {\n const grammarMark = mark.getProduct();\n if (!grammarMark || !grammarMark.elements || !grammarMark.elements.length) {\n return;\n }\n const elements = grammarMark.elements;\n elements.forEach((el: IElement) => {\n const graphicItem = el.getGraphicItem();\n const elementKey = mark.id + '_' + el.key;\n // 判断逻辑:\n // 应该被置为inBrush状态的图元:\n // before: 在out brush elment map, 即不在任何brush中\n // now: 在当前brush图元中\n\n // 应该被置为outOfBrush状态的图元:\n // before: 在当前brush 的 in brush element map中, 即在当前brush中\n // now: 不在当前brush中\n if (this._outOfBrushElementsMap?.[elementKey] && this._isBrushContainItem(operateMask, graphicItem)) {\n el.addState(IN_BRUSH_STATE);\n if (!this._inBrushElementsMap[operateMask?.name]) {\n this._inBrushElementsMap[operateMask?.name] = {};\n }\n this._inBrushElementsMap[operateMask?.name][elementKey] = el;\n delete this._outOfBrushElementsMap[elementKey];\n } else if (\n this._inBrushElementsMap?.[operateMask?.name]?.[elementKey] &&\n !this._isBrushContainItem(operateMask, graphicItem)\n ) {\n el.removeState(IN_BRUSH_STATE);\n el.addState(OUT_BRUSH_STATE);\n this._outOfBrushElementsMap[elementKey] = el;\n delete this._inBrushElementsMap[operateMask.name][elementKey];\n }\n graphicItem.setAttribute('pickable', !this._needEnablePickable);\n });\n });\n }\n\n private _reconfigLinkedItem(operateMask: IPolygon, region: IRegion) {\n const seriesId = region.getSeries().map(s => s.id);\n this._linkedSeries.forEach((s: ISeries) => {\n if (!seriesId.includes(s.id)) {\n const regionOffsetX = s.getRegion().getLayoutStartPoint().x - region.getLayoutStartPoint().x;\n const regionOffsetY = s.getRegion().getLayoutStartPoint().y - region.getLayoutStartPoint().y;\n\n this._linkedItemMap[s.id].forEach((mark: IMark) => {\n const grammarMark = mark.getProduct();\n if (!grammarMark || !grammarMark.elements || !grammarMark.elements.length) {\n return;\n }\n const elements = grammarMark.elements;\n elements.forEach((el: IElement) => {\n const graphicItem = el.getGraphicItem();\n const elementKey = mark.id + '_' + el.key;\n // 判断逻辑:\n // 应该被置为inBrush状态的图元:\n // before: 在out brush elment map, 即不在任何brush中\n // now: 在当前brush图元中\n\n // 应该被置为outOfBrush状态的图元:\n // before: 在当前brush 的 in brush element map中, 即在当前brush中\n // now: 不在当前brush中\n if (\n this._linkedOutOfBrushElementsMap?.[elementKey] &&\n this._isBrushContainItem(operateMask, graphicItem, { dx: regionOffsetX, dy: regionOffsetY })\n ) {\n el.addState(IN_BRUSH_STATE);\n if (!this._linkedInBrushElementsMap[operateMask?.name]) {\n this._linkedInBrushElementsMap[operateMask?.name] = {};\n }\n this._linkedInBrushElementsMap[operateMask?.name][elementKey] = el;\n delete this._linkedOutOfBrushElementsMap[elementKey];\n } else if (\n this._linkedInBrushElementsMap?.[operateMask?.name]?.[elementKey] &&\n !this._isBrushContainItem(operateMask, graphicItem, { dx: regionOffsetX, dy: regionOffsetY })\n ) {\n el.removeState(IN_BRUSH_STATE);\n el.addState(OUT_BRUSH_STATE);\n this._linkedOutOfBrushElementsMap[elementKey] = el;\n }\n graphicItem.setAttribute('pickable', !this._needEnablePickable);\n });\n });\n }\n });\n }\n\n private _isBrushContainItem(brushMask: IPolygon, item: IGraphic, linkedOffset?: { dx: number; dy: number }) {\n if (!brushMask?.globalTransMatrix || !brushMask?.attribute?.points) {\n return false;\n }\n\n // 根据变换矩阵得到brushMask的实际坐标\n const points = brushMask?.attribute?.points ?? [];\n const { a, b, c, d, e, f } = brushMask.globalTransMatrix;\n\n const dx = linkedOffset?.dx || 0;\n const dy = linkedOffset?.dy || 0;\n\n const pointsCoord = points.map((p: IPointLike) => {\n return {\n x: a * p.x + c * p.y + e + dx,\n y: b * p.x + d * p.y + f + dy\n };\n });\n\n const globalAABBBoundsOffset = brushMask.globalAABBBounds\n .clone()\n .set(\n brushMask.globalAABBBounds.x1 + dx,\n brushMask.globalAABBBounds.y1 + dy,\n brushMask.globalAABBBounds.x2 + dx,\n brushMask.globalAABBBounds.y2 + dy\n );\n\n // 根据变换矩阵得到item的实际坐标\n const x = item.globalTransMatrix.e;\n const y = item.globalTransMatrix.f;\n\n // brush与图表图元进行相交 或 包含判断\n let itemBounds: { x: number; y: number }[] = [];\n if (item.type === 'symbol') {\n const { size: itemSize = 0 } = item?.attribute as ISymbolGraphicAttribute;\n const size = array(itemSize)[0];\n itemBounds = [\n {\n x: x - size,\n y: y - size\n },\n {\n x: x + size,\n y: y - size\n },\n {\n x: x + size,\n y: y + size\n },\n {\n x: x - size,\n y: y + size\n }\n ];\n return polygonIntersectPolygon(pointsCoord, itemBounds);\n } else if (item.type === 'rect') {\n const { width = 0, height = 0 } = item?.attribute as IRectGraphicAttribute;\n itemBounds = [\n {\n x: x,\n y: y\n },\n {\n x: x + width,\n y: y\n },\n {\n x: x + width,\n y: y + height\n },\n {\n x: x,\n y: y + height\n }\n ];\n return polygonIntersectPolygon(pointsCoord, itemBounds);\n }\n return brushMask.globalAABBBounds.intersects(item.globalAABBBounds);\n }\n\n protected _bindRegions() {\n if (isValid(this._spec.regionId) && isValid(this._spec.regionIndex)) {\n this._relativeRegions = this._option.getAllRegions();\n }\n this._relativeRegions = this._option.getRegionsInUserIdOrIndex(\n array(this._spec.regionId),\n array(this._spec.regionIndex)\n );\n }\n\n protected _bindLinkedSeries() {\n if (isValid(this._spec.brushLinkSeriesId) && isValid(this._spec.brushLinkSeriesIndex)) {\n return;\n }\n this._linkedSeries = this._option.getSeriesInUserIdOrIndex(\n array(this._spec.brushLinkSeriesId),\n array(this._spec.brushLinkSeriesIndex)\n );\n }\n\n private _initNeedOperatedItem() {\n const seriesUserId = this._spec.seriesId;\n const seriesIndex = this._spec.seriesIndex;\n this._relativeRegions.forEach(r => {\n const allMarks: IMark[] = [];\n r.getSeries().forEach((s: ISeries) => {\n if (\n (seriesUserId && array(seriesUserId).includes(s.userId.toString())) ||\n (seriesIndex && array(seriesIndex).includes(s.getSpecIndex())) ||\n (!seriesIndex && !seriesUserId)\n ) {\n allMarks.push(...s.getMarksWithoutRoot());\n }\n this._itemMap[r.id] = allMarks;\n });\n });\n\n this._linkedSeries.forEach(s => {\n this._linkedItemMap[s.id] = s.getMarksWithoutRoot();\n });\n }\n\n protected _initMarkBrushState(componentIndex: number, stateName: string) {\n this._brushComponents.forEach((brush, index) => {\n if (index !== componentIndex) {\n brush.children[0].removeAllChild();\n }\n });\n\n this._inBrushElementsMap = {};\n this._outOfBrushElementsMap = {};\n this._linkedInBrushElementsMap = {};\n this._linkedOutOfBrushElementsMap = {};\n\n this._option.getAllSeries().forEach((s: ISeries) => {\n s.getMarksWithoutRoot().forEach((mark: IMark) => {\n const grammarMark = mark.getProduct();\n if (!grammarMark || !grammarMark.elements || !grammarMark.elements.length) {\n return;\n }\n const elements = grammarMark.elements;\n elements.forEach((el: IElement) => {\n const elementKey = mark.id + '_' + el.key;\n el.removeState(IN_BRUSH_STATE);\n el.removeState(OUT_BRUSH_STATE);\n el.addState(stateName);\n this._outOfBrushElementsMap[elementKey] = el;\n this._linkedOutOfBrushElementsMap[elementKey] = el;\n });\n });\n });\n }\n\n protected initEvent() {\n // do nothing\n }\n onRender(ctx: IModelRenderOption): void {\n // do nothing\n }\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n getVRenderComponents(): IGraphic[] {\n return this._brushComponents as unknown as IGroup[];\n }\n\n /**\n * updateSpec\n */\n _compareSpec() {\n if (this._brushComponents) {\n this._relativeRegions.forEach((region: IRegion, index: number) => {\n this._updateBrushComponent(region, index);\n });\n }\n const result = super._compareSpec();\n if (!isEqual(this._originalSpec, this._spec)) {\n result.reRender = true;\n result.reMake = true;\n }\n return result;\n }\n\n onLayoutEnd(ctx: any): void {\n super.onLayoutEnd(ctx);\n const brushVisible = this._spec.visible ?? true;\n if (brushVisible) {\n // 创建或更新marker组件\n if (!this._brushComponents) {\n this._brushComponents = [];\n this._relativeRegions.forEach((region: IRegion, index: number) => {\n this._createBrushComponent(region, index);\n });\n } else {\n this._relativeRegions.forEach((region: IRegion, index: number) => {\n this._updateBrushComponent(region, index);\n });\n }\n }\n }\n\n clear(): void {\n if (this._brushComponents) {\n this.getContainer()?.removeChild(this._brushComponents as unknown as INode);\n this._brushComponents.forEach(brush => {\n brush.releaseBrushEvents();\n });\n this._brushComponents = null;\n }\n super.clear();\n }\n}\n\nexport const registerBrush = () => {\n Factory.registerComponent(Brush.type, Brush);\n};\n"]}
|
|
@@ -3,7 +3,6 @@ import type { IModelLayoutOption, IModelRenderOption } from '../../model/interfa
|
|
|
3
3
|
import type { IRegion } from '../../region/interface';
|
|
4
4
|
import { BaseComponent } from '../base/base-component';
|
|
5
5
|
import type { IPadding, Maybe, StringOrNumber } from '../../typings';
|
|
6
|
-
import type { LayoutItem } from '../../model/layout-item';
|
|
7
6
|
import type { IComponentOption } from '../interface';
|
|
8
7
|
import type { ICrossHair, CrossHairTrigger, ICartesianCrosshairSpec, IPolarCrosshairSpec, ICrosshairTheme, ICrosshairCategoryFieldSpec } from './interface';
|
|
9
8
|
import type { IAxis } from '../axis/interface';
|
|
@@ -32,9 +31,9 @@ export interface IHair {
|
|
|
32
31
|
};
|
|
33
32
|
}
|
|
34
33
|
export declare abstract class BaseCrossHair<T extends ICartesianCrosshairSpec | IPolarCrosshairSpec> extends BaseComponent<T> implements ICrossHair {
|
|
35
|
-
layoutType:
|
|
36
|
-
gridZIndex:
|
|
37
|
-
labelZIndex:
|
|
34
|
+
layoutType: 'none';
|
|
35
|
+
gridZIndex: number;
|
|
36
|
+
labelZIndex: number;
|
|
38
37
|
trigger: CrossHairTrigger;
|
|
39
38
|
enable: boolean;
|
|
40
39
|
showDefault: boolean;
|
|
@@ -26,7 +26,7 @@ class BaseCrossHair extends base_component_1.BaseComponent {
|
|
|
26
26
|
return "none" === this.triggerOff;
|
|
27
27
|
}
|
|
28
28
|
constructor(spec, options) {
|
|
29
|
-
super(spec,
|
|
29
|
+
super(spec, options), this.layoutType = "none", this.gridZIndex = constant_1.LayoutZIndex.CrossHair_Grid,
|
|
30
30
|
this.labelZIndex = constant_1.LayoutZIndex.CrossHair, this.trigger = "hover", this.triggerOff = "hover",
|
|
31
31
|
this._handleEvent = (0, vutils_1.throttle)((params => {
|
|
32
32
|
const {event: event} = params, x = event.viewX - this.getLayoutStartPoint().x, y = event.viewY - this.getLayoutStartPoint().y;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/crosshair/base.ts"],"names":[],"mappings":"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","file":"base.js","sourcesContent":["import type { Dict, IBoundsLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { throttle, PointService, isEqual, array, isArray, isNumber, get, isBoolean } from '@visactor/vutils';\n\nimport { RenderModeEnum } from '../../typings/spec/common';\nimport type { BaseEventParams, EventType } from '../../event/interface';\nimport type { IModelLayoutOption, IModelRenderOption } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport { BaseComponent } from '../base/base-component';\nimport type { IPadding, Maybe, StringOrNumber } from '../../typings';\nimport { outOfBounds } from '../../util/math';\nimport type { LayoutItem } from '../../model/layout-item';\nimport type { IComponentOption } from '../interface';\nimport type {\n ICrossHair,\n CrossHairTrigger,\n ICartesianCrosshairSpec,\n IPolarCrosshairSpec,\n ICrosshairTheme,\n ICrosshairCategoryFieldSpec\n} from './interface';\nimport { Event_Bubble_Level, Event_Source_Type, LayoutZIndex } from '../../constant';\nimport { getDefaultCrosshairTriggerEventByMode } from './config';\nimport type { IPolarAxis } from '../axis/polar/interface';\nimport type { IAxis } from '../axis/interface';\n\ntype IBound = { x1: number; y1: number; x2: number; y2: number };\ntype IAxisInfo<T> = Map<number, IBound & { axis: T }>;\n\nexport interface IHair {\n /** 是否展示 crosshair 辅助图形 */\n visible: boolean;\n /** 类型 */\n type: 'rect' | 'line';\n /** 样式 */\n style?: Dict<any>;\n label?: {\n /** 文本是否可见 */\n visible: boolean;\n /** 格式化函数 */\n formatMethod?: (text: StringOrNumber | string[], position: string) => string | string[];\n /** 文本样式 */\n textStyle?: Dict<any>;\n minWidth?: number;\n maxWidth?: number;\n padding?: IPadding | number | number[];\n panel?: Dict<any>;\n zIndex?: number;\n };\n}\n\nconst ORIENT_MAP = {\n x: ['top', 'bottom'],\n y: ['left', 'right'],\n category: ['angle'],\n value: ['radius']\n};\n\nexport abstract class BaseCrossHair<T extends ICartesianCrosshairSpec | IPolarCrosshairSpec>\n extends BaseComponent<T>\n implements ICrossHair\n{\n layoutType: LayoutItem['layoutType'] = 'absolute';\n gridZIndex: LayoutItem['layoutZIndex'] = LayoutZIndex.CrossHair_Grid;\n labelZIndex: LayoutItem['layoutZIndex'] = LayoutZIndex.CrossHair;\n trigger: CrossHairTrigger = 'hover';\n enable: boolean;\n showDefault: boolean;\n triggerOff: CrossHairTrigger | 'none' = 'hover'; // 为none则不消失\n\n protected declare _theme: Maybe<ICrosshairTheme>;\n\n get enableRemain(): boolean {\n return this.triggerOff === 'none';\n }\n\n protected _crosshairConfig: ICartesianCrosshairSpec | IPolarCrosshairSpec;\n private _limitBounds: Maybe<IBoundsLike>;\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, {\n ...options\n });\n this.enable = true;\n this.showDefault = true;\n }\n\n protected abstract _showDefaultCrosshair(): void;\n protected abstract _layoutCrosshair(x: number, y: number): void;\n protected abstract _parseFieldInfo(): void;\n abstract hide(): void;\n\n protected _getLimitBounds() {\n if (!this._limitBounds) {\n const { width, height } = this._option.globalInstance.getChart()?.getCanvasRect() ?? {\n width: 0,\n height: 0\n };\n this._limitBounds = {\n x1: 0,\n y1: 0,\n x2: width,\n y2: height\n };\n }\n return this._limitBounds;\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._crosshairConfig = this._spec;\n this._parseCrosshairSpec();\n }\n\n created() {\n super.created();\n // event\n this._initEvent();\n }\n\n /**\n * updateSpec\n */\n _compareSpec() {\n const result = super._compareSpec();\n if (!result.reMake && !isEqual(this._originalSpec, this._spec)) {\n result.reRender = true;\n result.reMake = true;\n }\n return result;\n }\n\n protected _initEvent() {\n const triggerConfig = this._getTriggerEvent();\n if (triggerConfig) {\n const { in: triggerEvent, out: outTriggerEvent } = triggerConfig;\n array(triggerEvent).forEach((eventName, index) =>\n this._registerEvent(eventName, isArray(outTriggerEvent) ? outTriggerEvent[index] : outTriggerEvent)\n );\n }\n }\n\n private _registerEvent(inEventName: EventType, outEventName: EventType) {\n this.event.on(inEventName, { source: Event_Source_Type.chart }, this._handleEvent);\n this.event.on(outEventName, { level: Event_Bubble_Level.chart }, (...arg: any) => {\n if (this.enableRemain) {\n return;\n }\n this.hide();\n });\n }\n\n private _eventOff(eventName: EventType) {\n this.event.off(eventName, this._handleEvent);\n }\n\n updateLayoutAttribute() {\n this._limitBounds = null;\n this._showDefaultCrosshair();\n }\n\n private _handleEvent = throttle((params: any) => {\n const { event } = params as BaseEventParams;\n const x = (event as any).viewX - this.getLayoutStartPoint().x;\n const y = (event as any).viewY - this.getLayoutStartPoint().y;\n // 索引到datum\n this.showDefault = false;\n this._layoutCrosshair(x, y);\n }, 10);\n\n private _getTriggerEvent() {\n const { mode = RenderModeEnum['desktop-browser'] } = this._option;\n const triggerConfig = getDefaultCrosshairTriggerEventByMode(mode);\n if (triggerConfig) {\n const trigger = this.trigger || 'hover';\n const outTrigger = (trigger: CrossHairTrigger) => (trigger === 'click' ? 'clickOut' : 'hoverOut');\n if (isArray(trigger)) {\n // 同时配置了多个触发事件\n let inResult: string[] = [];\n let outResult: string[] = [];\n trigger.forEach(item => {\n inResult = inResult.concat(triggerConfig[item]);\n outResult = outResult.concat(triggerConfig[outTrigger(item)]);\n });\n return {\n in: inResult,\n out: outResult\n };\n }\n return {\n in: triggerConfig[trigger],\n out: triggerConfig[outTrigger(trigger)]\n };\n }\n return null;\n }\n\n protected _getAxisInfoByField<T = IAxis>(field: 'x' | 'y' | 'category' | 'value') {\n // 加判空防止某些特殊时刻(如 updateSpec 时)鼠标滑过图表导致报错\n const axesComponents = this._option?.getComponentsByKey?.('axes') as IAxis[];\n if (!axesComponents?.length) {\n return null;\n }\n let bindingAxesIndex: number[] = get(this._spec, `${field}Field.bindingAxesIndex`);\n if (!bindingAxesIndex) {\n bindingAxesIndex = [];\n axesComponents.forEach((item, index) => {\n if (ORIENT_MAP[field].includes(item.getOrient())) {\n bindingAxesIndex.push(index);\n }\n });\n }\n if (!bindingAxesIndex.length) {\n return null;\n }\n\n const map: IAxisInfo<T> = new Map();\n let x1 = Infinity;\n let y1 = Infinity;\n let x2 = -Infinity;\n let y2 = -Infinity;\n const { x: sx, y: sy } = this.getLayoutStartPoint();\n bindingAxesIndex.forEach(idx => {\n (x1 = Infinity), (y1 = Infinity), (x2 = -Infinity), (y2 = -Infinity);\n const axis = axesComponents.find(axis => axis.getSpecIndex() === idx);\n if (!axis) {\n return;\n }\n const regions = axis.getRegions();\n regions.forEach(r => {\n x1 = Math.min(x1, r.getLayoutStartPoint().x - sx);\n y1 = Math.min(y1, r.getLayoutStartPoint().y - sy);\n x2 = Math.max(x2, r.getLayoutStartPoint().x + r.getLayoutRect().width - sx);\n y2 = Math.max(y2, r.getLayoutStartPoint().y + r.getLayoutRect().height - sy);\n });\n map.set(idx, { x1, y1, x2, y2, axis: axis as unknown as T });\n });\n\n return map;\n }\n\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n onLayoutEnd(ctx: IModelLayoutOption): void {\n this.setLayoutRect(this._regions[0].getLayoutRect());\n this.setLayoutStartPosition(this._regions[0].getLayoutStartPoint());\n\n super.onLayoutEnd(ctx);\n }\n\n onRender(ctx: IModelRenderOption): void {\n // do nothing\n }\n\n protected _releaseEvent(): void {\n const triggerConfig = this._getTriggerEvent();\n if (triggerConfig) {\n const { in: triggerEvent, out: outTriggerEvent } = triggerConfig;\n if (isArray(triggerEvent)) {\n triggerEvent.forEach(eachTriggerEvent => this._eventOff(eachTriggerEvent));\n } else {\n this._eventOff(triggerEvent);\n }\n if (isArray(outTriggerEvent)) {\n outTriggerEvent.forEach(eachTriggerEvent => this._eventOff(eachTriggerEvent));\n } else {\n this._eventOff(outTriggerEvent);\n }\n }\n }\n\n protected _firstSeries<T>(): T | null {\n for (let i = 0; i < this._regions.length; i++) {\n const r = this._regions[i];\n const series = r.getSeries();\n for (let j = 0; j < series.length; j++) {\n const s = series[j];\n if (s) {\n return s as unknown as T;\n }\n }\n }\n return null;\n }\n\n protected _parseCrosshairSpec() {\n this._parseFieldInfo();\n\n const { trigger, triggerOff, labelZIndex, gridZIndex } = this._crosshairConfig;\n if (trigger) {\n this.trigger = trigger;\n }\n if (triggerOff) {\n this.triggerOff = triggerOff;\n } else {\n this.triggerOff = this.trigger;\n }\n if (labelZIndex !== undefined) {\n this.labelZIndex = labelZIndex;\n }\n if (gridZIndex !== undefined) {\n this.gridZIndex = gridZIndex;\n }\n }\n\n protected _parseField(field: ICrosshairCategoryFieldSpec, fieldName: string) {\n const hair = {} as any;\n const { line, label, visible } = field;\n hair.visible = visible;\n hair.type = line?.type || 'line';\n const style = line?.style || {};\n const { strokeOpacity, fillOpacity, opacity, stroke, fill, lineWidth, ...restStyle } = style as any;\n const isLineType = hair.type === 'line';\n let finalOpacity = isLineType ? strokeOpacity : fillOpacity;\n if (isNumber(opacity)) {\n finalOpacity = (finalOpacity ?? 1) * opacity;\n }\n hair.style = {\n opacity: finalOpacity,\n pickable: false,\n visible: isBoolean(line?.visible) ? line.visible : true,\n ...restStyle\n };\n if (isLineType) {\n hair.style.stroke = stroke || fill;\n hair.style.lineWidth = line?.width || lineWidth || 2;\n } else {\n hair.style.fill = fill || stroke;\n\n if (this._originalSpec[fieldName]?.line?.style?.stroke) {\n hair.style.stroke = this._originalSpec[fieldName].line.style.stroke;\n }\n if (typeof line.width === 'string') {\n const percent = parseInt(line.width.substring(0, line.width.length - 1), 10) / 100;\n hair.style.sizePercent = percent;\n } else if (typeof line?.width === 'number') {\n hair.style.size = line.width;\n }\n }\n const labelBackground = label?.labelBackground;\n const labelStyle = label?.style || {};\n const { fill: rectFill = 'rgba(47, 59, 82, 0.9)', stroke: rectStroke, ...rectStyle } = labelBackground?.style || {};\n hair.label = {\n visible: !!label?.visible,\n formatMethod: label?.formatMethod,\n minWidth: labelBackground?.minWidth,\n maxWidth: labelBackground?.maxWidth,\n padding: labelBackground?.padding,\n textStyle: {\n fontSize: 14,\n pickable: false,\n ...labelStyle,\n fill: labelStyle?.fill ?? '#fff',\n stroke: get(labelStyle, 'stroke')\n },\n panel: {\n visible: isBoolean(labelBackground?.visible) ? labelBackground?.visible : !!labelBackground,\n pickable: false,\n fill: rectFill,\n stroke: rectStroke,\n ...rectStyle\n },\n zIndex: this.labelZIndex,\n childrenPickable: false,\n pickable: false\n };\n\n return hair;\n }\n\n protected _filterAxisByPoint<T>(axisMap: IAxisInfo<T>, relativeX: number, relativeY: number) {\n axisMap &&\n axisMap.forEach((item, i) => {\n const axis = item.axis as unknown as IAxis | IPolarAxis;\n if (outOfBounds(item, relativeX, relativeY)) {\n axisMap.delete(axis.getSpecIndex());\n }\n if ((axis as IPolarAxis).type.startsWith('polarAxis')) {\n // 极坐标下需要判断是否在半径内\n const center = (axis as IPolarAxis).getCenter();\n const innerRadius = (axis as IPolarAxis).getInnerRadius();\n const outerRadius = (axis as IPolarAxis).getOuterRadius();\n const distance = PointService.distancePP({ x: relativeX, y: relativeY }, center);\n if (distance > outerRadius || distance < innerRadius) {\n axisMap.delete((axis as IPolarAxis).getSpecIndex());\n }\n }\n });\n return axisMap;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/crosshair/base.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEA,6CAA6G;AAE7G,sDAA2D;AAI3D,2DAAuD;AAEvD,0CAA8C;AAU9C,6CAAqF;AACrF,qCAAiE;AA6BjE,MAAM,UAAU,GAAG;IACjB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC;IACpB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,OAAO,CAAC;IACnB,KAAK,EAAE,CAAC,QAAQ,CAAC;CAClB,CAAC;AAEF,MAAsB,aACpB,SAAQ,8BAAgB;IAaxB,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC;IACpC,CAAC;IAKD,YAAY,IAAO,EAAE,OAAyB;QAC5C,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAlBvB,eAAU,GAAW,MAAM,CAAC;QAC5B,eAAU,GAAW,uBAAY,CAAC,cAAc,CAAC;QACjD,gBAAW,GAAW,uBAAY,CAAC,SAAS,CAAC;QAC7C,YAAO,GAAqB,OAAO,CAAC;QAGpC,eAAU,GAA8B,OAAO,CAAC;QA2FxC,iBAAY,GAAG,IAAA,iBAAQ,EAAC,CAAC,MAAW,EAAE,EAAE;YAC9C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAyB,CAAC;YAC5C,MAAM,CAAC,GAAI,KAAa,CAAC,KAAK,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YAC9D,MAAM,CAAC,GAAI,KAAa,CAAC,KAAK,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;YAE9D,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,CAAC,EAAE,EAAE,CAAC,CAAC;QArFL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAOS,eAAe;;QACvB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAA,MAAA,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,0CAAE,aAAa,EAAE,mCAAI;gBACnF,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;aACV,CAAC;YACF,IAAI,CAAC,YAAY,GAAG;gBAClB,EAAE,EAAE,CAAC;gBACL,EAAE,EAAE,CAAC;gBACL,EAAE,EAAE,KAAK;gBACT,EAAE,EAAE,MAAM;aACX,CAAC;SACH;QACD,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,eAAe;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC;QACnC,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,KAAK,CAAC,OAAO,EAAE,CAAC;QAEhB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAKD,YAAY;QACV,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,IAAA,gBAAO,EAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;YAC9D,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;YACvB,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;SACtB;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,UAAU;QAClB,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9C,IAAI,aAAa,EAAE;YACjB,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,aAAa,CAAC;YACjE,IAAA,cAAK,EAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAC/C,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,IAAA,gBAAO,EAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CACpG,CAAC;SACH;IACH,CAAC;IAEO,cAAc,CAAC,WAAsB,EAAE,YAAuB;QACpE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,4BAAiB,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACnF,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,GAAQ,EAAE,EAAE;YAC/E,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,OAAO;aACR;YACD,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,SAAS,CAAC,SAAoB;QACpC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/B,CAAC;IAWO,gBAAgB;QACtB,MAAM,EAAE,IAAI,GAAG,uBAAc,CAAC,iBAAiB,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QAClE,MAAM,aAAa,GAAG,IAAA,8CAAqC,EAAC,IAAI,CAAC,CAAC;QAClE,IAAI,aAAa,EAAE;YACjB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC;YACxC,MAAM,UAAU,GAAG,CAAC,OAAyB,EAAE,EAAE,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAClG,IAAI,IAAA,gBAAO,EAAC,OAAO,CAAC,EAAE;gBAEpB,IAAI,QAAQ,GAAa,EAAE,CAAC;gBAC5B,IAAI,SAAS,GAAa,EAAE,CAAC;gBAC7B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACrB,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;oBAChD,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChE,CAAC,CAAC,CAAC;gBACH,OAAO;oBACL,EAAE,EAAE,QAAQ;oBACZ,GAAG,EAAE,SAAS;iBACf,CAAC;aACH;YACD,OAAO;gBACL,EAAE,EAAE,aAAa,CAAC,OAAO,CAAC;gBAC1B,GAAG,EAAE,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;aACxC,CAAC;SACH;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAES,mBAAmB,CAAY,KAAuC;;QAE9E,MAAM,cAAc,GAAG,MAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,kBAAkB,mDAAG,MAAM,CAAY,CAAC;QAC7E,IAAI,CAAC,CAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,MAAM,CAAA,EAAE;YAC3B,OAAO,IAAI,CAAC;SACb;QACD,IAAI,gBAAgB,GAAa,IAAA,YAAG,EAAC,IAAI,CAAC,KAAK,EAAE,GAAG,KAAK,wBAAwB,CAAC,CAAC;QACnF,IAAI,CAAC,gBAAgB,EAAE;YACrB,gBAAgB,GAAG,EAAE,CAAC;YACtB,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBACrC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE;oBAChD,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC9B;YACH,CAAC,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAC5B,OAAO,IAAI,CAAC;SACb;QAED,MAAM,GAAG,GAAiB,IAAI,GAAG,EAAE,CAAC;QACpC,IAAI,EAAE,GAAG,QAAQ,CAAC;QAClB,IAAI,EAAE,GAAG,QAAQ,CAAC;QAClB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC;QACnB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC;QACnB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACpD,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YAC7B,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YACrE,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,GAAG,CAAC,CAAC;YACtE,IAAI,CAAC,IAAI,EAAE;gBACT,OAAO;aACR;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAClB,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBAClD,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;gBAClD,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;gBAC5E,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;YAC/E,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAoB,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC;IAED,aAAa,CAAC,OAAkB;IAEhC,CAAC;IAED,WAAW,CAAC,GAAuB;QACjC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAEpE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,QAAQ,CAAC,GAAuB;IAEhC,CAAC;IAES,aAAa;QACrB,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9C,IAAI,aAAa,EAAE;YACjB,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,aAAa,CAAC;YACjE,IAAI,IAAA,gBAAO,EAAC,YAAY,CAAC,EAAE;gBACzB,YAAY,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;aAC5E;iBAAM;gBACL,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;aAC9B;YACD,IAAI,IAAA,gBAAO,EAAC,eAAe,CAAC,EAAE;gBAC5B,eAAe,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;aAC/E;iBAAM;gBACL,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;aACjC;SACF;IACH,CAAC;IAES,YAAY;QACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACtC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,EAAE;oBACL,OAAO,CAAiB,CAAC;iBAC1B;aACF;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAES,mBAAmB;QAC3B,IAAI,CAAC,eAAe,EAAE,CAAC;QAEvB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC/E,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SACxB;QACD,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAC9B;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;SAChC;QACD,IAAI,WAAW,KAAK,SAAS,EAAE;YAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAChC;QACD,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAC9B;IACH,CAAC;IAES,WAAW,CAAC,KAAkC,EAAE,SAAiB;;QACzE,MAAM,IAAI,GAAG,EAAS,CAAC;QACvB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,KAAI,MAAM,CAAC;QACjC,MAAM,KAAK,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,KAAI,EAAE,CAAC;QAChC,MAAM,KAAiF,KAAY,EAA7F,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,OAA+B,EAA1B,SAAS,cAA5E,0EAA8E,CAAe,CAAC;QACpG,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;QACxC,IAAI,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC;QAC5D,IAAI,IAAA,iBAAQ,EAAC,OAAO,CAAC,EAAE;YACrB,YAAY,GAAG,CAAC,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,CAAC,CAAC,GAAG,OAAO,CAAC;SAC9C;QACD,IAAI,CAAC,KAAK,mBACR,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,KAAK,EACf,OAAO,EAAE,IAAA,kBAAS,EAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IACpD,SAAS,CACb,CAAC;QACF,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,KAAI,SAAS,IAAI,CAAC,CAAC;SACtD;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,MAAM,CAAC;YAEjC,IAAI,MAAA,MAAA,MAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,0CAAE,IAAI,0CAAE,KAAK,0CAAE,MAAM,EAAE;gBACtD,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;aACrE;YACD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;gBAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;gBACnF,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC;aAClC;iBAAM,IAAI,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,CAAA,KAAK,QAAQ,EAAE;gBAC1C,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;aAC9B;SACF;QACD,MAAM,eAAe,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,CAAC;QAC/C,MAAM,UAAU,GAAG,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,KAAI,EAAE,CAAC;QACtC,MAAM,KAAiF,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,KAAI,EAAE,EAA7G,EAAE,IAAI,EAAE,QAAQ,GAAG,uBAAuB,EAAE,MAAM,EAAE,UAAU,OAA+C,EAA1C,SAAS,cAA5E,kBAA8E,CAA+B,CAAC;QACpH,IAAI,CAAC,KAAK,GAAG;YACX,OAAO,EAAE,CAAC,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAA;YACzB,YAAY,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY;YACjC,QAAQ,EAAE,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ;YACnC,QAAQ,EAAE,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,QAAQ;YACnC,OAAO,EAAE,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO;YACjC,SAAS,gCACP,QAAQ,EAAE,EAAE,EACZ,QAAQ,EAAE,KAAK,IACZ,UAAU,KACb,IAAI,EAAE,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,mCAAI,MAAM,EAChC,MAAM,EAAE,IAAA,YAAG,EAAC,UAAU,EAAE,QAAQ,CAAC,GAClC;YACD,KAAK,kBACH,OAAO,EAAE,IAAA,kBAAS,EAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,CAAC,CAAC,CAAC,CAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,EAC3F,QAAQ,EAAE,KAAK,EACf,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,UAAU,IACf,SAAS,CACb;YACD,MAAM,EAAE,IAAI,CAAC,WAAW;YACxB,gBAAgB,EAAE,KAAK;YACvB,QAAQ,EAAE,KAAK;SAChB,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAES,kBAAkB,CAAI,OAAqB,EAAE,SAAiB,EAAE,SAAiB;QACzF,OAAO;YACL,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAqC,CAAC;gBACxD,IAAI,IAAA,kBAAW,EAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE;oBAC3C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;iBACrC;gBACD,IAAK,IAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;oBAErD,MAAM,MAAM,GAAI,IAAmB,CAAC,SAAS,EAAE,CAAC;oBAChD,MAAM,WAAW,GAAI,IAAmB,CAAC,cAAc,EAAE,CAAC;oBAC1D,MAAM,WAAW,GAAI,IAAmB,CAAC,cAAc,EAAE,CAAC;oBAC1D,MAAM,QAAQ,GAAG,qBAAY,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;oBACjF,IAAI,QAAQ,GAAG,WAAW,IAAI,QAAQ,GAAG,WAAW,EAAE;wBACpD,OAAO,CAAC,MAAM,CAAE,IAAmB,CAAC,YAAY,EAAE,CAAC,CAAC;qBACrD;iBACF;YACH,CAAC,CAAC,CAAC;QACL,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AA5UD,sCA4UC","file":"base.js","sourcesContent":["import type { Dict, IBoundsLike } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { throttle, PointService, isEqual, array, isArray, isNumber, get, isBoolean } from '@visactor/vutils';\n\nimport { RenderModeEnum } from '../../typings/spec/common';\nimport type { BaseEventParams, EventType } from '../../event/interface';\nimport type { IModelLayoutOption, IModelRenderOption } from '../../model/interface';\nimport type { IRegion } from '../../region/interface';\nimport { BaseComponent } from '../base/base-component';\nimport type { IPadding, Maybe, StringOrNumber } from '../../typings';\nimport { outOfBounds } from '../../util/math';\nimport type { IComponentOption } from '../interface';\nimport type {\n ICrossHair,\n CrossHairTrigger,\n ICartesianCrosshairSpec,\n IPolarCrosshairSpec,\n ICrosshairTheme,\n ICrosshairCategoryFieldSpec\n} from './interface';\nimport { Event_Bubble_Level, Event_Source_Type, LayoutZIndex } from '../../constant';\nimport { getDefaultCrosshairTriggerEventByMode } from './config';\nimport type { IPolarAxis } from '../axis/polar/interface';\nimport type { IAxis } from '../axis/interface';\n\ntype IBound = { x1: number; y1: number; x2: number; y2: number };\ntype IAxisInfo<T> = Map<number, IBound & { axis: T }>;\n\nexport interface IHair {\n /** 是否展示 crosshair 辅助图形 */\n visible: boolean;\n /** 类型 */\n type: 'rect' | 'line';\n /** 样式 */\n style?: Dict<any>;\n label?: {\n /** 文本是否可见 */\n visible: boolean;\n /** 格式化函数 */\n formatMethod?: (text: StringOrNumber | string[], position: string) => string | string[];\n /** 文本样式 */\n textStyle?: Dict<any>;\n minWidth?: number;\n maxWidth?: number;\n padding?: IPadding | number | number[];\n panel?: Dict<any>;\n zIndex?: number;\n };\n}\n\nconst ORIENT_MAP = {\n x: ['top', 'bottom'],\n y: ['left', 'right'],\n category: ['angle'],\n value: ['radius']\n};\n\nexport abstract class BaseCrossHair<T extends ICartesianCrosshairSpec | IPolarCrosshairSpec>\n extends BaseComponent<T>\n implements ICrossHair\n{\n layoutType: 'none' = 'none';\n gridZIndex: number = LayoutZIndex.CrossHair_Grid;\n labelZIndex: number = LayoutZIndex.CrossHair;\n trigger: CrossHairTrigger = 'hover';\n enable: boolean;\n showDefault: boolean;\n triggerOff: CrossHairTrigger | 'none' = 'hover'; // 为none则不消失\n\n protected declare _theme: Maybe<ICrosshairTheme>;\n\n get enableRemain(): boolean {\n return this.triggerOff === 'none';\n }\n\n protected _crosshairConfig: ICartesianCrosshairSpec | IPolarCrosshairSpec;\n private _limitBounds: Maybe<IBoundsLike>;\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this.enable = true;\n this.showDefault = true;\n }\n\n protected abstract _showDefaultCrosshair(): void;\n protected abstract _layoutCrosshair(x: number, y: number): void;\n protected abstract _parseFieldInfo(): void;\n abstract hide(): void;\n\n protected _getLimitBounds() {\n if (!this._limitBounds) {\n const { width, height } = this._option.globalInstance.getChart()?.getCanvasRect() ?? {\n width: 0,\n height: 0\n };\n this._limitBounds = {\n x1: 0,\n y1: 0,\n x2: width,\n y2: height\n };\n }\n return this._limitBounds;\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._crosshairConfig = this._spec;\n this._parseCrosshairSpec();\n }\n\n created() {\n super.created();\n // event\n this._initEvent();\n }\n\n /**\n * updateSpec\n */\n _compareSpec() {\n const result = super._compareSpec();\n if (!result.reMake && !isEqual(this._originalSpec, this._spec)) {\n result.reRender = true;\n result.reMake = true;\n }\n return result;\n }\n\n protected _initEvent() {\n const triggerConfig = this._getTriggerEvent();\n if (triggerConfig) {\n const { in: triggerEvent, out: outTriggerEvent } = triggerConfig;\n array(triggerEvent).forEach((eventName, index) =>\n this._registerEvent(eventName, isArray(outTriggerEvent) ? outTriggerEvent[index] : outTriggerEvent)\n );\n }\n }\n\n private _registerEvent(inEventName: EventType, outEventName: EventType) {\n this.event.on(inEventName, { source: Event_Source_Type.chart }, this._handleEvent);\n this.event.on(outEventName, { level: Event_Bubble_Level.chart }, (...arg: any) => {\n if (this.enableRemain) {\n return;\n }\n this.hide();\n });\n }\n\n private _eventOff(eventName: EventType) {\n this.event.off(eventName, this._handleEvent);\n }\n\n updateLayoutAttribute() {\n this._limitBounds = null;\n this._showDefaultCrosshair();\n }\n\n private _handleEvent = throttle((params: any) => {\n const { event } = params as BaseEventParams;\n const x = (event as any).viewX - this.getLayoutStartPoint().x;\n const y = (event as any).viewY - this.getLayoutStartPoint().y;\n // 索引到datum\n this.showDefault = false;\n this._layoutCrosshair(x, y);\n }, 10);\n\n private _getTriggerEvent() {\n const { mode = RenderModeEnum['desktop-browser'] } = this._option;\n const triggerConfig = getDefaultCrosshairTriggerEventByMode(mode);\n if (triggerConfig) {\n const trigger = this.trigger || 'hover';\n const outTrigger = (trigger: CrossHairTrigger) => (trigger === 'click' ? 'clickOut' : 'hoverOut');\n if (isArray(trigger)) {\n // 同时配置了多个触发事件\n let inResult: string[] = [];\n let outResult: string[] = [];\n trigger.forEach(item => {\n inResult = inResult.concat(triggerConfig[item]);\n outResult = outResult.concat(triggerConfig[outTrigger(item)]);\n });\n return {\n in: inResult,\n out: outResult\n };\n }\n return {\n in: triggerConfig[trigger],\n out: triggerConfig[outTrigger(trigger)]\n };\n }\n return null;\n }\n\n protected _getAxisInfoByField<T = IAxis>(field: 'x' | 'y' | 'category' | 'value') {\n // 加判空防止某些特殊时刻(如 updateSpec 时)鼠标滑过图表导致报错\n const axesComponents = this._option?.getComponentsByKey?.('axes') as IAxis[];\n if (!axesComponents?.length) {\n return null;\n }\n let bindingAxesIndex: number[] = get(this._spec, `${field}Field.bindingAxesIndex`);\n if (!bindingAxesIndex) {\n bindingAxesIndex = [];\n axesComponents.forEach((item, index) => {\n if (ORIENT_MAP[field].includes(item.getOrient())) {\n bindingAxesIndex.push(index);\n }\n });\n }\n if (!bindingAxesIndex.length) {\n return null;\n }\n\n const map: IAxisInfo<T> = new Map();\n let x1 = Infinity;\n let y1 = Infinity;\n let x2 = -Infinity;\n let y2 = -Infinity;\n const { x: sx, y: sy } = this.getLayoutStartPoint();\n bindingAxesIndex.forEach(idx => {\n (x1 = Infinity), (y1 = Infinity), (x2 = -Infinity), (y2 = -Infinity);\n const axis = axesComponents.find(axis => axis.getSpecIndex() === idx);\n if (!axis) {\n return;\n }\n const regions = axis.getRegions();\n regions.forEach(r => {\n x1 = Math.min(x1, r.getLayoutStartPoint().x - sx);\n y1 = Math.min(y1, r.getLayoutStartPoint().y - sy);\n x2 = Math.max(x2, r.getLayoutStartPoint().x + r.getLayoutRect().width - sx);\n y2 = Math.max(y2, r.getLayoutStartPoint().y + r.getLayoutRect().height - sy);\n });\n map.set(idx, { x1, y1, x2, y2, axis: axis as unknown as T });\n });\n\n return map;\n }\n\n changeRegions(regions: IRegion[]): void {\n // do nothing\n }\n\n onLayoutEnd(ctx: IModelLayoutOption): void {\n this.setLayoutRect(this._regions[0].getLayoutRect());\n this.setLayoutStartPosition(this._regions[0].getLayoutStartPoint());\n\n super.onLayoutEnd(ctx);\n }\n\n onRender(ctx: IModelRenderOption): void {\n // do nothing\n }\n\n protected _releaseEvent(): void {\n const triggerConfig = this._getTriggerEvent();\n if (triggerConfig) {\n const { in: triggerEvent, out: outTriggerEvent } = triggerConfig;\n if (isArray(triggerEvent)) {\n triggerEvent.forEach(eachTriggerEvent => this._eventOff(eachTriggerEvent));\n } else {\n this._eventOff(triggerEvent);\n }\n if (isArray(outTriggerEvent)) {\n outTriggerEvent.forEach(eachTriggerEvent => this._eventOff(eachTriggerEvent));\n } else {\n this._eventOff(outTriggerEvent);\n }\n }\n }\n\n protected _firstSeries<T>(): T | null {\n for (let i = 0; i < this._regions.length; i++) {\n const r = this._regions[i];\n const series = r.getSeries();\n for (let j = 0; j < series.length; j++) {\n const s = series[j];\n if (s) {\n return s as unknown as T;\n }\n }\n }\n return null;\n }\n\n protected _parseCrosshairSpec() {\n this._parseFieldInfo();\n\n const { trigger, triggerOff, labelZIndex, gridZIndex } = this._crosshairConfig;\n if (trigger) {\n this.trigger = trigger;\n }\n if (triggerOff) {\n this.triggerOff = triggerOff;\n } else {\n this.triggerOff = this.trigger;\n }\n if (labelZIndex !== undefined) {\n this.labelZIndex = labelZIndex;\n }\n if (gridZIndex !== undefined) {\n this.gridZIndex = gridZIndex;\n }\n }\n\n protected _parseField(field: ICrosshairCategoryFieldSpec, fieldName: string) {\n const hair = {} as any;\n const { line, label, visible } = field;\n hair.visible = visible;\n hair.type = line?.type || 'line';\n const style = line?.style || {};\n const { strokeOpacity, fillOpacity, opacity, stroke, fill, lineWidth, ...restStyle } = style as any;\n const isLineType = hair.type === 'line';\n let finalOpacity = isLineType ? strokeOpacity : fillOpacity;\n if (isNumber(opacity)) {\n finalOpacity = (finalOpacity ?? 1) * opacity;\n }\n hair.style = {\n opacity: finalOpacity,\n pickable: false,\n visible: isBoolean(line?.visible) ? line.visible : true,\n ...restStyle\n };\n if (isLineType) {\n hair.style.stroke = stroke || fill;\n hair.style.lineWidth = line?.width || lineWidth || 2;\n } else {\n hair.style.fill = fill || stroke;\n\n if (this._originalSpec[fieldName]?.line?.style?.stroke) {\n hair.style.stroke = this._originalSpec[fieldName].line.style.stroke;\n }\n if (typeof line.width === 'string') {\n const percent = parseInt(line.width.substring(0, line.width.length - 1), 10) / 100;\n hair.style.sizePercent = percent;\n } else if (typeof line?.width === 'number') {\n hair.style.size = line.width;\n }\n }\n const labelBackground = label?.labelBackground;\n const labelStyle = label?.style || {};\n const { fill: rectFill = 'rgba(47, 59, 82, 0.9)', stroke: rectStroke, ...rectStyle } = labelBackground?.style || {};\n hair.label = {\n visible: !!label?.visible,\n formatMethod: label?.formatMethod,\n minWidth: labelBackground?.minWidth,\n maxWidth: labelBackground?.maxWidth,\n padding: labelBackground?.padding,\n textStyle: {\n fontSize: 14,\n pickable: false,\n ...labelStyle,\n fill: labelStyle?.fill ?? '#fff',\n stroke: get(labelStyle, 'stroke')\n },\n panel: {\n visible: isBoolean(labelBackground?.visible) ? labelBackground?.visible : !!labelBackground,\n pickable: false,\n fill: rectFill,\n stroke: rectStroke,\n ...rectStyle\n },\n zIndex: this.labelZIndex,\n childrenPickable: false,\n pickable: false\n };\n\n return hair;\n }\n\n protected _filterAxisByPoint<T>(axisMap: IAxisInfo<T>, relativeX: number, relativeY: number) {\n axisMap &&\n axisMap.forEach((item, i) => {\n const axis = item.axis as unknown as IAxis | IPolarAxis;\n if (outOfBounds(item, relativeX, relativeY)) {\n axisMap.delete(axis.getSpecIndex());\n }\n if ((axis as IPolarAxis).type.startsWith('polarAxis')) {\n // 极坐标下需要判断是否在半径内\n const center = (axis as IPolarAxis).getCenter();\n const innerRadius = (axis as IPolarAxis).getInnerRadius();\n const outerRadius = (axis as IPolarAxis).getOuterRadius();\n const distance = PointService.distancePP({ x: relativeX, y: relativeY }, center);\n if (distance > outerRadius || distance < innerRadius) {\n axisMap.delete((axis as IPolarAxis).getSpecIndex());\n }\n }\n });\n return axisMap;\n }\n}\n"]}
|
|
@@ -7,6 +7,8 @@ import type { IGraphic } from '@visactor/vrender-core';
|
|
|
7
7
|
import type { IAxis } from '../axis/interface';
|
|
8
8
|
import type { StringOrNumber } from '../../typings';
|
|
9
9
|
export declare class CartesianCrossHair<T extends ICartesianCrosshairSpec = ICartesianCrosshairSpec> extends BaseCrossHair<T> {
|
|
10
|
+
static specKey: string;
|
|
11
|
+
specKey: string;
|
|
10
12
|
static type: ComponentTypeEnum;
|
|
11
13
|
type: ComponentTypeEnum;
|
|
12
14
|
name: string;
|
|
@@ -15,21 +15,18 @@ var LayoutType;
|
|
|
15
15
|
|
|
16
16
|
class CartesianCrossHair extends base_1.BaseCrossHair {
|
|
17
17
|
static createComponent(spec, options) {
|
|
18
|
-
const crosshairSpec = spec.crosshair
|
|
18
|
+
const crosshairSpec = spec.crosshair;
|
|
19
19
|
if ((0, vutils_1.isNil)(crosshairSpec)) return;
|
|
20
|
-
if (!(0, vutils_1.isArray)(crosshairSpec)) return crosshairSpec.xField || crosshairSpec.yField ? new CartesianCrossHair(crosshairSpec,
|
|
21
|
-
specKey: "crosshair"
|
|
22
|
-
})) : void 0;
|
|
20
|
+
if (!(0, vutils_1.isArray)(crosshairSpec)) return crosshairSpec.xField || crosshairSpec.yField ? new CartesianCrossHair(crosshairSpec, options) : void 0;
|
|
23
21
|
const components = [];
|
|
24
22
|
return crosshairSpec.forEach(((s, i) => {
|
|
25
23
|
(s.xField || s.yField) && components.push(new CartesianCrossHair(s, Object.assign(Object.assign({}, options), {
|
|
26
|
-
specIndex: i
|
|
27
|
-
specKey: "crosshair"
|
|
24
|
+
specIndex: i
|
|
28
25
|
})));
|
|
29
26
|
})), components;
|
|
30
27
|
}
|
|
31
28
|
constructor(spec, options) {
|
|
32
|
-
super(spec,
|
|
29
|
+
super(spec, options), this.specKey = "crosshair", this.type = type_1.ComponentTypeEnum.cartesianCrosshair,
|
|
33
30
|
this.name = type_1.ComponentTypeEnum.cartesianCrosshair, this.currValueX = new Map,
|
|
34
31
|
this.currValueY = new Map;
|
|
35
32
|
}
|
|
@@ -384,7 +381,8 @@ class CartesianCrossHair extends base_1.BaseCrossHair {
|
|
|
384
381
|
}
|
|
385
382
|
}
|
|
386
383
|
|
|
387
|
-
exports.CartesianCrossHair = CartesianCrossHair, CartesianCrossHair.
|
|
384
|
+
exports.CartesianCrossHair = CartesianCrossHair, CartesianCrossHair.specKey = "crosshair",
|
|
385
|
+
CartesianCrossHair.type = type_1.ComponentTypeEnum.cartesianCrosshair;
|
|
388
386
|
|
|
389
387
|
const registerCartesianCrossHair = () => {
|
|
390
388
|
factory_1.Factory.registerComponent(CartesianCrossHair.type, CartesianCrossHair);
|