@visactor/vchart 1.10.0-alpha.1 → 1.10.0-alpha.5
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 +51324 -49290
- 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/bar/bar-transformer.d.ts +1 -0
- package/cjs/chart/bar/bar-transformer.js +19 -2
- package/cjs/chart/bar/bar-transformer.js.map +1 -1
- package/cjs/chart/bar/interface.d.ts +3 -0
- package/cjs/chart/bar/interface.js.map +1 -1
- package/cjs/chart/base/base-chart-transformer.js +10 -12
- package/cjs/chart/base/base-chart-transformer.js.map +1 -1
- package/cjs/chart/base/base-chart.d.ts +2 -2
- package/cjs/chart/base/base-chart.js +4 -2
- package/cjs/chart/base/base-chart.js.map +1 -1
- package/cjs/chart/base/util.d.ts +1 -1
- package/cjs/chart/base/util.js +20 -10
- package/cjs/chart/base/util.js.map +1 -1
- package/cjs/chart/cartesian/cartesian-transformer.d.ts +1 -0
- package/cjs/chart/cartesian/cartesian-transformer.js +10 -7
- package/cjs/chart/cartesian/cartesian-transformer.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/polar/polar-transformer.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 +8 -4
- package/cjs/compile/compiler.js.map +1 -1
- package/cjs/compile/mark/compilable-mark.d.ts +4 -1
- package/cjs/compile/mark/compilable-mark.js +9 -1
- package/cjs/compile/mark/compilable-mark.js.map +1 -1
- package/cjs/compile/mark/interface.d.ts +4 -1
- package/cjs/compile/mark/interface.js.map +1 -1
- package/cjs/component/axis/base-axis.d.ts +10 -59
- package/cjs/component/axis/base-axis.js +112 -88
- 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/band-axis.d.ts +5 -0
- package/cjs/component/axis/cartesian/band-axis.js +27 -5
- package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/interface/spec.d.ts +5 -0
- package/cjs/component/axis/cartesian/interface/spec.js.map +1 -1
- package/cjs/component/axis/cartesian/log-axis.js +2 -1
- package/cjs/component/axis/cartesian/log-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 +7 -6
- package/cjs/component/axis/interface/spec.js.map +1 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.js +1 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.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/base-component.d.ts +1 -1
- package/cjs/component/base/base-component.js +2 -2
- package/cjs/component/base/base-component.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/brush/brush.d.ts +0 -3
- package/cjs/component/brush/brush.js +5 -33
- package/cjs/component/brush/brush.js.map +1 -1
- package/cjs/component/brush/interface.d.ts +0 -3
- package/cjs/component/brush/interface.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.d.ts +1 -2
- 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-filter-base-component.d.ts +3 -6
- package/cjs/component/data-zoom/data-filter-base-component.js +11 -21
- package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +1 -0
- package/cjs/component/data-zoom/data-zoom/data-zoom.js +15 -9
- package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/cjs/component/data-zoom/data-zoom/interface.d.ts +4 -7
- 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/util.d.ts +0 -4
- package/cjs/component/data-zoom/util.js +3 -15
- 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/indicator/indicator.js.map +1 -1
- package/cjs/component/indicator/interface.d.ts +5 -5
- package/cjs/component/indicator/interface.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/base-label.d.ts +4 -4
- package/cjs/component/label/interface.d.ts +9 -10
- package/cjs/component/label/interface.js.map +1 -1
- package/cjs/component/label/label.js +1 -1
- package/cjs/component/label/label.js.map +1 -1
- package/cjs/component/label/total-label.js +14 -1
- package/cjs/component/label/total-label.js.map +1 -1
- package/cjs/component/label/util.d.ts +1 -1
- package/cjs/component/label/util.js +5 -12
- 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 +20 -6
- 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 +2 -3
- package/cjs/component/legend/util.js +2 -6
- package/cjs/component/legend/util.js.map +1 -1
- package/cjs/component/marker/interface.d.ts +6 -6
- package/cjs/component/marker/interface.js.map +1 -1
- package/cjs/component/marker/mark-area/interface/theme.d.ts +1 -1
- package/cjs/component/marker/mark-area/interface/theme.js.map +1 -1
- package/cjs/component/marker/mark-area/mark-area.js +1 -1
- package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
- package/cjs/component/marker/mark-line/interface/theme.d.ts +1 -1
- package/cjs/component/marker/mark-line/interface/theme.js.map +1 -1
- package/cjs/component/marker/mark-line/mark-line.js +1 -1
- package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
- package/cjs/component/marker/mark-point/interface/theme.d.ts +1 -1
- package/cjs/component/marker/mark-point/interface/theme.js.map +1 -1
- package/cjs/component/marker/mark-point/mark-point.js +5 -2
- package/cjs/component/marker/mark-point/mark-point.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/poptip/interface.d.ts +5 -2
- package/cjs/component/poptip/interface.js.map +1 -1
- package/cjs/component/title/interface/spec.d.ts +18 -7
- package/cjs/component/title/interface/spec.js.map +1 -1
- package/cjs/component/title/interface/theme.d.ts +2 -1
- package/cjs/component/title/interface/theme.js.map +1 -1
- package/cjs/component/tooltip/interface/common.d.ts +3 -3
- 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 +6 -5
- package/cjs/component/tooltip/interface/theme.js.map +1 -1
- package/cjs/component/tooltip/processor/base.js +2 -2
- package/cjs/component/tooltip/processor/base.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 +13 -11
- 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/constant/index.d.ts +1 -0
- package/cjs/constant/index.js +5 -4
- package/cjs/constant/index.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 +5 -4
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/data/initialize.js.map +1 -1
- package/cjs/data/transforms/dimension-statistics.d.ts +2 -0
- package/cjs/data/transforms/dimension-statistics.js +1 -1
- package/cjs/data/transforms/dimension-statistics.js.map +1 -1
- package/cjs/data/transforms/funnel.d.ts +1 -1
- package/cjs/data/transforms/waterfall.js +104 -29
- package/cjs/data/transforms/waterfall.js.map +1 -1
- package/cjs/event/event-dispatcher.js +1 -1
- package/cjs/event/event-dispatcher.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/common.js +45 -48
- package/cjs/event/events/dimension/util/common.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/event/interface.d.ts +2 -1
- package/cjs/event/interface.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.js +3 -1
- package/cjs/interaction/dimension-trigger.js.map +1 -1
- package/cjs/interaction/interaction.d.ts +5 -0
- package/cjs/interaction/interaction.js +17 -1
- package/cjs/interaction/interaction.js.map +1 -1
- package/cjs/interaction/interface.d.ts +4 -1
- package/cjs/interaction/interface.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/mark/label.d.ts +2 -2
- package/cjs/mark/label.js.map +1 -1
- package/cjs/mark/text.d.ts +16 -7
- package/cjs/mark/text.js +12 -6
- package/cjs/mark/text.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 +126 -65
- 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 -10
- 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 +3 -3
- 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 +14 -11
- 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/area/interface.d.ts +2 -1
- package/cjs/series/area/interface.js.map +1 -1
- package/cjs/series/bar/bar-3d.js.map +1 -1
- package/cjs/series/bar/bar.d.ts +11 -1
- package/cjs/series/bar/bar.js +102 -72
- package/cjs/series/bar/bar.js.map +1 -1
- package/cjs/series/bar/interface.d.ts +4 -3
- package/cjs/series/bar/interface.js.map +1 -1
- package/cjs/series/base/base-series-transformer.d.ts +4 -0
- package/cjs/series/base/base-series-transformer.js +33 -10
- package/cjs/series/base/base-series-transformer.js.map +1 -1
- package/cjs/series/base/base-series.d.ts +4 -1
- package/cjs/series/base/base-series.js +12 -3
- 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/cartesian/cartesian.d.ts +1 -2
- package/cjs/series/cartesian/cartesian.js +28 -24
- package/cjs/series/cartesian/cartesian.js.map +1 -1
- package/cjs/series/circle-packing/circle-packing.js.map +1 -1
- package/cjs/series/correlation/interface.d.ts +3 -3
- package/cjs/series/correlation/interface.js.map +1 -1
- package/cjs/series/dot/interface.d.ts +2 -2
- package/cjs/series/dot/interface.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/funnel/funnel.js.map +1 -1
- package/cjs/series/funnel/interface.d.ts +5 -4
- package/cjs/series/funnel/interface.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 +3 -1
- package/cjs/series/interface/common.js.map +1 -1
- package/cjs/series/line/interface.d.ts +3 -2
- package/cjs/series/line/interface.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/map/interface.d.ts +2 -5
- package/cjs/series/map/interface.js.map +1 -1
- package/cjs/series/mixin/line-mixin.js +1 -1
- package/cjs/series/mixin/line-mixin.js.map +1 -1
- package/cjs/series/pie/3d/pie-3d.d.ts +1 -1
- package/cjs/series/pie/3d/pie-3d.js +2 -4
- package/cjs/series/pie/3d/pie-3d.js.map +1 -1
- package/cjs/series/pie/interface.d.ts +5 -4
- package/cjs/series/pie/interface.js.map +1 -1
- package/cjs/series/pie/pie-transformer.js +5 -4
- package/cjs/series/pie/pie-transformer.js.map +1 -1
- package/cjs/series/pie/pie.js +1 -4
- package/cjs/series/pie/pie.js.map +1 -1
- package/cjs/series/polar/progress-like/progress-like.js +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/radar/interface.d.ts +2 -1
- package/cjs/series/radar/interface.js.map +1 -1
- package/cjs/series/range-area/tooltip-helper.js.map +1 -1
- package/cjs/series/range-column/interface.d.ts +5 -5
- package/cjs/series/range-column/interface.js.map +1 -1
- package/cjs/series/rose/interface.d.ts +2 -1
- package/cjs/series/rose/interface.js.map +1 -1
- package/cjs/series/rose/rose.js +1 -5
- package/cjs/series/rose/rose.js.map +1 -1
- package/cjs/series/sankey/interface.d.ts +2 -2
- package/cjs/series/sankey/interface.js.map +1 -1
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/cjs/series/sankey/tooltip-helper.js.map +1 -1
- package/cjs/series/scatter/interface.d.ts +2 -1
- package/cjs/series/scatter/interface.js.map +1 -1
- package/cjs/series/sunburst/sunburst.d.ts +1 -1
- package/cjs/series/sunburst/sunburst.js.map +1 -1
- package/cjs/series/treemap/interface.d.ts +3 -2
- package/cjs/series/treemap/interface.js.map +1 -1
- package/cjs/series/treemap/treemap.d.ts +2 -0
- package/cjs/series/treemap/treemap.js +45 -45
- package/cjs/series/treemap/treemap.js.map +1 -1
- package/cjs/series/util/utils.js +1 -1
- package/cjs/series/util/utils.js.map +1 -1
- package/cjs/series/word-cloud/base.js.map +1 -1
- package/cjs/series/word-cloud/interface.d.ts +2 -6
- package/cjs/series/word-cloud/interface.js.map +1 -1
- package/cjs/theme/builtin/common/component/axis/cartesian-axis.js +9 -7
- package/cjs/theme/builtin/common/component/axis/cartesian-axis.js.map +1 -1
- package/cjs/theme/builtin/common/component/axis/common-axis.js +15 -10
- package/cjs/theme/builtin/common/component/axis/common-axis.js.map +1 -1
- package/cjs/theme/builtin/common/component/crosshair.js +121 -6
- package/cjs/theme/builtin/common/component/crosshair.js.map +1 -1
- package/cjs/theme/builtin/common/component/data-zoom.js +17 -5
- package/cjs/theme/builtin/common/component/data-zoom.js.map +1 -1
- package/cjs/theme/builtin/common/component/indicator.js +9 -7
- package/cjs/theme/builtin/common/component/indicator.js.map +1 -1
- package/cjs/theme/builtin/common/component/legend/continuous.js +33 -13
- package/cjs/theme/builtin/common/component/legend/continuous.js.map +1 -1
- package/cjs/theme/builtin/common/component/legend/discrete-legend.js +17 -9
- package/cjs/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
- package/cjs/theme/builtin/common/component/map-label.js +9 -7
- package/cjs/theme/builtin/common/component/map-label.js.map +1 -1
- package/cjs/theme/builtin/common/component/mark-area.js +5 -6
- package/cjs/theme/builtin/common/component/mark-area.js.map +1 -1
- package/cjs/theme/builtin/common/component/mark-line.js +5 -6
- package/cjs/theme/builtin/common/component/mark-line.js.map +1 -1
- package/cjs/theme/builtin/common/component/poptip.js +9 -7
- package/cjs/theme/builtin/common/component/poptip.js.map +1 -1
- package/cjs/theme/builtin/common/component/title.js +17 -9
- package/cjs/theme/builtin/common/component/title.js.map +1 -1
- package/cjs/theme/builtin/common/component/tooltip.js +25 -11
- package/cjs/theme/builtin/common/component/tooltip.js.map +1 -1
- package/cjs/theme/builtin/common/component/total-label.js +5 -6
- package/cjs/theme/builtin/common/component/total-label.js.map +1 -1
- package/cjs/theme/builtin/common/mark.js +12 -9
- 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/circle-packing.js +9 -7
- package/cjs/theme/builtin/common/series/circle-packing.js.map +1 -1
- package/cjs/theme/builtin/common/series/dot.js +17 -9
- package/cjs/theme/builtin/common/series/dot.js.map +1 -1
- package/cjs/theme/builtin/common/series/funnel.js +9 -7
- package/cjs/theme/builtin/common/series/funnel.js.map +1 -1
- package/cjs/theme/builtin/common/series/funnel3d.js +9 -7
- package/cjs/theme/builtin/common/series/funnel3d.js.map +1 -1
- package/cjs/theme/builtin/common/series/map.js +9 -7
- package/cjs/theme/builtin/common/series/map.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/sunburst.js +9 -3
- package/cjs/theme/builtin/common/series/sunburst.js.map +1 -1
- package/cjs/theme/builtin/common/series/treemap.js +18 -10
- package/cjs/theme/builtin/common/series/treemap.js.map +1 -1
- package/cjs/theme/builtin/common/series/waterfall.js +9 -7
- package/cjs/theme/builtin/common/series/waterfall.js.map +1 -1
- package/cjs/theme/builtin/index.js +3 -3
- package/cjs/theme/builtin/index.js.map +1 -1
- package/cjs/theme/builtin/light/index.js +6 -2
- package/cjs/theme/builtin/light/index.js.map +1 -1
- package/cjs/theme/interface.d.ts +3 -19
- package/cjs/theme/interface.js.map +1 -1
- package/cjs/theme/theme-manager.d.ts +1 -1
- package/cjs/theme/theme-manager.js +2 -2
- package/cjs/theme/theme-manager.js.map +1 -1
- package/cjs/theme/token/builtin/default.d.ts +2 -0
- package/cjs/theme/{builtin/common/constants.js → token/builtin/default.js} +3 -5
- package/cjs/theme/token/builtin/default.js.map +1 -0
- package/cjs/theme/token/builtin/index.d.ts +2 -0
- package/cjs/theme/token/builtin/index.js +21 -0
- package/cjs/theme/token/builtin/index.js.map +1 -0
- package/cjs/theme/token/builtin/interface.d.ts +17 -0
- package/cjs/theme/token/builtin/interface.js +6 -0
- package/cjs/theme/token/builtin/interface.js.map +1 -0
- package/cjs/theme/token/index.d.ts +3 -0
- package/cjs/theme/token/index.js +22 -0
- package/cjs/theme/token/index.js.map +1 -0
- package/cjs/theme/token/interface.d.ts +6 -0
- package/cjs/theme/token/interface.js +6 -0
- package/cjs/theme/token/interface.js.map +1 -0
- package/cjs/theme/token/util.d.ts +3 -0
- package/cjs/theme/token/util.js +15 -0
- package/cjs/theme/token/util.js.map +1 -0
- package/cjs/typings/spec/common.d.ts +32 -22
- 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 +18 -24
- package/cjs/typings/tooltip/position.js +1 -12
- 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 +15 -11
- package/cjs/typings/visual.js.map +1 -1
- package/cjs/util/data.d.ts +2 -1
- package/cjs/util/data.js +12 -7
- package/cjs/util/data.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/util/spec/common.d.ts +0 -2
- package/cjs/util/spec/common.js +3 -8
- package/cjs/util/spec/common.js.map +1 -1
- package/cjs/util/spec/index.d.ts +2 -2
- package/cjs/util/spec/index.js +1 -1
- package/cjs/util/spec/index.js.map +1 -1
- package/cjs/util/text.js +3 -3
- package/cjs/util/text.js.map +1 -1
- package/cjs/util/theme/common.d.ts +2 -0
- package/cjs/util/theme/common.js +15 -0
- package/cjs/util/theme/common.js.map +1 -0
- package/cjs/util/theme/index.d.ts +3 -0
- package/cjs/util/theme/index.js +22 -0
- package/cjs/util/theme/index.js.map +1 -0
- package/cjs/util/{spec → theme}/merge-theme.js +3 -1
- package/cjs/util/theme/merge-theme.js.map +1 -0
- package/cjs/util/{spec → theme}/preprocess.d.ts +2 -1
- package/cjs/util/{spec → theme}/preprocess.js +5 -3
- package/cjs/util/theme/preprocess.js.map +1 -0
- 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/bar/bar-transformer.d.ts +1 -0
- package/esm/chart/bar/bar-transformer.js +19 -1
- package/esm/chart/bar/bar-transformer.js.map +1 -1
- package/esm/chart/bar/interface.d.ts +3 -0
- package/esm/chart/bar/interface.js.map +1 -1
- package/esm/chart/base/base-chart-transformer.js +10 -12
- package/esm/chart/base/base-chart-transformer.js.map +1 -1
- package/esm/chart/base/base-chart.d.ts +2 -2
- package/esm/chart/base/base-chart.js +4 -2
- package/esm/chart/base/base-chart.js.map +1 -1
- package/esm/chart/base/util.d.ts +1 -1
- package/esm/chart/base/util.js +21 -9
- package/esm/chart/base/util.js.map +1 -1
- package/esm/chart/cartesian/cartesian-transformer.d.ts +1 -0
- package/esm/chart/cartesian/cartesian-transformer.js +10 -7
- package/esm/chart/cartesian/cartesian-transformer.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/polar/polar-transformer.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 +9 -5
- package/esm/compile/compiler.js.map +1 -1
- package/esm/compile/mark/compilable-mark.d.ts +4 -1
- package/esm/compile/mark/compilable-mark.js +9 -1
- package/esm/compile/mark/compilable-mark.js.map +1 -1
- package/esm/compile/mark/interface.d.ts +4 -1
- package/esm/compile/mark/interface.js.map +1 -1
- package/esm/component/axis/base-axis.d.ts +10 -59
- package/esm/component/axis/base-axis.js +112 -86
- 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/band-axis.d.ts +5 -0
- package/esm/component/axis/cartesian/band-axis.js +27 -6
- package/esm/component/axis/cartesian/band-axis.js.map +1 -1
- package/esm/component/axis/cartesian/interface/spec.d.ts +5 -0
- package/esm/component/axis/cartesian/interface/spec.js.map +1 -1
- package/esm/component/axis/cartesian/log-axis.js +2 -1
- package/esm/component/axis/cartesian/log-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 +7 -6
- package/esm/component/axis/interface/spec.js.map +1 -1
- package/esm/component/axis/mixin/linear-axis-mixin.js +1 -1
- package/esm/component/axis/mixin/linear-axis-mixin.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/base-component.d.ts +1 -1
- package/esm/component/base/base-component.js +3 -1
- package/esm/component/base/base-component.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/brush/brush.d.ts +0 -3
- package/esm/component/brush/brush.js +5 -31
- package/esm/component/brush/brush.js.map +1 -1
- package/esm/component/brush/interface.d.ts +0 -3
- package/esm/component/brush/interface.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.d.ts +1 -2
- 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-filter-base-component.d.ts +3 -6
- package/esm/component/data-zoom/data-filter-base-component.js +12 -20
- package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +1 -0
- package/esm/component/data-zoom/data-zoom/data-zoom.js +16 -9
- package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/esm/component/data-zoom/data-zoom/interface.d.ts +4 -7
- 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/util.d.ts +0 -4
- package/esm/component/data-zoom/util.js +2 -15
- 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/indicator/indicator.js.map +1 -1
- package/esm/component/indicator/interface.d.ts +5 -5
- package/esm/component/indicator/interface.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/base-label.d.ts +4 -4
- package/esm/component/label/interface.d.ts +9 -10
- package/esm/component/label/interface.js.map +1 -1
- package/esm/component/label/label.js +1 -1
- package/esm/component/label/label.js.map +1 -1
- package/esm/component/label/total-label.js +14 -1
- package/esm/component/label/total-label.js.map +1 -1
- package/esm/component/label/util.d.ts +1 -1
- package/esm/component/label/util.js +7 -11
- 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 +20 -6
- 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 +2 -3
- package/esm/component/legend/util.js +0 -4
- package/esm/component/legend/util.js.map +1 -1
- package/esm/component/marker/interface.d.ts +6 -6
- package/esm/component/marker/interface.js.map +1 -1
- package/esm/component/marker/mark-area/interface/theme.d.ts +1 -1
- package/esm/component/marker/mark-area/interface/theme.js.map +1 -1
- package/esm/component/marker/mark-area/mark-area.js +1 -1
- package/esm/component/marker/mark-area/mark-area.js.map +1 -1
- package/esm/component/marker/mark-line/interface/theme.d.ts +1 -1
- package/esm/component/marker/mark-line/interface/theme.js.map +1 -1
- package/esm/component/marker/mark-line/mark-line.js +1 -1
- package/esm/component/marker/mark-line/mark-line.js.map +1 -1
- package/esm/component/marker/mark-point/interface/theme.d.ts +1 -1
- package/esm/component/marker/mark-point/interface/theme.js.map +1 -1
- package/esm/component/marker/mark-point/mark-point.js +5 -2
- package/esm/component/marker/mark-point/mark-point.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/poptip/interface.d.ts +5 -2
- package/esm/component/poptip/interface.js.map +1 -1
- package/esm/component/title/interface/spec.d.ts +18 -7
- package/esm/component/title/interface/spec.js.map +1 -1
- package/esm/component/title/interface/theme.d.ts +2 -1
- package/esm/component/title/interface/theme.js.map +1 -1
- package/esm/component/tooltip/interface/common.d.ts +3 -3
- 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 +6 -5
- package/esm/component/tooltip/interface/theme.js.map +1 -1
- package/esm/component/tooltip/processor/base.js +1 -3
- package/esm/component/tooltip/processor/base.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 +10 -10
- 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/constant/index.d.ts +1 -0
- package/esm/constant/index.js +2 -0
- package/esm/constant/index.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 +7 -4
- package/esm/core/vchart.js.map +1 -1
- package/esm/data/initialize.js.map +1 -1
- package/esm/data/transforms/dimension-statistics.d.ts +2 -0
- package/esm/data/transforms/dimension-statistics.js +1 -1
- package/esm/data/transforms/dimension-statistics.js.map +1 -1
- package/esm/data/transforms/funnel.d.ts +1 -1
- package/esm/data/transforms/waterfall.js +104 -28
- package/esm/data/transforms/waterfall.js.map +1 -1
- package/esm/event/event-dispatcher.js +2 -2
- package/esm/event/event-dispatcher.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/common.js +44 -47
- package/esm/event/events/dimension/util/common.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/event/interface.d.ts +2 -1
- package/esm/event/interface.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.js +3 -1
- package/esm/interaction/dimension-trigger.js.map +1 -1
- package/esm/interaction/interaction.d.ts +5 -0
- package/esm/interaction/interaction.js +17 -1
- package/esm/interaction/interaction.js.map +1 -1
- package/esm/interaction/interface.d.ts +4 -1
- package/esm/interaction/interface.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/mark/label.d.ts +2 -2
- package/esm/mark/label.js.map +1 -1
- package/esm/mark/text.d.ts +16 -7
- package/esm/mark/text.js +13 -7
- package/esm/mark/text.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 +125 -66
- 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 -9
- 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 +4 -4
- 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 +14 -11
- 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/area/interface.d.ts +2 -1
- package/esm/series/area/interface.js.map +1 -1
- package/esm/series/bar/bar-3d.js.map +1 -1
- package/esm/series/bar/bar.d.ts +11 -1
- package/esm/series/bar/bar.js +99 -66
- package/esm/series/bar/bar.js.map +1 -1
- package/esm/series/bar/interface.d.ts +4 -3
- package/esm/series/bar/interface.js.map +1 -1
- package/esm/series/base/base-series-transformer.d.ts +4 -0
- package/esm/series/base/base-series-transformer.js +35 -10
- package/esm/series/base/base-series-transformer.js.map +1 -1
- package/esm/series/base/base-series.d.ts +4 -1
- package/esm/series/base/base-series.js +12 -3
- 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/cartesian/cartesian.d.ts +1 -2
- package/esm/series/cartesian/cartesian.js +28 -25
- package/esm/series/cartesian/cartesian.js.map +1 -1
- package/esm/series/circle-packing/circle-packing.js.map +1 -1
- package/esm/series/correlation/interface.d.ts +3 -3
- package/esm/series/correlation/interface.js.map +1 -1
- package/esm/series/dot/interface.d.ts +2 -2
- package/esm/series/dot/interface.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/funnel/funnel.js.map +1 -1
- package/esm/series/funnel/interface.d.ts +5 -4
- package/esm/series/funnel/interface.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 +3 -1
- package/esm/series/interface/common.js.map +1 -1
- package/esm/series/line/interface.d.ts +3 -2
- package/esm/series/line/interface.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/map/interface.d.ts +2 -5
- package/esm/series/map/interface.js.map +1 -1
- package/esm/series/mixin/line-mixin.js +1 -1
- package/esm/series/mixin/line-mixin.js.map +1 -1
- package/esm/series/pie/3d/pie-3d.d.ts +1 -1
- package/esm/series/pie/3d/pie-3d.js +2 -3
- package/esm/series/pie/3d/pie-3d.js.map +1 -1
- package/esm/series/pie/interface.d.ts +5 -4
- package/esm/series/pie/interface.js.map +1 -1
- package/esm/series/pie/pie-transformer.js +5 -1
- package/esm/series/pie/pie-transformer.js.map +1 -1
- package/esm/series/pie/pie.js +1 -4
- package/esm/series/pie/pie.js.map +1 -1
- package/esm/series/polar/progress-like/progress-like.js +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/radar/interface.d.ts +2 -1
- package/esm/series/radar/interface.js.map +1 -1
- package/esm/series/range-area/tooltip-helper.js.map +1 -1
- package/esm/series/range-column/interface.d.ts +5 -5
- package/esm/series/range-column/interface.js.map +1 -1
- package/esm/series/rose/interface.d.ts +2 -1
- package/esm/series/rose/interface.js.map +1 -1
- package/esm/series/rose/rose.js +1 -5
- package/esm/series/rose/rose.js.map +1 -1
- package/esm/series/sankey/interface.d.ts +2 -2
- package/esm/series/sankey/interface.js.map +1 -1
- package/esm/series/sankey/sankey.js.map +1 -1
- package/esm/series/sankey/tooltip-helper.js.map +1 -1
- package/esm/series/scatter/interface.d.ts +2 -1
- package/esm/series/scatter/interface.js.map +1 -1
- package/esm/series/sunburst/sunburst.d.ts +1 -1
- package/esm/series/sunburst/sunburst.js.map +1 -1
- package/esm/series/treemap/interface.d.ts +3 -2
- package/esm/series/treemap/interface.js.map +1 -1
- package/esm/series/treemap/treemap.d.ts +2 -0
- package/esm/series/treemap/treemap.js +43 -46
- package/esm/series/treemap/treemap.js.map +1 -1
- package/esm/series/util/utils.js +1 -1
- package/esm/series/util/utils.js.map +1 -1
- package/esm/series/word-cloud/base.js.map +1 -1
- package/esm/series/word-cloud/interface.d.ts +2 -6
- package/esm/series/word-cloud/interface.js.map +1 -1
- package/esm/theme/builtin/common/component/axis/cartesian-axis.js +8 -4
- package/esm/theme/builtin/common/component/axis/cartesian-axis.js.map +1 -1
- package/esm/theme/builtin/common/component/axis/common-axis.js +14 -7
- package/esm/theme/builtin/common/component/axis/common-axis.js.map +1 -1
- package/esm/theme/builtin/common/component/crosshair.js +120 -7
- package/esm/theme/builtin/common/component/crosshair.js.map +1 -1
- package/esm/theme/builtin/common/component/data-zoom.js +16 -6
- package/esm/theme/builtin/common/component/data-zoom.js.map +1 -1
- package/esm/theme/builtin/common/component/indicator.js +8 -4
- package/esm/theme/builtin/common/component/indicator.js.map +1 -1
- package/esm/theme/builtin/common/component/legend/continuous.js +32 -10
- package/esm/theme/builtin/common/component/legend/continuous.js.map +1 -1
- package/esm/theme/builtin/common/component/legend/discrete-legend.js +16 -6
- package/esm/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
- package/esm/theme/builtin/common/component/map-label.js +8 -4
- package/esm/theme/builtin/common/component/map-label.js.map +1 -1
- package/esm/theme/builtin/common/component/mark-area.js +4 -3
- package/esm/theme/builtin/common/component/mark-area.js.map +1 -1
- package/esm/theme/builtin/common/component/mark-line.js +4 -3
- package/esm/theme/builtin/common/component/mark-line.js.map +1 -1
- package/esm/theme/builtin/common/component/poptip.js +8 -4
- package/esm/theme/builtin/common/component/poptip.js.map +1 -1
- package/esm/theme/builtin/common/component/title.js +16 -6
- package/esm/theme/builtin/common/component/title.js.map +1 -1
- package/esm/theme/builtin/common/component/tooltip.js +24 -8
- package/esm/theme/builtin/common/component/tooltip.js.map +1 -1
- package/esm/theme/builtin/common/component/total-label.js +4 -3
- package/esm/theme/builtin/common/component/total-label.js.map +1 -1
- package/esm/theme/builtin/common/mark.js +11 -6
- 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/circle-packing.js +8 -4
- package/esm/theme/builtin/common/series/circle-packing.js.map +1 -1
- package/esm/theme/builtin/common/series/dot.js +16 -6
- package/esm/theme/builtin/common/series/dot.js.map +1 -1
- package/esm/theme/builtin/common/series/funnel.js +8 -4
- package/esm/theme/builtin/common/series/funnel.js.map +1 -1
- package/esm/theme/builtin/common/series/funnel3d.js +8 -4
- package/esm/theme/builtin/common/series/funnel3d.js.map +1 -1
- package/esm/theme/builtin/common/series/map.js +8 -4
- package/esm/theme/builtin/common/series/map.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/sunburst.js +8 -4
- package/esm/theme/builtin/common/series/sunburst.js.map +1 -1
- package/esm/theme/builtin/common/series/treemap.js +17 -7
- package/esm/theme/builtin/common/series/treemap.js.map +1 -1
- package/esm/theme/builtin/common/series/waterfall.js +8 -4
- package/esm/theme/builtin/common/series/waterfall.js.map +1 -1
- package/esm/theme/builtin/index.js +4 -4
- package/esm/theme/builtin/index.js.map +1 -1
- package/esm/theme/builtin/light/index.js +7 -3
- package/esm/theme/builtin/light/index.js.map +1 -1
- package/esm/theme/interface.d.ts +3 -19
- package/esm/theme/interface.js.map +1 -1
- package/esm/theme/theme-manager.d.ts +1 -1
- package/esm/theme/theme-manager.js +2 -2
- package/esm/theme/theme-manager.js.map +1 -1
- package/esm/theme/token/builtin/default.d.ts +2 -0
- package/esm/theme/{builtin/common/constants.js → token/builtin/default.js} +3 -5
- package/esm/theme/token/builtin/default.js.map +1 -0
- package/esm/theme/token/builtin/index.d.ts +2 -0
- package/esm/theme/token/builtin/index.js +4 -0
- package/esm/theme/token/builtin/index.js.map +1 -0
- package/esm/theme/token/builtin/interface.d.ts +17 -0
- package/esm/theme/token/builtin/interface.js +2 -0
- package/esm/theme/token/builtin/interface.js.map +1 -0
- package/esm/theme/token/index.d.ts +3 -0
- package/esm/theme/token/index.js +6 -0
- package/esm/theme/token/index.js.map +1 -0
- package/esm/theme/token/interface.d.ts +6 -0
- package/esm/theme/token/interface.js +2 -0
- package/esm/theme/token/interface.js.map +1 -0
- package/esm/theme/token/util.d.ts +3 -0
- package/esm/theme/token/util.js +8 -0
- package/esm/theme/token/util.js.map +1 -0
- package/esm/typings/spec/common.d.ts +32 -22
- 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 +18 -24
- package/esm/typings/tooltip/position.js +1 -15
- 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 +15 -11
- package/esm/typings/visual.js.map +1 -1
- package/esm/util/data.d.ts +2 -1
- package/esm/util/data.js +12 -8
- package/esm/util/data.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/util/spec/common.d.ts +0 -2
- package/esm/util/spec/common.js +0 -8
- package/esm/util/spec/common.js.map +1 -1
- package/esm/util/spec/index.d.ts +2 -2
- package/esm/util/spec/index.js +2 -2
- package/esm/util/spec/index.js.map +1 -1
- package/esm/util/text.js +4 -4
- package/esm/util/text.js.map +1 -1
- package/esm/util/theme/common.d.ts +2 -0
- package/esm/util/theme/common.js +8 -0
- package/esm/util/theme/common.js.map +1 -0
- package/esm/util/theme/index.d.ts +3 -0
- package/esm/util/theme/index.js +6 -0
- package/esm/util/theme/index.js.map +1 -0
- package/esm/util/{spec → theme}/merge-theme.js +3 -1
- package/esm/util/theme/merge-theme.js.map +1 -0
- package/esm/util/{spec → theme}/preprocess.d.ts +2 -1
- package/esm/util/theme/preprocess.js +18 -0
- package/esm/util/theme/preprocess.js.map +1 -0
- 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/data/transforms/treemap.d.ts +0 -11
- package/cjs/data/transforms/treemap.js +0 -15
- package/cjs/data/transforms/treemap.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/cjs/theme/builtin/common/constants.d.ts +0 -2
- package/cjs/theme/builtin/common/constants.js.map +0 -1
- package/cjs/util/spec/merge-theme.js.map +0 -1
- package/cjs/util/spec/preprocess.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/data/transforms/treemap.d.ts +0 -11
- package/esm/data/transforms/treemap.js +0 -9
- package/esm/data/transforms/treemap.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
- package/esm/theme/builtin/common/constants.d.ts +0 -2
- package/esm/theme/builtin/common/constants.js.map +0 -1
- package/esm/util/spec/merge-theme.js.map +0 -1
- package/esm/util/spec/preprocess.js +0 -15
- package/esm/util/spec/preprocess.js.map +0 -1
- /package/cjs/util/{spec → theme}/merge-theme.d.ts +0 -0
- /package/esm/util/{spec → theme}/merge-theme.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/crosshair/polar.ts"],"names":[],"mappings":"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","file":"polar.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport type { IPolarSeries } from '../../series/interface/series';\nimport { mergeSpec } from '../../util/spec/merge-spec';\nimport type { IComponentOption } from '../interface';\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { IPolarCrosshairSpec } from './interface';\nimport type { BandScale } from '@visactor/vscale';\nimport { isDiscrete, isContinuous } from '@visactor/vscale';\nimport { Tag } from '@visactor/vrender-components';\nimport { LineCrosshair, SectorCrosshair, CircleCrosshair, PolygonCrosshair } from '@visactor/vrender-components';\nimport type { IPolarAxis } from '../axis/polar/interface';\nimport type { IPoint, StringOrNumber } from '../../typings';\nimport type { IAxisInfo, IHair } from './base';\nimport { BaseCrossHair } from './base';\nimport type { Maybe } from '@visactor/vutils';\nimport {\n polarToCartesian,\n getIntersectPoint,\n PointService,\n getAngleByPoint,\n isArray,\n isValid,\n isValidNumber,\n isNil,\n clamp\n} from '@visactor/vutils';\nimport type { IGraphic, IGroup, INode } from '@visactor/vrender-core';\nimport { angleLabelOrientAttribute, radiusLabelOrientAttribute } from '../../util/math';\nimport { limitTagInBounds } from './util';\nimport { getAxisLabelOffset } from '../axis/util';\nimport { Factory } from '../../core/factory';\nimport { LayoutType } from './config';\nimport type { IModelSpecInfo } from '../../model/interface';\n\ninterface ICrosshairInfo {\n x: number;\n y: number;\n center: IPoint;\n radius: number;\n distance: number;\n startAngle: number;\n endAngle: number;\n innerRadius: number;\n visible: boolean;\n sides: number;\n angle: number;\n point: IPoint;\n _isCache?: boolean;\n label?: { visible: boolean; text: StringOrNumber; offset: number };\n axis?: IPolarAxis;\n}\n\nexport class PolarCrossHair<T extends IPolarCrosshairSpec = IPolarCrosshairSpec> extends BaseCrossHair<T> {\n static specKey = 'crosshair';\n\n static type = ComponentTypeEnum.polarCrosshair;\n type = ComponentTypeEnum.polarCrosshair;\n name: string = ComponentTypeEnum.polarCrosshair;\n private _currValueAngle: Map<number, { v: StringOrNumber; axis: IPolarAxis; [key: string]: any }>;\n private _currValueRadius: Map<number, { v: StringOrNumber; axis: IPolarAxis; [key: string]: any }>;\n\n private _angleHair: IHair | undefined;\n private _radiusHair: (IHair & { smooth: boolean }) | undefined;\n\n private _cacheAngleCrossHairInfo: ICrosshairInfo | undefined;\n private _cacheRadiusCrossHairInfo: ICrosshairInfo | undefined;\n\n private _radiusCrosshair: IGroup;\n private _radiusLabelCrosshair: Tag;\n private _angleCrosshair: IGroup;\n private _angleLabelCrosshair: Tag;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const crosshairSpec = chartSpec[this.specKey];\n if (isNil(crosshairSpec)) {\n return undefined;\n }\n if (!isArray(crosshairSpec)) {\n if (crosshairSpec.categoryField || crosshairSpec.valueField) {\n return [\n {\n spec: crosshairSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: ComponentTypeEnum.polarCrosshair\n }\n ];\n }\n return undefined;\n }\n const specInfos: IModelSpecInfo[] = [];\n crosshairSpec.forEach((s: IPolarCrosshairSpec, i: number) => {\n if (s.categoryField || s.valueField) {\n specInfos.push({\n spec: s,\n specPath: [this.specKey, i],\n specInfoPath: ['component', this.specKey, i],\n type: ComponentTypeEnum.polarCrosshair\n });\n }\n });\n return specInfos;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._currValueAngle = new Map();\n this._currValueRadius = new Map();\n }\n\n protected _showDefaultCrosshairBySpec() {\n const { categoryField, valueField } = this._spec as IPolarCrosshairSpec;\n if (categoryField?.visible && categoryField.defaultSelect) {\n const { axisIndex, datum } = categoryField.defaultSelect;\n this._defaultCrosshair(axisIndex, datum, LayoutType.VERTICAL);\n }\n if (valueField?.visible && valueField.defaultSelect) {\n const { axisIndex, datum } = valueField.defaultSelect;\n this._defaultCrosshair(axisIndex, datum, LayoutType.HORIZONTAL);\n }\n }\n\n private _defaultCrosshair(axisIndex: number, datum: StringOrNumber, tag: number) {\n const axis = this._option.getComponentsByKey('axes').find(c => c.getSpecIndex() === axisIndex) as IPolarAxis;\n if (!axis) {\n return;\n }\n // 横轴\n if (tag === LayoutType.VERTICAL) {\n this._currValueAngle.clear();\n // 根据数值拿到对应的坐标点\n const polarCoord = {\n angle: axis.valueToPosition(datum),\n radius: axis.getOuterRadius()\n };\n const canvasPosition = axis.coordToPoint(polarCoord);\n this._currValueAngle.set(axisIndex, this._getValueByAxis(axis, canvasPosition));\n } else {\n this._currValueRadius.clear();\n // 根据数值拿到对应的坐标点\n const polarCoord = {\n angle: axis.startAngle,\n radius: axis.valueToPosition(datum)\n };\n const canvasPosition = axis.coordToPoint(polarCoord);\n this._currValueRadius.set(axisIndex, this._getValueByAxis(axis, canvasPosition));\n }\n this.layoutByValue(LayoutType.ALL);\n }\n\n hide() {\n this._radiusCrosshair && this._radiusCrosshair.hideAll();\n this._radiusLabelCrosshair && this._radiusLabelCrosshair.hideAll();\n this._angleCrosshair && this._angleCrosshair.hideAll();\n this._angleLabelCrosshair && this._angleLabelCrosshair.hideAll();\n }\n\n /**\n * 查找所有落在x和y区域的轴\n * @param relativeX\n * @param relativeY\n */\n private _findAllAxisContains(relativeX: number, relativeY: number) {\n const angleAxisMap = this._getAxisInfoByField<IPolarAxis>('category');\n const radiusAxisMap = this._getAxisInfoByField<IPolarAxis>('value');\n return {\n angleAxisMap: this._filterAxisByPoint<IPolarAxis>(angleAxisMap, relativeX, relativeY),\n radiusAxisMap: this._filterAxisByPoint<IPolarAxis>(radiusAxisMap, relativeX, relativeY)\n };\n }\n\n /**\n * 根据位置获取所有轴上的value\n * @param axisMap\n * @param p\n * @returns\n */\n private _getAllAxisValues(\n axisMap: IAxisInfo<IPolarAxis>,\n point: IPoint,\n currValue: Map<number, { v: StringOrNumber; axis: IPolarAxis; [key: string]: any }>\n ): boolean {\n // 首先不能存在两个离散轴\n let discrete = false;\n axisMap.forEach(item => {\n if (isDiscrete(item.axis.getScale().type)) {\n if (!discrete) {\n discrete = true;\n } else {\n this.enable = false;\n }\n }\n });\n if (!this.enable) {\n return false;\n }\n // 获取所有的value\n axisMap.forEach((item, id) => {\n const axis = item.axis;\n currValue.set(id, this._getValueByAxis(axis, point));\n });\n return true;\n }\n\n private _getValueByAxis(axis: IPolarAxis, point: IPoint) {\n const { x: axisStartX, y: axisStartY } = axis.getLayoutStartPoint();\n const { x, y } = this.getLayoutStartPoint();\n let value = axis.positionToData({\n x: point.x - (axisStartX - x),\n y: point.y - (axisStartY - y)\n });\n if (isContinuous(axis.getScale().type) && isValidNumber(+value)) {\n value = (+value as number).toFixed(2);\n }\n const center = {\n x: axis.getCenter().x + this.getLayoutStartPoint().x,\n y: axis.getCenter().y + this.getLayoutStartPoint().y\n };\n\n return {\n v: value,\n axis,\n center,\n innerRadius: axis.getInnerRadius(),\n radius: axis.getOuterRadius(),\n startAngle: axis.startAngle,\n endAngle: axis.endAngle,\n distance: PointService.distancePP(point, axis.getCenter()),\n coord: axis.pointToCoord(point),\n point\n };\n }\n\n protected _layoutCrosshair(relativeX: number, relativeY: number) {\n // 找到所有的包含这个点的轴\n const { angleAxisMap, radiusAxisMap } = this._findAllAxisContains(relativeX, relativeY);\n if (angleAxisMap.size === 0 && radiusAxisMap.size === 0) {\n if (this.enableRemain) {\n return;\n }\n // 隐藏\n this.hide();\n return;\n }\n // 删除之前的currValue\n this._currValueAngle.clear();\n this._currValueRadius.clear();\n // 将数据保存到这个对象中,如果不存在,就直接不执行后续逻辑\n angleAxisMap && this._getAllAxisValues(angleAxisMap, { x: relativeX, y: relativeY }, this._currValueAngle);\n radiusAxisMap && this._getAllAxisValues(radiusAxisMap, { x: relativeX, y: relativeY }, this._currValueRadius);\n\n this.layoutByValue(LayoutType.ALL);\n }\n\n layoutByValue(tag: number = LayoutType.ALL) {\n if (!this.enable) {\n return;\n }\n // 获取axisHelper\n const series = this._firstSeries<IPolarSeries>();\n if (!series) {\n return;\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 ICrosshairInfo;\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 ICrosshairInfo;\n\n // 计算x轴和y轴的数据,只允许最多一对x和一对y\n if (this._angleHair) {\n angleCrossHairInfo.visible = !!this._currValueAngle.size;\n const bandWidth = series.angleAxisHelper.getBandwidth(0);\n this._currValueAngle.forEach(({ axis, v, coord, ...rest }) => {\n v = v ?? '';\n mergeSpec(angleCrossHairInfo, rest);\n const angle = series.angleAxisHelper.dataToPosition([v]);\n angleCrossHairInfo.angle = angle;\n if (this._angleHair.label?.visible) {\n angleCrossHairInfo.label.visible = true;\n angleCrossHairInfo.label.text = v;\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 (this._radiusHair) {\n radiusCrossHairInfo.visible = !!this._currValueRadius.size;\n this._currValueRadius.forEach(({ axis, v, coord, ...rest }) => {\n v = v ?? '';\n if (this._radiusHair.label?.visible) {\n radiusCrossHairInfo.label.visible = true;\n radiusCrossHairInfo.label.text = v;\n radiusCrossHairInfo.label.offset = getAxisLabelOffset(axis.getSpec());\n }\n radiusCrossHairInfo.angle = coord.angle;\n radiusCrossHairInfo.axis = axis;\n mergeSpec(radiusCrossHairInfo, rest);\n });\n }\n\n if (this.enableRemain && !angleCrossHairInfo.visible && isValid(this._cacheAngleCrossHairInfo)) {\n angleCrossHairInfo = this._cacheAngleCrossHairInfo;\n } else {\n if (this._angleHair?.label?.formatMethod && angleCrossHairInfo.label.visible) {\n const { label } = angleCrossHairInfo;\n label.text = this._angleHair.label.formatMethod(label.text, 'angle') as string;\n }\n }\n\n if (this.enableRemain && !radiusCrossHairInfo.visible && isValid(this._cacheRadiusCrossHairInfo)) {\n radiusCrossHairInfo = this._cacheRadiusCrossHairInfo;\n } else {\n if (this._radiusHair?.label?.formatMethod && radiusCrossHairInfo.label.visible) {\n const { label } = radiusCrossHairInfo;\n label.text = this._radiusHair.label.formatMethod(label.text, 'radius') as string;\n }\n }\n\n if (tag) {\n LayoutType.HORIZONTAL && this._layoutHorizontal(radiusCrossHairInfo);\n LayoutType.VERTICAL && this._layoutVertical(angleCrossHairInfo);\n }\n\n if (this.enableRemain) {\n this._cacheAngleCrossHairInfo = { ...angleCrossHairInfo, _isCache: true };\n this._cacheRadiusCrossHairInfo = { ...radiusCrossHairInfo, _isCache: true };\n }\n }\n\n private _layoutVertical(crosshairInfo: ICrosshairInfo) {\n if (crosshairInfo._isCache && this.enableRemain) {\n return;\n }\n\n const container = this.getContainer();\n const { angle, innerRadius, radius, label, startAngle, endAngle, center, visible } = crosshairInfo;\n if (visible) {\n const crosshairType = this._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 if (this._angleCrosshair) {\n this._angleCrosshair.setAttributes(positionAttrs as unknown as any);\n } else {\n let crosshair;\n // 创建\n if (crosshairType === 'line') {\n crosshair = new LineCrosshair({\n ...(positionAttrs as { start: IPoint; end: IPoint }),\n lineStyle: this._angleHair.style,\n zIndex: this.gridZIndex\n });\n } else if (crosshairType === 'sector') {\n crosshair = new SectorCrosshair({\n ...(positionAttrs as {\n center: IPoint;\n innerRadius: number;\n radius: number;\n startAngle: number;\n endAngle: number;\n }),\n sectorStyle: this._angleHair.style,\n zIndex: this.gridZIndex\n });\n }\n this._angleCrosshair = crosshair as unknown as IGroup;\n // 添加至场景树\n container.add(crosshair as unknown as INode);\n }\n\n // 文本\n if (label.visible) {\n const orient = angleLabelOrientAttribute(angle);\n const labelAttrs = {\n ...polarToCartesian(center, radius + label.offset, angle),\n ...this._angleHair.label,\n ...label,\n textStyle: {\n ...this._angleHair.label?.textStyle,\n textAlign: orient.align,\n textBaseline: orient.baseline\n },\n zIndex: this.labelZIndex\n };\n this._updateCrosshairLabel(this._angleLabelCrosshair, labelAttrs, label => {\n label.name = 'crosshair-angle-label';\n this._angleLabelCrosshair = label;\n });\n } else {\n this._angleLabelCrosshair && this._angleLabelCrosshair.hideAll();\n }\n }\n }\n\n private _layoutHorizontal(crosshairInfo: ICrosshairInfo) {\n if (crosshairInfo._isCache && this.enableRemain) {\n return;\n }\n\n const { center, startAngle, endAngle, distance, sides, axis, label, point, radius, innerRadius, visible } =\n crosshairInfo;\n const container = this.getContainer();\n if (visible) {\n const crosshairType = this._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 if (this._radiusCrosshair) {\n this._radiusCrosshair.setAttributes(positionAttrs as unknown as any);\n } else {\n let crosshair;\n if (crosshairType === 'polygon') {\n crosshair = new PolygonCrosshair({\n ...positionAttrs,\n lineStyle: this._radiusHair.style,\n zIndex: this.gridZIndex + 1 // 样式优化:线盖在面上\n });\n } else {\n crosshair = new CircleCrosshair({\n ...positionAttrs,\n lineStyle: this._radiusHair.style,\n zIndex: this.gridZIndex\n });\n }\n this._radiusCrosshair = crosshair as unknown as IGroup;\n // 添加至场景树\n container.add(crosshair as unknown as INode);\n }\n\n // 文本\n if (label.visible) {\n const orient = radiusLabelOrientAttribute(startAngle);\n const labelAttrs = {\n ...polarToCartesian(center, polygonRadius, startAngle),\n ...this._radiusHair.label,\n ...label,\n textStyle: {\n ...this._radiusHair.label?.textStyle,\n textAlign: orient.align,\n textBaseline: orient.baseline\n },\n zIndex: this.labelZIndex\n };\n this._updateCrosshairLabel(this._radiusLabelCrosshair, labelAttrs, label => {\n label.name = 'crosshair-radius-label';\n this._radiusLabelCrosshair = label;\n });\n } else {\n this._radiusLabelCrosshair && this._radiusLabelCrosshair.hideAll();\n }\n }\n }\n\n protected _parseFieldInfo() {\n const { categoryField, valueField } = this._spec as IPolarCrosshairSpec;\n if (categoryField && categoryField.visible) {\n this._angleHair = this._parseField(categoryField, 'categoryField');\n }\n if (valueField && valueField.visible) {\n this._radiusHair = this._parseField(valueField, 'valueField');\n this._radiusHair.smooth = valueField?.line?.smooth;\n }\n }\n\n private _updateCrosshairLabel(label: Tag, labelAttrs: any, callback: (label: Tag) => void) {\n // 文本\n const container = this.getContainer();\n if (label) {\n label.setAttributes(labelAttrs);\n } else {\n label = new Tag(labelAttrs);\n container?.add(label as unknown as INode);\n callback(label);\n }\n limitTagInBounds(label, this._getLimitBounds());\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [\n this._radiusCrosshair,\n this._radiusLabelCrosshair,\n this._angleCrosshair,\n this._angleLabelCrosshair\n ] as unknown as IGroup[];\n }\n}\n\nexport const registerPolarCrossHair = () => {\n Factory.registerComponent(PolarCrossHair.type, PolarCrossHair);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/crosshair/polar.ts"],"names":[],"mappings":"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","file":"polar.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport type { IPolarSeries } from '../../series/interface/series';\nimport type { IComponentOption } from '../interface';\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { AxisCurrentValueMap, IPolarCrosshairInfo, IPolarCrosshairSpec } from './interface';\nimport { isDiscrete, isContinuous } from '@visactor/vscale';\nimport { Tag } from '@visactor/vrender-components';\nimport { LineCrosshair, SectorCrosshair, CircleCrosshair, PolygonCrosshair } from '@visactor/vrender-components';\nimport type { IPolarAxis } from '../axis/polar/interface';\nimport type { IPoint, StringOrNumber } from '../../typings';\nimport type { IAxisInfo, IHair, IHairRadius } from './base';\nimport { BaseCrossHair } from './base';\nimport type { Maybe } from '@visactor/vutils';\nimport { polarToCartesian, PointService, isArray, isValidNumber, isNil } from '@visactor/vutils';\nimport type { IGraphic, IGroup, INode } from '@visactor/vrender-core';\nimport { angleLabelOrientAttribute, radiusLabelOrientAttribute } from '../../util/math';\nimport { limitTagInBounds } from './utils';\nimport { Factory } from '../../core/factory';\nimport { LayoutType } from './config';\nimport type { IModelSpecInfo } from '../../model/interface';\nimport { layoutByValue, layoutAngleCrosshair, layoutRadiusCrosshair } from './utils/polar';\nimport { getFirstSeries } from '../../util';\n\nexport class PolarCrossHair<T extends IPolarCrosshairSpec = IPolarCrosshairSpec> extends BaseCrossHair<T> {\n static specKey = 'crosshair';\n\n static type = ComponentTypeEnum.polarCrosshair;\n type = ComponentTypeEnum.polarCrosshair;\n name: string = ComponentTypeEnum.polarCrosshair;\n private _currValueAngle: AxisCurrentValueMap;\n private _currValueRadius: AxisCurrentValueMap;\n\n private _angleHair: IHair | undefined;\n private _radiusHair: IHairRadius | undefined;\n\n private _cacheAngleCrossHairInfo: IPolarCrosshairInfo | undefined;\n private _cacheRadiusCrossHairInfo: IPolarCrosshairInfo | undefined;\n\n private _radiusCrosshair: IGroup;\n private _radiusLabelCrosshair: Tag;\n private _angleCrosshair: IGroup;\n private _angleLabelCrosshair: Tag;\n\n static getSpecInfo(chartSpec: any): Maybe<IModelSpecInfo[]> {\n const crosshairSpec = chartSpec[this.specKey];\n if (isNil(crosshairSpec)) {\n return undefined;\n }\n if (!isArray(crosshairSpec)) {\n if (crosshairSpec.categoryField || crosshairSpec.valueField) {\n return [\n {\n spec: crosshairSpec,\n specPath: [this.specKey],\n specInfoPath: ['component', this.specKey, 0],\n type: ComponentTypeEnum.polarCrosshair\n }\n ];\n }\n return undefined;\n }\n const specInfos: IModelSpecInfo[] = [];\n crosshairSpec.forEach((s: IPolarCrosshairSpec, i: number) => {\n if (s.categoryField || s.valueField) {\n specInfos.push({\n spec: s,\n specPath: [this.specKey, i],\n specInfoPath: ['component', this.specKey, i],\n type: ComponentTypeEnum.polarCrosshair\n });\n }\n });\n return specInfos;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._currValueAngle = new Map();\n this._currValueRadius = new Map();\n }\n\n protected _showDefaultCrosshairBySpec() {\n const { categoryField, valueField } = this._spec as IPolarCrosshairSpec;\n if (categoryField?.visible && categoryField.defaultSelect) {\n const { axisIndex, datum } = categoryField.defaultSelect;\n this._defaultCrosshair(axisIndex, datum, LayoutType.VERTICAL);\n }\n if (valueField?.visible && valueField.defaultSelect) {\n const { axisIndex, datum } = valueField.defaultSelect;\n this._defaultCrosshair(axisIndex, datum, LayoutType.HORIZONTAL);\n }\n }\n\n private _defaultCrosshair(axisIndex: number, datum: StringOrNumber, tag: number) {\n const axis = this._option.getComponentsByKey('axes').find(c => c.getSpecIndex() === axisIndex) as IPolarAxis;\n if (!axis) {\n return;\n }\n // 横轴\n if (tag === LayoutType.VERTICAL) {\n this._currValueAngle.clear();\n // 根据数值拿到对应的坐标点\n const polarCoord = {\n angle: axis.valueToPosition(datum),\n radius: axis.getOuterRadius()\n };\n const canvasPosition = axis.coordToPoint(polarCoord);\n this._currValueAngle.set(axisIndex, this._getValueByAxis(axis, canvasPosition));\n } else {\n this._currValueRadius.clear();\n // 根据数值拿到对应的坐标点\n const polarCoord = {\n angle: axis.startAngle,\n radius: axis.valueToPosition(datum)\n };\n const canvasPosition = axis.coordToPoint(polarCoord);\n this._currValueRadius.set(axisIndex, this._getValueByAxis(axis, canvasPosition));\n }\n this.layoutByValue(LayoutType.ALL);\n }\n\n hide() {\n this._radiusCrosshair && this._radiusCrosshair.hideAll();\n this._radiusLabelCrosshair && this._radiusLabelCrosshair.hideAll();\n this._angleCrosshair && this._angleCrosshair.hideAll();\n this._angleLabelCrosshair && this._angleLabelCrosshair.hideAll();\n }\n\n /**\n * 查找所有落在x和y区域的轴\n * @param relativeX\n * @param relativeY\n */\n private _findAllAxisContains(relativeX: number, relativeY: number) {\n const angleAxisMap = this._getAxisInfoByField<IPolarAxis>('category');\n const radiusAxisMap = this._getAxisInfoByField<IPolarAxis>('value');\n return {\n angleAxisMap: this._filterAxisByPoint<IPolarAxis>(angleAxisMap, relativeX, relativeY),\n radiusAxisMap: this._filterAxisByPoint<IPolarAxis>(radiusAxisMap, relativeX, relativeY)\n };\n }\n\n /**\n * 根据位置获取所有轴上的value\n * @param axisMap\n * @param p\n * @returns\n */\n private _getAllAxisValues(axisMap: IAxisInfo<IPolarAxis>, point: IPoint, currValue: AxisCurrentValueMap): boolean {\n // 首先不能存在两个离散轴\n let discrete = false;\n axisMap.forEach(item => {\n if (isDiscrete(item.axis.getScale().type)) {\n if (!discrete) {\n discrete = true;\n } else {\n this.enable = false;\n }\n }\n });\n if (!this.enable) {\n return false;\n }\n // 获取所有的value\n axisMap.forEach((item, id) => {\n const axis = item.axis;\n currValue.set(id, this._getValueByAxis(axis, point));\n });\n return true;\n }\n\n private _getValueByAxis(axis: IPolarAxis, point: IPoint) {\n const { x: axisStartX, y: axisStartY } = axis.getLayoutStartPoint();\n const { x, y } = this.getLayoutStartPoint();\n let value = axis.positionToData({\n x: point.x - (axisStartX - x),\n y: point.y - (axisStartY - y)\n });\n if (isContinuous(axis.getScale().type) && isValidNumber(+value)) {\n value = (+value as number).toFixed(2);\n }\n const center = {\n x: axis.getCenter().x + this.getLayoutStartPoint().x,\n y: axis.getCenter().y + this.getLayoutStartPoint().y\n };\n\n return {\n value,\n axis,\n center,\n innerRadius: axis.getInnerRadius(),\n radius: axis.getOuterRadius(),\n startAngle: axis.startAngle,\n endAngle: axis.endAngle,\n distance: PointService.distancePP(point, axis.getCenter()),\n coord: axis.pointToCoord(point),\n point\n };\n }\n\n protected _layoutCrosshair(relativeX: number, relativeY: number) {\n // 找到所有的包含这个点的轴\n const { angleAxisMap, radiusAxisMap } = this._findAllAxisContains(relativeX, relativeY);\n if (angleAxisMap.size === 0 && radiusAxisMap.size === 0) {\n if (this.enableRemain) {\n return;\n }\n // 隐藏\n this.hide();\n return;\n }\n // 删除之前的currValue\n this._currValueAngle.clear();\n this._currValueRadius.clear();\n // 将数据保存到这个对象中,如果不存在,就直接不执行后续逻辑\n angleAxisMap && this._getAllAxisValues(angleAxisMap, { x: relativeX, y: relativeY }, this._currValueAngle);\n radiusAxisMap && this._getAllAxisValues(radiusAxisMap, { x: relativeX, y: relativeY }, this._currValueRadius);\n\n this.layoutByValue(LayoutType.ALL);\n }\n\n layoutByValue(tag: number = LayoutType.ALL) {\n if (!this.enable) {\n return;\n }\n const series = getFirstSeries(this._regions, 'polar') as IPolarSeries;\n if (!series) {\n return;\n }\n\n const { angle, radius } = layoutByValue(\n series,\n this._currValueAngle,\n this._currValueRadius,\n this._angleHair,\n this._radiusHair,\n this.enableRemain,\n this._cacheAngleCrossHairInfo,\n this._cacheRadiusCrossHairInfo\n );\n\n if (this.enableRemain) {\n this._cacheAngleCrossHairInfo = { ...angle, _isCache: true };\n this._cacheRadiusCrossHairInfo = { ...radius, _isCache: true };\n }\n\n if (tag) {\n LayoutType.HORIZONTAL && this._layoutRadius(radius);\n LayoutType.VERTICAL && this._layoutAngle(angle);\n }\n }\n\n private _layoutAngle(crosshairInfo: IPolarCrosshairInfo) {\n if (crosshairInfo._isCache && this.enableRemain) {\n return;\n }\n\n const container = this.getContainer();\n const { angle, radius, label, center, visible } = crosshairInfo;\n if (visible) {\n const crosshairType = this._angleHair.type === 'rect' ? 'sector' : 'line';\n const positionAttrs = layoutAngleCrosshair(this._angleHair, crosshairInfo);\n\n if (this._angleCrosshair) {\n this._angleCrosshair.setAttributes(positionAttrs as unknown as any);\n } else {\n let crosshair;\n // 创建\n if (crosshairType === 'line') {\n crosshair = new LineCrosshair({\n ...(positionAttrs as { start: IPoint; end: IPoint }),\n lineStyle: this._angleHair.style,\n zIndex: this.gridZIndex\n });\n } else if (crosshairType === 'sector') {\n crosshair = new SectorCrosshair({\n ...(positionAttrs as {\n center: IPoint;\n innerRadius: number;\n radius: number;\n startAngle: number;\n endAngle: number;\n }),\n sectorStyle: this._angleHair.style,\n zIndex: this.gridZIndex\n });\n }\n this._angleCrosshair = crosshair as unknown as IGroup;\n // 添加至场景树\n container.add(crosshair as unknown as INode);\n }\n\n // 文本\n if (label.visible) {\n const orient = angleLabelOrientAttribute(angle);\n const labelAttrs = {\n ...polarToCartesian(center, radius + label.offset, angle),\n ...this._angleHair.label,\n ...label,\n textStyle: {\n ...this._angleHair.label?.textStyle,\n textAlign: orient.align,\n textBaseline: orient.baseline\n },\n zIndex: this.labelZIndex\n };\n this._updateCrosshairLabel(this._angleLabelCrosshair, labelAttrs, label => {\n label.name = 'crosshair-angle-label';\n this._angleLabelCrosshair = label;\n });\n } else {\n this._angleLabelCrosshair && this._angleLabelCrosshair.hideAll();\n }\n }\n }\n\n private _layoutRadius(crosshairInfo: IPolarCrosshairInfo) {\n if (crosshairInfo._isCache && this.enableRemain) {\n return;\n }\n\n const { center, startAngle, label, visible } = crosshairInfo;\n const container = this.getContainer();\n if (visible) {\n const crosshairType = this._radiusHair.smooth ? 'circle' : 'polygon';\n const positionAttrs = layoutRadiusCrosshair(this._radiusHair, crosshairInfo);\n const polygonRadius = positionAttrs.radius;\n\n if (this._radiusCrosshair) {\n this._radiusCrosshair.setAttributes(positionAttrs as unknown as any);\n } else {\n let crosshair;\n if (crosshairType === 'polygon') {\n crosshair = new PolygonCrosshair({\n ...positionAttrs,\n lineStyle: this._radiusHair.style,\n zIndex: this.gridZIndex + 1 // 样式优化:线盖在面上\n });\n } else {\n crosshair = new CircleCrosshair({\n ...positionAttrs,\n lineStyle: this._radiusHair.style,\n zIndex: this.gridZIndex\n });\n }\n this._radiusCrosshair = crosshair as unknown as IGroup;\n // 添加至场景树\n container.add(crosshair as unknown as INode);\n }\n\n // 文本\n if (label.visible) {\n const orient = radiusLabelOrientAttribute(startAngle);\n const labelAttrs = {\n ...polarToCartesian(center, polygonRadius, startAngle),\n ...this._radiusHair.label,\n ...label,\n textStyle: {\n ...this._radiusHair.label?.textStyle,\n textAlign: orient.align,\n textBaseline: orient.baseline\n },\n zIndex: this.labelZIndex\n };\n this._updateCrosshairLabel(this._radiusLabelCrosshair, labelAttrs, label => {\n label.name = 'crosshair-radius-label';\n this._radiusLabelCrosshair = label;\n });\n } else {\n this._radiusLabelCrosshair && this._radiusLabelCrosshair.hideAll();\n }\n }\n }\n\n protected _parseFieldInfo() {\n const { categoryField, valueField } = this._spec as IPolarCrosshairSpec;\n if (categoryField && categoryField.visible) {\n this._angleHair = this._parseField(categoryField, 'categoryField');\n }\n if (valueField && valueField.visible) {\n this._radiusHair = this._parseField(valueField, 'valueField');\n this._radiusHair.smooth = valueField?.line?.smooth;\n }\n }\n\n private _updateCrosshairLabel(label: Tag, labelAttrs: any, callback: (label: Tag) => void) {\n // 文本\n const container = this.getContainer();\n if (label) {\n label.setAttributes(labelAttrs);\n } else {\n label = new Tag(labelAttrs);\n container?.add(label as unknown as INode);\n callback(label);\n }\n limitTagInBounds(label, this._getLimitBounds());\n }\n\n protected _getNeedClearVRenderComponents(): IGraphic[] {\n return [\n this._radiusCrosshair,\n this._radiusLabelCrosshair,\n this._angleCrosshair,\n this._angleLabelCrosshair\n ] as unknown as IGroup[];\n }\n}\n\nexport const registerPolarCrossHair = () => {\n Factory.registerComponent(PolarCrossHair.type, PolarCrossHair);\n};\n"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ICartesianSeries } from '../../../series';
|
|
2
|
+
import type { ILayoutPoint } from '../../../typings';
|
|
3
|
+
import type { IHair } from '../base';
|
|
4
|
+
import type { AxisCurrentValueMap, ICrosshairInfoX, ICrosshairInfoY } from '../interface';
|
|
5
|
+
export declare const layoutByValue: (tag: number, series: ICartesianSeries, layoutStartPoint: ILayoutPoint, currValueX: AxisCurrentValueMap, currValueY: AxisCurrentValueMap, xHair: IHair, yHair: IHair, enableRemain?: boolean, cacheXCrossHairInfo?: ICrosshairInfoX, cacheYCrossHairInfo?: ICrosshairInfoY) => {
|
|
6
|
+
x: ICrosshairInfoX;
|
|
7
|
+
y: ICrosshairInfoY;
|
|
8
|
+
offsetWidth: number;
|
|
9
|
+
offsetHeight: number;
|
|
10
|
+
bandWidth: number;
|
|
11
|
+
bandHeight: number;
|
|
12
|
+
};
|
|
13
|
+
export declare const layoutVerticalCrosshair: (xHair: IHair, crosshairInfo: ICrosshairInfoX, bandWidth: number, offsetWidth: number) => {
|
|
14
|
+
start: {
|
|
15
|
+
x: number;
|
|
16
|
+
y: number;
|
|
17
|
+
};
|
|
18
|
+
end: {
|
|
19
|
+
x: number;
|
|
20
|
+
y: number;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
export declare const layoutHorizontalCrosshair: (yHair: IHair, crosshairInfo: ICrosshairInfoY, bandHeight: number, offsetHeight: number) => {
|
|
24
|
+
start: {
|
|
25
|
+
x: number;
|
|
26
|
+
y: number;
|
|
27
|
+
};
|
|
28
|
+
end: {
|
|
29
|
+
x: number;
|
|
30
|
+
y: number;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: !0
|
|
5
|
+
}), exports.layoutHorizontalCrosshair = exports.layoutVerticalCrosshair = exports.layoutByValue = void 0;
|
|
6
|
+
|
|
7
|
+
const vscale_1 = require("@visactor/vscale"), common_1 = require("./common"), util_1 = require("../../axis/util"), vutils_1 = require("@visactor/vutils"), util_2 = require("../../util"), layoutByValue = (tag = 3, series, layoutStartPoint, currValueX, currValueY, xHair, yHair, enableRemain = !1, cacheXCrossHairInfo, cacheYCrossHairInfo) => {
|
|
8
|
+
var _a;
|
|
9
|
+
const layoutX = 1 & tag, layoutY = 2 & tag;
|
|
10
|
+
layoutStartPoint || (layoutStartPoint = {
|
|
11
|
+
x: 0,
|
|
12
|
+
y: 0
|
|
13
|
+
});
|
|
14
|
+
let xAxis = null, yAxis = null, x = 0, y = 0;
|
|
15
|
+
if (currValueX.size) {
|
|
16
|
+
const item = Array.from(currValueX.values())[0];
|
|
17
|
+
x = item.axis.getScale().scale(item.value) + item.axis.getLayoutStartPoint().x - layoutStartPoint.x,
|
|
18
|
+
xAxis = item.axis;
|
|
19
|
+
}
|
|
20
|
+
if (currValueY.size) {
|
|
21
|
+
const item = Array.from(currValueY.values())[0];
|
|
22
|
+
y = item.axis.getScale().scale(item.value) + item.axis.getLayoutStartPoint().y - layoutStartPoint.y,
|
|
23
|
+
yAxis = item.axis;
|
|
24
|
+
}
|
|
25
|
+
const xVisible = !!currValueX.size && Number.isFinite(x), yVisible = !!currValueY.size && Number.isFinite(y), xUseCache = enableRemain && !xVisible && (0,
|
|
26
|
+
vutils_1.isValid)(cacheXCrossHairInfo), yUseCache = enableRemain && !yVisible && (0,
|
|
27
|
+
vutils_1.isValid)(cacheYCrossHairInfo);
|
|
28
|
+
let xCrossHairInfo, yCrossHairInfo, bandWidth;
|
|
29
|
+
layoutX && (xCrossHairInfo = xUseCache ? cacheXCrossHairInfo : {
|
|
30
|
+
height: 0,
|
|
31
|
+
leftPos: 0,
|
|
32
|
+
rightPos: 0,
|
|
33
|
+
topPos: 0,
|
|
34
|
+
x: 0,
|
|
35
|
+
bottom: {
|
|
36
|
+
visible: !1,
|
|
37
|
+
text: "",
|
|
38
|
+
dx: 0,
|
|
39
|
+
dy: 0
|
|
40
|
+
},
|
|
41
|
+
top: {
|
|
42
|
+
visible: !1,
|
|
43
|
+
text: "",
|
|
44
|
+
dx: 0,
|
|
45
|
+
dy: 0
|
|
46
|
+
},
|
|
47
|
+
visible: xVisible,
|
|
48
|
+
axis: xAxis
|
|
49
|
+
}), layoutY && (yCrossHairInfo = yUseCache ? cacheYCrossHairInfo : {
|
|
50
|
+
width: 0,
|
|
51
|
+
leftPos: 0,
|
|
52
|
+
topPos: 0,
|
|
53
|
+
bottomPos: 0,
|
|
54
|
+
y: 0,
|
|
55
|
+
left: {
|
|
56
|
+
visible: !1,
|
|
57
|
+
text: "",
|
|
58
|
+
dx: 0,
|
|
59
|
+
dy: 0
|
|
60
|
+
},
|
|
61
|
+
right: {
|
|
62
|
+
visible: !1,
|
|
63
|
+
text: "",
|
|
64
|
+
dx: 0,
|
|
65
|
+
dy: 0
|
|
66
|
+
},
|
|
67
|
+
visible: yVisible,
|
|
68
|
+
axis: yAxis
|
|
69
|
+
});
|
|
70
|
+
let bandHeight, offsetWidth = 0, offsetHeight = 0;
|
|
71
|
+
if (xHair && currValueX.forEach((({axis: axis, value: value}) => {
|
|
72
|
+
var _a;
|
|
73
|
+
value = null != value ? value : "";
|
|
74
|
+
const xScale = axis.getScale();
|
|
75
|
+
if ((0, vscale_1.isDiscrete)(xScale.type)) bandWidth = xScale.bandwidth(), 0 === bandWidth && xScale.step && (offsetWidth = xScale.step()); else if ((0,
|
|
76
|
+
vscale_1.isContinuous)(xScale.type)) {
|
|
77
|
+
const fieldX = series.fieldX[0], fieldX2 = series.fieldX2, datum = (0, common_1.getDatumByValue)(series.getViewData().latestData, +value, fieldX, fieldX2);
|
|
78
|
+
if (datum) {
|
|
79
|
+
const startX = series.dataToPositionX(datum);
|
|
80
|
+
fieldX2 ? (bandWidth = Math.abs(startX - series.dataToPositionX1(datum)), value = `${datum[fieldX]} ~ ${datum[fieldX2]}`) : bandWidth = 1,
|
|
81
|
+
x = startX;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (xCrossHairInfo && (null === (_a = xHair.label) || void 0 === _a ? void 0 : _a.visible) && !xUseCache) {
|
|
85
|
+
const labelOffset = (0, util_1.getAxisLabelOffset)(axis.getSpec());
|
|
86
|
+
"bottom" === axis.getOrient() ? (xCrossHairInfo.bottom.visible = !0, xCrossHairInfo.bottom.text = value,
|
|
87
|
+
xCrossHairInfo.bottom.dx = 0, xCrossHairInfo.bottom.dy = labelOffset) : "top" === axis.getOrient() && (xCrossHairInfo.top.visible = !0,
|
|
88
|
+
xCrossHairInfo.top.text = value, xCrossHairInfo.top.dx = 0, xCrossHairInfo.top.dy = -labelOffset);
|
|
89
|
+
}
|
|
90
|
+
})), yHair && currValueY.forEach((({axis: axis, value: value}) => {
|
|
91
|
+
var _a;
|
|
92
|
+
value = null != value ? value : "";
|
|
93
|
+
const yScale = axis.getScale();
|
|
94
|
+
if ((0, vscale_1.isDiscrete)(yScale.type)) bandHeight = yScale.bandwidth(), 0 === bandHeight && yScale.step && (offsetHeight = yScale.step()); else if ((0,
|
|
95
|
+
vscale_1.isContinuous)(yScale.type)) {
|
|
96
|
+
const fieldY = series.fieldY[0], fieldY2 = series.fieldY2, datum = (0, common_1.getDatumByValue)(series.getViewData().latestData, +value, fieldY, fieldY2);
|
|
97
|
+
if (datum) {
|
|
98
|
+
const startY = series.dataToPositionY(datum);
|
|
99
|
+
fieldY2 ? (bandHeight = Math.abs(startY - series.dataToPositionY1(datum)), value = `${datum[fieldY]} ~ ${datum[fieldY2]}`) : bandHeight = 1,
|
|
100
|
+
y = startY;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (yCrossHairInfo && (null === (_a = yHair.label) || void 0 === _a ? void 0 : _a.visible) && !yUseCache) {
|
|
104
|
+
const labelOffset = (0, util_1.getAxisLabelOffset)(axis.getSpec());
|
|
105
|
+
"left" === axis.getOrient() ? (yCrossHairInfo.left.visible = !0, yCrossHairInfo.left.text = value,
|
|
106
|
+
yCrossHairInfo.left.dx = -labelOffset, yCrossHairInfo.left.dy = 0) : "right" === axis.getOrient() && (yCrossHairInfo.right.visible = !0,
|
|
107
|
+
yCrossHairInfo.right.text = value, yCrossHairInfo.right.dx = labelOffset, yCrossHairInfo.right.dy = 0);
|
|
108
|
+
}
|
|
109
|
+
})), xCrossHairInfo && !xUseCache) {
|
|
110
|
+
const xRegion = {
|
|
111
|
+
x1: 1 / 0,
|
|
112
|
+
y1: 1 / 0,
|
|
113
|
+
x2: -1 / 0,
|
|
114
|
+
y2: -1 / 0
|
|
115
|
+
};
|
|
116
|
+
if (setRegionArea(xRegion, currValueX), xCrossHairInfo.leftPos = xRegion.x1, xCrossHairInfo.rightPos = xRegion.x2,
|
|
117
|
+
xCrossHairInfo.topPos = xRegion.y1, xCrossHairInfo.height = xRegion.y2 - xRegion.y1,
|
|
118
|
+
xCrossHairInfo.x = x + layoutStartPoint.x, null === (_a = null == xHair ? void 0 : xHair.label) || void 0 === _a ? void 0 : _a.formatMethod) {
|
|
119
|
+
const {top: top, bottom: bottom} = xCrossHairInfo;
|
|
120
|
+
bottom.visible && (bottom.text = xHair.label.formatMethod(bottom.text, "bottom")),
|
|
121
|
+
top.visible && (top.text = xHair.label.formatMethod(top.text, "top"));
|
|
122
|
+
}
|
|
123
|
+
if (xHair && xHair.label) {
|
|
124
|
+
const {top: top, bottom: bottom} = xCrossHairInfo;
|
|
125
|
+
top.visible && setFormattedCrosshairLabel(top, "top", xHair.label), bottom.visible && setFormattedCrosshairLabel(bottom, "bottom", xHair.label);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (yCrossHairInfo && !yUseCache) {
|
|
129
|
+
const yRegion = {
|
|
130
|
+
x1: 1 / 0,
|
|
131
|
+
y1: 1 / 0,
|
|
132
|
+
x2: -1 / 0,
|
|
133
|
+
y2: -1 / 0
|
|
134
|
+
};
|
|
135
|
+
if (setRegionArea(yRegion, currValueY), yCrossHairInfo.leftPos = yRegion.x1, yCrossHairInfo.topPos = yRegion.y1,
|
|
136
|
+
yCrossHairInfo.bottomPos = yRegion.y2, yCrossHairInfo.width = yRegion.x2 - yRegion.x1,
|
|
137
|
+
yCrossHairInfo.y = y + layoutStartPoint.y, yHair && yHair.label) {
|
|
138
|
+
const {left: left, right: right} = yCrossHairInfo;
|
|
139
|
+
left.visible && setFormattedCrosshairLabel(left, "left", yHair.label), right.visible && setFormattedCrosshairLabel(right, "right", yHair.label);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return {
|
|
143
|
+
x: layoutX && xCrossHairInfo ? xCrossHairInfo : void 0,
|
|
144
|
+
y: layoutY && yCrossHairInfo ? yCrossHairInfo : void 0,
|
|
145
|
+
offsetWidth: offsetWidth,
|
|
146
|
+
offsetHeight: offsetHeight,
|
|
147
|
+
bandWidth: null != bandWidth ? bandWidth : 0,
|
|
148
|
+
bandHeight: null != bandHeight ? bandHeight : 0
|
|
149
|
+
};
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
exports.layoutByValue = layoutByValue;
|
|
153
|
+
|
|
154
|
+
const setFormattedCrosshairLabel = (labelInfo, position, labelSpec) => {
|
|
155
|
+
const {formatMethod: formatMethod, formatter: formatter} = labelSpec, {formatFunc: formatFunc, args: args} = (0,
|
|
156
|
+
util_2.getFormatFunction)(formatMethod, formatter, labelInfo.text, {
|
|
157
|
+
label: labelInfo.text,
|
|
158
|
+
position: position
|
|
159
|
+
});
|
|
160
|
+
formatFunc && (labelInfo.text = formatFunc(...args));
|
|
161
|
+
}, setRegionArea = (outRegion, currentValue) => {
|
|
162
|
+
currentValue.forEach((({axis: axis}) => {
|
|
163
|
+
axis.getRegions().forEach((r => {
|
|
164
|
+
outRegion.x1 = Math.min(outRegion.x1, r.getLayoutStartPoint().x), outRegion.y1 = Math.min(outRegion.y1, r.getLayoutStartPoint().y),
|
|
165
|
+
outRegion.x2 = Math.max(outRegion.x2, r.getLayoutStartPoint().x + r.getLayoutRect().width),
|
|
166
|
+
outRegion.y2 = Math.max(outRegion.y2, r.getLayoutStartPoint().y + r.getLayoutRect().height);
|
|
167
|
+
}));
|
|
168
|
+
}));
|
|
169
|
+
}, layoutVerticalCrosshair = (xHair, crosshairInfo, bandWidth, offsetWidth) => {
|
|
170
|
+
const {x: x, topPos: topPos, height: height} = crosshairInfo, type = xHair.type;
|
|
171
|
+
let positionAttribute;
|
|
172
|
+
if ("line" === type) positionAttribute = {
|
|
173
|
+
start: {
|
|
174
|
+
x: x + bandWidth / 2,
|
|
175
|
+
y: topPos
|
|
176
|
+
},
|
|
177
|
+
end: {
|
|
178
|
+
x: x + bandWidth / 2,
|
|
179
|
+
y: topPos + height
|
|
180
|
+
}
|
|
181
|
+
}; else if ("rect" === type) {
|
|
182
|
+
const extend = getRectSize(xHair, bandWidth, crosshairInfo.axis), {leftPos: leftPos, rightPos: rightPos} = crosshairInfo;
|
|
183
|
+
positionAttribute = {
|
|
184
|
+
start: {
|
|
185
|
+
x: Math.max(x - extend / 2 - offsetWidth / 2, leftPos),
|
|
186
|
+
y: topPos
|
|
187
|
+
},
|
|
188
|
+
end: {
|
|
189
|
+
x: Math.min(x + bandWidth + extend / 2 + offsetWidth / 2, rightPos),
|
|
190
|
+
y: topPos + height
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
return positionAttribute;
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
exports.layoutVerticalCrosshair = layoutVerticalCrosshair;
|
|
198
|
+
|
|
199
|
+
const layoutHorizontalCrosshair = (yHair, crosshairInfo, bandHeight, offsetHeight) => {
|
|
200
|
+
const {leftPos: leftPos, width: width, y: y} = crosshairInfo, type = yHair.type;
|
|
201
|
+
let positionAttribute;
|
|
202
|
+
if ("line" === type) positionAttribute = {
|
|
203
|
+
start: {
|
|
204
|
+
x: leftPos,
|
|
205
|
+
y: y + bandHeight / 2
|
|
206
|
+
},
|
|
207
|
+
end: {
|
|
208
|
+
x: leftPos + width,
|
|
209
|
+
y: y + bandHeight / 2
|
|
210
|
+
}
|
|
211
|
+
}; else if ("rect" === type) {
|
|
212
|
+
const extend = getRectSize(yHair, bandHeight, crosshairInfo.axis), {topPos: topPos, bottomPos: bottomPos} = crosshairInfo;
|
|
213
|
+
positionAttribute = {
|
|
214
|
+
start: {
|
|
215
|
+
x: leftPos,
|
|
216
|
+
y: Math.max(y - extend / 2 - offsetHeight / 2, topPos)
|
|
217
|
+
},
|
|
218
|
+
end: {
|
|
219
|
+
x: leftPos + width,
|
|
220
|
+
y: Math.min(y + bandHeight + extend / 2 + offsetHeight / 2, bottomPos)
|
|
221
|
+
}
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
return positionAttribute;
|
|
225
|
+
};
|
|
226
|
+
|
|
227
|
+
exports.layoutHorizontalCrosshair = layoutHorizontalCrosshair;
|
|
228
|
+
|
|
229
|
+
const getRectSize = (hair, bandSize, axis) => {
|
|
230
|
+
var _a, _b, _c;
|
|
231
|
+
let extend = 0;
|
|
232
|
+
if (null === (_a = hair.style) || void 0 === _a ? void 0 : _a.sizePercent) extend = (hair.style.sizePercent - 1) * bandSize; else if ("number" == typeof (null === (_b = hair.style) || void 0 === _b ? void 0 : _b.size)) extend = hair.style.size - bandSize; else if ("function" == typeof (null === (_c = hair.style) || void 0 === _c ? void 0 : _c.size)) {
|
|
233
|
+
const axisRect = axis.getLayoutRect();
|
|
234
|
+
extend = hair.style.size(axisRect, axis) - bandSize;
|
|
235
|
+
}
|
|
236
|
+
return extend;
|
|
237
|
+
};
|
|
238
|
+
//# sourceMappingURL=cartesian.js.map
|
|
@@ -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;
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.getPolarCrosshairTheme = exports.getCartesianCrosshairTheme = exports.getDatumByValue = exports.limitTagInBounds = void 0;
|
|
6
6
|
|
|
7
|
-
const vutils_1 = require("@visactor/vutils"), merge_spec_1 = require("
|
|
7
|
+
const vutils_1 = require("@visactor/vutils"), merge_spec_1 = require("../../../util/spec/merge-spec"), common_1 = require("../../axis/cartesian/util/common"), vscale_1 = require("@visactor/vscale"), util_1 = require("../../util"), type_1 = require("../../interface/type"), util_2 = require("../../axis/util");
|
|
8
8
|
|
|
9
9
|
function limitTagInBounds(shape, bounds) {
|
|
10
10
|
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;
|
|
@@ -62,4 +62,4 @@ const getPolarCrosshairTheme = (chartTheme, chartSpec) => {
|
|
|
62
62
|
};
|
|
63
63
|
|
|
64
64
|
exports.getPolarCrosshairTheme = getPolarCrosshairTheme;
|
|
65
|
-
//# sourceMappingURL=
|
|
65
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/component/crosshair/utils/common.ts"],"names":[],"mappings":"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","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,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __createBinding = this && this.__createBinding || (Object.create ? function(o, m, k, k2) {
|
|
4
|
+
void 0 === k2 && (k2 = k);
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
desc && !("get" in desc ? !m.__esModule : desc.writable || desc.configurable) || (desc = {
|
|
7
|
+
enumerable: !0,
|
|
8
|
+
get: function() {
|
|
9
|
+
return m[k];
|
|
10
|
+
}
|
|
11
|
+
}), Object.defineProperty(o, k2, desc);
|
|
12
|
+
} : function(o, m, k, k2) {
|
|
13
|
+
void 0 === k2 && (k2 = k), o[k2] = m[k];
|
|
14
|
+
}), __exportStar = this && this.__exportStar || function(m, exports) {
|
|
15
|
+
for (var p in m) "default" === p || Object.prototype.hasOwnProperty.call(exports, p) || __createBinding(exports, m, p);
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
Object.defineProperty(exports, "__esModule", {
|
|
19
|
+
value: !0
|
|
20
|
+
}), __exportStar(require("./common"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/component/crosshair/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB","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
|
+
};
|