@visactor/vchart 1.10.0-alpha.4 → 1.10.0-alpha.6
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 +32867 -32219
- package/build/index.min.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/animation/utils.js +5 -5
- package/cjs/animation/utils.js.map +1 -1
- package/cjs/chart/base/base-chart-transformer.js +7 -9
- package/cjs/chart/base/base-chart-transformer.js.map +1 -1
- package/cjs/chart/base/base-chart.d.ts +1 -1
- package/cjs/chart/base/base-chart.js.map +1 -1
- package/cjs/chart/interface/chart.d.ts +1 -1
- package/cjs/chart/interface/chart.js.map +1 -1
- package/cjs/chart/progress/circular/circular-progress-transformer.js +2 -0
- package/cjs/chart/progress/circular/circular-progress-transformer.js.map +1 -1
- package/cjs/compile/compiler.d.ts +1 -1
- package/cjs/compile/compiler.js +3 -3
- package/cjs/compile/compiler.js.map +1 -1
- package/cjs/compile/mark/interface.js.map +1 -1
- package/cjs/component/axis/base-axis.d.ts +9 -6
- package/cjs/component/axis/base-axis.js +37 -6
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/axis.d.ts +1 -5
- package/cjs/component/axis/cartesian/axis.js +9 -31
- package/cjs/component/axis/cartesian/axis.js.map +1 -1
- package/cjs/component/axis/cartesian/time-axis.d.ts +1 -1
- package/cjs/component/axis/cartesian/time-axis.js +3 -3
- package/cjs/component/axis/cartesian/time-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/util/index.d.ts +0 -1
- package/cjs/component/axis/cartesian/util/index.js +1 -1
- package/cjs/component/axis/cartesian/util/index.js.map +1 -1
- package/cjs/component/axis/interface/common.d.ts +2 -1
- package/cjs/component/axis/interface/common.js.map +1 -1
- package/cjs/component/axis/interface/spec.d.ts +2 -0
- package/cjs/component/axis/interface/spec.js.map +1 -1
- package/cjs/component/axis/polar/axis.d.ts +1 -5
- package/cjs/component/axis/polar/axis.js +5 -23
- package/cjs/component/axis/polar/axis.js.map +1 -1
- package/cjs/component/base/util.d.ts +5 -0
- package/cjs/component/base/util.js +24 -16
- package/cjs/component/base/util.js.map +1 -1
- package/cjs/component/crosshair/base.d.ts +4 -1
- package/cjs/component/crosshair/base.js +1 -10
- package/cjs/component/crosshair/base.js.map +1 -1
- package/cjs/component/crosshair/cartesian.d.ts +1 -7
- package/cjs/component/crosshair/cartesian.js +17 -208
- package/cjs/component/crosshair/cartesian.js.map +1 -1
- package/cjs/component/crosshair/config.js.map +1 -1
- package/cjs/component/crosshair/interface/cartesian.d.ts +46 -0
- package/cjs/component/crosshair/interface/cartesian.js +6 -0
- package/cjs/component/crosshair/interface/cartesian.js.map +1 -0
- package/cjs/component/crosshair/interface/common.d.ts +7 -0
- package/cjs/component/crosshair/interface/common.js +6 -0
- package/cjs/component/crosshair/interface/common.js.map +1 -0
- package/cjs/component/crosshair/interface/index.d.ts +3 -0
- package/cjs/component/crosshair/interface/index.js +3 -1
- package/cjs/component/crosshair/interface/index.js.map +1 -1
- package/cjs/component/crosshair/interface/polar.d.ts +23 -0
- package/cjs/component/crosshair/interface/polar.js +6 -0
- package/cjs/component/crosshair/interface/polar.js.map +1 -0
- package/cjs/component/crosshair/interface/spec.d.ts +1 -0
- package/cjs/component/crosshair/interface/spec.js.map +1 -1
- package/cjs/component/crosshair/polar.d.ts +2 -2
- package/cjs/component/crosshair/polar.js +17 -114
- package/cjs/component/crosshair/polar.js.map +1 -1
- package/cjs/component/crosshair/utils/cartesian.d.ts +32 -0
- package/cjs/component/crosshair/utils/cartesian.js +238 -0
- package/cjs/component/crosshair/utils/cartesian.js.map +1 -0
- package/{esm/component/crosshair/util.d.ts → cjs/component/crosshair/utils/common.d.ts} +3 -3
- package/cjs/component/crosshair/{util.js → utils/common.js} +2 -2
- package/cjs/component/crosshair/utils/common.js.map +1 -0
- package/cjs/component/crosshair/utils/index.d.ts +1 -0
- package/cjs/component/crosshair/utils/index.js +21 -0
- package/cjs/component/crosshair/utils/index.js.map +1 -0
- package/cjs/component/crosshair/utils/polar.d.ts +37 -0
- package/cjs/component/crosshair/utils/polar.js +133 -0
- package/cjs/component/crosshair/utils/polar.js.map +1 -0
- package/cjs/component/custom-mark/custom-mark.js +2 -1
- package/cjs/component/custom-mark/custom-mark.js.map +1 -1
- package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +1 -0
- package/cjs/component/data-zoom/data-zoom/data-zoom.js +10 -3
- package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/cjs/component/data-zoom/data-zoom/interface.d.ts +4 -5
- package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
- package/cjs/component/data-zoom/scroll-bar/interface.d.ts +2 -4
- package/cjs/component/data-zoom/scroll-bar/interface.js.map +1 -1
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +2 -2
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
- package/cjs/component/data-zoom/util.d.ts +0 -4
- package/cjs/component/data-zoom/util.js +2 -10
- package/cjs/component/data-zoom/util.js.map +1 -1
- package/cjs/component/index.d.ts +1 -0
- package/cjs/component/index.js +16 -1
- package/cjs/component/index.js.map +1 -1
- package/cjs/component/interface/theme.d.ts +8 -0
- package/cjs/component/interface/theme.js.map +1 -1
- package/cjs/component/label/interface.d.ts +1 -1
- package/cjs/component/label/interface.js.map +1 -1
- package/cjs/component/label/util.js +4 -4
- package/cjs/component/label/util.js.map +1 -1
- package/cjs/component/legend/continuous/interface.d.ts +6 -12
- package/cjs/component/legend/continuous/interface.js.map +1 -1
- package/cjs/component/legend/discrete/interface.d.ts +17 -4
- package/cjs/component/legend/discrete/interface.js.map +1 -1
- package/cjs/component/legend/discrete/legend.d.ts +1 -0
- package/cjs/component/legend/discrete/legend.js +11 -2
- package/cjs/component/legend/discrete/legend.js.map +1 -1
- package/cjs/component/legend/discrete/util.js +6 -4
- package/cjs/component/legend/discrete/util.js.map +1 -1
- package/cjs/component/legend/util.d.ts +1 -2
- package/cjs/component/legend/util.js +2 -6
- package/cjs/component/legend/util.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/utils/transform.js.map +1 -1
- package/cjs/component/tooltip/interface/common.d.ts +2 -2
- package/cjs/component/tooltip/interface/common.js.map +1 -1
- package/cjs/component/tooltip/interface/event.d.ts +0 -2
- package/cjs/component/tooltip/interface/event.js.map +1 -1
- package/cjs/component/tooltip/interface/index.d.ts +1 -0
- package/cjs/component/tooltip/interface/index.js +1 -1
- package/cjs/component/tooltip/interface/index.js.map +1 -1
- package/cjs/component/tooltip/interface/spec.d.ts +2 -2
- package/cjs/component/tooltip/interface/spec.js.map +1 -1
- package/cjs/component/tooltip/interface/theme.d.ts +3 -3
- package/cjs/component/tooltip/interface/theme.js.map +1 -1
- package/cjs/component/tooltip/processor/dimension-tooltip.js +2 -1
- package/cjs/component/tooltip/processor/dimension-tooltip.js.map +1 -1
- package/cjs/component/tooltip/processor/mark-tooltip.js +2 -1
- package/cjs/component/tooltip/processor/mark-tooltip.js.map +1 -1
- package/cjs/component/tooltip/tooltip.d.ts +3 -3
- package/cjs/component/tooltip/tooltip.js +7 -5
- package/cjs/component/tooltip/tooltip.js.map +1 -1
- package/cjs/component/tooltip/utils/show-tooltip.js +3 -0
- package/cjs/component/tooltip/utils/show-tooltip.js.map +1 -1
- package/cjs/component/util.d.ts +8 -0
- package/cjs/component/util.js +15 -3
- package/cjs/component/util.js.map +1 -1
- package/cjs/core/factory.d.ts +3 -0
- package/cjs/core/factory.js +6 -0
- 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 +1 -1
- package/cjs/core/interface.js.map +1 -1
- package/cjs/core/vchart.d.ts +2 -1
- package/cjs/core/vchart.js +2 -2
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/data/initialize.js.map +1 -1
- package/cjs/event/events/dimension/interface.d.ts +3 -2
- package/cjs/event/events/dimension/interface.js.map +1 -1
- package/cjs/event/events/dimension/util/cartesian.js +1 -0
- package/cjs/event/events/dimension/util/cartesian.js.map +1 -1
- package/cjs/event/events/dimension/util/polar.js +2 -0
- package/cjs/event/events/dimension/util/polar.js.map +1 -1
- package/cjs/index-lark.js +2 -2
- package/cjs/index-lark.js.map +1 -1
- package/cjs/index-wx-simple.js +2 -2
- package/cjs/index-wx-simple.js.map +1 -1
- package/cjs/index-wx.js +2 -2
- package/cjs/index-wx.js.map +1 -1
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/interaction/dimension-trigger.d.ts +1 -6
- package/cjs/interaction/dimension-trigger.js +6 -31
- package/cjs/interaction/dimension-trigger.js.map +1 -1
- package/cjs/mark/arc.js +3 -1
- package/cjs/mark/arc.js.map +1 -1
- package/cjs/mark/base/base-mark.d.ts +3 -3
- package/cjs/mark/base/base-mark.js +20 -13
- package/cjs/mark/base/base-mark.js.map +1 -1
- package/cjs/mark/index.d.ts +2 -3
- package/cjs/mark/index.js +1 -10
- package/cjs/mark/index.js.map +1 -1
- package/cjs/mark/interface/type.d.ts +0 -1
- package/cjs/mark/interface/type.js +2 -3
- package/cjs/mark/interface/type.js.map +1 -1
- package/cjs/plugin/chart/formatter/formatter.d.ts +28 -0
- package/cjs/plugin/chart/formatter/formatter.js +74 -0
- package/cjs/plugin/chart/formatter/formatter.js.map +1 -0
- package/cjs/plugin/chart/formatter/index.d.ts +1 -0
- package/cjs/plugin/chart/formatter/index.js +21 -0
- package/cjs/plugin/chart/formatter/index.js.map +1 -0
- package/cjs/plugin/components/index.d.ts +2 -5
- package/cjs/plugin/components/index.js +16 -7
- package/cjs/plugin/components/index.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/base.d.ts +6 -6
- package/cjs/plugin/components/tooltip-handler/base.js +112 -51
- package/cjs/plugin/components/tooltip-handler/base.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.d.ts +2 -2
- package/cjs/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/constants.d.ts +2 -2
- package/cjs/plugin/components/tooltip-handler/constants.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.d.ts +8 -4
- package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +31 -9
- package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/dom/model/base-tooltip-model.d.ts +2 -2
- package/cjs/plugin/components/tooltip-handler/dom/model/base-tooltip-model.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/dom/model/content-column-model.d.ts +2 -2
- package/cjs/plugin/components/tooltip-handler/dom/model/content-column-model.js +2 -3
- package/cjs/plugin/components/tooltip-handler/dom/model/content-column-model.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/dom/model/interface.d.ts +2 -2
- package/cjs/plugin/components/tooltip-handler/dom/model/interface.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/attribute.d.ts +2 -2
- package/cjs/plugin/components/tooltip-handler/utils/attribute.js +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/common.d.ts +3 -3
- package/cjs/plugin/components/tooltip-handler/utils/common.js +9 -3
- package/cjs/plugin/components/tooltip-handler/utils/common.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/compose.d.ts +2 -2
- package/cjs/plugin/components/tooltip-handler/utils/compose.js +9 -8
- package/cjs/plugin/components/tooltip-handler/utils/compose.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/get-spec.js +12 -9
- package/cjs/plugin/components/tooltip-handler/utils/get-spec.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/position.d.ts +18 -3
- package/cjs/plugin/components/tooltip-handler/utils/position.js +49 -8
- package/cjs/plugin/components/tooltip-handler/utils/position.js.map +1 -1
- package/cjs/plugin/index.d.ts +1 -0
- package/cjs/plugin/index.js +1 -1
- package/cjs/plugin/index.js.map +1 -1
- package/cjs/series/base/base-series-transformer.js +4 -3
- package/cjs/series/base/base-series-transformer.js.map +1 -1
- package/cjs/series/base/base-series.js +2 -1
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/base/tooltip-helper.d.ts +3 -3
- package/cjs/series/base/tooltip-helper.js.map +1 -1
- package/cjs/series/dot/tooltip-helper.js +2 -2
- package/cjs/series/dot/tooltip-helper.js.map +1 -1
- package/cjs/series/gauge/constant.js +2 -2
- package/cjs/series/gauge/constant.js.map +1 -1
- package/cjs/series/gauge/gauge.js +2 -2
- package/cjs/series/gauge/gauge.js.map +1 -1
- package/cjs/series/gauge/interface.d.ts +3 -3
- package/cjs/series/gauge/interface.js.map +1 -1
- package/cjs/series/interface/common.d.ts +1 -1
- package/cjs/series/interface/common.js.map +1 -1
- package/cjs/series/interface/series.js.map +1 -1
- package/cjs/series/interface/theme.d.ts +17 -1
- package/cjs/series/interface/theme.js +10 -6
- package/cjs/series/interface/theme.js.map +1 -1
- package/cjs/series/link/tooltip-helper.js +2 -2
- package/cjs/series/link/tooltip-helper.js.map +1 -1
- package/cjs/series/polar/progress-like/progress-like.js +24 -26
- package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
- package/cjs/series/progress/circular/circular.js +3 -4
- package/cjs/series/progress/circular/circular.js.map +1 -1
- package/cjs/series/progress/circular/constant.js +2 -2
- package/cjs/series/progress/circular/constant.js.map +1 -1
- package/cjs/series/progress/circular/interface.d.ts +5 -5
- package/cjs/series/progress/circular/interface.js.map +1 -1
- package/cjs/series/range-area/tooltip-helper.js.map +1 -1
- package/cjs/series/sankey/tooltip-helper.js.map +1 -1
- package/cjs/series/sunburst/sunburst.d.ts +1 -1
- package/cjs/series/word-cloud/interface.js.map +1 -1
- package/cjs/theme/builtin/common/mark.js +2 -1
- package/cjs/theme/builtin/common/mark.js.map +1 -1
- package/cjs/theme/builtin/common/series/box-plot.js +5 -0
- package/cjs/theme/builtin/common/series/box-plot.js.map +1 -1
- package/cjs/theme/builtin/common/series/rangeColumn.js +1 -0
- package/cjs/theme/builtin/common/series/rangeColumn.js.map +1 -1
- package/cjs/theme/builtin/common/series/waterfall.js +4 -1
- package/cjs/theme/builtin/common/series/waterfall.js.map +1 -1
- package/cjs/typings/spec/common.d.ts +4 -3
- package/cjs/typings/spec/common.js.map +1 -1
- package/cjs/typings/tooltip/line.d.ts +5 -2
- package/cjs/typings/tooltip/line.js.map +1 -1
- package/cjs/typings/tooltip/position.d.ts +21 -10
- package/cjs/typings/tooltip/position.js.map +1 -1
- package/cjs/typings/tooltip/shape.d.ts +2 -2
- package/cjs/typings/tooltip/shape.js.map +1 -1
- package/cjs/typings/tooltip/tooltip.d.ts +8 -8
- package/cjs/typings/tooltip/tooltip.js.map +1 -1
- package/cjs/typings/visual.d.ts +2 -4
- package/cjs/typings/visual.js.map +1 -1
- package/cjs/util/index.d.ts +1 -2
- package/cjs/util/index.js +2 -2
- package/cjs/util/index.js.map +1 -1
- package/cjs/vchart-all.js +2 -2
- package/cjs/vchart-all.js.map +1 -1
- package/cjs/vchart-simple.js +2 -2
- package/cjs/vchart-simple.js.map +1 -1
- package/esm/animation/utils.js +5 -5
- package/esm/animation/utils.js.map +1 -1
- package/esm/chart/base/base-chart-transformer.js +7 -9
- package/esm/chart/base/base-chart-transformer.js.map +1 -1
- package/esm/chart/base/base-chart.d.ts +1 -1
- package/esm/chart/base/base-chart.js.map +1 -1
- package/esm/chart/interface/chart.d.ts +1 -1
- package/esm/chart/interface/chart.js.map +1 -1
- package/esm/chart/progress/circular/circular-progress-transformer.js +2 -0
- package/esm/chart/progress/circular/circular-progress-transformer.js.map +1 -1
- package/esm/compile/compiler.d.ts +1 -1
- package/esm/compile/compiler.js +4 -4
- package/esm/compile/compiler.js.map +1 -1
- package/esm/compile/mark/interface.js.map +1 -1
- package/esm/component/axis/base-axis.d.ts +9 -6
- package/esm/component/axis/base-axis.js +39 -5
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/axis/cartesian/axis.d.ts +1 -5
- package/esm/component/axis/cartesian/axis.js +8 -26
- package/esm/component/axis/cartesian/axis.js.map +1 -1
- package/esm/component/axis/cartesian/time-axis.d.ts +1 -1
- package/esm/component/axis/cartesian/time-axis.js +2 -2
- package/esm/component/axis/cartesian/time-axis.js.map +1 -1
- package/esm/component/axis/cartesian/util/index.d.ts +0 -1
- package/esm/component/axis/cartesian/util/index.js +0 -2
- package/esm/component/axis/cartesian/util/index.js.map +1 -1
- package/esm/component/axis/interface/common.d.ts +2 -1
- package/esm/component/axis/interface/common.js.map +1 -1
- package/esm/component/axis/interface/spec.d.ts +2 -0
- package/esm/component/axis/interface/spec.js.map +1 -1
- package/esm/component/axis/polar/axis.d.ts +1 -5
- package/esm/component/axis/polar/axis.js +5 -23
- package/esm/component/axis/polar/axis.js.map +1 -1
- package/esm/component/base/util.d.ts +5 -0
- package/esm/component/base/util.js +12 -9
- package/esm/component/base/util.js.map +1 -1
- package/esm/component/crosshair/base.d.ts +4 -1
- package/esm/component/crosshair/base.js +1 -10
- package/esm/component/crosshair/base.js.map +1 -1
- package/esm/component/crosshair/cartesian.d.ts +1 -7
- package/esm/component/crosshair/cartesian.js +20 -206
- package/esm/component/crosshair/cartesian.js.map +1 -1
- package/esm/component/crosshair/config.js.map +1 -1
- package/esm/component/crosshair/interface/cartesian.d.ts +46 -0
- package/esm/component/crosshair/interface/cartesian.js +2 -0
- package/esm/component/crosshair/interface/cartesian.js.map +1 -0
- package/esm/component/crosshair/interface/common.d.ts +7 -0
- package/esm/component/crosshair/interface/common.js +2 -0
- package/esm/component/crosshair/interface/common.js.map +1 -0
- package/esm/component/crosshair/interface/index.d.ts +3 -0
- package/esm/component/crosshair/interface/index.js +6 -0
- package/esm/component/crosshair/interface/index.js.map +1 -1
- package/esm/component/crosshair/interface/polar.d.ts +23 -0
- package/esm/component/crosshair/interface/polar.js +2 -0
- package/esm/component/crosshair/interface/polar.js.map +1 -0
- package/esm/component/crosshair/interface/spec.d.ts +1 -0
- package/esm/component/crosshair/interface/spec.js.map +1 -1
- package/esm/component/crosshair/polar.d.ts +2 -2
- package/esm/component/crosshair/polar.js +19 -116
- package/esm/component/crosshair/polar.js.map +1 -1
- package/esm/component/crosshair/utils/cartesian.d.ts +32 -0
- package/esm/component/crosshair/utils/cartesian.js +233 -0
- package/esm/component/crosshair/utils/cartesian.js.map +1 -0
- package/{cjs/component/crosshair/util.d.ts → esm/component/crosshair/utils/common.d.ts} +3 -3
- package/esm/component/crosshair/{util.js → utils/common.js} +6 -6
- package/esm/component/crosshair/utils/common.js.map +1 -0
- package/esm/component/crosshair/utils/index.d.ts +1 -0
- package/esm/component/crosshair/utils/index.js +2 -0
- package/esm/component/crosshair/utils/index.js.map +1 -0
- package/esm/component/crosshair/utils/polar.d.ts +37 -0
- package/esm/component/crosshair/utils/polar.js +125 -0
- package/esm/component/crosshair/utils/polar.js.map +1 -0
- package/esm/component/custom-mark/custom-mark.js +2 -1
- package/esm/component/custom-mark/custom-mark.js.map +1 -1
- package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +1 -0
- package/esm/component/data-zoom/data-zoom/data-zoom.js +10 -2
- package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/esm/component/data-zoom/data-zoom/interface.d.ts +4 -5
- package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
- package/esm/component/data-zoom/scroll-bar/interface.d.ts +2 -4
- package/esm/component/data-zoom/scroll-bar/interface.js.map +1 -1
- package/esm/component/data-zoom/scroll-bar/scroll-bar.js +2 -2
- package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
- package/esm/component/data-zoom/util.d.ts +0 -4
- package/esm/component/data-zoom/util.js +1 -10
- package/esm/component/data-zoom/util.js.map +1 -1
- package/esm/component/index.d.ts +1 -0
- package/esm/component/index.js +2 -0
- package/esm/component/index.js.map +1 -1
- package/esm/component/interface/theme.d.ts +8 -0
- package/esm/component/interface/theme.js.map +1 -1
- package/esm/component/label/interface.d.ts +1 -1
- package/esm/component/label/interface.js.map +1 -1
- package/esm/component/label/util.js +6 -3
- package/esm/component/label/util.js.map +1 -1
- package/esm/component/legend/continuous/interface.d.ts +6 -12
- package/esm/component/legend/continuous/interface.js.map +1 -1
- package/esm/component/legend/discrete/interface.d.ts +17 -4
- package/esm/component/legend/discrete/interface.js.map +1 -1
- package/esm/component/legend/discrete/legend.d.ts +1 -0
- package/esm/component/legend/discrete/legend.js +11 -1
- package/esm/component/legend/discrete/legend.js.map +1 -1
- package/esm/component/legend/discrete/util.js +3 -2
- package/esm/component/legend/discrete/util.js.map +1 -1
- package/esm/component/legend/util.d.ts +1 -2
- package/esm/component/legend/util.js +0 -4
- package/esm/component/legend/util.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/utils/transform.js.map +1 -1
- package/esm/component/tooltip/interface/common.d.ts +2 -2
- package/esm/component/tooltip/interface/common.js.map +1 -1
- package/esm/component/tooltip/interface/event.d.ts +0 -2
- package/esm/component/tooltip/interface/event.js.map +1 -1
- package/esm/component/tooltip/interface/index.d.ts +1 -0
- package/esm/component/tooltip/interface/index.js +2 -0
- package/esm/component/tooltip/interface/index.js.map +1 -1
- package/esm/component/tooltip/interface/spec.d.ts +2 -2
- package/esm/component/tooltip/interface/spec.js.map +1 -1
- package/esm/component/tooltip/interface/theme.d.ts +3 -3
- package/esm/component/tooltip/interface/theme.js.map +1 -1
- package/esm/component/tooltip/processor/dimension-tooltip.js +2 -1
- package/esm/component/tooltip/processor/dimension-tooltip.js.map +1 -1
- package/esm/component/tooltip/processor/mark-tooltip.js +2 -1
- package/esm/component/tooltip/processor/mark-tooltip.js.map +1 -1
- package/esm/component/tooltip/tooltip.d.ts +3 -3
- package/esm/component/tooltip/tooltip.js +8 -6
- package/esm/component/tooltip/tooltip.js.map +1 -1
- package/esm/component/tooltip/utils/show-tooltip.js +3 -0
- package/esm/component/tooltip/utils/show-tooltip.js.map +1 -1
- package/esm/component/util.d.ts +8 -0
- package/esm/component/util.js +14 -0
- package/esm/component/util.js.map +1 -1
- package/esm/core/factory.d.ts +3 -0
- package/esm/core/factory.js +6 -0
- 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 +1 -1
- package/esm/core/interface.js.map +1 -1
- package/esm/core/vchart.d.ts +2 -1
- package/esm/core/vchart.js +3 -1
- package/esm/core/vchart.js.map +1 -1
- package/esm/data/initialize.js.map +1 -1
- package/esm/event/events/dimension/interface.d.ts +3 -2
- package/esm/event/events/dimension/interface.js.map +1 -1
- package/esm/event/events/dimension/util/cartesian.js +1 -0
- package/esm/event/events/dimension/util/cartesian.js.map +1 -1
- package/esm/event/events/dimension/util/polar.js +2 -0
- package/esm/event/events/dimension/util/polar.js.map +1 -1
- package/esm/index-lark.js +4 -2
- package/esm/index-lark.js.map +1 -1
- package/esm/index-wx-simple.js +4 -2
- package/esm/index-wx-simple.js.map +1 -1
- package/esm/index-wx.js +1 -1
- package/esm/index-wx.js.map +1 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.js +2 -0
- package/esm/index.js.map +1 -1
- package/esm/interaction/dimension-trigger.d.ts +1 -6
- package/esm/interaction/dimension-trigger.js +6 -32
- package/esm/interaction/dimension-trigger.js.map +1 -1
- package/esm/mark/arc.js +3 -1
- package/esm/mark/arc.js.map +1 -1
- package/esm/mark/base/base-mark.d.ts +3 -3
- package/esm/mark/base/base-mark.js +20 -13
- package/esm/mark/base/base-mark.js.map +1 -1
- package/esm/mark/index.d.ts +2 -3
- package/esm/mark/index.js +1 -3
- package/esm/mark/index.js.map +1 -1
- package/esm/mark/interface/type.d.ts +0 -1
- package/esm/mark/interface/type.js +2 -3
- package/esm/mark/interface/type.js.map +1 -1
- package/esm/plugin/chart/formatter/formatter.d.ts +28 -0
- package/esm/plugin/chart/formatter/formatter.js +71 -0
- package/esm/plugin/chart/formatter/formatter.js.map +1 -0
- package/esm/plugin/chart/formatter/index.d.ts +1 -0
- package/esm/plugin/chart/formatter/index.js +2 -0
- package/esm/plugin/chart/formatter/index.js.map +1 -0
- package/esm/plugin/components/index.d.ts +2 -5
- package/esm/plugin/components/index.js +2 -4
- package/esm/plugin/components/index.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/base.d.ts +6 -6
- package/esm/plugin/components/tooltip-handler/base.js +111 -50
- package/esm/plugin/components/tooltip-handler/base.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.d.ts +2 -2
- package/esm/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/constants.d.ts +2 -2
- package/esm/plugin/components/tooltip-handler/constants.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.d.ts +8 -4
- package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +31 -8
- package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/dom/model/base-tooltip-model.d.ts +2 -2
- package/esm/plugin/components/tooltip-handler/dom/model/base-tooltip-model.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/dom/model/content-column-model.d.ts +2 -2
- package/esm/plugin/components/tooltip-handler/dom/model/content-column-model.js +2 -3
- package/esm/plugin/components/tooltip-handler/dom/model/content-column-model.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/dom/model/interface.d.ts +2 -2
- package/esm/plugin/components/tooltip-handler/dom/model/interface.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/utils/attribute.d.ts +2 -2
- package/esm/plugin/components/tooltip-handler/utils/attribute.js +1 -1
- package/esm/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/utils/common.d.ts +3 -3
- package/esm/plugin/components/tooltip-handler/utils/common.js +10 -1
- package/esm/plugin/components/tooltip-handler/utils/common.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/utils/compose.d.ts +2 -2
- package/esm/plugin/components/tooltip-handler/utils/compose.js +5 -7
- package/esm/plugin/components/tooltip-handler/utils/compose.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/utils/get-spec.js +12 -9
- package/esm/plugin/components/tooltip-handler/utils/get-spec.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/utils/position.d.ts +18 -3
- package/esm/plugin/components/tooltip-handler/utils/position.js +39 -7
- package/esm/plugin/components/tooltip-handler/utils/position.js.map +1 -1
- package/esm/plugin/index.d.ts +1 -0
- package/esm/plugin/index.js +2 -0
- package/esm/plugin/index.js.map +1 -1
- package/esm/series/base/base-series-transformer.js +3 -3
- package/esm/series/base/base-series-transformer.js.map +1 -1
- package/esm/series/base/base-series.js +2 -1
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/base/tooltip-helper.d.ts +3 -3
- package/esm/series/base/tooltip-helper.js.map +1 -1
- package/esm/series/dot/tooltip-helper.js +1 -3
- package/esm/series/dot/tooltip-helper.js.map +1 -1
- package/esm/series/gauge/constant.js +2 -2
- package/esm/series/gauge/constant.js.map +1 -1
- package/esm/series/gauge/gauge.js +3 -3
- package/esm/series/gauge/gauge.js.map +1 -1
- package/esm/series/gauge/interface.d.ts +3 -3
- package/esm/series/gauge/interface.js.map +1 -1
- package/esm/series/interface/common.d.ts +1 -1
- package/esm/series/interface/common.js.map +1 -1
- package/esm/series/interface/series.js.map +1 -1
- package/esm/series/interface/theme.d.ts +17 -1
- package/esm/series/interface/theme.js +10 -6
- package/esm/series/interface/theme.js.map +1 -1
- package/esm/series/link/tooltip-helper.js +1 -1
- package/esm/series/link/tooltip-helper.js.map +1 -1
- package/esm/series/polar/progress-like/progress-like.js +23 -25
- package/esm/series/polar/progress-like/progress-like.js.map +1 -1
- package/esm/series/progress/circular/circular.js +1 -3
- package/esm/series/progress/circular/circular.js.map +1 -1
- package/esm/series/progress/circular/constant.js +2 -2
- package/esm/series/progress/circular/constant.js.map +1 -1
- package/esm/series/progress/circular/interface.d.ts +5 -5
- package/esm/series/progress/circular/interface.js.map +1 -1
- package/esm/series/range-area/tooltip-helper.js.map +1 -1
- package/esm/series/sankey/tooltip-helper.js.map +1 -1
- package/esm/series/sunburst/sunburst.d.ts +1 -1
- package/esm/series/word-cloud/interface.js.map +1 -1
- package/esm/theme/builtin/common/mark.js +2 -1
- package/esm/theme/builtin/common/mark.js.map +1 -1
- package/esm/theme/builtin/common/series/box-plot.js +5 -0
- package/esm/theme/builtin/common/series/box-plot.js.map +1 -1
- package/esm/theme/builtin/common/series/rangeColumn.js +1 -0
- package/esm/theme/builtin/common/series/rangeColumn.js.map +1 -1
- package/esm/theme/builtin/common/series/waterfall.js +4 -1
- package/esm/theme/builtin/common/series/waterfall.js.map +1 -1
- package/esm/typings/spec/common.d.ts +4 -3
- package/esm/typings/spec/common.js.map +1 -1
- package/esm/typings/tooltip/line.d.ts +5 -2
- package/esm/typings/tooltip/line.js.map +1 -1
- package/esm/typings/tooltip/position.d.ts +21 -10
- package/esm/typings/tooltip/position.js.map +1 -1
- package/esm/typings/tooltip/shape.d.ts +2 -2
- package/esm/typings/tooltip/shape.js.map +1 -1
- package/esm/typings/tooltip/tooltip.d.ts +8 -8
- package/esm/typings/tooltip/tooltip.js.map +1 -1
- package/esm/typings/visual.d.ts +2 -4
- package/esm/typings/visual.js.map +1 -1
- package/esm/util/index.d.ts +1 -2
- package/esm/util/index.js +1 -3
- package/esm/util/index.js.map +1 -1
- package/esm/vchart-all.js +4 -2
- package/esm/vchart-all.js.map +1 -1
- package/esm/vchart-simple.js +1 -1
- package/esm/vchart-simple.js.map +1 -1
- package/package.json +18 -18
- package/cjs/component/axis/cartesian/util/time.d.ts +0 -80
- package/cjs/component/axis/cartesian/util/time.js +0 -204
- package/cjs/component/axis/cartesian/util/time.js.map +0 -1
- package/cjs/component/crosshair/util.js.map +0 -1
- package/cjs/mark/progress-arc.d.ts +0 -14
- package/cjs/mark/progress-arc.js +0 -55
- package/cjs/mark/progress-arc.js.map +0 -1
- package/esm/component/axis/cartesian/util/time.d.ts +0 -80
- package/esm/component/axis/cartesian/util/time.js +0 -196
- package/esm/component/axis/cartesian/util/time.js.map +0 -1
- package/esm/component/crosshair/util.js.map +0 -1
- package/esm/mark/progress-arc.d.ts +0 -14
- package/esm/mark/progress-arc.js +0 -47
- package/esm/mark/progress-arc.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/component/crosshair/utils/cartesian.ts"],"names":[],"mappings":"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","file":"cartesian.js","sourcesContent":["import type { BandScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous, isDiscrete } from '@visactor/vscale';\nimport type { ICartesianSeries } from '../../../series';\nimport type { ILayoutPoint } from '../../../typings';\nimport type { IBound, IHair } from '../base';\nimport { LayoutType } from '../config';\nimport type { AxisCurrentValueMap, ICrosshairInfoX, ICrosshairInfoY } from '../interface';\nimport { getDatumByValue } from './common';\nimport { getAxisLabelOffset } from '../../axis/util';\nimport { isValid } from '@visactor/vutils';\nimport type { IAxis } from '../../axis';\nimport { getFormatFunction } from '../../util';\n\nexport const layoutByValue = (\n tag: number = LayoutType.ALL,\n series: ICartesianSeries,\n layoutStartPoint: ILayoutPoint,\n currValueX: AxisCurrentValueMap,\n currValueY: AxisCurrentValueMap,\n xHair: IHair,\n yHair: IHair,\n enableRemain: boolean = false,\n cacheXCrossHairInfo?: ICrosshairInfoX,\n cacheYCrossHairInfo?: ICrosshairInfoY\n) => {\n const layoutX = tag & LayoutType.VERTICAL;\n const layoutY = tag & LayoutType.HORIZONTAL;\n\n if (!layoutStartPoint) {\n layoutStartPoint = { x: 0, y: 0 };\n }\n\n // 计算x和y的坐标\n let xAxis = null;\n let yAxis = null;\n let x = 0;\n let y = 0;\n if (currValueX.size) {\n const item = Array.from(currValueX.values())[0];\n x = item.axis.getScale().scale(item.value) + item.axis.getLayoutStartPoint().x - layoutStartPoint.x;\n xAxis = item.axis;\n }\n if (currValueY.size) {\n const item = Array.from(currValueY.values())[0];\n y = item.axis.getScale().scale(item.value) + item.axis.getLayoutStartPoint().y - layoutStartPoint.y;\n yAxis = item.axis;\n }\n\n const xVisible = !!currValueX.size && Number.isFinite(x);\n const yVisible = !!currValueY.size && Number.isFinite(y);\n const xUseCache = enableRemain && !xVisible && isValid(cacheXCrossHairInfo);\n const yUseCache = enableRemain && !yVisible && isValid(cacheYCrossHairInfo);\n\n let xCrossHairInfo: ICrosshairInfoX;\n if (layoutX) {\n xCrossHairInfo = xUseCache\n ? cacheXCrossHairInfo\n : {\n height: 0,\n leftPos: 0,\n rightPos: 0,\n topPos: 0,\n x: 0,\n bottom: { visible: false, text: '', dx: 0, dy: 0 },\n top: { visible: false, text: '', dx: 0, dy: 0 },\n visible: xVisible,\n axis: xAxis\n };\n }\n\n let yCrossHairInfo: ICrosshairInfoY;\n if (layoutY) {\n yCrossHairInfo = yUseCache\n ? cacheYCrossHairInfo\n : {\n width: 0,\n leftPos: 0,\n topPos: 0,\n bottomPos: 0,\n y: 0,\n left: { visible: false, text: '', dx: 0, dy: 0 },\n right: { visible: false, text: '', dx: 0, dy: 0 },\n visible: yVisible,\n axis: yAxis\n };\n }\n\n let bandWidth;\n let offsetWidth: number = 0;\n let bandHeight;\n let offsetHeight: number = 0;\n\n // 计算x轴和y轴的数据,只允许最多一对x和一对y\n if (xHair) {\n currValueX.forEach(({ axis, value }) => {\n value = value ?? '';\n const xScale = axis.getScale();\n if (isDiscrete(xScale.type)) {\n bandWidth = (xScale as BandScale).bandwidth();\n\n if (bandWidth === 0 && (xScale as BandScale).step) {\n offsetWidth = (xScale as BandScale).step();\n }\n } else if (isContinuous(xScale.type)) {\n const fieldX = series.fieldX[0];\n const fieldX2 = series.fieldX2;\n const datum = getDatumByValue(series.getViewData().latestData, +value, fieldX, fieldX2);\n if (datum) {\n const startX = series.dataToPositionX(datum);\n if (fieldX2) {\n bandWidth = Math.abs(startX - series.dataToPositionX1(datum));\n value = `${datum[fieldX]} ~ ${datum[fieldX2]}`;\n } else {\n bandWidth = 1;\n }\n x = startX;\n }\n }\n if (xCrossHairInfo && xHair.label?.visible && !xUseCache) {\n const labelOffset = getAxisLabelOffset(axis.getSpec());\n if (axis.getOrient() === 'bottom') {\n xCrossHairInfo.bottom.visible = true;\n xCrossHairInfo.bottom.text = value;\n xCrossHairInfo.bottom.dx = 0;\n xCrossHairInfo.bottom.dy = labelOffset;\n } else if (axis.getOrient() === 'top') {\n xCrossHairInfo.top.visible = true;\n xCrossHairInfo.top.text = value;\n xCrossHairInfo.top.dx = 0;\n xCrossHairInfo.top.dy = -labelOffset;\n }\n }\n });\n }\n\n if (yHair) {\n currValueY.forEach(({ axis, value }) => {\n value = value ?? '';\n const yScale = axis.getScale();\n if (isDiscrete(yScale.type)) {\n bandHeight = (yScale as BandScale).bandwidth();\n\n if (bandHeight === 0 && (yScale as BandScale).step) {\n offsetHeight = (yScale as BandScale).step();\n }\n } else if (isContinuous(yScale.type)) {\n const fieldY = series.fieldY[0];\n const fieldY2 = series.fieldY2;\n const datum = getDatumByValue(series.getViewData().latestData, +value, fieldY, fieldY2);\n if (datum) {\n const startY = series.dataToPositionY(datum);\n if (fieldY2) {\n bandHeight = Math.abs(startY - series.dataToPositionY1(datum));\n value = `${datum[fieldY]} ~ ${datum[fieldY2]}`;\n } else {\n bandHeight = 1;\n }\n y = startY;\n }\n }\n if (yCrossHairInfo && yHair.label?.visible && !yUseCache) {\n const labelOffset = getAxisLabelOffset(axis.getSpec());\n if (axis.getOrient() === 'left') {\n yCrossHairInfo.left.visible = true;\n yCrossHairInfo.left.text = value;\n yCrossHairInfo.left.dx = -labelOffset;\n yCrossHairInfo.left.dy = 0;\n } else if (axis.getOrient() === 'right') {\n yCrossHairInfo.right.visible = true;\n yCrossHairInfo.right.text = value;\n yCrossHairInfo.right.dx = labelOffset;\n yCrossHairInfo.right.dy = 0;\n }\n }\n });\n }\n\n if (xCrossHairInfo && !xUseCache) {\n const xRegion = { x1: Infinity, y1: Infinity, x2: -Infinity, y2: -Infinity };\n setRegionArea(xRegion, currValueX);\n xCrossHairInfo.leftPos = xRegion.x1;\n xCrossHairInfo.rightPos = xRegion.x2;\n xCrossHairInfo.topPos = xRegion.y1;\n xCrossHairInfo.height = xRegion.y2 - xRegion.y1;\n xCrossHairInfo.x = x + layoutStartPoint.x;\n if (xHair?.label?.formatMethod) {\n const { top, bottom } = xCrossHairInfo;\n bottom.visible && (bottom.text = xHair.label.formatMethod(bottom.text, 'bottom') as string);\n top.visible && (top.text = xHair.label.formatMethod(top.text, 'top') as string);\n }\n\n if (xHair && xHair.label) {\n const { top, bottom } = xCrossHairInfo;\n if (top.visible) {\n setFormattedCrosshairLabel(top, 'top', xHair.label);\n }\n if (bottom.visible) {\n setFormattedCrosshairLabel(bottom, 'bottom', xHair.label);\n }\n }\n }\n\n if (yCrossHairInfo && !yUseCache) {\n const yRegion = { x1: Infinity, y1: Infinity, x2: -Infinity, y2: -Infinity };\n setRegionArea(yRegion, currValueY);\n yCrossHairInfo.leftPos = yRegion.x1;\n yCrossHairInfo.topPos = yRegion.y1;\n yCrossHairInfo.bottomPos = yRegion.y2;\n yCrossHairInfo.width = yRegion.x2 - yRegion.x1;\n yCrossHairInfo.y = y + layoutStartPoint.y;\n\n if (yHair && yHair.label) {\n const { left, right } = yCrossHairInfo;\n if (left.visible) {\n setFormattedCrosshairLabel(left, 'left', yHair.label);\n }\n if (right.visible) {\n setFormattedCrosshairLabel(right, 'right', yHair.label);\n }\n }\n }\n\n return {\n x: layoutX && xCrossHairInfo ? xCrossHairInfo : undefined,\n y: layoutY && yCrossHairInfo ? yCrossHairInfo : undefined,\n offsetWidth,\n offsetHeight,\n bandWidth: bandWidth ?? 0,\n bandHeight: bandHeight ?? 0\n };\n};\n\nconst setFormattedCrosshairLabel = (labelInfo: ICrosshairInfoX['top'], position: string, labelSpec: IHair['label']) => {\n const { formatMethod, formatter } = labelSpec;\n const { formatFunc, args } = getFormatFunction(formatMethod, formatter, labelInfo.text, {\n label: labelInfo.text,\n position\n });\n if (formatFunc) {\n labelInfo.text = formatFunc(...args);\n }\n};\n\n// 计算x轴和y轴对应的region区域\nconst setRegionArea = (outRegion: IBound, currentValue: AxisCurrentValueMap) => {\n currentValue.forEach(({ axis }) => {\n const regions = axis.getRegions();\n regions.forEach(r => {\n outRegion.x1 = Math.min(outRegion.x1, r.getLayoutStartPoint().x);\n outRegion.y1 = Math.min(outRegion.y1, r.getLayoutStartPoint().y);\n outRegion.x2 = Math.max(outRegion.x2, r.getLayoutStartPoint().x + r.getLayoutRect().width);\n outRegion.y2 = Math.max(outRegion.y2, r.getLayoutStartPoint().y + r.getLayoutRect().height);\n });\n });\n};\n\nexport const layoutVerticalCrosshair = (\n xHair: IHair,\n crosshairInfo: ICrosshairInfoX,\n bandWidth: number,\n offsetWidth: number\n) => {\n const { x, topPos, height } = crosshairInfo;\n\n // 外部设置的size\n const type = xHair.type;\n let positionAttribute;\n if (type === 'line') {\n positionAttribute = {\n start: { x: x + bandWidth / 2, y: topPos },\n end: { x: x + bandWidth / 2, y: topPos + height }\n };\n } else if (type === 'rect') {\n const extend = getRectSize(xHair, bandWidth, crosshairInfo.axis);\n const { leftPos, rightPos } = crosshairInfo;\n\n positionAttribute = {\n start: { x: Math.max(x - extend / 2 - offsetWidth / 2, leftPos), y: topPos },\n end: { x: Math.min(x + bandWidth + extend / 2 + offsetWidth / 2, rightPos), y: topPos + height }\n };\n }\n\n return positionAttribute;\n};\n\nexport const layoutHorizontalCrosshair = (\n yHair: IHair,\n crosshairInfo: ICrosshairInfoY,\n bandHeight: number,\n offsetHeight: number\n) => {\n const { leftPos, width, y } = crosshairInfo;\n\n // 外部设置的size\n const type = yHair.type;\n let positionAttribute;\n if (type === 'line') {\n positionAttribute = {\n start: { x: leftPos, y: y + bandHeight / 2 },\n end: { x: leftPos + width, y: y + bandHeight / 2 }\n };\n } else if (type === 'rect') {\n const extend = getRectSize(yHair, bandHeight, crosshairInfo.axis);\n const { topPos, bottomPos } = crosshairInfo;\n\n positionAttribute = {\n start: { x: leftPos, y: Math.max(y - extend / 2 - offsetHeight / 2, topPos) },\n end: { x: leftPos + width, y: Math.min(y + bandHeight + extend / 2 + offsetHeight / 2, bottomPos) }\n };\n }\n\n return positionAttribute;\n};\n\nconst getRectSize = (hair: IHair, bandSize: number, axis: IAxis) => {\n // 外部设置的size\n let extend = 0;\n if (hair.style?.sizePercent) {\n extend = (hair.style.sizePercent - 1) * bandSize;\n } else if (typeof hair.style?.size === 'number') {\n extend = hair.style.size - bandSize;\n } else if (typeof hair.style?.size === 'function') {\n const axisRect = axis.getLayoutRect();\n extend = hair.style.size(axisRect, axis) - bandSize;\n }\n\n return extend;\n};\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { Tag } from '@visactor/vrender-components';
|
|
2
2
|
import type { IBoundsLike } from '@visactor/vutils';
|
|
3
|
-
import type { Datum } from '
|
|
4
|
-
import type { ICrosshairTheme } from '
|
|
5
|
-
import type { ITheme } from '
|
|
3
|
+
import type { Datum } from '../../../typings';
|
|
4
|
+
import type { ICrosshairTheme } from '../interface';
|
|
5
|
+
import type { ITheme } from '../../../theme';
|
|
6
6
|
export declare function limitTagInBounds(shape: Tag, bounds: IBoundsLike): void;
|
|
7
7
|
export declare function getDatumByValue(data: Datum[], value: number, startField: string, endField?: string): Datum | null;
|
|
8
8
|
export declare const getCartesianCrosshairTheme: (chartTheme: ITheme, chartSpec: any) => ICrosshairTheme;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { array, isValid } from "@visactor/vutils";
|
|
2
2
|
|
|
3
|
-
import { mergeSpec } from "
|
|
3
|
+
import { mergeSpec } from "../../../util/spec/merge-spec";
|
|
4
4
|
|
|
5
|
-
import { isXAxis, isYAxis } from "
|
|
5
|
+
import { isXAxis, isYAxis } from "../../axis/cartesian/util/common";
|
|
6
6
|
|
|
7
7
|
import { isDiscrete } from "@visactor/vscale";
|
|
8
8
|
|
|
9
|
-
import { getComponentThemeFromOption } from "
|
|
9
|
+
import { getComponentThemeFromOption } from "../../util";
|
|
10
10
|
|
|
11
|
-
import { ComponentTypeEnum } from "
|
|
11
|
+
import { ComponentTypeEnum } from "../../interface/type";
|
|
12
12
|
|
|
13
|
-
import { isDiscreteAxis } from "
|
|
13
|
+
import { isDiscreteAxis } from "../../axis/util";
|
|
14
14
|
|
|
15
15
|
export function limitTagInBounds(shape, bounds) {
|
|
16
16
|
const {x1: regionMinX, y1: regionMinY, x2: regionMaxX, y2: regionMaxY} = bounds, {x1: x1, y1: y1, x2: x2, y2: y2} = shape.AABBBounds, {dx: originDx = 0, dy: originDy = 0} = shape.attribute;
|
|
@@ -57,4 +57,4 @@ export const getPolarCrosshairTheme = (chartTheme, chartSpec) => {
|
|
|
57
57
|
valueField: newRadiusField
|
|
58
58
|
};
|
|
59
59
|
};
|
|
60
|
-
//# sourceMappingURL=
|
|
60
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/component/crosshair/utils/common.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,UAAU,gBAAgB,CAAC,KAAU,EAAE,MAAmB;IAC9D,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAClF,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC;IAC5C,MAAM,EAAE,EAAE,EAAE,QAAQ,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;IAE/D,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,EAAE,GAAG,UAAU,EAAE;QAEnB,EAAE,GAAG,UAAU,GAAG,EAAE,CAAC;KACtB;IACD,IAAI,EAAE,GAAG,UAAU,EAAE;QAEnB,EAAE,GAAG,UAAU,GAAG,EAAE,CAAC;KACtB;IAED,IAAI,EAAE,GAAG,UAAU,EAAE;QAEnB,EAAE,GAAG,UAAU,GAAG,EAAE,CAAC;KACtB;IAED,IAAI,EAAE,GAAG,UAAU,EAAE;QAEnB,EAAE,GAAG,UAAU,GAAG,EAAE,CAAC;KACtB;IACD,IAAI,EAAE,EAAE;QACN,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC;KACzC;IACD,IAAI,EAAE,EAAE;QACN,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,GAAG,QAAQ,CAAC,CAAC;KACzC;AACH,CAAC;AAGD,MAAM,UAAU,eAAe,CAAC,IAAa,EAAE,KAAa,EAAE,UAAkB,EAAE,QAAiB;IACjG,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAE5B,OAAO,IAAI,IAAI,KAAK,EAAE;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAEzB,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,IAAI,MAAM,CAAC,QAAQ,IAAI,UAAU,CAAC,IAAI,KAAK,EAAE;YAC1E,OAAO,MAAM,CAAC;SACf;QAED,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,EAAE;YAC9B,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;SACjB;aAAM;YACL,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;SAChB;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,UAAkB,EAAE,SAAc,EAAmB,EAAE;;IAChG,MAAM,IAAI,GAA+B,KAAK,CAAC,MAAA,SAAS,CAAC,IAAI,mCAAI,EAAE,CAAC,CAAC;IACrE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,GAC9C,MAAA,2BAA2B,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,mCAAI,EAAE,CAAC;IAE7E,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD,IAAI,SAAS,CAAC;IACd,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;QAClB,SAAS,GAAG,SAAS,CAAC,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;KACzF;SAAM;QACL,SAAS,GAAG,MAAM,CAAC;KACpB;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD,IAAI,SAAS,CAAC;IACd,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;QAClB,SAAS,GAAG,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;KACrF;SAAM;QACL,SAAS,GAAG,MAAM,CAAC;KACpB;IAED,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,MAAM,EAAE,SAAS;KAClB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,UAAkB,EAAE,SAAc,EAAmB,EAAE;;IAC5F,MAAM,IAAI,GAA2B,KAAK,CAAC,MAAA,SAAS,CAAC,IAAI,mCAAI,EAAE,CAAC,CAAC;IACjE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,GACzD,MAAA,2BAA2B,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,mCAAI,EAAE,CAAC;IAE7E,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;IAC7D,IAAI,aAAa,CAAC;IAClB,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;QACtB,aAAa,GAAG,SAAS,CAAC,EAAE,EAAE,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;KACxG;SAAM;QACL,aAAa,GAAG,aAAa,CAAC;KAC/B;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IAC/D,IAAI,cAAc,CAAC;IACnB,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE;QACvB,cAAc,GAAG,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;KACnG;SAAM;QACL,cAAc,GAAG,UAAU,CAAC;KAC7B;IAED,OAAO;QACL,aAAa,EAAE,aAAa;QAC5B,UAAU,EAAE,cAAc;KAC3B,CAAC;AACJ,CAAC,CAAC","file":"common.js","sourcesContent":["import type { Tag } from '@visactor/vrender-components';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { Datum } from '../../../typings';\nimport type { ICrosshairTheme } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { array, isValid } from '@visactor/vutils';\nimport { mergeSpec } from '../../../util/spec/merge-spec';\nimport { isXAxis, isYAxis } from '../../axis/cartesian/util/common';\nimport { isDiscrete } from '@visactor/vscale';\nimport type { ICartesianAxisCommonSpec, IPolarAxisCommonSpec } from '../../axis';\nimport { getComponentThemeFromOption } from '../../util';\nimport { ComponentTypeEnum } from '../../interface/type';\nimport type { ITheme } from '../../../theme';\nimport { isDiscreteAxis } from '../../axis/util';\n\nexport function limitTagInBounds(shape: Tag, bounds: IBoundsLike) {\n const { x1: regionMinX, y1: regionMinY, x2: regionMaxX, y2: regionMaxY } = bounds;\n const { x1, y1, x2, y2 } = shape.AABBBounds;\n const { dx: originDx = 0, dy: originDy = 0 } = shape.attribute;\n\n let dx = 0;\n let dy = 0;\n if (x1 < regionMinX) {\n // 超出左侧\n dx = regionMinX - x1;\n }\n if (y1 < regionMinY) {\n // 超出顶部\n dy = regionMinY - y1;\n }\n\n if (x2 > regionMaxX) {\n // 超出右侧\n dx = regionMaxX - x2;\n }\n\n if (y2 > regionMaxY) {\n // 整体超出顶部\n dy = regionMaxY - y2;\n }\n if (dx) {\n shape.setAttribute('dx', dx + originDx);\n }\n if (dy) {\n shape.setAttribute('dy', dy + originDy);\n }\n}\n\n// 二分查找数据\nexport function getDatumByValue(data: Datum[], value: number, startField: string, endField?: string): Datum | null {\n let left = 0;\n let right = data.length - 1;\n\n while (left <= right) {\n const mid = Math.floor((left + right) / 2);\n const record = data[mid];\n\n if (record[startField] <= value && record[endField || startField] >= value) {\n return record;\n }\n\n if (record[startField] > value) {\n right = mid - 1;\n } else {\n left = mid + 1;\n }\n }\n\n return null;\n}\n\nexport const getCartesianCrosshairTheme = (chartTheme: ITheme, chartSpec: any): ICrosshairTheme => {\n const axes: ICartesianAxisCommonSpec[] = array(chartSpec.axes ?? []);\n const { bandField, linearField, xField, yField } =\n getComponentThemeFromOption(ComponentTypeEnum.crosshair, chartTheme) ?? {};\n\n const xAxis = axes.find(axis => isXAxis(axis.orient));\n let newXField;\n if (isValid(xAxis)) {\n newXField = mergeSpec({}, isDiscreteAxis(xAxis.type) ? bandField : linearField, xField);\n } else {\n newXField = xField;\n }\n\n const yAxis = axes.find(axis => isYAxis(axis.orient));\n let newYField;\n if (isValid(yAxis)) {\n newYField = mergeSpec({}, isDiscrete(yAxis.type) ? bandField : linearField, yField);\n } else {\n newYField = yField;\n }\n\n return {\n xField: newXField,\n yField: newYField\n };\n};\n\nexport const getPolarCrosshairTheme = (chartTheme: ITheme, chartSpec: any): ICrosshairTheme => {\n const axes: IPolarAxisCommonSpec[] = array(chartSpec.axes ?? []);\n const { bandField, linearField, categoryField, valueField } =\n getComponentThemeFromOption(ComponentTypeEnum.crosshair, chartTheme) ?? {};\n\n const angleAxis = axes.find(axis => axis.orient === 'angle');\n let newAngleField;\n if (isValid(angleAxis)) {\n newAngleField = mergeSpec({}, isDiscreteAxis(angleAxis.type) ? bandField : linearField, categoryField);\n } else {\n newAngleField = categoryField;\n }\n\n const radiusAxis = axes.find(axis => axis.orient === 'radius');\n let newRadiusField;\n if (isValid(radiusAxis)) {\n newRadiusField = mergeSpec({}, isDiscrete(radiusAxis.type) ? bandField : linearField, valueField);\n } else {\n newRadiusField = valueField;\n }\n\n return {\n categoryField: newAngleField,\n valueField: newRadiusField\n };\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './common';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/component/crosshair/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC","file":"index.js","sourcesContent":["export * from './common';\n"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { IPolarSeries } from '../../../series';
|
|
2
|
+
import type { IHair, IHairRadius } from '../base';
|
|
3
|
+
import type { AxisCurrentValueMap, IPolarCrosshairInfo } from '../interface';
|
|
4
|
+
export declare const layoutByValue: (series: IPolarSeries, currValueAngle: AxisCurrentValueMap, currValueRadius: AxisCurrentValueMap, angleHair: IHair, radiusHair: IHair, enableRemain?: boolean, cacheAngleCrossHairInfo?: IPolarCrosshairInfo, cacheRadiusCrossHairInfo?: IPolarCrosshairInfo) => {
|
|
5
|
+
angle: IPolarCrosshairInfo;
|
|
6
|
+
radius: IPolarCrosshairInfo;
|
|
7
|
+
};
|
|
8
|
+
export declare const layoutAngleCrosshair: (angleHair: IHair, crosshairInfo: IPolarCrosshairInfo) => {
|
|
9
|
+
center: import("../../../typings").IPoint;
|
|
10
|
+
innerRadius: number;
|
|
11
|
+
radius: number;
|
|
12
|
+
startAngle: number;
|
|
13
|
+
endAngle: number;
|
|
14
|
+
start?: undefined;
|
|
15
|
+
end?: undefined;
|
|
16
|
+
} | {
|
|
17
|
+
start: {
|
|
18
|
+
x: number;
|
|
19
|
+
y: number;
|
|
20
|
+
};
|
|
21
|
+
end: {
|
|
22
|
+
x: number;
|
|
23
|
+
y: number;
|
|
24
|
+
};
|
|
25
|
+
center?: undefined;
|
|
26
|
+
innerRadius?: undefined;
|
|
27
|
+
radius?: undefined;
|
|
28
|
+
startAngle?: undefined;
|
|
29
|
+
endAngle?: undefined;
|
|
30
|
+
};
|
|
31
|
+
export declare const layoutRadiusCrosshair: (radiusHair: IHairRadius, crosshairInfo: IPolarCrosshairInfo) => {
|
|
32
|
+
center: import("../../../typings").IPoint;
|
|
33
|
+
startAngle: number;
|
|
34
|
+
endAngle: number;
|
|
35
|
+
radius: number;
|
|
36
|
+
sides: number;
|
|
37
|
+
};
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
var __rest = this && this.__rest || function(s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0 && (t[p] = s[p]);
|
|
4
|
+
if (null != s && "function" == typeof Object.getOwnPropertySymbols) {
|
|
5
|
+
var i = 0;
|
|
6
|
+
for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]) && (t[p[i]] = s[p[i]]);
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
import { getAxisLabelOffset } from "../../axis/util";
|
|
12
|
+
|
|
13
|
+
import { PointService, clamp, getAngleByPoint, getIntersectPoint, isValid, polarToCartesian } from "@visactor/vutils";
|
|
14
|
+
|
|
15
|
+
import { mergeSpec } from "../../../util";
|
|
16
|
+
|
|
17
|
+
import { getFormatFunction } from "../../util";
|
|
18
|
+
|
|
19
|
+
export const layoutByValue = (series, currValueAngle, currValueRadius, angleHair, radiusHair, enableRemain = !1, cacheAngleCrossHairInfo, cacheRadiusCrossHairInfo) => {
|
|
20
|
+
let angleCrossHairInfo = {
|
|
21
|
+
x: 0,
|
|
22
|
+
y: 0,
|
|
23
|
+
center: {
|
|
24
|
+
x: 0,
|
|
25
|
+
y: 0
|
|
26
|
+
},
|
|
27
|
+
radius: 0,
|
|
28
|
+
distance: 0,
|
|
29
|
+
startAngle: 0,
|
|
30
|
+
endAngle: 0,
|
|
31
|
+
innerRadius: 0,
|
|
32
|
+
visible: !1,
|
|
33
|
+
label: {
|
|
34
|
+
visible: !1,
|
|
35
|
+
text: "",
|
|
36
|
+
offset: 0
|
|
37
|
+
}
|
|
38
|
+
}, radiusCrossHairInfo = {
|
|
39
|
+
x: 0,
|
|
40
|
+
y: 0,
|
|
41
|
+
center: {
|
|
42
|
+
x: 0,
|
|
43
|
+
y: 0
|
|
44
|
+
},
|
|
45
|
+
radius: 0,
|
|
46
|
+
distance: 0,
|
|
47
|
+
startAngle: 0,
|
|
48
|
+
endAngle: 0,
|
|
49
|
+
innerRadius: 0,
|
|
50
|
+
visible: !1,
|
|
51
|
+
sides: series.angleAxisHelper.getScale(0).domain().length,
|
|
52
|
+
label: {
|
|
53
|
+
visible: !1,
|
|
54
|
+
text: "",
|
|
55
|
+
offset: 0
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
if (angleHair) {
|
|
59
|
+
angleCrossHairInfo.visible = !!currValueAngle.size;
|
|
60
|
+
const bandWidth = series.angleAxisHelper.getBandwidth(0);
|
|
61
|
+
currValueAngle.forEach((_a => {
|
|
62
|
+
var _b, {axis: axis, value: value, coord: coord} = _a, rest = __rest(_a, [ "axis", "value", "coord" ]);
|
|
63
|
+
value = null != value ? value : "", mergeSpec(angleCrossHairInfo, rest);
|
|
64
|
+
const angle = series.angleAxisHelper.dataToPosition([ value ]);
|
|
65
|
+
angleCrossHairInfo.angle = angle, (null === (_b = angleHair.label) || void 0 === _b ? void 0 : _b.visible) && (angleCrossHairInfo.label.visible = !0,
|
|
66
|
+
angleCrossHairInfo.label.text = value, angleCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec())),
|
|
67
|
+
angleCrossHairInfo.startAngle = angle - bandWidth / 2, angleCrossHairInfo.endAngle = angle + bandWidth / 2;
|
|
68
|
+
}));
|
|
69
|
+
}
|
|
70
|
+
if (radiusHair && (radiusCrossHairInfo.visible = !!currValueRadius.size, currValueRadius.forEach((_a => {
|
|
71
|
+
var _b, {axis: axis, value: value, coord: coord} = _a, rest = __rest(_a, [ "axis", "value", "coord" ]);
|
|
72
|
+
value = null != value ? value : "", (null === (_b = radiusHair.label) || void 0 === _b ? void 0 : _b.visible) && (radiusCrossHairInfo.label.visible = !0,
|
|
73
|
+
radiusCrossHairInfo.label.text = value, radiusCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec())),
|
|
74
|
+
radiusCrossHairInfo.angle = coord.angle, radiusCrossHairInfo.axis = axis, mergeSpec(radiusCrossHairInfo, rest);
|
|
75
|
+
}))), enableRemain && !angleCrossHairInfo.visible && isValid(cacheAngleCrossHairInfo)) angleCrossHairInfo = cacheAngleCrossHairInfo; else if (angleCrossHairInfo.label.visible && angleHair && angleHair.label) {
|
|
76
|
+
const {label: label} = angleCrossHairInfo, {formatMethod: formatMethod, formatter: formatter} = angleHair.label, {formatFunc: formatFunc, args: args} = getFormatFunction(formatMethod, formatter, label.text, {
|
|
77
|
+
label: label.text,
|
|
78
|
+
orient: "angle"
|
|
79
|
+
});
|
|
80
|
+
formatFunc && (label.text = formatFunc(...args));
|
|
81
|
+
}
|
|
82
|
+
if (enableRemain && !radiusCrossHairInfo.visible && isValid(cacheRadiusCrossHairInfo)) radiusCrossHairInfo = cacheRadiusCrossHairInfo; else if (radiusCrossHairInfo.label.visible && radiusHair && radiusHair.label) {
|
|
83
|
+
const {label: label} = radiusCrossHairInfo, {formatMethod: formatMethod, formatter: formatter} = radiusHair.label, {formatFunc: formatFunc, args: args} = getFormatFunction(formatMethod, formatter, label.text, {
|
|
84
|
+
label: label.text,
|
|
85
|
+
orient: "radius"
|
|
86
|
+
});
|
|
87
|
+
formatFunc && (label.text = formatFunc(...args));
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
angle: angleCrossHairInfo,
|
|
91
|
+
radius: radiusCrossHairInfo
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
export const layoutAngleCrosshair = (angleHair, crosshairInfo) => {
|
|
96
|
+
const {angle: angle, innerRadius: innerRadius, radius: radius, startAngle: startAngle, endAngle: endAngle, center: center} = crosshairInfo;
|
|
97
|
+
let positionAttrs;
|
|
98
|
+
return positionAttrs = "sector" === ("rect" === angleHair.type ? "sector" : "line") ? {
|
|
99
|
+
center: center,
|
|
100
|
+
innerRadius: innerRadius,
|
|
101
|
+
radius: radius,
|
|
102
|
+
startAngle: startAngle,
|
|
103
|
+
endAngle: endAngle
|
|
104
|
+
} : {
|
|
105
|
+
start: polarToCartesian(center, innerRadius, angle),
|
|
106
|
+
end: polarToCartesian(center, radius, angle)
|
|
107
|
+
}, positionAttrs;
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
export const layoutRadiusCrosshair = (radiusHair, crosshairInfo) => {
|
|
111
|
+
const {center: center, startAngle: startAngle, endAngle: endAngle, distance: distance, sides: sides, axis: axis, point: point, radius: radius, innerRadius: innerRadius} = crosshairInfo;
|
|
112
|
+
let polygonRadius = distance;
|
|
113
|
+
if ("polygon" === (radiusHair.smooth ? "circle" : "polygon")) {
|
|
114
|
+
const axisCenter = axis.getCenter(), curAngle = getAngleByPoint(axisCenter, point), stepAngle = (endAngle - startAngle) / sides, index = Math.floor((curAngle - startAngle) / stepAngle), preAngle = index * stepAngle + startAngle, nextAngle = Math.min((index + 1) * stepAngle + startAngle, endAngle), prePoint = polarToCartesian(axisCenter, distance, preAngle), nextPoint = polarToCartesian(axisCenter, distance, nextAngle), insertPoint = getIntersectPoint([ nextPoint.x, nextPoint.y ], [ prePoint.x, prePoint.y ], [ axisCenter.x, axisCenter.y ], [ point.x, point.y ]);
|
|
115
|
+
insertPoint && (polygonRadius = clamp(PointService.distancePN(point, insertPoint[0], insertPoint[1]) + distance, innerRadius, radius));
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
center: center,
|
|
119
|
+
startAngle: startAngle,
|
|
120
|
+
endAngle: endAngle,
|
|
121
|
+
radius: polygonRadius,
|
|
122
|
+
sides: sides
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
//# sourceMappingURL=polar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/component/crosshair/utils/polar.ts"],"names":[],"mappings":"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","file":"polar.js","sourcesContent":["import type { BandScale } from '@visactor/vscale';\nimport type { IPolarSeries } from '../../../series';\nimport type { IHair, IHairRadius } from '../base';\nimport type { AxisCurrentValueMap, IPolarCrosshairInfo } from '../interface';\nimport { getAxisLabelOffset } from '../../axis/util';\nimport { PointService, clamp, getAngleByPoint, getIntersectPoint, isValid, polarToCartesian } from '@visactor/vutils';\nimport type { IPolarAxis } from '../../axis';\nimport { mergeSpec } from '../../../util';\nimport { getFormatFunction } from '../../util';\n\nexport const layoutByValue = (\n series: IPolarSeries,\n currValueAngle: AxisCurrentValueMap,\n currValueRadius: AxisCurrentValueMap,\n angleHair: IHair,\n radiusHair: IHair,\n enableRemain: boolean = false,\n cacheAngleCrossHairInfo?: IPolarCrosshairInfo,\n cacheRadiusCrossHairInfo?: IPolarCrosshairInfo\n) => {\n let angleCrossHairInfo = {\n x: 0,\n y: 0,\n center: { x: 0, y: 0 },\n radius: 0,\n distance: 0,\n startAngle: 0,\n endAngle: 0,\n innerRadius: 0,\n visible: false,\n label: { visible: false, text: '', offset: 0 }\n } as IPolarCrosshairInfo;\n let radiusCrossHairInfo = {\n x: 0,\n y: 0,\n center: { x: 0, y: 0 },\n radius: 0,\n distance: 0,\n startAngle: 0,\n endAngle: 0,\n innerRadius: 0,\n visible: false,\n sides: (series.angleAxisHelper.getScale(0) as BandScale).domain().length,\n label: { visible: false, text: '', offset: 0 }\n } as IPolarCrosshairInfo;\n\n // 计算x轴和y轴的数据,只允许最多一对x和一对y\n if (angleHair) {\n angleCrossHairInfo.visible = !!currValueAngle.size;\n const bandWidth = series.angleAxisHelper.getBandwidth(0);\n currValueAngle.forEach(({ axis, value, coord, ...rest }) => {\n value = value ?? '';\n mergeSpec(angleCrossHairInfo, rest);\n const angle = series.angleAxisHelper.dataToPosition([value]);\n angleCrossHairInfo.angle = angle;\n if (angleHair.label?.visible) {\n angleCrossHairInfo.label.visible = true;\n angleCrossHairInfo.label.text = value;\n angleCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec());\n }\n\n angleCrossHairInfo.startAngle = angle - bandWidth / 2;\n angleCrossHairInfo.endAngle = angle + bandWidth / 2;\n });\n }\n\n if (radiusHair) {\n radiusCrossHairInfo.visible = !!currValueRadius.size;\n currValueRadius.forEach(({ axis, value, coord, ...rest }) => {\n value = value ?? '';\n if (radiusHair.label?.visible) {\n radiusCrossHairInfo.label.visible = true;\n radiusCrossHairInfo.label.text = value;\n radiusCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec());\n }\n radiusCrossHairInfo.angle = coord.angle;\n radiusCrossHairInfo.axis = axis as IPolarAxis;\n mergeSpec(radiusCrossHairInfo, rest);\n });\n }\n\n if (enableRemain && !angleCrossHairInfo.visible && isValid(cacheAngleCrossHairInfo)) {\n angleCrossHairInfo = cacheAngleCrossHairInfo;\n } else {\n if (angleCrossHairInfo.label.visible) {\n if (angleHair && angleHair.label) {\n const { label } = angleCrossHairInfo;\n const { formatMethod, formatter } = angleHair.label;\n const { formatFunc, args } = getFormatFunction(formatMethod, formatter, label.text, {\n label: label.text,\n orient: 'angle'\n });\n if (formatFunc) {\n label.text = formatFunc(...args);\n }\n }\n }\n }\n\n if (enableRemain && !radiusCrossHairInfo.visible && isValid(cacheRadiusCrossHairInfo)) {\n radiusCrossHairInfo = cacheRadiusCrossHairInfo;\n } else {\n if (radiusCrossHairInfo.label.visible) {\n if (radiusHair && radiusHair.label) {\n const { label } = radiusCrossHairInfo;\n const { formatMethod, formatter } = radiusHair.label;\n const { formatFunc, args } = getFormatFunction(formatMethod, formatter, label.text, {\n label: label.text,\n orient: 'radius'\n });\n if (formatFunc) {\n label.text = formatFunc(...args);\n }\n }\n }\n }\n\n return {\n angle: angleCrossHairInfo,\n radius: radiusCrossHairInfo\n };\n};\n\nexport const layoutAngleCrosshair = (angleHair: IHair, crosshairInfo: IPolarCrosshairInfo) => {\n const { angle, innerRadius, radius, startAngle, endAngle, center } = crosshairInfo;\n\n const crosshairType = angleHair.type === 'rect' ? 'sector' : 'line';\n let positionAttrs;\n if (crosshairType === 'sector') {\n positionAttrs = {\n center,\n innerRadius,\n radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n } else {\n positionAttrs = {\n start: polarToCartesian(center, innerRadius, angle),\n end: polarToCartesian(center, radius, angle)\n };\n }\n\n return positionAttrs;\n};\n\nexport const layoutRadiusCrosshair = (radiusHair: IHairRadius, crosshairInfo: IPolarCrosshairInfo) => {\n const { center, startAngle, endAngle, distance, sides, axis, point, radius, innerRadius } = crosshairInfo;\n\n const crosshairType = radiusHair.smooth ? 'circle' : 'polygon';\n\n let polygonRadius = distance;\n if (crosshairType === 'polygon') {\n const axisCenter = axis.getCenter();\n // 需要计算半径\n // 获取当前点的角度\n const curAngle = getAngleByPoint(axisCenter, point);\n const stepAngle = (endAngle - startAngle) / sides;\n const index = Math.floor((curAngle - startAngle) / stepAngle);\n const preAngle = index * stepAngle + startAngle;\n const nextAngle = Math.min((index + 1) * stepAngle + startAngle, endAngle);\n\n const prePoint = polarToCartesian(axisCenter, distance, preAngle);\n const nextPoint = polarToCartesian(axisCenter, distance, nextAngle);\n // 求交点\n const insertPoint = getIntersectPoint(\n [nextPoint.x, nextPoint.y],\n [prePoint.x, prePoint.y],\n [axisCenter.x, axisCenter.y],\n [point.x, point.y]\n );\n if (insertPoint) {\n polygonRadius = clamp(\n PointService.distancePN(point, insertPoint[0], insertPoint[1]) + distance,\n innerRadius,\n radius\n );\n }\n }\n const positionAttrs = {\n center,\n startAngle: startAngle,\n endAngle: endAngle,\n radius: polygonRadius,\n sides\n };\n\n return positionAttrs;\n};\n"]}
|
|
@@ -49,7 +49,8 @@ export class CustomMark extends BaseComponent {
|
|
|
49
49
|
}, {
|
|
50
50
|
skipBeforeLayouted: !0,
|
|
51
51
|
attributeContext: this._getMarkAttributeContext(),
|
|
52
|
-
componentType: spec.componentType
|
|
52
|
+
componentType: spec.componentType,
|
|
53
|
+
key: spec.dataKey
|
|
53
54
|
});
|
|
54
55
|
if (mark && (options.depend && options.depend.length && mark.setDepend(...options.depend),
|
|
55
56
|
isNil(parentMark) ? this._marks.addMark(mark) : parentMark && parentMark.addMark(mark),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/custom-mark/custom-mark.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAKtD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAMnE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIrD,MAAM,OAAO,UAAoB,SAAQ,aAAkB;IAA3D;;QAEE,SAAI,GAAG,iBAAiB,CAAC,UAAU,CAAC;QAGpC,YAAO,GAAG,YAAY,CAAC;QAEvB,eAAU,GAAW,MAAM,CAAC;QAC5B,iBAAY,GAAW,YAAY,CAAC,UAAU,CAAC;QAC/C,gBAAW,GAAW,WAAW,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/component/custom-mark/custom-mark.ts"],"names":[],"mappings":"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","file":"custom-mark.js","sourcesContent":["import { BaseComponent } from '../base/base-component';\nimport { ComponentTypeEnum } from '../interface/type';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IComponentOption } from '../interface';\nimport type { IRegion } from '../../region/interface';\nimport type { IModelRenderOption, IModelSpecInfo } from '../../model/interface';\nimport { LayoutLevel, LayoutZIndex, PREFIX } from '../../constant';\nimport type { EnableMarkType, ICustomMarkGroupSpec, ICustomMarkSpec } from '../../typings';\nimport type { IGroupMark } from '../../mark/group';\nimport type { IMark, MarkTypeEnum } from '../../mark/interface';\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isEqual, isNil, isValid, isValidNumber } from '@visactor/vutils';\nimport { Factory } from '../../core/factory';\nimport { registerImageMark } from '../../mark/image';\nimport type { IGraphic } from '@visactor/vrender-core';\n\n// TODO: 规范范型\nexport class CustomMark<T = any> extends BaseComponent<any> {\n static type = ComponentTypeEnum.customMark;\n type = ComponentTypeEnum.customMark;\n\n static specKey = 'customMark';\n specKey = 'customMark';\n\n layoutType: 'none' = 'none';\n layoutZIndex: number = LayoutZIndex.CustomMark;\n layoutLevel: number = LayoutLevel.CustomMark;\n\n protected declare _spec: (ICustomMarkSpec<Exclude<EnableMarkType, 'group'>> | ICustomMarkGroupSpec)[];\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const spec = chartSpec[this.specKey];\n if (!spec) {\n return null;\n }\n return [\n {\n spec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: ComponentTypeEnum.customMark\n }\n ];\n }\n\n created() {\n super.created();\n this.initMarks();\n this.initEvent();\n }\n\n protected initMarks() {\n if (!this._spec) {\n return;\n }\n const series = this._option && this._option.getAllSeries();\n const depend: IMark[] = [];\n\n if (series && series.length) {\n series.forEach(s => {\n const marks = s && s.getMarksWithoutRoot();\n\n if (marks && marks.length) {\n marks.forEach(mark => {\n depend.push(mark);\n });\n }\n });\n }\n\n this._spec.forEach((m, i) => {\n this._createExtensionMark(m, null, `${PREFIX}_series_${this.id}_extensionMark`, i, { depend });\n });\n }\n\n private _createExtensionMark(\n spec: ICustomMarkSpec<Exclude<EnableMarkType, 'group'>> | ICustomMarkGroupSpec,\n parentMark: null | IGroupMark,\n namePrefix: string,\n index: number,\n options: { hasAnimation?: boolean; depend?: IMark[] }\n ) {\n const mark = this._createMark(\n {\n type: spec.type,\n name: `${PREFIX}_${index}`\n },\n {\n // 避免二次dataflow\n skipBeforeLayouted: true,\n attributeContext: this._getMarkAttributeContext(),\n componentType: spec.componentType,\n key: spec.dataKey\n }\n ) as IGroupMark;\n if (!mark) {\n return;\n }\n\n if (options.depend && options.depend.length) {\n mark.setDepend(...options.depend);\n }\n if (isNil(parentMark)) {\n this._marks.addMark(mark);\n } else if (parentMark) {\n parentMark.addMark(mark);\n }\n // set style\n this.initMarkStyleWithSpec(mark, spec);\n if (spec.type === 'group') {\n namePrefix = `${namePrefix}_${index}`;\n spec.children?.forEach((s, i) => {\n this._createExtensionMark(s as any, mark, namePrefix, i, options);\n });\n }\n\n if (isValid(spec.dataId) || isValidNumber(spec.dataIndex)) {\n const dataview = this.getChart().getSeriesData(spec.dataId, spec.dataIndex);\n if (dataview) {\n dataview.target.addListener('change', () => {\n mark.getData().updateData();\n });\n mark.setDataView(dataview);\n }\n }\n }\n\n initEvent() {\n // do nothing\n }\n\n /**\n * updateSpec\n */\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n if (!isEqual(prevSpec, spec)) {\n result.reMake = true;\n }\n\n result.change = true;\n result.reRender = true;\n return result;\n }\n\n changeRegions(regions: IRegion[]): void {\n // do nothing;\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [];\n }\n\n onRender(ctx: IModelRenderOption): void {\n // do nothing;\n }\n private _getMarkAttributeContext() {\n return {\n vchart: this._option.globalInstance,\n globalScale: (key: string, value: string | number) => {\n return this._option.globalScale.getScale(key)?.scale(value);\n }\n };\n }\n}\n\nexport const registerCustomMark = () => {\n registerImageMark();\n Factory.registerComponent(CustomMark.type, CustomMark);\n};\n"]}
|
|
@@ -73,6 +73,7 @@ export declare class DataZoom<T extends IDataZoomSpec = IDataZoomSpec> extends D
|
|
|
73
73
|
};
|
|
74
74
|
disableTriggerEvent: boolean;
|
|
75
75
|
};
|
|
76
|
+
protected _getHandlerTextFormatMethod(spec: IDataZoomSpec['startText']): (text: any) => any;
|
|
76
77
|
protected _getNeedClearVRenderComponents(): IGraphic[];
|
|
77
78
|
}
|
|
78
79
|
export declare const registerDataZoom: () => void;
|
|
@@ -18,6 +18,8 @@ import { Factory } from "../../../core/factory";
|
|
|
18
18
|
|
|
19
19
|
import { DataZoomSpecTransformer } from "./data-zoom-transformer";
|
|
20
20
|
|
|
21
|
+
import { getFormatFunction } from "../../util";
|
|
22
|
+
|
|
21
23
|
export class DataZoom extends DataFilterBaseComponent {
|
|
22
24
|
static getSpecInfo(chartSpec) {
|
|
23
25
|
const compSpec = chartSpec[this.specKey];
|
|
@@ -215,12 +217,12 @@ export class DataZoom extends DataFilterBaseComponent {
|
|
|
215
217
|
endHandlerStyle: transformToGraphic(null === (_f = this._spec.endHandler) || void 0 === _f ? void 0 : _f.style),
|
|
216
218
|
startTextStyle: {
|
|
217
219
|
padding: startText.padding,
|
|
218
|
-
formatMethod: startText
|
|
220
|
+
formatMethod: this._getHandlerTextFormatMethod(startText),
|
|
219
221
|
textStyle: transformToGraphic(startText.style)
|
|
220
222
|
},
|
|
221
223
|
endTextStyle: {
|
|
222
224
|
padding: endText.padding,
|
|
223
|
-
formatMethod: endText
|
|
225
|
+
formatMethod: this._getHandlerTextFormatMethod(endText),
|
|
224
226
|
textStyle: transformToGraphic(endText.style)
|
|
225
227
|
},
|
|
226
228
|
selectedBackgroundStyle: transformToGraphic(this._spec.selectedBackground.style),
|
|
@@ -246,6 +248,12 @@ export class DataZoom extends DataFilterBaseComponent {
|
|
|
246
248
|
disableTriggerEvent: this._option.disableTriggerEvent
|
|
247
249
|
};
|
|
248
250
|
}
|
|
251
|
+
_getHandlerTextFormatMethod(spec) {
|
|
252
|
+
const {formatMethod: formatMethod, formatter: formatter} = spec, {formatFunc: formatFunc} = getFormatFunction(formatMethod, formatter);
|
|
253
|
+
return formatFunc ? text => formatFunc(text, {
|
|
254
|
+
label: text
|
|
255
|
+
}, formatter) : void 0;
|
|
256
|
+
}
|
|
249
257
|
_getNeedClearVRenderComponents() {
|
|
250
258
|
return [ this._component ];
|
|
251
259
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/data-zoom/data-zoom/data-zoom.ts"],"names":[],"mappings":"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","file":"data-zoom.js","sourcesContent":["import type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isArray, isBoolean, isNil, isNumber, isValid, maxInArray, minInArray, uniqArray } from '@visactor/vutils';\nimport { mergeSpec } from '../../../util/spec/merge-spec';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { DataFilterBaseComponent } from '../data-filter-base-component';\n// eslint-disable-next-line no-duplicate-imports\nimport type { DataZoomAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataZoom as DataZoomComponent } from '@visactor/vrender-components';\nimport { transformToGraphic } from '../../../util/style';\nimport type { IRectGraphicAttribute, INode, ISymbolGraphicAttribute, IGroup, IGraphic } from '@visactor/vrender-core';\nimport type { Datum, ILayoutType } from '../../../typings';\nimport type { ILinearScale, IBaseScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { LinearScale, isContinuous, isDiscrete } from '@visactor/vscale';\nimport { ChartEvent, LayoutLevel, LayoutZIndex } from '../../../constant';\nimport type { IDataZoomSpec } from './interface';\nimport { IFilterMode } from '../constant';\nimport { Factory } from '../../../core/factory';\nimport type { IZoomable } from '../../../interaction/zoom';\nimport type { CartesianAxis } from '../../axis/cartesian';\nimport type { IModelSpecInfo } from '../../../model/interface';\nimport { DataZoomSpecTransformer } from './data-zoom-transformer';\n\nexport class DataZoom<T extends IDataZoomSpec = IDataZoomSpec> extends DataFilterBaseComponent<T> {\n static type = ComponentTypeEnum.dataZoom;\n static readonly transformerConstructor = DataZoomSpecTransformer as any;\n type = ComponentTypeEnum.dataZoom;\n name: string = ComponentTypeEnum.dataZoom;\n readonly transformerConstructor = DataZoomSpecTransformer;\n\n static specKey = 'dataZoom';\n specKey = 'dataZoom';\n\n layoutZIndex: number = LayoutZIndex.DataZoom;\n layoutLevel: number = LayoutLevel.DataZoom;\n layoutType: ILayoutType = 'region-relative';\n\n // datazoom组件\n protected _component!: DataZoomComponent;\n\n protected _valueScale!: ILinearScale;\n\n protected _backgroundSize!: number;\n protected _middleHandlerSize!: number;\n protected _startHandlerSize!: number;\n protected _endHandlerSize!: number;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const compSpec = chartSpec[this.specKey];\n if (isNil(compSpec)) {\n return undefined;\n }\n if (!isArray(compSpec)) {\n return [\n {\n spec: compSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: ComponentTypeEnum.dataZoom\n }\n ];\n }\n const specInfos: IModelSpecInfo[] = [];\n compSpec.forEach((s, i: number) => {\n specInfos.push({\n spec: s,\n specPath: [this.specKey, i],\n specInfoPath: ['component', this.specKey, i],\n type: ComponentTypeEnum.dataZoom\n });\n });\n return specInfos;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n\n this._valueField = 'y';\n this._filterMode = spec.filterMode ?? IFilterMode.filter;\n }\n\n created() {\n super.created();\n this._initValueScale();\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n if (isBoolean((this._spec as any).roam)) {\n this._zoomAttr.enable = (this._spec as any).roam;\n this._dragAttr.enable = (this._spec as any).roam;\n this._scrollAttr.enable = (this._spec as any).roam;\n }\n\n if (this._zoomAttr.enable || this._dragAttr.enable || this._scrollAttr.enable) {\n (this as unknown as IZoomable).initZoomable(this.event, this._option.mode);\n }\n\n // size相关\n this._backgroundSize = this._spec.background?.size ?? 30;\n this._middleHandlerSize = this._computeMiddleHandlerSize();\n this._width = this._computeWidth();\n this._height = this._computeHeight();\n // startHandler和endHandler size如果没有配置,则默认跟随background宽 or 高\n if (isNil(this._spec?.startHandler?.style?.size)) {\n this._spec.startHandler.style.size = this._isHorizontal\n ? this._height - this._middleHandlerSize\n : this._width - this._middleHandlerSize;\n }\n if (isNil(this._spec?.endHandler?.style?.size)) {\n this._spec.endHandler.style.size = this._isHorizontal\n ? this._height - this._middleHandlerSize\n : this._width - this._middleHandlerSize;\n }\n const startHandlerVisble = this._spec.startHandler.style.visible ?? true;\n const endHandlerVisble = this._spec.endHandler.style.visible ?? true;\n this._startHandlerSize = startHandlerVisble ? this._spec.startHandler.style.size : 0;\n this._endHandlerSize = endHandlerVisble ? this._spec.endHandler.style.size : 0;\n }\n\n /** LifeCycle API**/\n onLayoutEnd(ctx: any): void {\n this._updateScaleRange();\n if (this._cacheVisibility !== false) {\n super.onLayoutEnd(ctx);\n }\n }\n\n protected _initValueScale() {\n const domain = this._computeDomainOfValueScale();\n\n if (domain) {\n const valueScale = new LinearScale();\n valueScale.domain(domain);\n this._valueScale = valueScale;\n }\n }\n\n protected _updateScaleRange() {\n const handlerSize = (this._startHandlerSize + this._endHandlerSize) / 2;\n if (!this._stateScale || !this._valueScale) {\n return;\n }\n\n // visible为false时, 计算stateScale的兜底range\n let stateScaleRange;\n const defaultSize = this._isHorizontal\n ? this.getLayoutRect().width - handlerSize\n : this.getLayoutRect().height - handlerSize;\n const defaultRange = (this._relatedAxisComponent as CartesianAxis<any>)?.getScale().range() ?? [0, defaultSize];\n\n if (this._isHorizontal) {\n stateScaleRange = this._visible ? [0, this._computeWidth() - handlerSize] : defaultRange;\n this._stateScale.range(stateScaleRange);\n this._valueScale.range([this._computeHeight() - this._middleHandlerSize, 0]);\n } else if (this.layoutOrient === 'left') {\n stateScaleRange = this._visible ? [0, this._computeHeight() - handlerSize] : defaultRange;\n this._stateScale.range(stateScaleRange);\n this._valueScale.range([this._computeWidth() - this._middleHandlerSize, 0]);\n } else {\n stateScaleRange = this._visible ? [0, this._computeHeight() - handlerSize] : defaultRange;\n this._stateScale.range(stateScaleRange);\n this._valueScale.range([0, this._computeWidth() - this._middleHandlerSize]);\n }\n\n if (this._component && this._cacheVisibility !== false) {\n this._component.setAttributes({\n size: {\n width: this._computeWidth(),\n height: this._computeHeight()\n },\n position: {\n x: this.getLayoutStartPoint().x,\n y: this.getLayoutStartPoint().y\n }\n });\n }\n }\n\n protected _computeDomainOfValueScale() {\n const domain = this._data.getLatestData().map((d: any) => d[this._valueField]);\n\n const domainNum = domain.map((n: any) => n * 1);\n return domain.length ? [minInArray(domainNum), maxInArray(domainNum)] : null;\n }\n\n protected _computeMiddleHandlerSize(): number {\n let size = 0;\n if (this._spec?.middleHandler?.visible) {\n const middleHandlerIconSize = this._spec.middleHandler.icon.style.size ?? 8;\n const middleHandlerBackSize = this._spec.middleHandler.background.size ?? 40;\n size += Math.max(middleHandlerIconSize as number, middleHandlerBackSize);\n }\n return size;\n }\n\n protected _computeWidth(): number {\n if (this._visible === false) {\n return 0;\n }\n\n if (isNumber(this._spec.width)) {\n return this._spec.width;\n }\n\n if (this._isHorizontal) {\n return this.getLayoutRect().width;\n }\n\n return this._backgroundSize + this._middleHandlerSize;\n }\n\n protected _computeHeight(): number {\n if (this._visible === false) {\n return 0;\n }\n\n if (isNumber(this._spec.height)) {\n return this._spec.height;\n }\n\n if (this._isHorizontal) {\n return this._backgroundSize + this._middleHandlerSize;\n }\n return this.getLayoutRect().height - (this._startHandlerSize + this._endHandlerSize) / 2;\n }\n\n protected _isScaleValid(scale: IBaseScale | ILinearScale) {\n if (!scale || !scale.domain()) {\n return false;\n }\n const domain = scale.domain();\n if (isContinuous(scale.type) && domain[0] === domain[1]) {\n return false;\n }\n if (isDiscrete(scale.type) && uniqArray(domain).length === 1) {\n return false;\n }\n return true;\n }\n\n protected _dataToPositionX = (datum: Datum): number => {\n const offsetLeft = this._orient === 'left' ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? this._startHandlerSize / 2 : 0;\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const xField = this._isHorizontal ? this._stateField : this._valueField;\n return xScale.scale(datum[xField]) + this.getLayoutStartPoint().x + offsetLeft + offsetHandler;\n };\n\n protected _dataToPositionX2 = (datum: Datum): number => {\n const offsetLeft = this._orient === 'left' ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? this._startHandlerSize / 2 : 0;\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const min = xScale.domain()[0];\n return xScale.scale(min) + this.getLayoutStartPoint().x + offsetLeft + offsetHandler;\n };\n\n protected _dataToPositionY = (datum: Datum): number => {\n const offsetTop = this._isHorizontal ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? 0 : this._startHandlerSize / 2;\n const yScale = this._isHorizontal ? this._valueScale : this._stateScale;\n const yField = this._isHorizontal ? this._valueField : this._stateField;\n return yScale.scale(datum[yField]) + this.getLayoutStartPoint().y + offsetTop + offsetHandler;\n };\n\n protected _dataToPositionY2 = (datum: Datum): number => {\n const offsetTop = this._isHorizontal ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? 0 : this._startHandlerSize / 2;\n const yScale = this._isHorizontal ? this._valueScale : this._stateScale;\n const min = yScale.domain()[0];\n return yScale.scale(min) + this.getLayoutStartPoint().y + offsetTop + offsetHandler;\n };\n\n private _getAttrs(isNeedPreview: boolean) {\n const spec = this._spec ?? ({} as T);\n return {\n zIndex: this.layoutZIndex,\n start: this._start,\n end: this._end,\n position: {\n x: this.getLayoutStartPoint().x,\n y: this.getLayoutStartPoint().y\n },\n orient: this._orient,\n size: {\n width: this.getLayoutRect().width,\n height: this.getLayoutRect().height\n },\n showDetail: spec.showDetail,\n brushSelect: spec.brushSelect ?? false,\n zoomLock: spec.zoomLock ?? false,\n minSpan: this._minSpan,\n maxSpan: this._maxSpan,\n delayType: spec.delayType,\n delayTime: isValid(spec.delayType) ? spec.delayTime ?? 30 : 0,\n realTime: spec.realTime ?? true,\n previewData: isNeedPreview && this._data.getLatestData(),\n previewPointsX: isNeedPreview && this._dataToPositionX,\n previewPointsY: isNeedPreview && this._dataToPositionY,\n ...(this._getComponentAttrs() as any)\n } as DataZoomAttributes;\n }\n\n protected _createOrUpdateComponent() {\n if (this._visible) {\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const yScale = this._isHorizontal ? this._valueScale : this._stateScale;\n const isNeedPreview = this._isScaleValid(xScale) && this._isScaleValid(yScale);\n const attrs = this._getAttrs(isNeedPreview);\n if (this._component) {\n this._component.setAttributes(attrs);\n } else {\n const container = this.getContainer();\n this._component = new DataZoomComponent(attrs);\n\n if (this._isHorizontal) {\n isNeedPreview && this._component.setPreviewPointsY1(this._dataToPositionY2);\n } else {\n isNeedPreview && this._component.setPreviewPointsX1(this._dataToPositionX2);\n }\n this._component.setStatePointToData((state: number) => this._statePointToData(state));\n\n this._component.addEventListener('change', (e: any) => {\n const { start, end, tag } = e.detail;\n this._handleChange(start, end, undefined, tag);\n });\n container.add(this._component as unknown as INode);\n\n this._updateScaleRange();\n }\n }\n }\n\n protected _handleChange(start: number, end: number, updateComponent?: boolean, tag?: string) {\n super._handleChange(start, end, updateComponent);\n if (this._shouldChange) {\n if (updateComponent && this._component) {\n this._component.setStartAndEnd(start, end);\n }\n\n this._start = start;\n this._end = end;\n const hasChange = this._handleStateChange(this._statePointToData(start), this._statePointToData(end), tag);\n if (hasChange) {\n this.event.emit(ChartEvent.dataZoomChange, {\n model: this,\n value: {\n filterData: this._filterMode !== IFilterMode.axis,\n start,\n end,\n startValue: this._startValue,\n endValue: this._endValue,\n newDomain: this._newDomain\n }\n });\n }\n }\n }\n\n protected _handleDataCollectionChange() {\n const data = this._data.getDataView();\n data.reRunAllTransform();\n this._component?.setPreviewData(data.latestData);\n\n if (this._valueScale) {\n const domain = this._computeDomainOfValueScale();\n\n if (domain) {\n this._valueScale.domain(domain);\n }\n }\n }\n\n protected _getComponentAttrs() {\n const {\n middleHandler = {},\n startText = {},\n endText = {},\n backgroundChart = {},\n selectedBackgroundChart = {}\n } = this._spec as T;\n return {\n backgroundStyle: transformToGraphic(this._spec.background?.style) as unknown as IRectGraphicAttribute,\n startHandlerStyle: transformToGraphic(this._spec.startHandler?.style) as unknown as ISymbolGraphicAttribute,\n middleHandlerStyle: middleHandler.visible\n ? {\n visible: true,\n icon: transformToGraphic(middleHandler.icon?.style) as unknown as ISymbolGraphicAttribute,\n background: {\n size: middleHandler.background?.size,\n style: transformToGraphic(middleHandler.background?.style)\n } as any\n }\n : { visible: false },\n endHandlerStyle: transformToGraphic(this._spec.endHandler?.style) as unknown as ISymbolGraphicAttribute,\n startTextStyle: {\n padding: startText.padding,\n formatMethod: startText.formatMethod,\n textStyle: transformToGraphic(startText.style)\n } as unknown,\n endTextStyle: {\n padding: endText.padding,\n formatMethod: endText.formatMethod,\n textStyle: transformToGraphic(endText.style)\n } as unknown,\n selectedBackgroundStyle: transformToGraphic(\n this._spec.selectedBackground.style\n ) as unknown as IRectGraphicAttribute,\n dragMaskStyle: transformToGraphic(this._spec.dragMask?.style) as unknown as IRectGraphicAttribute,\n backgroundChartStyle: {\n line: mergeSpec(transformToGraphic(backgroundChart.line?.style), { fill: false }),\n area: {\n curveType: 'basis',\n visible: true,\n ...transformToGraphic(backgroundChart.area?.style)\n }\n },\n selectedBackgroundChartStyle: {\n line: mergeSpec(transformToGraphic(selectedBackgroundChart.line?.style), { fill: false }),\n area: {\n curveType: 'basis',\n visible: true,\n ...transformToGraphic(selectedBackgroundChart.area?.style)\n }\n },\n disableTriggerEvent: this._option.disableTriggerEvent\n };\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._component] as unknown as IGroup[];\n }\n}\n\nexport const registerDataZoom = () => {\n Factory.registerComponent(DataZoom.type, DataZoom);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/data-zoom/data-zoom/data-zoom.ts"],"names":[],"mappings":"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","file":"data-zoom.js","sourcesContent":["import type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isArray, isBoolean, isNil, isNumber, isValid, maxInArray, minInArray, uniqArray } from '@visactor/vutils';\nimport { mergeSpec } from '../../../util/spec/merge-spec';\nimport type { IComponentOption } from '../../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../../interface/type';\nimport { DataFilterBaseComponent } from '../data-filter-base-component';\n// eslint-disable-next-line no-duplicate-imports\nimport type { DataZoomAttributes } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataZoom as DataZoomComponent } from '@visactor/vrender-components';\nimport { transformToGraphic } from '../../../util/style';\nimport type { IRectGraphicAttribute, INode, ISymbolGraphicAttribute, IGroup, IGraphic } from '@visactor/vrender-core';\nimport type { Datum, ILayoutType } from '../../../typings';\nimport type { ILinearScale, IBaseScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { LinearScale, isContinuous, isDiscrete } from '@visactor/vscale';\nimport { ChartEvent, LayoutLevel, LayoutZIndex } from '../../../constant';\nimport type { IDataZoomSpec } from './interface';\nimport { IFilterMode } from '../constant';\nimport { Factory } from '../../../core/factory';\nimport type { IZoomable } from '../../../interaction/zoom';\nimport type { CartesianAxis } from '../../axis/cartesian';\nimport type { IModelSpecInfo } from '../../../model/interface';\nimport { DataZoomSpecTransformer } from './data-zoom-transformer';\nimport { getFormatFunction } from '../../util';\n\nexport class DataZoom<T extends IDataZoomSpec = IDataZoomSpec> extends DataFilterBaseComponent<T> {\n static type = ComponentTypeEnum.dataZoom;\n static readonly transformerConstructor = DataZoomSpecTransformer as any;\n type = ComponentTypeEnum.dataZoom;\n name: string = ComponentTypeEnum.dataZoom;\n readonly transformerConstructor = DataZoomSpecTransformer;\n\n static specKey = 'dataZoom';\n specKey = 'dataZoom';\n\n layoutZIndex: number = LayoutZIndex.DataZoom;\n layoutLevel: number = LayoutLevel.DataZoom;\n layoutType: ILayoutType = 'region-relative';\n\n // datazoom组件\n protected _component!: DataZoomComponent;\n\n protected _valueScale!: ILinearScale;\n\n protected _backgroundSize!: number;\n protected _middleHandlerSize!: number;\n protected _startHandlerSize!: number;\n protected _endHandlerSize!: number;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const compSpec = chartSpec[this.specKey];\n if (isNil(compSpec)) {\n return undefined;\n }\n if (!isArray(compSpec)) {\n return [\n {\n spec: compSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: ComponentTypeEnum.dataZoom\n }\n ];\n }\n const specInfos: IModelSpecInfo[] = [];\n compSpec.forEach((s, i: number) => {\n specInfos.push({\n spec: s,\n specPath: [this.specKey, i],\n specInfoPath: ['component', this.specKey, i],\n type: ComponentTypeEnum.dataZoom\n });\n });\n return specInfos;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n\n this._valueField = 'y';\n this._filterMode = spec.filterMode ?? IFilterMode.filter;\n }\n\n created() {\n super.created();\n this._initValueScale();\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n\n if (isBoolean((this._spec as any).roam)) {\n this._zoomAttr.enable = (this._spec as any).roam;\n this._dragAttr.enable = (this._spec as any).roam;\n this._scrollAttr.enable = (this._spec as any).roam;\n }\n\n if (this._zoomAttr.enable || this._dragAttr.enable || this._scrollAttr.enable) {\n (this as unknown as IZoomable).initZoomable(this.event, this._option.mode);\n }\n\n // size相关\n this._backgroundSize = this._spec.background?.size ?? 30;\n this._middleHandlerSize = this._computeMiddleHandlerSize();\n this._width = this._computeWidth();\n this._height = this._computeHeight();\n // startHandler和endHandler size如果没有配置,则默认跟随background宽 or 高\n if (isNil(this._spec?.startHandler?.style?.size)) {\n this._spec.startHandler.style.size = this._isHorizontal\n ? this._height - this._middleHandlerSize\n : this._width - this._middleHandlerSize;\n }\n if (isNil(this._spec?.endHandler?.style?.size)) {\n this._spec.endHandler.style.size = this._isHorizontal\n ? this._height - this._middleHandlerSize\n : this._width - this._middleHandlerSize;\n }\n const startHandlerVisble = this._spec.startHandler.style.visible ?? true;\n const endHandlerVisble = this._spec.endHandler.style.visible ?? true;\n this._startHandlerSize = startHandlerVisble ? this._spec.startHandler.style.size : 0;\n this._endHandlerSize = endHandlerVisble ? this._spec.endHandler.style.size : 0;\n }\n\n /** LifeCycle API**/\n onLayoutEnd(ctx: any): void {\n this._updateScaleRange();\n if (this._cacheVisibility !== false) {\n super.onLayoutEnd(ctx);\n }\n }\n\n protected _initValueScale() {\n const domain = this._computeDomainOfValueScale();\n\n if (domain) {\n const valueScale = new LinearScale();\n valueScale.domain(domain);\n this._valueScale = valueScale;\n }\n }\n\n protected _updateScaleRange() {\n const handlerSize = (this._startHandlerSize + this._endHandlerSize) / 2;\n if (!this._stateScale || !this._valueScale) {\n return;\n }\n\n // visible为false时, 计算stateScale的兜底range\n let stateScaleRange;\n const defaultSize = this._isHorizontal\n ? this.getLayoutRect().width - handlerSize\n : this.getLayoutRect().height - handlerSize;\n const defaultRange = (this._relatedAxisComponent as CartesianAxis<any>)?.getScale().range() ?? [0, defaultSize];\n\n if (this._isHorizontal) {\n stateScaleRange = this._visible ? [0, this._computeWidth() - handlerSize] : defaultRange;\n this._stateScale.range(stateScaleRange);\n this._valueScale.range([this._computeHeight() - this._middleHandlerSize, 0]);\n } else if (this.layoutOrient === 'left') {\n stateScaleRange = this._visible ? [0, this._computeHeight() - handlerSize] : defaultRange;\n this._stateScale.range(stateScaleRange);\n this._valueScale.range([this._computeWidth() - this._middleHandlerSize, 0]);\n } else {\n stateScaleRange = this._visible ? [0, this._computeHeight() - handlerSize] : defaultRange;\n this._stateScale.range(stateScaleRange);\n this._valueScale.range([0, this._computeWidth() - this._middleHandlerSize]);\n }\n\n if (this._component && this._cacheVisibility !== false) {\n this._component.setAttributes({\n size: {\n width: this._computeWidth(),\n height: this._computeHeight()\n },\n position: {\n x: this.getLayoutStartPoint().x,\n y: this.getLayoutStartPoint().y\n }\n });\n }\n }\n\n protected _computeDomainOfValueScale() {\n const domain = this._data.getLatestData().map((d: any) => d[this._valueField]);\n\n const domainNum = domain.map((n: any) => n * 1);\n return domain.length ? [minInArray(domainNum), maxInArray(domainNum)] : null;\n }\n\n protected _computeMiddleHandlerSize(): number {\n let size = 0;\n if (this._spec?.middleHandler?.visible) {\n const middleHandlerIconSize = this._spec.middleHandler.icon.style.size ?? 8;\n const middleHandlerBackSize = this._spec.middleHandler.background.size ?? 40;\n size += Math.max(middleHandlerIconSize as number, middleHandlerBackSize);\n }\n return size;\n }\n\n protected _computeWidth(): number {\n if (this._visible === false) {\n return 0;\n }\n\n if (isNumber(this._spec.width)) {\n return this._spec.width;\n }\n\n if (this._isHorizontal) {\n return this.getLayoutRect().width;\n }\n\n return this._backgroundSize + this._middleHandlerSize;\n }\n\n protected _computeHeight(): number {\n if (this._visible === false) {\n return 0;\n }\n\n if (isNumber(this._spec.height)) {\n return this._spec.height;\n }\n\n if (this._isHorizontal) {\n return this._backgroundSize + this._middleHandlerSize;\n }\n return this.getLayoutRect().height - (this._startHandlerSize + this._endHandlerSize) / 2;\n }\n\n protected _isScaleValid(scale: IBaseScale | ILinearScale) {\n if (!scale || !scale.domain()) {\n return false;\n }\n const domain = scale.domain();\n if (isContinuous(scale.type) && domain[0] === domain[1]) {\n return false;\n }\n if (isDiscrete(scale.type) && uniqArray(domain).length === 1) {\n return false;\n }\n return true;\n }\n\n protected _dataToPositionX = (datum: Datum): number => {\n const offsetLeft = this._orient === 'left' ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? this._startHandlerSize / 2 : 0;\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const xField = this._isHorizontal ? this._stateField : this._valueField;\n return xScale.scale(datum[xField]) + this.getLayoutStartPoint().x + offsetLeft + offsetHandler;\n };\n\n protected _dataToPositionX2 = (datum: Datum): number => {\n const offsetLeft = this._orient === 'left' ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? this._startHandlerSize / 2 : 0;\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const min = xScale.domain()[0];\n return xScale.scale(min) + this.getLayoutStartPoint().x + offsetLeft + offsetHandler;\n };\n\n protected _dataToPositionY = (datum: Datum): number => {\n const offsetTop = this._isHorizontal ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? 0 : this._startHandlerSize / 2;\n const yScale = this._isHorizontal ? this._valueScale : this._stateScale;\n const yField = this._isHorizontal ? this._valueField : this._stateField;\n return yScale.scale(datum[yField]) + this.getLayoutStartPoint().y + offsetTop + offsetHandler;\n };\n\n protected _dataToPositionY2 = (datum: Datum): number => {\n const offsetTop = this._isHorizontal ? this._middleHandlerSize : 0;\n const offsetHandler = this._isHorizontal ? 0 : this._startHandlerSize / 2;\n const yScale = this._isHorizontal ? this._valueScale : this._stateScale;\n const min = yScale.domain()[0];\n return yScale.scale(min) + this.getLayoutStartPoint().y + offsetTop + offsetHandler;\n };\n\n private _getAttrs(isNeedPreview: boolean) {\n const spec = this._spec ?? ({} as T);\n return {\n zIndex: this.layoutZIndex,\n start: this._start,\n end: this._end,\n position: {\n x: this.getLayoutStartPoint().x,\n y: this.getLayoutStartPoint().y\n },\n orient: this._orient,\n size: {\n width: this.getLayoutRect().width,\n height: this.getLayoutRect().height\n },\n showDetail: spec.showDetail,\n brushSelect: spec.brushSelect ?? false,\n zoomLock: spec.zoomLock ?? false,\n minSpan: this._minSpan,\n maxSpan: this._maxSpan,\n delayType: spec.delayType,\n delayTime: isValid(spec.delayType) ? spec.delayTime ?? 30 : 0,\n realTime: spec.realTime ?? true,\n previewData: isNeedPreview && this._data.getLatestData(),\n previewPointsX: isNeedPreview && this._dataToPositionX,\n previewPointsY: isNeedPreview && this._dataToPositionY,\n ...(this._getComponentAttrs() as any)\n } as DataZoomAttributes;\n }\n\n protected _createOrUpdateComponent() {\n if (this._visible) {\n const xScale = this._isHorizontal ? this._stateScale : this._valueScale;\n const yScale = this._isHorizontal ? this._valueScale : this._stateScale;\n const isNeedPreview = this._isScaleValid(xScale) && this._isScaleValid(yScale);\n const attrs = this._getAttrs(isNeedPreview);\n if (this._component) {\n this._component.setAttributes(attrs);\n } else {\n const container = this.getContainer();\n this._component = new DataZoomComponent(attrs);\n\n if (this._isHorizontal) {\n isNeedPreview && this._component.setPreviewPointsY1(this._dataToPositionY2);\n } else {\n isNeedPreview && this._component.setPreviewPointsX1(this._dataToPositionX2);\n }\n this._component.setStatePointToData((state: number) => this._statePointToData(state));\n\n this._component.addEventListener('change', (e: any) => {\n const { start, end, tag } = e.detail;\n this._handleChange(start, end, undefined, tag);\n });\n container.add(this._component as unknown as INode);\n\n this._updateScaleRange();\n }\n }\n }\n\n protected _handleChange(start: number, end: number, updateComponent?: boolean, tag?: string) {\n super._handleChange(start, end, updateComponent);\n if (this._shouldChange) {\n if (updateComponent && this._component) {\n this._component.setStartAndEnd(start, end);\n }\n\n this._start = start;\n this._end = end;\n const hasChange = this._handleStateChange(this._statePointToData(start), this._statePointToData(end), tag);\n if (hasChange) {\n this.event.emit(ChartEvent.dataZoomChange, {\n model: this,\n value: {\n filterData: this._filterMode !== IFilterMode.axis,\n start,\n end,\n startValue: this._startValue,\n endValue: this._endValue,\n newDomain: this._newDomain\n }\n });\n }\n }\n }\n\n protected _handleDataCollectionChange() {\n const data = this._data.getDataView();\n data.reRunAllTransform();\n this._component?.setPreviewData(data.latestData);\n\n if (this._valueScale) {\n const domain = this._computeDomainOfValueScale();\n\n if (domain) {\n this._valueScale.domain(domain);\n }\n }\n }\n\n protected _getComponentAttrs() {\n const {\n middleHandler = {},\n startText = {},\n endText = {},\n backgroundChart = {},\n selectedBackgroundChart = {}\n } = this._spec as T;\n return {\n backgroundStyle: transformToGraphic(this._spec.background?.style) as unknown as IRectGraphicAttribute,\n startHandlerStyle: transformToGraphic(this._spec.startHandler?.style) as unknown as ISymbolGraphicAttribute,\n middleHandlerStyle: middleHandler.visible\n ? {\n visible: true,\n icon: transformToGraphic(middleHandler.icon?.style) as unknown as ISymbolGraphicAttribute,\n background: {\n size: middleHandler.background?.size,\n style: transformToGraphic(middleHandler.background?.style)\n } as any\n }\n : { visible: false },\n endHandlerStyle: transformToGraphic(this._spec.endHandler?.style) as unknown as ISymbolGraphicAttribute,\n startTextStyle: {\n padding: startText.padding,\n formatMethod: this._getHandlerTextFormatMethod(startText),\n textStyle: transformToGraphic(startText.style)\n } as unknown,\n endTextStyle: {\n padding: endText.padding,\n formatMethod: this._getHandlerTextFormatMethod(endText),\n textStyle: transformToGraphic(endText.style)\n } as unknown,\n selectedBackgroundStyle: transformToGraphic(\n this._spec.selectedBackground.style\n ) as unknown as IRectGraphicAttribute,\n dragMaskStyle: transformToGraphic(this._spec.dragMask?.style) as unknown as IRectGraphicAttribute,\n backgroundChartStyle: {\n line: mergeSpec(transformToGraphic(backgroundChart.line?.style), { fill: false }),\n area: {\n curveType: 'basis',\n visible: true,\n ...transformToGraphic(backgroundChart.area?.style)\n }\n },\n selectedBackgroundChartStyle: {\n line: mergeSpec(transformToGraphic(selectedBackgroundChart.line?.style), { fill: false }),\n area: {\n curveType: 'basis',\n visible: true,\n ...transformToGraphic(selectedBackgroundChart.area?.style)\n }\n },\n disableTriggerEvent: this._option.disableTriggerEvent\n };\n }\n\n protected _getHandlerTextFormatMethod(spec: IDataZoomSpec['startText']) {\n const { formatMethod, formatter } = spec;\n const { formatFunc } = getFormatFunction(formatMethod, formatter);\n return formatFunc ? (text: any) => formatFunc(text, { label: text }, formatter) : undefined;\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [this._component] as unknown as IGroup[];\n }\n}\n\nexport const registerDataZoom = () => {\n Factory.registerComponent(DataZoom.type, DataZoom);\n};\n"]}
|