@visactor/vchart 0.0.1-alpha.0 → 0.0.1-alpha.2
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/README.md +6 -0
- package/build/index.js +14321 -14669
- package/build/index.min.js +2 -2
- package/cjs/animation/animate-manager.js.map +1 -1
- package/cjs/animation/config.js.map +1 -1
- package/cjs/animation/interface.js +2 -1
- package/cjs/animation/interface.js.map +1 -1
- package/cjs/animation/spec.d.ts +2 -2
- package/cjs/animation/spec.js.map +1 -1
- package/cjs/animation/utils.d.ts +4 -3
- package/cjs/animation/utils.js +8 -3
- package/cjs/animation/utils.js.map +1 -1
- package/cjs/chart/area/area.js.map +1 -1
- package/cjs/chart/area/index.js.map +1 -1
- package/cjs/chart/area/interface.js.map +1 -1
- package/cjs/chart/bar/bar.js.map +1 -1
- package/cjs/chart/bar/index.js.map +1 -1
- package/cjs/chart/bar/interface.js.map +1 -1
- package/cjs/chart/base-chart.js +3 -1
- package/cjs/chart/base-chart.js.map +1 -1
- package/cjs/chart/boxplot/boxPlot.js.map +1 -1
- package/cjs/chart/boxplot/index.js.map +1 -1
- package/cjs/chart/boxplot/interface.js.map +1 -1
- package/cjs/chart/cartesian/cartesian.js +7 -2
- package/cjs/chart/cartesian/cartesian.js.map +1 -1
- package/cjs/chart/cartesian/interface.js.map +1 -1
- package/cjs/chart/circle-packing/circle-packing.js.map +1 -1
- package/cjs/chart/circle-packing/index.js.map +1 -1
- package/cjs/chart/circle-packing/interface.js.map +1 -1
- package/cjs/chart/common/common.js.map +1 -1
- package/cjs/chart/common/index.js.map +1 -1
- package/cjs/chart/common/interface.js.map +1 -1
- package/cjs/chart/funnel/funnel.js.map +1 -1
- package/cjs/chart/funnel/index.js.map +1 -1
- package/cjs/chart/funnel/interface.js.map +1 -1
- package/cjs/chart/gauge/gauge.js.map +1 -1
- package/cjs/chart/gauge/index.js.map +1 -1
- package/cjs/chart/gauge/interface.js.map +1 -1
- package/cjs/chart/heatmap/heatmap.js +5 -3
- package/cjs/chart/heatmap/heatmap.js.map +1 -1
- package/cjs/chart/heatmap/index.js.map +1 -1
- package/cjs/chart/heatmap/interface.js.map +1 -1
- package/cjs/chart/histogram/histogram.js.map +1 -1
- package/cjs/chart/histogram/index.js.map +1 -1
- package/cjs/chart/histogram/interface.js.map +1 -1
- package/cjs/chart/index.js.map +1 -1
- package/cjs/chart/interface/chart.js.map +1 -1
- package/cjs/chart/interface/common.js.map +1 -1
- package/cjs/chart/interface/index.js.map +1 -1
- package/cjs/chart/interface/type.js.map +1 -1
- package/cjs/chart/line/index.js.map +1 -1
- package/cjs/chart/line/interface.js.map +1 -1
- package/cjs/chart/line/line.js.map +1 -1
- package/cjs/chart/map/index.js.map +1 -1
- package/cjs/chart/map/interface.js.map +1 -1
- package/cjs/chart/map/map.js.map +1 -1
- package/cjs/chart/pie/index.js.map +1 -1
- package/cjs/chart/pie/interface.js.map +1 -1
- package/cjs/chart/pie/pie.d.ts +1 -0
- package/cjs/chart/pie/pie.js +5 -0
- package/cjs/chart/pie/pie.js.map +1 -1
- package/cjs/chart/polar/interface.js.map +1 -1
- package/cjs/chart/polar/polar.js.map +1 -1
- package/cjs/chart/polar/progress-like.js.map +1 -1
- package/cjs/chart/polar/rose-like.js.map +1 -1
- package/cjs/chart/progress/circular/circular.js.map +1 -1
- package/cjs/chart/progress/circular/index.js.map +1 -1
- package/cjs/chart/progress/circular/interface.js.map +1 -1
- package/cjs/chart/progress/interface.js.map +1 -1
- package/cjs/chart/progress/linear/index.js.map +1 -1
- package/cjs/chart/progress/linear/interface.js.map +1 -1
- package/cjs/chart/progress/linear/linear.js.map +1 -1
- package/cjs/chart/radar/index.js.map +1 -1
- package/cjs/chart/radar/interface.js.map +1 -1
- package/cjs/chart/radar/radar.js.map +1 -1
- package/cjs/chart/range-area/index.js.map +1 -1
- package/cjs/chart/range-area/interface.js.map +1 -1
- package/cjs/chart/range-area/range-area.js.map +1 -1
- package/cjs/chart/range-column/index.js.map +1 -1
- package/cjs/chart/range-column/interface.js.map +1 -1
- package/cjs/chart/range-column/rangeColumn.js.map +1 -1
- package/cjs/chart/rose/index.js.map +1 -1
- package/cjs/chart/rose/interface.js.map +1 -1
- package/cjs/chart/rose/rose.js.map +1 -1
- package/cjs/chart/sankey/index.js.map +1 -1
- package/cjs/chart/sankey/interface.js.map +1 -1
- package/cjs/chart/sankey/sankey.js.map +1 -1
- package/cjs/chart/scatter/index.js.map +1 -1
- package/cjs/chart/scatter/interface.js.map +1 -1
- package/cjs/chart/scatter/scatter.js.map +1 -1
- package/cjs/chart/sequence/index.js.map +1 -1
- package/cjs/chart/sequence/interface.js.map +1 -1
- package/cjs/chart/sequence/sequence.js.map +1 -1
- package/cjs/chart/stack.js.map +1 -1
- package/cjs/chart/sunburst/index.js.map +1 -1
- package/cjs/chart/sunburst/interface.js.map +1 -1
- package/cjs/chart/sunburst/sunburst.js.map +1 -1
- package/cjs/chart/treemap/index.js.map +1 -1
- package/cjs/chart/treemap/interface.js.map +1 -1
- package/cjs/chart/treemap/treemap.js.map +1 -1
- package/cjs/chart/waterfall/index.js.map +1 -1
- package/cjs/chart/waterfall/interface.js.map +1 -1
- package/cjs/chart/waterfall/waterfall.js.map +1 -1
- package/cjs/chart/word-cloud/index.js.map +1 -1
- package/cjs/chart/word-cloud/interface.d.ts +5 -1
- package/cjs/chart/word-cloud/interface.js.map +1 -1
- package/cjs/chart/word-cloud/word-cloud.d.ts +3 -2
- package/cjs/chart/word-cloud/word-cloud.js +42 -15
- package/cjs/chart/word-cloud/word-cloud.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 +3 -2
- package/cjs/compile/compiler.js +12 -9
- package/cjs/compile/compiler.js.map +1 -1
- package/cjs/compile/data/compilable-data.d.ts +1 -1
- package/cjs/compile/data/compilable-data.js.map +1 -1
- package/cjs/compile/data/index.js.map +1 -1
- package/cjs/compile/data/interface.js.map +1 -1
- package/cjs/compile/grammar-item.js +1 -1
- package/cjs/compile/grammar-item.js.map +1 -1
- package/cjs/compile/interface/compilable-item.d.ts +1 -2
- package/cjs/compile/interface/compilable-item.js.map +1 -1
- package/cjs/compile/interface/compiler.d.ts +1 -5
- package/cjs/compile/interface/compiler.js.map +1 -1
- package/cjs/compile/interface/index.js.map +1 -1
- package/cjs/compile/mark/compilable-mark.d.ts +1 -1
- package/cjs/compile/mark/compilable-mark.js +1 -1
- package/cjs/compile/mark/compilable-mark.js.map +1 -1
- package/cjs/compile/mark/index.js.map +1 -1
- package/cjs/compile/mark/interface.d.ts +1 -0
- package/cjs/compile/mark/interface.js.map +1 -1
- package/cjs/compile/mark/mark-data.js.map +1 -1
- package/cjs/compile/mark/mark-state-manager.js.map +1 -1
- package/cjs/compile/mark/util.js.map +1 -1
- package/cjs/compile/signal/compilable-signal.js.map +1 -1
- package/cjs/compile/signal/index.js.map +1 -1
- package/cjs/compile/signal/interface.js.map +1 -1
- package/cjs/compile/signal/signal-manager.js.map +1 -1
- package/cjs/compile/signal/state-manager.d.ts +1 -1
- package/cjs/compile/signal/state-manager.js.map +1 -1
- package/cjs/compile/util.js +1 -1
- package/cjs/compile/util.js.map +1 -1
- package/cjs/component/axis/base-axis.d.ts +0 -1
- package/cjs/component/axis/base-axis.js +2 -11
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/axis.d.ts +11 -0
- package/cjs/component/axis/cartesian/axis.js +64 -16
- package/cjs/component/axis/cartesian/axis.js.map +1 -1
- package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/config.js.map +1 -1
- package/cjs/component/axis/cartesian/index.js.map +1 -1
- package/cjs/component/axis/cartesian/interface/common.d.ts +1 -5
- package/cjs/component/axis/cartesian/interface/common.js.map +1 -1
- package/cjs/component/axis/cartesian/interface/index.js.map +1 -1
- package/cjs/component/axis/cartesian/interface/spec.d.ts +5 -4
- package/cjs/component/axis/cartesian/interface/spec.js.map +1 -1
- package/cjs/component/axis/cartesian/interface/theme.d.ts +10 -13
- package/cjs/component/axis/cartesian/interface/theme.js.map +1 -1
- package/cjs/component/axis/cartesian/linear-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/time-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/util/common.d.ts +4 -4
- package/cjs/component/axis/cartesian/util/common.js +12 -15
- package/cjs/component/axis/cartesian/util/common.js.map +1 -1
- package/cjs/component/axis/cartesian/util/index.js.map +1 -1
- package/cjs/component/axis/cartesian/util/time.js.map +1 -1
- package/cjs/component/axis/index.js.map +1 -1
- package/cjs/component/axis/interface.d.ts +10 -17
- package/cjs/component/axis/interface.js.map +1 -1
- package/cjs/component/axis/mixin/band-axis-mixin.js.map +1 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/cjs/component/axis/polar/axis.js.map +1 -1
- package/cjs/component/axis/polar/band-axis.js.map +1 -1
- package/cjs/component/axis/polar/config.js.map +1 -1
- package/cjs/component/axis/polar/index.js.map +1 -1
- package/cjs/component/axis/polar/interface/common.d.ts +1 -4
- package/cjs/component/axis/polar/interface/common.js.map +1 -1
- package/cjs/component/axis/polar/interface/index.js.map +1 -1
- package/cjs/component/axis/polar/interface/spec.js.map +1 -1
- package/cjs/component/axis/polar/interface/theme.d.ts +9 -12
- package/cjs/component/axis/polar/interface/theme.js.map +1 -1
- package/cjs/component/axis/polar/linear-axis.js.map +1 -1
- package/cjs/component/axis/utils.d.ts +5 -1
- package/cjs/component/axis/utils.js +20 -4
- package/cjs/component/axis/utils.js.map +1 -1
- package/cjs/component/base/base-component.js.map +1 -1
- package/cjs/component/base/index.js.map +1 -1
- package/cjs/component/base/util.js +3 -4
- package/cjs/component/base/util.js.map +1 -1
- package/cjs/component/brush/brush.d.ts +0 -1
- package/cjs/component/brush/brush.js +7 -10
- package/cjs/component/brush/brush.js.map +1 -1
- package/cjs/component/brush/index.js.map +1 -1
- package/cjs/component/brush/interface.d.ts +10 -8
- package/cjs/component/brush/interface.js.map +1 -1
- package/cjs/component/common/trigger/config.js.map +1 -1
- package/cjs/component/common/trigger/desktop.js.map +1 -1
- package/cjs/component/common/trigger/interface.js.map +1 -1
- package/cjs/component/common/trigger/mobile.js.map +1 -1
- package/cjs/component/crosshair/base.d.ts +0 -1
- package/cjs/component/crosshair/base.js +7 -15
- package/cjs/component/crosshair/base.js.map +1 -1
- package/cjs/component/crosshair/cartesian.js.map +1 -1
- package/cjs/component/crosshair/config.d.ts +0 -2
- package/cjs/component/crosshair/config.js +2 -4
- package/cjs/component/crosshair/config.js.map +1 -1
- package/cjs/component/crosshair/index.js.map +1 -1
- package/cjs/component/crosshair/interface/index.js.map +1 -1
- package/cjs/component/crosshair/interface/spec.d.ts +3 -3
- package/cjs/component/crosshair/interface/spec.js.map +1 -1
- package/cjs/component/crosshair/interface/theme.d.ts +2 -4
- package/cjs/component/crosshair/interface/theme.js.map +1 -1
- package/cjs/component/crosshair/polar.js.map +1 -1
- package/cjs/component/crosshair/util.d.ts +0 -4
- package/cjs/component/crosshair/util.js +3 -12
- package/cjs/component/crosshair/util.js.map +1 -1
- package/cjs/component/custom-mark/custom-mark.js.map +1 -1
- package/cjs/component/custom-mark/index.js.map +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.d.ts +1 -1
- 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 -1
- package/cjs/component/data-zoom/data-zoom/data-zoom.js +3 -4
- package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/cjs/component/data-zoom/data-zoom/index.js.map +1 -1
- package/cjs/component/data-zoom/data-zoom/interface.d.ts +5 -1
- package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
- package/cjs/component/data-zoom/index.js.map +1 -1
- package/cjs/component/data-zoom/interface.js.map +1 -1
- package/cjs/component/data-zoom/scroll-bar/index.js.map +1 -1
- package/cjs/component/data-zoom/scroll-bar/interface.d.ts +7 -1
- package/cjs/component/data-zoom/scroll-bar/interface.js.map +1 -1
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +1 -1
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +2 -2
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
- package/cjs/component/data-zoom/util.js.map +1 -1
- package/cjs/component/geo/geo-coordinate.js.map +1 -1
- package/cjs/component/geo/interface.js.map +1 -1
- package/cjs/component/geo/projection.js.map +1 -1
- package/cjs/component/index.js +1 -1
- package/cjs/component/index.js.map +1 -1
- package/cjs/component/indicator/indicator.d.ts +0 -1
- package/cjs/component/indicator/indicator.js +3 -12
- package/cjs/component/indicator/indicator.js.map +1 -1
- package/cjs/component/indicator/interface.d.ts +1 -5
- package/cjs/component/indicator/interface.js.map +1 -1
- package/cjs/component/indicator/util.js +2 -2
- package/cjs/component/indicator/util.js.map +1 -1
- package/cjs/component/interface/common.js.map +1 -1
- package/cjs/component/interface/index.js.map +1 -1
- package/cjs/component/interface/tooltip-helper.js.map +1 -1
- package/cjs/component/interface/type.js.map +1 -1
- package/cjs/component/label/bar.d.ts +1 -3
- package/cjs/component/label/bar.js +2 -4
- package/cjs/component/label/bar.js.map +1 -1
- package/cjs/component/label/index.js.map +1 -1
- package/cjs/component/label/interface.d.ts +2 -2
- package/cjs/component/label/interface.js.map +1 -1
- package/cjs/component/label/label.d.ts +56 -0
- package/cjs/component/label/label.js +4 -2
- package/cjs/component/label/label.js.map +1 -1
- package/cjs/component/label/symbol.js.map +1 -1
- package/cjs/component/label/util.js +1 -7
- package/cjs/component/label/util.js.map +1 -1
- package/cjs/component/legend/base-legend.d.ts +0 -1
- package/cjs/component/legend/base-legend.js +2 -4
- package/cjs/component/legend/base-legend.js.map +1 -1
- package/cjs/component/legend/continuous/index.js.map +1 -1
- package/cjs/component/legend/continuous/interface.d.ts +1 -6
- package/cjs/component/legend/continuous/interface.js.map +1 -1
- package/cjs/component/legend/continuous/legend.js +1 -1
- package/cjs/component/legend/continuous/legend.js.map +1 -1
- package/cjs/component/legend/continuous/util.js.map +1 -1
- package/cjs/component/legend/discrete/index.js.map +1 -1
- package/cjs/component/legend/discrete/interface.d.ts +1 -5
- package/cjs/component/legend/discrete/interface.js.map +1 -1
- package/cjs/component/legend/discrete/legend.js +17 -16
- package/cjs/component/legend/discrete/legend.js.map +1 -1
- package/cjs/component/legend/discrete/util.js.map +1 -1
- package/cjs/component/legend/index.js.map +1 -1
- package/cjs/component/legend/interface.d.ts +1 -1
- package/cjs/component/legend/interface.js.map +1 -1
- package/cjs/component/legend/util.js.map +1 -1
- package/cjs/component/map-label/component.js.map +1 -1
- package/cjs/component/map-label/config.js.map +1 -1
- package/cjs/component/map-label/index.js.map +1 -1
- package/cjs/component/map-label/interface.d.ts +2 -2
- package/cjs/component/map-label/interface.js.map +1 -1
- package/cjs/component/map-label/layout.js.map +1 -1
- package/cjs/component/marker/base-marker.d.ts +0 -1
- package/cjs/component/marker/base-marker.js +0 -3
- package/cjs/component/marker/base-marker.js.map +1 -1
- package/cjs/component/marker/interface.js.map +1 -1
- package/cjs/component/marker/mark-area/interface/index.js.map +1 -1
- package/cjs/component/marker/mark-area/interface/spec.d.ts +2 -1
- package/cjs/component/marker/mark-area/interface/spec.js.map +1 -1
- package/cjs/component/marker/mark-area/interface/theme.d.ts +2 -2
- package/cjs/component/marker/mark-area/interface/theme.js.map +1 -1
- package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
- package/cjs/component/marker/mark-line/interface/index.js.map +1 -1
- package/cjs/component/marker/mark-line/interface/spec.d.ts +2 -1
- package/cjs/component/marker/mark-line/interface/spec.js.map +1 -1
- package/cjs/component/marker/mark-line/interface/theme.js.map +1 -1
- package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
- package/cjs/component/marker/mark-point/interface/index.js.map +1 -1
- package/cjs/component/marker/mark-point/interface/spec.d.ts +2 -1
- package/cjs/component/marker/mark-point/interface/spec.js.map +1 -1
- package/cjs/component/marker/mark-point/interface/theme.js.map +1 -1
- package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
- package/cjs/component/marker/utils.js.map +1 -1
- package/cjs/component/player/index.js.map +1 -1
- package/cjs/component/player/interface/index.js.map +1 -1
- package/cjs/component/player/interface/spec.js.map +1 -1
- package/cjs/component/player/interface/theme.js.map +1 -1
- package/cjs/component/player/player.d.ts +0 -1
- package/cjs/component/player/player.js +1 -4
- package/cjs/component/player/player.js.map +1 -1
- package/cjs/component/player/utils/index.js.map +1 -1
- package/cjs/component/player/utils/orient.js.map +1 -1
- package/cjs/component/player/utils/transform.js.map +1 -1
- package/cjs/component/title/index.js.map +1 -1
- package/cjs/component/title/interface/index.js.map +1 -1
- package/cjs/component/title/interface/spec.d.ts +0 -4
- package/cjs/component/title/interface/spec.js.map +1 -1
- package/cjs/component/title/interface/theme.d.ts +2 -2
- package/cjs/component/title/interface/theme.js.map +1 -1
- package/cjs/component/title/title.d.ts +0 -1
- package/cjs/component/title/title.js +3 -10
- package/cjs/component/title/title.js.map +1 -1
- package/cjs/component/title/utils.d.ts +0 -1
- package/cjs/component/title/utils.js +2 -9
- package/cjs/component/title/utils.js.map +1 -1
- package/cjs/component/tooltip/handler/base.d.ts +5 -3
- package/cjs/component/tooltip/handler/base.js +11 -12
- package/cjs/component/tooltip/handler/base.js.map +1 -1
- package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.d.ts +1 -0
- package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.js +4 -3
- package/cjs/component/tooltip/handler/canvas/canvas-tooltip-handler.js.map +1 -1
- package/cjs/component/tooltip/handler/canvas/index.js.map +1 -1
- package/cjs/component/tooltip/handler/constants.d.ts +4 -0
- package/cjs/component/tooltip/handler/constants.js +7 -2
- package/cjs/component/tooltip/handler/constants.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.d.ts +2 -1
- package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js +3 -2
- package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/index.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/interface.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/model/base-tooltip-model.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/model/content-column-model.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/model/content-model.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/model/interface.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/model/shape-model.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/model/style-constants.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/model/text-model.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/model/title-model.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/model/tooltip-model.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/utils/style.js +3 -3
- package/cjs/component/tooltip/handler/dom/utils/style.js.map +1 -1
- package/cjs/component/tooltip/handler/index.js.map +1 -1
- package/cjs/component/tooltip/handler/interface/cache.js.map +1 -1
- package/cjs/component/tooltip/handler/interface/index.js.map +1 -1
- package/cjs/component/tooltip/handler/interface/style.js.map +1 -1
- package/cjs/component/tooltip/handler/utils/attribute.js +4 -5
- package/cjs/component/tooltip/handler/utils/attribute.js.map +1 -1
- package/cjs/component/tooltip/handler/utils/common.js.map +1 -1
- package/cjs/component/tooltip/handler/utils/compose.js.map +1 -1
- package/cjs/component/tooltip/handler/utils/get-spec.js.map +1 -1
- package/cjs/component/tooltip/handler/utils/index.js.map +1 -1
- package/cjs/component/tooltip/handler/utils/pattern.js.map +1 -1
- package/cjs/component/tooltip/handler/utils/position.js.map +1 -1
- package/cjs/component/tooltip/handler/utils/style.d.ts +1 -1
- package/cjs/component/tooltip/handler/utils/style.js +11 -7
- package/cjs/component/tooltip/handler/utils/style.js.map +1 -1
- package/cjs/component/tooltip/index.js.map +1 -1
- package/cjs/component/tooltip/interface/common.js.map +1 -1
- package/cjs/component/tooltip/interface/index.js.map +1 -1
- package/cjs/component/tooltip/interface/spec.d.ts +5 -6
- package/cjs/component/tooltip/interface/spec.js.map +1 -1
- package/cjs/component/tooltip/interface/theme.d.ts +6 -0
- package/cjs/component/tooltip/interface/theme.js.map +1 -1
- package/cjs/component/tooltip/processor/base.d.ts +2 -4
- package/cjs/component/tooltip/processor/base.js +5 -5
- 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/index.js.map +1 -1
- package/cjs/component/tooltip/processor/interface.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/processor/util.js.map +1 -1
- package/cjs/component/tooltip/tooltip.js +7 -8
- package/cjs/component/tooltip/tooltip.js.map +1 -1
- package/cjs/component/tooltip/utils/common.js.map +1 -1
- package/cjs/component/tooltip/utils/index.js.map +1 -1
- package/cjs/component/tooltip/utils/show-tooltip.js.map +1 -1
- package/cjs/constant/base.d.ts +1 -1
- package/cjs/constant/base.js +1 -1
- package/cjs/constant/base.js.map +1 -1
- package/cjs/constant/box-plot.js.map +1 -1
- package/cjs/constant/event.js.map +1 -1
- package/cjs/constant/funnel.js.map +1 -1
- package/cjs/constant/hierarchy.js.map +1 -1
- package/cjs/constant/index.js.map +1 -1
- package/cjs/constant/label.js +1 -2
- package/cjs/constant/label.js.map +1 -1
- package/cjs/constant/layout.js.map +1 -1
- package/cjs/constant/marker.js.map +1 -1
- package/cjs/constant/polar.js +2 -1
- package/cjs/constant/polar.js.map +1 -1
- package/cjs/constant/scatter.js.map +1 -1
- package/cjs/constant/scroll-bar.js.map +1 -1
- package/cjs/constant/sunburst.js.map +1 -1
- package/cjs/constant/waterfall.js.map +1 -1
- package/cjs/constant/word-cloud.js.map +1 -1
- package/cjs/core/factory.js.map +1 -1
- package/cjs/core/interface.js.map +1 -1
- package/cjs/core/vchart.d.ts +1 -0
- package/cjs/core/vchart.js +13 -8
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/data/initialize.js.map +1 -1
- package/cjs/data/parser/array.js.map +1 -1
- package/cjs/data/parser/scale.js.map +1 -1
- package/cjs/data/register.js.map +1 -1
- package/cjs/data/transforms/add-property.d.ts +5 -5
- package/cjs/data/transforms/add-property.js +3 -3
- package/cjs/data/transforms/add-property.js.map +1 -1
- package/cjs/data/transforms/aggregation.js.map +1 -1
- package/cjs/data/transforms/box-plot.js.map +1 -1
- package/cjs/data/transforms/circle-packing.js.map +1 -1
- package/cjs/data/transforms/copy-data-view.js.map +1 -1
- package/cjs/data/transforms/data-key.d.ts +3 -3
- package/cjs/data/transforms/data-key.js.map +1 -1
- package/cjs/data/transforms/dimension-data.js.map +1 -1
- package/cjs/data/transforms/dimension-statistics.js.map +1 -1
- package/cjs/data/transforms/drill.js.map +1 -1
- package/cjs/data/transforms/flatten.js.map +1 -1
- package/cjs/data/transforms/funnel.js.map +1 -1
- package/cjs/data/transforms/hierarchy-dimension-statistics.js.map +1 -1
- package/cjs/data/transforms/invalid-travel.js.map +1 -1
- package/cjs/data/transforms/legend-data/continuous/continuous.js.map +1 -1
- package/cjs/data/transforms/legend-data/continuous/index.js.map +1 -1
- package/cjs/data/transforms/legend-data/continuous/interface.js.map +1 -1
- package/cjs/data/transforms/legend-data/discrete/discrete.js.map +1 -1
- package/cjs/data/transforms/legend-data/discrete/index.js.map +1 -1
- package/cjs/data/transforms/legend-data/discrete/interface.js.map +1 -1
- package/cjs/data/transforms/lookup.js.map +1 -1
- package/cjs/data/transforms/map.js.map +1 -1
- package/cjs/data/transforms/obj-flat.js.map +1 -1
- package/cjs/data/transforms/pie.js.map +1 -1
- package/cjs/data/transforms/regression.js.map +1 -1
- package/cjs/data/transforms/sankey-links.js.map +1 -1
- package/cjs/data/transforms/sankey-nodes.js.map +1 -1
- package/cjs/data/transforms/sankey.js.map +1 -1
- package/cjs/data/transforms/stack-split.js.map +1 -1
- package/cjs/data/transforms/sunburst.js.map +1 -1
- package/cjs/data/transforms/tick-data/config.js.map +1 -1
- package/cjs/data/transforms/tick-data/continuous.js.map +1 -1
- package/cjs/data/transforms/tick-data/discrete/linear.js.map +1 -1
- package/cjs/data/transforms/tick-data/discrete/polar-angle.js.map +1 -1
- package/cjs/data/transforms/tick-data/index.js.map +1 -1
- package/cjs/data/transforms/tick-data/interface.js.map +1 -1
- package/cjs/data/transforms/tick-data/util.js.map +1 -1
- package/cjs/data/transforms/treemap.js.map +1 -1
- package/cjs/data/transforms/waterfall.js.map +1 -1
- package/cjs/event/bubble.js.map +1 -1
- package/cjs/event/event-dispatcher.js.map +1 -1
- package/cjs/event/event.js +1 -2
- package/cjs/event/event.js.map +1 -1
- package/cjs/event/events/dimension/base.js.map +1 -1
- package/cjs/event/events/dimension/dimension-click.js.map +1 -1
- package/cjs/event/events/dimension/dimension-hover.js.map +1 -1
- package/cjs/event/events/dimension/index.js.map +1 -1
- package/cjs/event/events/dimension/interface.js.map +1 -1
- package/cjs/event/events/dimension/util/cartesian.js.map +1 -1
- package/cjs/event/events/dimension/util/common.js.map +1 -1
- package/cjs/event/events/dimension/util/index.js.map +1 -1
- package/cjs/event/events/dimension/util/polar.js.map +1 -1
- package/cjs/event/events/index.js.map +1 -1
- package/cjs/event/interface.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/interaction/config.js.map +1 -1
- package/cjs/interaction/dimension-trigger.js.map +1 -1
- package/cjs/interaction/drill/drillable.js.map +1 -1
- package/cjs/interaction/drill/index.js.map +1 -1
- package/cjs/interaction/interaction.js.map +1 -1
- package/cjs/interaction/interface.js.map +1 -1
- package/cjs/interaction/trigger.js.map +1 -1
- package/cjs/interaction/zoom/index.js.map +1 -1
- package/cjs/interaction/zoom/zoomable.js.map +1 -1
- package/cjs/layout/grid-layout/grid-layout.js.map +1 -1
- package/cjs/layout/index.d.ts +13 -10
- package/cjs/layout/index.js.map +1 -1
- package/cjs/layout/interface.js.map +1 -1
- package/cjs/layout/label/arc-label.js.map +1 -1
- package/cjs/layout/layout3d/index.d.ts +23 -0
- package/cjs/layout/layout3d/index.js +131 -0
- package/cjs/layout/layout3d/index.js.map +1 -0
- package/cjs/mark/arc.js +1 -1
- package/cjs/mark/arc.js.map +1 -1
- package/cjs/mark/area.js +1 -1
- package/cjs/mark/area.js.map +1 -1
- package/cjs/mark/base/base-line.js.map +1 -1
- package/cjs/mark/base/base-mark.js.map +1 -1
- package/cjs/mark/base/index.js.map +1 -1
- package/cjs/mark/boxPlot.js +2 -2
- package/cjs/mark/boxPlot.js.map +1 -1
- package/cjs/mark/cell.js +1 -1
- package/cjs/mark/cell.js.map +1 -1
- package/cjs/mark/component.d.ts +1 -0
- package/cjs/mark/component.js +5 -3
- package/cjs/mark/component.js.map +1 -1
- package/cjs/mark/group.js +1 -1
- package/cjs/mark/group.js.map +1 -1
- package/cjs/mark/interface/common.js.map +1 -1
- package/cjs/mark/interface/index.js.map +1 -1
- package/cjs/mark/interface/type.js.map +1 -1
- package/cjs/mark/line.js +1 -1
- package/cjs/mark/line.js.map +1 -1
- package/cjs/mark/linkPath.js +1 -2
- package/cjs/mark/linkPath.js.map +1 -1
- package/cjs/mark/mark-set/index.js.map +1 -1
- package/cjs/mark/path.js +1 -1
- package/cjs/mark/path.js.map +1 -1
- package/cjs/mark/polygon.js +1 -1
- package/cjs/mark/polygon.js.map +1 -1
- package/cjs/mark/progress-arc.js +1 -1
- package/cjs/mark/progress-arc.js.map +1 -1
- package/cjs/mark/rect.js +1 -1
- package/cjs/mark/rect.js.map +1 -1
- package/cjs/mark/rule.js +1 -1
- package/cjs/mark/rule.js.map +1 -1
- package/cjs/mark/symbol.js +1 -1
- package/cjs/mark/symbol.js.map +1 -1
- package/cjs/mark/text.js +1 -1
- package/cjs/mark/text.js.map +1 -1
- package/cjs/mark/utils/common.js.map +1 -1
- package/cjs/mark/utils/index.js.map +1 -1
- package/cjs/model/base-model.d.ts +1 -1
- package/cjs/model/base-model.js +1 -1
- package/cjs/model/base-model.js.map +1 -1
- package/cjs/model/interface.d.ts +1 -0
- package/cjs/model/interface.js +1 -1
- package/cjs/model/interface.js.map +1 -1
- package/cjs/model/layout-item.js +1 -1
- package/cjs/model/layout-item.js.map +1 -1
- package/cjs/model/model-state-manager.js +2 -1
- package/cjs/model/model-state-manager.js.map +1 -1
- package/cjs/model/tooltip-helper.js +1 -1
- package/cjs/model/tooltip-helper.js.map +1 -1
- package/cjs/plugin/chart/interface.js.map +1 -1
- package/cjs/plugin/components/axis-label-overlap-plugin.js.map +1 -1
- package/cjs/plugin/components/basic-plugin.js.map +1 -1
- package/cjs/plugin/components/index.js.map +1 -1
- package/cjs/plugin/components/interface.js.map +1 -1
- package/cjs/plugin/components/plugin-service.js.map +1 -1
- package/cjs/plugin/interface.js +1 -1
- package/cjs/plugin/interface.js.map +1 -1
- package/cjs/plugin/series/interface.js.map +1 -1
- package/cjs/region/interface.js +1 -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/scale/global-scale.js +1 -1
- package/cjs/scale/global-scale.js.map +1 -1
- package/cjs/scale/interface.js +1 -1
- package/cjs/scale/interface.js.map +1 -1
- package/cjs/series/area/animation.js.map +1 -1
- package/cjs/series/area/area.js +3 -1
- package/cjs/series/area/area.js.map +1 -1
- package/cjs/series/area/interface.js.map +1 -1
- package/cjs/series/bar/animation.js.map +1 -1
- package/cjs/series/bar/bar.js +6 -5
- package/cjs/series/bar/bar.js.map +1 -1
- package/cjs/series/bar/interface.d.ts +3 -0
- package/cjs/series/bar/interface.js.map +1 -1
- package/cjs/series/base/base-series.d.ts +2 -2
- package/cjs/series/base/base-series.js +7 -9
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/base/group.js.map +1 -1
- package/cjs/series/base/series-data.js.map +1 -1
- package/cjs/series/base/tooltip-helper.js.map +1 -1
- package/cjs/series/box-plot/boxPlot.d.ts +1 -1
- package/cjs/series/box-plot/boxPlot.js +9 -10
- package/cjs/series/box-plot/boxPlot.js.map +1 -1
- package/cjs/series/box-plot/interface.js.map +1 -1
- package/cjs/series/box-plot/tooltip-helper.js.map +1 -1
- package/cjs/series/cartesian/cartesian.d.ts +11 -0
- package/cjs/series/cartesian/cartesian.js +37 -2
- package/cjs/series/cartesian/cartesian.js.map +1 -1
- package/cjs/series/cartesian/interface.d.ts +1 -2
- package/cjs/series/cartesian/interface.js.map +1 -1
- package/cjs/series/circle-packing/animation.js.map +1 -1
- package/cjs/series/circle-packing/circle-packing.js +2 -2
- package/cjs/series/circle-packing/circle-packing.js.map +1 -1
- package/cjs/series/circle-packing/interface.js.map +1 -1
- package/cjs/series/circle-packing/tooltip-helper.js.map +1 -1
- package/cjs/series/dot/config.js.map +1 -1
- package/cjs/series/dot/dot.js +6 -8
- package/cjs/series/dot/dot.js.map +1 -1
- package/cjs/series/dot/interface.d.ts +0 -1
- package/cjs/series/dot/interface.js.map +1 -1
- package/cjs/series/dot/tooltip-helper.js.map +1 -1
- package/cjs/series/funnel/funnel.d.ts +8 -0
- package/cjs/series/funnel/funnel.js +11 -2
- package/cjs/series/funnel/funnel.js.map +1 -1
- package/cjs/series/funnel/interface.js.map +1 -1
- package/cjs/series/funnel/tooltip-helper.js.map +1 -1
- package/cjs/series/gauge/gauge-pointer.js.map +1 -1
- package/cjs/series/gauge/gauge.js.map +1 -1
- package/cjs/series/gauge/index.js.map +1 -1
- package/cjs/series/gauge/interface.js.map +1 -1
- package/cjs/series/geo/geo.d.ts +1 -0
- package/cjs/series/geo/geo.js +3 -0
- package/cjs/series/geo/geo.js.map +1 -1
- package/cjs/series/geo/interface.js.map +1 -1
- package/cjs/series/heatmap/animation.js.map +1 -1
- package/cjs/series/heatmap/heatmap.js +4 -3
- package/cjs/series/heatmap/heatmap.js.map +1 -1
- package/cjs/series/heatmap/interface.js.map +1 -1
- package/cjs/series/heatmap/tooltip-helper.js.map +1 -1
- package/cjs/series/interface/common.d.ts +1 -0
- package/cjs/series/interface/common.js.map +1 -1
- package/cjs/series/interface/index.js.map +1 -1
- package/cjs/series/interface/series.d.ts +7 -0
- package/cjs/series/interface/series.js.map +1 -1
- package/cjs/series/interface/theme.js.map +1 -1
- package/cjs/series/interface/tooltip-helper.js.map +1 -1
- package/cjs/series/interface/type.js.map +1 -1
- package/cjs/series/line/animation.js.map +1 -1
- package/cjs/series/line/interface.js.map +1 -1
- package/cjs/series/line/line.js.map +1 -1
- package/cjs/series/link/interface.d.ts +2 -2
- package/cjs/series/link/interface.js.map +1 -1
- package/cjs/series/link/link.js +3 -3
- package/cjs/series/link/link.js.map +1 -1
- package/cjs/series/link/tooltip-helper.js.map +1 -1
- package/cjs/series/map/geo-source.d.ts +1 -0
- package/cjs/series/map/geo-source.js +7 -3
- package/cjs/series/map/geo-source.js.map +1 -1
- package/cjs/series/map/interface.js.map +1 -1
- package/cjs/series/map/map.js +1 -0
- package/cjs/series/map/map.js.map +1 -1
- package/cjs/series/map/tooltip-helper.js.map +1 -1
- package/cjs/series/mixin/line-mixin.d.ts +0 -1
- package/cjs/series/mixin/line-mixin.js +11 -8
- package/cjs/series/mixin/line-mixin.js.map +1 -1
- package/cjs/series/pie/animation/animation.js.map +1 -1
- package/cjs/series/pie/animation/centerOffset.js.map +1 -1
- package/cjs/series/pie/interface.d.ts +1 -0
- package/cjs/series/pie/interface.js.map +1 -1
- package/cjs/series/pie/pie.d.ts +13 -5
- package/cjs/series/pie/pie.js +34 -25
- package/cjs/series/pie/pie.js.map +1 -1
- package/cjs/series/polar/animation.js.map +1 -1
- package/cjs/series/polar/interface.d.ts +0 -1
- package/cjs/series/polar/interface.js.map +1 -1
- package/cjs/series/polar/polar.d.ts +1 -0
- package/cjs/series/polar/polar.js +3 -0
- package/cjs/series/polar/polar.js.map +1 -1
- package/cjs/series/polar/progress-like/animation.js.map +1 -1
- package/cjs/series/polar/progress-like/index.js.map +1 -1
- package/cjs/series/polar/progress-like/interface.js.map +1 -1
- package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
- package/cjs/series/polar/rose-like/index.js.map +1 -1
- package/cjs/series/polar/rose-like/interface.js.map +1 -1
- package/cjs/series/polar/rose-like/rose-like.js.map +1 -1
- package/cjs/series/progress/circular/circular.js.map +1 -1
- package/cjs/series/progress/circular/index.js.map +1 -1
- package/cjs/series/progress/circular/interface.js.map +1 -1
- package/cjs/series/progress/interface.js.map +1 -1
- package/cjs/series/progress/linear/animation.js.map +1 -1
- package/cjs/series/progress/linear/index.js.map +1 -1
- package/cjs/series/progress/linear/interface.js.map +1 -1
- package/cjs/series/progress/linear/linear.js.map +1 -1
- package/cjs/series/progress/linear/tooltip-helper.js.map +1 -1
- package/cjs/series/radar/animation.js.map +1 -1
- package/cjs/series/radar/interface.d.ts +0 -1
- package/cjs/series/radar/interface.js.map +1 -1
- package/cjs/series/radar/radar.js.map +1 -1
- package/cjs/series/range-area/interface.js.map +1 -1
- package/cjs/series/range-area/range-area.js.map +1 -1
- package/cjs/series/range-area/tooltip-helper.js.map +1 -1
- package/cjs/series/range-column/animation.js.map +1 -1
- package/cjs/series/range-column/interface.d.ts +3 -3
- package/cjs/series/range-column/interface.js.map +1 -1
- package/cjs/series/range-column/rangeColumn.js +14 -12
- package/cjs/series/range-column/rangeColumn.js.map +1 -1
- package/cjs/series/range-column/tooltip-helper.js.map +1 -1
- package/cjs/series/rose/animation.js.map +1 -1
- package/cjs/series/rose/interface.js.map +1 -1
- package/cjs/series/rose/rose.js +1 -0
- package/cjs/series/rose/rose.js.map +1 -1
- package/cjs/series/sankey/animation.js.map +1 -1
- package/cjs/series/sankey/interface.js.map +1 -1
- package/cjs/series/sankey/sankey.js +4 -4
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/cjs/series/sankey/tooltip-helper.js.map +1 -1
- package/cjs/series/scatter/animation.js.map +1 -1
- package/cjs/series/scatter/interface.js.map +1 -1
- package/cjs/series/scatter/scatter.js +7 -4
- package/cjs/series/scatter/scatter.js.map +1 -1
- package/cjs/series/sunburst/animation/enter.js.map +1 -1
- package/cjs/series/sunburst/animation/exit.js.map +1 -1
- package/cjs/series/sunburst/animation/index.js.map +1 -1
- package/cjs/series/sunburst/animation/interface.js.map +1 -1
- package/cjs/series/sunburst/animation/preset.js.map +1 -1
- package/cjs/series/sunburst/animation/utils.js.map +1 -1
- package/cjs/series/sunburst/interface.js.map +1 -1
- package/cjs/series/sunburst/sunburst.js +2 -2
- package/cjs/series/sunburst/sunburst.js.map +1 -1
- package/cjs/series/sunburst/tooltip-helper.js.map +1 -1
- package/cjs/series/treemap/animation.js.map +1 -1
- package/cjs/series/treemap/config.js.map +1 -1
- package/cjs/series/treemap/interface.js.map +1 -1
- package/cjs/series/treemap/tooltip-helper.js.map +1 -1
- package/cjs/series/treemap/treemap.js +2 -2
- package/cjs/series/treemap/treemap.js.map +1 -1
- package/cjs/series/util/label-mark.js.map +1 -1
- package/cjs/series/util/utils.js.map +1 -1
- package/cjs/series/waterfall/animation.js.map +1 -1
- package/cjs/series/waterfall/interface.js.map +1 -1
- package/cjs/series/waterfall/waterfall.js.map +1 -1
- package/cjs/series/word-cloud/animation.js.map +1 -1
- package/cjs/series/word-cloud/config.js.map +1 -1
- package/cjs/series/word-cloud/interface.js.map +1 -1
- package/cjs/series/word-cloud/word-cloud.d.ts +10 -3
- package/cjs/series/word-cloud/word-cloud.js +109 -26
- package/cjs/series/word-cloud/word-cloud.js.map +1 -1
- package/cjs/theme/buildin-theme/config.js +2 -0
- package/cjs/theme/buildin-theme/config.js.map +1 -1
- package/cjs/theme/buildin-theme/dark.js +4 -462
- package/cjs/theme/buildin-theme/dark.js.map +1 -1
- package/cjs/theme/buildin-theme/index.js.map +1 -1
- package/cjs/theme/buildin-theme/light/color-scheme.js.map +1 -1
- package/cjs/theme/buildin-theme/light/component/brush.js +12 -8
- package/cjs/theme/buildin-theme/light/component/brush.js.map +1 -1
- package/cjs/theme/buildin-theme/light/component/cartesian-axis.d.ts +3 -2
- package/cjs/theme/buildin-theme/light/component/cartesian-axis.js +14 -84
- package/cjs/theme/buildin-theme/light/component/cartesian-axis.js.map +1 -1
- package/cjs/theme/buildin-theme/light/component/color-legend.d.ts +2 -36
- package/cjs/theme/buildin-theme/light/component/color-legend.js.map +1 -1
- package/cjs/theme/buildin-theme/light/component/common-axis.d.ts +2 -0
- package/cjs/theme/buildin-theme/light/component/common-axis.js +74 -0
- package/cjs/theme/buildin-theme/light/component/common-axis.js.map +1 -0
- package/cjs/theme/buildin-theme/light/component/crosshair.js +2 -9
- package/cjs/theme/buildin-theme/light/component/crosshair.js.map +1 -1
- package/cjs/theme/buildin-theme/light/component/data-zoom.js +10 -10
- package/cjs/theme/buildin-theme/light/component/data-zoom.js.map +1 -1
- package/cjs/theme/buildin-theme/light/component/discrete-legend.js +3 -6
- package/cjs/theme/buildin-theme/light/component/discrete-legend.js.map +1 -1
- package/cjs/theme/buildin-theme/light/component/indicator.d.ts +2 -0
- package/cjs/{component/indicator/config.js → theme/buildin-theme/light/component/indicator.js} +2 -2
- package/cjs/theme/buildin-theme/light/component/indicator.js.map +1 -0
- package/cjs/theme/buildin-theme/light/component/mark-area.js.map +1 -1
- package/cjs/theme/buildin-theme/light/component/mark-line.js.map +1 -1
- package/cjs/theme/buildin-theme/light/component/mark-point.js +1 -3
- package/cjs/theme/buildin-theme/light/component/mark-point.js.map +1 -1
- package/cjs/theme/buildin-theme/light/component/player.js.map +1 -1
- package/cjs/theme/buildin-theme/light/component/polar-axis.d.ts +3 -2
- package/cjs/theme/buildin-theme/light/component/polar-axis.js +11 -70
- package/cjs/theme/buildin-theme/light/component/polar-axis.js.map +1 -1
- package/cjs/theme/buildin-theme/light/component/size-legend.js.map +1 -1
- package/cjs/theme/buildin-theme/light/component/title.d.ts +2 -0
- package/cjs/theme/buildin-theme/light/component/title.js +13 -0
- package/cjs/theme/buildin-theme/light/component/title.js.map +1 -0
- package/cjs/theme/buildin-theme/light/component/tooltip.js +6 -8
- package/cjs/theme/buildin-theme/light/component/tooltip.js.map +1 -1
- package/cjs/theme/buildin-theme/light/index.js +10 -4
- package/cjs/theme/buildin-theme/light/index.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/area.js +5 -4
- package/cjs/theme/buildin-theme/light/series/area.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/bar.js +0 -3
- package/cjs/theme/buildin-theme/light/series/bar.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/bar3d.js +0 -3
- package/cjs/theme/buildin-theme/light/series/bar3d.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/circle-packing.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/circular-progress.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/dot.js +11 -3
- package/cjs/theme/buildin-theme/light/series/dot.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/funnel.js +0 -3
- package/cjs/theme/buildin-theme/light/series/funnel.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/funnel3d.js +0 -3
- package/cjs/theme/buildin-theme/light/series/funnel3d.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/gauge-pointer.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/gauge.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/heatmap.js +2 -3
- package/cjs/theme/buildin-theme/light/series/heatmap.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/index.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/line.js +5 -4
- package/cjs/theme/buildin-theme/light/series/line.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/linear-progress.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/link.js +5 -3
- package/cjs/theme/buildin-theme/light/series/link.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/map.js +0 -1
- package/cjs/theme/buildin-theme/light/series/map.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/pie.js +0 -2
- package/cjs/theme/buildin-theme/light/series/pie.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/pie3d.js +0 -2
- package/cjs/theme/buildin-theme/light/series/pie3d.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/radar.js +5 -4
- package/cjs/theme/buildin-theme/light/series/radar.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/rangeColumn.js +0 -3
- package/cjs/theme/buildin-theme/light/series/rangeColumn.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/scatter.js +0 -3
- package/cjs/theme/buildin-theme/light/series/scatter.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/sunburst.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/treemap.js +0 -4
- package/cjs/theme/buildin-theme/light/series/treemap.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/waterfall.js +0 -4
- package/cjs/theme/buildin-theme/light/series/waterfall.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/word-cloud.js.map +1 -1
- package/cjs/theme/buildin-theme/light/series/word-cloud3d.js.map +1 -1
- package/cjs/theme/color-scheme/interface.d.ts +1 -1
- package/cjs/theme/color-scheme/interface.js.map +1 -1
- package/cjs/theme/color-scheme/util.js.map +1 -1
- package/cjs/theme/index.js.map +1 -1
- package/cjs/theme/interface.d.ts +13 -5
- package/cjs/theme/interface.js.map +1 -1
- package/cjs/theme/theme-manager.js.map +1 -1
- package/cjs/typings/common.js.map +1 -1
- package/cjs/typings/coordinate.js.map +1 -1
- package/cjs/typings/cursor.js.map +1 -1
- package/cjs/typings/data.js.map +1 -1
- package/cjs/typings/geo.js.map +1 -1
- package/cjs/typings/index.js.map +1 -1
- package/cjs/typings/interpolate.js.map +1 -1
- package/cjs/typings/line-stroke.js.map +1 -1
- package/cjs/typings/params.js.map +1 -1
- package/cjs/typings/scale.js.map +1 -1
- package/cjs/typings/shape.js.map +1 -1
- package/cjs/typings/space.d.ts +1 -1
- package/cjs/typings/space.js.map +1 -1
- package/cjs/typings/spec/chart.js.map +1 -1
- package/cjs/typings/spec/common.d.ts +5 -5
- package/cjs/typings/spec/common.js.map +1 -1
- package/cjs/typings/spec/index.js.map +1 -1
- package/cjs/typings/tooltip/common.js.map +1 -1
- package/cjs/typings/tooltip/handler.js.map +1 -1
- package/cjs/typings/tooltip/index.js.map +1 -1
- package/cjs/typings/tooltip/line.js.map +1 -1
- package/cjs/typings/tooltip/position.js.map +1 -1
- package/cjs/typings/tooltip/shape.js.map +1 -1
- package/cjs/typings/tooltip/tooltip.js.map +1 -1
- package/cjs/typings/visual.d.ts +21 -3
- package/cjs/typings/visual.js.map +1 -1
- package/cjs/util/array.js.map +1 -1
- package/cjs/util/color.js.map +1 -1
- package/cjs/util/data.js +3 -2
- package/cjs/util/data.js.map +1 -1
- package/cjs/util/debug.js.map +1 -1
- package/cjs/util/env.js.map +1 -1
- package/cjs/util/hierarchy.js.map +1 -1
- package/cjs/util/id.js +4 -4
- package/cjs/util/id.js.map +1 -1
- package/cjs/util/image.js.map +1 -1
- package/cjs/util/index.js.map +1 -1
- package/cjs/util/math.js.map +1 -1
- package/cjs/util/model.js.map +1 -1
- package/cjs/util/object.js.map +1 -1
- package/cjs/util/scale.js.map +1 -1
- package/cjs/util/space.js.map +1 -1
- package/cjs/util/spec.js.map +1 -1
- package/cjs/util/style.js +1 -3
- package/cjs/util/style.js.map +1 -1
- package/cjs/util/text.js.map +1 -1
- package/cjs/util/type.js.map +1 -1
- package/cjs/vchart-all.js +2 -2
- package/cjs/vchart-all.js.map +1 -1
- package/esm/animation/animate-manager.js.map +1 -1
- package/esm/animation/config.js.map +1 -1
- package/esm/animation/interface.js +2 -1
- package/esm/animation/interface.js.map +1 -1
- package/esm/animation/spec.d.ts +2 -2
- package/esm/animation/spec.js.map +1 -1
- package/esm/animation/utils.d.ts +4 -3
- package/esm/animation/utils.js +4 -0
- package/esm/animation/utils.js.map +1 -1
- package/esm/chart/area/area.js.map +1 -1
- package/esm/chart/area/index.js.map +1 -1
- package/esm/chart/area/interface.js.map +1 -1
- package/esm/chart/bar/bar.js.map +1 -1
- package/esm/chart/bar/index.js.map +1 -1
- package/esm/chart/bar/interface.js.map +1 -1
- package/esm/chart/base-chart.js +3 -1
- package/esm/chart/base-chart.js.map +1 -1
- package/esm/chart/boxplot/boxPlot.js.map +1 -1
- package/esm/chart/boxplot/index.js.map +1 -1
- package/esm/chart/boxplot/interface.js.map +1 -1
- package/esm/chart/cartesian/cartesian.js +7 -2
- package/esm/chart/cartesian/cartesian.js.map +1 -1
- package/esm/chart/cartesian/interface.js.map +1 -1
- package/esm/chart/circle-packing/circle-packing.js.map +1 -1
- package/esm/chart/circle-packing/index.js.map +1 -1
- package/esm/chart/circle-packing/interface.js.map +1 -1
- package/esm/chart/common/common.js.map +1 -1
- package/esm/chart/common/index.js.map +1 -1
- package/esm/chart/common/interface.js.map +1 -1
- package/esm/chart/funnel/funnel.js.map +1 -1
- package/esm/chart/funnel/index.js.map +1 -1
- package/esm/chart/funnel/interface.js.map +1 -1
- package/esm/chart/gauge/gauge.js.map +1 -1
- package/esm/chart/gauge/index.js.map +1 -1
- package/esm/chart/gauge/interface.js.map +1 -1
- package/esm/chart/heatmap/heatmap.js +4 -3
- package/esm/chart/heatmap/heatmap.js.map +1 -1
- package/esm/chart/heatmap/index.js.map +1 -1
- package/esm/chart/heatmap/interface.js.map +1 -1
- package/esm/chart/histogram/histogram.js.map +1 -1
- package/esm/chart/histogram/index.js.map +1 -1
- package/esm/chart/histogram/interface.js.map +1 -1
- package/esm/chart/index.js.map +1 -1
- package/esm/chart/interface/chart.js.map +1 -1
- package/esm/chart/interface/common.js.map +1 -1
- package/esm/chart/interface/index.js.map +1 -1
- package/esm/chart/interface/type.js.map +1 -1
- package/esm/chart/line/index.js.map +1 -1
- package/esm/chart/line/interface.js.map +1 -1
- package/esm/chart/line/line.js.map +1 -1
- package/esm/chart/map/index.js.map +1 -1
- package/esm/chart/map/interface.js.map +1 -1
- package/esm/chart/map/map.js.map +1 -1
- package/esm/chart/pie/index.js.map +1 -1
- package/esm/chart/pie/interface.js.map +1 -1
- package/esm/chart/pie/pie.d.ts +1 -0
- package/esm/chart/pie/pie.js +5 -0
- package/esm/chart/pie/pie.js.map +1 -1
- package/esm/chart/polar/interface.js.map +1 -1
- package/esm/chart/polar/polar.js.map +1 -1
- package/esm/chart/polar/progress-like.js.map +1 -1
- package/esm/chart/polar/rose-like.js.map +1 -1
- package/esm/chart/progress/circular/circular.js.map +1 -1
- package/esm/chart/progress/circular/index.js.map +1 -1
- package/esm/chart/progress/circular/interface.js.map +1 -1
- package/esm/chart/progress/interface.js.map +1 -1
- package/esm/chart/progress/linear/index.js.map +1 -1
- package/esm/chart/progress/linear/interface.js.map +1 -1
- package/esm/chart/progress/linear/linear.js.map +1 -1
- package/esm/chart/radar/index.js.map +1 -1
- package/esm/chart/radar/interface.js.map +1 -1
- package/esm/chart/radar/radar.js.map +1 -1
- package/esm/chart/range-area/index.js.map +1 -1
- package/esm/chart/range-area/interface.js.map +1 -1
- package/esm/chart/range-area/range-area.js.map +1 -1
- package/esm/chart/range-column/index.js.map +1 -1
- package/esm/chart/range-column/interface.js.map +1 -1
- package/esm/chart/range-column/rangeColumn.js.map +1 -1
- package/esm/chart/rose/index.js.map +1 -1
- package/esm/chart/rose/interface.js.map +1 -1
- package/esm/chart/rose/rose.js.map +1 -1
- package/esm/chart/sankey/index.js.map +1 -1
- package/esm/chart/sankey/interface.js.map +1 -1
- package/esm/chart/sankey/sankey.js.map +1 -1
- package/esm/chart/scatter/index.js.map +1 -1
- package/esm/chart/scatter/interface.js.map +1 -1
- package/esm/chart/scatter/scatter.js.map +1 -1
- package/esm/chart/sequence/index.js.map +1 -1
- package/esm/chart/sequence/interface.js.map +1 -1
- package/esm/chart/sequence/sequence.js.map +1 -1
- package/esm/chart/stack.js.map +1 -1
- package/esm/chart/sunburst/index.js.map +1 -1
- package/esm/chart/sunburst/interface.js.map +1 -1
- package/esm/chart/sunburst/sunburst.js.map +1 -1
- package/esm/chart/treemap/index.js.map +1 -1
- package/esm/chart/treemap/interface.js.map +1 -1
- package/esm/chart/treemap/treemap.js.map +1 -1
- package/esm/chart/waterfall/index.js.map +1 -1
- package/esm/chart/waterfall/interface.js.map +1 -1
- package/esm/chart/waterfall/waterfall.js.map +1 -1
- package/esm/chart/word-cloud/index.js.map +1 -1
- package/esm/chart/word-cloud/interface.d.ts +5 -1
- package/esm/chart/word-cloud/interface.js.map +1 -1
- package/esm/chart/word-cloud/word-cloud.d.ts +3 -2
- package/esm/chart/word-cloud/word-cloud.js +42 -15
- package/esm/chart/word-cloud/word-cloud.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 +3 -2
- package/esm/compile/compiler.js +8 -5
- package/esm/compile/compiler.js.map +1 -1
- package/esm/compile/data/compilable-data.d.ts +1 -1
- package/esm/compile/data/compilable-data.js.map +1 -1
- package/esm/compile/data/index.js.map +1 -1
- package/esm/compile/data/interface.js.map +1 -1
- package/esm/compile/grammar-item.js +1 -1
- package/esm/compile/grammar-item.js.map +1 -1
- package/esm/compile/interface/compilable-item.d.ts +1 -2
- package/esm/compile/interface/compilable-item.js.map +1 -1
- package/esm/compile/interface/compiler.d.ts +1 -5
- package/esm/compile/interface/compiler.js.map +1 -1
- package/esm/compile/interface/index.js.map +1 -1
- package/esm/compile/mark/compilable-mark.d.ts +1 -1
- package/esm/compile/mark/compilable-mark.js +1 -1
- package/esm/compile/mark/compilable-mark.js.map +1 -1
- package/esm/compile/mark/index.js.map +1 -1
- package/esm/compile/mark/interface.d.ts +1 -0
- package/esm/compile/mark/interface.js.map +1 -1
- package/esm/compile/mark/mark-data.js.map +1 -1
- package/esm/compile/mark/mark-state-manager.js.map +1 -1
- package/esm/compile/mark/util.js.map +1 -1
- package/esm/compile/signal/compilable-signal.js.map +1 -1
- package/esm/compile/signal/index.js.map +1 -1
- package/esm/compile/signal/interface.js.map +1 -1
- package/esm/compile/signal/signal-manager.js.map +1 -1
- package/esm/compile/signal/state-manager.d.ts +1 -1
- package/esm/compile/signal/state-manager.js.map +1 -1
- package/esm/compile/util.js +1 -1
- package/esm/compile/util.js.map +1 -1
- package/esm/component/axis/base-axis.d.ts +0 -1
- package/esm/component/axis/base-axis.js +3 -10
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/axis/cartesian/axis.d.ts +11 -0
- package/esm/component/axis/cartesian/axis.js +59 -15
- package/esm/component/axis/cartesian/axis.js.map +1 -1
- package/esm/component/axis/cartesian/band-axis.js.map +1 -1
- package/esm/component/axis/cartesian/config.js.map +1 -1
- package/esm/component/axis/cartesian/index.js.map +1 -1
- package/esm/component/axis/cartesian/interface/common.d.ts +1 -5
- package/esm/component/axis/cartesian/interface/common.js.map +1 -1
- package/esm/component/axis/cartesian/interface/index.js.map +1 -1
- package/esm/component/axis/cartesian/interface/spec.d.ts +5 -4
- package/esm/component/axis/cartesian/interface/spec.js.map +1 -1
- package/esm/component/axis/cartesian/interface/theme.d.ts +10 -13
- package/esm/component/axis/cartesian/interface/theme.js.map +1 -1
- package/esm/component/axis/cartesian/linear-axis.js.map +1 -1
- package/esm/component/axis/cartesian/time-axis.js.map +1 -1
- package/esm/component/axis/cartesian/util/common.d.ts +4 -4
- package/esm/component/axis/cartesian/util/common.js +10 -11
- package/esm/component/axis/cartesian/util/common.js.map +1 -1
- package/esm/component/axis/cartesian/util/index.js.map +1 -1
- package/esm/component/axis/cartesian/util/time.js.map +1 -1
- package/esm/component/axis/index.js.map +1 -1
- package/esm/component/axis/interface.d.ts +10 -17
- package/esm/component/axis/interface.js.map +1 -1
- package/esm/component/axis/mixin/band-axis-mixin.js.map +1 -1
- package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/esm/component/axis/polar/axis.js.map +1 -1
- package/esm/component/axis/polar/band-axis.js.map +1 -1
- package/esm/component/axis/polar/config.js.map +1 -1
- package/esm/component/axis/polar/index.js.map +1 -1
- package/esm/component/axis/polar/interface/common.d.ts +1 -4
- package/esm/component/axis/polar/interface/common.js.map +1 -1
- package/esm/component/axis/polar/interface/index.js.map +1 -1
- package/esm/component/axis/polar/interface/spec.js.map +1 -1
- package/esm/component/axis/polar/interface/theme.d.ts +9 -12
- package/esm/component/axis/polar/interface/theme.js.map +1 -1
- package/esm/component/axis/polar/linear-axis.js.map +1 -1
- package/esm/component/axis/utils.d.ts +5 -1
- package/esm/component/axis/utils.js +17 -4
- package/esm/component/axis/utils.js.map +1 -1
- package/esm/component/base/base-component.js.map +1 -1
- package/esm/component/base/index.js.map +1 -1
- package/esm/component/base/util.js +5 -4
- package/esm/component/base/util.js.map +1 -1
- package/esm/component/brush/brush.d.ts +0 -1
- package/esm/component/brush/brush.js +7 -12
- package/esm/component/brush/brush.js.map +1 -1
- package/esm/component/brush/index.js.map +1 -1
- package/esm/component/brush/interface.d.ts +10 -8
- package/esm/component/brush/interface.js.map +1 -1
- package/esm/component/common/trigger/config.js.map +1 -1
- package/esm/component/common/trigger/desktop.js.map +1 -1
- package/esm/component/common/trigger/interface.js.map +1 -1
- package/esm/component/common/trigger/mobile.js.map +1 -1
- package/esm/component/crosshair/base.d.ts +0 -1
- package/esm/component/crosshair/base.js +9 -17
- package/esm/component/crosshair/base.js.map +1 -1
- package/esm/component/crosshair/cartesian.js.map +1 -1
- package/esm/component/crosshair/config.d.ts +0 -2
- package/esm/component/crosshair/config.js +0 -4
- package/esm/component/crosshair/config.js.map +1 -1
- package/esm/component/crosshair/index.js.map +1 -1
- package/esm/component/crosshair/interface/index.js.map +1 -1
- package/esm/component/crosshair/interface/spec.d.ts +3 -3
- package/esm/component/crosshair/interface/spec.js.map +1 -1
- package/esm/component/crosshair/interface/theme.d.ts +2 -4
- package/esm/component/crosshair/interface/theme.js.map +1 -1
- package/esm/component/crosshair/polar.js.map +1 -1
- package/esm/component/crosshair/util.d.ts +0 -4
- package/esm/component/crosshair/util.js +0 -8
- package/esm/component/crosshair/util.js.map +1 -1
- package/esm/component/custom-mark/custom-mark.js.map +1 -1
- package/esm/component/custom-mark/index.js.map +1 -1
- package/esm/component/data-zoom/data-filter-base-component.d.ts +1 -1
- 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 -1
- package/esm/component/data-zoom/data-zoom/data-zoom.js +3 -4
- package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/esm/component/data-zoom/data-zoom/index.js.map +1 -1
- package/esm/component/data-zoom/data-zoom/interface.d.ts +5 -1
- package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
- package/esm/component/data-zoom/index.js.map +1 -1
- package/esm/component/data-zoom/interface.js.map +1 -1
- package/esm/component/data-zoom/scroll-bar/index.js.map +1 -1
- package/esm/component/data-zoom/scroll-bar/interface.d.ts +7 -1
- package/esm/component/data-zoom/scroll-bar/interface.js.map +1 -1
- package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +1 -1
- package/esm/component/data-zoom/scroll-bar/scroll-bar.js +2 -2
- package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
- package/esm/component/data-zoom/util.js.map +1 -1
- package/esm/component/geo/geo-coordinate.js.map +1 -1
- package/esm/component/geo/interface.js.map +1 -1
- package/esm/component/geo/projection.js.map +1 -1
- package/esm/component/index.js +1 -1
- package/esm/component/index.js.map +1 -1
- package/esm/component/indicator/indicator.d.ts +0 -1
- package/esm/component/indicator/indicator.js +2 -13
- package/esm/component/indicator/indicator.js.map +1 -1
- package/esm/component/indicator/interface.d.ts +1 -5
- package/esm/component/indicator/interface.js.map +1 -1
- package/esm/component/indicator/util.js +3 -1
- package/esm/component/indicator/util.js.map +1 -1
- package/esm/component/interface/common.js.map +1 -1
- package/esm/component/interface/index.js.map +1 -1
- package/esm/component/interface/tooltip-helper.js.map +1 -1
- package/esm/component/interface/type.js.map +1 -1
- package/esm/component/label/bar.d.ts +1 -3
- package/esm/component/label/bar.js +2 -4
- package/esm/component/label/bar.js.map +1 -1
- package/esm/component/label/index.js.map +1 -1
- package/esm/component/label/interface.d.ts +2 -2
- package/esm/component/label/interface.js.map +1 -1
- package/esm/component/label/label.d.ts +56 -0
- package/esm/component/label/label.js +4 -2
- package/esm/component/label/label.js.map +1 -1
- package/esm/component/label/symbol.js.map +1 -1
- package/esm/component/label/util.js +1 -7
- package/esm/component/label/util.js.map +1 -1
- package/esm/component/legend/base-legend.d.ts +0 -1
- package/esm/component/legend/base-legend.js +2 -4
- package/esm/component/legend/base-legend.js.map +1 -1
- package/esm/component/legend/continuous/index.js.map +1 -1
- package/esm/component/legend/continuous/interface.d.ts +1 -6
- package/esm/component/legend/continuous/interface.js.map +1 -1
- package/esm/component/legend/continuous/legend.js +1 -1
- package/esm/component/legend/continuous/legend.js.map +1 -1
- package/esm/component/legend/continuous/util.js.map +1 -1
- package/esm/component/legend/discrete/index.js.map +1 -1
- package/esm/component/legend/discrete/interface.d.ts +1 -5
- package/esm/component/legend/discrete/interface.js.map +1 -1
- package/esm/component/legend/discrete/legend.js +17 -16
- package/esm/component/legend/discrete/legend.js.map +1 -1
- package/esm/component/legend/discrete/util.js.map +1 -1
- package/esm/component/legend/index.js.map +1 -1
- package/esm/component/legend/interface.d.ts +1 -1
- package/esm/component/legend/interface.js.map +1 -1
- package/esm/component/legend/util.js.map +1 -1
- package/esm/component/map-label/component.js.map +1 -1
- package/esm/component/map-label/config.js.map +1 -1
- package/esm/component/map-label/index.js.map +1 -1
- package/esm/component/map-label/interface.d.ts +2 -2
- package/esm/component/map-label/interface.js.map +1 -1
- package/esm/component/map-label/layout.js.map +1 -1
- package/esm/component/marker/base-marker.d.ts +0 -1
- package/esm/component/marker/base-marker.js +1 -4
- package/esm/component/marker/base-marker.js.map +1 -1
- package/esm/component/marker/interface.js.map +1 -1
- package/esm/component/marker/mark-area/interface/index.js.map +1 -1
- package/esm/component/marker/mark-area/interface/spec.d.ts +2 -1
- package/esm/component/marker/mark-area/interface/spec.js.map +1 -1
- package/esm/component/marker/mark-area/interface/theme.d.ts +2 -2
- package/esm/component/marker/mark-area/interface/theme.js.map +1 -1
- package/esm/component/marker/mark-area/mark-area.js.map +1 -1
- package/esm/component/marker/mark-line/interface/index.js.map +1 -1
- package/esm/component/marker/mark-line/interface/spec.d.ts +2 -1
- package/esm/component/marker/mark-line/interface/spec.js.map +1 -1
- package/esm/component/marker/mark-line/interface/theme.js.map +1 -1
- package/esm/component/marker/mark-line/mark-line.js.map +1 -1
- package/esm/component/marker/mark-point/interface/index.js.map +1 -1
- package/esm/component/marker/mark-point/interface/spec.d.ts +2 -1
- package/esm/component/marker/mark-point/interface/spec.js.map +1 -1
- package/esm/component/marker/mark-point/interface/theme.js.map +1 -1
- package/esm/component/marker/mark-point/mark-point.js.map +1 -1
- package/esm/component/marker/utils.js.map +1 -1
- package/esm/component/player/index.js.map +1 -1
- package/esm/component/player/interface/index.js.map +1 -1
- package/esm/component/player/interface/spec.js.map +1 -1
- package/esm/component/player/interface/theme.js.map +1 -1
- package/esm/component/player/player.d.ts +0 -1
- package/esm/component/player/player.js +2 -5
- package/esm/component/player/player.js.map +1 -1
- package/esm/component/player/utils/index.js.map +1 -1
- package/esm/component/player/utils/orient.js.map +1 -1
- package/esm/component/player/utils/transform.js.map +1 -1
- package/esm/component/title/index.js.map +1 -1
- package/esm/component/title/interface/index.js.map +1 -1
- package/esm/component/title/interface/spec.d.ts +0 -4
- package/esm/component/title/interface/spec.js.map +1 -1
- package/esm/component/title/interface/theme.d.ts +2 -2
- package/esm/component/title/interface/theme.js.map +1 -1
- package/esm/component/title/title.d.ts +0 -1
- package/esm/component/title/title.js +3 -12
- package/esm/component/title/title.js.map +1 -1
- package/esm/component/title/utils.d.ts +0 -1
- package/esm/component/title/utils.js +1 -8
- package/esm/component/title/utils.js.map +1 -1
- package/esm/component/tooltip/handler/base.d.ts +5 -3
- package/esm/component/tooltip/handler/base.js +11 -12
- package/esm/component/tooltip/handler/base.js.map +1 -1
- package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.d.ts +1 -0
- package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.js +5 -2
- package/esm/component/tooltip/handler/canvas/canvas-tooltip-handler.js.map +1 -1
- package/esm/component/tooltip/handler/canvas/index.js.map +1 -1
- package/esm/component/tooltip/handler/constants.d.ts +4 -0
- package/esm/component/tooltip/handler/constants.js +6 -0
- package/esm/component/tooltip/handler/constants.js.map +1 -1
- package/esm/component/tooltip/handler/dom/dom-tooltip-handler.d.ts +2 -1
- package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js +4 -3
- package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
- package/esm/component/tooltip/handler/dom/index.js.map +1 -1
- package/esm/component/tooltip/handler/dom/interface.js.map +1 -1
- package/esm/component/tooltip/handler/dom/model/base-tooltip-model.js.map +1 -1
- package/esm/component/tooltip/handler/dom/model/content-column-model.js.map +1 -1
- package/esm/component/tooltip/handler/dom/model/content-model.js.map +1 -1
- package/esm/component/tooltip/handler/dom/model/interface.js.map +1 -1
- package/esm/component/tooltip/handler/dom/model/shape-model.js.map +1 -1
- package/esm/component/tooltip/handler/dom/model/style-constants.js.map +1 -1
- package/esm/component/tooltip/handler/dom/model/text-model.js.map +1 -1
- package/esm/component/tooltip/handler/dom/model/title-model.js.map +1 -1
- package/esm/component/tooltip/handler/dom/model/tooltip-model.js.map +1 -1
- package/esm/component/tooltip/handler/dom/utils/style.js +3 -3
- package/esm/component/tooltip/handler/dom/utils/style.js.map +1 -1
- package/esm/component/tooltip/handler/index.js.map +1 -1
- package/esm/component/tooltip/handler/interface/cache.js.map +1 -1
- package/esm/component/tooltip/handler/interface/index.js.map +1 -1
- package/esm/component/tooltip/handler/interface/style.js.map +1 -1
- package/esm/component/tooltip/handler/utils/attribute.js +4 -5
- package/esm/component/tooltip/handler/utils/attribute.js.map +1 -1
- package/esm/component/tooltip/handler/utils/common.js.map +1 -1
- package/esm/component/tooltip/handler/utils/compose.js.map +1 -1
- package/esm/component/tooltip/handler/utils/get-spec.js.map +1 -1
- package/esm/component/tooltip/handler/utils/index.js.map +1 -1
- package/esm/component/tooltip/handler/utils/pattern.js.map +1 -1
- package/esm/component/tooltip/handler/utils/position.js.map +1 -1
- package/esm/component/tooltip/handler/utils/style.d.ts +1 -1
- package/esm/component/tooltip/handler/utils/style.js +6 -4
- package/esm/component/tooltip/handler/utils/style.js.map +1 -1
- package/esm/component/tooltip/index.js.map +1 -1
- package/esm/component/tooltip/interface/common.js.map +1 -1
- package/esm/component/tooltip/interface/index.js.map +1 -1
- package/esm/component/tooltip/interface/spec.d.ts +5 -6
- package/esm/component/tooltip/interface/spec.js.map +1 -1
- package/esm/component/tooltip/interface/theme.d.ts +6 -0
- package/esm/component/tooltip/interface/theme.js.map +1 -1
- package/esm/component/tooltip/processor/base.d.ts +2 -4
- package/esm/component/tooltip/processor/base.js +4 -4
- package/esm/component/tooltip/processor/base.js.map +1 -1
- package/esm/component/tooltip/processor/dimension-tooltip.js +3 -0
- package/esm/component/tooltip/processor/dimension-tooltip.js.map +1 -1
- package/esm/component/tooltip/processor/index.js.map +1 -1
- package/esm/component/tooltip/processor/interface.js.map +1 -1
- package/esm/component/tooltip/processor/mark-tooltip.js +3 -0
- package/esm/component/tooltip/processor/mark-tooltip.js.map +1 -1
- package/esm/component/tooltip/processor/util.js.map +1 -1
- package/esm/component/tooltip/tooltip.js +6 -9
- package/esm/component/tooltip/tooltip.js.map +1 -1
- package/esm/component/tooltip/utils/common.js.map +1 -1
- package/esm/component/tooltip/utils/index.js.map +1 -1
- package/esm/component/tooltip/utils/show-tooltip.js.map +1 -1
- package/esm/constant/base.d.ts +1 -1
- package/esm/constant/base.js +1 -1
- package/esm/constant/base.js.map +1 -1
- package/esm/constant/box-plot.js.map +1 -1
- package/esm/constant/event.js.map +1 -1
- package/esm/constant/funnel.js.map +1 -1
- package/esm/constant/hierarchy.js.map +1 -1
- package/esm/constant/index.js.map +1 -1
- package/esm/constant/label.js +1 -2
- package/esm/constant/label.js.map +1 -1
- package/esm/constant/layout.js.map +1 -1
- package/esm/constant/marker.js.map +1 -1
- package/esm/constant/polar.js +2 -1
- package/esm/constant/polar.js.map +1 -1
- package/esm/constant/scatter.js.map +1 -1
- package/esm/constant/scroll-bar.js.map +1 -1
- package/esm/constant/sunburst.js.map +1 -1
- package/esm/constant/waterfall.js.map +1 -1
- package/esm/constant/word-cloud.js.map +1 -1
- package/esm/core/factory.js.map +1 -1
- package/esm/core/interface.js.map +1 -1
- package/esm/core/vchart.d.ts +1 -0
- package/esm/core/vchart.js +15 -10
- package/esm/core/vchart.js.map +1 -1
- package/esm/data/initialize.js.map +1 -1
- package/esm/data/parser/array.js.map +1 -1
- package/esm/data/parser/scale.js.map +1 -1
- package/esm/data/register.js.map +1 -1
- package/esm/data/transforms/add-property.d.ts +5 -5
- package/esm/data/transforms/add-property.js +1 -1
- package/esm/data/transforms/add-property.js.map +1 -1
- package/esm/data/transforms/aggregation.js.map +1 -1
- package/esm/data/transforms/box-plot.js.map +1 -1
- package/esm/data/transforms/circle-packing.js.map +1 -1
- package/esm/data/transforms/copy-data-view.js.map +1 -1
- package/esm/data/transforms/data-key.d.ts +3 -3
- package/esm/data/transforms/data-key.js.map +1 -1
- package/esm/data/transforms/dimension-data.js.map +1 -1
- package/esm/data/transforms/dimension-statistics.js.map +1 -1
- package/esm/data/transforms/drill.js.map +1 -1
- package/esm/data/transforms/flatten.js.map +1 -1
- package/esm/data/transforms/funnel.js.map +1 -1
- package/esm/data/transforms/hierarchy-dimension-statistics.js.map +1 -1
- package/esm/data/transforms/invalid-travel.js.map +1 -1
- package/esm/data/transforms/legend-data/continuous/continuous.js.map +1 -1
- package/esm/data/transforms/legend-data/continuous/index.js.map +1 -1
- package/esm/data/transforms/legend-data/continuous/interface.js.map +1 -1
- package/esm/data/transforms/legend-data/discrete/discrete.js.map +1 -1
- package/esm/data/transforms/legend-data/discrete/index.js.map +1 -1
- package/esm/data/transforms/legend-data/discrete/interface.js.map +1 -1
- package/esm/data/transforms/lookup.js.map +1 -1
- package/esm/data/transforms/map.js.map +1 -1
- package/esm/data/transforms/obj-flat.js.map +1 -1
- package/esm/data/transforms/pie.js.map +1 -1
- package/esm/data/transforms/regression.js.map +1 -1
- package/esm/data/transforms/sankey-links.js.map +1 -1
- package/esm/data/transforms/sankey-nodes.js.map +1 -1
- package/esm/data/transforms/sankey.js.map +1 -1
- package/esm/data/transforms/stack-split.js.map +1 -1
- package/esm/data/transforms/sunburst.js.map +1 -1
- package/esm/data/transforms/tick-data/config.js.map +1 -1
- package/esm/data/transforms/tick-data/continuous.js.map +1 -1
- package/esm/data/transforms/tick-data/discrete/linear.js.map +1 -1
- package/esm/data/transforms/tick-data/discrete/polar-angle.js.map +1 -1
- package/esm/data/transforms/tick-data/index.js.map +1 -1
- package/esm/data/transforms/tick-data/interface.js.map +1 -1
- package/esm/data/transforms/tick-data/util.js.map +1 -1
- package/esm/data/transforms/treemap.js.map +1 -1
- package/esm/data/transforms/waterfall.js.map +1 -1
- package/esm/event/bubble.js.map +1 -1
- package/esm/event/event-dispatcher.js.map +1 -1
- package/esm/event/event.js +1 -2
- package/esm/event/event.js.map +1 -1
- package/esm/event/events/dimension/base.js.map +1 -1
- package/esm/event/events/dimension/dimension-click.js.map +1 -1
- package/esm/event/events/dimension/dimension-hover.js.map +1 -1
- package/esm/event/events/dimension/index.js.map +1 -1
- package/esm/event/events/dimension/interface.js.map +1 -1
- package/esm/event/events/dimension/util/cartesian.js.map +1 -1
- package/esm/event/events/dimension/util/common.js.map +1 -1
- package/esm/event/events/dimension/util/index.js.map +1 -1
- package/esm/event/events/dimension/util/polar.js.map +1 -1
- package/esm/event/events/index.js.map +1 -1
- package/esm/event/interface.js.map +1 -1
- package/esm/index.d.ts +1 -1
- package/esm/index.js +1 -1
- package/esm/index.js.map +1 -1
- package/esm/interaction/config.js.map +1 -1
- package/esm/interaction/dimension-trigger.js.map +1 -1
- package/esm/interaction/drill/drillable.js.map +1 -1
- package/esm/interaction/drill/index.js.map +1 -1
- package/esm/interaction/interaction.js.map +1 -1
- package/esm/interaction/interface.js.map +1 -1
- package/esm/interaction/trigger.js.map +1 -1
- package/esm/interaction/zoom/index.js.map +1 -1
- package/esm/interaction/zoom/zoomable.js.map +1 -1
- package/esm/layout/grid-layout/grid-layout.js.map +1 -1
- package/esm/layout/index.d.ts +13 -10
- package/esm/layout/index.js.map +1 -1
- package/esm/layout/interface.js.map +1 -1
- package/esm/layout/label/arc-label.js.map +1 -1
- package/esm/layout/layout3d/index.d.ts +23 -0
- package/esm/layout/layout3d/index.js +123 -0
- package/esm/layout/layout3d/index.js.map +1 -0
- package/esm/mark/arc.js +1 -1
- package/esm/mark/arc.js.map +1 -1
- package/esm/mark/area.js +1 -1
- package/esm/mark/area.js.map +1 -1
- package/esm/mark/base/base-line.js.map +1 -1
- package/esm/mark/base/base-mark.js.map +1 -1
- package/esm/mark/base/index.js.map +1 -1
- package/esm/mark/boxPlot.js +2 -2
- package/esm/mark/boxPlot.js.map +1 -1
- package/esm/mark/cell.js +1 -1
- package/esm/mark/cell.js.map +1 -1
- package/esm/mark/component.d.ts +1 -0
- package/esm/mark/component.js +5 -3
- package/esm/mark/component.js.map +1 -1
- package/esm/mark/group.js +1 -1
- package/esm/mark/group.js.map +1 -1
- package/esm/mark/interface/common.js.map +1 -1
- package/esm/mark/interface/index.js.map +1 -1
- package/esm/mark/interface/type.js.map +1 -1
- package/esm/mark/line.js +1 -1
- package/esm/mark/line.js.map +1 -1
- package/esm/mark/linkPath.js +1 -2
- package/esm/mark/linkPath.js.map +1 -1
- package/esm/mark/mark-set/index.js.map +1 -1
- package/esm/mark/path.js +1 -1
- package/esm/mark/path.js.map +1 -1
- package/esm/mark/polygon.js +1 -1
- package/esm/mark/polygon.js.map +1 -1
- package/esm/mark/progress-arc.js +1 -1
- package/esm/mark/progress-arc.js.map +1 -1
- package/esm/mark/rect.js +1 -1
- package/esm/mark/rect.js.map +1 -1
- package/esm/mark/rule.js +1 -1
- package/esm/mark/rule.js.map +1 -1
- package/esm/mark/symbol.js +1 -1
- package/esm/mark/symbol.js.map +1 -1
- package/esm/mark/text.js +1 -1
- package/esm/mark/text.js.map +1 -1
- package/esm/mark/utils/common.js.map +1 -1
- package/esm/mark/utils/index.js.map +1 -1
- package/esm/model/base-model.d.ts +1 -1
- package/esm/model/base-model.js +1 -1
- package/esm/model/base-model.js.map +1 -1
- package/esm/model/interface.d.ts +1 -0
- package/esm/model/interface.js +1 -1
- package/esm/model/interface.js.map +1 -1
- package/esm/model/layout-item.js +1 -1
- package/esm/model/layout-item.js.map +1 -1
- package/esm/model/model-state-manager.js +2 -1
- package/esm/model/model-state-manager.js.map +1 -1
- package/esm/model/tooltip-helper.js +1 -1
- package/esm/model/tooltip-helper.js.map +1 -1
- package/esm/plugin/chart/interface.js.map +1 -1
- package/esm/plugin/components/axis-label-overlap-plugin.js.map +1 -1
- package/esm/plugin/components/basic-plugin.js.map +1 -1
- package/esm/plugin/components/index.js.map +1 -1
- package/esm/plugin/components/interface.js.map +1 -1
- package/esm/plugin/components/plugin-service.js.map +1 -1
- package/esm/plugin/interface.js +1 -1
- package/esm/plugin/interface.js.map +1 -1
- package/esm/plugin/series/interface.js.map +1 -1
- package/esm/region/interface.js +1 -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/scale/global-scale.js +1 -1
- package/esm/scale/global-scale.js.map +1 -1
- package/esm/scale/interface.js +1 -1
- package/esm/scale/interface.js.map +1 -1
- package/esm/series/area/animation.js.map +1 -1
- package/esm/series/area/area.js +3 -1
- package/esm/series/area/area.js.map +1 -1
- package/esm/series/area/interface.js.map +1 -1
- package/esm/series/bar/animation.js.map +1 -1
- package/esm/series/bar/bar.js +7 -6
- package/esm/series/bar/bar.js.map +1 -1
- package/esm/series/bar/interface.d.ts +3 -0
- package/esm/series/bar/interface.js.map +1 -1
- package/esm/series/base/base-series.d.ts +2 -2
- package/esm/series/base/base-series.js +8 -10
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/base/group.js.map +1 -1
- package/esm/series/base/series-data.js.map +1 -1
- package/esm/series/base/tooltip-helper.js.map +1 -1
- package/esm/series/box-plot/boxPlot.d.ts +1 -1
- package/esm/series/box-plot/boxPlot.js +10 -11
- package/esm/series/box-plot/boxPlot.js.map +1 -1
- package/esm/series/box-plot/interface.js.map +1 -1
- package/esm/series/box-plot/tooltip-helper.js.map +1 -1
- package/esm/series/cartesian/cartesian.d.ts +11 -0
- package/esm/series/cartesian/cartesian.js +38 -3
- package/esm/series/cartesian/cartesian.js.map +1 -1
- package/esm/series/cartesian/interface.d.ts +1 -2
- package/esm/series/cartesian/interface.js.map +1 -1
- package/esm/series/circle-packing/animation.js.map +1 -1
- package/esm/series/circle-packing/circle-packing.js +3 -3
- package/esm/series/circle-packing/circle-packing.js.map +1 -1
- package/esm/series/circle-packing/interface.js.map +1 -1
- package/esm/series/circle-packing/tooltip-helper.js.map +1 -1
- package/esm/series/dot/config.js.map +1 -1
- package/esm/series/dot/dot.js +6 -8
- package/esm/series/dot/dot.js.map +1 -1
- package/esm/series/dot/interface.d.ts +0 -1
- package/esm/series/dot/interface.js.map +1 -1
- package/esm/series/dot/tooltip-helper.js.map +1 -1
- package/esm/series/funnel/funnel.d.ts +8 -0
- package/esm/series/funnel/funnel.js +13 -4
- package/esm/series/funnel/funnel.js.map +1 -1
- package/esm/series/funnel/interface.js.map +1 -1
- package/esm/series/funnel/tooltip-helper.js.map +1 -1
- package/esm/series/gauge/gauge-pointer.js.map +1 -1
- package/esm/series/gauge/gauge.js.map +1 -1
- package/esm/series/gauge/index.js.map +1 -1
- package/esm/series/gauge/interface.js.map +1 -1
- package/esm/series/geo/geo.d.ts +1 -0
- package/esm/series/geo/geo.js +3 -0
- package/esm/series/geo/geo.js.map +1 -1
- package/esm/series/geo/interface.js.map +1 -1
- package/esm/series/heatmap/animation.js.map +1 -1
- package/esm/series/heatmap/heatmap.js +5 -4
- package/esm/series/heatmap/heatmap.js.map +1 -1
- package/esm/series/heatmap/interface.js.map +1 -1
- package/esm/series/heatmap/tooltip-helper.js.map +1 -1
- package/esm/series/interface/common.d.ts +1 -0
- package/esm/series/interface/common.js.map +1 -1
- package/esm/series/interface/index.js.map +1 -1
- package/esm/series/interface/series.d.ts +7 -0
- package/esm/series/interface/series.js.map +1 -1
- package/esm/series/interface/theme.js.map +1 -1
- package/esm/series/interface/tooltip-helper.js.map +1 -1
- package/esm/series/interface/type.js.map +1 -1
- package/esm/series/line/animation.js.map +1 -1
- package/esm/series/line/interface.js.map +1 -1
- package/esm/series/line/line.js.map +1 -1
- package/esm/series/link/interface.d.ts +2 -2
- package/esm/series/link/interface.js.map +1 -1
- package/esm/series/link/link.js +3 -3
- package/esm/series/link/link.js.map +1 -1
- package/esm/series/link/tooltip-helper.js.map +1 -1
- package/esm/series/map/geo-source.d.ts +1 -0
- package/esm/series/map/geo-source.js +4 -0
- package/esm/series/map/geo-source.js.map +1 -1
- package/esm/series/map/interface.js.map +1 -1
- package/esm/series/map/map.js +2 -1
- package/esm/series/map/map.js.map +1 -1
- package/esm/series/map/tooltip-helper.js.map +1 -1
- package/esm/series/mixin/line-mixin.d.ts +0 -1
- package/esm/series/mixin/line-mixin.js +12 -7
- package/esm/series/mixin/line-mixin.js.map +1 -1
- package/esm/series/pie/animation/animation.js.map +1 -1
- package/esm/series/pie/animation/centerOffset.js.map +1 -1
- package/esm/series/pie/interface.d.ts +1 -0
- package/esm/series/pie/interface.js.map +1 -1
- package/esm/series/pie/pie.d.ts +13 -5
- package/esm/series/pie/pie.js +32 -25
- package/esm/series/pie/pie.js.map +1 -1
- package/esm/series/polar/animation.js.map +1 -1
- package/esm/series/polar/interface.d.ts +0 -1
- package/esm/series/polar/interface.js.map +1 -1
- package/esm/series/polar/polar.d.ts +1 -0
- package/esm/series/polar/polar.js +3 -0
- package/esm/series/polar/polar.js.map +1 -1
- package/esm/series/polar/progress-like/animation.js.map +1 -1
- package/esm/series/polar/progress-like/index.js.map +1 -1
- package/esm/series/polar/progress-like/interface.js.map +1 -1
- package/esm/series/polar/progress-like/progress-like.js.map +1 -1
- package/esm/series/polar/rose-like/index.js.map +1 -1
- package/esm/series/polar/rose-like/interface.js.map +1 -1
- package/esm/series/polar/rose-like/rose-like.js.map +1 -1
- package/esm/series/progress/circular/circular.js.map +1 -1
- package/esm/series/progress/circular/index.js.map +1 -1
- package/esm/series/progress/circular/interface.js.map +1 -1
- package/esm/series/progress/interface.js.map +1 -1
- package/esm/series/progress/linear/animation.js.map +1 -1
- package/esm/series/progress/linear/index.js.map +1 -1
- package/esm/series/progress/linear/interface.js.map +1 -1
- package/esm/series/progress/linear/linear.js.map +1 -1
- package/esm/series/progress/linear/tooltip-helper.js.map +1 -1
- package/esm/series/radar/animation.js.map +1 -1
- package/esm/series/radar/interface.d.ts +0 -1
- package/esm/series/radar/interface.js.map +1 -1
- package/esm/series/radar/radar.js.map +1 -1
- package/esm/series/range-area/interface.js.map +1 -1
- package/esm/series/range-area/range-area.js.map +1 -1
- package/esm/series/range-area/tooltip-helper.js.map +1 -1
- package/esm/series/range-column/animation.js.map +1 -1
- package/esm/series/range-column/interface.d.ts +3 -3
- package/esm/series/range-column/interface.js.map +1 -1
- package/esm/series/range-column/rangeColumn.js +15 -13
- package/esm/series/range-column/rangeColumn.js.map +1 -1
- package/esm/series/range-column/tooltip-helper.js.map +1 -1
- package/esm/series/rose/animation.js.map +1 -1
- package/esm/series/rose/interface.js.map +1 -1
- package/esm/series/rose/rose.js +2 -1
- package/esm/series/rose/rose.js.map +1 -1
- package/esm/series/sankey/animation.js.map +1 -1
- package/esm/series/sankey/interface.js.map +1 -1
- package/esm/series/sankey/sankey.js +5 -5
- package/esm/series/sankey/sankey.js.map +1 -1
- package/esm/series/sankey/tooltip-helper.js.map +1 -1
- package/esm/series/scatter/animation.js.map +1 -1
- package/esm/series/scatter/interface.js.map +1 -1
- package/esm/series/scatter/scatter.js +8 -5
- package/esm/series/scatter/scatter.js.map +1 -1
- package/esm/series/sunburst/animation/enter.js.map +1 -1
- package/esm/series/sunburst/animation/exit.js.map +1 -1
- package/esm/series/sunburst/animation/index.js.map +1 -1
- package/esm/series/sunburst/animation/interface.js.map +1 -1
- package/esm/series/sunburst/animation/preset.js.map +1 -1
- package/esm/series/sunburst/animation/utils.js.map +1 -1
- package/esm/series/sunburst/interface.js.map +1 -1
- package/esm/series/sunburst/sunburst.js +3 -3
- package/esm/series/sunburst/sunburst.js.map +1 -1
- package/esm/series/sunburst/tooltip-helper.js.map +1 -1
- package/esm/series/treemap/animation.js.map +1 -1
- package/esm/series/treemap/config.js.map +1 -1
- package/esm/series/treemap/interface.js.map +1 -1
- package/esm/series/treemap/tooltip-helper.js.map +1 -1
- package/esm/series/treemap/treemap.js +3 -3
- package/esm/series/treemap/treemap.js.map +1 -1
- package/esm/series/util/label-mark.js.map +1 -1
- package/esm/series/util/utils.js.map +1 -1
- package/esm/series/waterfall/animation.js.map +1 -1
- package/esm/series/waterfall/interface.js.map +1 -1
- package/esm/series/waterfall/waterfall.js.map +1 -1
- package/esm/series/word-cloud/animation.js.map +1 -1
- package/esm/series/word-cloud/config.js.map +1 -1
- package/esm/series/word-cloud/interface.js.map +1 -1
- package/esm/series/word-cloud/word-cloud.d.ts +10 -3
- package/esm/series/word-cloud/word-cloud.js +107 -26
- package/esm/series/word-cloud/word-cloud.js.map +1 -1
- package/esm/theme/buildin-theme/config.js +2 -0
- package/esm/theme/buildin-theme/config.js.map +1 -1
- package/esm/theme/buildin-theme/dark.js +6 -462
- package/esm/theme/buildin-theme/dark.js.map +1 -1
- package/esm/theme/buildin-theme/index.js.map +1 -1
- package/esm/theme/buildin-theme/light/color-scheme.js.map +1 -1
- package/esm/theme/buildin-theme/light/component/brush.js +12 -8
- package/esm/theme/buildin-theme/light/component/brush.js.map +1 -1
- package/esm/theme/buildin-theme/light/component/cartesian-axis.d.ts +3 -2
- package/esm/theme/buildin-theme/light/component/cartesian-axis.js +15 -81
- package/esm/theme/buildin-theme/light/component/cartesian-axis.js.map +1 -1
- package/esm/theme/buildin-theme/light/component/color-legend.d.ts +2 -36
- package/esm/theme/buildin-theme/light/component/color-legend.js.map +1 -1
- package/esm/theme/buildin-theme/light/component/common-axis.d.ts +2 -0
- package/esm/theme/buildin-theme/light/component/common-axis.js +68 -0
- package/esm/theme/buildin-theme/light/component/common-axis.js.map +1 -0
- package/esm/theme/buildin-theme/light/component/crosshair.js +1 -6
- package/esm/theme/buildin-theme/light/component/crosshair.js.map +1 -1
- package/esm/theme/buildin-theme/light/component/data-zoom.js +10 -10
- package/esm/theme/buildin-theme/light/component/data-zoom.js.map +1 -1
- package/esm/theme/buildin-theme/light/component/discrete-legend.js +3 -6
- package/esm/theme/buildin-theme/light/component/discrete-legend.js.map +1 -1
- package/esm/theme/buildin-theme/light/component/indicator.d.ts +2 -0
- package/esm/{component/indicator/config.js → theme/buildin-theme/light/component/indicator.js} +2 -2
- package/esm/theme/buildin-theme/light/component/indicator.js.map +1 -0
- package/esm/theme/buildin-theme/light/component/mark-area.js.map +1 -1
- package/esm/theme/buildin-theme/light/component/mark-line.js.map +1 -1
- package/esm/theme/buildin-theme/light/component/mark-point.js +1 -3
- package/esm/theme/buildin-theme/light/component/mark-point.js.map +1 -1
- package/esm/theme/buildin-theme/light/component/player.js.map +1 -1
- package/esm/theme/buildin-theme/light/component/polar-axis.d.ts +3 -2
- package/esm/theme/buildin-theme/light/component/polar-axis.js +11 -68
- package/esm/theme/buildin-theme/light/component/polar-axis.js.map +1 -1
- package/esm/theme/buildin-theme/light/component/size-legend.js.map +1 -1
- package/esm/theme/buildin-theme/light/component/title.d.ts +2 -0
- package/esm/theme/buildin-theme/light/component/title.js +9 -0
- package/esm/theme/buildin-theme/light/component/title.js.map +1 -0
- package/esm/theme/buildin-theme/light/component/tooltip.js +5 -5
- package/esm/theme/buildin-theme/light/component/tooltip.js.map +1 -1
- package/esm/theme/buildin-theme/light/index.js +21 -7
- package/esm/theme/buildin-theme/light/index.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/area.js +6 -5
- package/esm/theme/buildin-theme/light/series/area.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/bar.js +1 -4
- package/esm/theme/buildin-theme/light/series/bar.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/bar3d.js +1 -4
- package/esm/theme/buildin-theme/light/series/bar3d.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/circle-packing.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/circular-progress.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/dot.js +11 -3
- package/esm/theme/buildin-theme/light/series/dot.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/funnel.js +0 -3
- package/esm/theme/buildin-theme/light/series/funnel.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/funnel3d.js +0 -3
- package/esm/theme/buildin-theme/light/series/funnel3d.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/gauge-pointer.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/gauge.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/heatmap.js +2 -3
- package/esm/theme/buildin-theme/light/series/heatmap.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/index.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/line.js +6 -5
- package/esm/theme/buildin-theme/light/series/line.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/linear-progress.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/link.js +5 -3
- package/esm/theme/buildin-theme/light/series/link.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/map.js +1 -2
- package/esm/theme/buildin-theme/light/series/map.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/pie.js +1 -3
- package/esm/theme/buildin-theme/light/series/pie.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/pie3d.js +1 -3
- package/esm/theme/buildin-theme/light/series/pie3d.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/radar.js +6 -5
- package/esm/theme/buildin-theme/light/series/radar.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/rangeColumn.js +1 -4
- package/esm/theme/buildin-theme/light/series/rangeColumn.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/scatter.js +1 -4
- package/esm/theme/buildin-theme/light/series/scatter.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/sunburst.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/treemap.js +1 -5
- package/esm/theme/buildin-theme/light/series/treemap.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/waterfall.js +1 -5
- package/esm/theme/buildin-theme/light/series/waterfall.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/word-cloud.js.map +1 -1
- package/esm/theme/buildin-theme/light/series/word-cloud3d.js.map +1 -1
- package/esm/theme/color-scheme/interface.d.ts +1 -1
- package/esm/theme/color-scheme/interface.js.map +1 -1
- package/esm/theme/color-scheme/util.js.map +1 -1
- package/esm/theme/index.js.map +1 -1
- package/esm/theme/interface.d.ts +13 -5
- package/esm/theme/interface.js.map +1 -1
- package/esm/theme/theme-manager.js.map +1 -1
- package/esm/typings/common.js.map +1 -1
- package/esm/typings/coordinate.js.map +1 -1
- package/esm/typings/cursor.js.map +1 -1
- package/esm/typings/data.js.map +1 -1
- package/esm/typings/geo.js.map +1 -1
- package/esm/typings/index.js.map +1 -1
- package/esm/typings/interpolate.js.map +1 -1
- package/esm/typings/line-stroke.js.map +1 -1
- package/esm/typings/params.js.map +1 -1
- package/esm/typings/scale.js.map +1 -1
- package/esm/typings/shape.js.map +1 -1
- package/esm/typings/space.d.ts +1 -1
- package/esm/typings/space.js.map +1 -1
- package/esm/typings/spec/chart.js.map +1 -1
- package/esm/typings/spec/common.d.ts +5 -5
- package/esm/typings/spec/common.js.map +1 -1
- package/esm/typings/spec/index.js.map +1 -1
- package/esm/typings/tooltip/common.js.map +1 -1
- package/esm/typings/tooltip/handler.js.map +1 -1
- package/esm/typings/tooltip/index.js.map +1 -1
- package/esm/typings/tooltip/line.js.map +1 -1
- package/esm/typings/tooltip/position.js.map +1 -1
- package/esm/typings/tooltip/shape.js.map +1 -1
- package/esm/typings/tooltip/tooltip.js.map +1 -1
- package/esm/typings/visual.d.ts +21 -3
- package/esm/typings/visual.js.map +1 -1
- package/esm/util/array.js.map +1 -1
- package/esm/util/color.js.map +1 -1
- package/esm/util/data.js +3 -2
- package/esm/util/data.js.map +1 -1
- package/esm/util/debug.js.map +1 -1
- package/esm/util/env.js.map +1 -1
- package/esm/util/hierarchy.js.map +1 -1
- package/esm/util/id.js +4 -4
- package/esm/util/id.js.map +1 -1
- package/esm/util/image.js.map +1 -1
- package/esm/util/index.js.map +1 -1
- package/esm/util/math.js.map +1 -1
- package/esm/util/model.js.map +1 -1
- package/esm/util/object.js.map +1 -1
- package/esm/util/scale.js.map +1 -1
- package/esm/util/space.js.map +1 -1
- package/esm/util/spec.js.map +1 -1
- package/esm/util/style.js +4 -6
- package/esm/util/style.js.map +1 -1
- package/esm/util/text.js.map +1 -1
- package/esm/util/type.js.map +1 -1
- package/esm/vchart-all.js +3 -1
- package/esm/vchart-all.js.map +1 -1
- package/package.json +16 -57
- package/cjs/component/brush/config.d.ts +0 -8
- package/cjs/component/brush/config.js +0 -13
- package/cjs/component/brush/config.js.map +0 -1
- package/cjs/component/indicator/config.d.ts +0 -5
- package/cjs/component/indicator/config.js.map +0 -1
- package/cjs/component/tooltip/config.d.ts +0 -2
- package/cjs/component/tooltip/config.js +0 -12
- package/cjs/component/tooltip/config.js.map +0 -1
- package/esm/component/brush/config.d.ts +0 -8
- package/esm/component/brush/config.js +0 -9
- package/esm/component/brush/config.js.map +0 -1
- package/esm/component/indicator/config.d.ts +0 -5
- package/esm/component/indicator/config.js.map +0 -1
- package/esm/component/tooltip/config.d.ts +0 -2
- package/esm/component/tooltip/config.js +0 -8
- package/esm/component/tooltip/config.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["interaction/interaction.ts"],"names":[],"mappings":"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","file":"interaction.js","sourcesContent":["import { isEmpty } from '@visactor/vutils';\nimport type { StateValue } from '../compile/mark';\nimport type { IElement } from '@visactor/vgrammar';\nimport type { BaseEventParams } from '../event/interface';\nimport type { IMark } from '../mark/interface';\nimport type { IInteraction } from './interface';\nimport { stateToReverse } from '../compile/mark/util';\n\nexport class Interaction implements IInteraction {\n // 数据\n private _stateMarks: Map<StateValue, IMark[]> = new Map();\n // active\n private _stateElements: Map<StateValue, IElement[]> = new Map();\n\n static markStateEnable(mark: IMark, state: string) {\n return !isEmpty(mark.stateStyle[state]);\n }\n\n registerMark(state: StateValue, mark: IMark): void {\n if (!this._stateMarks.has(state)) {\n this._stateMarks.set(state, []);\n }\n this._stateMarks.get(state)?.push(mark);\n }\n\n getStateMark(state: StateValue): IMark[] | null {\n return this._stateMarks.get(state);\n }\n\n filterEventMark(params: BaseEventParams, state: StateValue): boolean {\n return !!(params.mark && this._stateMarks.get(state)?.includes(params.mark));\n }\n\n getEventElement(stateValue: StateValue) {\n return this._stateElements.get(stateValue) ?? [];\n }\n\n getEventElementData(stateValue: StateValue) {\n return this.getEventElement(stateValue).map(e => e.getDatum());\n }\n\n exchangeEventElement(stateValue: StateValue, element: IElement) {\n // reverse\n const reState = stateToReverse(stateValue);\n this._stateElements.get(stateValue)?.forEach(e => {\n e.removeState(stateValue);\n if (reState) {\n this.addEventElement(reState, e);\n }\n });\n if (!element.getStates().includes(stateValue)) {\n element.addState(stateValue);\n if (reState) {\n element.removeState(reState);\n }\n }\n this._stateElements.set(stateValue, [element]);\n }\n\n removeEventElement(stateValue: StateValue, element: IElement) {\n element.removeState(stateValue);\n const list = this._stateElements.get(stateValue)?.filter(e => e !== element) ?? [];\n this._stateElements.set(stateValue, list);\n // reverse\n const reState = stateToReverse(stateValue);\n if (reState) {\n if (list.length === 0) {\n // clear reverse\n this.clearEventElement(reState, false);\n } else {\n // add reverse to element\n this.addEventElement(reState, element);\n }\n }\n }\n\n addEventElement(stateValue: StateValue, element: IElement) {\n if (!element.getStates().includes(stateValue)) {\n element.addState(stateValue);\n }\n const list = this._stateElements.get(stateValue) ?? [];\n list.push(element);\n this._stateElements.set(stateValue, list);\n }\n\n clearEventElement(stateValue: StateValue, clearReverse: boolean) {\n this._stateElements.get(stateValue)?.forEach(e => {\n e.removeState(stateValue);\n });\n this._stateElements.set(stateValue, []);\n\n if (clearReverse) {\n const reState = stateToReverse(stateValue);\n if (reState) {\n this.clearEventElement(reState, false);\n }\n }\n }\n\n /**\n * 激活交互元素时 进行反选\n * 需要先将元素添加到已交互状态再使用此方法反选\n * @param stateValue\n * @param activeElement\n * @returns\n */\n reverseEventElement(stateValue: StateValue) {\n // TODO:直接加默认后缀?or再增加一个map?\n const state = stateToReverse(stateValue);\n if (!state) {\n return;\n }\n const marks = this.getStateMark(state);\n if (!marks) {\n return;\n }\n const activeElements = this.getEventElement(stateValue);\n if (!activeElements.length) {\n return;\n }\n const currentReverse = this.getEventElement(state);\n if (!currentReverse.length) {\n // all\n // for performance array.include\n // FIXME: 也许并没有太大必要\n if (activeElements.length === 1) {\n marks.forEach(m => {\n m.getProduct()\n .elements.filter(e => e !== activeElements[0])\n .forEach(e => {\n this.addEventElement(state, e);\n });\n });\n } else {\n marks.forEach(m => {\n m.getProduct()\n .elements.filter(e => !activeElements.includes(e))\n .forEach(e => {\n this.addEventElement(state, e);\n });\n });\n }\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/interaction/interaction.ts"],"names":[],"mappings":"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","file":"interaction.js","sourcesContent":["import { isEmpty } from '@visactor/vutils';\nimport type { StateValue } from '../compile/mark';\nimport type { IElement } from '@visactor/vgrammar';\nimport type { BaseEventParams } from '../event/interface';\nimport type { IMark } from '../mark/interface';\nimport type { IInteraction } from './interface';\nimport { stateToReverse } from '../compile/mark/util';\n\nexport class Interaction implements IInteraction {\n // 数据\n private _stateMarks: Map<StateValue, IMark[]> = new Map();\n // active\n private _stateElements: Map<StateValue, IElement[]> = new Map();\n\n static markStateEnable(mark: IMark, state: string) {\n return !isEmpty(mark.stateStyle[state]);\n }\n\n registerMark(state: StateValue, mark: IMark): void {\n if (!this._stateMarks.has(state)) {\n this._stateMarks.set(state, []);\n }\n this._stateMarks.get(state)?.push(mark);\n }\n\n getStateMark(state: StateValue): IMark[] | null {\n return this._stateMarks.get(state);\n }\n\n filterEventMark(params: BaseEventParams, state: StateValue): boolean {\n return !!(params.mark && this._stateMarks.get(state)?.includes(params.mark));\n }\n\n getEventElement(stateValue: StateValue) {\n return this._stateElements.get(stateValue) ?? [];\n }\n\n getEventElementData(stateValue: StateValue) {\n return this.getEventElement(stateValue).map(e => e.getDatum());\n }\n\n exchangeEventElement(stateValue: StateValue, element: IElement) {\n // reverse\n const reState = stateToReverse(stateValue);\n this._stateElements.get(stateValue)?.forEach(e => {\n e.removeState(stateValue);\n if (reState) {\n this.addEventElement(reState, e);\n }\n });\n if (!element.getStates().includes(stateValue)) {\n element.addState(stateValue);\n if (reState) {\n element.removeState(reState);\n }\n }\n this._stateElements.set(stateValue, [element]);\n }\n\n removeEventElement(stateValue: StateValue, element: IElement) {\n element.removeState(stateValue);\n const list = this._stateElements.get(stateValue)?.filter(e => e !== element) ?? [];\n this._stateElements.set(stateValue, list);\n // reverse\n const reState = stateToReverse(stateValue);\n if (reState) {\n if (list.length === 0) {\n // clear reverse\n this.clearEventElement(reState, false);\n } else {\n // add reverse to element\n this.addEventElement(reState, element);\n }\n }\n }\n\n addEventElement(stateValue: StateValue, element: IElement) {\n if (!element.getStates().includes(stateValue)) {\n element.addState(stateValue);\n }\n const list = this._stateElements.get(stateValue) ?? [];\n list.push(element);\n this._stateElements.set(stateValue, list);\n }\n\n clearEventElement(stateValue: StateValue, clearReverse: boolean) {\n this._stateElements.get(stateValue)?.forEach(e => {\n e.removeState(stateValue);\n });\n this._stateElements.set(stateValue, []);\n\n if (clearReverse) {\n const reState = stateToReverse(stateValue);\n if (reState) {\n this.clearEventElement(reState, false);\n }\n }\n }\n\n /**\n * 激活交互元素时 进行反选\n * 需要先将元素添加到已交互状态再使用此方法反选\n * @param stateValue\n * @param activeElement\n * @returns\n */\n reverseEventElement(stateValue: StateValue) {\n // TODO:直接加默认后缀?or再增加一个map?\n const state = stateToReverse(stateValue);\n if (!state) {\n return;\n }\n const marks = this.getStateMark(state);\n if (!marks) {\n return;\n }\n const activeElements = this.getEventElement(stateValue);\n if (!activeElements.length) {\n return;\n }\n const currentReverse = this.getEventElement(state);\n if (!currentReverse.length) {\n // all\n // for performance array.include\n // FIXME: 也许并没有太大必要\n if (activeElements.length === 1) {\n marks.forEach(m => {\n m.getProduct()\n .elements.filter(e => e !== activeElements[0])\n .forEach(e => {\n this.addEventElement(state, e);\n });\n });\n } else {\n marks.forEach(m => {\n m.getProduct()\n .elements.filter(e => !activeElements.includes(e))\n .forEach(e => {\n this.addEventElement(state, e);\n });\n });\n }\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["interaction/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IElement } from '@visactor/vgrammar';\nimport type { IMark } from '../mark/interface';\nimport type { RenderMode } from '../typings/spec/common';\nimport type { BaseEventParams, IEventDispatcher, EventType } from '../event/interface';\nimport type { IModel } from '../model/interface';\nimport type { StateValue } from '../compile/mark';\n\nexport interface IInteraction {\n registerMark: (state: StateValue, mark: IMark) => void;\n filterEventMark: (params: BaseEventParams, state: StateValue) => boolean;\n getStateMark: (state: StateValue) => IMark[] | null;\n\n getEventElement: (stateValue: StateValue) => IElement[];\n getEventElementData: (stateValue: StateValue) => any[];\n addEventElement: (stateValue: StateValue, element: IElement) => void;\n removeEventElement: (stateValue: StateValue, elements: IElement) => void;\n exchangeEventElement: (stateValue: StateValue, elements: IElement) => void;\n clearEventElement: (stateValue: StateValue, clearReverse: boolean) => void;\n reverseEventElement: (stateValue: StateValue) => void;\n}\n\nexport interface ITrigger {\n init: () => void;\n setStateKeys: (fields: string[]) => void;\n registerMark: (mark: IMark) => void;\n release: () => void;\n hover?: IHoverSpec;\n select?: ISelectSpec;\n}\n\nexport interface ITriggerOption {\n mode: RenderMode;\n interaction: IInteraction;\n eventDispatcher: IEventDispatcher;\n model: IModel;\n}\n\ntype Trigger = EventType | EventType[];\n\nexport type IHoverSpec = {\n enable?: boolean;\n trigger?: Trigger;\n triggerOff?: Trigger;\n};\n\nexport type ISelectSpec = {\n enable?: boolean;\n mode?: 'single' | 'multiple';\n trigger?: Trigger;\n triggerOff?: Trigger;\n};\n\nexport interface ITriggerSpec {\n hover?: IHoverSpec | boolean;\n select?: ISelectSpec | boolean;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/interaction/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IElement } from '@visactor/vgrammar';\nimport type { IMark } from '../mark/interface';\nimport type { RenderMode } from '../typings/spec/common';\nimport type { BaseEventParams, IEventDispatcher, EventType } from '../event/interface';\nimport type { IModel } from '../model/interface';\nimport type { StateValue } from '../compile/mark';\n\nexport interface IInteraction {\n registerMark: (state: StateValue, mark: IMark) => void;\n filterEventMark: (params: BaseEventParams, state: StateValue) => boolean;\n getStateMark: (state: StateValue) => IMark[] | null;\n\n getEventElement: (stateValue: StateValue) => IElement[];\n getEventElementData: (stateValue: StateValue) => any[];\n addEventElement: (stateValue: StateValue, element: IElement) => void;\n removeEventElement: (stateValue: StateValue, elements: IElement) => void;\n exchangeEventElement: (stateValue: StateValue, elements: IElement) => void;\n clearEventElement: (stateValue: StateValue, clearReverse: boolean) => void;\n reverseEventElement: (stateValue: StateValue) => void;\n}\n\nexport interface ITrigger {\n init: () => void;\n setStateKeys: (fields: string[]) => void;\n registerMark: (mark: IMark) => void;\n release: () => void;\n hover?: IHoverSpec;\n select?: ISelectSpec;\n}\n\nexport interface ITriggerOption {\n mode: RenderMode;\n interaction: IInteraction;\n eventDispatcher: IEventDispatcher;\n model: IModel;\n}\n\ntype Trigger = EventType | EventType[];\n\nexport type IHoverSpec = {\n enable?: boolean;\n trigger?: Trigger;\n triggerOff?: Trigger;\n};\n\nexport type ISelectSpec = {\n enable?: boolean;\n mode?: 'single' | 'multiple';\n trigger?: Trigger;\n triggerOff?: Trigger;\n};\n\nexport interface ITriggerSpec {\n hover?: IHoverSpec | boolean;\n select?: ISelectSpec | boolean;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["interaction/trigger.ts"],"names":[],"mappings":"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","file":"trigger.js","sourcesContent":["import { Event } from '../event/event';\nimport { defaultInteractionConfig } from './config';\nimport { merge, isBoolean, isObject, array } from '../util';\n\nimport type { IMark } from '../mark/interface';\nimport type { BaseEventParams, EventCallback, EventParams, IEvent } from '../event/interface';\nimport type { IHoverSpec, IInteraction, ISelectSpec, ITrigger, ITriggerOption, ITriggerSpec } from './interface';\nimport type { RenderMode } from '../typings/spec';\nimport { MarkSet } from '../mark/mark-set';\nimport { STATE_VALUE_ENUM } from '../compile/mark';\nimport { Event_Bubble_Level, Event_Source_Type } from '../constant';\n\nexport class Trigger implements ITrigger {\n // 事件\n readonly event: IEvent;\n\n protected readonly interaction: IInteraction;\n\n protected _spec: ITriggerSpec;\n protected _option: ITriggerOption;\n\n protected _hover: IHoverSpec;\n get hover() {\n return this._hover;\n }\n protected _select: ISelectSpec;\n get select() {\n return this._select;\n }\n\n protected _fields: string[] | null = null;\n protected _marks: MarkSet = new MarkSet();\n protected _markReverse: MarkSet = new MarkSet();\n\n constructor(spec: ITriggerSpec, option: ITriggerOption) {\n this._spec = spec;\n this._option = option;\n this.event = new Event(option.eventDispatcher, option.mode);\n this.interaction = option.interaction;\n this.initConfig(option.mode);\n }\n\n setStateKeys(fields: string[]): void {\n this._fields = [...fields];\n }\n\n registerMark(mark: IMark): void {\n this._marks.addMark(mark);\n if (this._hover.enable) {\n this.interaction.registerMark(STATE_VALUE_ENUM.STATE_HOVER, mark);\n }\n if (this._select.enable) {\n this.interaction.registerMark(STATE_VALUE_ENUM.STATE_SELECTED, mark);\n }\n }\n\n init(): void {\n this.initEvent();\n }\n\n release(): void {\n this.releaseEvent();\n this._marks.clear();\n }\n\n // event\n protected initEvent() {\n const event = this.event;\n const { enable: hoverEnable, trigger: hoverTrigger, triggerOff: hoverTriggerOff } = this._hover;\n const { enable: selectEnable, trigger: selectTrigger, triggerOff: selectTriggerOff } = this._select;\n if (hoverEnable) {\n // 进行 hover 交互相关的事件绑定\n array(hoverTrigger).forEach(trigger => {\n event.on(trigger, { level: Event_Bubble_Level.chart }, this.onHover as EventCallback<EventParams>);\n });\n if (hoverTriggerOff && hoverTriggerOff !== 'none') {\n array(hoverTriggerOff).forEach(trigger => {\n event.on(\n trigger,\n { level: Event_Bubble_Level.vchart, source: Event_Source_Type.chart },\n this.onUnHover as EventCallback<EventParams>\n );\n });\n }\n }\n\n if (selectEnable) {\n // 进行 select 交互相关的事件绑定\n array(selectTrigger).forEach(trigger => {\n event.on(trigger, { level: Event_Bubble_Level.mark }, this.onSelect as EventCallback<EventParams>);\n });\n if (selectTriggerOff && selectTriggerOff !== 'none') {\n array(selectTriggerOff).forEach(trigger => {\n event.on(trigger, { level: Event_Bubble_Level.mark }, this.onUnSelect as EventCallback<EventParams>);\n });\n }\n }\n }\n\n protected releaseEvent(): void {\n this.event.release();\n }\n\n private initConfig(mode: RenderMode): void {\n const defaultConfig = defaultInteractionConfig[mode];\n this._hover = { ...defaultConfig?.hover };\n this._select = { ...defaultConfig?.select };\n\n const hoverSpec = this._spec.hover;\n if (isBoolean(hoverSpec)) {\n this._hover.enable = hoverSpec;\n } else if (isObject(hoverSpec)) {\n this._hover.enable = true;\n this._hover = merge(this._hover, hoverSpec);\n }\n\n const selectSpec = this._spec.select;\n if (isBoolean(selectSpec)) {\n this._select.enable = selectSpec;\n } else if (isObject(selectSpec)) {\n this._select.enable = true;\n this._select = merge(this._select, selectSpec);\n }\n }\n\n private onHover = (params: BaseEventParams) => {\n if (this.filterEventMark(params)) {\n this.hoverItem(params);\n }\n };\n\n private onUnHover = (params: BaseEventParams) => {\n if (this.filterEventMark(params) || this.interaction.filterEventMark(params, STATE_VALUE_ENUM.STATE_HOVER)) {\n return;\n }\n if (this.interaction.getEventElement(STATE_VALUE_ENUM.STATE_HOVER)[0]) {\n this.unhoverItem();\n }\n };\n\n private onSelect = (params: BaseEventParams) => {\n this.handleSingleEventSelect(params);\n };\n\n private onUnSelect = (params: BaseEventParams) => {\n if (!this.interaction.filterEventMark(params, STATE_VALUE_ENUM.STATE_SELECTED)) {\n this.clearSelectedItems();\n }\n };\n\n // hover\n protected hoverItem(params: BaseEventParams): void {\n const { datum } = params;\n const lastEl = this.interaction.getEventElement(STATE_VALUE_ENUM.STATE_HOVER)[0];\n if (params.item === lastEl) {\n return;\n }\n this.interaction.exchangeEventElement(STATE_VALUE_ENUM.STATE_HOVER, params.item);\n this.interaction.reverseEventElement(STATE_VALUE_ENUM.STATE_HOVER);\n this.event.emit('hovered', {\n model: this._option.model,\n value: [datum]\n });\n }\n\n protected unhoverItem(): void {\n const lastHoveredDatums = this.interaction.getEventElementData(STATE_VALUE_ENUM.STATE_HOVER);\n this.interaction.clearEventElement(STATE_VALUE_ENUM.STATE_HOVER, true);\n\n this.event.emit('unhovered', {\n model: this._option.model,\n value: lastHoveredDatums\n });\n }\n\n protected handleSingleEventHover(params: BaseEventParams): void {\n if (this.filterEventMark(params)) {\n this.hoverItem(params);\n } else if (\n this.interaction.getEventElement(STATE_VALUE_ENUM.STATE_HOVER)[0] &&\n !this.interaction.filterEventMark(params, STATE_VALUE_ENUM.STATE_HOVER)\n ) {\n this.unhoverItem();\n }\n }\n\n // select\n protected selectItems(datums: any[]): void {\n this.event.emit('selected', {\n model: this._option.model,\n value: datums\n });\n }\n\n protected clearSelectedItems() {\n const lastSelectedItem = this.interaction.getEventElementData(STATE_VALUE_ENUM.STATE_SELECTED);\n this.interaction.clearEventElement(STATE_VALUE_ENUM.STATE_SELECTED, true);\n\n this.event.emit('unselected', {\n model: this._option.model,\n value: lastSelectedItem\n });\n }\n\n protected unselectItems(params: BaseEventParams): void {\n this.interaction.removeEventElement(STATE_VALUE_ENUM.STATE_SELECTED, params.item);\n this.event.emit('unselected', {\n model: this._option.model,\n value: params.item\n });\n }\n\n protected handleSingleEventSelect(params: BaseEventParams): void {\n if (this.filterEventMark(params)) {\n if (params.item.getStates().includes(STATE_VALUE_ENUM.STATE_SELECTED)) {\n this.unselectItems(params);\n } else {\n switch (this._select.mode) {\n case 'multiple':\n this.interaction.addEventElement(STATE_VALUE_ENUM.STATE_SELECTED, params.item);\n break;\n case 'single':\n default:\n this.interaction.exchangeEventElement(STATE_VALUE_ENUM.STATE_SELECTED, params.item);\n }\n this.interaction.reverseEventElement(STATE_VALUE_ENUM.STATE_SELECTED);\n const items = this.interaction.getEventElementData(STATE_VALUE_ENUM.STATE_SELECTED);\n this.selectItems(items);\n }\n } else if (\n // 不做已选内容的判断,因为选中的元素可能由用户 API 控制\n // this._selectedItems.length > 0 &&\n !this.interaction.filterEventMark(params, STATE_VALUE_ENUM.STATE_SELECTED)\n ) {\n this.clearSelectedItems();\n }\n }\n\n // util\n protected filterEventMark(params: BaseEventParams): boolean {\n return !!(params.mark && this._marks.includes(params.mark));\n }\n\n protected isDatumEqual(datumA: any, datumB: any): boolean {\n const fields = this._fields ? this._fields : Object.keys(datumA);\n return fields.every(f => datumA[f] === datumB[f]);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/interaction/trigger.ts"],"names":[],"mappings":"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","file":"trigger.js","sourcesContent":["import { Event } from '../event/event';\nimport { defaultInteractionConfig } from './config';\nimport { merge, isBoolean, isObject, array } from '../util';\n\nimport type { IMark } from '../mark/interface';\nimport type { BaseEventParams, EventCallback, EventParams, IEvent } from '../event/interface';\nimport type { IHoverSpec, IInteraction, ISelectSpec, ITrigger, ITriggerOption, ITriggerSpec } from './interface';\nimport type { RenderMode } from '../typings/spec';\nimport { MarkSet } from '../mark/mark-set';\nimport { STATE_VALUE_ENUM } from '../compile/mark';\nimport { Event_Bubble_Level, Event_Source_Type } from '../constant';\n\nexport class Trigger implements ITrigger {\n // 事件\n readonly event: IEvent;\n\n protected readonly interaction: IInteraction;\n\n protected _spec: ITriggerSpec;\n protected _option: ITriggerOption;\n\n protected _hover: IHoverSpec;\n get hover() {\n return this._hover;\n }\n protected _select: ISelectSpec;\n get select() {\n return this._select;\n }\n\n protected _fields: string[] | null = null;\n protected _marks: MarkSet = new MarkSet();\n protected _markReverse: MarkSet = new MarkSet();\n\n constructor(spec: ITriggerSpec, option: ITriggerOption) {\n this._spec = spec;\n this._option = option;\n this.event = new Event(option.eventDispatcher, option.mode);\n this.interaction = option.interaction;\n this.initConfig(option.mode);\n }\n\n setStateKeys(fields: string[]): void {\n this._fields = [...fields];\n }\n\n registerMark(mark: IMark): void {\n this._marks.addMark(mark);\n if (this._hover.enable) {\n this.interaction.registerMark(STATE_VALUE_ENUM.STATE_HOVER, mark);\n }\n if (this._select.enable) {\n this.interaction.registerMark(STATE_VALUE_ENUM.STATE_SELECTED, mark);\n }\n }\n\n init(): void {\n this.initEvent();\n }\n\n release(): void {\n this.releaseEvent();\n this._marks.clear();\n }\n\n // event\n protected initEvent() {\n const event = this.event;\n const { enable: hoverEnable, trigger: hoverTrigger, triggerOff: hoverTriggerOff } = this._hover;\n const { enable: selectEnable, trigger: selectTrigger, triggerOff: selectTriggerOff } = this._select;\n if (hoverEnable) {\n // 进行 hover 交互相关的事件绑定\n array(hoverTrigger).forEach(trigger => {\n event.on(trigger, { level: Event_Bubble_Level.chart }, this.onHover as EventCallback<EventParams>);\n });\n if (hoverTriggerOff && hoverTriggerOff !== 'none') {\n array(hoverTriggerOff).forEach(trigger => {\n event.on(\n trigger,\n { level: Event_Bubble_Level.vchart, source: Event_Source_Type.chart },\n this.onUnHover as EventCallback<EventParams>\n );\n });\n }\n }\n\n if (selectEnable) {\n // 进行 select 交互相关的事件绑定\n array(selectTrigger).forEach(trigger => {\n event.on(trigger, { level: Event_Bubble_Level.mark }, this.onSelect as EventCallback<EventParams>);\n });\n if (selectTriggerOff && selectTriggerOff !== 'none') {\n array(selectTriggerOff).forEach(trigger => {\n event.on(trigger, { level: Event_Bubble_Level.mark }, this.onUnSelect as EventCallback<EventParams>);\n });\n }\n }\n }\n\n protected releaseEvent(): void {\n this.event.release();\n }\n\n private initConfig(mode: RenderMode): void {\n const defaultConfig = defaultInteractionConfig[mode];\n this._hover = { ...defaultConfig?.hover };\n this._select = { ...defaultConfig?.select };\n\n const hoverSpec = this._spec.hover;\n if (isBoolean(hoverSpec)) {\n this._hover.enable = hoverSpec;\n } else if (isObject(hoverSpec)) {\n this._hover.enable = true;\n this._hover = merge(this._hover, hoverSpec);\n }\n\n const selectSpec = this._spec.select;\n if (isBoolean(selectSpec)) {\n this._select.enable = selectSpec;\n } else if (isObject(selectSpec)) {\n this._select.enable = true;\n this._select = merge(this._select, selectSpec);\n }\n }\n\n private onHover = (params: BaseEventParams) => {\n if (this.filterEventMark(params)) {\n this.hoverItem(params);\n }\n };\n\n private onUnHover = (params: BaseEventParams) => {\n if (this.filterEventMark(params) || this.interaction.filterEventMark(params, STATE_VALUE_ENUM.STATE_HOVER)) {\n return;\n }\n if (this.interaction.getEventElement(STATE_VALUE_ENUM.STATE_HOVER)[0]) {\n this.unhoverItem();\n }\n };\n\n private onSelect = (params: BaseEventParams) => {\n this.handleSingleEventSelect(params);\n };\n\n private onUnSelect = (params: BaseEventParams) => {\n if (!this.interaction.filterEventMark(params, STATE_VALUE_ENUM.STATE_SELECTED)) {\n this.clearSelectedItems();\n }\n };\n\n // hover\n protected hoverItem(params: BaseEventParams): void {\n const { datum } = params;\n const lastEl = this.interaction.getEventElement(STATE_VALUE_ENUM.STATE_HOVER)[0];\n if (params.item === lastEl) {\n return;\n }\n this.interaction.exchangeEventElement(STATE_VALUE_ENUM.STATE_HOVER, params.item);\n this.interaction.reverseEventElement(STATE_VALUE_ENUM.STATE_HOVER);\n this.event.emit('hovered', {\n model: this._option.model,\n value: [datum]\n });\n }\n\n protected unhoverItem(): void {\n const lastHoveredDatums = this.interaction.getEventElementData(STATE_VALUE_ENUM.STATE_HOVER);\n this.interaction.clearEventElement(STATE_VALUE_ENUM.STATE_HOVER, true);\n\n this.event.emit('unhovered', {\n model: this._option.model,\n value: lastHoveredDatums\n });\n }\n\n protected handleSingleEventHover(params: BaseEventParams): void {\n if (this.filterEventMark(params)) {\n this.hoverItem(params);\n } else if (\n this.interaction.getEventElement(STATE_VALUE_ENUM.STATE_HOVER)[0] &&\n !this.interaction.filterEventMark(params, STATE_VALUE_ENUM.STATE_HOVER)\n ) {\n this.unhoverItem();\n }\n }\n\n // select\n protected selectItems(datums: any[]): void {\n this.event.emit('selected', {\n model: this._option.model,\n value: datums\n });\n }\n\n protected clearSelectedItems() {\n const lastSelectedItem = this.interaction.getEventElementData(STATE_VALUE_ENUM.STATE_SELECTED);\n this.interaction.clearEventElement(STATE_VALUE_ENUM.STATE_SELECTED, true);\n\n this.event.emit('unselected', {\n model: this._option.model,\n value: lastSelectedItem\n });\n }\n\n protected unselectItems(params: BaseEventParams): void {\n this.interaction.removeEventElement(STATE_VALUE_ENUM.STATE_SELECTED, params.item);\n this.event.emit('unselected', {\n model: this._option.model,\n value: params.item\n });\n }\n\n protected handleSingleEventSelect(params: BaseEventParams): void {\n if (this.filterEventMark(params)) {\n if (params.item.getStates().includes(STATE_VALUE_ENUM.STATE_SELECTED)) {\n this.unselectItems(params);\n } else {\n switch (this._select.mode) {\n case 'multiple':\n this.interaction.addEventElement(STATE_VALUE_ENUM.STATE_SELECTED, params.item);\n break;\n case 'single':\n default:\n this.interaction.exchangeEventElement(STATE_VALUE_ENUM.STATE_SELECTED, params.item);\n }\n this.interaction.reverseEventElement(STATE_VALUE_ENUM.STATE_SELECTED);\n const items = this.interaction.getEventElementData(STATE_VALUE_ENUM.STATE_SELECTED);\n this.selectItems(items);\n }\n } else if (\n // 不做已选内容的判断,因为选中的元素可能由用户 API 控制\n // this._selectedItems.length > 0 &&\n !this.interaction.filterEventMark(params, STATE_VALUE_ENUM.STATE_SELECTED)\n ) {\n this.clearSelectedItems();\n }\n }\n\n // util\n protected filterEventMark(params: BaseEventParams): boolean {\n return !!(params.mark && this._marks.includes(params.mark));\n }\n\n protected isDatumEqual(datumA: any, datumB: any): boolean {\n const fields = this._fields ? this._fields : Object.keys(datumA);\n return fields.every(f => datumA[f] === datumB[f]);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["interaction/zoom/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC","file":"index.js","sourcesContent":["export * from './zoomable';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/interaction/zoom/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC","file":"index.js","sourcesContent":["export * from './zoomable';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["interaction/zoom/zoomable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAIzC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAE5E,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAsCvE,MAAM,OAAO,QAAQ;IASnB,YAAY,CAAC,GAAW,EAAE,OAAmB,cAAc,CAAC,iBAAiB,CAAC;QAC5E,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,gBAAgB,GAAG,KAAK,IAAI,CAAC,eAAe,CAAC,SAAS,CAAS,GAAE,CAAC;IACzE,CAAC;IAGO,eAAe,CAAC,IAAY;QAClC,OAAO,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAEO,sBAAsB,CAC5B,QAAgB,EAChB,cAAiC,EACjC,QAA6G;QAE7G,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,EAAE;YAC3G,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE;YACvG,IAAI,CAAE,MAA0B,CAAC,KAAK,EAAE;gBACtC,OAAO;aACR;YACD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAyB,CAAC;YAC5C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAE7C,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAY,CAAC;YACjD,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE;gBACpB,OAAO;aACR;YACD,IACE,CAAC,aAAa,CACZ;gBACE,CAAC,EAAE,KAAK;gBACR,CAAC,EAAE,KAAK;aACT,kCAEI,cAAc,CAAC,aAAa,EAAE,GAC9B,cAAc,CAAC,mBAAmB,EAAE,EAE1C,EACD;gBACA,OAAO;aACR;YACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,MAAM,KAAK,GAAG,SAAS,CAAC;YAExB,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;aAC9C;YAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE;gBAC1B,KAAK;gBACL,WAAW,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE;gBACnC,KAAK,EAAE,IAAI;aACmB,CAAC,CAAC;QAOpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB,CACnB,CAAU,EACV,QAA6G;QAE7G,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,sBAAsB,CACpB,OAAkB,EAClB,MAAgC,EAChC,QAA6G;QAE7G,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAClB,IAAI,MAAM,EAAE;gBACV,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACxB,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;wBACb,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;qBACnD;gBACH,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;aAC1D;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uBAAuB,CACrB,CAAU,EACV,QAA8F;QAE9F,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,wBAAwB,CACtB,OAAkB,EAClB,MAAgC,EAChC,QAA8F;QAE9F,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAClB,IAAI,MAAM,EAAE;gBACV,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACxB,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;wBACb,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;qBACrD;gBACH,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;aAC5D;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,wBAAwB,CAC9B,QAAgB,EAChB,cAAiC,EACjC,QAA8F;QAE9F,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,EAAE;YAC3G,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE;YACvG,IAAI,CAAE,MAA0B,CAAC,KAAK,EAAE;gBACtC,OAAO;aACR;YACD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAyB,CAAC;YAC5C,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAE/C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAY,CAAC;YAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE;gBACpC,OAAO;aACR;YACD,IACE,CAAC,aAAa,CACZ;gBACE,CAAC,EAAE,KAAK,CAAC,OAAO;gBAChB,CAAC,EAAE,KAAK,CAAC,OAAO;aACjB,kCAEI,cAAc,CAAC,aAAa,EAAE,GAC9B,cAAc,CAAC,mBAAmB,EAAE,EAE1C,EACD;gBACA,OAAO;aACR;YACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAE1B,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;aACvC;YAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC5B,OAAO;gBACP,OAAO;gBACP,KAAK,EAAE,IAAI;aACmB,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,sBAAsB,CAC5B,QAAgB,EAChB,cAAiC,EACjC,QAAyE;QAEzE,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,EAAE;YACvF,IAAI,CAAE,MAA0B,CAAC,KAAK,EAAE;gBACtC,OAAO;aACR;YAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAyB,CAAC;YAC5C,MAAM,aAAa,GAAG,aAAa,CACjC;gBACE,CAAC,EAAE,KAAK,CAAC,OAAO;gBAChB,CAAC,EAAE,KAAK,CAAC,OAAO;aACjB,kCAEI,cAAc,CAAC,aAAa,EAAE,GAC9B,cAAc,CAAC,mBAAmB,EAAE,EAE1C,CAAC;YACF,IAAI,aAAa,EAAE;gBACjB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;aACpC;QACH,CAAC,CAAC,CAAC;QAGH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE;YAC7D,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB,CAAC,CAAU,EAAE,QAAyE;QACzG,CAAC,CAAC,KAAK,CAAC,EAAE,CACR,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAC7B,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,MAAK,CAAC,CAAC,EAAE,EAAE,EAC9E,MAAM,CAAC,EAAE;YACP,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC,CACF,CAAC;IACJ,CAAC;IAED,sBAAsB,CACpB,OAAkB,EAClB,MAAgC,EAChC,QAAyE;QAEzE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YAClB,IAAI,MAAM,EAAE;gBACV,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACxB,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;wBACb,CAAC,CAAC,KAAK,CAAC,EAAE,CACR,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAC7B,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,MAAK,CAAC,CAAC,EAAE,EAAE,EAC9E,MAAM,CAAC,EAAE;4BACP,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;wBACrC,CAAC,CACF,CAAC;wBAIF,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,MAAK,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE;4BACvG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;wBAC5B,CAAC,CAAC,CAAC;qBACJ;gBACH,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;aAC1D;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAES,WAAW,CACnB,MAAwB,EACxB,QAAyE;QAEzE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACxD,OAAO;SACR;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAY,CAAC;QAClC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;QACtB,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;QAEtB,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC;YACvC,IAAI,CAAC,SAAS,CAAC,GAAG,CAChB,IAAI,EACJ,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,KAAK,EAAE,EACpE,SAA2B,CAC5B,CAAC;YACF,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,CAAC;QAC1G,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,CAAC,MAAuB,EAAE,EAAE;YAC5C,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBACxD,OAAO;aACR;YACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAY,CAAC;YAClC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;YAC7B,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;YAC7B,MAAM,KAAK,GAAqB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAEzC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YAClB,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;YAElB,IAAI,QAAQ,EAAE;gBACZ,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;aAC/B;YACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE;gBAC7B,KAAK;gBACL,KAAK,EAAE,IAAI;aACmB,CAAC,CAAC;QACpC,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,EAAE,CACf,IAAI,EACJ,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,KAAK,EAAE,EACpE,SAA2B,CAC5B,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IACxG,CAAC;CACF","file":"zoomable.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { isNil } from '@visactor/vutils';\nimport type { BaseEventParams, EventType, ExtendEventParam, IEvent } from '../../event/interface';\nimport type { IRegion } from '../../region/interface';\nimport type { RenderMode } from '../../typings/spec';\nimport { RenderModeEnum } from '../../typings/spec';\nimport { defaultTriggerEvent } from '../../component/common/trigger/config';\nimport type { IZoomTrigger } from '../../component/common/trigger/interface';\nimport { isPointInRect } from '../../util';\nimport type { ISeries } from '../../series/interface';\nimport { Event_Bubble_Level, Event_Source_Type } from '../../constant';\n\nexport interface IZoomEventOptions {\n shouldZoom?: boolean;\n zoomCallback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void;\n shouldScroll?: boolean;\n scrollCallback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void;\n}\nexport interface IZoomable {\n initZoomable: (evt: IEvent, mode?: RenderMode) => void;\n initZoomEventOfSeries: (\n s: ISeries,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void\n ) => any;\n initZoomEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void\n ) => void;\n\n initScrollEventOfSeries: (\n s: ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void\n ) => any;\n initScrollEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void\n ) => void;\n\n initDragEventOfSeries: (s: ISeries, callback?: (delta: [number, number], e: BaseEventParams['event']) => void) => any;\n initDragEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void\n ) => void;\n}\n\nexport class Zoomable implements IZoomable {\n private _clickEnable: boolean;\n\n private _zoomableTrigger: IZoomTrigger;\n\n private _eventObj: IEvent;\n\n private _renderMode: RenderMode;\n\n initZoomable(evt: IEvent, mode: RenderMode = RenderModeEnum['desktop-browser']) {\n this._eventObj = evt;\n this._renderMode = mode;\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n this._clickEnable = true;\n this._zoomableTrigger = new (this.getTriggerEvent('trigger') as any)();\n }\n\n // event\n private getTriggerEvent(type: string): EventType {\n return defaultTriggerEvent[this._renderMode][type];\n }\n\n private _bindZoomEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void\n ) {\n eventObj.on(this.getTriggerEvent('scrollEnd'), { level: Event_Bubble_Level.chart, consume: false }, params => {\n this._zoomableTrigger.clearZoom();\n });\n eventObj.on(this.getTriggerEvent('scroll'), { level: Event_Bubble_Level.chart, consume: true }, params => {\n if (!(params as BaseEventParams).event) {\n return;\n }\n const { event } = params as BaseEventParams;\n this._zoomableTrigger.parserZoomEvent(event);\n // FIXME: event类型目前不全\n const { zoomDelta, zoomX, zoomY } = event as any;\n if (isNil(zoomDelta)) {\n return;\n }\n if (\n !isPointInRect(\n {\n x: zoomX,\n y: zoomY\n },\n {\n ...regionOrSeries.getLayoutRect(),\n ...regionOrSeries.getLayoutStartPoint()\n }\n )\n ) {\n return;\n }\n this._clickEnable = false;\n const scale = zoomDelta;\n\n if (callback) {\n callback({ zoomDelta, zoomX, zoomY }, event);\n }\n\n this._eventObj.emit('zoom', {\n scale,\n scaleCenter: { x: zoomX, y: zoomY },\n model: this\n } as unknown as ExtendEventParam);\n\n // this._eventObj.emit('scroll', {\n // scrollX: event.scrollX,\n // scrollY: event.scrollY,\n // model: this\n // } as unknown as ExtendEventParam);\n });\n }\n\n initZoomEventOfSeries(\n s: ISeries,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void\n ) {\n this._bindZoomEventAsRegion(s.event, s, callback);\n }\n\n initZoomEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void\n ) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n this._bindZoomEventAsRegion(s.event, s, callback);\n }\n });\n } else {\n this._bindZoomEventAsRegion(this._eventObj, r, callback);\n }\n });\n }\n\n initScrollEventOfSeries(\n s: ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void\n ) {\n this._bindScrollEventAsRegion(s.event, s, callback);\n }\n\n initScrollEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void\n ) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n this._bindScrollEventAsRegion(s.event, s, callback);\n }\n });\n } else {\n this._bindScrollEventAsRegion(this._eventObj, r, callback);\n }\n });\n }\n\n private _bindScrollEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void\n ) {\n eventObj.on(this.getTriggerEvent('scrollEnd'), { level: Event_Bubble_Level.chart, consume: false }, params => {\n this._zoomableTrigger.clearScroll();\n });\n eventObj.on(this.getTriggerEvent('scroll'), { level: Event_Bubble_Level.chart, consume: true }, params => {\n if (!(params as BaseEventParams).event) {\n return;\n }\n const { event } = params as BaseEventParams;\n this._zoomableTrigger.parserScrollEvent(event);\n // FIXME: event类型目前不全\n const { scrollX, scrollY } = event as any;\n if (isNil(scrollX) && isNil(scrollY)) {\n return;\n }\n if (\n !isPointInRect(\n {\n x: event.canvasX,\n y: event.canvasY\n },\n {\n ...regionOrSeries.getLayoutRect(),\n ...regionOrSeries.getLayoutStartPoint()\n }\n )\n ) {\n return;\n }\n this._clickEnable = false;\n\n if (callback) {\n callback({ scrollX, scrollY }, event);\n }\n\n this._eventObj.emit('scroll', {\n scrollX,\n scrollY,\n model: this\n } as unknown as ExtendEventParam);\n });\n }\n\n private _bindDragEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void\n ) {\n eventObj.on(this.getTriggerEvent('start'), { level: Event_Bubble_Level.chart }, params => {\n if (!(params as BaseEventParams).event) {\n return;\n }\n\n const { event } = params as BaseEventParams;\n const shouldTrigger = isPointInRect(\n {\n x: event.canvasX,\n y: event.canvasY\n },\n {\n ...regionOrSeries.getLayoutRect(),\n ...regionOrSeries.getLayoutStartPoint()\n }\n );\n if (shouldTrigger) {\n this._handleDrag(params, callback);\n }\n });\n // click 事件需要在drag和zoom时被屏蔽\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n eventObj.on('click', { level: Event_Bubble_Level.chart }, () => {\n return !this._clickEnable;\n });\n }\n\n initDragEventOfSeries(s: ISeries, callback?: (delta: [number, number], e: BaseEventParams['event']) => void) {\n s.event.on(\n this.getTriggerEvent('start'),\n { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id },\n params => {\n this._handleDrag(params, callback);\n }\n );\n }\n\n initDragEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void\n ) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n s.event.on(\n this.getTriggerEvent('start'),\n { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id },\n params => {\n this._handleDrag(params, callback);\n }\n );\n\n // click 事件需要在drag和zoom时被屏蔽\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n s.event.on('click', { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id }, () => {\n return !this._clickEnable;\n });\n }\n });\n } else {\n this._bindDragEventAsRegion(this._eventObj, r, callback);\n }\n });\n }\n\n protected _handleDrag(\n params: ExtendEventParam,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void\n ) {\n this._clickEnable = true;\n if (!this._zoomableTrigger.parserDragEvent(params.event)) {\n return;\n }\n const move = this.getTriggerEvent('move');\n const end = this.getTriggerEvent('end');\n const event = params.event as any;\n let x = event.canvasX;\n let y = event.canvasY;\n\n const mouseup = () => {\n this._zoomableTrigger.pointerId = null;\n this._eventObj.off(\n move,\n { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart },\n mousemove as unknown as any\n );\n this._eventObj.off(end, { level: Event_Bubble_Level.chart, source: Event_Source_Type.window }, mouseup);\n };\n const mousemove = (params: BaseEventParams) => {\n if (!this._zoomableTrigger.parserDragEvent(params.event)) {\n return;\n }\n this._clickEnable = false;\n const event = params.event as any;\n const dx = event.canvasX - x;\n const dy = event.canvasY - y;\n const delta: [number, number] = [dx, dy];\n\n x = event.canvasX;\n y = event.canvasY;\n\n if (callback) {\n callback(delta, params.event);\n }\n this._eventObj.emit('panmove', {\n delta,\n model: this\n } as unknown as ExtendEventParam);\n };\n this._eventObj.on(\n move,\n { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart },\n mousemove as unknown as any\n );\n this._eventObj.on(end, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mouseup);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/interaction/zoom/zoomable.ts"],"names":[],"mappings":"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","file":"zoomable.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { isNil } from '@visactor/vutils';\nimport type { BaseEventParams, EventType, ExtendEventParam, IEvent } from '../../event/interface';\nimport type { IRegion } from '../../region/interface';\nimport type { RenderMode } from '../../typings/spec';\nimport { RenderModeEnum } from '../../typings/spec';\nimport { defaultTriggerEvent } from '../../component/common/trigger/config';\nimport type { IZoomTrigger } from '../../component/common/trigger/interface';\nimport { isPointInRect } from '../../util';\nimport type { ISeries } from '../../series/interface';\nimport { Event_Bubble_Level, Event_Source_Type } from '../../constant';\n\nexport interface IZoomEventOptions {\n shouldZoom?: boolean;\n zoomCallback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void;\n shouldScroll?: boolean;\n scrollCallback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void;\n}\nexport interface IZoomable {\n initZoomable: (evt: IEvent, mode?: RenderMode) => void;\n initZoomEventOfSeries: (\n s: ISeries,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void\n ) => any;\n initZoomEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void\n ) => void;\n\n initScrollEventOfSeries: (\n s: ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void\n ) => any;\n initScrollEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void\n ) => void;\n\n initDragEventOfSeries: (s: ISeries, callback?: (delta: [number, number], e: BaseEventParams['event']) => void) => any;\n initDragEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void\n ) => void;\n}\n\nexport class Zoomable implements IZoomable {\n private _clickEnable: boolean;\n\n private _zoomableTrigger: IZoomTrigger;\n\n private _eventObj: IEvent;\n\n private _renderMode: RenderMode;\n\n initZoomable(evt: IEvent, mode: RenderMode = RenderModeEnum['desktop-browser']) {\n this._eventObj = evt;\n this._renderMode = mode;\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n this._clickEnable = true;\n this._zoomableTrigger = new (this.getTriggerEvent('trigger') as any)();\n }\n\n // event\n private getTriggerEvent(type: string): EventType {\n return defaultTriggerEvent[this._renderMode][type];\n }\n\n private _bindZoomEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void\n ) {\n eventObj.on(this.getTriggerEvent('scrollEnd'), { level: Event_Bubble_Level.chart, consume: false }, params => {\n this._zoomableTrigger.clearZoom();\n });\n eventObj.on(this.getTriggerEvent('scroll'), { level: Event_Bubble_Level.chart, consume: true }, params => {\n if (!(params as BaseEventParams).event) {\n return;\n }\n const { event } = params as BaseEventParams;\n this._zoomableTrigger.parserZoomEvent(event);\n // FIXME: event类型目前不全\n const { zoomDelta, zoomX, zoomY } = event as any;\n if (isNil(zoomDelta)) {\n return;\n }\n if (\n !isPointInRect(\n {\n x: zoomX,\n y: zoomY\n },\n {\n ...regionOrSeries.getLayoutRect(),\n ...regionOrSeries.getLayoutStartPoint()\n }\n )\n ) {\n return;\n }\n this._clickEnable = false;\n const scale = zoomDelta;\n\n if (callback) {\n callback({ zoomDelta, zoomX, zoomY }, event);\n }\n\n this._eventObj.emit('zoom', {\n scale,\n scaleCenter: { x: zoomX, y: zoomY },\n model: this\n } as unknown as ExtendEventParam);\n\n // this._eventObj.emit('scroll', {\n // scrollX: event.scrollX,\n // scrollY: event.scrollY,\n // model: this\n // } as unknown as ExtendEventParam);\n });\n }\n\n initZoomEventOfSeries(\n s: ISeries,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void\n ) {\n this._bindZoomEventAsRegion(s.event, s, callback);\n }\n\n initZoomEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void\n ) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n this._bindZoomEventAsRegion(s.event, s, callback);\n }\n });\n } else {\n this._bindZoomEventAsRegion(this._eventObj, r, callback);\n }\n });\n }\n\n initScrollEventOfSeries(\n s: ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void\n ) {\n this._bindScrollEventAsRegion(s.event, s, callback);\n }\n\n initScrollEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void\n ) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n this._bindScrollEventAsRegion(s.event, s, callback);\n }\n });\n } else {\n this._bindScrollEventAsRegion(this._eventObj, r, callback);\n }\n });\n }\n\n private _bindScrollEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void\n ) {\n eventObj.on(this.getTriggerEvent('scrollEnd'), { level: Event_Bubble_Level.chart, consume: false }, params => {\n this._zoomableTrigger.clearScroll();\n });\n eventObj.on(this.getTriggerEvent('scroll'), { level: Event_Bubble_Level.chart, consume: true }, params => {\n if (!(params as BaseEventParams).event) {\n return;\n }\n const { event } = params as BaseEventParams;\n this._zoomableTrigger.parserScrollEvent(event);\n // FIXME: event类型目前不全\n const { scrollX, scrollY } = event as any;\n if (isNil(scrollX) && isNil(scrollY)) {\n return;\n }\n if (\n !isPointInRect(\n {\n x: event.canvasX,\n y: event.canvasY\n },\n {\n ...regionOrSeries.getLayoutRect(),\n ...regionOrSeries.getLayoutStartPoint()\n }\n )\n ) {\n return;\n }\n this._clickEnable = false;\n\n if (callback) {\n callback({ scrollX, scrollY }, event);\n }\n\n this._eventObj.emit('scroll', {\n scrollX,\n scrollY,\n model: this\n } as unknown as ExtendEventParam);\n });\n }\n\n private _bindDragEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void\n ) {\n eventObj.on(this.getTriggerEvent('start'), { level: Event_Bubble_Level.chart }, params => {\n if (!(params as BaseEventParams).event) {\n return;\n }\n\n const { event } = params as BaseEventParams;\n const shouldTrigger = isPointInRect(\n {\n x: event.canvasX,\n y: event.canvasY\n },\n {\n ...regionOrSeries.getLayoutRect(),\n ...regionOrSeries.getLayoutStartPoint()\n }\n );\n if (shouldTrigger) {\n this._handleDrag(params, callback);\n }\n });\n // click 事件需要在drag和zoom时被屏蔽\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n eventObj.on('click', { level: Event_Bubble_Level.chart }, () => {\n return !this._clickEnable;\n });\n }\n\n initDragEventOfSeries(s: ISeries, callback?: (delta: [number, number], e: BaseEventParams['event']) => void) {\n s.event.on(\n this.getTriggerEvent('start'),\n { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id },\n params => {\n this._handleDrag(params, callback);\n }\n );\n }\n\n initDragEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void\n ) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n s.event.on(\n this.getTriggerEvent('start'),\n { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id },\n params => {\n this._handleDrag(params, callback);\n }\n );\n\n // click 事件需要在drag和zoom时被屏蔽\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n s.event.on('click', { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id }, () => {\n return !this._clickEnable;\n });\n }\n });\n } else {\n this._bindDragEventAsRegion(this._eventObj, r, callback);\n }\n });\n }\n\n protected _handleDrag(\n params: ExtendEventParam,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void\n ) {\n this._clickEnable = true;\n if (!this._zoomableTrigger.parserDragEvent(params.event)) {\n return;\n }\n const move = this.getTriggerEvent('move');\n const end = this.getTriggerEvent('end');\n const event = params.event as any;\n let x = event.canvasX;\n let y = event.canvasY;\n\n const mouseup = () => {\n this._zoomableTrigger.pointerId = null;\n this._eventObj.off(\n move,\n { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart },\n mousemove as unknown as any\n );\n this._eventObj.off(end, { level: Event_Bubble_Level.chart, source: Event_Source_Type.window }, mouseup);\n };\n const mousemove = (params: BaseEventParams) => {\n if (!this._zoomableTrigger.parserDragEvent(params.event)) {\n return;\n }\n this._clickEnable = false;\n const event = params.event as any;\n const dx = event.canvasX - x;\n const dy = event.canvasY - y;\n const delta: [number, number] = [dx, dy];\n\n x = event.canvasX;\n y = event.canvasY;\n\n if (callback) {\n callback(delta, params.event);\n }\n this._eventObj.emit('panmove', {\n delta,\n model: this\n } as unknown as ExtendEventParam);\n };\n this._eventObj.on(\n move,\n { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart },\n mousemove as unknown as any\n );\n this._eventObj.on(end, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mouseup);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["layout/grid-layout/grid-layout.ts"],"names":[],"mappings":"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","file":"grid-layout.js","sourcesContent":["import type { IChart } from '../../chart/interface/chart';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { IModel } from '../../model/interface';\nimport type { ILayoutItem } from '../../model/interface';\nimport type { IBaseLayout, ILayoutSpec } from '../interface';\nimport { isFunction, isValid, isValidNumber } from '../../util';\nimport type { IRect } from '../../typings/space';\n\ntype ElementSpec = (\n | {\n modelKey: string; // spec key\n modelIndex: number;\n }\n | {\n modelId: string;\n }\n) & {\n col: number;\n colSpan?: number;\n row: number;\n rowSpan?: number;\n};\n\nexport interface IGridInfo extends ILayoutSpec {\n col: number;\n row: number;\n colWidth?: [\n {\n index: number;\n size: number | ((maxSize: number) => number);\n }\n ];\n rowHeight?: [\n {\n index: number;\n size: number | ((maxSize: number) => number);\n }\n ];\n elements: ElementSpec[];\n}\n\ntype GridSize = {\n value: number;\n isUserSetting: boolean;\n isLayoutSetting: boolean;\n};\n\n// type ElementType = {\n// spec: ElementSpec;\n// item: ILayoutItem;\n// };\n\nexport class GridLayout implements IBaseLayout {\n static type: 'grid';\n private _chartLayoutRect: IRect = { x: 0, y: 0, width: 1, height: 1 };\n private _chartViewBox: IBoundsLike;\n\n protected _col: number = 1;\n protected _row: number = 1;\n protected _colSize: GridSize[];\n protected _rowSize: GridSize[];\n\n protected _colElements: ILayoutItem[][];\n protected _rowElements: ILayoutItem[][];\n\n protected _gridInfo: IGridInfo;\n\n protected _elementMap: Map<ILayoutItem, ElementSpec> = new Map();\n\n constructor(gridInfo: IGridInfo) {\n this.standardizationSpec(gridInfo);\n this._gridInfo = gridInfo;\n this._col = gridInfo.col;\n this._row = gridInfo.row;\n this._colSize = new Array(this._col).fill(null);\n this._rowSize = new Array(this._row).fill(null);\n this._colElements = new Array(this._col).fill([]);\n this._rowElements = new Array(this._row).fill([]);\n\n this.initUserSetting();\n }\n\n protected standardizationSpec(gridInfo: IGridInfo) {\n gridInfo.col = gridInfo.col ?? 1;\n gridInfo.row = gridInfo.row ?? 1;\n gridInfo.elements = gridInfo.elements ?? [];\n }\n\n protected initUserSetting() {\n // 先对用户设置的宽高进行设置\n this._gridInfo.colWidth &&\n this.setSizeFromUserSetting(this._gridInfo.colWidth, this._colSize, this._col, this._chartLayoutRect.width);\n\n this._gridInfo.rowHeight &&\n this.setSizeFromUserSetting(this._gridInfo.rowHeight, this._rowSize, this._row, this._chartLayoutRect.height);\n // 其余位置默认填充0\n this._colSize.forEach((c, i) => {\n if (!c) {\n this._colSize[i] = {\n value: 0,\n isUserSetting: false,\n isLayoutSetting: false\n };\n }\n });\n this._rowSize.forEach((r, i) => {\n if (!r) {\n this._rowSize[i] = {\n value: 0,\n isUserSetting: false,\n isLayoutSetting: false\n };\n }\n });\n }\n\n /**\n * 设置用户设置的 colWidth 和 rowHeight\n */\n protected setSizeFromUserSetting(\n userSetting: [\n {\n index: number;\n size: number | ((maxSize: number) => number);\n }\n ],\n gridSize: GridSize[],\n gridMax: number,\n maxSize: number\n ) {\n userSetting.forEach(userSet => {\n if (userSet.index < 0 && userSet.index >= gridMax) {\n return;\n }\n if (isValidNumber(userSet.size)) {\n gridSize[userSet.index] = {\n value: +userSet.size,\n isUserSetting: true,\n isLayoutSetting: false\n };\n } else if (isFunction(userSet.size)) {\n gridSize[userSet.index] = {\n value: userSet.size(maxSize),\n isUserSetting: true,\n isLayoutSetting: false\n };\n }\n });\n }\n\n protected clearLayoutSize() {\n // 其余位置默认填充0\n this._colSize.forEach(c => {\n c.isLayoutSetting = false;\n if (!c.isUserSetting) {\n c.value = 0;\n }\n });\n this._rowSize.forEach(r => {\n r.isLayoutSetting = false;\n if (!r.isUserSetting) {\n r.value = 0;\n }\n });\n }\n\n protected getItemGridInfo(item: ILayoutItem): ElementSpec {\n // map 中寻找\n const mapResult = this._elementMap.get(item);\n if (mapResult) {\n return mapResult;\n }\n // 配置中匹配\n const model = item as unknown as IModel;\n let result: ElementSpec | undefined;\n result = this._gridInfo.elements?.find(e => {\n if ('modelId' in e && isValid(e.modelId)) {\n if (isValid(model.userId) && model.userId === e.modelId) {\n return true;\n }\n } else if ('modelKey' in e && isValid(e.modelKey) && 'modelIndex' in e && isValid(e.modelIndex)) {\n if (model.specKey === e.modelKey && model.getSpecIndex() === e.modelIndex) {\n return true;\n }\n }\n return false;\n });\n // default\n if (!result) {\n result = {\n col: 0,\n colSpan: 1,\n row: 0,\n rowSpan: 1\n } as ElementSpec;\n }\n this._elementMap.set(item, result);\n return result;\n }\n\n protected getSizeFromGird(spec: ElementSpec, type: 'col' | 'row'): number | undefined {\n const sizeList = type === 'col' ? this._colSize : this._rowSize;\n let result = 0;\n for (let index = spec[type]; index < spec[type] + (spec[`${type}Span`] ?? 1); index++) {\n result += sizeList[index].value;\n }\n return result;\n }\n\n protected getSizeFromUser(spec: ElementSpec, type: 'col' | 'row'): number | undefined {\n const sizeList = type === 'col' ? this._colSize : this._rowSize;\n if (!sizeList[spec[type]].isUserSetting) {\n return undefined;\n }\n let result = 0;\n for (let index = spec[type]; index < spec[type] + (spec[`${type}Span`] ?? 1); index++) {\n if (!sizeList[index].isUserSetting) {\n return undefined;\n }\n result += sizeList[index].value;\n }\n return result;\n }\n\n protected setItemLayoutSizeToGrid(item: ILayoutItem, gridSpec: ElementSpec) {\n if (isColItem(item)) {\n if (gridSpec.colSpan && gridSpec.colSpan > 1) {\n return;\n }\n if (this._colSize[gridSpec.col].isUserSetting) {\n return;\n }\n this._colSize[gridSpec.col].value = Math.max(\n this._colSize[gridSpec.col].value,\n item.getLayoutRect().width + item.layoutPaddingLeft + item.layoutPaddingRight\n );\n this._colSize[gridSpec.col].isLayoutSetting = true;\n } else {\n if (gridSpec.rowSpan && gridSpec.rowSpan > 1) {\n return;\n }\n if (this._rowSize[gridSpec.row].isUserSetting) {\n return;\n }\n this._rowSize[gridSpec.row].value = Math.max(\n this._rowSize[gridSpec.row].value,\n item.getLayoutRect().height + item.layoutPaddingTop + item.layoutPaddingBottom\n );\n this._rowSize[gridSpec.row].isLayoutSetting = true;\n }\n }\n\n protected layoutGrid(type: 'col' | 'row') {\n const gridSize = type === 'col' ? this._colSize : this._rowSize;\n let unSetSize = type === 'col' ? this._chartLayoutRect.width : this._chartLayoutRect.height;\n const willSize: GridSize[] = [];\n gridSize.forEach(s => {\n if (s.isUserSetting || s.isLayoutSetting) {\n unSetSize -= s.value;\n } else {\n willSize.push(s);\n }\n });\n if (unSetSize < 0) {\n console.warn(`layout content ${type} size bigger than chart`);\n }\n willSize.forEach(s => (s.value = unSetSize / willSize.length));\n }\n\n protected getItemPosition(item: ILayoutItem) {\n const gridSpec = this.getItemGridInfo(item);\n const point = { x: this._chartLayoutRect.x, y: this._chartLayoutRect.y };\n for (let col = 0; col < gridSpec.col; col++) {\n point.x += this._colSize[col].value;\n }\n for (let row = 0; row < gridSpec.row; row++) {\n point.y += this._rowSize[row].value;\n }\n point.x += item.layoutPaddingLeft;\n point.y += item.layoutPaddingTop;\n return point;\n }\n\n protected getItemLayoutRect(item: ILayoutItem) {\n const gridSpec = this.getItemGridInfo(item);\n // 先设置空间\n const rect = {\n width:\n (this.getSizeFromGird(gridSpec, 'col') ?? this._chartLayoutRect.width) -\n item.layoutPaddingLeft -\n item.layoutPaddingRight,\n height:\n (this.getSizeFromGird(gridSpec, 'row') ?? this._chartLayoutRect.height) -\n item.layoutPaddingTop -\n item.layoutPaddingBottom\n };\n return rect;\n }\n\n layoutItems(_chart: IChart, items: ILayoutItem[], chartLayoutRect: IRect, chartViewBox: IBoundsLike): void {\n this._chartLayoutRect = chartLayoutRect;\n this._chartViewBox = chartViewBox;\n // 先清空旧布局信息\n this.clearLayoutSize();\n // 越大越先处理,进行排序调整,利用原地排序特性,排序会受 level 和传进来的数组顺序共同影响\n items.sort((a, b) => b.layoutLevel - a.layoutLevel);\n\n // 剔除 region 后,其余元素先布局运算\n const normalItems = items.filter(item => item.layoutType === 'normal');\n const normalItemsCol = normalItems.filter(item => isColItem(item));\n const normalItemsRow = normalItems.filter(item => !isColItem(item));\n normalItems.forEach(item => {\n this.layoutOneItem(item, 'user', false);\n });\n\n // region 和 region 关联元素\n const regionsRelative = items.filter(x => x.layoutType === 'region-relative');\n const regionsRelativeCol = regionsRelative.filter(item => isColItem(item));\n const regionsRelativeRow = regionsRelative.filter(item => !isColItem(item));\n // 先进行 col 方向布局\n regionsRelativeCol.forEach(item => this.layoutOneItem(item, 'user', false));\n // 然后得到最终 col 信息 此时已经是最终 col 信息\n this.layoutGrid('col');\n // 再使用宽度信息辅助row方向排序\n // 此时普通占位元素,会因为布局宽度影响最终布局高度\n normalItemsRow.forEach(item => this.layoutOneItem(item, 'colGrid', false));\n regionsRelativeRow.forEach(item => {\n this.layoutOneItem(item, 'colGrid', false);\n });\n // 然后得到最终 row 信息\n this.layoutGrid('row');\n // 统一水平方向元素高度\n regionsRelativeRow.forEach(item => {\n this.layoutOneItem(item, 'grid', false);\n });\n // 再使用宽度信息,第二次次对 col 方向布局\n normalItemsCol.forEach(item => this.layoutOneItem(item, 'grid', false));\n regionsRelativeCol.forEach(item => {\n // 此时从布局逻辑可知,item的layoutRect会发生,将item的layoutTag设置为true\n this.layoutOneItem(item, 'grid', true);\n });\n this.layoutGrid('col');\n\n // region\n items.filter(x => x.layoutType === 'region').forEach(item => this.layoutOneItem(item, 'grid', false));\n\n // 再找出 absolute 元素,无需排序,在 compiler 层需要排序放置\n this.layoutAbsoluteItems(items.filter(x => x.layoutType === 'absolute'));\n\n // 最后基于grid 设置位置\n items\n .filter(x => x.layoutType !== 'absolute')\n .forEach(item => {\n item.setLayoutStartPosition(this.getItemPosition(item));\n });\n }\n\n /**\n *\n * 无需排序,在 compiler 层需要排序放置\n *\n * 重要:absolute 默认依据 region 进行相对依赖\n */\n\n private layoutAbsoluteItems(absoluteItems: ILayoutItem[]) {\n absoluteItems.forEach(item => {\n // 设置盒子\n item.absoluteLayoutInRect(this._chartLayoutRect);\n });\n }\n\n protected layoutOneItem(item: ILayoutItem, sizeType: 'user' | 'grid' | 'colGrid' | 'rowGrid', ignoreTag: boolean) {\n const sizeCallRow =\n sizeType === 'rowGrid' || sizeType === 'grid' ? this.getSizeFromGird.bind(this) : this.getSizeFromUser.bind(this);\n const sizeCallCol =\n sizeType === 'colGrid' || sizeType === 'grid' ? this.getSizeFromGird.bind(this) : this.getSizeFromUser.bind(this);\n // 先获取 item 的 grid 信息\n const gridSpec = this.getItemGridInfo(item);\n // 先设置空间\n const computeRect = {\n width:\n (sizeCallCol(gridSpec, 'col') ?? this._chartLayoutRect.width) -\n item.layoutPaddingLeft -\n item.layoutPaddingRight,\n height:\n (sizeCallRow(gridSpec, 'row') ?? this._chartLayoutRect.height) -\n item.layoutPaddingTop -\n item.layoutPaddingBottom\n };\n const rect = item.computeBoundsInRect(computeRect);\n if (!isValidNumber(rect.width)) {\n rect.width = computeRect.width;\n }\n if (!isValidNumber(rect.height)) {\n rect.height = computeRect.height;\n }\n item.setLayoutRect(sizeType !== 'grid' ? rect : computeRect);\n // 设置大小到grid\n this.setItemLayoutSizeToGrid(item, gridSpec);\n }\n}\n\nfunction isColItem(item: ILayoutItem) {\n return item.layoutOrient === 'left' || item.layoutOrient === 'right';\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/layout/grid-layout/grid-layout.ts"],"names":[],"mappings":"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","file":"grid-layout.js","sourcesContent":["import type { IChart } from '../../chart/interface/chart';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { IModel } from '../../model/interface';\nimport type { ILayoutItem } from '../../model/interface';\nimport type { IBaseLayout, ILayoutSpec } from '../interface';\nimport { isFunction, isValid, isValidNumber } from '../../util';\nimport type { IRect } from '../../typings/space';\n\ntype ElementSpec = (\n | {\n modelKey: string; // spec key\n modelIndex: number;\n }\n | {\n modelId: string;\n }\n) & {\n col: number;\n colSpan?: number;\n row: number;\n rowSpan?: number;\n};\n\nexport interface IGridInfo extends ILayoutSpec {\n col: number;\n row: number;\n colWidth?: [\n {\n index: number;\n size: number | ((maxSize: number) => number);\n }\n ];\n rowHeight?: [\n {\n index: number;\n size: number | ((maxSize: number) => number);\n }\n ];\n elements: ElementSpec[];\n}\n\ntype GridSize = {\n value: number;\n isUserSetting: boolean;\n isLayoutSetting: boolean;\n};\n\n// type ElementType = {\n// spec: ElementSpec;\n// item: ILayoutItem;\n// };\n\nexport class GridLayout implements IBaseLayout {\n static type: 'grid';\n private _chartLayoutRect: IRect = { x: 0, y: 0, width: 1, height: 1 };\n private _chartViewBox: IBoundsLike;\n\n protected _col: number = 1;\n protected _row: number = 1;\n protected _colSize: GridSize[];\n protected _rowSize: GridSize[];\n\n protected _colElements: ILayoutItem[][];\n protected _rowElements: ILayoutItem[][];\n\n protected _gridInfo: IGridInfo;\n\n protected _elementMap: Map<ILayoutItem, ElementSpec> = new Map();\n\n constructor(gridInfo: IGridInfo) {\n this.standardizationSpec(gridInfo);\n this._gridInfo = gridInfo;\n this._col = gridInfo.col;\n this._row = gridInfo.row;\n this._colSize = new Array(this._col).fill(null);\n this._rowSize = new Array(this._row).fill(null);\n this._colElements = new Array(this._col).fill([]);\n this._rowElements = new Array(this._row).fill([]);\n\n this.initUserSetting();\n }\n\n protected standardizationSpec(gridInfo: IGridInfo) {\n gridInfo.col = gridInfo.col ?? 1;\n gridInfo.row = gridInfo.row ?? 1;\n gridInfo.elements = gridInfo.elements ?? [];\n }\n\n protected initUserSetting() {\n // 先对用户设置的宽高进行设置\n this._gridInfo.colWidth &&\n this.setSizeFromUserSetting(this._gridInfo.colWidth, this._colSize, this._col, this._chartLayoutRect.width);\n\n this._gridInfo.rowHeight &&\n this.setSizeFromUserSetting(this._gridInfo.rowHeight, this._rowSize, this._row, this._chartLayoutRect.height);\n // 其余位置默认填充0\n this._colSize.forEach((c, i) => {\n if (!c) {\n this._colSize[i] = {\n value: 0,\n isUserSetting: false,\n isLayoutSetting: false\n };\n }\n });\n this._rowSize.forEach((r, i) => {\n if (!r) {\n this._rowSize[i] = {\n value: 0,\n isUserSetting: false,\n isLayoutSetting: false\n };\n }\n });\n }\n\n /**\n * 设置用户设置的 colWidth 和 rowHeight\n */\n protected setSizeFromUserSetting(\n userSetting: [\n {\n index: number;\n size: number | ((maxSize: number) => number);\n }\n ],\n gridSize: GridSize[],\n gridMax: number,\n maxSize: number\n ) {\n userSetting.forEach(userSet => {\n if (userSet.index < 0 && userSet.index >= gridMax) {\n return;\n }\n if (isValidNumber(userSet.size)) {\n gridSize[userSet.index] = {\n value: +userSet.size,\n isUserSetting: true,\n isLayoutSetting: false\n };\n } else if (isFunction(userSet.size)) {\n gridSize[userSet.index] = {\n value: userSet.size(maxSize),\n isUserSetting: true,\n isLayoutSetting: false\n };\n }\n });\n }\n\n protected clearLayoutSize() {\n // 其余位置默认填充0\n this._colSize.forEach(c => {\n c.isLayoutSetting = false;\n if (!c.isUserSetting) {\n c.value = 0;\n }\n });\n this._rowSize.forEach(r => {\n r.isLayoutSetting = false;\n if (!r.isUserSetting) {\n r.value = 0;\n }\n });\n }\n\n protected getItemGridInfo(item: ILayoutItem): ElementSpec {\n // map 中寻找\n const mapResult = this._elementMap.get(item);\n if (mapResult) {\n return mapResult;\n }\n // 配置中匹配\n const model = item as unknown as IModel;\n let result: ElementSpec | undefined;\n result = this._gridInfo.elements?.find(e => {\n if ('modelId' in e && isValid(e.modelId)) {\n if (isValid(model.userId) && model.userId === e.modelId) {\n return true;\n }\n } else if ('modelKey' in e && isValid(e.modelKey) && 'modelIndex' in e && isValid(e.modelIndex)) {\n if (model.specKey === e.modelKey && model.getSpecIndex() === e.modelIndex) {\n return true;\n }\n }\n return false;\n });\n // default\n if (!result) {\n result = {\n col: 0,\n colSpan: 1,\n row: 0,\n rowSpan: 1\n } as ElementSpec;\n }\n this._elementMap.set(item, result);\n return result;\n }\n\n protected getSizeFromGird(spec: ElementSpec, type: 'col' | 'row'): number | undefined {\n const sizeList = type === 'col' ? this._colSize : this._rowSize;\n let result = 0;\n for (let index = spec[type]; index < spec[type] + (spec[`${type}Span`] ?? 1); index++) {\n result += sizeList[index].value;\n }\n return result;\n }\n\n protected getSizeFromUser(spec: ElementSpec, type: 'col' | 'row'): number | undefined {\n const sizeList = type === 'col' ? this._colSize : this._rowSize;\n if (!sizeList[spec[type]].isUserSetting) {\n return undefined;\n }\n let result = 0;\n for (let index = spec[type]; index < spec[type] + (spec[`${type}Span`] ?? 1); index++) {\n if (!sizeList[index].isUserSetting) {\n return undefined;\n }\n result += sizeList[index].value;\n }\n return result;\n }\n\n protected setItemLayoutSizeToGrid(item: ILayoutItem, gridSpec: ElementSpec) {\n if (isColItem(item)) {\n if (gridSpec.colSpan && gridSpec.colSpan > 1) {\n return;\n }\n if (this._colSize[gridSpec.col].isUserSetting) {\n return;\n }\n this._colSize[gridSpec.col].value = Math.max(\n this._colSize[gridSpec.col].value,\n item.getLayoutRect().width + item.layoutPaddingLeft + item.layoutPaddingRight\n );\n this._colSize[gridSpec.col].isLayoutSetting = true;\n } else {\n if (gridSpec.rowSpan && gridSpec.rowSpan > 1) {\n return;\n }\n if (this._rowSize[gridSpec.row].isUserSetting) {\n return;\n }\n this._rowSize[gridSpec.row].value = Math.max(\n this._rowSize[gridSpec.row].value,\n item.getLayoutRect().height + item.layoutPaddingTop + item.layoutPaddingBottom\n );\n this._rowSize[gridSpec.row].isLayoutSetting = true;\n }\n }\n\n protected layoutGrid(type: 'col' | 'row') {\n const gridSize = type === 'col' ? this._colSize : this._rowSize;\n let unSetSize = type === 'col' ? this._chartLayoutRect.width : this._chartLayoutRect.height;\n const willSize: GridSize[] = [];\n gridSize.forEach(s => {\n if (s.isUserSetting || s.isLayoutSetting) {\n unSetSize -= s.value;\n } else {\n willSize.push(s);\n }\n });\n if (unSetSize < 0) {\n console.warn(`layout content ${type} size bigger than chart`);\n }\n willSize.forEach(s => (s.value = unSetSize / willSize.length));\n }\n\n protected getItemPosition(item: ILayoutItem) {\n const gridSpec = this.getItemGridInfo(item);\n const point = { x: this._chartLayoutRect.x, y: this._chartLayoutRect.y };\n for (let col = 0; col < gridSpec.col; col++) {\n point.x += this._colSize[col].value;\n }\n for (let row = 0; row < gridSpec.row; row++) {\n point.y += this._rowSize[row].value;\n }\n point.x += item.layoutPaddingLeft;\n point.y += item.layoutPaddingTop;\n return point;\n }\n\n protected getItemLayoutRect(item: ILayoutItem) {\n const gridSpec = this.getItemGridInfo(item);\n // 先设置空间\n const rect = {\n width:\n (this.getSizeFromGird(gridSpec, 'col') ?? this._chartLayoutRect.width) -\n item.layoutPaddingLeft -\n item.layoutPaddingRight,\n height:\n (this.getSizeFromGird(gridSpec, 'row') ?? this._chartLayoutRect.height) -\n item.layoutPaddingTop -\n item.layoutPaddingBottom\n };\n return rect;\n }\n\n layoutItems(_chart: IChart, items: ILayoutItem[], chartLayoutRect: IRect, chartViewBox: IBoundsLike): void {\n this._chartLayoutRect = chartLayoutRect;\n this._chartViewBox = chartViewBox;\n // 先清空旧布局信息\n this.clearLayoutSize();\n // 越大越先处理,进行排序调整,利用原地排序特性,排序会受 level 和传进来的数组顺序共同影响\n items.sort((a, b) => b.layoutLevel - a.layoutLevel);\n\n // 剔除 region 后,其余元素先布局运算\n const normalItems = items.filter(item => item.layoutType === 'normal');\n const normalItemsCol = normalItems.filter(item => isColItem(item));\n const normalItemsRow = normalItems.filter(item => !isColItem(item));\n normalItems.forEach(item => {\n this.layoutOneItem(item, 'user', false);\n });\n\n // region 和 region 关联元素\n const regionsRelative = items.filter(x => x.layoutType === 'region-relative');\n const regionsRelativeCol = regionsRelative.filter(item => isColItem(item));\n const regionsRelativeRow = regionsRelative.filter(item => !isColItem(item));\n // 先进行 col 方向布局\n regionsRelativeCol.forEach(item => this.layoutOneItem(item, 'user', false));\n // 然后得到最终 col 信息 此时已经是最终 col 信息\n this.layoutGrid('col');\n // 再使用宽度信息辅助row方向排序\n // 此时普通占位元素,会因为布局宽度影响最终布局高度\n normalItemsRow.forEach(item => this.layoutOneItem(item, 'colGrid', false));\n regionsRelativeRow.forEach(item => {\n this.layoutOneItem(item, 'colGrid', false);\n });\n // 然后得到最终 row 信息\n this.layoutGrid('row');\n // 统一水平方向元素高度\n regionsRelativeRow.forEach(item => {\n this.layoutOneItem(item, 'grid', false);\n });\n // 再使用宽度信息,第二次次对 col 方向布局\n normalItemsCol.forEach(item => this.layoutOneItem(item, 'grid', false));\n regionsRelativeCol.forEach(item => {\n // 此时从布局逻辑可知,item的layoutRect会发生,将item的layoutTag设置为true\n this.layoutOneItem(item, 'grid', true);\n });\n this.layoutGrid('col');\n\n // region\n items.filter(x => x.layoutType === 'region').forEach(item => this.layoutOneItem(item, 'grid', false));\n\n // 再找出 absolute 元素,无需排序,在 compiler 层需要排序放置\n this.layoutAbsoluteItems(items.filter(x => x.layoutType === 'absolute'));\n\n // 最后基于grid 设置位置\n items\n .filter(x => x.layoutType !== 'absolute')\n .forEach(item => {\n item.setLayoutStartPosition(this.getItemPosition(item));\n });\n }\n\n /**\n *\n * 无需排序,在 compiler 层需要排序放置\n *\n * 重要:absolute 默认依据 region 进行相对依赖\n */\n\n private layoutAbsoluteItems(absoluteItems: ILayoutItem[]) {\n absoluteItems.forEach(item => {\n // 设置盒子\n item.absoluteLayoutInRect(this._chartLayoutRect);\n });\n }\n\n protected layoutOneItem(item: ILayoutItem, sizeType: 'user' | 'grid' | 'colGrid' | 'rowGrid', ignoreTag: boolean) {\n const sizeCallRow =\n sizeType === 'rowGrid' || sizeType === 'grid' ? this.getSizeFromGird.bind(this) : this.getSizeFromUser.bind(this);\n const sizeCallCol =\n sizeType === 'colGrid' || sizeType === 'grid' ? this.getSizeFromGird.bind(this) : this.getSizeFromUser.bind(this);\n // 先获取 item 的 grid 信息\n const gridSpec = this.getItemGridInfo(item);\n // 先设置空间\n const computeRect = {\n width:\n (sizeCallCol(gridSpec, 'col') ?? this._chartLayoutRect.width) -\n item.layoutPaddingLeft -\n item.layoutPaddingRight,\n height:\n (sizeCallRow(gridSpec, 'row') ?? this._chartLayoutRect.height) -\n item.layoutPaddingTop -\n item.layoutPaddingBottom\n };\n const rect = item.computeBoundsInRect(computeRect);\n if (!isValidNumber(rect.width)) {\n rect.width = computeRect.width;\n }\n if (!isValidNumber(rect.height)) {\n rect.height = computeRect.height;\n }\n item.setLayoutRect(sizeType !== 'grid' ? rect : computeRect);\n // 设置大小到grid\n this.setItemLayoutSizeToGrid(item, gridSpec);\n }\n}\n\nfunction isColItem(item: ILayoutItem) {\n return item.layoutOrient === 'left' || item.layoutOrient === 'right';\n}\n"]}
|
package/esm/layout/index.d.ts
CHANGED
|
@@ -2,20 +2,23 @@ import type { IChart } from '../chart/interface/chart';
|
|
|
2
2
|
import type { IBoundsLike } from '@visactor/vutils';
|
|
3
3
|
import type { ILayoutItem } from '../model/interface';
|
|
4
4
|
import type { IBaseLayout } from './interface';
|
|
5
|
-
import type { IRect } from '../typings/space';
|
|
5
|
+
import type { IPadding, IRect } from '../typings/space';
|
|
6
6
|
import type { IRegion } from '../region/interface';
|
|
7
7
|
export declare class Layout implements IBaseLayout {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
protected _leftCurrent: number;
|
|
9
|
+
protected _topCurrent: number;
|
|
10
|
+
protected _rightCurrent: number;
|
|
11
|
+
protected _bottomCurrent: number;
|
|
12
12
|
_chartLayoutRect: IRect;
|
|
13
13
|
_chartViewBox: IBoundsLike;
|
|
14
14
|
layoutItems(_chart: IChart, items: ILayoutItem[], chartLayoutRect: IRect, chartViewBox: IBoundsLike): void;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
protected layoutNormalItems(normalItems: ILayoutItem[]): void;
|
|
16
|
+
protected layoutRegionItems(regionItems: IRegion[], regionRelativeItems: ILayoutItem[]): void;
|
|
17
|
+
protected layoutAbsoluteItems(absoluteItems: ILayoutItem[]): void;
|
|
18
18
|
filterRegionsWithID(regions: IRegion[], id: number): ILayoutItem;
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
protected getItemComputeLayoutRect(item: ILayoutItem): {
|
|
20
|
+
width: number;
|
|
21
|
+
height: number;
|
|
22
|
+
};
|
|
23
|
+
protected _checkAutoIndent(items: ILayoutItem[]): IPadding;
|
|
21
24
|
}
|
package/esm/layout/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["layout/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { IChart } from '../chart/interface/chart';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { ILayoutItem } from '../model/interface';\nimport type { IBaseLayout } from './interface';\nimport type { IPadding, IRect } from '../typings/space';\nimport type { IRegion } from '../region/interface';\n\nexport class Layout implements IBaseLayout {\n private _leftCurrent: number = 0;\n private _topCurrent: number = 0;\n private _rightCurrent: number = 0;\n private _bottomCurrent: number = 0;\n\n _chartLayoutRect!: IRect;\n _chartViewBox!: IBoundsLike;\n\n layoutItems(_chart: IChart, items: ILayoutItem[], chartLayoutRect: IRect, chartViewBox: IBoundsLike): void {\n this._chartLayoutRect = chartLayoutRect;\n this._chartViewBox = chartViewBox;\n this._leftCurrent = chartLayoutRect.x;\n this._topCurrent = chartLayoutRect.y;\n this._rightCurrent = chartLayoutRect.x + chartLayoutRect.width;\n this._bottomCurrent = chartLayoutRect.height + chartLayoutRect.y;\n\n // 越大越先处理,进行排序调整,利用原地排序特性,排序会受 level 和传进来的数组顺序共同影响\n items.sort((a, b) => b.layoutLevel - a.layoutLevel);\n\n this.layoutNormalItems(items.filter(x => x.layoutType === 'normal'));\n\n const layoutTemp = {\n _leftCurrent: this._leftCurrent,\n _topCurrent: this._topCurrent,\n _rightCurrent: this._rightCurrent,\n _bottomCurrent: this._bottomCurrent\n };\n const regionItems = items.filter(x => x.layoutType === 'region') as IRegion[];\n const relativeItems = items.filter(x => x.layoutType === 'region-relative');\n // 有元素开启了自动缩进\n // TODO:目前只有普通占位布局下的 region-relative 元素支持\n // 主要考虑常规元素超出画布一般为用户个性设置,而且可以设置padding规避裁剪,不需要使用自动缩进\n this.layoutRegionItems(regionItems, relativeItems);\n if (relativeItems.some(i => i.getAutoIndent())) {\n // check auto indent\n const { top, bottom, left, right } = this._checkAutoIndent(relativeItems);\n // 如果出现了需要自动缩进的场景 则基于缩进再次布局\n if (top || bottom || left || right) {\n // set outer bounds to padding\n this._topCurrent = layoutTemp._topCurrent + top;\n this._bottomCurrent = layoutTemp._bottomCurrent - bottom;\n this._leftCurrent = layoutTemp._leftCurrent + left;\n this._rightCurrent = layoutTemp._rightCurrent - right;\n // reLayout\n this.layoutRegionItems(regionItems, relativeItems);\n }\n }\n\n this.layoutAbsoluteItems(items.filter(x => x.layoutType === 'absolute'));\n }\n\n private layoutNormalItems(normalItems: ILayoutItem[]): void {\n normalItems.forEach(item => {\n const layoutRect = this.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n\n if (item.layoutOrient === 'left') {\n item.setLayoutStartPosition({\n x: this._leftCurrent + item.layoutPaddingLeft,\n y: this._topCurrent + item.layoutPaddingTop\n });\n this._leftCurrent += rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n } else if (item.layoutOrient === 'top') {\n item.setLayoutStartPosition({\n x: this._leftCurrent + item.layoutPaddingLeft,\n y: this._topCurrent + item.layoutPaddingTop\n });\n this._topCurrent += rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n } else if (item.layoutOrient === 'right') {\n item.setLayoutStartPosition({\n x: this._rightCurrent - rect.width - item.layoutPaddingRight,\n y: this._topCurrent + item.layoutPaddingTop\n });\n this._rightCurrent -= rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n } else if (item.layoutOrient === 'bottom') {\n item.setLayoutStartPosition({\n x: this._leftCurrent + item.layoutPaddingRight,\n y: this._bottomCurrent - rect.height - item.layoutPaddingBottom\n });\n this._bottomCurrent -= rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n }\n });\n }\n\n /**\n *\n * 1. 补全 region-relative rect 和部分 layoutStartPoint\n * 2. 补全 region rect 和 layoutStartPoint\n *\n */\n private layoutRegionItems(regionItems: IRegion[], regionRelativeItems: ILayoutItem[]): void {\n let regionRelativeTotalWidth = this._rightCurrent - this._leftCurrent;\n let regionRelativeTotalHeight = this._bottomCurrent - this._topCurrent;\n\n regionRelativeItems\n .filter(x => x.layoutOrient === 'left' || x.layoutOrient === 'right')\n .forEach(item => {\n const layoutRect = this.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect({ width: rect.width });\n // 减少尺寸\n if (item.layoutOrient === 'left') {\n item.setLayoutStartPosition({\n x: this._leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft\n });\n this._leftCurrent += rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n } else if (item.layoutOrient === 'right') {\n this._rightCurrent -= rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n item.setLayoutStartPosition({\n x: this._rightCurrent + item.layoutOffsetX + item.layoutPaddingLeft\n });\n }\n });\n\n regionRelativeTotalWidth = this._rightCurrent - this._leftCurrent;\n\n regionRelativeItems\n .filter(x => x.layoutOrient === 'top' || x.layoutOrient === 'bottom')\n .forEach(item => {\n const layoutRect = this.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect({ height: rect.height });\n\n // 减少尺寸\n if (item.layoutOrient === 'top') {\n item.setLayoutStartPosition({\n y: this._topCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n this._topCurrent += rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n } else if (item.layoutOrient === 'bottom') {\n this._bottomCurrent -= rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n item.setLayoutStartPosition({\n y: this._bottomCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n }\n });\n // 此时得到height\n regionRelativeTotalHeight = this._bottomCurrent - this._topCurrent;\n\n // region 处理\n regionItems.forEach(region => {\n region.setLayoutRect({\n width: regionRelativeTotalWidth,\n height: regionRelativeTotalHeight\n });\n\n region.setLayoutStartPosition({\n x: this._leftCurrent + region.layoutOffsetX + region.layoutPaddingLeft,\n y: this._topCurrent + region.layoutOffsetY + region.layoutPaddingTop\n });\n });\n\n // region-relative 特殊处理\n regionRelativeItems.forEach(item => {\n // 处理特殊元素的宽高\n if (['left', 'right'].includes(item.layoutOrient)) {\n // 用户有配置的话,已经处理过,不需要再次处理\n const relativeRegion = this.filterRegionsWithID(regionItems, item.layoutBindRegionID[0]);\n\n item.setLayoutRect({\n height: relativeRegion.getLayoutRect().height\n });\n item.setLayoutStartPosition({\n y: relativeRegion.getLayoutStartPoint().y + item.layoutOffsetY + item.layoutPaddingTop\n });\n } else if (['top', 'bottom'].includes(item.layoutOrient)) {\n const relativeRegion = this.filterRegionsWithID(regionItems, item.layoutBindRegionID[0]);\n\n item.setLayoutRect({\n width: relativeRegion.getLayoutRect().width\n });\n\n item.setLayoutStartPosition({\n x: relativeRegion.getLayoutStartPoint().x + item.layoutOffsetX + item.layoutPaddingLeft\n });\n }\n });\n }\n\n /**\n * 再找出对 absolute 元素,无需排序,在 compiler 层需要排序放置\n *\n * 重要:absolute 默认依据 region 进行相对依赖\n */\n private layoutAbsoluteItems(absoluteItems: ILayoutItem[]) {\n absoluteItems.forEach(item => {\n // 设置盒子\n item.absoluteLayoutInRect(this._chartLayoutRect);\n });\n }\n\n // 对普通布局来说,只出一个 region 绑定\n filterRegionsWithID(regions: IRegion[], id: number): ILayoutItem {\n const target = regions.find(x => x.id === id);\n if (!target) {\n throw Error('can not find target region item, invalid id');\n }\n return target;\n }\n\n /**\n * 工具方法 根据item属性获取给item提供的布局空间\n * @param item\n */\n private getItemComputeLayoutRect(item: ILayoutItem) {\n const result = {\n width: this._rightCurrent - this._leftCurrent - item.layoutPaddingLeft - item.layoutPaddingRight,\n height: this._bottomCurrent - this._topCurrent - item.layoutPaddingTop - item.layoutPaddingBottom\n };\n return result;\n }\n\n private _checkAutoIndent(items: ILayoutItem[]): IPadding {\n const result = {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n };\n const rightCurrent = this._chartViewBox.x2 - this._chartViewBox.x1 - this._rightCurrent;\n const bottomCurrent = this._chartViewBox.y2 - this._chartViewBox.y1 - this._bottomCurrent;\n items.filter;\n items.forEach(i => {\n if (!i.getAutoIndent()) {\n return;\n }\n const vOrH = i.layoutOrient === 'left' || i.layoutOrient === 'right';\n const outer = i.getLastComputeOutBounds();\n if (vOrH) {\n result.top = Math.max(result.top, outer.y1 - this._topCurrent);\n result.bottom = Math.max(result.bottom, outer.y2 - bottomCurrent);\n } else {\n result.left = Math.max(result.left, outer.x1 - this._leftCurrent);\n result.right = Math.max(result.right, outer.x2 - rightCurrent);\n }\n });\n return result;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/layout/index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { IChart } from '../chart/interface/chart';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { ILayoutItem } from '../model/interface';\nimport type { IBaseLayout } from './interface';\nimport type { IPadding, IRect } from '../typings/space';\nimport type { IRegion } from '../region/interface';\n\nexport class Layout implements IBaseLayout {\n protected _leftCurrent: number = 0;\n protected _topCurrent: number = 0;\n protected _rightCurrent: number = 0;\n protected _bottomCurrent: number = 0;\n\n _chartLayoutRect!: IRect;\n _chartViewBox!: IBoundsLike;\n\n layoutItems(_chart: IChart, items: ILayoutItem[], chartLayoutRect: IRect, chartViewBox: IBoundsLike): void {\n this._chartLayoutRect = chartLayoutRect;\n this._chartViewBox = chartViewBox;\n this._leftCurrent = chartLayoutRect.x;\n this._topCurrent = chartLayoutRect.y;\n this._rightCurrent = chartLayoutRect.x + chartLayoutRect.width;\n this._bottomCurrent = chartLayoutRect.height + chartLayoutRect.y;\n\n // 越大越先处理,进行排序调整,利用原地排序特性,排序会受 level 和传进来的数组顺序共同影响\n items.sort((a, b) => b.layoutLevel - a.layoutLevel);\n\n this.layoutNormalItems(items.filter(x => x.layoutType === 'normal'));\n\n const layoutTemp = {\n _leftCurrent: this._leftCurrent,\n _topCurrent: this._topCurrent,\n _rightCurrent: this._rightCurrent,\n _bottomCurrent: this._bottomCurrent\n };\n const regionItems = items.filter(x => x.layoutType === 'region') as IRegion[];\n const relativeItems = items.filter(x => x.layoutType === 'region-relative');\n // 有元素开启了自动缩进\n // TODO:目前只有普通占位布局下的 region-relative 元素支持\n // 主要考虑常规元素超出画布一般为用户个性设置,而且可以设置padding规避裁剪,不需要使用自动缩进\n this.layoutRegionItems(regionItems, relativeItems);\n if (relativeItems.some(i => i.getAutoIndent())) {\n // check auto indent\n const { top, bottom, left, right } = this._checkAutoIndent(relativeItems);\n // 如果出现了需要自动缩进的场景 则基于缩进再次布局\n if (top || bottom || left || right) {\n // set outer bounds to padding\n this._topCurrent = layoutTemp._topCurrent + top;\n this._bottomCurrent = layoutTemp._bottomCurrent - bottom;\n this._leftCurrent = layoutTemp._leftCurrent + left;\n this._rightCurrent = layoutTemp._rightCurrent - right;\n // reLayout\n this.layoutRegionItems(regionItems, relativeItems);\n }\n }\n\n this.layoutAbsoluteItems(items.filter(x => x.layoutType === 'absolute'));\n }\n\n protected layoutNormalItems(normalItems: ILayoutItem[]): void {\n normalItems.forEach(item => {\n const layoutRect = this.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect(rect);\n\n if (item.layoutOrient === 'left') {\n item.setLayoutStartPosition({\n x: this._leftCurrent + item.layoutPaddingLeft,\n y: this._topCurrent + item.layoutPaddingTop\n });\n this._leftCurrent += rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n } else if (item.layoutOrient === 'top') {\n item.setLayoutStartPosition({\n x: this._leftCurrent + item.layoutPaddingLeft,\n y: this._topCurrent + item.layoutPaddingTop\n });\n this._topCurrent += rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n } else if (item.layoutOrient === 'right') {\n item.setLayoutStartPosition({\n x: this._rightCurrent - rect.width - item.layoutPaddingRight,\n y: this._topCurrent + item.layoutPaddingTop\n });\n this._rightCurrent -= rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n } else if (item.layoutOrient === 'bottom') {\n item.setLayoutStartPosition({\n x: this._leftCurrent + item.layoutPaddingRight,\n y: this._bottomCurrent - rect.height - item.layoutPaddingBottom\n });\n this._bottomCurrent -= rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n }\n });\n }\n\n /**\n *\n * 1. 补全 region-relative rect 和部分 layoutStartPoint\n * 2. 补全 region rect 和 layoutStartPoint\n *\n */\n protected layoutRegionItems(regionItems: IRegion[], regionRelativeItems: ILayoutItem[]): void {\n let regionRelativeTotalWidth = this._rightCurrent - this._leftCurrent;\n let regionRelativeTotalHeight = this._bottomCurrent - this._topCurrent;\n\n regionRelativeItems\n .filter(x => x.layoutOrient === 'left' || x.layoutOrient === 'right')\n .forEach(item => {\n const layoutRect = this.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect({ width: rect.width });\n // 减少尺寸\n if (item.layoutOrient === 'left') {\n item.setLayoutStartPosition({\n x: this._leftCurrent + item.layoutOffsetX + item.layoutPaddingLeft\n });\n this._leftCurrent += rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n } else if (item.layoutOrient === 'right') {\n this._rightCurrent -= rect.width + item.layoutPaddingLeft + item.layoutPaddingRight;\n item.setLayoutStartPosition({\n x: this._rightCurrent + item.layoutOffsetX + item.layoutPaddingLeft\n });\n }\n });\n\n regionRelativeTotalWidth = this._rightCurrent - this._leftCurrent;\n\n regionRelativeItems\n .filter(x => x.layoutOrient === 'top' || x.layoutOrient === 'bottom')\n .forEach(item => {\n const layoutRect = this.getItemComputeLayoutRect(item);\n const rect = item.computeBoundsInRect(layoutRect);\n item.setLayoutRect({ height: rect.height });\n\n // 减少尺寸\n if (item.layoutOrient === 'top') {\n item.setLayoutStartPosition({\n y: this._topCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n this._topCurrent += rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n } else if (item.layoutOrient === 'bottom') {\n this._bottomCurrent -= rect.height + item.layoutPaddingTop + item.layoutPaddingBottom;\n item.setLayoutStartPosition({\n y: this._bottomCurrent + item.layoutOffsetY + item.layoutPaddingTop\n });\n }\n });\n // 此时得到height\n regionRelativeTotalHeight = this._bottomCurrent - this._topCurrent;\n\n // region 处理\n regionItems.forEach(region => {\n region.setLayoutRect({\n width: regionRelativeTotalWidth,\n height: regionRelativeTotalHeight\n });\n\n region.setLayoutStartPosition({\n x: this._leftCurrent + region.layoutOffsetX + region.layoutPaddingLeft,\n y: this._topCurrent + region.layoutOffsetY + region.layoutPaddingTop\n });\n });\n\n // region-relative 特殊处理\n regionRelativeItems.forEach(item => {\n // 处理特殊元素的宽高\n if (['left', 'right'].includes(item.layoutOrient)) {\n // 用户有配置的话,已经处理过,不需要再次处理\n const relativeRegion = this.filterRegionsWithID(regionItems, item.layoutBindRegionID[0]);\n\n item.setLayoutRect({\n height: relativeRegion.getLayoutRect().height\n });\n item.setLayoutStartPosition({\n y: relativeRegion.getLayoutStartPoint().y + item.layoutOffsetY + item.layoutPaddingTop\n });\n } else if (['top', 'bottom'].includes(item.layoutOrient)) {\n const relativeRegion = this.filterRegionsWithID(regionItems, item.layoutBindRegionID[0]);\n\n item.setLayoutRect({\n width: relativeRegion.getLayoutRect().width\n });\n\n item.setLayoutStartPosition({\n x: relativeRegion.getLayoutStartPoint().x + item.layoutOffsetX + item.layoutPaddingLeft\n });\n }\n });\n }\n\n /**\n * 再找出对 absolute 元素,无需排序,在 compiler 层需要排序放置\n *\n * 重要:absolute 默认依据 region 进行相对依赖\n */\n protected layoutAbsoluteItems(absoluteItems: ILayoutItem[]) {\n absoluteItems.forEach(item => {\n // 设置盒子\n item.absoluteLayoutInRect(this._chartLayoutRect);\n });\n }\n\n // 对普通布局来说,只出一个 region 绑定\n filterRegionsWithID(regions: IRegion[], id: number): ILayoutItem {\n const target = regions.find(x => x.id === id);\n if (!target) {\n throw Error('can not find target region item, invalid id');\n }\n return target;\n }\n\n /**\n * 工具方法 根据item属性获取给item提供的布局空间\n * @param item\n */\n protected getItemComputeLayoutRect(item: ILayoutItem) {\n const result = {\n width: this._rightCurrent - this._leftCurrent - item.layoutPaddingLeft - item.layoutPaddingRight,\n height: this._bottomCurrent - this._topCurrent - item.layoutPaddingTop - item.layoutPaddingBottom\n };\n return result;\n }\n\n protected _checkAutoIndent(items: ILayoutItem[]): IPadding {\n const result = {\n top: 0,\n left: 0,\n bottom: 0,\n right: 0\n };\n const rightCurrent = this._chartViewBox.x2 - this._chartViewBox.x1 - this._rightCurrent;\n const bottomCurrent = this._chartViewBox.y2 - this._chartViewBox.y1 - this._bottomCurrent;\n items.filter;\n items.forEach(i => {\n if (!i.getAutoIndent()) {\n return;\n }\n const vOrH = i.layoutOrient === 'left' || i.layoutOrient === 'right';\n const outer = i.getLastComputeOutBounds();\n if (vOrH) {\n result.top = Math.max(result.top, outer.y1 - this._topCurrent);\n result.bottom = Math.max(result.bottom, outer.y2 - bottomCurrent);\n } else {\n result.left = Math.max(result.left, outer.x1 - this._leftCurrent);\n result.right = Math.max(result.right, outer.x2 - rightCurrent);\n }\n });\n return result;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["layout/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IRect } from '../typings/space';\nimport type { ILayoutItem } from '../model/interface';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { IChart } from '../chart/interface';\n\nexport interface IBaseLayout {\n /**\n * 对一组布局元素布局\n * 布局策略随意\n * @param item 布局元素数组\n * @param chartLayoutRect 排除图表 padding 后的图表的布局矩形,原点是图表绘制区域左上角。\n * @param chartViewBox 图表在画布中的可用空间,包含图表padding,原点是画布左上角\n * @returns\n */\n layoutItems: LayoutCallBack;\n}\n\nexport type LayoutCallBack = (\n chart: IChart,\n item: ILayoutItem[],\n chartLayoutRect: IRect,\n chartViewBox: IBoundsLike\n) => void;\n\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ILayoutSpec {\n type?: string;\n [key: string]: any;\n}\n\nexport interface ILayoutConstructor {\n type: string;\n // TODO: spec 类型生命\n new (spec: ILayoutSpec | any): IBaseLayout;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/layout/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IRect } from '../typings/space';\nimport type { ILayoutItem } from '../model/interface';\nimport type { IBoundsLike } from '@visactor/vutils';\nimport type { IChart } from '../chart/interface';\n\nexport interface IBaseLayout {\n /**\n * 对一组布局元素布局\n * 布局策略随意\n * @param item 布局元素数组\n * @param chartLayoutRect 排除图表 padding 后的图表的布局矩形,原点是图表绘制区域左上角。\n * @param chartViewBox 图表在画布中的可用空间,包含图表padding,原点是画布左上角\n * @returns\n */\n layoutItems: LayoutCallBack;\n}\n\nexport type LayoutCallBack = (\n chart: IChart,\n item: ILayoutItem[],\n chartLayoutRect: IRect,\n chartViewBox: IBoundsLike\n) => void;\n\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ILayoutSpec {\n type?: string;\n [key: string]: any;\n}\n\nexport interface ILayoutConstructor {\n type: string;\n // TODO: spec 类型生命\n new (spec: ILayoutSpec | any): IBaseLayout;\n}\n"]}
|