@visactor/vchart 1.10.0-alpha.8 → 1.10.0
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 +775 -509
- package/build/index.min.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/chart/area/area-transformer.js +1 -2
- package/cjs/chart/area/area-transformer.js.map +1 -1
- package/cjs/chart/base/base-chart-transformer.js +6 -8
- package/cjs/chart/base/base-chart-transformer.js.map +1 -1
- package/cjs/chart/base/base-chart.js +3 -5
- package/cjs/chart/base/base-chart.js.map +1 -1
- package/cjs/chart/base/util.d.ts +2 -2
- package/cjs/chart/base/util.js.map +1 -1
- package/cjs/chart/interface/chart.js.map +1 -1
- package/cjs/chart/interface/common.d.ts +1 -5
- package/cjs/chart/interface/common.js.map +1 -1
- package/cjs/chart/map/map-transformer.js.map +1 -1
- package/cjs/chart/sequence/interface.d.ts +2 -2
- package/cjs/chart/sequence/interface.js.map +1 -1
- package/cjs/chart/sequence/sequence-transformer.js.map +1 -1
- package/cjs/compile/compilable-base.js +1 -1
- package/cjs/compile/compilable-base.js.map +1 -1
- package/cjs/compile/compiler.d.ts +1 -0
- package/cjs/compile/compiler.js +11 -9
- package/cjs/compile/compiler.js.map +1 -1
- package/cjs/component/axis/base-axis.js +2 -2
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/axis/polar/axis.js.map +1 -1
- package/cjs/component/base/base-component.js +1 -1
- package/cjs/component/base/base-component.js.map +1 -1
- package/cjs/component/brush/brush.d.ts +8 -0
- package/cjs/component/brush/brush.js +71 -16
- package/cjs/component/brush/brush.js.map +1 -1
- package/cjs/component/brush/interface.d.ts +4 -0
- package/cjs/component/brush/interface.js.map +1 -1
- package/cjs/component/crosshair/base.js +1 -1
- package/cjs/component/crosshair/base.js.map +1 -1
- package/cjs/component/crosshair/cartesian.js +8 -4
- package/cjs/component/crosshair/cartesian.js.map +1 -1
- package/cjs/component/crosshair/polar.js +4 -2
- package/cjs/component/crosshair/polar.js.map +1 -1
- package/cjs/component/crosshair/utils/cartesian.d.ts +2 -0
- package/cjs/component/crosshair/utils/cartesian.js +4 -0
- package/cjs/component/crosshair/utils/cartesian.js.map +1 -1
- package/cjs/component/custom-mark/custom-mark.d.ts +1 -0
- package/cjs/component/custom-mark/custom-mark.js +12 -1
- package/cjs/component/custom-mark/custom-mark.js.map +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.d.ts +2 -2
- package/cjs/component/data-zoom/data-filter-base-component.js +12 -10
- package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +2 -0
- package/cjs/component/data-zoom/data-zoom/data-zoom.js +20 -9
- package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/cjs/component/data-zoom/data-zoom/interface.d.ts +1 -0
- package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
- package/cjs/component/data-zoom/interface.d.ts +2 -0
- package/cjs/component/data-zoom/interface.js.map +1 -1
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +2 -1
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
- package/cjs/component/data-zoom/util.js +5 -1
- package/cjs/component/data-zoom/util.js.map +1 -1
- package/cjs/component/geo/geo-coordinate.js.map +1 -1
- package/cjs/component/indicator/indicator.js.map +1 -1
- package/cjs/component/label/base-label.d.ts +2 -1
- package/cjs/component/label/base-label.js +3 -0
- package/cjs/component/label/base-label.js.map +1 -1
- package/cjs/component/label/label.d.ts +1 -2
- package/cjs/component/label/label.js +7 -10
- package/cjs/component/label/label.js.map +1 -1
- package/cjs/component/label/total-label.d.ts +1 -0
- package/cjs/component/label/total-label.js +9 -1
- package/cjs/component/label/total-label.js.map +1 -1
- package/cjs/component/tooltip/constant.d.ts +5 -0
- package/cjs/component/tooltip/constant.js +13 -0
- package/cjs/component/tooltip/constant.js.map +1 -0
- package/cjs/component/tooltip/index.d.ts +1 -0
- package/cjs/component/tooltip/index.js +1 -1
- package/cjs/component/tooltip/index.js.map +1 -1
- package/cjs/component/tooltip/interface/spec.d.ts +4 -3
- package/cjs/component/tooltip/interface/spec.js.map +1 -1
- package/cjs/component/tooltip/tooltip-transformer.d.ts +2 -0
- package/cjs/component/tooltip/tooltip-transformer.js +14 -1
- package/cjs/component/tooltip/tooltip-transformer.js.map +1 -1
- package/cjs/component/tooltip/tooltip.d.ts +3 -3
- package/cjs/component/tooltip/tooltip.js +28 -48
- package/cjs/component/tooltip/tooltip.js.map +1 -1
- package/cjs/core/index.d.ts +1 -1
- package/cjs/core/index.js +1 -1
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/vchart.d.ts +4 -1
- package/cjs/core/vchart.js +47 -49
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/event/event-dispatcher.d.ts +1 -0
- package/cjs/event/event-dispatcher.js +4 -1
- package/cjs/event/event-dispatcher.js.map +1 -1
- package/cjs/event/event.js +1 -1
- package/cjs/event/event.js.map +1 -1
- package/cjs/event/interface.d.ts +2 -1
- package/cjs/event/interface.js.map +1 -1
- package/cjs/interaction/index.d.ts +1 -0
- package/cjs/interaction/index.js +50 -0
- package/cjs/interaction/index.js.map +1 -0
- package/cjs/interaction/interface.js +1 -1
- package/cjs/interaction/zoom/zoomable.js +4 -6
- package/cjs/interaction/zoom/zoomable.js.map +1 -1
- package/cjs/model/interface.d.ts +3 -8
- package/cjs/model/interface.js.map +1 -1
- package/cjs/plugin/base/base-plugin-service.d.ts +2 -2
- package/cjs/plugin/base/base-plugin-service.js +5 -5
- package/cjs/plugin/base/base-plugin-service.js.map +1 -1
- package/cjs/plugin/base/base-plugin.d.ts +1 -0
- package/cjs/plugin/base/base-plugin.js +3 -0
- package/cjs/plugin/base/base-plugin.js.map +1 -1
- package/cjs/plugin/base/interface.d.ts +3 -3
- package/cjs/plugin/base/interface.js.map +1 -1
- package/cjs/plugin/chart/formatter/formatter.d.ts +2 -2
- package/cjs/plugin/chart/formatter/formatter.js +5 -7
- package/cjs/plugin/chart/formatter/formatter.js.map +1 -1
- package/cjs/plugin/chart/media-query/media-query.d.ts +1 -1
- package/cjs/plugin/chart/media-query/media-query.js +4 -4
- package/cjs/plugin/chart/media-query/media-query.js.map +1 -1
- package/cjs/plugin/chart/plugin-service.d.ts +1 -0
- package/cjs/plugin/chart/plugin-service.js +3 -0
- package/cjs/plugin/chart/plugin-service.js.map +1 -1
- package/cjs/plugin/components/plugin-service.d.ts +1 -0
- package/cjs/plugin/components/plugin-service.js +3 -0
- package/cjs/plugin/components/plugin-service.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js +3 -3
- package/cjs/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/constants.d.ts +0 -5
- package/cjs/plugin/components/tooltip-handler/constants.js +4 -9
- package/cjs/plugin/components/tooltip-handler/constants.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +3 -3
- package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/position.d.ts +1 -0
- package/cjs/region/interface.d.ts +2 -1
- package/cjs/region/interface.js.map +1 -1
- package/cjs/region/region.js +1 -1
- package/cjs/region/region.js.map +1 -1
- package/cjs/series/area/area-transformer.d.ts +1 -0
- package/cjs/series/area/area-transformer.js +4 -1
- package/cjs/series/area/area-transformer.js.map +1 -1
- package/cjs/series/area/area.d.ts +0 -1
- package/cjs/series/area/area.js +1 -1
- package/cjs/series/area/area.js.map +1 -1
- package/cjs/series/area/interface.d.ts +6 -1
- package/cjs/series/area/interface.js.map +1 -1
- package/cjs/series/bar/bar-transformer.d.ts +1 -0
- package/cjs/series/bar/bar-transformer.js +3 -0
- package/cjs/series/bar/bar-transformer.js.map +1 -1
- package/cjs/series/bar/bar.d.ts +0 -1
- package/cjs/series/bar/bar.js +2 -2
- package/cjs/series/bar/bar.js.map +1 -1
- package/cjs/series/base/base-series-transformer.d.ts +5 -3
- package/cjs/series/base/base-series-transformer.js +9 -2
- package/cjs/series/base/base-series-transformer.js.map +1 -1
- package/cjs/series/base/base-series.d.ts +0 -4
- package/cjs/series/base/base-series.js +12 -17
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/cartesian/cartesian.js +3 -3
- package/cjs/series/cartesian/cartesian.js.map +1 -1
- package/cjs/series/funnel/funnel.js +2 -1
- package/cjs/series/funnel/funnel.js.map +1 -1
- package/cjs/series/gauge/gauge-pointer-transformer.d.ts +5 -0
- package/cjs/series/gauge/gauge-pointer-transformer.js +16 -0
- package/cjs/series/gauge/gauge-pointer-transformer.js.map +1 -0
- package/cjs/series/gauge/gauge-pointer.d.ts +3 -1
- package/cjs/series/gauge/gauge-pointer.js +4 -4
- package/cjs/series/gauge/gauge-pointer.js.map +1 -1
- package/cjs/series/gauge/gauge-transformer.d.ts +1 -0
- package/cjs/series/gauge/gauge-transformer.js +3 -0
- package/cjs/series/gauge/gauge-transformer.js.map +1 -1
- package/cjs/series/gauge/gauge.d.ts +0 -1
- package/cjs/series/gauge/gauge.js +1 -1
- package/cjs/series/gauge/gauge.js.map +1 -1
- package/cjs/series/interface/common.d.ts +6 -2
- package/cjs/series/interface/common.js.map +1 -1
- package/cjs/series/map/geo-source.d.ts +1 -1
- package/cjs/series/map/geo-source.js.map +1 -1
- package/cjs/series/polar/progress-like/progress-like.d.ts +0 -1
- package/cjs/series/polar/progress-like/progress-like.js +5 -5
- package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
- package/cjs/series/polar/rose-like/rose-like.js +1 -1
- package/cjs/series/polar/rose-like/rose-like.js.map +1 -1
- package/cjs/series/progress/circular/circular-transformer.d.ts +5 -0
- package/cjs/series/progress/circular/circular-transformer.js +16 -0
- package/cjs/series/progress/circular/circular-transformer.js.map +1 -0
- package/cjs/series/progress/circular/circular.d.ts +3 -0
- package/cjs/series/progress/circular/circular.js +6 -6
- package/cjs/series/progress/circular/circular.js.map +1 -1
- package/cjs/series/radar/radar.js +2 -2
- package/cjs/series/radar/radar.js.map +1 -1
- package/cjs/series/range-column/range-column-transformer.d.ts +1 -0
- package/cjs/series/range-column/range-column-transformer.js +3 -0
- package/cjs/series/range-column/range-column-transformer.js.map +1 -1
- package/cjs/series/range-column/range-column.d.ts +0 -1
- package/cjs/series/range-column/range-column.js +1 -2
- package/cjs/series/range-column/range-column.js.map +1 -1
- package/cjs/series/rose/rose-transformer.d.ts +1 -0
- package/cjs/series/rose/rose-transformer.js +3 -0
- package/cjs/series/rose/rose-transformer.js.map +1 -1
- package/cjs/series/rose/rose.d.ts +0 -1
- package/cjs/series/rose/rose.js +2 -2
- package/cjs/series/rose/rose.js.map +1 -1
- package/cjs/series/waterfall/waterfall-transformer.d.ts +1 -0
- package/cjs/series/waterfall/waterfall-transformer.js +3 -0
- package/cjs/series/waterfall/waterfall-transformer.js.map +1 -1
- package/cjs/series/waterfall/waterfall.d.ts +0 -1
- package/cjs/series/waterfall/waterfall.js +1 -1
- package/cjs/series/waterfall/waterfall.js.map +1 -1
- package/cjs/theme/builtin/common/series/area.js +2 -1
- package/cjs/theme/builtin/common/series/area.js.map +1 -1
- package/cjs/typings/spec/common.d.ts +2 -2
- package/cjs/typings/spec/common.js.map +1 -1
- package/cjs/typings/spec/index.d.ts +1 -1
- package/cjs/typings/spec/index.js.map +1 -1
- package/cjs/vchart-all.js +2 -2
- package/cjs/vchart-all.js.map +1 -1
- package/cjs/vchart-simple.js +2 -2
- package/cjs/vchart-simple.js.map +1 -1
- package/esm/chart/area/area-transformer.js +1 -2
- package/esm/chart/area/area-transformer.js.map +1 -1
- package/esm/chart/base/base-chart-transformer.js +6 -8
- package/esm/chart/base/base-chart-transformer.js.map +1 -1
- package/esm/chart/base/base-chart.js +3 -5
- package/esm/chart/base/base-chart.js.map +1 -1
- package/esm/chart/base/util.d.ts +2 -2
- package/esm/chart/base/util.js.map +1 -1
- package/esm/chart/interface/chart.js.map +1 -1
- package/esm/chart/interface/common.d.ts +1 -5
- package/esm/chart/interface/common.js.map +1 -1
- package/esm/chart/map/map-transformer.js.map +1 -1
- package/esm/chart/sequence/interface.d.ts +2 -2
- package/esm/chart/sequence/interface.js.map +1 -1
- package/esm/chart/sequence/sequence-transformer.js.map +1 -1
- package/esm/compile/compilable-base.js +1 -1
- package/esm/compile/compilable-base.js.map +1 -1
- package/esm/compile/compiler.d.ts +1 -0
- package/esm/compile/compiler.js +11 -9
- package/esm/compile/compiler.js.map +1 -1
- package/esm/component/axis/base-axis.js +2 -2
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/axis/polar/axis.js.map +1 -1
- package/esm/component/base/base-component.js +1 -1
- package/esm/component/base/base-component.js.map +1 -1
- package/esm/component/brush/brush.d.ts +8 -0
- package/esm/component/brush/brush.js +71 -16
- package/esm/component/brush/brush.js.map +1 -1
- package/esm/component/brush/interface.d.ts +4 -0
- package/esm/component/brush/interface.js.map +1 -1
- package/esm/component/crosshair/base.js +1 -1
- package/esm/component/crosshair/base.js.map +1 -1
- package/esm/component/crosshair/cartesian.js +8 -4
- package/esm/component/crosshair/cartesian.js.map +1 -1
- package/esm/component/crosshair/polar.js +4 -2
- package/esm/component/crosshair/polar.js.map +1 -1
- package/esm/component/crosshair/utils/cartesian.d.ts +2 -0
- package/esm/component/crosshair/utils/cartesian.js +4 -0
- package/esm/component/crosshair/utils/cartesian.js.map +1 -1
- package/esm/component/custom-mark/custom-mark.d.ts +1 -0
- package/esm/component/custom-mark/custom-mark.js +13 -0
- package/esm/component/custom-mark/custom-mark.js.map +1 -1
- package/esm/component/data-zoom/data-filter-base-component.d.ts +2 -2
- package/esm/component/data-zoom/data-filter-base-component.js +12 -10
- package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +2 -0
- package/esm/component/data-zoom/data-zoom/data-zoom.js +21 -10
- package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/esm/component/data-zoom/data-zoom/interface.d.ts +1 -0
- package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
- package/esm/component/data-zoom/interface.d.ts +2 -0
- package/esm/component/data-zoom/interface.js.map +1 -1
- package/esm/component/data-zoom/scroll-bar/scroll-bar.js +3 -2
- package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
- package/esm/component/data-zoom/util.js +5 -1
- package/esm/component/data-zoom/util.js.map +1 -1
- package/esm/component/geo/geo-coordinate.js.map +1 -1
- package/esm/component/indicator/indicator.js.map +1 -1
- package/esm/component/label/base-label.d.ts +2 -1
- package/esm/component/label/base-label.js +3 -0
- package/esm/component/label/base-label.js.map +1 -1
- package/esm/component/label/label.d.ts +1 -2
- package/esm/component/label/label.js +8 -9
- package/esm/component/label/label.js.map +1 -1
- package/esm/component/label/total-label.d.ts +1 -0
- package/esm/component/label/total-label.js +10 -0
- package/esm/component/label/total-label.js.map +1 -1
- package/esm/component/tooltip/constant.d.ts +5 -0
- package/esm/component/tooltip/constant.js +8 -0
- package/esm/component/tooltip/constant.js.map +1 -0
- package/esm/component/tooltip/index.d.ts +1 -0
- package/esm/component/tooltip/index.js +2 -0
- package/esm/component/tooltip/index.js.map +1 -1
- package/esm/component/tooltip/interface/spec.d.ts +4 -3
- package/esm/component/tooltip/interface/spec.js.map +1 -1
- package/esm/component/tooltip/tooltip-transformer.d.ts +2 -0
- package/esm/component/tooltip/tooltip-transformer.js +16 -1
- package/esm/component/tooltip/tooltip-transformer.js.map +1 -1
- package/esm/component/tooltip/tooltip.d.ts +3 -3
- package/esm/component/tooltip/tooltip.js +29 -45
- package/esm/component/tooltip/tooltip.js.map +1 -1
- package/esm/core/index.d.ts +1 -1
- package/esm/core/index.js +1 -1
- package/esm/core/index.js.map +1 -1
- package/esm/core/vchart.d.ts +4 -1
- package/esm/core/vchart.js +50 -49
- package/esm/core/vchart.js.map +1 -1
- package/esm/event/event-dispatcher.d.ts +1 -0
- package/esm/event/event-dispatcher.js +4 -1
- package/esm/event/event-dispatcher.js.map +1 -1
- package/esm/event/event.js +1 -1
- package/esm/event/event.js.map +1 -1
- package/esm/event/interface.d.ts +2 -1
- package/esm/event/interface.js.map +1 -1
- package/esm/interaction/index.d.ts +1 -0
- package/esm/interaction/index.js +2 -0
- package/esm/interaction/index.js.map +1 -0
- package/esm/interaction/interface.js +1 -1
- package/esm/interaction/zoom/zoomable.js +4 -6
- package/esm/interaction/zoom/zoomable.js.map +1 -1
- package/esm/model/interface.d.ts +3 -8
- package/esm/model/interface.js.map +1 -1
- package/esm/plugin/base/base-plugin-service.d.ts +2 -2
- package/esm/plugin/base/base-plugin-service.js +5 -5
- package/esm/plugin/base/base-plugin-service.js.map +1 -1
- package/esm/plugin/base/base-plugin.d.ts +1 -0
- package/esm/plugin/base/base-plugin.js +3 -0
- package/esm/plugin/base/base-plugin.js.map +1 -1
- package/esm/plugin/base/interface.d.ts +3 -3
- package/esm/plugin/base/interface.js.map +1 -1
- package/esm/plugin/chart/formatter/formatter.d.ts +2 -2
- package/esm/plugin/chart/formatter/formatter.js +5 -7
- package/esm/plugin/chart/formatter/formatter.js.map +1 -1
- package/esm/plugin/chart/media-query/media-query.d.ts +1 -1
- package/esm/plugin/chart/media-query/media-query.js +4 -4
- package/esm/plugin/chart/media-query/media-query.js.map +1 -1
- package/esm/plugin/chart/plugin-service.d.ts +1 -0
- package/esm/plugin/chart/plugin-service.js +3 -0
- package/esm/plugin/chart/plugin-service.js.map +1 -1
- package/esm/plugin/components/plugin-service.d.ts +1 -0
- package/esm/plugin/components/plugin-service.js +3 -0
- package/esm/plugin/components/plugin-service.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js +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 +0 -5
- package/esm/plugin/components/tooltip-handler/constants.js +0 -8
- package/esm/plugin/components/tooltip-handler/constants.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +3 -1
- package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/utils/position.d.ts +1 -0
- package/esm/region/interface.d.ts +2 -1
- package/esm/region/interface.js.map +1 -1
- package/esm/region/region.js +1 -1
- package/esm/region/region.js.map +1 -1
- package/esm/series/area/area-transformer.d.ts +1 -0
- package/esm/series/area/area-transformer.js +4 -1
- package/esm/series/area/area-transformer.js.map +1 -1
- package/esm/series/area/area.d.ts +0 -1
- package/esm/series/area/area.js +1 -1
- package/esm/series/area/area.js.map +1 -1
- package/esm/series/area/interface.d.ts +6 -1
- package/esm/series/area/interface.js.map +1 -1
- package/esm/series/bar/bar-transformer.d.ts +1 -0
- package/esm/series/bar/bar-transformer.js +3 -0
- package/esm/series/bar/bar-transformer.js.map +1 -1
- package/esm/series/bar/bar.d.ts +0 -1
- package/esm/series/bar/bar.js +2 -2
- package/esm/series/bar/bar.js.map +1 -1
- package/esm/series/base/base-series-transformer.d.ts +5 -3
- package/esm/series/base/base-series-transformer.js +10 -3
- package/esm/series/base/base-series-transformer.js.map +1 -1
- package/esm/series/base/base-series.d.ts +0 -4
- package/esm/series/base/base-series.js +11 -15
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/cartesian/cartesian.js +3 -2
- package/esm/series/cartesian/cartesian.js.map +1 -1
- package/esm/series/funnel/funnel.js +2 -1
- package/esm/series/funnel/funnel.js.map +1 -1
- package/esm/series/gauge/gauge-pointer-transformer.d.ts +5 -0
- package/esm/series/gauge/gauge-pointer-transformer.js +8 -0
- package/esm/series/gauge/gauge-pointer-transformer.js.map +1 -0
- package/esm/series/gauge/gauge-pointer.d.ts +3 -1
- package/esm/series/gauge/gauge-pointer.js +6 -3
- package/esm/series/gauge/gauge-pointer.js.map +1 -1
- package/esm/series/gauge/gauge-transformer.d.ts +1 -0
- package/esm/series/gauge/gauge-transformer.js +3 -0
- package/esm/series/gauge/gauge-transformer.js.map +1 -1
- package/esm/series/gauge/gauge.d.ts +0 -1
- package/esm/series/gauge/gauge.js +1 -1
- package/esm/series/gauge/gauge.js.map +1 -1
- package/esm/series/interface/common.d.ts +6 -2
- package/esm/series/interface/common.js.map +1 -1
- package/esm/series/map/geo-source.d.ts +1 -1
- package/esm/series/map/geo-source.js.map +1 -1
- package/esm/series/polar/progress-like/progress-like.d.ts +0 -1
- package/esm/series/polar/progress-like/progress-like.js +5 -5
- package/esm/series/polar/progress-like/progress-like.js.map +1 -1
- package/esm/series/polar/rose-like/rose-like.js +1 -1
- package/esm/series/polar/rose-like/rose-like.js.map +1 -1
- package/esm/series/progress/circular/circular-transformer.d.ts +5 -0
- package/esm/series/progress/circular/circular-transformer.js +8 -0
- package/esm/series/progress/circular/circular-transformer.js.map +1 -0
- package/esm/series/progress/circular/circular.d.ts +3 -0
- package/esm/series/progress/circular/circular.js +8 -5
- package/esm/series/progress/circular/circular.js.map +1 -1
- package/esm/series/radar/radar.js +2 -2
- package/esm/series/radar/radar.js.map +1 -1
- package/esm/series/range-column/range-column-transformer.d.ts +1 -0
- package/esm/series/range-column/range-column-transformer.js +3 -0
- package/esm/series/range-column/range-column-transformer.js.map +1 -1
- package/esm/series/range-column/range-column.d.ts +0 -1
- package/esm/series/range-column/range-column.js +1 -2
- package/esm/series/range-column/range-column.js.map +1 -1
- package/esm/series/rose/rose-transformer.d.ts +1 -0
- package/esm/series/rose/rose-transformer.js +3 -0
- package/esm/series/rose/rose-transformer.js.map +1 -1
- package/esm/series/rose/rose.d.ts +0 -1
- package/esm/series/rose/rose.js +2 -2
- package/esm/series/rose/rose.js.map +1 -1
- package/esm/series/waterfall/waterfall-transformer.d.ts +1 -0
- package/esm/series/waterfall/waterfall-transformer.js +3 -0
- package/esm/series/waterfall/waterfall-transformer.js.map +1 -1
- package/esm/series/waterfall/waterfall.d.ts +0 -1
- package/esm/series/waterfall/waterfall.js +1 -1
- package/esm/series/waterfall/waterfall.js.map +1 -1
- package/esm/theme/builtin/common/series/area.js +2 -1
- package/esm/theme/builtin/common/series/area.js.map +1 -1
- package/esm/typings/spec/common.d.ts +2 -2
- package/esm/typings/spec/common.js.map +1 -1
- package/esm/typings/spec/index.d.ts +1 -1
- package/esm/typings/spec/index.js.map +1 -1
- package/esm/vchart-all.js +2 -2
- package/esm/vchart-all.js.map +1 -1
- package/esm/vchart-simple.js +1 -3
- package/esm/vchart-simple.js.map +1 -1
- package/package.json +15 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/label/label.ts"],"names":[],"mappings":"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","file":"label.js","sourcesContent":["import type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { IRegion } from '../../region/interface';\nimport type { IModelInitOption, IModelSpecInfo } from '../../model/interface';\nimport { AttributeLevel, ChartEvent, LayoutZIndex, VGRAMMAR_HOOK_EVENT } from '../../constant';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport { mergeSpec } from '../../util/spec/merge-spec';\nimport { eachSeries } from '../../util/model';\nimport type { ISeries } from '../../series/interface';\nimport type { IGroupMark, ILabel, IMark as IVGrammarMark } from '@visactor/vgrammar-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerLabel as registerVGrammarLabel } from '@visactor/vgrammar-core';\nimport { defaultLabelConfig, textAttribute } from './util';\nimport type { IComponentMark } from '../../mark/component';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerComponentMark } from '../../mark/component';\nimport { BaseLabelComponent } from './base-label';\nimport type { LooseFunction, Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isArray, isFunction, pickWithout } from '@visactor/vutils';\nimport type { IGroup, IText } from '@visactor/vrender-core';\nimport type { ILabelSpec, TransformedLabelSpec } from './interface';\nimport { Factory } from '../../core/factory';\nimport type { ILabelMark } from '../../mark/label';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerLabelMark } from '../../mark/label';\nimport type { ICompilableMark } from '../../compile/mark';\nimport type { IChartSpecInfo } from '../../chart/interface';\nimport type { IChartSpec } from '../../typings';\nimport { LabelSpecTransformer } from './label-transformer';\nimport type { LabelItem } from '@visactor/vrender-components';\n\nexport interface ILabelInfo {\n baseMark: ICompilableMark;\n labelMark: ILabelMark;\n series: ISeries;\n labelSpec: TransformedLabelSpec;\n}\n\nexport interface ILabelComponentContext {\n region: IRegion;\n labelInfo: ILabelInfo[];\n}\n\nexport class Label<T extends IChartSpec = any> extends BaseLabelComponent<T> {\n static type = ComponentTypeEnum.label;\n type = ComponentTypeEnum.label;\n name: string = ComponentTypeEnum.label;\n\n static specKey = 'label';\n specKey = 'label';\n\n static readonly transformerConstructor = LabelSpecTransformer as any;\n readonly transformerConstructor = LabelSpecTransformer;\n\n layoutZIndex: number = LayoutZIndex.Label;\n\n protected _labelInfoMap: Map<IRegion, ILabelInfo[]>;\n\n protected _labelComponentMap: Map<IComponentMark, () => ILabelInfo | ILabelInfo[]>;\n\n protected _layoutRule: 'series' | 'region';\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._layoutRule = (spec as any).labelLayout || 'series';\n }\n\n static getSpecInfo(chartSpec: any, chartSpecInfo: IChartSpecInfo): Maybe<IModelSpecInfo[]> {\n const specInfo: IModelSpecInfo[] = [];\n const regionSpecInfo = chartSpecInfo?.region || [];\n const isLabelVisible = (labelSpecList: ILabelSpec[]) => {\n return labelSpecList.some(labelSpec => labelSpec.visible);\n };\n\n regionSpecInfo.forEach((regionInfo, i) => {\n const seriesIndexes = regionInfo.seriesIndexes || [];\n const hasVisibleLabel = seriesIndexes.some(seriesIndex => {\n const seriesInfo = chartSpecInfo.series[seriesIndex];\n const { markLabelSpec = {} } = seriesInfo;\n return Object.values(markLabelSpec).some(\n labelSpecList => Array.isArray(labelSpecList) && isLabelVisible(labelSpecList)\n );\n });\n\n if (chartSpec.labelLayout !== 'region' || hasVisibleLabel) {\n specInfo.push({\n spec: chartSpec,\n type: ComponentTypeEnum.label,\n specInfoPath: ['component', this.specKey, i],\n regionIndexes: [i]\n });\n }\n });\n return specInfo;\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n this.initEvent();\n this._initTextMark();\n this._initLabelComponent();\n this._initTextMarkStyle();\n }\n\n reInit(spec?: T) {\n super.reInit(spec);\n this._labelInfoMap && this._labelInfoMap.clear();\n this._initTextMark();\n this._initTextMarkStyle();\n }\n\n initEvent() {\n this.event.on(ChartEvent.dataZoomChange, () => {\n this._labelComponentMap.forEach((info, component) => {\n const graphicItem = component.getProduct().getGroupGraphicItem();\n if (graphicItem) {\n graphicItem.disableAnimation();\n }\n });\n this.event.on(VGRAMMAR_HOOK_EVENT.AFTER_MARK_RENDER_END, enableAnimation);\n });\n const enableAnimation = () => {\n this._labelComponentMap.forEach((info, component) => {\n const graphicItem = component.getProduct().getGroupGraphicItem();\n if (graphicItem) {\n graphicItem.enableAnimation();\n }\n });\n this.event.off(VGRAMMAR_HOOK_EVENT.AFTER_MARK_RENDER_END, enableAnimation);\n };\n\n this.event.on('afterElementEncode', eventParams => {\n const mark = eventParams.item;\n\n if (this._option.getChart().getLayoutTag() === false && mark.getContext()?.model === this) {\n this._delegateLabelEvent(mark.getGroupGraphicItem());\n }\n });\n }\n\n protected _delegateLabelEvent(component: IGroup) {\n const textNodes = component\n ?.findAll(node => node.type === 'text', true)\n // label 组件的底层实现是有 text 图元复用的,这里为了避免重复的事件监听\n .filter(text => !(text as any).__vchart_event) as IText[];\n if (textNodes && textNodes.length > 0) {\n textNodes.forEach(text => {\n text.__vchart_event = true;\n text.addEventListener('*', ((event: any, type: string) =>\n this._delegateEvent(component, event, type, text, (text.attribute as LabelItem).data)) as LooseFunction);\n });\n }\n }\n\n protected _initTextMark() {\n if (!this._labelInfoMap) {\n this._labelInfoMap = new Map();\n }\n\n if (!this._labelComponentMap) {\n this._labelComponentMap = new Map();\n }\n eachSeries(this._regions, (series: ISeries) => {\n const { markLabelSpec = {} } = series.getSpecInfo();\n const markNames = Object.keys(markLabelSpec);\n const region = series.getRegion();\n\n if (!this._labelInfoMap.get(region)) {\n this._labelInfoMap.set(region, []);\n }\n for (let i = 0; i < markNames.length; i++) {\n const markName = markNames[i];\n const mark = series.getMarkInName(markName);\n if (!mark) {\n continue;\n }\n markLabelSpec[markName].forEach((spec: TransformedLabelSpec, index: number) => {\n if (spec.visible) {\n const info = this._labelInfoMap.get(region);\n const labelMark = this._createMark(\n {\n type: MarkTypeEnum.label,\n name: `${markName}-label-${index}`\n },\n { noSeparateStyle: true, attributeContext: series.getMarkAttributeContext() }\n ) as ILabelMark;\n labelMark.setTarget(mark);\n info.push({\n labelMark,\n baseMark: mark,\n series,\n labelSpec: spec\n });\n }\n });\n }\n });\n }\n\n protected _initLabelComponent() {\n this._labelInfoMap.forEach((regionLabelInfo, region) => {\n if (this._layoutRule === 'region') {\n const component = this._createMark(\n { type: MarkTypeEnum.component, name: `${region.getGroupMark().name}-label-component` },\n {\n componentType: 'label',\n noSeparateStyle: true,\n support3d: (this._spec as any).support3d\n }\n );\n if (component) {\n component.setSkipBeforeLayouted(true);\n this._marks.addMark(component);\n this._labelComponentMap.set(component, () => {\n return this._labelInfoMap.get(region);\n });\n }\n } else {\n regionLabelInfo.forEach((labelInfo, i) => {\n const component = this._createMark(\n { type: MarkTypeEnum.component, name: `${labelInfo.labelMark.name}-component` },\n {\n componentType: 'label',\n noSeparateStyle: true,\n support3d: labelInfo.baseMark.getSupport3d()\n }\n );\n if (component) {\n component.setSkipBeforeLayouted(true);\n this._marks.addMark(component);\n this._labelComponentMap.set(component, () => {\n return this._labelInfoMap.get(region)[i];\n });\n labelInfo.labelMark.setComponent(component);\n }\n });\n }\n });\n }\n\n protected _initTextMarkStyle() {\n this._labelInfoMap.forEach(labelInfos => {\n labelInfos.forEach(info => {\n const { labelMark, labelSpec, series } = info;\n this.initMarkStyleWithSpec(labelMark, labelSpec, undefined);\n if (isFunction(labelSpec?.getStyleHandler)) {\n const styleHandler = labelSpec.getStyleHandler(series);\n styleHandler?.call(series, labelMark, labelSpec);\n }\n if (labelMark.stateStyle?.normal?.lineWidth) {\n labelMark.setAttribute('stroke', series.getColorAttribute(), 'normal', AttributeLevel.Base_Series);\n }\n });\n });\n }\n\n updateLayoutAttribute(): void {\n super.updateLayoutAttribute();\n this._labelComponentMap.forEach((labelInfoCb, labelComponent) => {\n const labelInfo = labelInfoCb();\n if (isArray(labelInfo)) {\n this._updateMultiLabelAttribute(labelInfo, labelComponent);\n } else {\n this._updateSingleLabelAttribute(labelInfo, labelComponent);\n }\n });\n }\n\n protected _updateMultiLabelAttribute(labelInfo: ILabelInfo[], labelComponent: IComponentMark) {\n this._updateLabelComponentAttribute(\n labelComponent.getProduct() as ILabel,\n labelInfo.map(({ baseMark }) => baseMark.getProduct()),\n labelInfo\n );\n }\n\n protected _updateSingleLabelAttribute(labelInfo: ILabelInfo, labelComponent: IComponentMark) {\n const { baseMark } = labelInfo;\n this._updateLabelComponentAttribute(labelComponent.getProduct() as ILabel, baseMark.getProduct(), [labelInfo]);\n }\n\n protected _updateLabelComponentAttribute(\n component: ILabel,\n target: IVGrammarMark | IVGrammarMark[],\n labelInfos: ILabelInfo[]\n ) {\n const dependCmp = this._option.getComponentsByType('totalLabel');\n component\n .target(target)\n .configure({ interactive: false })\n .depend(dependCmp.map(cmp => cmp.getMarks()[0].getProduct()))\n .labelStyle((mark: IVGrammarMark, params: Record<string, any>) => {\n const labelInfo = labelInfos[params.labelIndex];\n if (labelInfo) {\n const { labelSpec, labelMark } = labelInfo;\n const rule = labelMark.getRule();\n const interactive = this._interactiveConfig(labelSpec);\n /** arc label When setting the centerOffset of the spec, the label also needs to be offset accordingly, and the centerOffset is not in the labelSpec */\n const centerOffset = (this._spec as any)?.centerOffset ?? 0;\n const spec = mergeSpec(\n {\n textStyle: { pickable: labelSpec.interactive === true, ...labelSpec.style },\n overlap: {\n avoidMarks: dependCmp.map(cmp => cmp.getMarks()[0].getProductId())\n }\n },\n defaultLabelConfig(rule, labelInfo),\n {\n ...pickWithout(labelSpec, ['position', 'style', 'state', 'type']),\n ...interactive,\n centerOffset\n }\n );\n // TODO 可以优化。vgrammar 的 label 图元类型分发是完全依赖 baseMark 的类型。默认情况下,line/area 图元的标签会使用'line-data'标签,此时需要 vchart 将类型传给 vgrammar\n if (rule === 'line' || rule === 'area') {\n spec.type = rule;\n }\n return spec;\n }\n })\n .encode((datum, element, params: Record<string, any>) => {\n const labelInfo = labelInfos[params.labelIndex];\n if (labelInfo) {\n const { labelSpec, labelMark } = labelInfos[params.labelIndex];\n return labelMark.skipEncode\n ? { data: datum }\n : textAttribute(labelInfos[params.labelIndex], datum, labelSpec.formatMethod, labelSpec.formatter);\n }\n })\n .size(() => labelInfos[0].series.getRegion().getLayoutRect());\n }\n\n compileMarks() {\n this.getMarks().forEach(m => {\n const labelInfo = this._labelComponentMap.get(m)();\n let group;\n if (isArray(labelInfo)) {\n group = labelInfo[0].series.getRegion().getGroupMark().getProduct() as IGroupMark;\n } else {\n group = labelInfo.series.getRegion().getGroupMark().getProduct() as IGroupMark;\n }\n m.compile({ group });\n m.getProduct()?.configure({\n context: {\n model: this,\n labelInfo\n }\n });\n });\n }\n\n getVRenderComponents() {\n const labels: any[] = [];\n this._labelComponentMap.forEach((info, component) => {\n const graphicItem = component.getProduct().getGroupGraphicItem();\n if (graphicItem) {\n labels.push(graphicItem);\n }\n });\n return labels;\n }\n}\n\nexport const registerLabel = () => {\n registerVGrammarLabel();\n registerLabelMark();\n registerComponentMark();\n Factory.registerComponent(Label.type, Label, true);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/label/label.ts"],"names":[],"mappings":"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","file":"label.js","sourcesContent":["import type { IComponentOption } from '../interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport type { IRegion } from '../../region/interface';\nimport type { IModelInitOption, IModelSpecInfo } from '../../model/interface';\nimport { AttributeLevel, ChartEvent, LayoutZIndex, VGRAMMAR_HOOK_EVENT } from '../../constant';\nimport { MarkTypeEnum } from '../../mark/interface';\nimport { mergeSpec } from '../../util/spec/merge-spec';\nimport { eachSeries } from '../../util/model';\nimport type { ISeries } from '../../series/interface';\nimport type { IGroupMark, ILabel, IMark as IVGrammarMark } from '@visactor/vgrammar-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerLabel as registerVGrammarLabel } from '@visactor/vgrammar-core';\nimport { defaultLabelConfig, textAttribute } from './util';\nimport type { IComponentMark } from '../../mark/component';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerComponentMark } from '../../mark/component';\nimport { BaseLabelComponent } from './base-label';\nimport type { Maybe } from '@visactor/vutils';\n// eslint-disable-next-line no-duplicate-imports\nimport { isArray, isFunction, pickWithout } from '@visactor/vutils';\nimport type { ILabelSpec, TransformedLabelSpec } from './interface';\nimport { Factory } from '../../core/factory';\nimport type { ILabelMark } from '../../mark/label';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerLabelMark } from '../../mark/label';\nimport type { ICompilableMark } from '../../compile/mark';\nimport type { IChartSpecInfo } from '../../chart/interface';\nimport type { IChartSpec } from '../../typings';\nimport { LabelSpecTransformer } from './label-transformer';\nimport { HOOK_EVENT } from '@visactor/vgrammar-core';\n\nexport interface ILabelInfo {\n baseMark: ICompilableMark;\n labelMark: ILabelMark;\n series: ISeries;\n labelSpec: TransformedLabelSpec;\n}\n\nexport interface ILabelComponentContext {\n region: IRegion;\n labelInfo: ILabelInfo[];\n}\n\nexport class Label<T extends IChartSpec = any> extends BaseLabelComponent<T> {\n static type = ComponentTypeEnum.label;\n type = ComponentTypeEnum.label;\n name: string = ComponentTypeEnum.label;\n\n static specKey = 'label';\n specKey = 'label';\n\n static readonly transformerConstructor = LabelSpecTransformer as any;\n readonly transformerConstructor = LabelSpecTransformer;\n\n layoutZIndex: number = LayoutZIndex.Label;\n\n protected _labelInfoMap: Map<IRegion, ILabelInfo[]>;\n\n protected _labelComponentMap: Map<IComponentMark, () => ILabelInfo | ILabelInfo[]>;\n\n protected _layoutRule: 'series' | 'region';\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._layoutRule = (spec as any).labelLayout || 'series';\n }\n\n static getSpecInfo(chartSpec: any, chartSpecInfo: IChartSpecInfo): Maybe<IModelSpecInfo[]> {\n const specInfo: IModelSpecInfo[] = [];\n const regionSpecInfo = chartSpecInfo?.region || [];\n const isLabelVisible = (labelSpecList: ILabelSpec[]) => {\n return labelSpecList.some(labelSpec => labelSpec.visible);\n };\n\n regionSpecInfo.forEach((regionInfo, i) => {\n const seriesIndexes = regionInfo.seriesIndexes || [];\n const hasVisibleLabel = seriesIndexes.some(seriesIndex => {\n const seriesInfo = chartSpecInfo.series[seriesIndex];\n const { markLabelSpec = {} } = seriesInfo;\n return Object.values(markLabelSpec).some(\n labelSpecList => Array.isArray(labelSpecList) && isLabelVisible(labelSpecList)\n );\n });\n\n if (chartSpec.labelLayout !== 'region' || hasVisibleLabel) {\n specInfo.push({\n spec: chartSpec,\n type: ComponentTypeEnum.label,\n specInfoPath: ['component', this.specKey, i],\n regionIndexes: [i]\n });\n }\n });\n return specInfo;\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n this.initEvent();\n this._initTextMark();\n this._initLabelComponent();\n this._initTextMarkStyle();\n }\n\n reInit(spec?: T) {\n super.reInit(spec);\n this._labelInfoMap && this._labelInfoMap.clear();\n this._initTextMark();\n this._initTextMarkStyle();\n }\n\n initEvent() {\n this.event.on(ChartEvent.dataZoomChange, () => {\n this._labelComponentMap.forEach((info, component) => {\n const graphicItem = component.getProduct().getGroupGraphicItem();\n if (graphicItem) {\n graphicItem.disableAnimation();\n }\n });\n this.event.on(VGRAMMAR_HOOK_EVENT.AFTER_MARK_RENDER_END, enableAnimation);\n });\n const enableAnimation = () => {\n this._labelComponentMap.forEach((info, component) => {\n const graphicItem = component.getProduct().getGroupGraphicItem();\n if (graphicItem) {\n graphicItem.enableAnimation();\n }\n });\n this.event.off(VGRAMMAR_HOOK_EVENT.AFTER_MARK_RENDER_END, enableAnimation);\n };\n }\n\n afterCompile() {\n this._labelComponentMap.forEach((info, component) => {\n const product = component.getProduct();\n if (product) {\n product.addEventListener(HOOK_EVENT.AFTER_ELEMENT_ENCODE, () => {\n if (this._isLayout === false) {\n this._delegateLabelEvent(product.getGroupGraphicItem());\n }\n });\n }\n });\n }\n\n protected _initTextMark() {\n if (!this._labelInfoMap) {\n this._labelInfoMap = new Map();\n }\n\n if (!this._labelComponentMap) {\n this._labelComponentMap = new Map();\n }\n eachSeries(this._regions, (series: ISeries) => {\n const { markLabelSpec = {} } = series.getSpecInfo();\n const markNames = Object.keys(markLabelSpec);\n const region = series.getRegion();\n\n if (!this._labelInfoMap.get(region)) {\n this._labelInfoMap.set(region, []);\n }\n for (let i = 0; i < markNames.length; i++) {\n const markName = markNames[i];\n const mark = series.getMarkInName(markName);\n if (!mark) {\n continue;\n }\n markLabelSpec[markName].forEach((spec: TransformedLabelSpec, index: number) => {\n if (spec.visible) {\n const info = this._labelInfoMap.get(region);\n const labelMark = this._createMark(\n {\n type: MarkTypeEnum.label,\n name: `${markName}-label-${index}`\n },\n { noSeparateStyle: true, attributeContext: series.getMarkAttributeContext() }\n ) as ILabelMark;\n labelMark.setTarget(mark);\n info.push({\n labelMark,\n baseMark: mark,\n series,\n labelSpec: spec\n });\n }\n });\n }\n });\n }\n\n protected _initLabelComponent() {\n this._labelInfoMap.forEach((regionLabelInfo, region) => {\n if (this._layoutRule === 'region') {\n const component = this._createMark(\n { type: MarkTypeEnum.component, name: `${region.getGroupMark().name}-label-component` },\n {\n componentType: 'label',\n noSeparateStyle: true,\n support3d: (this._spec as any).support3d\n }\n );\n if (component) {\n component.setSkipBeforeLayouted(true);\n this._marks.addMark(component);\n this._labelComponentMap.set(component, () => {\n return this._labelInfoMap.get(region);\n });\n }\n } else {\n regionLabelInfo.forEach((labelInfo, i) => {\n const component = this._createMark(\n { type: MarkTypeEnum.component, name: `${labelInfo.labelMark.name}-component` },\n {\n componentType: 'label',\n noSeparateStyle: true,\n support3d: labelInfo.baseMark.getSupport3d()\n }\n );\n if (component) {\n component.setSkipBeforeLayouted(true);\n this._marks.addMark(component);\n this._labelComponentMap.set(component, () => {\n return this._labelInfoMap.get(region)[i];\n });\n labelInfo.labelMark.setComponent(component);\n }\n });\n }\n });\n }\n\n protected _initTextMarkStyle() {\n this._labelInfoMap.forEach(labelInfos => {\n labelInfos.forEach(info => {\n const { labelMark, labelSpec, series } = info;\n this.initMarkStyleWithSpec(labelMark, labelSpec, undefined);\n if (isFunction(labelSpec?.getStyleHandler)) {\n const styleHandler = labelSpec.getStyleHandler(series);\n styleHandler?.call(series, labelMark, labelSpec);\n }\n if (labelMark.stateStyle?.normal?.lineWidth) {\n labelMark.setAttribute('stroke', series.getColorAttribute(), 'normal', AttributeLevel.Base_Series);\n }\n });\n });\n }\n\n updateLayoutAttribute(): void {\n super.updateLayoutAttribute();\n this._labelComponentMap.forEach((labelInfoCb, labelComponent) => {\n const labelInfo = labelInfoCb();\n if (isArray(labelInfo)) {\n this._updateMultiLabelAttribute(labelInfo, labelComponent);\n } else {\n this._updateSingleLabelAttribute(labelInfo, labelComponent);\n }\n });\n }\n\n protected _updateMultiLabelAttribute(labelInfo: ILabelInfo[], labelComponent: IComponentMark) {\n this._updateLabelComponentAttribute(\n labelComponent.getProduct() as ILabel,\n labelInfo.map(({ baseMark }) => baseMark.getProduct()),\n labelInfo\n );\n }\n\n protected _updateSingleLabelAttribute(labelInfo: ILabelInfo, labelComponent: IComponentMark) {\n const { baseMark } = labelInfo;\n this._updateLabelComponentAttribute(labelComponent.getProduct() as ILabel, baseMark.getProduct(), [labelInfo]);\n }\n\n protected _updateLabelComponentAttribute(\n component: ILabel,\n target: IVGrammarMark | IVGrammarMark[],\n labelInfos: ILabelInfo[]\n ) {\n const dependCmp = this._option.getComponentsByType('totalLabel');\n component\n .target(target)\n .configure({ interactive: false })\n .depend(dependCmp.map(cmp => cmp.getMarks()[0].getProduct()))\n .labelStyle((mark: IVGrammarMark, params: Record<string, any>) => {\n const labelInfo = labelInfos[params.labelIndex];\n if (labelInfo) {\n const { labelSpec, labelMark } = labelInfo;\n const rule = labelMark.getRule();\n const interactive = this._interactiveConfig(labelSpec);\n /** arc label When setting the centerOffset of the spec, the label also needs to be offset accordingly, and the centerOffset is not in the labelSpec */\n const centerOffset = (this._spec as any)?.centerOffset ?? 0;\n const spec = mergeSpec(\n {\n textStyle: { pickable: labelSpec.interactive === true, ...labelSpec.style },\n overlap: {\n avoidMarks: dependCmp.map(cmp => cmp.getMarks()[0].getProductId())\n }\n },\n defaultLabelConfig(rule, labelInfo),\n {\n ...pickWithout(labelSpec, ['position', 'style', 'state', 'type']),\n ...interactive,\n centerOffset\n }\n );\n // TODO 可以优化。vgrammar 的 label 图元类型分发是完全依赖 baseMark 的类型。默认情况下,line/area 图元的标签会使用'line-data'标签,此时需要 vchart 将类型传给 vgrammar\n if (rule === 'line' || rule === 'area') {\n spec.type = rule;\n }\n return spec;\n }\n })\n .encode((datum, element, params: Record<string, any>) => {\n const labelInfo = labelInfos[params.labelIndex];\n if (labelInfo) {\n const { labelSpec, labelMark } = labelInfos[params.labelIndex];\n return labelMark.skipEncode\n ? { data: datum }\n : textAttribute(labelInfos[params.labelIndex], datum, labelSpec.formatMethod, labelSpec.formatter);\n }\n })\n .size(() => labelInfos[0].series.getRegion().getLayoutRect());\n }\n\n compileMarks() {\n this.getMarks().forEach(m => {\n const labelInfo = this._labelComponentMap.get(m)();\n let group;\n if (isArray(labelInfo)) {\n group = labelInfo[0].series.getRegion().getGroupMark().getProduct() as IGroupMark;\n } else {\n group = labelInfo.series.getRegion().getGroupMark().getProduct() as IGroupMark;\n }\n m.compile({ group });\n m.getProduct()?.configure({\n context: {\n model: this,\n labelInfo\n }\n });\n });\n }\n\n getVRenderComponents() {\n const labels: any[] = [];\n this._labelComponentMap.forEach((info, component) => {\n const graphicItem = component.getProduct().getGroupGraphicItem();\n if (graphicItem) {\n labels.push(graphicItem);\n }\n });\n return labels;\n }\n}\n\nexport const registerLabel = () => {\n registerVGrammarLabel();\n registerLabelMark();\n registerComponentMark();\n Factory.registerComponent(Label.type, Label, true);\n};\n"]}
|
|
@@ -19,6 +19,7 @@ export declare class TotalLabel extends BaseLabelComponent {
|
|
|
19
19
|
protected _initTextMark(): void;
|
|
20
20
|
_initTextMarkStyle(): void;
|
|
21
21
|
protected _initLabelComponent(): void;
|
|
22
|
+
afterCompile(): void;
|
|
22
23
|
updateLayoutAttribute(): void;
|
|
23
24
|
compileMarks(): void;
|
|
24
25
|
getVRenderComponents(): any[];
|
|
@@ -16,6 +16,8 @@ import { Factory } from "../../core/factory";
|
|
|
16
16
|
|
|
17
17
|
import { registerComponentMark } from "../../mark/component";
|
|
18
18
|
|
|
19
|
+
import { HOOK_EVENT } from "@visactor/vgrammar-core";
|
|
20
|
+
|
|
19
21
|
export class TotalLabel extends BaseLabelComponent {
|
|
20
22
|
constructor() {
|
|
21
23
|
super(...arguments), this.type = ComponentTypeEnum.totalLabel, this.name = ComponentTypeEnum.totalLabel,
|
|
@@ -69,6 +71,14 @@ export class TotalLabel extends BaseLabelComponent {
|
|
|
69
71
|
});
|
|
70
72
|
component && this._marks.addMark(component);
|
|
71
73
|
}
|
|
74
|
+
afterCompile() {
|
|
75
|
+
this._marks.forEach(((componentMark, index) => {
|
|
76
|
+
const product = componentMark.getProduct();
|
|
77
|
+
product && product.addEventListener(HOOK_EVENT.AFTER_ELEMENT_ENCODE, (() => {
|
|
78
|
+
!1 === this._isLayout && this._delegateLabelEvent(product.getGroupGraphicItem());
|
|
79
|
+
}));
|
|
80
|
+
}));
|
|
81
|
+
}
|
|
72
82
|
updateLayoutAttribute() {
|
|
73
83
|
super.updateLayoutAttribute();
|
|
74
84
|
const series = this._getSeries();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/label/total-label.ts"],"names":[],"mappings":"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","file":"total-label.js","sourcesContent":["import type { ILabelMark } from '../../mark/label';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerLabelMark } from '../../mark/label';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport { AttributeLevel, LayoutZIndex, STACK_FIELD_TOTAL, STACK_FIELD_TOTAL_TOP } from '../../constant';\nimport type { IMark, MarkType } from '../../mark/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from '../../mark/interface';\nimport { mergeSpec } from '../../util/spec/merge-spec';\nimport type { ICartesianSeries, ISeries } from '../../series/interface';\nimport type { IGroupMark, IView } from '@visactor/vgrammar-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerLabel as registerVGrammarLabel } from '@visactor/vgrammar-core';\nimport { textAttribute } from './util';\nimport { BaseLabelComponent } from './base-label';\nimport type { IModelInitOption, IModelSpecInfo } from '../../model/interface';\nimport type { Datum, Maybe } from '../../typings';\nimport { Factory } from '../../core/factory';\nimport { registerComponentMark } from '../../mark/component';\nimport type { IChartSpecInfo } from '../../chart/interface';\n\nexport class TotalLabel extends BaseLabelComponent {\n static type = ComponentTypeEnum.totalLabel;\n type = ComponentTypeEnum.totalLabel;\n name: string = ComponentTypeEnum.totalLabel;\n\n static specKey = 'totalLabel';\n specKey = 'totalLabel';\n\n layoutZIndex: number = LayoutZIndex.Label;\n\n private _textMark?: ILabelMark;\n private _baseMark?: IMark;\n\n static getSpecInfo(chartSpec: any, chartSpecInfo?: IChartSpecInfo): Maybe<IModelSpecInfo[]> {\n const specInfo: IModelSpecInfo[] = [];\n chartSpecInfo?.region?.forEach((regionInfo, regionIndex) => {\n regionInfo.seriesIndexes?.forEach(seriesIndex => {\n const { spec } = chartSpecInfo.series[seriesIndex];\n const labelSpec = spec[this.specKey];\n if (labelSpec?.visible) {\n specInfo.push({\n spec: labelSpec,\n type: ComponentTypeEnum.totalLabel,\n specPath: ['series', seriesIndex, this.specKey],\n specInfoPath: ['component', this.specKey, seriesIndex],\n regionIndexes: [regionIndex],\n seriesIndexes: [seriesIndex]\n });\n }\n });\n });\n return specInfo;\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n this._initTextMark();\n this._initLabelComponent();\n }\n\n protected _initTextMark() {\n const series = this._getSeries();\n if (series.getSpec().totalLabel?.visible) {\n const mark = series.getMarksInType([MarkTypeEnum.rect, MarkTypeEnum.symbol])[0];\n const textMark = this._createMark({ type: MarkTypeEnum.label, name: `${mark.name}-total-label` }) as ILabelMark;\n this._baseMark = mark;\n this._textMark = textMark;\n this._initTextMarkStyle();\n }\n }\n\n _initTextMarkStyle() {\n super.initMarkStyleWithSpec(this._textMark, this._spec);\n this.setMarkStyle(\n this._textMark,\n {\n text: (datum: Datum) => {\n return datum[STACK_FIELD_TOTAL];\n }\n },\n 'normal',\n AttributeLevel.Default\n );\n }\n\n protected _initLabelComponent() {\n const series = this._getSeries();\n const component = this._createMark(\n { type: MarkTypeEnum.component, name: `${series.name}-total-label-component` },\n {\n componentType: 'label',\n noSeparateStyle: true,\n support3d: this._spec.support3d\n }\n );\n if (component) {\n this._marks.addMark(component);\n }\n }\n\n updateLayoutAttribute(): void {\n super.updateLayoutAttribute();\n const series = this._getSeries();\n this._marks.forEach((componentMark, index) => {\n const component = componentMark.getProduct() as ReturnType<IView['label']>;\n component\n .target(this._baseMark.getProduct())\n .configure({ interactive: false })\n .labelStyle(() => {\n if (this._baseMark) {\n const { offset, animation, overlap } = this._spec;\n const interactive = this._interactiveConfig(this._spec);\n return mergeSpec(\n {\n textStyle: { pickable: this._spec.interactive === true },\n position: totalLabelPosition(series, this._baseMark.type),\n x: 0,\n y: 0\n },\n {\n offset,\n animation,\n overlap,\n dataFilter: (data: any) => {\n return data.filter((d: any) => d.data[STACK_FIELD_TOTAL_TOP]);\n },\n ...interactive\n }\n );\n }\n })\n .encode(datum => {\n return textAttribute(\n {\n baseMark: this._baseMark,\n labelMark: this._textMark,\n series,\n labelSpec: series.getSpec().totalLabel\n },\n datum,\n this._spec.formatMethod\n );\n })\n .size(() => this._regions[0].getLayoutRect());\n });\n }\n\n compileMarks() {\n this.getMarks().forEach(m => {\n const group = this._regions[0].getGroupMark().getProduct() as IGroupMark;\n m.compile({ group });\n m.getProduct()?.configure({\n context: {\n model: this\n }\n });\n });\n }\n\n getVRenderComponents() {\n const labels: any[] = [];\n this.getMarks().forEach(m => {\n const graphicItem = m.getProduct().getGroupGraphicItem();\n if (graphicItem) {\n labels.push(graphicItem);\n }\n });\n return labels;\n }\n\n protected _getSeries() {\n return this._option.getSeriesInIndex([this.getSpecPath()[1] as number])[0];\n }\n}\n\nexport function totalLabelPosition(series: ISeries, type: MarkType) {\n let position;\n const { direction } = series as ICartesianSeries;\n const isInverse =\n direction === 'horizontal'\n ? (series as ICartesianSeries).getXAxisHelper()?.isInverse()\n : (series as ICartesianSeries).getYAxisHelper()?.isInverse();\n const positionMap = { vertical: ['top', 'bottom'], horizontal: ['right', 'left'] };\n const index = isInverse ? 1 : 0;\n switch (type) {\n case 'rect':\n case 'symbol':\n position = positionMap[direction][index];\n break;\n default:\n position = 'top';\n }\n return position;\n}\n\nexport const registerTotalLabel = () => {\n registerVGrammarLabel();\n registerLabelMark();\n registerComponentMark();\n Factory.registerComponent(TotalLabel.type, TotalLabel, true);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/label/total-label.ts"],"names":[],"mappings":"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","file":"total-label.js","sourcesContent":["import type { ILabelMark } from '../../mark/label';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerLabelMark } from '../../mark/label';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../interface/type';\nimport { AttributeLevel, LayoutZIndex, STACK_FIELD_TOTAL, STACK_FIELD_TOTAL_TOP } from '../../constant';\nimport type { IMark, MarkType } from '../../mark/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from '../../mark/interface';\nimport { mergeSpec } from '../../util/spec/merge-spec';\nimport type { ICartesianSeries, ISeries } from '../../series/interface';\nimport type { IGroupMark, IView } from '@visactor/vgrammar-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerLabel as registerVGrammarLabel } from '@visactor/vgrammar-core';\nimport { textAttribute } from './util';\nimport { BaseLabelComponent } from './base-label';\nimport type { IModelInitOption, IModelSpecInfo } from '../../model/interface';\nimport type { Datum, Maybe } from '../../typings';\nimport { Factory } from '../../core/factory';\nimport { registerComponentMark } from '../../mark/component';\nimport type { IChartSpecInfo } from '../../chart/interface';\nimport { HOOK_EVENT } from '@visactor/vgrammar-core';\n\nexport class TotalLabel extends BaseLabelComponent {\n static type = ComponentTypeEnum.totalLabel;\n type = ComponentTypeEnum.totalLabel;\n name: string = ComponentTypeEnum.totalLabel;\n\n static specKey = 'totalLabel';\n specKey = 'totalLabel';\n\n layoutZIndex: number = LayoutZIndex.Label;\n\n private _textMark?: ILabelMark;\n private _baseMark?: IMark;\n\n static getSpecInfo(chartSpec: any, chartSpecInfo?: IChartSpecInfo): Maybe<IModelSpecInfo[]> {\n const specInfo: IModelSpecInfo[] = [];\n chartSpecInfo?.region?.forEach((regionInfo, regionIndex) => {\n regionInfo.seriesIndexes?.forEach(seriesIndex => {\n const { spec } = chartSpecInfo.series[seriesIndex];\n const labelSpec = spec[this.specKey];\n if (labelSpec?.visible) {\n specInfo.push({\n spec: labelSpec,\n type: ComponentTypeEnum.totalLabel,\n specPath: ['series', seriesIndex, this.specKey],\n specInfoPath: ['component', this.specKey, seriesIndex],\n regionIndexes: [regionIndex],\n seriesIndexes: [seriesIndex]\n });\n }\n });\n });\n return specInfo;\n }\n\n init(option: IModelInitOption): void {\n super.init(option);\n this._initTextMark();\n this._initLabelComponent();\n }\n\n protected _initTextMark() {\n const series = this._getSeries();\n if (series.getSpec().totalLabel?.visible) {\n const mark = series.getMarksInType([MarkTypeEnum.rect, MarkTypeEnum.symbol])[0];\n const textMark = this._createMark({ type: MarkTypeEnum.label, name: `${mark.name}-total-label` }) as ILabelMark;\n this._baseMark = mark;\n this._textMark = textMark;\n this._initTextMarkStyle();\n }\n }\n\n _initTextMarkStyle() {\n super.initMarkStyleWithSpec(this._textMark, this._spec);\n this.setMarkStyle(\n this._textMark,\n {\n text: (datum: Datum) => {\n return datum[STACK_FIELD_TOTAL];\n }\n },\n 'normal',\n AttributeLevel.Default\n );\n }\n\n protected _initLabelComponent() {\n const series = this._getSeries();\n const component = this._createMark(\n { type: MarkTypeEnum.component, name: `${series.name}-total-label-component` },\n {\n componentType: 'label',\n noSeparateStyle: true,\n support3d: this._spec.support3d\n }\n );\n if (component) {\n this._marks.addMark(component);\n }\n }\n\n afterCompile() {\n this._marks.forEach((componentMark, index) => {\n const product = componentMark.getProduct() as ReturnType<IView['label']>;\n if (product) {\n product.addEventListener(HOOK_EVENT.AFTER_ELEMENT_ENCODE, () => {\n if (this._isLayout === false) {\n this._delegateLabelEvent(product.getGroupGraphicItem());\n }\n });\n }\n });\n }\n\n updateLayoutAttribute(): void {\n super.updateLayoutAttribute();\n const series = this._getSeries();\n this._marks.forEach((componentMark, index) => {\n const component = componentMark.getProduct() as ReturnType<IView['label']>;\n component\n .target(this._baseMark.getProduct())\n .configure({ interactive: false })\n .labelStyle(() => {\n if (this._baseMark) {\n const { offset, animation, overlap } = this._spec;\n const interactive = this._interactiveConfig(this._spec);\n return mergeSpec(\n {\n textStyle: { pickable: this._spec.interactive === true },\n position: totalLabelPosition(series, this._baseMark.type),\n x: 0,\n y: 0\n },\n {\n offset,\n animation,\n overlap,\n dataFilter: (data: any) => {\n return data.filter((d: any) => d.data[STACK_FIELD_TOTAL_TOP]);\n },\n ...interactive\n }\n );\n }\n })\n .encode(datum => {\n return textAttribute(\n {\n baseMark: this._baseMark,\n labelMark: this._textMark,\n series,\n labelSpec: series.getSpec().totalLabel\n },\n datum,\n this._spec.formatMethod\n );\n })\n .size(() => this._regions[0].getLayoutRect());\n });\n }\n\n compileMarks() {\n this.getMarks().forEach(m => {\n const group = this._regions[0].getGroupMark().getProduct() as IGroupMark;\n m.compile({ group });\n m.getProduct()?.configure({\n context: {\n model: this\n }\n });\n });\n }\n\n getVRenderComponents() {\n const labels: any[] = [];\n this.getMarks().forEach(m => {\n const graphicItem = m.getProduct().getGroupGraphicItem();\n if (graphicItem) {\n labels.push(graphicItem);\n }\n });\n return labels;\n }\n\n protected _getSeries() {\n return this._option.getSeriesInIndex([this.getSpecPath()[1] as number])[0];\n }\n}\n\nexport function totalLabelPosition(series: ISeries, type: MarkType) {\n let position;\n const { direction } = series as ICartesianSeries;\n const isInverse =\n direction === 'horizontal'\n ? (series as ICartesianSeries).getXAxisHelper()?.isInverse()\n : (series as ICartesianSeries).getYAxisHelper()?.isInverse();\n const positionMap = { vertical: ['top', 'bottom'], horizontal: ['right', 'left'] };\n const index = isInverse ? 1 : 0;\n switch (type) {\n case 'rect':\n case 'symbol':\n position = positionMap[direction][index];\n break;\n default:\n position = 'top';\n }\n return position;\n}\n\nexport const registerTotalLabel = () => {\n registerVGrammarLabel();\n registerLabelMark();\n registerComponentMark();\n Factory.registerComponent(TotalLabel.type, TotalLabel, true);\n};\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PREFIX } from "../../constant";
|
|
2
|
+
|
|
3
|
+
export class TooltipHandlerType {}
|
|
4
|
+
|
|
5
|
+
TooltipHandlerType.dom = `${PREFIX}_TOOLTIP_HANDLER_DOM`, TooltipHandlerType.canvas = `${PREFIX}_TOOLTIP_HANDLER_CANVAS`;
|
|
6
|
+
|
|
7
|
+
export const TOOLTIP_EL_CLASS_NAME = "vchart-tooltip-element";
|
|
8
|
+
//# sourceMappingURL=constant.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/component/tooltip/constant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,MAAM,OAAO,kBAAkB;;AACtB,sBAAG,GAAG,GAAG,MAAM,sBAAsB,CAAC;AACtC,yBAAM,GAAG,GAAG,MAAM,yBAAyB,CAAC;AAGrD,MAAM,CAAC,MAAM,qBAAqB,GAAG,wBAAwB,CAAC","file":"constant.js","sourcesContent":["import { PREFIX } from '../../constant';\n\nexport class TooltipHandlerType {\n static dom = `${PREFIX}_TOOLTIP_HANDLER_DOM`; // 模拟 enum\n static canvas = `${PREFIX}_TOOLTIP_HANDLER_CANVAS`;\n}\n\nexport const TOOLTIP_EL_CLASS_NAME = 'vchart-tooltip-element';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/tooltip/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC","file":"index.js","sourcesContent":["export * from './tooltip';\nexport * from './interface';\nexport * from './tooltip-transformer';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/tooltip/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,YAAY,CAAC","file":"index.js","sourcesContent":["export * from './tooltip';\nexport * from './interface';\nexport * from './tooltip-transformer';\nexport * from './constant';\n"]}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import type { ITooltipActual, ITooltipPattern, Maybe, TooltipActiveType, TooltipData } from '../../../typings';
|
|
1
|
+
import type { ITooltipActual, ITooltipPattern, Maybe, MaybeArray, TooltipActiveType, TooltipData } from '../../../typings';
|
|
2
2
|
import type { ITooltipActiveTypeAsKeys, TooltipHandlerParams, TooltipResult } from './common';
|
|
3
3
|
import type { ITooltipTheme } from './theme';
|
|
4
4
|
export interface ITooltipSpec extends Partial<ITooltipActiveTypeAsKeys<ITooltipPattern, ITooltipPattern>> {
|
|
5
5
|
visible?: boolean;
|
|
6
6
|
activeType?: TooltipActiveType | TooltipActiveType[];
|
|
7
|
-
trigger?: 'hover' | 'click' | 'none';
|
|
8
|
-
triggerOff?: 'hover' | 'click' | 'none';
|
|
7
|
+
trigger?: MaybeArray<'hover' | 'click'> | 'none';
|
|
8
|
+
triggerOff?: MaybeArray<'hover' | 'click'> | 'none';
|
|
9
|
+
lockAfterClick?: boolean;
|
|
9
10
|
style?: Omit<ITooltipTheme<string>, 'offset'>;
|
|
10
11
|
handler?: Partial<ITooltipHandlerSpec>;
|
|
11
12
|
renderMode?: 'html' | 'canvas';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/tooltip/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type {
|
|
1
|
+
{"version":3,"sources":["../src/component/tooltip/interface/spec.ts"],"names":[],"mappings":"","file":"spec.js","sourcesContent":["import type {\n ITooltipActual,\n ITooltipPattern,\n Maybe,\n MaybeArray,\n TooltipActiveType,\n TooltipData\n} from '../../../typings';\nimport type { ITooltipActiveTypeAsKeys, TooltipHandlerParams, TooltipResult } from './common';\nimport type { ITooltipTheme } from './theme';\n\nexport interface ITooltipSpec\n extends Partial<\n /**\n * mark tooltip pattern\n * & dimension tooltip pattern\n * (*支持在series上设置)\n */\n ITooltipActiveTypeAsKeys<ITooltipPattern, ITooltipPattern>\n > {\n /**\n * 是否显示\n * (*支持在series上设置)\n * (*会影响自定义handler)\n */\n visible?: boolean;\n /**\n * 受支持的激活类型\n * (*支持在series上设置)\n * (*会影响自定义handler)\n */\n activeType?: TooltipActiveType | TooltipActiveType[];\n /**\n * tooltip触发方式\n * (*会影响自定义handler)\n */\n trigger?: MaybeArray<'hover' | 'click'> | 'none';\n /**\n * 隐藏tooltip的触发方式(目前仅支持和trigger一致的设置以及none)\n * (*会影响自定义handler)\n */\n triggerOff?: MaybeArray<'hover' | 'click'> | 'none';\n /**\n * 点击后锁定,只有点击才可以更新位置或者解锁,通常用于 trigger 为 `['hover', 'click']` 的场景\n * (*会影响自定义handler)\n * @since 1.10.0\n */\n lockAfterClick?: boolean;\n /**\n * tooltip样式\n */\n style?: Omit<ITooltipTheme<string>, 'offset'>;\n\n /**\n * 自定义handler方法\n */\n handler?: Partial<ITooltipHandlerSpec>;\n\n /**\n * tooltip 渲染方式,默认为 html\n */\n renderMode?: 'html' | 'canvas';\n /**\n * 是否将 tooltip 框限制在画布区域内,renderMode 为 canvas 时,默认开启。\n */\n confine?: boolean;\n\n /**\n * tooltip dom元素的 className,仅当 renderMode: 'html' 时生效\n */\n className?: string;\n /**\n * tooltip dom 元素的挂载点,可传 id 或 dom 对象\n */\n parentElement?: Maybe<string | HTMLElement | HTMLCanvasElement>;\n /**\n * 鼠标是否可进入提示框浮层中,默认为false,如需详情内交互,如添加链接,按钮,可设置为 true。\n * 该属性目前只对 renderMode 为 html 时生效\n * TODO: 支持 renderMode: canvas\n */\n enterable?: boolean;\n\n /**\n * 浮层移动动画过渡时间,单位是 ms,设置为 0 的时候会紧跟着鼠标移动(目前仅影响 dom tooltip)\n */\n transitionDuration?: number;\n\n /**\n * 更新 tooltip 的防抖动时间间隔,单位是 ms\n */\n throttleInterval?: number;\n\n /**\n * 更新 tooltip dom 元素,仅当 renderMode: 'html' 时生效\n * @since 1.6.0\n */\n updateElement?: (tooltipElement: HTMLElement, actualTooltip: ITooltipActual, params: TooltipHandlerParams) => void;\n\n offset?: {\n x?: number;\n y?: number;\n };\n}\n\nexport interface ITooltipHandlerSpec {\n /** 显示 tooltip,可以选择返回是否遇到异常 */\n showTooltip: (\n activeType: TooltipActiveType,\n tooltipData: TooltipData,\n params: TooltipHandlerParams\n ) => Maybe<TooltipResult>;\n /** 隐藏 tooltip,可以选择返回是否遇到异常 */\n hideTooltip: (params: TooltipHandlerParams) => Maybe<TooltipResult>;\n /** 释放 tooltip */\n release: () => void;\n /** 可选,判断 tooltip 是否正在显示 */\n isTooltipShown?: () => boolean;\n}\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { IChartSpecInfo } from '../../chart/interface';
|
|
1
2
|
import { BaseComponentSpecTransformer } from '../base';
|
|
2
3
|
export declare class TooltipSpecTransformer extends BaseComponentSpecTransformer<any> {
|
|
3
4
|
protected _shouldMergeThemeToSpec(): boolean;
|
|
@@ -5,4 +6,5 @@ export declare class TooltipSpecTransformer extends BaseComponentSpecTransformer
|
|
|
5
6
|
spec: any;
|
|
6
7
|
theme: any;
|
|
7
8
|
};
|
|
9
|
+
protected _transformSpecAfterMergingTheme(spec: any, chartSpec: any, chartSpecInfo?: IChartSpecInfo): void;
|
|
8
10
|
}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import { mergeSpec } from "../../util";
|
|
1
|
+
import { domDocument, isMiniAppLikeMode, isString, isTrueBrowser, isValid, mergeSpec } from "../../util";
|
|
2
2
|
|
|
3
3
|
import { BaseComponentSpecTransformer } from "../base";
|
|
4
4
|
|
|
5
|
+
import { TOOLTIP_EL_CLASS_NAME } from "./constant";
|
|
6
|
+
|
|
7
|
+
import { getTooltipActualActiveType } from "./utils";
|
|
8
|
+
|
|
5
9
|
export class TooltipSpecTransformer extends BaseComponentSpecTransformer {
|
|
6
10
|
_shouldMergeThemeToSpec() {
|
|
7
11
|
return !1;
|
|
@@ -13,5 +17,16 @@ export class TooltipSpecTransformer extends BaseComponentSpecTransformer {
|
|
|
13
17
|
theme: theme
|
|
14
18
|
};
|
|
15
19
|
}
|
|
20
|
+
_transformSpecAfterMergingTheme(spec, chartSpec, chartSpecInfo) {
|
|
21
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
22
|
+
super._transformSpecAfterMergingTheme(spec, chartSpec, chartSpecInfo), spec.visible = null === (_a = spec.visible) || void 0 === _a || _a,
|
|
23
|
+
spec.activeType = getTooltipActualActiveType(spec), spec.renderMode = null !== (_b = spec.renderMode) && void 0 !== _b ? _b : isMiniAppLikeMode(this._option.mode) || !isTrueBrowser(this._option.mode) ? "canvas" : "html",
|
|
24
|
+
spec.trigger = null !== (_c = spec.trigger) && void 0 !== _c ? _c : "hover", spec.className = null !== (_d = spec.className) && void 0 !== _d ? _d : TOOLTIP_EL_CLASS_NAME,
|
|
25
|
+
spec.enterable = null !== (_e = spec.enterable) && void 0 !== _e && _e, spec.transitionDuration = null !== (_f = spec.transitionDuration) && void 0 !== _f ? _f : 150,
|
|
26
|
+
spec.triggerOff = null !== (_g = spec.triggerOff) && void 0 !== _g ? _g : spec.trigger,
|
|
27
|
+
spec.confine = null !== (_h = spec.confine) && void 0 !== _h ? _h : "canvas" === spec.renderMode,
|
|
28
|
+
isValid(spec.mark) && (spec.mark.activeType = "mark"), isValid(spec.dimension) && (spec.dimension.activeType = "dimension"),
|
|
29
|
+
isValid(spec.parentElement) ? isString(spec.parentElement) && (spec.parentElement = null === (_j = null === globalThis || void 0 === globalThis ? void 0 : globalThis.document) || void 0 === _j ? void 0 : _j.getElementById(spec.parentElement)) : isTrueBrowser(this._option.mode) && (spec.parentElement = null == domDocument ? void 0 : domDocument.body);
|
|
30
|
+
}
|
|
16
31
|
}
|
|
17
32
|
//# sourceMappingURL=tooltip-transformer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/tooltip/tooltip-transformer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/component/tooltip/tooltip-transformer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACzG,OAAO,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAErD,MAAM,OAAO,sBAAuB,SAAQ,4BAAiC;IACjE,uBAAuB;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAES,UAAU,CAAC,IAAS,EAAE,SAAc;QAC5C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnE,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;IAES,+BAA+B,CAAC,IAAS,EAAE,SAAc,EAAE,aAA8B;;QACjG,KAAK,CAAC,+BAA+B,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAEtE,IAAI,CAAC,OAAO,GAAG,MAAA,IAAI,CAAC,OAAO,mCAAI,IAAI,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU;YACb,MAAA,IAAI,CAAC,UAAU,mCAEf,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAClG,IAAI,CAAC,OAAO,GAAG,MAAA,IAAI,CAAC,OAAO,mCAAI,OAAO,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,MAAA,IAAI,CAAC,SAAS,mCAAI,qBAAqB,CAAC;QACzD,IAAI,CAAC,SAAS,GAAG,MAAA,IAAI,CAAC,SAAS,mCAAI,KAAK,CAAC;QACzC,IAAI,CAAC,kBAAkB,GAAG,MAAA,IAAI,CAAC,kBAAkB,mCAAI,GAAG,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,MAAA,IAAI,CAAC,UAAU,mCAAI,IAAI,CAAC,OAAO,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,MAAA,IAAI,CAAC,OAAO,mCAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC;QAE5D,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;SAC/B;QACD,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC3B,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,WAAW,CAAC;SACzC;QAED,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;YAC/B,IAAI,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;gBAChC,IAAI,CAAC,aAAa,GAAG,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,0CAAE,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aAC/E;SACF;aAAM,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC3C,IAAI,CAAC,aAAa,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,CAAC;SACxC;IACH,CAAC;CACF","file":"tooltip-transformer.js","sourcesContent":["import type { IChartSpecInfo } from '../../chart/interface';\nimport { domDocument, isMiniAppLikeMode, isString, isTrueBrowser, isValid, mergeSpec } from '../../util';\nimport { BaseComponentSpecTransformer } from '../base';\nimport { TOOLTIP_EL_CLASS_NAME } from './constant';\nimport { getTooltipActualActiveType } from './utils';\n\nexport class TooltipSpecTransformer extends BaseComponentSpecTransformer<any> {\n protected _shouldMergeThemeToSpec() {\n return false;\n }\n\n protected _initTheme(spec: any, chartSpec: any): { spec: any; theme: any } {\n const { spec: newSpec, theme } = super._initTheme(spec, chartSpec);\n newSpec.style = mergeSpec({}, this._theme, newSpec.style);\n return { spec: newSpec, theme };\n }\n\n protected _transformSpecAfterMergingTheme(spec: any, chartSpec: any, chartSpecInfo?: IChartSpecInfo) {\n super._transformSpecAfterMergingTheme(spec, chartSpec, chartSpecInfo);\n\n spec.visible = spec.visible ?? true;\n spec.activeType = getTooltipActualActiveType(spec);\n spec.renderMode =\n spec.renderMode ??\n // 小程序或非浏览器环境下,默认使用canvas渲染\n (isMiniAppLikeMode(this._option.mode) || !isTrueBrowser(this._option.mode) ? 'canvas' : 'html');\n spec.trigger = spec.trigger ?? 'hover';\n spec.className = spec.className ?? TOOLTIP_EL_CLASS_NAME;\n spec.enterable = spec.enterable ?? false;\n spec.transitionDuration = spec.transitionDuration ?? 150;\n spec.triggerOff = spec.triggerOff ?? spec.trigger;\n spec.confine = spec.confine ?? spec.renderMode === 'canvas';\n\n if (isValid(spec.mark)) {\n spec.mark.activeType = 'mark';\n }\n if (isValid(spec.dimension)) {\n spec.dimension.activeType = 'dimension';\n }\n\n if (isValid(spec.parentElement)) {\n if (isString(spec.parentElement)) {\n spec.parentElement = globalThis?.document?.getElementById(spec.parentElement);\n }\n } else if (isTrueBrowser(this._option.mode)) {\n spec.parentElement = domDocument?.body;\n }\n }\n}\n"]}
|
|
@@ -35,6 +35,7 @@ export declare class Tooltip extends BaseComponent<any> implements ITooltip {
|
|
|
35
35
|
private _eventList;
|
|
36
36
|
protected _processor: ITooltipActiveTypeAsKeys<MarkTooltipProcessor, DimensionTooltipProcessor>;
|
|
37
37
|
protected _isTooltipShown: boolean;
|
|
38
|
+
protected _clickLock: boolean;
|
|
38
39
|
isTooltipShown(): boolean;
|
|
39
40
|
changeRegions(regions: IRegion[]): void;
|
|
40
41
|
protected _getNeedClearVRenderComponents(): IGraphic[];
|
|
@@ -52,12 +53,11 @@ export declare class Tooltip extends BaseComponent<any> implements ITooltip {
|
|
|
52
53
|
protected _mountEvent: (eType: EventType, query: EventQuery, callback: EventCallback<any>) => void;
|
|
53
54
|
protected _getMouseOutHandler: (needPointerDetection?: boolean) => (params: BaseEventParams) => void;
|
|
54
55
|
protected _handleChartMouseOut: (params: BaseEventParams) => void;
|
|
55
|
-
protected
|
|
56
|
-
protected _showTooltipByMouseEvent: (activeType: TooltipActiveType, mouseEventData: TotalMouseEventData, params: BaseEventParams, useCache?: boolean) => boolean;
|
|
56
|
+
protected _getMouseMoveHandler: (isClick: boolean) => (params: BaseEventParams) => void;
|
|
57
|
+
protected _showTooltipByMouseEvent: (activeType: TooltipActiveType, mouseEventData: TotalMouseEventData, params: BaseEventParams, isClick: boolean, useCache?: boolean) => boolean;
|
|
57
58
|
protected _getMouseEventData: (params: BaseEventParams) => TotalMouseEventData;
|
|
58
59
|
protected _hideTooltipByHandler: (params: TooltipHandlerParams) => TooltipResult;
|
|
59
60
|
reInit(spec?: any): void;
|
|
60
|
-
setAttrFromSpec(): void;
|
|
61
61
|
showTooltip(datum: Datum, options: IShowTooltipOption): false | "none" | TooltipActiveType;
|
|
62
62
|
hideTooltip(): boolean;
|
|
63
63
|
private _isSameAsCache;
|
|
@@ -2,11 +2,11 @@ import { ComponentTypeEnum } from "../interface/type";
|
|
|
2
2
|
|
|
3
3
|
import { BaseComponent } from "../base/base-component";
|
|
4
4
|
|
|
5
|
-
import { isMobileLikeMode, isTrueBrowser, isMiniAppLikeMode
|
|
5
|
+
import { isMobileLikeMode, isTrueBrowser, isMiniAppLikeMode } from "../../util/env";
|
|
6
6
|
|
|
7
7
|
import { showTooltip } from "./utils/show-tooltip";
|
|
8
8
|
|
|
9
|
-
import {
|
|
9
|
+
import { isEmptyPos } from "./utils/common";
|
|
10
10
|
|
|
11
11
|
import { isSameDimensionInfo } from "../../event/events/dimension/util/common";
|
|
12
12
|
|
|
@@ -18,7 +18,7 @@ import { isDimensionInfo, isMarkInfo } from "./processor/util";
|
|
|
18
18
|
|
|
19
19
|
import { MarkTooltipProcessor } from "./processor/mark-tooltip";
|
|
20
20
|
|
|
21
|
-
import { hasParentElement,
|
|
21
|
+
import { hasParentElement, isArray, isValid, isNil, array } from "@visactor/vutils";
|
|
22
22
|
|
|
23
23
|
import { VChart } from "../../core/vchart";
|
|
24
24
|
|
|
@@ -26,25 +26,25 @@ import { Factory } from "../../core/factory";
|
|
|
26
26
|
|
|
27
27
|
import { TooltipSpecTransformer } from "./tooltip-transformer";
|
|
28
28
|
|
|
29
|
-
import { TOOLTIP_EL_CLASS_NAME, TooltipHandlerType } from "../../plugin/components/tooltip-handler/constants";
|
|
30
|
-
|
|
31
29
|
import { error } from "../../util";
|
|
32
30
|
|
|
31
|
+
import { TooltipHandlerType } from "./constant";
|
|
32
|
+
|
|
33
33
|
export class Tooltip extends BaseComponent {
|
|
34
34
|
constructor() {
|
|
35
35
|
super(...arguments), this.layoutZIndex = 1, this.type = ComponentTypeEnum.tooltip,
|
|
36
36
|
this.name = ComponentTypeEnum.tooltip, this.transformerConstructor = TooltipSpecTransformer,
|
|
37
37
|
this.specKey = "tooltip", this.layoutType = "none", this._alwaysShow = !1, this._eventList = [],
|
|
38
|
-
this._isTooltipShown = !1, this._mountEvent = (eType, query, callback) => {
|
|
38
|
+
this._isTooltipShown = !1, this._clickLock = !1, this._mountEvent = (eType, query, callback) => {
|
|
39
39
|
this.event.on(eType, query, callback), this._eventList.push({
|
|
40
40
|
eventType: eType,
|
|
41
41
|
handler: callback
|
|
42
42
|
});
|
|
43
43
|
}, this._getMouseOutHandler = needPointerDetection => params => {
|
|
44
|
-
var _a, _b;
|
|
44
|
+
var _a, _b, _c;
|
|
45
45
|
if (this._alwaysShow) return;
|
|
46
46
|
if (!this._isTooltipShown && !(null === (_b = null === (_a = this.tooltipHandler) || void 0 === _a ? void 0 : _a.isTooltipShown) || void 0 === _b ? void 0 : _b.call(_a))) return;
|
|
47
|
-
const browserEnv = isTrueBrowser(this._option.mode), {clientX: clientX, clientY: clientY} = params.event;
|
|
47
|
+
const browserEnv = isTrueBrowser(null === (_c = this._option) || void 0 === _c ? void 0 : _c.mode), {clientX: clientX, clientY: clientY} = params.event;
|
|
48
48
|
browserEnv && this._isPointerOnTooltip(params) || browserEnv && needPointerDetection && this._isPointerInChart({
|
|
49
49
|
x: clientX,
|
|
50
50
|
y: clientY
|
|
@@ -53,17 +53,20 @@ export class Tooltip extends BaseComponent {
|
|
|
53
53
|
this._alwaysShow || "none" !== this._spec.triggerOff && (this._hideTooltipByHandler(Object.assign(Object.assign({}, params), {
|
|
54
54
|
tooltip: this
|
|
55
55
|
})), this._cacheInfo = void 0, this._cacheParams = void 0);
|
|
56
|
-
}, this.
|
|
56
|
+
}, this._getMouseMoveHandler = isClick => params => {
|
|
57
57
|
if (this.tooltipHandler || this._initHandler(), this._processor || this._initProcessor(),
|
|
58
58
|
this._alwaysShow) return;
|
|
59
59
|
if (this._isPointerOnTooltip(params)) return;
|
|
60
|
+
if (!isClick && this._clickLock) return;
|
|
60
61
|
const mouseEventData = this._getMouseEventData(params), {tooltipInfo: {dimension: dimensionInfo}, ignore: {mark: ignoreMark, dimension: ignoreDimension}} = mouseEventData;
|
|
61
62
|
let markTooltipSuccess = !1, dimensionTooltipSuccess = !1;
|
|
62
|
-
markTooltipSuccess = this._showTooltipByMouseEvent("mark", mouseEventData, params),
|
|
63
|
-
markTooltipSuccess || (dimensionTooltipSuccess = this._showTooltipByMouseEvent("dimension", mouseEventData, params)),
|
|
64
|
-
markTooltipSuccess || dimensionTooltipSuccess || isEmptyPos(params) || (ignoreMark && isMarkInfo(this._cacheInfo) ? markTooltipSuccess = this._showTooltipByMouseEvent("mark", mouseEventData, params, !0) : ignoreDimension && isDimensionInfo(this._cacheInfo) ? dimensionTooltipSuccess = this._showTooltipByMouseEvent("dimension", mouseEventData, params, !0) : isValid(dimensionInfo) && (dimensionTooltipSuccess = this._showTooltipByMouseEvent("dimension", mouseEventData, params))),
|
|
65
|
-
markTooltipSuccess || dimensionTooltipSuccess && !isNil(dimensionInfo) || this._handleChartMouseOut(params)
|
|
66
|
-
|
|
63
|
+
markTooltipSuccess = this._showTooltipByMouseEvent("mark", mouseEventData, params, isClick),
|
|
64
|
+
markTooltipSuccess || (dimensionTooltipSuccess = this._showTooltipByMouseEvent("dimension", mouseEventData, params, isClick)),
|
|
65
|
+
markTooltipSuccess || dimensionTooltipSuccess || isEmptyPos(params) || (ignoreMark && isMarkInfo(this._cacheInfo) ? markTooltipSuccess = this._showTooltipByMouseEvent("mark", mouseEventData, params, isClick, !0) : ignoreDimension && isDimensionInfo(this._cacheInfo) ? dimensionTooltipSuccess = this._showTooltipByMouseEvent("dimension", mouseEventData, params, isClick, !0) : isValid(dimensionInfo) && (dimensionTooltipSuccess = this._showTooltipByMouseEvent("dimension", mouseEventData, params, isClick))),
|
|
66
|
+
markTooltipSuccess || dimensionTooltipSuccess && !isNil(dimensionInfo) || (this._handleChartMouseOut(params),
|
|
67
|
+
isClick && this._clickLock && (this._clickLock = !1));
|
|
68
|
+
}, this._showTooltipByMouseEvent = (activeType, mouseEventData, params, isClick, useCache) => {
|
|
69
|
+
var _a;
|
|
67
70
|
const processor = this._processor[activeType];
|
|
68
71
|
if (!processor.shouldHandleTooltip(params, {
|
|
69
72
|
tooltipInfo: mouseEventData.tooltipInfo[activeType],
|
|
@@ -75,9 +78,9 @@ export class Tooltip extends BaseComponent {
|
|
|
75
78
|
success = !processor.showTooltip(tooltipInfo, params, isSameAsCache), success && (this._cacheInfo = tooltipInfo,
|
|
76
79
|
this._cacheParams = params);
|
|
77
80
|
}
|
|
78
|
-
success && (this._isTooltipShown = !0);
|
|
79
|
-
const vchart = this._option.globalInstance;
|
|
80
|
-
return success && VChart.globalConfig.uniqueTooltip && VChart.hideTooltip(vchart.id),
|
|
81
|
+
success && (this._isTooltipShown = !0, isClick && this._spec.lockAfterClick && !this._clickLock && (this._clickLock = !0));
|
|
82
|
+
const vchart = null === (_a = this._option) || void 0 === _a ? void 0 : _a.globalInstance;
|
|
83
|
+
return success && VChart.globalConfig.uniqueTooltip && vchart && VChart.hideTooltip(vchart.id),
|
|
81
84
|
success;
|
|
82
85
|
}, this._getMouseEventData = params => {
|
|
83
86
|
const result = {
|
|
@@ -169,18 +172,18 @@ export class Tooltip extends BaseComponent {
|
|
|
169
172
|
_initEvent() {
|
|
170
173
|
var _a;
|
|
171
174
|
if (this._option.disableTriggerEvent) return;
|
|
172
|
-
const trigger = null !== (_a = this._spec.trigger) && void 0 !== _a ? _a : "hover", mode = this._option.mode;
|
|
173
|
-
"hover"
|
|
175
|
+
const trigger = array(null !== (_a = this._spec.trigger) && void 0 !== _a ? _a : "hover"), mode = this._option.mode;
|
|
176
|
+
trigger.includes("hover") && (this._mountEvent("pointermove", {
|
|
174
177
|
source: "chart"
|
|
175
|
-
}, this.
|
|
178
|
+
}, this._getMouseMoveHandler(!1)), (isMobileLikeMode(mode) || isMiniAppLikeMode(mode)) && (this._mountEvent("pointerdown", {
|
|
176
179
|
source: "chart"
|
|
177
|
-
}, this.
|
|
180
|
+
}, this._getMouseMoveHandler(!1)), this._mountEvent("pointerup", {
|
|
178
181
|
source: "window"
|
|
179
182
|
}, this._getMouseOutHandler(!0))), this._mountEvent("pointerout", {
|
|
180
183
|
source: "canvas"
|
|
181
|
-
}, this._getMouseOutHandler(!1)))
|
|
184
|
+
}, this._getMouseOutHandler(!1))), trigger.includes("click") && (this._mountEvent("pointertap", {
|
|
182
185
|
source: "chart"
|
|
183
|
-
}, this.
|
|
186
|
+
}, this._getMouseMoveHandler(!0)), this._mountEvent("pointerup", {
|
|
184
187
|
source: "window"
|
|
185
188
|
}, this._getMouseOutHandler(!0)));
|
|
186
189
|
}
|
|
@@ -188,27 +191,6 @@ export class Tooltip extends BaseComponent {
|
|
|
188
191
|
var _a, _b;
|
|
189
192
|
super.reInit(spec), this.tooltipHandler ? null === (_b = (_a = this.tooltipHandler).reInit) || void 0 === _b || _b.call(_a) : this._initHandler();
|
|
190
193
|
}
|
|
191
|
-
setAttrFromSpec() {
|
|
192
|
-
var _a;
|
|
193
|
-
super.setAttrFromSpec();
|
|
194
|
-
const userSpec = this._spec;
|
|
195
|
-
this._spec = Object.assign(Object.assign({}, userSpec), {
|
|
196
|
-
visible: !isValid(userSpec.visible) || userSpec.visible,
|
|
197
|
-
activeType: getTooltipActualActiveType(userSpec),
|
|
198
|
-
renderMode: "html",
|
|
199
|
-
trigger: isValid(userSpec.trigger) ? userSpec.trigger : "hover",
|
|
200
|
-
className: isValid(userSpec.className) ? userSpec.className : TOOLTIP_EL_CLASS_NAME,
|
|
201
|
-
enterable: !!isValid(userSpec.enterable) && userSpec.enterable,
|
|
202
|
-
transitionDuration: isValid(userSpec.transitionDuration) ? userSpec.transitionDuration : 150
|
|
203
|
-
}), this._spec.triggerOff = isValid(userSpec.triggerOff) ? userSpec.triggerOff : this._spec.trigger,
|
|
204
|
-
isValid(userSpec.renderMode) ? this._spec.renderMode = userSpec.renderMode : !isMiniAppLikeMode(this._option.mode) && isTrueBrowser(this._option.mode) || (this._spec.renderMode = "canvas"),
|
|
205
|
-
isValid(userSpec.mark) && (this._spec.mark = Object.assign(Object.assign({}, cloneDeep(userSpec.mark)), {
|
|
206
|
-
activeType: "mark"
|
|
207
|
-
})), isValid(userSpec.dimension) && (this._spec.dimension = Object.assign(Object.assign({}, cloneDeep(userSpec.dimension)), {
|
|
208
|
-
activeType: "dimension"
|
|
209
|
-
})), isValid(userSpec.parentElement) ? isString(userSpec.parentElement) ? this._spec.parentElement = null === (_a = null === globalThis || void 0 === globalThis ? void 0 : globalThis.document) || void 0 === _a ? void 0 : _a.getElementById(userSpec.parentElement) : this._spec.parentElement = userSpec.parentElement : isTrueBrowser(this._option.mode) && (this._spec.parentElement = null == domDocument ? void 0 : domDocument.body),
|
|
210
|
-
isValid(userSpec.confine) ? this._spec.confine = userSpec.confine : this._spec.confine = "canvas" === this._spec.renderMode;
|
|
211
|
-
}
|
|
212
194
|
showTooltip(datum, options) {
|
|
213
195
|
var _a;
|
|
214
196
|
if (this.tooltipHandler || this._initHandler(), this._processor || this._initProcessor(),
|
|
@@ -243,7 +225,9 @@ export class Tooltip extends BaseComponent {
|
|
|
243
225
|
return !isNil(prevParams) && !isNil(nextParams) && (prevParams.mark === nextParams.mark && prevParams.model === nextParams.model && prevParams.datum === nextParams.datum);
|
|
244
226
|
}
|
|
245
227
|
_isPointerInChart(point) {
|
|
246
|
-
|
|
228
|
+
var _a;
|
|
229
|
+
const globalInstance = null === (_a = this._option) || void 0 === _a ? void 0 : _a.globalInstance;
|
|
230
|
+
if (!globalInstance) return !1;
|
|
247
231
|
if (!globalInstance.getChart()) return !1;
|
|
248
232
|
const {x: x, y: y} = point, canvas = globalInstance.getCanvas(), {x: chartX, y: chartY, width: chartWidth, height: chartHeight} = canvas.getBoundingClientRect();
|
|
249
233
|
return x >= chartX && x <= chartX + chartWidth && y >= chartY && y <= chartY + chartHeight;
|