@visactor/vchart 1.15.5-alpha.8 → 2.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/es5/index.js +2 -2
- package/build/index.es.js +7051 -13444
- package/build/index.js +7065 -13447
- package/build/index.min.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/animation/animate-manager.d.ts +2 -4
- package/cjs/animation/animate-manager.js +6 -9
- package/cjs/animation/animate-manager.js.map +1 -1
- package/cjs/animation/config.js +10 -20
- package/cjs/animation/config.js.map +1 -1
- package/cjs/animation/interface.d.ts +86 -2
- package/cjs/animation/interface.js.map +1 -1
- package/cjs/animation/spec.d.ts +27 -3
- package/cjs/animation/spec.js.map +1 -1
- package/cjs/animation/utils.d.ts +3 -4
- package/cjs/animation/utils.js +9 -9
- package/cjs/animation/utils.js.map +1 -1
- package/cjs/chart/area/area.js +3 -2
- package/cjs/chart/area/area.js.map +1 -1
- package/cjs/chart/bar/bar.js +3 -2
- package/cjs/chart/bar/bar.js.map +1 -1
- package/cjs/chart/base/base-chart-transformer.js +2 -2
- package/cjs/chart/base/base-chart-transformer.js.map +1 -1
- package/cjs/chart/base/base-chart.d.ts +10 -7
- package/cjs/chart/base/base-chart.js +84 -72
- package/cjs/chart/base/base-chart.js.map +1 -1
- package/cjs/chart/box-plot/box-plot.js +3 -2
- package/cjs/chart/box-plot/box-plot.js.map +1 -1
- package/cjs/chart/funnel/util.d.ts +2 -0
- package/cjs/chart/funnel/util.js +14 -0
- package/cjs/chart/funnel/util.js.map +1 -0
- package/cjs/chart/histogram/3d/histogram-3d.js +3 -2
- package/cjs/chart/histogram/3d/histogram-3d.js.map +1 -1
- package/cjs/chart/histogram/histogram.js +3 -2
- package/cjs/chart/histogram/histogram.js.map +1 -1
- package/cjs/chart/interface/chart.d.ts +3 -4
- package/cjs/chart/interface/chart.js.map +1 -1
- package/cjs/chart/interface/common.d.ts +2 -9
- package/cjs/chart/interface/common.js.map +1 -1
- package/cjs/chart/line/line.js +3 -2
- package/cjs/chart/line/line.js.map +1 -1
- package/cjs/chart/mosaic/mosaic.js +3 -2
- package/cjs/chart/mosaic/mosaic.js.map +1 -1
- package/cjs/chart/progress/circular/circular.js +3 -2
- package/cjs/chart/progress/circular/circular.js.map +1 -1
- package/cjs/chart/progress/linear/linear.js +3 -2
- package/cjs/chart/progress/linear/linear.js.map +1 -1
- package/cjs/chart/radar/radar.js +3 -2
- package/cjs/chart/radar/radar.js.map +1 -1
- package/cjs/chart/range-area/range-area.js +3 -2
- package/cjs/chart/range-area/range-area.js.map +1 -1
- package/cjs/chart/range-column/3d/range-column-3d.js +3 -3
- package/cjs/chart/range-column/3d/range-column-3d.js.map +1 -1
- package/cjs/chart/range-column/range-column.js +3 -2
- package/cjs/chart/range-column/range-column.js.map +1 -1
- package/cjs/chart/rose/rose.js +3 -2
- package/cjs/chart/rose/rose.js.map +1 -1
- package/cjs/chart/sankey/sankey.d.ts +1 -1
- package/cjs/chart/sankey/sankey.js +20 -18
- package/cjs/chart/sankey/sankey.js.map +1 -1
- package/cjs/chart/scatter/scatter.js +3 -2
- package/cjs/chart/scatter/scatter.js.map +1 -1
- package/cjs/chart/sequence/sequence-transformer.js +2 -2
- package/cjs/chart/sequence/sequence-transformer.js.map +1 -1
- package/cjs/chart/util.js +2 -2
- package/cjs/chart/util.js.map +1 -1
- package/cjs/chart/waterfall/waterfall.js +3 -2
- package/cjs/chart/waterfall/waterfall.js.map +1 -1
- package/cjs/compile/compilable-base.d.ts +1 -1
- package/cjs/compile/compilable-base.js +2 -2
- package/cjs/compile/compilable-base.js.map +1 -1
- package/cjs/compile/compiler.d.ts +35 -25
- package/cjs/compile/compiler.js +183 -144
- package/cjs/compile/compiler.js.map +1 -1
- package/cjs/compile/data/compilable-data.d.ts +7 -7
- package/cjs/compile/data/compilable-data.js +20 -20
- package/cjs/compile/data/compilable-data.js.map +1 -1
- package/cjs/compile/data/interface.d.ts +4 -1
- package/cjs/compile/data/interface.js.map +1 -1
- package/cjs/compile/grammar-item.d.ts +7 -13
- package/cjs/compile/grammar-item.js +14 -34
- package/cjs/compile/grammar-item.js.map +1 -1
- package/cjs/compile/interface/compilable-item.d.ts +22 -28
- package/cjs/compile/interface/compilable-item.js +1 -1
- package/cjs/compile/interface/compilable-item.js.map +1 -1
- package/cjs/compile/interface/compiler.d.ts +13 -4
- package/cjs/compile/interface/compiler.js +6 -1
- package/cjs/compile/interface/compiler.js.map +1 -1
- package/cjs/compile/mark/index.d.ts +0 -1
- package/cjs/compile/mark/index.js +1 -2
- package/cjs/compile/mark/index.js.map +1 -1
- package/cjs/compile/mark/interface.d.ts +42 -33
- package/cjs/compile/mark/interface.js +2 -1
- package/cjs/compile/mark/interface.js.map +1 -1
- package/cjs/compile/mark/mark-state-manager.d.ts +11 -13
- package/cjs/compile/mark/mark-state-manager.js +25 -32
- package/cjs/compile/mark/mark-state-manager.js.map +1 -1
- package/cjs/compile/mark/util.d.ts +1 -1
- package/cjs/compile/mark/util.js.map +1 -1
- package/cjs/compile/state-manager.d.ts +11 -0
- package/cjs/compile/state-manager.js +29 -0
- package/cjs/compile/state-manager.js.map +1 -0
- package/cjs/compile/util.d.ts +14 -0
- package/cjs/compile/util.js +116 -13
- package/cjs/compile/util.js.map +1 -1
- package/cjs/component/axis/base-axis.d.ts +5 -3
- package/cjs/component/axis/base-axis.js +20 -17
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/axis.d.ts +1 -1
- package/cjs/component/axis/cartesian/axis.js +19 -21
- package/cjs/component/axis/cartesian/axis.js.map +1 -1
- package/cjs/component/axis/cartesian/band-axis.js +4 -3
- package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/linear-axis.js +3 -2
- package/cjs/component/axis/cartesian/linear-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/log-axis.js +3 -2
- package/cjs/component/axis/cartesian/log-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/symlog-axis.js +3 -2
- package/cjs/component/axis/cartesian/symlog-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/time-axis.d.ts +1 -0
- package/cjs/component/axis/cartesian/time-axis.js +7 -2
- package/cjs/component/axis/cartesian/time-axis.js.map +1 -1
- package/cjs/component/axis/interface/common.d.ts +8 -0
- package/cjs/component/axis/interface/common.js +7 -1
- package/cjs/component/axis/interface/common.js.map +1 -1
- package/cjs/component/axis/polar/axis.js +2 -2
- package/cjs/component/axis/polar/axis.js.map +1 -1
- package/cjs/component/axis/polar/band-axis.js +5 -3
- package/cjs/component/axis/polar/band-axis.js.map +1 -1
- package/cjs/component/axis/polar/linear-axis.js +5 -3
- package/cjs/component/axis/polar/linear-axis.js.map +1 -1
- package/cjs/component/base/base-component.d.ts +1 -2
- package/cjs/component/base/base-component.js.map +1 -1
- package/cjs/component/brush/brush.d.ts +12 -10
- package/cjs/component/brush/brush.js +32 -31
- package/cjs/component/brush/brush.js.map +1 -1
- package/cjs/component/crosshair/base.d.ts +25 -36
- package/cjs/component/crosshair/base.js +92 -8
- package/cjs/component/crosshair/base.js.map +1 -1
- package/cjs/component/crosshair/cartesian.d.ts +5 -28
- package/cjs/component/crosshair/cartesian.js +72 -170
- package/cjs/component/crosshair/cartesian.js.map +1 -1
- package/cjs/component/crosshair/interface/common.d.ts +67 -2
- package/cjs/component/crosshair/interface/common.js.map +1 -1
- package/cjs/component/crosshair/interface/index.d.ts +0 -2
- package/cjs/component/crosshair/interface/index.js +0 -1
- package/cjs/component/crosshair/interface/index.js.map +1 -1
- package/cjs/component/crosshair/interface/spec.d.ts +8 -4
- package/cjs/component/crosshair/interface/spec.js.map +1 -1
- package/cjs/component/crosshair/polar.d.ts +6 -22
- package/cjs/component/crosshair/polar.js +78 -143
- package/cjs/component/crosshair/polar.js.map +1 -1
- package/cjs/component/crosshair/utils/cartesian.d.ts +5 -26
- package/cjs/component/crosshair/utils/cartesian.js +86 -174
- package/cjs/component/crosshair/utils/cartesian.js.map +1 -1
- package/cjs/component/crosshair/utils/polar.d.ts +18 -11
- package/cjs/component/crosshair/utils/polar.js +72 -117
- package/cjs/component/crosshair/utils/polar.js.map +1 -1
- package/cjs/component/custom-mark/custom-mark.js +3 -11
- package/cjs/component/custom-mark/custom-mark.js.map +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.d.ts +4 -4
- package/cjs/component/data-zoom/data-filter-base-component.js +12 -11
- 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 +4 -4
- package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/cjs/component/data-zoom/interface.d.ts +11 -0
- package/cjs/component/data-zoom/interface.js.map +1 -1
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +1 -2
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +9 -12
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
- package/cjs/component/geo/geo-coordinate.d.ts +2 -2
- package/cjs/component/geo/geo-coordinate.js +4 -4
- package/cjs/component/geo/geo-coordinate.js.map +1 -1
- package/cjs/component/geo/interface.d.ts +1 -1
- package/cjs/component/geo/interface.js.map +1 -1
- package/cjs/component/indicator/indicator.js +13 -14
- package/cjs/component/indicator/indicator.js.map +1 -1
- package/cjs/component/label/base-label.d.ts +5 -0
- package/cjs/component/label/base-label.js +45 -1
- package/cjs/component/label/base-label.js.map +1 -1
- package/cjs/component/label/interface.d.ts +4 -3
- package/cjs/component/label/interface.js.map +1 -1
- package/cjs/component/label/label.d.ts +5 -3
- package/cjs/component/label/label.js +76 -51
- package/cjs/component/label/label.js.map +1 -1
- package/cjs/component/label/total-label.js +40 -36
- package/cjs/component/label/total-label.js.map +1 -1
- package/cjs/component/label/util.d.ts +9 -10
- package/cjs/component/label/util.js +18 -16
- package/cjs/component/label/util.js.map +1 -1
- package/cjs/component/legend/util.d.ts +3 -3
- package/cjs/component/map-label/component.js +14 -14
- package/cjs/component/map-label/component.js.map +1 -1
- package/cjs/component/marker/base-marker.d.ts +1 -1
- package/cjs/component/marker/base-marker.js +2 -2
- package/cjs/component/marker/base-marker.js.map +1 -1
- package/cjs/component/tooltip/processor/interface.d.ts +1 -1
- package/cjs/component/tooltip/processor/interface.js.map +1 -1
- package/cjs/component/tooltip/processor/mark-tooltip.js +17 -5
- package/cjs/component/tooltip/processor/mark-tooltip.js.map +1 -1
- package/cjs/component/tooltip/processor/util.d.ts +1 -1
- package/cjs/component/tooltip/tooltip.d.ts +3 -3
- package/cjs/component/tooltip/tooltip.js +6 -6
- package/cjs/component/tooltip/tooltip.js.map +1 -1
- package/cjs/component/tooltip/utils/show-tooltip.js +2 -4
- package/cjs/component/tooltip/utils/show-tooltip.js.map +1 -1
- package/cjs/constant/data.d.ts +1 -0
- package/cjs/constant/data.js +2 -2
- package/cjs/constant/data.js.map +1 -1
- package/cjs/constant/event.d.ts +53 -2
- package/cjs/constant/event.js +31 -11
- package/cjs/constant/event.js.map +1 -1
- package/cjs/constant/funnel.js +1 -2
- package/cjs/constant/gradient.js +2 -1
- package/cjs/core/factory.d.ts +28 -3
- package/cjs/core/factory.js +33 -5
- package/cjs/core/factory.js.map +1 -1
- package/cjs/core/index.d.ts +3 -2
- package/cjs/core/index.js +42 -2
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/interface.d.ts +13 -4
- package/cjs/core/interface.js +1 -2
- package/cjs/core/interface.js.map +1 -1
- package/cjs/core/util.js +2 -1
- package/cjs/core/vchart.d.ts +6 -6
- package/cjs/core/vchart.js +31 -57
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/data/transforms/dimension-data.js.map +1 -1
- package/cjs/data/transforms/obj-flat.js +11 -5
- package/cjs/data/transforms/obj-flat.js.map +1 -1
- package/cjs/data/transforms/treemap.d.ts +10 -0
- package/cjs/data/transforms/treemap.js +22 -0
- package/cjs/data/transforms/treemap.js.map +1 -0
- package/cjs/data/transforms/venn.d.ts +10 -0
- package/cjs/data/transforms/venn.js +16 -0
- package/cjs/data/transforms/venn.js.map +1 -0
- package/cjs/data/transforms/waterfall.d.ts +1 -0
- package/cjs/data/transforms/waterfall.js +1 -1
- package/cjs/data/transforms/waterfall.js.map +1 -1
- package/cjs/event/event-dispatcher.js +18 -24
- package/cjs/event/event-dispatcher.js.map +1 -1
- package/cjs/event/events/base.d.ts +1 -2
- package/cjs/event/events/base.js.map +1 -1
- package/cjs/event/index.d.ts +1 -0
- package/cjs/event/index.js +16 -1
- package/cjs/event/index.js.map +1 -1
- package/cjs/event/interface.d.ts +6 -9
- package/cjs/event/interface.js.map +1 -1
- package/cjs/index-harmony-simple.d.ts +2 -1
- package/cjs/index-harmony-simple.js +15 -11
- package/cjs/index-harmony-simple.js.map +1 -1
- package/cjs/index-harmony.js +3 -3
- package/cjs/index-harmony.js.map +1 -1
- package/cjs/index-lark.js +2 -2
- package/cjs/index-lark.js.map +1 -1
- package/cjs/index-wx-simple.js +2 -2
- package/cjs/index-wx-simple.js.map +1 -1
- package/cjs/index-wx.js +2 -2
- package/cjs/index-wx.js.map +1 -1
- package/cjs/index.d.ts +0 -1
- package/cjs/index.js +5 -6
- package/cjs/index.js.map +1 -1
- package/cjs/interaction/config.d.ts +13 -0
- package/cjs/interaction/config.js +17 -2
- package/cjs/interaction/config.js.map +1 -1
- package/cjs/interaction/index.d.ts +9 -1
- package/cjs/interaction/index.js +55 -18
- package/cjs/interaction/index.js.map +1 -1
- package/cjs/interaction/interaction.d.ts +17 -25
- package/cjs/interaction/interaction.js +84 -86
- package/cjs/interaction/interaction.js.map +1 -1
- package/cjs/interaction/interface/common.d.ts +22 -0
- package/cjs/{compile/signal/interface.js → interaction/interface/common.js} +1 -1
- package/cjs/interaction/interface/common.js.map +1 -0
- package/cjs/interaction/interface/spec.d.ts +53 -0
- package/cjs/{component/crosshair/interface/polar.js → interaction/interface/spec.js} +1 -1
- package/cjs/interaction/interface/spec.js.map +1 -0
- package/cjs/interaction/interface/trigger.d.ts +87 -0
- package/cjs/{component/crosshair/interface/cartesian.js → interaction/interface/trigger.js} +1 -1
- package/cjs/interaction/interface/trigger.js.map +1 -0
- package/cjs/interaction/triggers/base.d.ts +28 -0
- package/cjs/interaction/triggers/base.js +77 -0
- package/cjs/interaction/triggers/base.js.map +1 -0
- package/cjs/interaction/triggers/dimension-hover.d.ts +22 -0
- package/cjs/interaction/triggers/dimension-hover.js +77 -0
- package/cjs/interaction/triggers/dimension-hover.js.map +1 -0
- package/cjs/interaction/triggers/element-active-by-legend.d.ts +21 -0
- package/cjs/interaction/triggers/element-active-by-legend.js +66 -0
- package/cjs/interaction/triggers/element-active-by-legend.js.map +1 -0
- package/cjs/interaction/triggers/element-active.d.ts +20 -0
- package/cjs/interaction/triggers/element-active.js +52 -0
- package/cjs/interaction/triggers/element-active.js.map +1 -0
- package/cjs/interaction/triggers/element-highlight-by-graphic-name.d.ts +13 -0
- package/cjs/interaction/triggers/element-highlight-by-graphic-name.js +53 -0
- package/cjs/interaction/triggers/element-highlight-by-graphic-name.js.map +1 -0
- package/cjs/interaction/triggers/element-highlight-by-group.d.ts +23 -0
- package/cjs/interaction/triggers/element-highlight-by-group.js +74 -0
- package/cjs/interaction/triggers/element-highlight-by-group.js.map +1 -0
- package/cjs/interaction/triggers/element-highlight-by-key.d.ts +9 -0
- package/cjs/interaction/triggers/element-highlight-by-key.js +26 -0
- package/cjs/interaction/triggers/element-highlight-by-key.js.map +1 -0
- package/cjs/interaction/triggers/element-highlight-by-legend.d.ts +22 -0
- package/cjs/interaction/triggers/element-highlight-by-legend.js +72 -0
- package/cjs/interaction/triggers/element-highlight-by-legend.js.map +1 -0
- package/cjs/interaction/triggers/element-highlight-by-name.d.ts +24 -0
- package/cjs/interaction/triggers/element-highlight-by-name.js +81 -0
- package/cjs/interaction/triggers/element-highlight-by-name.js.map +1 -0
- package/cjs/interaction/triggers/element-highlight.d.ts +25 -0
- package/cjs/interaction/triggers/element-highlight.js +76 -0
- package/cjs/interaction/triggers/element-highlight.js.map +1 -0
- package/cjs/interaction/triggers/element-select-by-graphic-name.d.ts +8 -0
- package/cjs/interaction/triggers/element-select-by-graphic-name.js +31 -0
- package/cjs/interaction/triggers/element-select-by-graphic-name.js.map +1 -0
- package/cjs/interaction/triggers/element-select.d.ts +24 -0
- package/cjs/interaction/triggers/element-select.js +79 -0
- package/cjs/interaction/triggers/element-select.js.map +1 -0
- package/cjs/interaction/triggers/enum.d.ts +8 -0
- package/cjs/interaction/triggers/enum.js +13 -0
- package/cjs/interaction/triggers/enum.js.map +1 -0
- package/cjs/interaction/triggers/util.d.ts +12 -0
- package/cjs/interaction/triggers/util.js +58 -0
- package/cjs/interaction/triggers/util.js.map +1 -0
- package/cjs/interaction/zoom/zoomable.d.ts +1 -0
- package/cjs/interaction/zoom/zoomable.js +5 -4
- package/cjs/interaction/zoom/zoomable.js.map +1 -1
- package/cjs/layout/interface.d.ts +2 -2
- package/cjs/layout/interface.js.map +1 -1
- package/cjs/layout/layout-item.d.ts +2 -3
- package/cjs/layout/layout-item.js +2 -2
- package/cjs/layout/layout-item.js.map +1 -1
- package/cjs/mark/arc-3d.js +4 -3
- package/cjs/mark/arc-3d.js.map +1 -1
- package/cjs/mark/arc.d.ts +2 -2
- package/cjs/mark/arc.js +8 -7
- package/cjs/mark/arc.js.map +1 -1
- package/cjs/mark/area.d.ts +2 -0
- package/cjs/mark/area.js +9 -4
- package/cjs/mark/area.js.map +1 -1
- package/cjs/mark/base/base-line.d.ts +16 -2
- package/cjs/mark/base/base-line.js +65 -11
- package/cjs/mark/base/base-line.js.map +1 -1
- package/cjs/mark/base/base-mark.d.ts +131 -13
- package/cjs/mark/base/base-mark.js +422 -43
- package/cjs/mark/base/base-mark.js.map +1 -1
- package/cjs/mark/box-plot.d.ts +11 -5
- package/cjs/mark/box-plot.js +216 -10
- package/cjs/mark/box-plot.js.map +1 -1
- package/cjs/mark/cell.d.ts +5 -2
- package/cjs/mark/cell.js +16 -4
- package/cjs/mark/cell.js.map +1 -1
- package/cjs/mark/component.d.ts +11 -3
- package/cjs/mark/component.js +34 -7
- package/cjs/mark/component.js.map +1 -1
- package/cjs/mark/glyph.d.ts +29 -0
- package/cjs/mark/glyph.js +73 -0
- package/cjs/mark/glyph.js.map +1 -0
- package/cjs/mark/group.d.ts +10 -6
- package/cjs/mark/group.js +30 -16
- package/cjs/mark/group.js.map +1 -1
- package/cjs/mark/image.js +3 -2
- package/cjs/mark/image.js.map +1 -1
- package/cjs/mark/index.d.ts +3 -1
- package/cjs/mark/index.js +19 -1
- package/cjs/mark/index.js.map +1 -1
- package/cjs/mark/interface/common.d.ts +61 -9
- package/cjs/mark/interface/common.js.map +1 -1
- package/cjs/mark/interface/enum.d.ts +6 -0
- package/cjs/mark/interface/enum.js +11 -0
- package/cjs/mark/interface/enum.js.map +1 -0
- package/cjs/mark/interface/index.d.ts +1 -0
- package/cjs/mark/interface/index.js +1 -1
- package/cjs/mark/interface/index.js.map +1 -1
- package/cjs/mark/interface/mark.d.ts +18 -1
- package/cjs/mark/interface/mark.js.map +1 -1
- package/cjs/mark/interface/type.d.ts +1 -0
- package/cjs/mark/interface/type.js +2 -2
- package/cjs/mark/interface/type.js.map +1 -1
- package/cjs/mark/label.d.ts +4 -3
- package/cjs/mark/label.js +3 -2
- package/cjs/mark/label.js.map +1 -1
- package/cjs/mark/line.js +5 -3
- package/cjs/mark/line.js.map +1 -1
- package/cjs/mark/link-path.d.ts +35 -5
- package/cjs/mark/link-path.js +65 -11
- package/cjs/mark/link-path.js.map +1 -1
- package/cjs/mark/liquid.d.ts +47 -5
- package/cjs/mark/liquid.js +62 -9
- package/cjs/mark/liquid.js.map +1 -1
- package/cjs/mark/path.js +3 -2
- package/cjs/mark/path.js.map +1 -1
- package/cjs/mark/polygon/polygon.js +4 -3
- package/cjs/mark/polygon/polygon.js.map +1 -1
- package/cjs/mark/polygon/pyramid-3d.js +4 -3
- package/cjs/mark/polygon/pyramid-3d.js.map +1 -1
- package/cjs/mark/rect-3d.js +4 -3
- package/cjs/mark/rect-3d.js.map +1 -1
- package/cjs/mark/rect.js +4 -3
- package/cjs/mark/rect.js.map +1 -1
- package/cjs/mark/ripple.d.ts +39 -4
- package/cjs/mark/ripple.js +41 -9
- package/cjs/mark/ripple.js.map +1 -1
- package/cjs/mark/rule.d.ts +3 -0
- package/cjs/mark/rule.js +28 -2
- package/cjs/mark/rule.js.map +1 -1
- package/cjs/mark/symbol.d.ts +4 -4
- package/cjs/mark/symbol.js +14 -11
- package/cjs/mark/symbol.js.map +1 -1
- package/cjs/mark/text.d.ts +4 -2
- package/cjs/mark/text.js +15 -9
- package/cjs/mark/text.js.map +1 -1
- package/cjs/mark/transform/data-sampling.d.ts +10 -0
- package/cjs/mark/transform/data-sampling.js +119 -0
- package/cjs/mark/transform/data-sampling.js.map +1 -0
- package/cjs/mark/transform/filter.d.ts +1 -0
- package/cjs/mark/transform/filter.js +14 -0
- package/cjs/mark/transform/filter.js.map +1 -0
- package/cjs/mark/transform/map.d.ts +1 -0
- package/cjs/mark/transform/map.js +16 -0
- package/cjs/mark/transform/map.js.map +1 -0
- package/cjs/mark/transform/symbol-overlap.d.ts +14 -0
- package/cjs/mark/transform/symbol-overlap.js +93 -0
- package/cjs/mark/transform/symbol-overlap.js.map +1 -0
- package/cjs/mark/utils/common.d.ts +4 -0
- package/cjs/mark/utils/common.js +44 -4
- package/cjs/mark/utils/common.js.map +1 -1
- package/cjs/mark/utils/glyph.d.ts +2 -0
- package/cjs/mark/utils/glyph.js +13 -0
- package/cjs/mark/utils/glyph.js.map +1 -0
- package/cjs/mark/utils/index.d.ts +2 -0
- package/cjs/mark/utils/index.js +2 -1
- package/cjs/mark/utils/index.js.map +1 -1
- package/cjs/mark/utils/line.d.ts +3 -0
- package/cjs/mark/utils/line.js +29 -0
- package/cjs/mark/utils/line.js.map +1 -0
- package/cjs/model/base-model.d.ts +8 -8
- package/cjs/model/base-model.js +20 -9
- package/cjs/model/base-model.js.map +1 -1
- package/cjs/model/interface.d.ts +4 -8
- package/cjs/model/interface.js.map +1 -1
- package/cjs/model/layout-model.d.ts +2 -2
- package/cjs/model/layout-model.js +4 -4
- package/cjs/model/layout-model.js.map +1 -1
- package/cjs/plugin/components/axis-sync/tick-align-transform.js +10 -5
- package/cjs/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/base.d.ts +2 -2
- package/cjs/plugin/components/tooltip-handler/base.js +1 -1
- package/cjs/plugin/components/tooltip-handler/base.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/attribute.js +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/position.d.ts +2 -4
- package/cjs/plugin/components/tooltip-handler/utils/position.js +23 -11
- package/cjs/plugin/components/tooltip-handler/utils/position.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/style.js +2 -1
- package/cjs/plugin/components/tooltip-handler/utils/style.js.map +1 -1
- package/cjs/plugin/other.d.ts +3 -3
- package/cjs/plugin/other.js +16 -18
- package/cjs/plugin/other.js.map +1 -1
- package/cjs/region/interface.d.ts +0 -2
- package/cjs/region/interface.js.map +1 -1
- package/cjs/region/region.d.ts +3 -9
- package/cjs/region/region.js +12 -32
- package/cjs/region/region.js.map +1 -1
- package/cjs/scale/global-scale.js +2 -1
- package/cjs/scale/global-scale.js.map +1 -1
- package/cjs/series/area/animation.d.ts +1 -1
- package/cjs/series/area/animation.js.map +1 -1
- package/cjs/series/area/area.d.ts +1 -1
- package/cjs/series/area/area.js +11 -16
- package/cjs/series/area/area.js.map +1 -1
- package/cjs/series/bar/animation.d.ts +1 -1
- package/cjs/series/bar/animation.js.map +1 -1
- package/cjs/series/bar/bar.d.ts +3 -3
- package/cjs/series/bar/bar.js +11 -25
- package/cjs/series/bar/bar.js.map +1 -1
- package/cjs/series/base/base-series.d.ts +26 -42
- package/cjs/series/base/base-series.js +57 -70
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/base/tooltip-helper.d.ts +1 -2
- package/cjs/series/base/tooltip-helper.js.map +1 -1
- package/cjs/series/box-plot/box-plot.d.ts +3 -3
- package/cjs/series/box-plot/box-plot.js +12 -15
- package/cjs/series/box-plot/box-plot.js.map +1 -1
- package/cjs/series/cartesian/cartesian.d.ts +1 -1
- package/cjs/series/circle-packing/animation.d.ts +1 -1
- package/cjs/series/circle-packing/animation.js.map +1 -1
- package/cjs/series/circle-packing/circle-packing.d.ts +1 -1
- package/cjs/series/circle-packing/circle-packing.js +3 -5
- package/cjs/series/circle-packing/circle-packing.js.map +1 -1
- package/cjs/series/correlation/animation.d.ts +1 -1
- package/cjs/series/correlation/animation.js.map +1 -1
- package/cjs/series/correlation/correlation.d.ts +3 -4
- package/cjs/series/correlation/correlation.js +6 -13
- package/cjs/series/correlation/correlation.js.map +1 -1
- package/cjs/series/dot/dot.d.ts +2 -2
- package/cjs/series/dot/dot.js +4 -3
- package/cjs/series/dot/dot.js.map +1 -1
- package/cjs/series/funnel/3d/funnel-3d.js +3 -4
- package/cjs/series/funnel/3d/funnel-3d.js.map +1 -1
- package/cjs/series/funnel/funnel.d.ts +3 -2
- package/cjs/series/funnel/funnel.js +58 -46
- package/cjs/series/funnel/funnel.js.map +1 -1
- package/cjs/series/funnel/tooltip-helper.d.ts +1 -1
- package/cjs/series/funnel/tooltip-helper.js.map +1 -1
- package/cjs/series/gauge/animation.d.ts +1 -1
- package/cjs/series/gauge/animation.js.map +1 -1
- package/cjs/series/gauge/gauge-pointer.d.ts +4 -1
- package/cjs/series/gauge/gauge-pointer.js +2 -2
- package/cjs/series/gauge/gauge-pointer.js.map +1 -1
- package/cjs/series/gauge/gauge.d.ts +2 -2
- package/cjs/series/gauge/gauge.js +2 -2
- package/cjs/series/gauge/gauge.js.map +1 -1
- package/cjs/series/geo/geo.d.ts +2 -2
- package/cjs/series/geo/geo.js.map +1 -1
- package/cjs/series/heatmap/animation.d.ts +1 -1
- package/cjs/series/heatmap/animation.js.map +1 -1
- package/cjs/series/heatmap/heatmap.d.ts +4 -1
- package/cjs/series/heatmap/heatmap.js +5 -18
- package/cjs/series/heatmap/heatmap.js.map +1 -1
- package/cjs/series/interface/common.d.ts +1 -4
- package/cjs/series/interface/common.js.map +1 -1
- package/cjs/series/interface/series.d.ts +6 -1
- package/cjs/series/interface/series.js.map +1 -1
- package/cjs/series/line/animation.d.ts +1 -1
- package/cjs/series/line/animation.js.map +1 -1
- package/cjs/series/line/line.d.ts +1 -1
- package/cjs/series/line/line.js +6 -11
- package/cjs/series/line/line.js.map +1 -1
- package/cjs/series/link/link.d.ts +5 -2
- package/cjs/series/link/link.js +3 -3
- package/cjs/series/link/link.js.map +1 -1
- package/cjs/series/liquid/animation.d.ts +1 -1
- package/cjs/series/liquid/animation.js.map +1 -1
- package/cjs/series/liquid/liquid.d.ts +4 -1
- package/cjs/series/liquid/liquid.js +5 -5
- package/cjs/series/liquid/liquid.js.map +1 -1
- package/cjs/series/map/interface.d.ts +10 -0
- package/cjs/series/map/interface.js.map +1 -1
- package/cjs/series/map/map.js +12 -14
- package/cjs/series/map/map.js.map +1 -1
- package/cjs/series/mixin/line-mixin.d.ts +5 -5
- package/cjs/series/mixin/line-mixin.js +21 -26
- package/cjs/series/mixin/line-mixin.js.map +1 -1
- package/cjs/series/pictogram/pictogram.d.ts +15 -19
- package/cjs/series/pictogram/pictogram.js +24 -31
- package/cjs/series/pictogram/pictogram.js.map +1 -1
- package/cjs/series/pie/animation/animation.d.ts +4 -3
- package/cjs/series/pie/animation/animation.js.map +1 -1
- package/cjs/series/pie/animation/centerOffset.d.ts +1 -1
- package/cjs/series/pie/animation/centerOffset.js.map +1 -1
- package/cjs/series/pie/interface.d.ts +2 -2
- package/cjs/series/pie/interface.js.map +1 -1
- package/cjs/series/pie/pie.d.ts +8 -6
- package/cjs/series/pie/pie.js +14 -17
- package/cjs/series/pie/pie.js.map +1 -1
- package/cjs/series/polar/progress-like/animation.d.ts +1 -1
- package/cjs/series/polar/progress-like/animation.js.map +1 -1
- package/cjs/series/polar/progress-like/progress-like.d.ts +1 -2
- package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
- package/cjs/series/progress/circular/circular.d.ts +4 -1
- package/cjs/series/progress/circular/circular.js +9 -11
- package/cjs/series/progress/circular/circular.js.map +1 -1
- package/cjs/series/progress/linear/animation.d.ts +1 -1
- package/cjs/series/progress/linear/animation.js.map +1 -1
- package/cjs/series/progress/linear/linear.d.ts +4 -1
- package/cjs/series/progress/linear/linear.js +7 -13
- package/cjs/series/progress/linear/linear.js.map +1 -1
- package/cjs/series/radar/animation.d.ts +11 -9
- package/cjs/series/radar/animation.js.map +1 -1
- package/cjs/series/radar/radar.d.ts +2 -2
- package/cjs/series/radar/radar.js +6 -15
- package/cjs/series/radar/radar.js.map +1 -1
- package/cjs/series/range-area/range-area.js +1 -5
- package/cjs/series/range-area/range-area.js.map +1 -1
- package/cjs/series/range-column/animation.d.ts +1 -1
- package/cjs/series/range-column/animation.js.map +1 -1
- package/cjs/series/range-column/range-column.js +6 -8
- package/cjs/series/range-column/range-column.js.map +1 -1
- package/cjs/series/rose/animation.d.ts +1 -1
- package/cjs/series/rose/animation.js.map +1 -1
- package/cjs/series/rose/rose.js +1 -4
- package/cjs/series/rose/rose.js.map +1 -1
- package/cjs/series/sankey/animation.d.ts +1 -1
- package/cjs/series/sankey/animation.js.map +1 -1
- package/cjs/series/sankey/sankey.d.ts +11 -12
- package/cjs/series/sankey/sankey.js +85 -99
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/cjs/series/sankey/tooltip-helper.d.ts +1 -1
- package/cjs/series/sankey/tooltip-helper.js.map +1 -1
- package/cjs/series/scatter/animation.d.ts +1 -1
- package/cjs/series/scatter/animation.js.map +1 -1
- package/cjs/series/scatter/scatter.js +7 -13
- package/cjs/series/scatter/scatter.js.map +1 -1
- package/cjs/series/sunburst/animation/enter.d.ts +1 -1
- package/cjs/series/sunburst/animation/enter.js +4 -4
- package/cjs/series/sunburst/animation/enter.js.map +1 -1
- package/cjs/series/sunburst/animation/exit.d.ts +1 -1
- package/cjs/series/sunburst/animation/exit.js +4 -4
- package/cjs/series/sunburst/animation/exit.js.map +1 -1
- package/cjs/series/sunburst/animation/preset.d.ts +1 -1
- package/cjs/series/sunburst/animation/preset.js.map +1 -1
- package/cjs/series/sunburst/animation/utils.d.ts +2 -2
- package/cjs/series/sunburst/animation/utils.js +9 -9
- package/cjs/series/sunburst/animation/utils.js.map +1 -1
- package/cjs/series/sunburst/sunburst.d.ts +1 -1
- package/cjs/series/sunburst/sunburst.js +3 -7
- package/cjs/series/sunburst/sunburst.js.map +1 -1
- package/cjs/series/treemap/animation.d.ts +1 -1
- package/cjs/series/treemap/animation.js.map +1 -1
- package/cjs/series/treemap/treemap.d.ts +1 -2
- package/cjs/series/treemap/treemap.js +37 -56
- package/cjs/series/treemap/treemap.js.map +1 -1
- package/cjs/series/venn/animation.d.ts +1 -1
- package/cjs/series/venn/animation.js.map +1 -1
- package/cjs/series/venn/venn.d.ts +2 -1
- package/cjs/series/venn/venn.js +24 -15
- package/cjs/series/venn/venn.js.map +1 -1
- package/cjs/series/waterfall/animation.d.ts +1 -1
- package/cjs/series/waterfall/animation.js.map +1 -1
- package/cjs/series/waterfall/waterfall.d.ts +2 -2
- package/cjs/series/waterfall/waterfall.js +9 -12
- package/cjs/series/waterfall/waterfall.js.map +1 -1
- package/cjs/series/word-cloud/animation.d.ts +1 -1
- package/cjs/series/word-cloud/animation.js +1 -1
- package/cjs/series/word-cloud/animation.js.map +1 -1
- package/cjs/series/word-cloud/base.d.ts +1 -1
- package/cjs/series/word-cloud/base.js +8 -11
- package/cjs/series/word-cloud/base.js.map +1 -1
- package/cjs/series/word-cloud/interface.d.ts +1 -1
- package/cjs/series/word-cloud/interface.js.map +1 -1
- package/cjs/series/word-cloud/word-cloud-3d.js +5 -5
- package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
- package/cjs/series/word-cloud/word-cloud.js +7 -3
- package/cjs/series/word-cloud/word-cloud.js.map +1 -1
- package/cjs/typings/common.d.ts +13 -0
- package/cjs/typings/common.js.map +1 -1
- package/cjs/typings/spec/common.d.ts +37 -36
- package/cjs/typings/spec/common.js.map +1 -1
- package/cjs/typings/visual.d.ts +9 -2
- package/cjs/typings/visual.js.map +1 -1
- package/cjs/util/array.d.ts +1 -0
- package/cjs/util/array.js +8 -2
- package/cjs/util/array.js.map +1 -1
- package/cjs/util/debug.js +1 -1
- package/cjs/util/debug.js.map +1 -1
- package/cjs/util/index.d.ts +1 -0
- package/cjs/util/index.js +2 -1
- package/cjs/util/index.js.map +1 -1
- package/cjs/util/mark.d.ts +5 -0
- package/cjs/util/mark.js +27 -0
- package/cjs/util/mark.js.map +1 -0
- package/cjs/util/math.d.ts +1 -1
- package/cjs/util/math.js.map +1 -1
- package/cjs/util/scale.js +1 -1
- package/cjs/util/scale.js.map +1 -1
- package/esm/animation/animate-manager.d.ts +2 -4
- package/esm/animation/animate-manager.js +6 -11
- package/esm/animation/animate-manager.js.map +1 -1
- package/esm/animation/config.js +9 -21
- package/esm/animation/config.js.map +1 -1
- package/esm/animation/interface.d.ts +86 -2
- package/esm/animation/interface.js.map +1 -1
- package/esm/animation/spec.d.ts +27 -3
- package/esm/animation/spec.js.map +1 -1
- package/esm/animation/utils.d.ts +3 -4
- package/esm/animation/utils.js +7 -7
- package/esm/animation/utils.js.map +1 -1
- package/esm/chart/area/area.js +3 -1
- package/esm/chart/area/area.js.map +1 -1
- package/esm/chart/bar/bar.js +3 -1
- package/esm/chart/bar/bar.js.map +1 -1
- package/esm/chart/base/base-chart-transformer.js +2 -2
- package/esm/chart/base/base-chart-transformer.js.map +1 -1
- package/esm/chart/base/base-chart.d.ts +10 -7
- package/esm/chart/base/base-chart.js +87 -73
- package/esm/chart/base/base-chart.js.map +1 -1
- package/esm/chart/box-plot/box-plot.js +3 -1
- package/esm/chart/box-plot/box-plot.js.map +1 -1
- package/esm/chart/funnel/util.d.ts +2 -0
- package/esm/chart/funnel/util.js +6 -0
- package/esm/chart/funnel/util.js.map +1 -0
- package/esm/chart/histogram/3d/histogram-3d.js +3 -1
- package/esm/chart/histogram/3d/histogram-3d.js.map +1 -1
- package/esm/chart/histogram/histogram.js +3 -1
- package/esm/chart/histogram/histogram.js.map +1 -1
- package/esm/chart/interface/chart.d.ts +3 -4
- package/esm/chart/interface/chart.js.map +1 -1
- package/esm/chart/interface/common.d.ts +2 -9
- package/esm/chart/interface/common.js.map +1 -1
- package/esm/chart/line/line.js +3 -1
- package/esm/chart/line/line.js.map +1 -1
- package/esm/chart/mosaic/mosaic.js +3 -1
- package/esm/chart/mosaic/mosaic.js.map +1 -1
- package/esm/chart/progress/circular/circular.js +3 -1
- package/esm/chart/progress/circular/circular.js.map +1 -1
- package/esm/chart/progress/linear/linear.js +3 -1
- package/esm/chart/progress/linear/linear.js.map +1 -1
- package/esm/chart/radar/radar.js +3 -1
- package/esm/chart/radar/radar.js.map +1 -1
- package/esm/chart/range-area/range-area.js +3 -1
- package/esm/chart/range-area/range-area.js.map +1 -1
- package/esm/chart/range-column/3d/range-column-3d.js +3 -1
- package/esm/chart/range-column/3d/range-column-3d.js.map +1 -1
- package/esm/chart/range-column/range-column.js +3 -1
- package/esm/chart/range-column/range-column.js.map +1 -1
- package/esm/chart/rose/rose.js +3 -1
- package/esm/chart/rose/rose.js.map +1 -1
- package/esm/chart/sankey/sankey.d.ts +1 -1
- package/esm/chart/sankey/sankey.js +21 -17
- package/esm/chart/sankey/sankey.js.map +1 -1
- package/esm/chart/scatter/scatter.js +3 -1
- package/esm/chart/scatter/scatter.js.map +1 -1
- package/esm/chart/sequence/sequence-transformer.js +2 -2
- package/esm/chart/sequence/sequence-transformer.js.map +1 -1
- package/esm/chart/util.js +1 -1
- package/esm/chart/util.js.map +1 -1
- package/esm/chart/waterfall/waterfall.js +3 -1
- package/esm/chart/waterfall/waterfall.js.map +1 -1
- package/esm/compile/compilable-base.d.ts +1 -1
- package/esm/compile/compilable-base.js +2 -2
- package/esm/compile/compilable-base.js.map +1 -1
- package/esm/compile/compiler.d.ts +35 -25
- package/esm/compile/compiler.js +190 -149
- package/esm/compile/compiler.js.map +1 -1
- package/esm/compile/data/compilable-data.d.ts +7 -7
- package/esm/compile/data/compilable-data.js +19 -22
- package/esm/compile/data/compilable-data.js.map +1 -1
- package/esm/compile/data/interface.d.ts +4 -1
- package/esm/compile/data/interface.js.map +1 -1
- package/esm/compile/grammar-item.d.ts +7 -13
- package/esm/compile/grammar-item.js +15 -34
- package/esm/compile/grammar-item.js.map +1 -1
- package/esm/compile/interface/compilable-item.d.ts +22 -28
- package/esm/compile/interface/compilable-item.js +1 -1
- package/esm/compile/interface/compilable-item.js.map +1 -1
- package/esm/compile/interface/compiler.d.ts +13 -4
- package/esm/compile/interface/compiler.js +6 -1
- package/esm/compile/interface/compiler.js.map +1 -1
- package/esm/compile/mark/index.d.ts +0 -1
- package/esm/compile/mark/index.js +0 -2
- package/esm/compile/mark/index.js.map +1 -1
- package/esm/compile/mark/interface.d.ts +42 -33
- package/esm/compile/mark/interface.js +2 -1
- package/esm/compile/mark/interface.js.map +1 -1
- package/esm/compile/mark/mark-state-manager.d.ts +11 -13
- package/esm/compile/mark/mark-state-manager.js +26 -32
- package/esm/compile/mark/mark-state-manager.js.map +1 -1
- package/esm/compile/mark/util.d.ts +1 -1
- package/esm/compile/mark/util.js.map +1 -1
- package/esm/compile/state-manager.d.ts +11 -0
- package/esm/compile/state-manager.js +23 -0
- package/esm/compile/state-manager.js.map +1 -0
- package/esm/compile/util.d.ts +14 -0
- package/esm/compile/util.js +104 -0
- package/esm/compile/util.js.map +1 -1
- package/esm/component/axis/base-axis.d.ts +5 -3
- package/esm/component/axis/base-axis.js +19 -16
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/axis/cartesian/axis.d.ts +1 -1
- package/esm/component/axis/cartesian/axis.js +18 -23
- package/esm/component/axis/cartesian/axis.js.map +1 -1
- package/esm/component/axis/cartesian/band-axis.js +8 -4
- package/esm/component/axis/cartesian/band-axis.js.map +1 -1
- package/esm/component/axis/cartesian/linear-axis.js +6 -4
- package/esm/component/axis/cartesian/linear-axis.js.map +1 -1
- package/esm/component/axis/cartesian/log-axis.js +6 -4
- package/esm/component/axis/cartesian/log-axis.js.map +1 -1
- package/esm/component/axis/cartesian/symlog-axis.js +6 -4
- package/esm/component/axis/cartesian/symlog-axis.js.map +1 -1
- package/esm/component/axis/cartesian/time-axis.d.ts +1 -0
- package/esm/component/axis/cartesian/time-axis.js +10 -4
- package/esm/component/axis/cartesian/time-axis.js.map +1 -1
- package/esm/component/axis/interface/common.d.ts +8 -0
- package/esm/component/axis/interface/common.js +11 -1
- package/esm/component/axis/interface/common.js.map +1 -1
- package/esm/component/axis/polar/axis.js +2 -2
- package/esm/component/axis/polar/axis.js.map +1 -1
- package/esm/component/axis/polar/band-axis.js +7 -4
- package/esm/component/axis/polar/band-axis.js.map +1 -1
- package/esm/component/axis/polar/linear-axis.js +7 -4
- package/esm/component/axis/polar/linear-axis.js.map +1 -1
- package/esm/component/base/base-component.d.ts +1 -2
- package/esm/component/base/base-component.js.map +1 -1
- package/esm/component/brush/brush.d.ts +12 -10
- package/esm/component/brush/brush.js +32 -31
- package/esm/component/brush/brush.js.map +1 -1
- package/esm/component/crosshair/base.d.ts +25 -36
- package/esm/component/crosshair/base.js +97 -7
- package/esm/component/crosshair/base.js.map +1 -1
- package/esm/component/crosshair/cartesian.d.ts +5 -28
- package/esm/component/crosshair/cartesian.js +73 -174
- package/esm/component/crosshair/cartesian.js.map +1 -1
- package/esm/component/crosshair/interface/common.d.ts +67 -2
- package/esm/component/crosshair/interface/common.js.map +1 -1
- package/esm/component/crosshair/interface/index.d.ts +0 -2
- package/esm/component/crosshair/interface/index.js +0 -4
- package/esm/component/crosshair/interface/index.js.map +1 -1
- package/esm/component/crosshair/interface/spec.d.ts +8 -4
- package/esm/component/crosshair/interface/spec.js.map +1 -1
- package/esm/component/crosshair/polar.d.ts +6 -22
- package/esm/component/crosshair/polar.js +75 -146
- package/esm/component/crosshair/polar.js.map +1 -1
- package/esm/component/crosshair/utils/cartesian.d.ts +5 -26
- package/esm/component/crosshair/utils/cartesian.js +81 -166
- package/esm/component/crosshair/utils/cartesian.js.map +1 -1
- package/esm/component/crosshair/utils/polar.d.ts +18 -11
- package/esm/component/crosshair/utils/polar.js +67 -112
- package/esm/component/crosshair/utils/polar.js.map +1 -1
- package/esm/component/custom-mark/custom-mark.js +3 -11
- package/esm/component/custom-mark/custom-mark.js.map +1 -1
- package/esm/component/data-zoom/data-filter-base-component.d.ts +4 -4
- package/esm/component/data-zoom/data-filter-base-component.js +12 -11
- 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 +4 -4
- package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/esm/component/data-zoom/interface.d.ts +11 -0
- package/esm/component/data-zoom/interface.js.map +1 -1
- package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +1 -2
- package/esm/component/data-zoom/scroll-bar/scroll-bar.js +10 -11
- package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
- package/esm/component/geo/geo-coordinate.d.ts +2 -2
- package/esm/component/geo/geo-coordinate.js +4 -4
- package/esm/component/geo/geo-coordinate.js.map +1 -1
- package/esm/component/geo/interface.d.ts +1 -1
- package/esm/component/geo/interface.js.map +1 -1
- package/esm/component/indicator/indicator.js +14 -13
- package/esm/component/indicator/indicator.js.map +1 -1
- package/esm/component/label/base-label.d.ts +5 -0
- package/esm/component/label/base-label.js +49 -1
- package/esm/component/label/base-label.js.map +1 -1
- package/esm/component/label/interface.d.ts +4 -3
- package/esm/component/label/interface.js.map +1 -1
- package/esm/component/label/label.d.ts +5 -3
- package/esm/component/label/label.js +77 -52
- package/esm/component/label/label.js.map +1 -1
- package/esm/component/label/total-label.js +41 -36
- package/esm/component/label/total-label.js.map +1 -1
- package/esm/component/label/util.d.ts +9 -10
- package/esm/component/label/util.js +19 -14
- package/esm/component/label/util.js.map +1 -1
- package/esm/component/legend/util.d.ts +3 -3
- package/esm/component/map-label/component.js +15 -13
- package/esm/component/map-label/component.js.map +1 -1
- package/esm/component/marker/base-marker.d.ts +1 -1
- package/esm/component/marker/base-marker.js +2 -2
- package/esm/component/marker/base-marker.js.map +1 -1
- package/esm/component/tooltip/processor/interface.d.ts +1 -1
- package/esm/component/tooltip/processor/interface.js.map +1 -1
- package/esm/component/tooltip/processor/mark-tooltip.js +17 -4
- package/esm/component/tooltip/processor/mark-tooltip.js.map +1 -1
- package/esm/component/tooltip/processor/util.d.ts +1 -1
- package/esm/component/tooltip/tooltip.d.ts +3 -3
- package/esm/component/tooltip/tooltip.js +6 -6
- package/esm/component/tooltip/tooltip.js.map +1 -1
- package/esm/component/tooltip/utils/show-tooltip.js +2 -4
- package/esm/component/tooltip/utils/show-tooltip.js.map +1 -1
- package/esm/constant/data.d.ts +1 -0
- package/esm/constant/data.js +2 -0
- package/esm/constant/data.js.map +1 -1
- package/esm/constant/event.d.ts +53 -2
- package/esm/constant/event.js +30 -2
- package/esm/constant/event.js.map +1 -1
- package/esm/constant/funnel.js +1 -2
- package/esm/constant/gradient.js +2 -1
- package/esm/core/factory.d.ts +28 -3
- package/esm/core/factory.js +33 -6
- package/esm/core/factory.js.map +1 -1
- package/esm/core/index.d.ts +3 -2
- package/esm/core/index.js +2 -2
- package/esm/core/index.js.map +1 -1
- package/esm/core/interface.d.ts +13 -4
- package/esm/core/interface.js +1 -2
- package/esm/core/interface.js.map +1 -1
- package/esm/core/util.js +2 -1
- package/esm/core/vchart.d.ts +6 -6
- package/esm/core/vchart.js +40 -62
- package/esm/core/vchart.js.map +1 -1
- package/esm/data/transforms/dimension-data.js.map +1 -1
- package/esm/data/transforms/obj-flat.js +16 -4
- package/esm/data/transforms/obj-flat.js.map +1 -1
- package/esm/data/transforms/treemap.d.ts +10 -0
- package/esm/data/transforms/treemap.js +18 -0
- package/esm/data/transforms/treemap.js.map +1 -0
- package/esm/data/transforms/venn.d.ts +10 -0
- package/esm/data/transforms/venn.js +10 -0
- package/esm/data/transforms/venn.js.map +1 -0
- package/esm/data/transforms/waterfall.d.ts +1 -0
- package/esm/data/transforms/waterfall.js +1 -1
- package/esm/data/transforms/waterfall.js.map +1 -1
- package/esm/event/event-dispatcher.js +20 -24
- package/esm/event/event-dispatcher.js.map +1 -1
- package/esm/event/events/base.d.ts +1 -2
- package/esm/event/events/base.js.map +1 -1
- package/esm/event/index.d.ts +1 -0
- package/esm/event/index.js +2 -0
- package/esm/event/index.js.map +1 -1
- package/esm/event/interface.d.ts +6 -9
- package/esm/event/interface.js.map +1 -1
- package/esm/index-harmony-simple.d.ts +2 -1
- package/esm/index-harmony-simple.js +4 -2
- package/esm/index-harmony-simple.js.map +1 -1
- package/esm/index-harmony.js +4 -2
- package/esm/index-harmony.js.map +1 -1
- package/esm/index-lark.js +3 -1
- package/esm/index-lark.js.map +1 -1
- package/esm/index-wx-simple.js +3 -1
- package/esm/index-wx-simple.js.map +1 -1
- package/esm/index-wx.js +3 -1
- package/esm/index-wx.js.map +1 -1
- package/esm/index.d.ts +0 -1
- package/esm/index.js +0 -2
- package/esm/index.js.map +1 -1
- package/esm/interaction/config.d.ts +13 -0
- package/esm/interaction/config.js +15 -0
- package/esm/interaction/config.js.map +1 -1
- package/esm/interaction/index.d.ts +9 -1
- package/esm/interaction/index.js +17 -1
- package/esm/interaction/index.js.map +1 -1
- package/esm/interaction/interaction.d.ts +17 -25
- package/esm/interaction/interaction.js +84 -88
- package/esm/interaction/interaction.js.map +1 -1
- package/esm/interaction/interface/common.d.ts +22 -0
- package/esm/interaction/interface/common.js +2 -0
- package/esm/interaction/interface/common.js.map +1 -0
- package/esm/interaction/interface/spec.d.ts +53 -0
- package/esm/interaction/interface/spec.js +2 -0
- package/esm/interaction/interface/spec.js.map +1 -0
- package/esm/interaction/interface/trigger.d.ts +87 -0
- package/esm/interaction/interface/trigger.js +2 -0
- package/esm/interaction/interface/trigger.js.map +1 -0
- package/esm/interaction/triggers/base.d.ts +28 -0
- package/esm/interaction/triggers/base.js +73 -0
- package/esm/interaction/triggers/base.js.map +1 -0
- package/esm/interaction/triggers/dimension-hover.d.ts +22 -0
- package/esm/interaction/triggers/dimension-hover.js +80 -0
- package/esm/interaction/triggers/dimension-hover.js.map +1 -0
- package/esm/interaction/triggers/element-active-by-legend.d.ts +21 -0
- package/esm/interaction/triggers/element-active-by-legend.js +68 -0
- package/esm/interaction/triggers/element-active-by-legend.js.map +1 -0
- package/esm/interaction/triggers/element-active.d.ts +20 -0
- package/esm/interaction/triggers/element-active.js +50 -0
- package/esm/interaction/triggers/element-active.js.map +1 -0
- package/esm/interaction/triggers/element-highlight-by-graphic-name.d.ts +13 -0
- package/esm/interaction/triggers/element-highlight-by-graphic-name.js +51 -0
- package/esm/interaction/triggers/element-highlight-by-graphic-name.js.map +1 -0
- package/esm/interaction/triggers/element-highlight-by-group.d.ts +23 -0
- package/esm/interaction/triggers/element-highlight-by-group.js +73 -0
- package/esm/interaction/triggers/element-highlight-by-group.js.map +1 -0
- package/esm/interaction/triggers/element-highlight-by-key.d.ts +9 -0
- package/esm/interaction/triggers/element-highlight-by-key.js +22 -0
- package/esm/interaction/triggers/element-highlight-by-key.js.map +1 -0
- package/esm/interaction/triggers/element-highlight-by-legend.d.ts +22 -0
- package/esm/interaction/triggers/element-highlight-by-legend.js +73 -0
- package/esm/interaction/triggers/element-highlight-by-legend.js.map +1 -0
- package/esm/interaction/triggers/element-highlight-by-name.d.ts +24 -0
- package/esm/interaction/triggers/element-highlight-by-name.js +82 -0
- package/esm/interaction/triggers/element-highlight-by-name.js.map +1 -0
- package/esm/interaction/triggers/element-highlight.d.ts +25 -0
- package/esm/interaction/triggers/element-highlight.js +75 -0
- package/esm/interaction/triggers/element-highlight.js.map +1 -0
- package/esm/interaction/triggers/element-select-by-graphic-name.d.ts +8 -0
- package/esm/interaction/triggers/element-select-by-graphic-name.js +27 -0
- package/esm/interaction/triggers/element-select-by-graphic-name.js.map +1 -0
- package/esm/interaction/triggers/element-select.d.ts +24 -0
- package/esm/interaction/triggers/element-select.js +81 -0
- package/esm/interaction/triggers/element-select.js.map +1 -0
- package/esm/interaction/triggers/enum.d.ts +8 -0
- package/esm/interaction/triggers/enum.js +9 -0
- package/esm/interaction/triggers/enum.js.map +1 -0
- package/esm/interaction/triggers/util.d.ts +12 -0
- package/esm/interaction/triggers/util.js +52 -0
- package/esm/interaction/triggers/util.js.map +1 -0
- package/esm/interaction/zoom/zoomable.d.ts +1 -0
- package/esm/interaction/zoom/zoomable.js +5 -4
- package/esm/interaction/zoom/zoomable.js.map +1 -1
- package/esm/layout/interface.d.ts +2 -2
- package/esm/layout/interface.js.map +1 -1
- package/esm/layout/layout-item.d.ts +2 -3
- package/esm/layout/layout-item.js +2 -2
- package/esm/layout/layout-item.js.map +1 -1
- package/esm/mark/arc-3d.js +6 -3
- package/esm/mark/arc-3d.js.map +1 -1
- package/esm/mark/arc.d.ts +2 -2
- package/esm/mark/arc.js +12 -7
- package/esm/mark/arc.js.map +1 -1
- package/esm/mark/area.d.ts +2 -0
- package/esm/mark/area.js +16 -5
- package/esm/mark/area.js.map +1 -1
- package/esm/mark/base/base-line.d.ts +16 -2
- package/esm/mark/base/base-line.js +65 -9
- package/esm/mark/base/base-line.js.map +1 -1
- package/esm/mark/base/base-mark.d.ts +131 -13
- package/esm/mark/base/base-mark.js +441 -43
- package/esm/mark/base/base-mark.js.map +1 -1
- package/esm/mark/box-plot.d.ts +11 -5
- package/esm/mark/box-plot.js +220 -11
- package/esm/mark/box-plot.js.map +1 -1
- package/esm/mark/cell.d.ts +5 -2
- package/esm/mark/cell.js +22 -4
- package/esm/mark/cell.js.map +1 -1
- package/esm/mark/component.d.ts +11 -3
- package/esm/mark/component.js +39 -8
- package/esm/mark/component.js.map +1 -1
- package/esm/mark/glyph.d.ts +29 -0
- package/esm/mark/glyph.js +72 -0
- package/esm/mark/glyph.js.map +1 -0
- package/esm/mark/group.d.ts +10 -6
- package/esm/mark/group.js +35 -17
- package/esm/mark/group.js.map +1 -1
- package/esm/mark/image.js +5 -2
- package/esm/mark/image.js.map +1 -1
- package/esm/mark/index.d.ts +3 -1
- package/esm/mark/index.js +5 -1
- package/esm/mark/index.js.map +1 -1
- package/esm/mark/interface/common.d.ts +61 -9
- package/esm/mark/interface/common.js.map +1 -1
- package/esm/mark/interface/enum.d.ts +6 -0
- package/esm/mark/interface/enum.js +7 -0
- package/esm/mark/interface/enum.js.map +1 -0
- package/esm/mark/interface/index.d.ts +1 -0
- package/esm/mark/interface/index.js +2 -0
- package/esm/mark/interface/index.js.map +1 -1
- package/esm/mark/interface/mark.d.ts +18 -1
- package/esm/mark/interface/mark.js.map +1 -1
- package/esm/mark/interface/type.d.ts +1 -0
- package/esm/mark/interface/type.js +2 -2
- package/esm/mark/interface/type.js.map +1 -1
- package/esm/mark/label.d.ts +4 -3
- package/esm/mark/label.js +3 -4
- package/esm/mark/label.js.map +1 -1
- package/esm/mark/line.js +9 -3
- package/esm/mark/line.js.map +1 -1
- package/esm/mark/link-path.d.ts +35 -5
- package/esm/mark/link-path.js +65 -11
- package/esm/mark/link-path.js.map +1 -1
- package/esm/mark/liquid.d.ts +47 -5
- package/esm/mark/liquid.js +64 -11
- package/esm/mark/liquid.js.map +1 -1
- package/esm/mark/path.js +5 -2
- package/esm/mark/path.js.map +1 -1
- package/esm/mark/polygon/polygon.js +6 -3
- package/esm/mark/polygon/polygon.js.map +1 -1
- package/esm/mark/polygon/pyramid-3d.js +6 -4
- package/esm/mark/polygon/pyramid-3d.js.map +1 -1
- package/esm/mark/rect-3d.js +6 -3
- package/esm/mark/rect-3d.js.map +1 -1
- package/esm/mark/rect.js +8 -3
- package/esm/mark/rect.js.map +1 -1
- package/esm/mark/ripple.d.ts +39 -4
- package/esm/mark/ripple.js +45 -10
- package/esm/mark/ripple.js.map +1 -1
- package/esm/mark/rule.d.ts +3 -0
- package/esm/mark/rule.js +30 -2
- package/esm/mark/rule.js.map +1 -1
- package/esm/mark/symbol.d.ts +4 -4
- package/esm/mark/symbol.js +18 -8
- package/esm/mark/symbol.js.map +1 -1
- package/esm/mark/text.d.ts +4 -2
- package/esm/mark/text.js +17 -8
- package/esm/mark/text.js.map +1 -1
- package/esm/mark/transform/data-sampling.d.ts +10 -0
- package/esm/mark/transform/data-sampling.js +115 -0
- package/esm/mark/transform/data-sampling.js.map +1 -0
- package/esm/mark/transform/filter.d.ts +1 -0
- package/esm/mark/transform/filter.js +8 -0
- package/esm/mark/transform/filter.js.map +1 -0
- package/esm/mark/transform/map.d.ts +1 -0
- package/esm/mark/transform/map.js +10 -0
- package/esm/mark/transform/map.js.map +1 -0
- package/esm/mark/transform/symbol-overlap.d.ts +14 -0
- package/esm/mark/transform/symbol-overlap.js +87 -0
- package/esm/mark/transform/symbol-overlap.js.map +1 -0
- package/esm/mark/utils/common.d.ts +4 -0
- package/esm/mark/utils/common.js +37 -0
- package/esm/mark/utils/common.js.map +1 -1
- package/esm/mark/utils/glyph.d.ts +2 -0
- package/esm/mark/utils/glyph.js +5 -0
- package/esm/mark/utils/glyph.js.map +1 -0
- package/esm/mark/utils/index.d.ts +2 -0
- package/esm/mark/utils/index.js +4 -0
- package/esm/mark/utils/index.js.map +1 -1
- package/esm/mark/utils/line.d.ts +3 -0
- package/esm/mark/utils/line.js +20 -0
- package/esm/mark/utils/line.js.map +1 -0
- package/esm/model/base-model.d.ts +8 -8
- package/esm/model/base-model.js +20 -9
- package/esm/model/base-model.js.map +1 -1
- package/esm/model/interface.d.ts +4 -8
- package/esm/model/interface.js.map +1 -1
- package/esm/model/layout-model.d.ts +2 -2
- package/esm/model/layout-model.js +4 -4
- package/esm/model/layout-model.js.map +1 -1
- package/esm/plugin/components/axis-sync/tick-align-transform.js +7 -5
- package/esm/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/base.d.ts +2 -2
- package/esm/plugin/components/tooltip-handler/base.js +1 -1
- package/esm/plugin/components/tooltip-handler/base.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/utils/attribute.js +1 -1
- package/esm/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/utils/position.d.ts +2 -4
- package/esm/plugin/components/tooltip-handler/utils/position.js +23 -10
- package/esm/plugin/components/tooltip-handler/utils/position.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/utils/style.js +2 -1
- package/esm/plugin/components/tooltip-handler/utils/style.js.map +1 -1
- package/esm/plugin/other.d.ts +3 -3
- package/esm/plugin/other.js +13 -5
- package/esm/plugin/other.js.map +1 -1
- package/esm/region/interface.d.ts +0 -2
- package/esm/region/interface.js.map +1 -1
- package/esm/region/region.d.ts +3 -9
- package/esm/region/region.js +11 -36
- package/esm/region/region.js.map +1 -1
- package/esm/scale/global-scale.js +2 -1
- package/esm/scale/global-scale.js.map +1 -1
- package/esm/series/area/animation.d.ts +1 -1
- package/esm/series/area/animation.js.map +1 -1
- package/esm/series/area/area.d.ts +1 -1
- package/esm/series/area/area.js +17 -18
- package/esm/series/area/area.js.map +1 -1
- package/esm/series/bar/animation.d.ts +1 -1
- package/esm/series/bar/animation.js.map +1 -1
- package/esm/series/bar/bar.d.ts +3 -3
- package/esm/series/bar/bar.js +14 -28
- package/esm/series/bar/bar.js.map +1 -1
- package/esm/series/base/base-series.d.ts +26 -42
- package/esm/series/base/base-series.js +61 -71
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/base/tooltip-helper.d.ts +1 -2
- package/esm/series/base/tooltip-helper.js.map +1 -1
- package/esm/series/box-plot/box-plot.d.ts +3 -3
- package/esm/series/box-plot/box-plot.js +13 -16
- package/esm/series/box-plot/box-plot.js.map +1 -1
- package/esm/series/cartesian/cartesian.d.ts +1 -1
- package/esm/series/circle-packing/animation.d.ts +1 -1
- package/esm/series/circle-packing/animation.js.map +1 -1
- package/esm/series/circle-packing/circle-packing.d.ts +1 -1
- package/esm/series/circle-packing/circle-packing.js +3 -5
- package/esm/series/circle-packing/circle-packing.js.map +1 -1
- package/esm/series/correlation/animation.d.ts +1 -1
- package/esm/series/correlation/animation.js.map +1 -1
- package/esm/series/correlation/correlation.d.ts +3 -4
- package/esm/series/correlation/correlation.js +7 -14
- package/esm/series/correlation/correlation.js.map +1 -1
- package/esm/series/dot/dot.d.ts +2 -2
- package/esm/series/dot/dot.js +4 -3
- package/esm/series/dot/dot.js.map +1 -1
- package/esm/series/funnel/3d/funnel-3d.js +3 -4
- package/esm/series/funnel/3d/funnel-3d.js.map +1 -1
- package/esm/series/funnel/funnel.d.ts +3 -2
- package/esm/series/funnel/funnel.js +61 -47
- package/esm/series/funnel/funnel.js.map +1 -1
- package/esm/series/funnel/tooltip-helper.d.ts +1 -1
- package/esm/series/funnel/tooltip-helper.js.map +1 -1
- package/esm/series/gauge/animation.d.ts +1 -1
- package/esm/series/gauge/animation.js.map +1 -1
- package/esm/series/gauge/gauge-pointer.d.ts +4 -1
- package/esm/series/gauge/gauge-pointer.js +2 -2
- package/esm/series/gauge/gauge-pointer.js.map +1 -1
- package/esm/series/gauge/gauge.d.ts +2 -2
- package/esm/series/gauge/gauge.js +2 -2
- package/esm/series/gauge/gauge.js.map +1 -1
- package/esm/series/geo/geo.d.ts +2 -2
- package/esm/series/geo/geo.js.map +1 -1
- package/esm/series/heatmap/animation.d.ts +1 -1
- package/esm/series/heatmap/animation.js.map +1 -1
- package/esm/series/heatmap/heatmap.d.ts +4 -1
- package/esm/series/heatmap/heatmap.js +5 -18
- package/esm/series/heatmap/heatmap.js.map +1 -1
- package/esm/series/interface/common.d.ts +1 -4
- package/esm/series/interface/common.js.map +1 -1
- package/esm/series/interface/series.d.ts +6 -1
- package/esm/series/interface/series.js.map +1 -1
- package/esm/series/line/animation.d.ts +1 -1
- package/esm/series/line/animation.js.map +1 -1
- package/esm/series/line/line.d.ts +1 -1
- package/esm/series/line/line.js +10 -13
- package/esm/series/line/line.js.map +1 -1
- package/esm/series/link/link.d.ts +5 -2
- package/esm/series/link/link.js +3 -3
- package/esm/series/link/link.js.map +1 -1
- package/esm/series/liquid/animation.d.ts +1 -1
- package/esm/series/liquid/animation.js.map +1 -1
- package/esm/series/liquid/liquid.d.ts +4 -1
- package/esm/series/liquid/liquid.js +5 -5
- package/esm/series/liquid/liquid.js.map +1 -1
- package/esm/series/map/interface.d.ts +10 -0
- package/esm/series/map/interface.js.map +1 -1
- package/esm/series/map/map.js +13 -15
- package/esm/series/map/map.js.map +1 -1
- package/esm/series/mixin/line-mixin.d.ts +5 -5
- package/esm/series/mixin/line-mixin.js +21 -26
- package/esm/series/mixin/line-mixin.js.map +1 -1
- package/esm/series/pictogram/pictogram.d.ts +15 -19
- package/esm/series/pictogram/pictogram.js +28 -34
- package/esm/series/pictogram/pictogram.js.map +1 -1
- package/esm/series/pie/animation/animation.d.ts +4 -3
- package/esm/series/pie/animation/animation.js.map +1 -1
- package/esm/series/pie/animation/centerOffset.d.ts +1 -1
- package/esm/series/pie/animation/centerOffset.js.map +1 -1
- package/esm/series/pie/interface.d.ts +2 -2
- package/esm/series/pie/interface.js.map +1 -1
- package/esm/series/pie/pie.d.ts +8 -6
- package/esm/series/pie/pie.js +15 -18
- package/esm/series/pie/pie.js.map +1 -1
- package/esm/series/polar/progress-like/animation.d.ts +1 -1
- package/esm/series/polar/progress-like/animation.js.map +1 -1
- package/esm/series/polar/progress-like/progress-like.d.ts +1 -2
- package/esm/series/polar/progress-like/progress-like.js.map +1 -1
- package/esm/series/progress/circular/circular.d.ts +4 -1
- package/esm/series/progress/circular/circular.js +10 -12
- package/esm/series/progress/circular/circular.js.map +1 -1
- package/esm/series/progress/linear/animation.d.ts +1 -1
- package/esm/series/progress/linear/animation.js.map +1 -1
- package/esm/series/progress/linear/linear.d.ts +4 -1
- package/esm/series/progress/linear/linear.js +8 -14
- package/esm/series/progress/linear/linear.js.map +1 -1
- package/esm/series/radar/animation.d.ts +11 -9
- package/esm/series/radar/animation.js.map +1 -1
- package/esm/series/radar/radar.d.ts +2 -2
- package/esm/series/radar/radar.js +6 -15
- package/esm/series/radar/radar.js.map +1 -1
- package/esm/series/range-area/range-area.js +1 -5
- package/esm/series/range-area/range-area.js.map +1 -1
- package/esm/series/range-column/animation.d.ts +1 -1
- package/esm/series/range-column/animation.js.map +1 -1
- package/esm/series/range-column/range-column.js +6 -8
- package/esm/series/range-column/range-column.js.map +1 -1
- package/esm/series/rose/animation.d.ts +1 -1
- package/esm/series/rose/animation.js.map +1 -1
- package/esm/series/rose/rose.js +1 -4
- package/esm/series/rose/rose.js.map +1 -1
- package/esm/series/sankey/animation.d.ts +1 -1
- package/esm/series/sankey/animation.js.map +1 -1
- package/esm/series/sankey/sankey.d.ts +11 -12
- package/esm/series/sankey/sankey.js +87 -100
- package/esm/series/sankey/sankey.js.map +1 -1
- package/esm/series/sankey/tooltip-helper.d.ts +1 -1
- package/esm/series/sankey/tooltip-helper.js.map +1 -1
- package/esm/series/scatter/animation.d.ts +1 -1
- package/esm/series/scatter/animation.js.map +1 -1
- package/esm/series/scatter/scatter.js +7 -13
- package/esm/series/scatter/scatter.js.map +1 -1
- package/esm/series/sunburst/animation/enter.d.ts +1 -1
- package/esm/series/sunburst/animation/enter.js +4 -4
- package/esm/series/sunburst/animation/enter.js.map +1 -1
- package/esm/series/sunburst/animation/exit.d.ts +1 -1
- package/esm/series/sunburst/animation/exit.js +4 -4
- package/esm/series/sunburst/animation/exit.js.map +1 -1
- package/esm/series/sunburst/animation/preset.d.ts +1 -1
- package/esm/series/sunburst/animation/preset.js.map +1 -1
- package/esm/series/sunburst/animation/utils.d.ts +2 -2
- package/esm/series/sunburst/animation/utils.js +9 -9
- package/esm/series/sunburst/animation/utils.js.map +1 -1
- package/esm/series/sunburst/sunburst.d.ts +1 -1
- package/esm/series/sunburst/sunburst.js +3 -7
- package/esm/series/sunburst/sunburst.js.map +1 -1
- package/esm/series/treemap/animation.d.ts +1 -1
- package/esm/series/treemap/animation.js.map +1 -1
- package/esm/series/treemap/treemap.d.ts +1 -2
- package/esm/series/treemap/treemap.js +43 -60
- package/esm/series/treemap/treemap.js.map +1 -1
- package/esm/series/venn/animation.d.ts +1 -1
- package/esm/series/venn/animation.js.map +1 -1
- package/esm/series/venn/venn.d.ts +2 -1
- package/esm/series/venn/venn.js +28 -14
- package/esm/series/venn/venn.js.map +1 -1
- package/esm/series/waterfall/animation.d.ts +1 -1
- package/esm/series/waterfall/animation.js.map +1 -1
- package/esm/series/waterfall/waterfall.d.ts +2 -2
- package/esm/series/waterfall/waterfall.js +10 -13
- package/esm/series/waterfall/waterfall.js.map +1 -1
- package/esm/series/word-cloud/animation.d.ts +1 -1
- package/esm/series/word-cloud/animation.js +1 -1
- package/esm/series/word-cloud/animation.js.map +1 -1
- package/esm/series/word-cloud/base.d.ts +1 -1
- package/esm/series/word-cloud/base.js +8 -11
- package/esm/series/word-cloud/base.js.map +1 -1
- package/esm/series/word-cloud/interface.d.ts +1 -1
- package/esm/series/word-cloud/interface.js.map +1 -1
- package/esm/series/word-cloud/word-cloud-3d.js +3 -9
- package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
- package/esm/series/word-cloud/word-cloud.js +10 -6
- package/esm/series/word-cloud/word-cloud.js.map +1 -1
- package/esm/typings/common.d.ts +13 -0
- package/esm/typings/common.js.map +1 -1
- package/esm/typings/spec/common.d.ts +37 -36
- package/esm/typings/spec/common.js.map +1 -1
- package/esm/typings/visual.d.ts +9 -2
- package/esm/typings/visual.js.map +1 -1
- package/esm/util/array.d.ts +1 -0
- package/esm/util/array.js +5 -0
- package/esm/util/array.js.map +1 -1
- package/esm/util/debug.js +1 -1
- package/esm/util/debug.js.map +1 -1
- package/esm/util/index.d.ts +1 -0
- package/esm/util/index.js +2 -0
- package/esm/util/index.js.map +1 -1
- package/esm/util/mark.d.ts +5 -0
- package/esm/util/mark.js +16 -0
- package/esm/util/mark.js.map +1 -0
- package/esm/util/math.d.ts +1 -1
- package/esm/util/math.js.map +1 -1
- package/esm/util/scale.js +1 -1
- package/esm/util/scale.js.map +1 -1
- package/package.json +17 -17
- package/cjs/compile/mark/compilable-mark.d.ts +0 -87
- package/cjs/compile/mark/compilable-mark.js +0 -261
- package/cjs/compile/mark/compilable-mark.js.map +0 -1
- package/cjs/compile/mark/mark-data.d.ts +0 -9
- package/cjs/compile/mark/mark-data.js +0 -28
- package/cjs/compile/mark/mark-data.js.map +0 -1
- package/cjs/compile/signal/compilable-signal.d.ts +0 -21
- package/cjs/compile/signal/compilable-signal.js +0 -42
- package/cjs/compile/signal/compilable-signal.js.map +0 -1
- package/cjs/compile/signal/index.d.ts +0 -4
- package/cjs/compile/signal/index.js +0 -22
- package/cjs/compile/signal/index.js.map +0 -1
- package/cjs/compile/signal/interface.d.ts +0 -12
- package/cjs/compile/signal/interface.js.map +0 -1
- package/cjs/compile/signal/signal-manager.d.ts +0 -11
- package/cjs/compile/signal/signal-manager.js +0 -36
- package/cjs/compile/signal/signal-manager.js.map +0 -1
- package/cjs/compile/signal/state-manager.d.ts +0 -12
- package/cjs/compile/signal/state-manager.js +0 -37
- package/cjs/compile/signal/state-manager.js.map +0 -1
- package/cjs/component/crosshair/interface/cartesian.d.ts +0 -33
- package/cjs/component/crosshair/interface/cartesian.js.map +0 -1
- package/cjs/component/crosshair/interface/polar.d.ts +0 -25
- package/cjs/component/crosshair/interface/polar.js.map +0 -1
- package/cjs/interaction/dimension-trigger.d.ts +0 -27
- package/cjs/interaction/dimension-trigger.js +0 -73
- package/cjs/interaction/dimension-trigger.js.map +0 -1
- package/cjs/interaction/interface.d.ts +0 -73
- package/cjs/interaction/interface.js +0 -6
- package/cjs/interaction/interface.js.map +0 -1
- package/cjs/series/base/series-data.d.ts +0 -5
- package/cjs/series/base/series-data.js +0 -22
- package/cjs/series/base/series-data.js.map +0 -1
- package/esm/compile/mark/compilable-mark.d.ts +0 -87
- package/esm/compile/mark/compilable-mark.js +0 -274
- package/esm/compile/mark/compilable-mark.js.map +0 -1
- package/esm/compile/mark/mark-data.d.ts +0 -9
- package/esm/compile/mark/mark-data.js +0 -24
- package/esm/compile/mark/mark-data.js.map +0 -1
- package/esm/compile/signal/compilable-signal.d.ts +0 -21
- package/esm/compile/signal/compilable-signal.js +0 -38
- package/esm/compile/signal/compilable-signal.js.map +0 -1
- package/esm/compile/signal/index.d.ts +0 -4
- package/esm/compile/signal/index.js +0 -8
- package/esm/compile/signal/index.js.map +0 -1
- package/esm/compile/signal/interface.d.ts +0 -12
- package/esm/compile/signal/interface.js +0 -2
- package/esm/compile/signal/interface.js.map +0 -1
- package/esm/compile/signal/signal-manager.d.ts +0 -11
- package/esm/compile/signal/signal-manager.js +0 -30
- package/esm/compile/signal/signal-manager.js.map +0 -1
- package/esm/compile/signal/state-manager.d.ts +0 -12
- package/esm/compile/signal/state-manager.js +0 -30
- package/esm/compile/signal/state-manager.js.map +0 -1
- package/esm/component/crosshair/interface/cartesian.d.ts +0 -33
- package/esm/component/crosshair/interface/cartesian.js +0 -2
- package/esm/component/crosshair/interface/cartesian.js.map +0 -1
- package/esm/component/crosshair/interface/polar.d.ts +0 -25
- package/esm/component/crosshair/interface/polar.js +0 -2
- package/esm/component/crosshair/interface/polar.js.map +0 -1
- package/esm/interaction/dimension-trigger.d.ts +0 -27
- package/esm/interaction/dimension-trigger.js +0 -70
- package/esm/interaction/dimension-trigger.js.map +0 -1
- package/esm/interaction/interface.d.ts +0 -73
- package/esm/interaction/interface.js +0 -2
- package/esm/interaction/interface.js.map +0 -1
- package/esm/series/base/series-data.d.ts +0 -5
- package/esm/series/base/series-data.js +0 -16
- package/esm/series/base/series-data.js.map +0 -1
package/esm/core/vchart.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/vchart.ts"],"names":[],"mappings":"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","file":"vchart.js","sourcesContent":["import type { ISeries } from '../series/interface/series';\nimport { arrayParser } from '../data/parser/array';\nimport type { ILayoutConstructor, LayoutCallBack } from '../layout/interface';\nimport type { IDataValues, IMarkStateSpec, IInitOption, IPerformanceHook } from '../typings/spec/common';\n// eslint-disable-next-line no-duplicate-imports\nimport { RenderModeEnum } from '../typings/spec/common';\nimport type { ISeriesConstructor } from '../series/interface';\nimport {\n ChartTypeEnum,\n type DimensionIndexOption,\n type IChart,\n type IChartConstructor,\n type IChartOption,\n type IChartSpecInfo,\n type IChartSpecTransformer\n} from '../chart/interface';\nimport type { IComponentConstructor } from '../component/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../component/interface/type';\nimport type {\n EventCallback,\n EventParams,\n EventParamsDefinition,\n EventQuery,\n EventType,\n IEvent,\n IEventDispatcher\n} from '../event/interface';\nimport type { IParserOptions, IFields, Transform } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataSet, dataViewParser, DataView } from '@visactor/vdataset';\nimport type { IStage, Stage } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { vglobal } from '@visactor/vrender-core';\nimport { isString, isValid, isNil, array, specTransform, functionTransform } from '../util';\nimport { createID } from '../util/id';\nimport { convertPoint } from '../util/space';\nimport { isTrueBrowser } from '../util/env';\nimport { warn } from '../util/debug';\nimport { getThemeObject } from '../util/theme/common';\nimport { mergeSpec, mergeSpecWithFilter } from '@visactor/vutils-extension';\nimport { Factory } from './factory';\nimport { Event } from '../event/event';\nimport { EventDispatcher } from '../event/event-dispatcher';\nimport type { GeoSourceType } from '../typings/geo';\nimport type { GeoSourceOption } from '../series/map/geo-source';\n// eslint-disable-next-line no-duplicate-imports\nimport { getMapSource } from '../series/map/geo-source';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IMark, MarkConstructor } from '../mark/interface';\nimport { registerDataSetInstanceParser, registerDataSetInstanceTransform } from '../data/register';\nimport { dataToDataView } from '../data/initialize';\nimport { copyDataView } from '../data/transforms/copy-data-view';\nimport type { ITooltipHandler } from '../typings/tooltip';\nimport type { Tooltip } from '../component/tooltip';\nimport type {\n Datum,\n IPoint,\n IRegionQuerier,\n IShowTooltipOption,\n ISpec,\n Maybe,\n MaybeArray,\n StringOrNumber\n} from '../typings';\nimport { AnimationStateEnum } from '../animation/interface';\nimport type { IBoundsLike, ILogger } from '@visactor/vutils';\nimport { ThemeManager } from '../theme/theme-manager';\nimport type { ITheme } from '../theme';\nimport type { IModel, IUpdateDataResult, IUpdateSpecResult } from '../model/interface';\nimport { Compiler } from '../compile/compiler';\nimport type { IMorphConfig } from '../animation/spec';\nimport type { ILegend } from '../component/legend/interface';\nimport { getCanvasDataURL, URLToImage } from '../util/image';\nimport { ChartEvent, VGRAMMAR_HOOK_EVENT } from '../constant/event';\nimport { DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH } from '../constant/base';\n// eslint-disable-next-line no-duplicate-imports\nimport {\n isArray,\n isEmpty,\n Logger,\n merge as mergeOrigin,\n isFunction,\n LoggerLevel,\n isEqual,\n get,\n cloneDeep,\n isObject,\n throttle\n} from '@visactor/vutils';\nimport type {\n DataLinkAxis,\n DataLinkSeries,\n IGlobalConfig,\n IVChart,\n IVChartRenderOption,\n VChartRenderActionSource\n} from './interface';\nimport { InstanceManager } from './instance-manager';\nimport type { IAxis } from '../component/axis';\nimport { setPoptipTheme } from '@visactor/vrender-components';\nimport { calculateChartSize, mergeUpdateResult } from '../chart/util';\nimport { Region } from '../region/region';\nimport { Layout } from '../layout/base-layout';\nimport { registerGroupMark } from '../mark/group';\nimport { View, registerGesturePlugin } from '@visactor/vgrammar-core';\nimport { VCHART_UTILS } from './util';\nimport { ExpressionFunction } from './expression-function';\nimport { registerBrowserEnv, registerNodeEnv } from '../env';\nimport { mergeTheme, preprocessTheme } from '../util/theme';\nimport { darkTheme, registerTheme } from '../theme/builtin';\nimport type { IChartPluginService } from '../plugin/chart/interface';\nimport { ChartPluginService } from '../plugin/chart/plugin-service';\nimport {\n registerElementHighlight as registerHoverInteraction,\n registerElementSelect as registerSelectInteraction\n} from '../interaction';\nimport type { IIndicator } from '../component/indicator';\nimport type { IGeoCoordinate } from '../component/geo';\nimport { getSVGSource } from '../series/pictogram/svg-source';\n\nexport class VChart implements IVChart {\n readonly id = createID();\n\n /**\n * 按需注册图表和组件\n * @param comps\n * @since 1.5.1\n */\n static useRegisters(comps: (() => void)[]) {\n comps.forEach((fn: () => void) => {\n if (typeof fn === 'function') {\n // 确保元素是函数类型\n fn();\n } else {\n console.error('Invalid function:', fn);\n }\n });\n }\n\n /**\n * 注册自定义图表\n * @param charts 图表类\n * @description 若用于按需加载,1.5.1版本后,请统一使用 `useRegisters` API,例如:`VChart.useRegisters([registerLineChart])`。\n */\n static useChart(charts: IChartConstructor[]) {\n charts.forEach(c => Factory.registerChart(c.type, c));\n }\n /**\n * 注册自定义系列\n * @param series 系列类\n * @description 若用于按需加载,1.5.1版本后,统一使用 `useRegisters` API,例如 `VChart.useRegisters([registerLineSeries])`。\n */\n static useSeries(series: ISeriesConstructor[]) {\n series.forEach(s => Factory.registerSeries(s.type, s));\n }\n /**\n * 注册自定义组件\n * @param components 组件类\n * @description 若用于按需加载,1.5.1版本后,统一使用 `useRegisters` API,例如 `VChart.useRegisters([registerCartesianLinearAxis])`。\n */\n static useComponent(components: IComponentConstructor[]) {\n components.forEach(c => Factory.registerComponent(c.type, c));\n }\n /**\n * 注册自定义 Mark\n * @param marks Mark 图元类\n */\n static useMark(marks: MarkConstructor[]) {\n marks.forEach(m => Factory.registerMark(m.constructorType ?? m.type, m));\n }\n /**\n * 注册自定义布局\n * @param layouts 布局类\n */\n static useLayout(layouts: ILayoutConstructor[]) {\n layouts.forEach(l => Factory.registerLayout(l.type, l));\n }\n /**\n * 注册 DataSet 数据方法\n * @param name 数据 transform 方法名称\n * @param transform 具体的 Transform 执行方法\n */\n static registerDataSetTransform(name: string, transform: Transform) {\n Factory.registerTransform(name, transform);\n }\n\n /**\n * 注册函数(全局注册)\n * @param key 函数名称\n * @param fun 函数内容\n */\n static registerFunction(key: string, fun: Function) {\n if (!key || !fun) {\n return;\n }\n ExpressionFunction.instance().registerFunction(key, fun);\n }\n\n /**\n * 注销函数(全局注销)\n * @param key 函数名称\n */\n static unregisterFunction(key: string) {\n if (!key) {\n return;\n }\n ExpressionFunction.instance().unregisterFunction(key);\n }\n\n /**\n * 获取函数(全局)\n * @param key\n * @returns\n */\n static getFunction(key: string): Function | null {\n if (!key) {\n return null;\n }\n return ExpressionFunction.instance().getFunction(key);\n }\n\n /**\n * 获取函数列表(全局获取)\n * @returns\n */\n static getFunctionList(): string[] | null {\n return ExpressionFunction.instance().getFunctionNameList();\n }\n\n /**\n * 注册地图数据\n * @param key 地图名称\n * @param source 地图数据\n * @param option 地图数据配置\n */\n static registerMap(key: string, source: GeoSourceType, option?: GeoSourceOption) {\n const impl = Factory.getImplementInKey('registerMap');\n impl && impl(key, source, option);\n }\n\n /**\n * 注销地图数据\n * @param key 地图名称\n */\n static unregisterMap(key: string) {\n const impl = Factory.getImplementInKey('unregisterMap');\n impl && impl(key);\n }\n\n /**\n * 根据地图名称获取地图数据\n * @param key 地图名称\n * @returns 地图数据\n */\n static getMap(key: string): GeoSourceType {\n return getMapSource(key);\n }\n\n /**\n * 注册地图数据\n * @param key 地图名称\n * @param source 地图数据\n * @param option 地图数据配置\n */\n static registerSVG(key: string, source: GeoSourceType, option?: GeoSourceOption) {\n const impl = Factory.getImplementInKey('registerSVG');\n impl && impl(key, source, option);\n }\n\n /**\n * 注销地图数据\n * @param key 地图名称\n */\n static unregisterSVG(key: string) {\n const impl = Factory.getImplementInKey('unregisterSVG');\n impl && impl(key);\n }\n\n /**\n * 根据地图名称获取地图数据\n * @param key 地图名称\n * @returns 地图数据\n */\n static getSVG(key: string): any {\n return getSVGSource(key);\n }\n\n /**\n * 全局关闭 tooltip\n * @param excludeId 可选,指定不需要关闭 tooltip 的实例 id\n */\n static hideTooltip(excludeId: MaybeArray<number> = []): void {\n InstanceManager.forEach(instance => instance?.hideTooltip?.(), excludeId);\n }\n\n /** 获取 Logger */\n static getLogger(): ILogger {\n return Logger.getInstance();\n }\n\n /** 图表实例管理器 */\n static readonly InstanceManager = InstanceManager;\n /** 主题管理器 */\n static readonly ThemeManager = ThemeManager;\n\n /** 全局配置 */\n static globalConfig: IGlobalConfig = {\n uniqueTooltip: true\n };\n\n /** 工具方法 */\n static readonly Utils = VCHART_UTILS;\n\n static readonly vglobal = vglobal;\n\n protected _originalSpec: any;\n protected _spec: any;\n getSpec() {\n return this._spec;\n }\n\n protected _specInfo: IChartSpecInfo;\n getSpecInfo() {\n return this._specInfo;\n }\n\n private _viewBox: IBoundsLike;\n private _chart!: Maybe<IChart>;\n private _chartSpecTransformer!: Maybe<IChartSpecTransformer>;\n private _compiler: Compiler;\n private _event: Maybe<IEvent>;\n private _userEvents: {\n eType: EventType;\n query: EventQuery | EventCallback<EventParamsDefinition[EventType]>;\n handler?: EventCallback<EventParamsDefinition[EventType]>;\n }[] = [];\n private _eventDispatcher: Maybe<IEventDispatcher>;\n private _dataSet!: Maybe<DataSet>;\n getDataSet() {\n return this._dataSet;\n }\n\n private _container?: HTMLElement;\n private _canvas?: HTMLCanvasElement | OffscreenCanvas | string;\n private _stage?: Stage;\n\n private _autoSize: boolean = true;\n private _option: IInitOption = {\n mode: RenderModeEnum['desktop-browser'],\n onError: (msg: string) => {\n throw new Error(msg);\n },\n optimize: {\n disableCheckGraphicWidthOutRange: true\n }\n };\n\n private _currentSize: { width: number; height: number };\n private _observer: ResizeObserver = null;\n\n private _currentThemeName: string;\n private _currentTheme: ITheme;\n\n private _onError?: (...args: any[]) => void;\n\n private _context: any = {}; // 存放用户在model初始化前通过实例方法传入的配置等\n private _isReleased: boolean;\n\n private _chartPlugin?: IChartPluginService;\n private _onResize?: () => void;\n\n constructor(spec: ISpec, options: IInitOption) {\n this._option = mergeOrigin(this._option, { animation: (spec as any).animation !== false }, options);\n this._onError = this._option?.onError;\n\n const { dom, renderCanvas, mode, stage, poptip, ...restOptions } = this._option;\n const isTrueBrowseEnv = isTrueBrowser(mode);\n\n // 根据 mode 配置动态加载浏览器或 node 环境代码\n if (isTrueBrowseEnv) {\n registerBrowserEnv();\n } else if (mode === 'node') {\n registerNodeEnv();\n }\n\n if (isTrueBrowseEnv && dom) {\n this._container = isString(dom) ? vglobal.getElementById(dom) : dom;\n }\n if (renderCanvas) {\n this._canvas = renderCanvas;\n }\n if (stage) {\n this._stage = stage as unknown as Stage; // FIXME: 等待 vrender 解决类型和接口不匹配的问题 @zhouxinyu\n }\n\n if (mode !== 'node' && !this._container && !this._canvas && !this._stage) {\n this._option?.onError('please specify container or renderCanvas!');\n return;\n }\n\n this._viewBox = this._option.viewBox;\n this._currentThemeName = ThemeManager.getCurrentThemeName();\n this._setNewSpec(spec);\n this._updateCurrentTheme();\n this._currentSize = this.getCurrentSize();\n const pluginList: string[] = [];\n\n if (!poptip !== false) {\n pluginList.push('poptipForText');\n }\n\n if (spec.type === ChartTypeEnum.sankey) {\n // 桑基图默认记载滚动条组件\n pluginList.push('scrollbar');\n }\n // hook增加图表实例参数\n const performanceHook = { ...(restOptions.performanceHook || {}) };\n (Object.keys(performanceHook) as (keyof IPerformanceHook)[]).forEach(hookKey => {\n // @ts-ignore\n restOptions.performanceHook[hookKey] = (...args) => {\n // @ts-ignore\n performanceHook[hookKey](...args, this as any);\n };\n });\n\n this._compiler = new Compiler(\n {\n dom: this._container ?? 'none',\n canvas: renderCanvas\n },\n {\n mode: this._option.mode,\n stage,\n pluginList,\n ...restOptions,\n background: this._getBackground(),\n onError: this._onError\n }\n );\n this._compiler.setSize(this._currentSize.width, this._currentSize.height);\n this._eventDispatcher = new EventDispatcher(this, this._compiler);\n this._event = new Event(this._eventDispatcher, mode);\n this._compiler.initView();\n // TODO: 如果通过 updateSpec 更新主题字体的验证\n // 设置全局字体\n this._setFontFamilyTheme(this._currentTheme?.fontFamily as string);\n this._initDataSet(this._option.dataSet);\n this._autoSize = isTrueBrowseEnv ? spec.autoFit ?? this._option.autoFit ?? true : false;\n this._bindResizeEvent();\n this._bindVGrammarViewEvent();\n this._initChartPlugin();\n\n InstanceManager.registerInstance(this);\n this._option.performanceHook?.afterCreateVChart?.(this);\n }\n\n /** 设置新 spec,返回是否成功 */\n private _setNewSpec(spec: any, forceMerge?: boolean): boolean {\n if (!spec) {\n return false;\n }\n if (isString(spec)) {\n spec = JSON.parse(spec);\n }\n if (forceMerge && this._originalSpec) {\n spec = mergeSpec({}, this._originalSpec, spec);\n }\n this._originalSpec = spec;\n this._spec = this._getSpecFromOriginalSpec();\n return true;\n }\n\n private _getSpecFromOriginalSpec() {\n // 转换在实例上注册的函数 + 深拷贝 spec,保证 _originalSpec 和 _spec 的不同\n const spec = specTransform(this._originalSpec) as any;\n // because of in data-init, data will be set as array;\n spec.data = spec.data ?? [];\n return spec;\n }\n\n private _initChartSpec(spec: any, actionSource: VChartRenderActionSource) {\n // 如果用户注册了函数,在配置中替换相应函数名为函数内容\n if (VChart.getFunctionList() && VChart.getFunctionList().length) {\n spec = functionTransform(spec, VChart);\n }\n this._spec = spec;\n if (!this._chartSpecTransformer) {\n this._chartSpecTransformer = Factory.createChartSpecTransformer(\n this._spec.type,\n this._getChartOption(this._spec.type)\n );\n }\n\n this._chartSpecTransformer?.transformSpec(this._spec);\n\n // 插件生命周期\n this._chartPluginApply('onAfterChartSpecTransform', this._spec, actionSource);\n\n this._specInfo = this._chartSpecTransformer?.transformModelSpec(this._spec);\n\n // 插件生命周期\n this._chartPluginApply('onAfterModelSpecTransform', this._spec, this._specInfo, actionSource);\n }\n\n private _updateSpecInfo() {\n if (!this._chartSpecTransformer) {\n this._chartSpecTransformer = Factory.createChartSpecTransformer(\n this._spec.type,\n this._getChartOption(this._spec.type)\n );\n }\n this._specInfo = this._chartSpecTransformer?.createSpecInfo(this._spec);\n }\n\n private _initChart(spec: any) {\n if (!this._compiler) {\n this._option?.onError('compiler is not initialized');\n return;\n }\n if (this._chart) {\n this._option?.onError('chart is already initialized');\n return;\n }\n\n // 放到这里而不是放到chart内的考虑\n // 用户spec更新,也许会有core上图表实例的内容存在\n // 如果要支持spec的类似Proxy监听,更新逻辑应当从这一层开始。如果在chart上做,就需要在再向上发送spec更新消息,不是很合理。\n // todo: 问题1 存不存在 chart 需要在这个阶段处理的特殊字段?目前没有,但是理论上可以有?\n const chart = Factory.createChart(spec.type, spec, this._getChartOption(spec.type));\n if (!chart) {\n this._option?.onError('init chart fail');\n return;\n }\n this._chart = chart;\n this._chart.setCanvasRect(this._currentSize.width, this._currentSize.height);\n this._chart.created(this._chartSpecTransformer);\n this._chart.init();\n this._event.emit(ChartEvent.initialized, {\n chart,\n vchart: this\n });\n }\n\n private _releaseData() {\n if (this._dataSet) {\n // Object.values(this._dataSet.dataViewMap).forEach(d => {\n // d.target.removeAllListeners();\n // d.destroy();\n // });\n this._dataSet.dataViewMap = {};\n this._dataSet = null;\n }\n }\n\n private _bindVGrammarViewEvent() {\n if (!this._compiler) {\n return;\n }\n const view = this._compiler.getVGrammarView();\n\n view.addEventListener(VGRAMMAR_HOOK_EVENT.ALL_ANIMATION_END, () => {\n this._event.emit(ChartEvent.animationFinished, {\n chart: this._chart,\n vchart: this\n });\n });\n view.addEventListener(VGRAMMAR_HOOK_EVENT.AFTER_VRENDER_NEXT_RENDER, () => {\n this._event.emit(ChartEvent.renderFinished, {\n chart: this._chart,\n vchart: this\n });\n });\n }\n\n private _bindResizeEvent() {\n if (this._autoSize) {\n this._onResize = throttle(this._doResize, this._option.resizeDelay ?? 100);\n\n if (this._container) {\n const ResizeObserverWindow: any = window.ResizeObserver;\n\n if (ResizeObserverWindow) {\n this._observer = new ResizeObserverWindow(this._onResize);\n this._observer?.observe(this._container);\n }\n }\n window.addEventListener('resize', this._onResize);\n }\n }\n\n private _unBindResizeEvent() {\n if (this._autoSize) {\n window.removeEventListener('resize', this._onResize);\n if (this._observer) {\n this._observer.disconnect();\n this._observer = null;\n }\n }\n }\n\n getCurrentSize() {\n return calculateChartSize(\n this._spec,\n {\n container: this._container,\n canvas: this._canvas,\n mode: this._getMode(),\n modeParams: this._option.modeParams\n },\n {\n width: this._currentSize?.width ?? DEFAULT_CHART_WIDTH,\n height: this._currentSize?.height ?? DEFAULT_CHART_HEIGHT\n }\n );\n }\n\n private _doResize = () => {\n const { width, height } = this.getCurrentSize();\n if (this._currentSize.width !== width || this._currentSize.height !== height) {\n this._currentSize = { width, height };\n this.resizeSync(width, height);\n }\n };\n\n private _initDataSet(dataSet?: DataSet) {\n if (dataSet instanceof DataSet) {\n this._dataSet = dataSet;\n } else {\n this._dataSet = new DataSet();\n }\n registerDataSetInstanceParser(this._dataSet, 'dataview', dataViewParser);\n registerDataSetInstanceParser(this._dataSet, 'array', arrayParser);\n registerDataSetInstanceTransform(this._dataSet, 'copyDataView', copyDataView);\n // 注册 dataset transform\n for (const key in Factory.transforms) {\n registerDataSetInstanceTransform(this._dataSet, key, Factory.transforms[key]);\n }\n // 注册 dataview parser\n for (const key in Factory.dataParser) {\n registerDataSetInstanceParser(this._dataSet, key, Factory.dataParser[key]);\n }\n }\n\n /** 在修改图表配置后重新渲染 */\n updateCustomConfigAndRerender(\n updateSpecResult: IUpdateSpecResult | (() => IUpdateSpecResult),\n sync?: boolean,\n option: IVChartRenderOption = {}\n ) {\n if (this._isReleased || !updateSpecResult) {\n return undefined;\n }\n if (isFunction(updateSpecResult)) {\n updateSpecResult = updateSpecResult();\n }\n\n if (updateSpecResult.reAnimate) {\n this.stopAnimation();\n this._updateAnimateState(true);\n }\n\n this._reCompile(updateSpecResult);\n if (sync) {\n return this._renderSync(option);\n }\n return this._renderAsync(option);\n }\n\n /** 执行自定义的回调修改图表配置,并重新编译(不渲染) */\n protected _updateCustomConfigAndRecompile(updateSpecResult: IUpdateSpecResult, option: IVChartRenderOption = {}) {\n if (!updateSpecResult) {\n return false;\n }\n this._reCompile(updateSpecResult);\n return this._beforeRender(option);\n }\n\n protected _reCompile(updateResult: IUpdateSpecResult, morphConfig?: IMorphConfig) {\n if (updateResult.reMake) {\n this._releaseData();\n this._initDataSet();\n this._chart?.release();\n this._chart = null as unknown as IChart;\n }\n\n if (updateResult.reTransformSpec) {\n // 释放图表等等\n this._chartSpecTransformer = null;\n }\n\n // 卸载了chart之后再设置主题 避免多余的reInit\n if (updateResult.changeTheme) {\n this._setCurrentTheme();\n this._setFontFamilyTheme(this._currentTheme?.fontFamily as string);\n } else if (updateResult.changeBackground) {\n this._compiler?.setBackground(this._getBackground());\n }\n\n if (updateResult.reMake) {\n // 如果不需要动画,那么释放item,避免元素残留\n this._compiler?.releaseGrammar(this._option?.animation === false || this._spec?.animation === false);\n // chart 内部事件 模块自己必须删除\n // 内部模块删除事件时,调用了event Dispatcher.release() 导致用户事件被一起删除\n // 外部事件现在需要重新添加\n this._userEvents.forEach(e => this._event?.on(e.eType as any, e.query as any, e.handler as any));\n\n if (updateResult.reSize) {\n this._doResize();\n }\n } else {\n if (updateResult.reCompile) {\n // recompile\n // 清除之前的所有 compile 内容\n this._compiler?.clear(\n { chart: this._chart, vChart: this },\n this._option?.animation === false || this._spec?.animation === false\n );\n // TODO: 释放事件? vgrammar 的 view 应该不需要释放,响应的stage也没有释放,所以事件可以不绑定\n // 重新绑定事件\n // TODO: 释放XX?\n // 重新compile\n this._compiler?.compile({ chart: this._chart, vChart: this }, {});\n }\n if (updateResult.reSize) {\n const { width, height } = this.getCurrentSize();\n this._chart.onResize(width, height, false);\n this._compiler.resize(width, height, false);\n }\n }\n }\n\n /** 渲染之前的步骤,返回是否成功 */\n protected _beforeRender(option: IVChartRenderOption = {}): boolean {\n // 如果 vchart 实例已经卸载,终止渲染\n if (this._isReleased) {\n return false;\n }\n // 如果图表已经实例化,跳过该步骤\n if (this._chart) {\n return true;\n }\n\n const { transformSpec, actionSource } = option;\n\n if (transformSpec) {\n // 初始化图表 spec\n this._initChartSpec(this._spec, 'render');\n // 插件生命周期\n }\n this._chartPluginApply('onBeforeInitChart', this._spec, actionSource);\n\n // 实例化图表\n this._option.performanceHook?.beforeInitializeChart?.(this);\n this._initChart(this._spec);\n this._option.performanceHook?.afterInitializeChart?.(this);\n // 如果实例化失败,终止渲染\n if (!this._chart || !this._compiler) {\n return false;\n }\n\n // compile\n this._option.performanceHook?.beforeCompileToVGrammar?.();\n this._compiler.compile({ chart: this._chart, vChart: this }, { performanceHook: this._option.performanceHook });\n this._option.performanceHook?.afterCompileToVGrammar?.();\n return true;\n }\n\n /** 渲染之后的步骤 */\n protected _afterRender(): boolean {\n if (this._isReleased) {\n return false;\n }\n this._updateAnimateState();\n this._event.emit(ChartEvent.rendered, {\n chart: this._chart,\n vchart: this\n });\n return true;\n }\n\n /**\n * **同步方法** 渲染图表。\n * @param morphConfig 图表 morph 动画配置,可选\n * @returns VChart 实例\n */\n renderSync(morphConfig?: IMorphConfig) {\n return this._renderSync({\n morphConfig,\n transformSpec: true,\n actionSource: 'render'\n });\n }\n\n /**\n * **异步方法** 渲染图表。\n * @param morphConfig 图表 morph 动画配置,可选\n * @returns VChart 实例\n */\n async renderAsync(morphConfig?: IMorphConfig) {\n return this._renderAsync({\n morphConfig,\n transformSpec: true,\n actionSource: 'render'\n });\n }\n\n protected _renderSync = (option: IVChartRenderOption = {}) => {\n const self = this as unknown as IVChart;\n if (!this._beforeRender(option)) {\n return self;\n }\n // 填充数据绘图\n this._compiler?.render(option.morphConfig);\n this._afterRender();\n return self;\n };\n\n protected async _renderAsync(option: IVChartRenderOption = {}) {\n return this._renderSync(option);\n }\n\n private _updateAnimateState(initial?: boolean) {\n if (this._option.animation) {\n const animationState = initial ? AnimationStateEnum.appear : AnimationStateEnum.update;\n this._chart?.getAllRegions().forEach(region => {\n region.animate?.updateAnimateState(animationState, true);\n });\n this._chart?.getAllComponents().forEach(component => {\n component.animate?.updateAnimateState(animationState, true);\n });\n }\n }\n\n /**\n * 销毁图表\n */\n release() {\n if ((this._onResize as any)?.cancel) {\n (this._onResize as any).cancel();\n }\n this._chartPluginApply('releaseAll');\n this._chartPlugin = null;\n this._chartSpecTransformer = null;\n this._chart?.release();\n // eventDispatcher 的release 依赖 compiler\n this._eventDispatcher?.release();\n this._compiler?.release();\n this._unBindResizeEvent();\n // resetID(); // 为什么要重置ID呢?\n\n this._releaseData();\n\n this._onError = null;\n this._onResize = null;\n this._container = null;\n this._currentTheme = null;\n this._option = null;\n this._chart = null;\n this._compiler = null;\n this._spec = null;\n this._specInfo = null;\n this._originalSpec = null;\n // this._option = null;\n this._userEvents = null;\n this._event = null;\n this._eventDispatcher = null;\n this._isReleased = true;\n\n InstanceManager.unregisterInstance(this);\n }\n\n /**\n * **异步方法** 更新数据。\n * @param id 数据 id\n * @param data 数据值\n * @param parserOptions 数据参数\n * @returns VChart 实例\n */\n async updateData(\n id: StringOrNumber,\n data: DataView | Datum[] | string,\n parserOptions?: IParserOptions,\n userUpdateOptions?: IUpdateDataResult\n ): Promise<IVChart> {\n return this.updateDataSync(id, data, parserOptions, userUpdateOptions);\n }\n\n private _updateDataById(id: StringOrNumber, data: DataView | Datum[] | string, parserOptions?: IParserOptions) {\n const preDV = this._spec.data.find((dv: any) => dv.name === id || dv.id === id);\n if (preDV) {\n if (preDV.id === id) {\n preDV.values = data;\n } else if (preDV.name === id) {\n preDV.parse(data, parserOptions);\n }\n } else {\n if (isArray(data)) {\n this._spec.data.push({\n id,\n values: data\n });\n } else {\n this._spec.data.push(data);\n }\n }\n }\n\n /**\n * **异步方法** 批量更新数据。\n * @param list 待更新的数据列表\n * @returns VChart 实例\n */\n async updateDataInBatches(list: { id: string; data: Datum[]; options?: IParserOptions }[]): Promise<IVChart> {\n if (this._chart) {\n this._chart.updateFullData(\n list.map(({ id, data, options }) => {\n return { id, values: data, parser: options };\n })\n );\n this._chart.updateGlobalScaleDomain();\n this._compiler.render();\n return this as unknown as IVChart;\n }\n\n this._spec.data = array(this._spec.data);\n list.forEach(({ id, data, options }) => {\n this._updateDataById(id, data, options);\n });\n return this as unknown as IVChart;\n }\n\n /**\n * **同步方法** 更新数据\n * @param id 数据 id\n * @param data 数据值\n * @param parserOptions 数据参数\n * @returns VChart 实例\n */\n updateDataSync(\n id: StringOrNumber,\n data: DataView | Datum[] | string,\n parserOptions?: IParserOptions,\n userUpdateOptions?: IUpdateDataResult\n ) {\n if (isNil(this._dataSet)) {\n return this as unknown as IVChart;\n }\n if (this._chart) {\n if (userUpdateOptions?.reAnimate) {\n this.stopAnimation();\n this._updateAnimateState(true);\n }\n\n this._chart.updateData(id, data, true, parserOptions);\n\n // after layout\n this._compiler.render();\n return this as unknown as IVChart;\n }\n this._spec.data = array(this._spec.data);\n\n this._updateDataById(id, data, parserOptions);\n return this as unknown as IVChart;\n }\n\n /**\n * **同步方法** 更新数据\n * @param data 图表配置结构中的数据对象\n * @returns VChart 实例\n * @since 1.3.0\n */\n updateFullDataSync(\n data: IDataValues | IDataValues[],\n reRender: boolean = true,\n userUpdateOptions?: IUpdateSpecResult\n ) {\n if (this._chart) {\n if (userUpdateOptions?.reAnimate) {\n this.stopAnimation();\n this._updateAnimateState(true);\n }\n this._chart.updateFullData(data);\n if (reRender) {\n this._compiler.render();\n }\n return this as unknown as IVChart;\n }\n\n const prevData = array(this._spec.data) as DataView[];\n const list: IDataValues[] = array(data);\n list.forEach(d => {\n // only support update this attrs\n const { id, values, parser, fields } = d;\n const preDV = prevData.find(dv => dv.name === id);\n if (preDV) {\n if (preDV instanceof DataView) {\n preDV.setFields(cloneDeep(fields) as IFields);\n preDV.parse(values, cloneDeep(parser) as IParserOptions);\n } else {\n (preDV as IDataValues).values = values;\n isValid(parser) && ((preDV as IDataValues).parser = parser);\n isValid(fields) && ((preDV as IDataValues).fields = fields);\n }\n } else {\n // new data\n const dataView = dataToDataView(d, <DataSet>this._dataSet, prevData);\n\n if (isArray(this._spec.data)) {\n this._spec.data.push(dataView);\n }\n }\n });\n return this as unknown as IVChart;\n }\n\n /**\n * **异步方法** 更新数据\n * @param data 图表配置结构中的数据对象\n * @returns VChart 实例\n * @since 1.3.0\n */\n async updateFullData(data: IDataValues | IDataValues[], reRender: boolean = true) {\n return this.updateFullDataSync(data, reRender);\n }\n\n /**\n * **异步方法** spec 更新\n * @param spec\n * @param forceMerge\n * @returns\n */\n async updateSpec(\n spec: ISpec,\n forceMerge: boolean = false,\n morphConfig?: IMorphConfig,\n userUpdateOptions?: IUpdateSpecResult\n ) {\n const result = this._updateSpec(spec, forceMerge, userUpdateOptions);\n\n if (!result) {\n return this as unknown as IVChart;\n }\n\n await this.updateCustomConfigAndRerender(result, false, {\n morphConfig,\n transformSpec: result.reTransformSpec,\n actionSource: 'updateSpec'\n });\n return this as unknown as IVChart;\n }\n\n /**\n * **同步方法** spec 更新\n * @param spec\n * @param forceMerge\n * @returns\n */\n updateSpecSync(\n spec: ISpec,\n forceMerge: boolean = false,\n morphConfig?: IMorphConfig,\n userUpdateOptions?: IUpdateSpecResult\n ) {\n const result = this._updateSpec(spec, forceMerge, userUpdateOptions);\n\n if (!result) {\n return this as unknown as IVChart;\n }\n\n this.updateCustomConfigAndRerender(result, true, {\n morphConfig,\n transformSpec: result.reTransformSpec,\n actionSource: 'updateSpec'\n });\n return this as unknown as IVChart;\n }\n\n /** 更新 spec 并重新编译(不渲染),返回是否成功 */\n updateSpecAndRecompile(spec: ISpec, forceMerge: boolean = false, option: IVChartRenderOption = {}) {\n const result = this._updateSpec(spec, forceMerge);\n return this._updateCustomConfigAndRecompile(result, {\n actionSource: 'updateSpecAndRecompile',\n ...option\n });\n }\n\n private _updateSpec = (\n spec: ISpec,\n forceMerge: boolean = false,\n userUpdateOptions?: IUpdateSpecResult\n ): IUpdateSpecResult | undefined => {\n const lastSpec = this._spec;\n\n const result: IUpdateSpecResult = {\n changeBackground: false,\n reTransformSpec: false,\n change: false,\n reMake: false,\n reCompile: false,\n reSize: false,\n changeTheme: false\n };\n\n // 这里已经将 this._spec 设置为新spec\n if (!this._setNewSpec(spec, forceMerge)) {\n return undefined;\n }\n\n // 这时图表内对象是旧的,对应上一份 spec\n if (!isEqual(lastSpec.theme, this._spec.theme)) {\n result.changeTheme = true;\n // setCurrentTheme 会导致 chart 实例的 reInit。\n // 只要模块从 vchart 实例获取与 spec 相关的信息,都会出现错误,它们已经不匹配了\n // this._setCurrentTheme();\n } else if (!isEqual(this._spec.background, lastSpec.background)) {\n result.reMake = true;\n result.changeBackground = true;\n }\n\n const reSize = this._shouldChartResize(lastSpec);\n result.reSize = reSize;\n\n if (this._spec.type !== lastSpec.type) {\n this._compiler?.getVGrammarView()?.updateLayoutTag();\n result.reMake = true;\n result.reTransformSpec = true;\n result.change = true;\n result.changeTheme = true; // 支持了根据图表类型 merge 当前主题。当 type 变了后,需要更新主题\n return result;\n }\n // 再次处理 spec 并得到 specInfo\n this._initChartSpec(this._spec, 'updateSpec');\n\n const res = mergeUpdateResult(this._chart.updateSpec(this._spec), result);\n\n return userUpdateOptions\n ? {\n ...res,\n ...userUpdateOptions\n }\n : res;\n };\n\n /**\n * **异步方法** spec 更新\n * @param filter\n * @param spec\n * @param forceMerge\n * @returns\n * @sync 1.4.0\n */\n async updateModelSpec(\n filter: string | { type: string; index: number } | ((model: IModel) => boolean),\n spec: unknown,\n forceMerge: boolean = false,\n morphConfig?: IMorphConfig\n ) {\n return this.updateModelSpecSync(filter, spec, forceMerge, morphConfig);\n }\n\n /**\n * **同步方法** spec 更新\n * @param filter\n * @param spec\n * @param forceMerge\n * @returns\n * @sync 1.4.0\n */\n updateModelSpecSync(\n filter: string | { type: string; index: number } | ((model: IModel) => boolean),\n spec: unknown,\n forceMerge: boolean = false,\n morphConfig?: IMorphConfig\n ) {\n if (!spec || !this._spec) {\n return this as unknown as IVChart;\n }\n if (isString(spec)) {\n spec = JSON.parse(spec);\n }\n\n if (!isFunction(filter)) {\n // find spec and update\n mergeSpecWithFilter(this._spec, filter, spec, forceMerge);\n }\n\n if (this._chart) {\n const model = this._chart.getModelInFilter(filter);\n if (model) {\n return this._updateModelSpec(model, spec, true, forceMerge, morphConfig) as IVChart;\n }\n }\n return this as unknown as IVChart;\n }\n\n /**\n * **同步方法** 模块 spec 更新\n * @param model\n * @param spec\n * @param forceMerge\n * @returns\n */\n protected _updateModelSpec(\n model: IModel,\n spec: unknown,\n sync: boolean = false,\n forceMerge: boolean = false,\n morphConfig?: IMorphConfig\n ) {\n if (forceMerge) {\n spec = mergeSpec({}, model.getSpec(), spec);\n }\n\n const result = model.updateSpec(spec);\n model.reInit(spec);\n if (result.change || result.reCompile || result.reMake || result.reSize || result.reRender) {\n this._chart.reDataFlow();\n }\n\n return this.updateCustomConfigAndRerender(result, sync, {\n morphConfig,\n transformSpec: false,\n actionSource: 'updateModelSpec'\n });\n }\n\n /**\n * **异步方法**,图表尺寸更新方法\n * @param width 宽度\n * @param height 高度\n * @returns VChart 当前实例\n */\n async resize(width: number, height: number) {\n return this.resizeSync(width, height);\n }\n\n /**\n * **同步方法**,图表尺寸更新方法\n * @param width 宽度\n * @param height 高度\n * @returns VChart 当前实例\n */\n resizeSync(width: number, height: number) {\n if (!this._beforeResize(width, height)) {\n return this as unknown as IVChart;\n }\n this._compiler.resize?.(width, height);\n return this._afterResize();\n }\n\n protected _beforeResize(width: number, height: number): boolean {\n if (!this._chart || !this._compiler) {\n return false;\n }\n // 如果宽高未变化,不需要重新执行 resize,防止当图表初始化时会执行一次多余的 resize\n const chartCanvasRect = this._chart.getCanvasRect();\n if (chartCanvasRect && chartCanvasRect.width === width && chartCanvasRect.height === height) {\n return false;\n }\n\n // 插件生命周期\n this._chartPluginApply('onBeforeResize', width, height);\n\n this._option.performanceHook?.beforeResizeWithUpdate?.();\n this._chart.onResize(width, height, false);\n this._option.performanceHook?.afterResizeWithUpdate?.();\n\n return true;\n }\n\n protected _afterResize() {\n if (!this._isReleased) {\n // emit resize event\n this._event.emit(ChartEvent.afterResize, { chart: this._chart });\n }\n return this as unknown as IVChart;\n }\n\n /**\n * 更新绘制区域\n * @param viewBox 绘制区域\n * @param reRender 是否重新渲染,默认为 true\n * @param reLayout 是否重新布局,默认为 true\n * @returns\n */\n updateViewBox(viewBox: IBoundsLike, reRender: boolean = true, reLayout: boolean = true) {\n if (!this._chart || !this._compiler) {\n return this as unknown as IVChart;\n }\n this._viewBox = viewBox;\n // 更新 layout 参数\n this._chart.updateViewBox(viewBox, reLayout);\n if (reLayout) {\n // 重新布局\n this._compiler.render();\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this._chart.onEvaluateEnd();\n }\n // 获取 compiler\n this._compiler.updateViewBox(viewBox, reRender);\n return this as unknown as IVChart;\n }\n\n // 事件相关方法\n on(eType: EventType, handler: EventCallback<EventParams>): void;\n on(eType: EventType, query: EventQuery, handler: EventCallback<EventParams>): void;\n on(eType: EventType, query: EventQuery | EventCallback<EventParams>, handler?: EventCallback<EventParams>): void {\n if (!this._userEvents) {\n // userEvents正常情况下有默认值,如果!userEvents,说明此时chart被release了,就可以终止流程\n return;\n }\n this._userEvents.push({\n eType,\n query: typeof query === 'function' ? null : query,\n handler: typeof query === 'function' ? query : handler\n });\n this._event?.on(eType as any, query as any, handler as any);\n }\n off(eType: EventType, handler?: EventCallback<EventParams>): void {\n if (!this._userEvents || this._userEvents.length === 0) {\n return;\n }\n if (handler) {\n const index = this._userEvents.findIndex(e => e.eType === eType && e.handler === handler);\n if (index >= 0) {\n this._userEvents.splice(index, 1);\n this._event?.off(eType, handler);\n }\n } else {\n this._userEvents.forEach(e => {\n if (e.eType === eType) {\n this._event?.off(eType, e.handler);\n }\n });\n this._userEvents = this._userEvents.filter(e => e.eType !== eType);\n }\n }\n\n // 状态相关方法\n /**\n * 更新或设置图元状态\n * @param state 状态筛选器\n * @param filter 筛选器\n */\n updateState(\n state: Record<string, Omit<IMarkStateSpec<unknown>, 'style'>>,\n filter?: (series: ISeries, mark: IMark, stateKey: string) => boolean //series + mark 筛选\n ): void {\n if (!this._chart) {\n return;\n }\n this._chart.updateState(state, filter);\n }\n\n /**\n * 更新图元选中状态\n * @param datum hover 图元数据\n * @param filter 筛选器 用来筛选系列与mark\n * @param region region 筛选器\n */\n setSelected(\n datum: MaybeArray<any> | null,\n filter?: (series: ISeries, mark: IMark) => boolean,\n region?: IRegionQuerier\n ): void {\n if (!this._chart) {\n return;\n }\n this._chart.setSelected(datum, filter, region);\n }\n\n /**\n * 更新图元 hover 状态\n * @param datum hover 图元数据\n * @param filter 筛选器 用来筛选系列与mark\n * @param region region 筛选器\n */\n setHovered(\n datum: MaybeArray<Datum> | null,\n filter?: (series: ISeries, mark: IMark) => boolean,\n region?: IRegionQuerier\n ): void {\n if (!this._chart) {\n return;\n }\n this._chart.setHovered(datum, filter, region);\n }\n\n /**\n * 清除所有图元的状态\n *\n * @since 1.11.0\n */\n clearState(state: string) {\n if (!this._chart) {\n return;\n }\n this._chart.clearState(state);\n }\n\n /**\n * 清除所有图元的所有状态\n *\n * @since 1.12.4\n */\n clearAllStates() {\n if (!this._chart) {\n return;\n }\n this._chart.clearAllStates();\n }\n\n /**\n * 清除所有图元的选中状态\n *\n * @since 1.11.0\n */\n clearSelected() {\n if (!this._chart) {\n return;\n }\n this._chart.clearSelected();\n }\n\n /**\n * 清除所有图元的hover状态\n *\n * @since 1.11.0\n */\n clearHovered() {\n if (!this._chart) {\n return;\n }\n this._chart.clearHovered();\n }\n\n // 主题相关方法\n /**\n * 当 spec 或者 currentThemeName 有变化时需要调用此方法对 currentTheme 进行更新\n * @param nextThemeName 通过 setCurrentTheme 方法新设的主题\n */\n private _updateCurrentTheme(nextThemeName?: string) {\n const optionTheme: Maybe<string | ITheme> = this._option.theme;\n const specTheme: Maybe<string | ITheme> = this._spec?.theme;\n const chartType: string = this._spec?.type;\n if (nextThemeName) {\n this._currentThemeName = nextThemeName;\n }\n\n const processThemeByChartType = (type: string, theme: ITheme) => {\n if (theme.chart?.[type]) {\n theme = mergeTheme({}, theme, theme.chart[type]);\n }\n return theme;\n };\n\n let currentTheme;\n // 处理 specTheme 和 optionTheme, merge -> transform\n // 优先级 currentTheme < optionTheme < specTheme\n if (!isEmpty(optionTheme) || !isEmpty(specTheme)) {\n if (\n (isString(optionTheme) && (!specTheme || isString(specTheme))) ||\n (isString(specTheme) && (!optionTheme || isString(optionTheme)))\n ) {\n const finalTheme = mergeTheme(\n {},\n getThemeObject(this._currentThemeName, true),\n getThemeObject(optionTheme, true),\n getThemeObject(specTheme, true)\n );\n\n this._currentTheme = processThemeByChartType(chartType, finalTheme);\n } else {\n const finalTheme = mergeTheme(\n {},\n getThemeObject(this._currentThemeName),\n getThemeObject(optionTheme),\n getThemeObject(specTheme)\n );\n this._currentTheme = preprocessTheme(processThemeByChartType(chartType, finalTheme));\n }\n } else {\n currentTheme = getThemeObject(this._currentThemeName, true);\n this._currentTheme = processThemeByChartType(chartType, currentTheme);\n }\n\n // 设置 poptip 的主题\n setPoptipTheme(get(this._currentTheme, 'component.poptip'));\n // 设置背景色\n this._compiler?.setBackground(this._getBackground());\n }\n\n private _shouldChartResize(oldSpec: ISpec): boolean {\n let resize = false;\n\n if (isNil(this._spec.width)) {\n !isNil(oldSpec.width) && (this._spec.width = oldSpec.width);\n } else if (this._spec.width !== oldSpec.width) {\n resize = true;\n }\n\n if (isNil(this._spec.height)) {\n !isNil(oldSpec.height) && (this._spec.height = oldSpec.height);\n } else if (this._spec.height !== oldSpec.height) {\n resize = true;\n }\n\n const lasAutoSize = this._autoSize;\n this._autoSize = isTrueBrowser(this._option.mode) ? this._spec.autoFit ?? this._option.autoFit ?? true : false;\n if (this._autoSize !== lasAutoSize) {\n resize = true;\n }\n return resize;\n }\n\n private _getBackground() {\n const specBackground =\n typeof this._spec.background === 'string' || (isObject(this._spec.background) && this._spec.background.gradient)\n ? this._spec.background\n : null;\n // spec > spec.theme > initOptions.theme\n return specBackground || (this._currentTheme.background as string) || this._option.background;\n }\n\n /**\n * 获取当前主题,会返回完整的主题配置(只能获取用户通过`setCurrentTheme`方法设置过的主题,默认值为`ThemeManager`统一设置的主题)\n * */\n getCurrentTheme() {\n return getThemeObject(this._currentThemeName);\n }\n\n /**\n * 获取当前主题名称(只能获取用户通过`setCurrentTheme`方法设置过的主题,默认值为`ThemeManager`统一设置的主题)\n */\n getCurrentThemeName() {\n return this._currentThemeName;\n }\n\n /**\n * **异步方法**, 设置当前主题。\n * **注意,如果在 spec 上配置了 theme,则 spec 上的 theme 优先级更高。**\n * @param name 主题名称\n * @returns\n */\n async setCurrentTheme(name: string) {\n return this.setCurrentThemeSync(name);\n }\n\n /**\n * **同步方法** 设置当前主题。\n * **注意,如果在 spec 上配置了 theme,则 spec 上的 theme 优先级更高。**\n * @param name 主题名称\n * @returns\n */\n setCurrentThemeSync(name: string) {\n if (!ThemeManager.themeExist(name)) {\n return this as unknown as IVChart;\n }\n const result = this._setCurrentTheme(name);\n this._setFontFamilyTheme(this._currentTheme?.fontFamily as string);\n this.updateCustomConfigAndRerender(result, true, {\n transformSpec: false,\n actionSource: 'setCurrentTheme'\n });\n return this as unknown as IVChart;\n }\n\n protected _setCurrentTheme(name?: string): IUpdateSpecResult {\n this._updateCurrentTheme(name);\n this._initChartSpec(this._getSpecFromOriginalSpec(), 'setCurrentTheme');\n this._chart?.setCurrentTheme();\n return { change: true, reMake: false };\n }\n\n private _setFontFamilyTheme(fontFamily: string) {\n if (!fontFamily) {\n return;\n }\n // 全局字体的特殊设置逻辑\n // 设置全局字体\n (this.getStage() as any)?.setTheme({ text: { fontFamily } });\n }\n\n // Tooltip 相关方法\n private _getTooltipComponent(): Tooltip | undefined {\n const tooltip = this._chart?.getComponentsByType(ComponentTypeEnum.tooltip)[0] as unknown as Tooltip;\n return tooltip;\n }\n\n /**\n * 自定义 TooltipHandler\n * @param tooltipHandler\n */\n setTooltipHandler(tooltipHandler: ITooltipHandler) {\n this._context.tooltipHandler = tooltipHandler;\n const tooltip = this._getTooltipComponent();\n if (tooltip) {\n tooltip.tooltipHandler?.release?.();\n tooltip.tooltipHandler = tooltipHandler;\n }\n }\n\n /**\n * 获取用户定义的 TooltipHandler\n * @returns ITooltipHandler\n */\n getTooltipHandlerByUser(): ITooltipHandler | undefined {\n return this._context?.tooltipHandler;\n }\n\n /**\n * 获取 TooltipHandler\n * @returns\n */\n getTooltipHandler(): ITooltipHandler | undefined {\n const tooltip = this._getTooltipComponent();\n if (tooltip) {\n return tooltip.tooltipHandler;\n }\n return this._context.tooltipHandler;\n }\n\n /**\n * 手动调用展示 tooltip\n * @param datum 原始数据\n * @param options\n * @returns\n */\n showTooltip(datum: Datum, options: IShowTooltipOption): boolean {\n const tooltip = this._getTooltipComponent();\n return (isValid(datum) && tooltip?.showTooltip(datum, options) !== 'none') ?? false;\n }\n\n /**\n * 手动调用,关闭 tooltip\n * @returns\n */\n hideTooltip(): boolean {\n const tooltip = this._getTooltipComponent();\n return tooltip?.hideTooltip() ?? false;\n }\n\n // 图例相关 api\n /**\n * 根据图例组件 id 获取图例数据\n * @param id 组件 id\n * @returns\n */\n getLegendDataById(id: string) {\n const legendComponent = this._chart?.getComponentByUserId(id) as ILegend;\n if (legendComponent) {\n return legendComponent.getLegendData();\n }\n return [];\n }\n\n /**\n * 根据图例组件索引获取图例数据\n * @param index 图例索引,默认为 0\n * @returns\n */\n getLegendDataByIndex(index: number = 0) {\n const legends = this._chart?.getComponentsByType(ComponentTypeEnum.discreteLegend) as unknown as ILegend[];\n\n if (legends && legends[index]) {\n return legends[index].getLegendData();\n }\n\n return [];\n }\n\n /**\n * 根据图例组件 id 获取当前图例的选中项\n * @param id 组件 id\n * @returns\n */\n getLegendSelectedDataById(id: string) {\n const legendComponent = this._chart?.getComponentByUserId(id) as ILegend;\n if (legendComponent) {\n return legendComponent.getSelectedData();\n }\n return [];\n }\n\n /**\n * 根据图例组件索引获取当前图例的选中项\n * @param index 图例索引,默认为 0\n * @returns\n */\n getLegendSelectedDataByIndex(index: number = 0) {\n const legends = this._chart?.getComponentsByType(ComponentTypeEnum.discreteLegend) as unknown as ILegend[];\n\n if (legends && legends[index]) {\n return legends[index].getSelectedData();\n }\n\n return [];\n }\n\n /**\n * 根据图例组件 id 更新图例选中数据\n * @param id\n * @returns\n */\n setLegendSelectedDataById(id: string, selectedData: StringOrNumber[]) {\n const legendComponent = this._chart?.getComponentByUserId(id) as ILegend;\n if (legendComponent) {\n legendComponent.setSelectedData(selectedData);\n }\n }\n\n /**\n * 根据图例组件索引更新图例选中数据\n * @param index 图例索引,默认为 0\n * @returns\n */\n setLegendSelectedDataByIndex(index: number = 0, selectedData: StringOrNumber[]) {\n const legends = this._chart?.getComponentsByType(ComponentTypeEnum.discreteLegend) as unknown as ILegend[];\n\n if (legends && legends[index]) {\n legends[index].setSelectedData(selectedData);\n }\n }\n\n // 保存图片相关的方法\n /**\n * **异步方法**返回一个包含图片展示的 data URI。\n * @returns data URI\n */\n async getDataURL() {\n const stage = this.getStage();\n if (this._chart && stage) {\n // 因为 vrender 是 autoRender 的,它不能确认第几帧才是完整的图表,所以这里调用一次 render 以保证获取到的是完整的画布\n stage.render();\n const canvas = this._chart.getCanvas();\n const url = await getCanvasDataURL(canvas, {\n onError: this._onError\n });\n return url;\n }\n this._option?.onError(new ReferenceError(`render is not defined`));\n\n return null;\n }\n\n /**\n * **异步方法** 导出图表图片,只支持浏览器端。\n * @param name 保存的图片名称\n * @returns\n */\n async exportImg(name?: string) {\n if (!isTrueBrowser(this._option.mode)) {\n this._option?.onError(new TypeError(`non-browser environment can not export img`));\n return;\n }\n\n const dataURL = await this.getDataURL();\n if (dataURL) {\n URLToImage(name, dataURL);\n } else {\n this._option?.onError(new ReferenceError(`render is not defined`));\n }\n }\n /**\n * 导出绘制了图表内容的 canvas\n * @returns HTMLCanvasElement\n */\n exportCanvas(): HTMLCanvasElement | undefined {\n const stage = this.getStage();\n if (this._chart && stage) {\n return stage.toCanvas();\n }\n this._option?.onError(new ReferenceError(`render is not defined`));\n return undefined;\n }\n\n /**\n * 目前仅支持 node 环境,用于 node 端的图片导出\n * @returns\n */\n getImageBuffer() {\n if (this._option.mode !== 'node') {\n this._option?.onError(new TypeError('getImageBuffer() now only support node environment.'));\n return;\n }\n const stage = this.getStage();\n if (stage) {\n stage.render();\n const buffer = stage.window.getImageBuffer();\n return buffer;\n }\n this._option?.onError(new ReferenceError(`render is not defined`));\n\n return null;\n }\n\n // 布局相关的方法\n /**\n * 设置自定义布局\n */\n setLayout(layout: LayoutCallBack) {\n this._option.layout = layout;\n this._chart?.setLayout(layout);\n }\n /**\n * 强制重新布局\n */\n reLayout() {\n this._chart?.setLayoutTag(true);\n }\n\n /**\n * 获取编译器实例\n * @returns\n */\n getCompiler() {\n return this._compiler;\n }\n\n /**\n * Get the chart instance\n * 获取 Chart 图表实例。\n * @returns Chart 实例\n */\n getChart() {\n return this._chart;\n }\n\n /**\n * Get the renderer instance.\n * 获取渲染引擎实例。\n * @returns the instance of VRender Stage\n */\n getStage(): IStage {\n return this._compiler.getStage();\n }\n\n /**\n * 获取 canvas dom\n * @returns HTMLCanvasElement | undefined\n */\n getCanvas(): HTMLCanvasElement | undefined {\n return this._compiler?.getCanvas();\n }\n\n /**\n * 获取图表的 dom 容器\n * @returns\n */\n getContainer(): Maybe<HTMLElement> {\n // 用户传入 dom container\n if (isValid(this._container)) {\n return this._container;\n }\n\n // 用户传入 canvas\n let canvasNode: Maybe<HTMLCanvasElement>;\n if (isString(this._canvas)) {\n canvasNode = vglobal.getElementById(this._canvas) as HTMLCanvasElement;\n } else {\n canvasNode = this._canvas as HTMLCanvasElement;\n }\n if (isValid(canvasNode)) {\n return canvasNode.parentElement;\n }\n\n // 用户传入 stage\n return this.getCanvas()?.parentElement;\n }\n\n /**\n * 获取图表所有的组件实例\n * @returns 组件实例\n */\n getComponents() {\n return this._chart.getAllComponents();\n }\n\n /**\n * 获取全局scale\n * @param scaleName 指定scale的id\n * @returns scale实例\n */\n getScale(scaleId: string) {\n const globalScale = this._chart?.getGlobalScale();\n\n return globalScale?.getScale(scaleId);\n }\n\n /**\n * setDimensionIndex could trigger mark state, tooltip, crosshair\n * @param value dimension value\n * @param opt option for set trigger\n */\n setDimensionIndex(value: StringOrNumber, opt: DimensionIndexOption = {}) {\n return this._chart?.setDimensionIndex(value, opt);\n }\n\n /** 停止正在进行的所有动画 */\n stopAnimation() {\n this._compiler?.getVGrammarView()?.animate?.stop();\n }\n\n /** 暂停正在进行的所有动画 */\n pauseAnimation() {\n this._compiler?.getVGrammarView()?.animate?.pause();\n }\n\n /** 恢复暂停时正在进行的所有动画 */\n resumeAnimation() {\n this._compiler?.getVGrammarView()?.animate?.resume();\n }\n\n // TODO: 后续需要考虑滚动场景\n /**\n * Convert the data corresponding to the graph into coordinates\n * 将图形对应的数据转换为坐标,该数据需要从传入图表的数据集中获取,如果数据不存在数据集中,可以使用 `convertValueToPosition` 方法\n * @param datum 要转化的数据 the datum(from data source)to convert\n * @param dataLinkInfo 数据的绑定信息,the data link info, could be seriesId or seriesIndex, default is { seriesIndex: 0 }\n * @param isRelativeToCanvas 是否相对画布坐标 Whether relative to canvas coordinates\n * @param checkInViewData 是否检查数据对应的图元是否在视图中,如果不在视图中,返回 null\n * @returns\n */\n convertDatumToPosition(\n datum: Datum,\n dataLinkInfo: DataLinkSeries = {},\n isRelativeToCanvas: boolean = false,\n checkInViewData?: boolean\n ): IPoint | null {\n if (!this._chart) {\n return null;\n }\n if (isEmpty(datum)) {\n return null;\n }\n const { seriesId, seriesIndex = 0 } = dataLinkInfo;\n\n let series: ISeries;\n if (isValid(seriesId)) {\n series = this._chart.getSeriesInUserId(seriesId);\n } else if (isValid(seriesIndex)) {\n series = this._chart.getSeriesInIndex([seriesIndex])?.[0];\n }\n\n if (series) {\n const keys = Object.keys(datum);\n const handledDatum = series\n .getViewData()\n // eslint-disable-next-line eqeqeq\n .latestData.find((viewDatum: Datum) => keys.every(k => viewDatum[k] == datum[k]));\n const seriesLayoutStartPoint = series.getRegion().getLayoutStartPoint();\n let point: IPoint;\n if (handledDatum) {\n point = series.dataToPosition(handledDatum, checkInViewData);\n } else {\n point = series.dataToPosition(datum, checkInViewData);\n }\n if (!point) {\n return null;\n }\n return convertPoint(point, seriesLayoutStartPoint, isRelativeToCanvas);\n }\n\n return null;\n }\n\n // TODO: 1. 后续需要考虑滚动场景 2. 极坐标场景支持\n convertValueToPosition(\n value: StringOrNumber,\n dataLinkInfo: DataLinkAxis,\n isRelativeToCanvas?: boolean\n ): number | null;\n convertValueToPosition(\n value: [StringOrNumber, StringOrNumber],\n dataLinkInfo: DataLinkSeries,\n isRelativeToCanvas?: boolean\n ): IPoint | null;\n convertValueToPosition(\n value: StringOrNumber | [StringOrNumber, StringOrNumber],\n dataLinkInfo: DataLinkAxis | DataLinkSeries,\n isRelativeToCanvas: boolean = false\n ): number | IPoint | null {\n if (!this._chart || isNil(value) || isEmpty(dataLinkInfo)) {\n return null;\n }\n\n if (!isArray(value)) {\n // 如果单个值,则默认使用 axis 绑定信息\n const { axisId, axisIndex } = dataLinkInfo as DataLinkAxis;\n let axis;\n if (isValid(axisId)) {\n axis = this._chart.getComponentsByKey('axes').find(s => s.userId === axisId);\n } else if (isValid(axisIndex)) {\n axis = this._chart.getComponentsByKey('axes')?.[axisIndex];\n }\n if (!axis) {\n warn('Please check whether the `axisId` or `axisIndex` is set!');\n return null;\n }\n\n const pointValue = (axis as IAxis)?.valueToPosition(value);\n if (isRelativeToCanvas) {\n const axisLayoutStartPoint = axis.getLayoutStartPoint();\n const axisOrient = (axis as IAxis).getOrient();\n return (\n pointValue +\n (axisOrient === 'bottom' || axisOrient === 'top' ? axisLayoutStartPoint.x : axisLayoutStartPoint.y)\n );\n }\n\n return pointValue;\n }\n const { seriesId, seriesIndex } = dataLinkInfo as DataLinkSeries;\n let series;\n if (isValid(seriesId)) {\n series = this._chart.getSeriesInUserId(seriesId);\n } else if (isValid(seriesIndex)) {\n series = this._chart.getSeriesInIndex([seriesIndex])?.[0];\n }\n\n if (!series) {\n warn('Please check whether the `seriesId` or `seriesIndex` is set!');\n return null;\n }\n\n return convertPoint(\n (series as ISeries).valueToPosition(value[0], value[1]),\n series.getRegion().getLayoutStartPoint(),\n isRelativeToCanvas\n );\n }\n\n /**\n * 获取实例函数\n * @param key 函数名称\n * @returns\n */\n getFunction(key: string): Function | null {\n return ExpressionFunction.instance().getFunction(key);\n }\n\n /**\n * 注册实例函数(对内包装一层,区分名字,避免重名问题)\n * @param key 函数名称\n * @param fun 函数内容\n * @returns\n */\n registerFunction(key: string, fun: Function) {\n if (!key || !fun) {\n return;\n }\n ExpressionFunction.instance().registerFunction(key, fun);\n }\n\n /**\n * 注销实例函数\n * @param key 函数名称\n */\n unregisterFunction(key: string) {\n if (!key) {\n return;\n }\n ExpressionFunction.instance().unregisterFunction(key);\n }\n\n /**\n * 获取实例函数列表\n * @returns\n */\n getFunctionList() {\n return ExpressionFunction.instance().getFunctionNameList();\n }\n\n /** 设置运行时 spec */\n setRuntimeSpec(spec: any) {\n this._spec = spec;\n this._updateSpecInfo();\n }\n\n /**\n * 根据 indicator 组件 id 更新 indicator 数据\n * @since 1.11.7\n */\n updateIndicatorDataById(id: string, datum?: Datum) {\n const indicator = this._chart?.getComponentByUserId(id) as unknown as IIndicator;\n if (indicator) {\n indicator.updateDatum(datum);\n }\n }\n\n /**\n * 根据 indicator 组件索引更新 indicator 数据\n * @since 1.11.7\n */\n updateIndicatorDataByIndex(index: number = 0, datum?: Datum) {\n const indicators = this._chart?.getComponentsByType(ComponentTypeEnum.indicator) as unknown as IIndicator[];\n if (indicators && indicators[index]) {\n indicators[index].updateDatum(datum);\n }\n }\n\n /**\n * 地图缩放 API\n * @param [regionIndex=0] 根据索引顺序指定某个 region 区域的地图坐标系进行缩放\n * @param zoom 缩放比例\n * @param center 缩放中心\n * @since 1.11.10\n */\n geoZoomByIndex(regionIndex: number = 0, zoom: number, center?: { x: number; y: number }) {\n this._geoZoomByQuery({ regionIndex }, zoom, center);\n }\n\n /**\n * 地图缩放 API\n * @param [regionId=0] 根据 region id 指定某个 region 区域的地图坐标系进行缩放\n * @param zoom 缩放比例\n * @param center 缩放中心\n * @since 1.11.10\n */\n geoZoomById(regionId: string | number, zoom: number, center?: { x: number; y: number }) {\n this._geoZoomByQuery({ regionId }, zoom, center);\n }\n\n _geoZoomByQuery(query: MaybeArray<IRegionQuerier>, zoom: number, center?: { x: number; y: number }) {\n const region = this._chart?.getRegionsInQuerier(query)[0];\n const geoCoordinates = this._chart?.getComponentsByType(\n ComponentTypeEnum.geoCoordinate\n ) as unknown as IGeoCoordinate[];\n const coord = geoCoordinates?.find(coord => coord.getRegions()?.includes(region));\n if (coord) {\n coord.dispatchZoom(zoom, center);\n }\n }\n\n private _initChartPlugin() {\n const pluginList = Factory.getChartPlugins();\n if (pluginList.length > 0) {\n this._chartPlugin = new ChartPluginService(this);\n this._chartPlugin.load(pluginList.map(p => new p()));\n // 插件生命周期\n this._chartPluginApply('onInit', this._spec);\n }\n }\n\n private _chartPluginApply(funcName: keyof IChartPluginService, ...args: any[]) {\n if (!this._chartPlugin || !this._chartPlugin[funcName]) {\n return;\n }\n (this._chartPlugin[funcName] as (...args: any[]) => any).apply(this._chartPlugin, args);\n }\n\n protected _getMode() {\n return this._option.mode || RenderModeEnum['desktop-browser'];\n }\n\n protected _getChartOption(type: string): IChartOption {\n return {\n type,\n globalInstance: this,\n eventDispatcher: this._eventDispatcher!,\n dataSet: this._dataSet!,\n container: this._container,\n canvas: this._canvas,\n map: new Map(),\n mode: this._getMode(),\n modeParams: this._option.modeParams,\n getCompiler: () => this._compiler,\n performanceHook: this._option.performanceHook,\n viewBox: this._viewBox,\n animation: this._option.animation,\n getTheme: () => this._currentTheme ?? {},\n getSpecInfo: () => this._specInfo ?? {},\n\n layout: this._option.layout,\n onError: this._onError,\n disableTriggerEvent: this._option.disableTriggerEvent === true\n };\n }\n}\n\nexport const registerVChartCore = () => {\n // install region module\n Factory.registerRegion('region', Region);\n // install layout module\n Factory.registerLayout('base', Layout);\n // install essential marks\n registerGroupMark();\n // install essential vgrammar transform\n View.useRegisters([registerGesturePlugin]);\n // install default interaction\n registerHoverInteraction();\n registerSelectInteraction();\n // install default theme\n registerTheme(darkTheme.name, darkTheme);\n // set default logger level to Level.error\n Logger.getInstance(LoggerLevel.Error);\n};\n\nregisterVChartCore();\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/core/vchart.ts"],"names":[],"mappings":"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","file":"vchart.js","sourcesContent":["import type { ISeries } from '../series/interface/series';\nimport { arrayParser } from '../data/parser/array';\nimport type { ILayoutConstructor, LayoutCallBack } from '../layout/interface';\nimport type { IDataValues, IMarkStateSpec, IInitOption } from '../typings/spec/common';\n// eslint-disable-next-line no-duplicate-imports\nimport { RenderModeEnum } from '../typings/spec/common';\nimport type { ISeriesConstructor } from '../series/interface';\nimport {\n ChartTypeEnum,\n type DimensionIndexOption,\n type IChart,\n type IChartConstructor,\n type IChartOption,\n type IChartSpecInfo,\n type IChartSpecTransformer\n} from '../chart/interface';\nimport type { IComponentConstructor } from '../component/interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { ComponentTypeEnum } from '../component/interface/type';\nimport type {\n EventCallback,\n EventParamsDefinition,\n EventQuery,\n EventType,\n ExtendEventParam,\n IEvent,\n IEventDispatcher\n} from '../event/interface';\nimport type { IParserOptions, IFields, Transform } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataSet, dataViewParser, DataView } from '@visactor/vdataset';\nimport type { IStage, Stage } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { vglobal } from '@visactor/vrender-core';\nimport { isString, isValid, isNil, array, specTransform, functionTransform } from '../util';\nimport { createID } from '../util/id';\nimport { convertPoint } from '../util/space';\nimport { isTrueBrowser } from '../util/env';\nimport { warn } from '../util/debug';\nimport { getThemeObject } from '../util/theme/common';\nimport { mergeSpec, mergeSpecWithFilter } from '@visactor/vutils-extension';\nimport { Factory } from './factory';\nimport { Event } from '../event/event';\nimport { EventDispatcher } from '../event/event-dispatcher';\nimport type { GeoSourceType } from '../typings/geo';\nimport type { GeoSourceOption } from '../series/map/geo-source';\n// eslint-disable-next-line no-duplicate-imports\nimport { getMapSource } from '../series/map/geo-source';\n// eslint-disable-next-line no-duplicate-imports\nimport type { IMark, MarkConstructor } from '../mark/interface';\nimport { registerDataSetInstanceParser, registerDataSetInstanceTransform } from '../data/register';\nimport { dataToDataView } from '../data/initialize';\nimport { copyDataView } from '../data/transforms/copy-data-view';\nimport type { ITooltipHandler } from '../typings/tooltip';\nimport type { Tooltip } from '../component/tooltip';\nimport type {\n Datum,\n IPoint,\n IRegionQuerier,\n IShowTooltipOption,\n ISpec,\n Maybe,\n MaybeArray,\n StringOrNumber\n} from '../typings';\nimport { AnimationStateEnum } from '../animation/interface';\nimport type { IBoundsLike, ILogger } from '@visactor/vutils';\nimport { ThemeManager } from '../theme/theme-manager';\nimport type { ITheme } from '../theme';\nimport type { IModel, IUpdateDataResult, IUpdateSpecResult } from '../model/interface';\nimport { Compiler } from '../compile/compiler';\nimport type { IMorphConfig } from '../animation/spec';\nimport type { ILegend } from '../component/legend/interface';\nimport { getCanvasDataURL, URLToImage } from '../util/image';\nimport { ChartEvent } from '../constant/event';\nimport { DEFAULT_CHART_HEIGHT, DEFAULT_CHART_WIDTH } from '../constant/base';\n// eslint-disable-next-line no-duplicate-imports\nimport {\n isArray,\n isEmpty,\n Logger,\n merge as mergeOrigin,\n isFunction,\n LoggerLevel,\n isEqual,\n get,\n cloneDeep,\n isObject,\n throttle\n} from '@visactor/vutils';\nimport type {\n DataLinkAxis,\n DataLinkSeries,\n IGlobalConfig,\n IVChart,\n IVChartRenderOption,\n VChartRenderActionSource\n} from './interface';\nimport { InstanceManager } from './instance-manager';\nimport type { IAxis } from '../component/axis';\nimport { setPoptipTheme } from '@visactor/vrender-components';\nimport { calculateChartSize, mergeUpdateResult } from '../chart/util';\nimport { Region } from '../region/region';\nimport { Layout } from '../layout/base-layout';\nimport { registerGroupMark } from '../mark/group';\nimport { VCHART_UTILS } from './util';\nimport { ExpressionFunction } from './expression-function';\nimport { registerBrowserEnv, registerNodeEnv } from '../env';\nimport { mergeTheme, preprocessTheme } from '../util/theme';\nimport { darkTheme, registerTheme } from '../theme/builtin';\nimport type { IChartPluginService } from '../plugin/chart/interface';\nimport { ChartPluginService } from '../plugin/chart/plugin-service';\nimport type { IIndicator } from '../component/indicator';\nimport type { IGeoCoordinate } from '../component/geo';\nimport { getSVGSource } from '../series/pictogram/svg-source';\nimport { registerGesturePlugin } from '../plugin/other';\nimport { registerElementHighlight } from '../interaction/triggers/element-highlight';\nimport { registerElementSelect } from '../interaction/triggers/element-select';\nimport { registerDimensionHover } from '../interaction/triggers/dimension-hover';\n\nexport class VChart implements IVChart {\n readonly id = createID();\n\n /**\n * 按需注册图表和组件\n * @param comps\n * @since 1.5.1\n */\n static useRegisters(comps: (() => void)[]) {\n comps.forEach((fn: () => void) => {\n if (typeof fn === 'function') {\n // 确保元素是函数类型\n fn();\n } else {\n console.error('Invalid function:', fn);\n }\n });\n }\n\n /**\n * 注册自定义图表\n * @param charts 图表类\n * @description 若用于按需加载,1.5.1版本后,请统一使用 `useRegisters` API,例如:`VChart.useRegisters([registerLineChart])`。\n */\n static useChart(charts: IChartConstructor[]) {\n charts.forEach(c => Factory.registerChart(c.type, c));\n }\n /**\n * 注册自定义系列\n * @param series 系列类\n * @description 若用于按需加载,1.5.1版本后,统一使用 `useRegisters` API,例如 `VChart.useRegisters([registerLineSeries])`。\n */\n static useSeries(series: ISeriesConstructor[]) {\n series.forEach(s => Factory.registerSeries(s.type, s));\n }\n /**\n * 注册自定义组件\n * @param components 组件类\n * @description 若用于按需加载,1.5.1版本后,统一使用 `useRegisters` API,例如 `VChart.useRegisters([registerCartesianLinearAxis])`。\n */\n static useComponent(components: IComponentConstructor[]) {\n components.forEach(c => Factory.registerComponent(c.type, c));\n }\n /**\n * 注册自定义 Mark\n * @param marks Mark 图元类\n */\n static useMark(marks: MarkConstructor[]) {\n marks.forEach(m => Factory.registerMark(m.constructorType ?? m.type, m));\n }\n /**\n * 注册自定义布局\n * @param layouts 布局类\n */\n static useLayout(layouts: ILayoutConstructor[]) {\n layouts.forEach(l => Factory.registerLayout(l.type, l));\n }\n /**\n * 注册 DataSet 数据方法\n * @param name 数据 transform 方法名称\n * @param transform 具体的 Transform 执行方法\n */\n static registerDataSetTransform(name: string, transform: Transform) {\n Factory.registerTransform(name, transform);\n }\n\n /**\n * 注册函数(全局注册)\n * @param key 函数名称\n * @param fun 函数内容\n */\n static registerFunction(key: string, fun: Function) {\n if (!key || !fun) {\n return;\n }\n ExpressionFunction.instance().registerFunction(key, fun);\n }\n\n /**\n * 注销函数(全局注销)\n * @param key 函数名称\n */\n static unregisterFunction(key: string) {\n if (!key) {\n return;\n }\n ExpressionFunction.instance().unregisterFunction(key);\n }\n\n /**\n * 获取函数(全局)\n * @param key\n * @returns\n */\n static getFunction(key: string): Function | null {\n if (!key) {\n return null;\n }\n return ExpressionFunction.instance().getFunction(key);\n }\n\n /**\n * 获取函数列表(全局获取)\n * @returns\n */\n static getFunctionList(): string[] | null {\n return ExpressionFunction.instance().getFunctionNameList();\n }\n\n /**\n * 注册地图数据\n * @param key 地图名称\n * @param source 地图数据\n * @param option 地图数据配置\n */\n static registerMap(key: string, source: GeoSourceType, option?: GeoSourceOption) {\n const impl = Factory.getImplementInKey('registerMap');\n impl && impl(key, source, option);\n }\n\n /**\n * 注销地图数据\n * @param key 地图名称\n */\n static unregisterMap(key: string) {\n const impl = Factory.getImplementInKey('unregisterMap');\n impl && impl(key);\n }\n\n /**\n * 根据地图名称获取地图数据\n * @param key 地图名称\n * @returns 地图数据\n */\n static getMap(key: string): GeoSourceType {\n return getMapSource(key);\n }\n\n /**\n * 注册地图数据\n * @param key 地图名称\n * @param source 地图数据\n * @param option 地图数据配置\n */\n static registerSVG(key: string, source: GeoSourceType, option?: GeoSourceOption) {\n const impl = Factory.getImplementInKey('registerSVG');\n impl && impl(key, source, option);\n }\n\n /**\n * 注销地图数据\n * @param key 地图名称\n */\n static unregisterSVG(key: string) {\n const impl = Factory.getImplementInKey('unregisterSVG');\n impl && impl(key);\n }\n\n /**\n * 根据地图名称获取地图数据\n * @param key 地图名称\n * @returns 地图数据\n */\n static getSVG(key: string): any {\n return getSVGSource(key);\n }\n\n /**\n * 全局关闭 tooltip\n * @param excludeId 可选,指定不需要关闭 tooltip 的实例 id\n */\n static hideTooltip(excludeId: MaybeArray<number> = []): void {\n InstanceManager.forEach(instance => instance?.hideTooltip?.(), excludeId);\n }\n\n /** 获取 Logger */\n static getLogger(): ILogger {\n return Logger.getInstance();\n }\n\n /** 图表实例管理器 */\n static readonly InstanceManager = InstanceManager;\n /** 主题管理器 */\n static readonly ThemeManager = ThemeManager;\n\n /** 全局配置 */\n static globalConfig: IGlobalConfig = {\n uniqueTooltip: true\n };\n\n /** 工具方法 */\n static readonly Utils = VCHART_UTILS;\n\n static readonly vglobal = vglobal;\n\n protected _originalSpec: any;\n protected _spec: any;\n getSpec() {\n return this._spec;\n }\n\n protected _specInfo: IChartSpecInfo;\n getSpecInfo() {\n return this._specInfo;\n }\n\n private _viewBox: IBoundsLike;\n private _chart!: Maybe<IChart>;\n private _chartSpecTransformer!: Maybe<IChartSpecTransformer>;\n private _compiler: Compiler;\n private _event: Maybe<IEvent>;\n private _userEvents: {\n eType: EventType;\n query: EventQuery | EventCallback<EventParamsDefinition[EventType]>;\n handler?: EventCallback<EventParamsDefinition[EventType]>;\n }[] = [];\n private _eventDispatcher: Maybe<IEventDispatcher>;\n private _dataSet!: Maybe<DataSet>;\n getDataSet() {\n return this._dataSet;\n }\n\n private _container?: HTMLElement;\n private _canvas?: HTMLCanvasElement | OffscreenCanvas | string;\n private _stage?: Stage;\n\n private _autoSize: boolean = true;\n private _option: IInitOption = {\n mode: RenderModeEnum['desktop-browser'],\n onError: (msg: string) => {\n throw new Error(msg);\n },\n optimize: {\n disableCheckGraphicWidthOutRange: true\n }\n };\n\n private _currentSize: { width: number; height: number };\n private _observer: ResizeObserver = null;\n\n private _currentThemeName: string;\n private _currentTheme: ITheme;\n\n private _onError?: (...args: any[]) => void;\n\n private _context: any = {}; // 存放用户在model初始化前通过实例方法传入的配置等\n private _isReleased: boolean;\n\n private _chartPlugin?: IChartPluginService;\n private _onResize?: () => void;\n\n constructor(spec: ISpec, options: IInitOption) {\n this._option = mergeOrigin(this._option, { animation: (spec as any).animation !== false }, options);\n this._onError = this._option?.onError;\n\n const { dom, renderCanvas, mode, stage, poptip, ...restOptions } = this._option;\n const isTrueBrowseEnv = isTrueBrowser(mode);\n\n // 根据 mode 配置动态加载浏览器或 node 环境代码\n if (isTrueBrowseEnv) {\n registerBrowserEnv();\n } else if (mode === 'node') {\n registerNodeEnv();\n }\n\n if (isTrueBrowseEnv && dom) {\n this._container = isString(dom) ? vglobal.getElementById(dom) : dom;\n }\n if (renderCanvas) {\n this._canvas = renderCanvas;\n }\n if (stage) {\n this._stage = stage as unknown as Stage; // FIXME: 等待 vrender 解决类型和接口不匹配的问题 @zhouxinyu\n }\n\n if (mode !== 'node' && !this._container && !this._canvas && !this._stage) {\n this._option?.onError('please specify container or renderCanvas!');\n return;\n }\n\n this._viewBox = this._option.viewBox;\n this._currentThemeName = ThemeManager.getCurrentThemeName();\n this._setNewSpec(spec);\n this._updateCurrentTheme();\n this._currentSize = this.getCurrentSize();\n const pluginList: string[] = [];\n\n if (!poptip !== false) {\n pluginList.push('poptipForText');\n }\n\n if (spec.type === ChartTypeEnum.sankey) {\n // 桑基图默认记载滚动条组件\n pluginList.push('scrollbar');\n }\n\n const logger = new Logger(this._option.logLevel ?? LoggerLevel.Error);\n Logger.setInstance(logger);\n if (this._option?.onError) {\n logger.addErrorHandler((...args) => {\n this._option?.onError?.(...args);\n });\n }\n this._compiler = new Compiler(\n {\n dom: this._container ?? 'none',\n canvas: renderCanvas\n },\n {\n mode: this._option.mode,\n stage,\n pluginList,\n ...restOptions,\n background: this._getBackground(),\n onError: this._onError\n }\n );\n this._compiler.setSize(this._currentSize.width, this._currentSize.height);\n this._eventDispatcher = new EventDispatcher(this, this._compiler);\n this._event = new Event(this._eventDispatcher, mode);\n this._compiler.initView();\n this._compiler.updateLayoutTag();\n // TODO: 如果通过 updateSpec 更新主题字体的验证\n // 设置全局字体\n this._setFontFamilyTheme(this._currentTheme?.fontFamily as string);\n this._initDataSet(this._option.dataSet);\n this._autoSize = isTrueBrowseEnv ? spec.autoFit ?? this._option.autoFit ?? true : false;\n this._bindResizeEvent();\n this._bindViewEvent();\n this._initChartPlugin();\n\n InstanceManager.registerInstance(this);\n this._option.performanceHook?.afterCreateVChart?.(this);\n }\n\n /** 设置新 spec,返回是否成功 */\n private _setNewSpec(spec: any, forceMerge?: boolean): boolean {\n if (!spec) {\n return false;\n }\n if (isString(spec)) {\n spec = JSON.parse(spec);\n }\n if (forceMerge && this._originalSpec) {\n spec = mergeSpec({}, this._originalSpec, spec);\n }\n this._originalSpec = spec;\n this._spec = this._getSpecFromOriginalSpec();\n return true;\n }\n\n private _getSpecFromOriginalSpec() {\n // 转换在实例上注册的函数 + 深拷贝 spec,保证 _originalSpec 和 _spec 的不同\n const spec = specTransform(this._originalSpec) as any;\n // because of in data-init, data will be set as array;\n spec.data = spec.data ?? [];\n return spec;\n }\n\n private _initChartSpec(spec: any, actionSource: VChartRenderActionSource) {\n // 如果用户注册了函数,在配置中替换相应函数名为函数内容\n if (VChart.getFunctionList() && VChart.getFunctionList().length) {\n spec = functionTransform(spec, VChart);\n }\n this._spec = spec;\n if (!this._chartSpecTransformer) {\n this._chartSpecTransformer = Factory.createChartSpecTransformer(\n this._spec.type,\n this._getChartOption(this._spec.type)\n );\n }\n\n this._chartSpecTransformer?.transformSpec(this._spec);\n\n // 插件生命周期\n this._chartPluginApply('onAfterChartSpecTransform', this._spec, actionSource);\n\n this._specInfo = this._chartSpecTransformer?.transformModelSpec(this._spec);\n\n // 插件生命周期\n this._chartPluginApply('onAfterModelSpecTransform', this._spec, this._specInfo, actionSource);\n }\n\n private _updateSpecInfo() {\n if (!this._chartSpecTransformer) {\n this._chartSpecTransformer = Factory.createChartSpecTransformer(\n this._spec.type,\n this._getChartOption(this._spec.type)\n );\n }\n this._specInfo = this._chartSpecTransformer?.createSpecInfo(this._spec);\n }\n\n private _initChart(spec: any) {\n if (!this._compiler) {\n this._option?.onError('compiler is not initialized');\n return;\n }\n if (this._chart) {\n this._option?.onError('chart is already initialized');\n return;\n }\n\n // 放到这里而不是放到chart内的考虑\n // 用户spec更新,也许会有core上图表实例的内容存在\n // 如果要支持spec的类似Proxy监听,更新逻辑应当从这一层开始。如果在chart上做,就需要在再向上发送spec更新消息,不是很合理。\n // todo: 问题1 存不存在 chart 需要在这个阶段处理的特殊字段?目前没有,但是理论上可以有?\n const chart = Factory.createChart(spec.type, spec, this._getChartOption(spec.type));\n if (!chart) {\n this._option?.onError('init chart fail');\n return;\n }\n this._chart = chart;\n this._chart.setCanvasRect(this._currentSize.width, this._currentSize.height);\n this._chart.created(this._chartSpecTransformer);\n this._chart.init();\n this._event.emit(ChartEvent.initialized, {\n chart,\n vchart: this\n });\n }\n\n private _releaseData() {\n if (this._dataSet) {\n // Object.values(this._dataSet.dataViewMap).forEach(d => {\n // d.target.removeAllListeners();\n // d.destroy();\n // });\n this._dataSet.dataViewMap = {};\n this._dataSet = null;\n }\n }\n\n private _bindViewEvent() {\n if (!this._compiler) {\n return;\n }\n // todo\n // view.addEventListener(VGRAMMAR_HOOK_EVENT.ALL_ANIMATION_END, () => {\n // this._event.emit(ChartEvent.animationFinished, {\n // chart: this._chart,\n // vchart: this\n // });\n // });\n // view.addEventListener(VGRAMMAR_HOOK_EVENT.AFTER_VRENDER_NEXT_RENDER, () => {\n // this._event.emit(ChartEvent.renderFinished, {\n // chart: this._chart,\n // vchart: this\n // });\n // });\n }\n\n private _bindResizeEvent() {\n if (this._autoSize) {\n this._onResize = throttle(this._doResize, this._option.resizeDelay ?? 100);\n\n if (this._container) {\n const ResizeObserverWindow: any = window.ResizeObserver;\n\n if (ResizeObserverWindow) {\n this._observer = new ResizeObserverWindow(this._onResize);\n this._observer?.observe(this._container);\n }\n }\n window.addEventListener('resize', this._onResize);\n }\n }\n\n private _unBindResizeEvent() {\n if (this._autoSize) {\n window.removeEventListener('resize', this._onResize);\n if (this._observer) {\n this._observer.disconnect();\n this._observer = null;\n }\n }\n }\n\n getCurrentSize() {\n return calculateChartSize(\n this._spec,\n {\n container: this._container,\n canvas: this._canvas,\n mode: this._getMode(),\n modeParams: this._option.modeParams\n },\n {\n width: this._currentSize?.width ?? DEFAULT_CHART_WIDTH,\n height: this._currentSize?.height ?? DEFAULT_CHART_HEIGHT\n }\n );\n }\n\n private _doResize = () => {\n const { width, height } = this.getCurrentSize();\n if (this._currentSize.width !== width || this._currentSize.height !== height) {\n this._currentSize = { width, height };\n this.resizeSync(width, height);\n }\n };\n\n private _initDataSet(dataSet?: DataSet) {\n if (dataSet instanceof DataSet) {\n this._dataSet = dataSet;\n } else {\n this._dataSet = new DataSet();\n }\n registerDataSetInstanceParser(this._dataSet, 'dataview', dataViewParser);\n registerDataSetInstanceParser(this._dataSet, 'array', arrayParser);\n registerDataSetInstanceTransform(this._dataSet, 'copyDataView', copyDataView);\n // 注册 dataset transform\n for (const key in Factory.transforms) {\n registerDataSetInstanceTransform(this._dataSet, key, Factory.transforms[key]);\n }\n // 注册 dataview parser\n for (const key in Factory.dataParser) {\n registerDataSetInstanceParser(this._dataSet, key, Factory.dataParser[key]);\n }\n }\n\n /** 在修改图表配置后重新渲染 */\n updateCustomConfigAndRerender(\n updateSpecResult: IUpdateSpecResult | (() => IUpdateSpecResult),\n sync?: boolean,\n option: IVChartRenderOption = {}\n ) {\n if (this._isReleased || !updateSpecResult) {\n return undefined;\n }\n if (isFunction(updateSpecResult)) {\n updateSpecResult = (updateSpecResult as () => IUpdateSpecResult)();\n }\n\n if ((updateSpecResult as IUpdateSpecResult).reAnimate) {\n this.stopAnimation();\n this._updateAnimateState(true);\n }\n\n this._reCompile(updateSpecResult as IUpdateSpecResult);\n if (sync) {\n return this._renderSync(option);\n }\n return this._renderAsync(option);\n }\n\n /** 执行自定义的回调修改图表配置,并重新编译(不渲染) */\n protected _updateCustomConfigAndRecompile(updateSpecResult: IUpdateSpecResult, option: IVChartRenderOption = {}) {\n if (!updateSpecResult) {\n return false;\n }\n this._reCompile(updateSpecResult);\n return this._beforeRender(option);\n }\n\n protected _reCompile(updateResult: IUpdateSpecResult, morphConfig?: IMorphConfig) {\n if (updateResult.reMake) {\n this._releaseData();\n this._initDataSet();\n this._chart?.release();\n this._chart = null as unknown as IChart;\n }\n\n if (updateResult.reTransformSpec) {\n // 释放图表等等\n this._chartSpecTransformer = null;\n }\n\n // 卸载了chart之后再设置主题 避免多余的reInit\n if (updateResult.changeTheme) {\n this._setCurrentTheme();\n this._setFontFamilyTheme(this._currentTheme?.fontFamily as string);\n } else if (updateResult.changeBackground) {\n this._compiler?.setBackground(this._getBackground());\n }\n\n if (updateResult.reMake) {\n // 如果不需要动画,那么释放item,避免元素残留\n this._compiler?.releaseGrammar();\n // chart 内部事件 模块自己必须删除\n // 内部模块删除事件时,调用了event Dispatcher.release() 导致用户事件被一起删除\n // 外部事件现在需要重新添加\n this._userEvents.forEach(e => this._event?.on(e.eType as any, e.query as any, e.handler as any));\n\n if (updateResult.reSize) {\n this._doResize();\n }\n } else {\n if (updateResult.reCompile) {\n // recompile\n // 清除之前的所有 compile 内容\n this._compiler?.clear({ chart: this._chart, vChart: this });\n // TODO: 释放事件? vgrammar 的 view 应该不需要释放,响应的stage也没有释放,所以事件可以不绑定\n // 重新绑定事件\n // TODO: 释放XX?\n // 重新compile\n this._compiler?.compile({ chart: this._chart, vChart: this });\n }\n if (updateResult.reSize) {\n const { width, height } = this.getCurrentSize();\n this._chart.onResize(width, height, false);\n this._compiler.resize(width, height, false);\n }\n }\n }\n\n /** 渲染之前的步骤,返回是否成功 */\n protected _beforeRender(option: IVChartRenderOption = {}): boolean {\n // 如果 vchart 实例已经卸载,终止渲染\n if (this._isReleased) {\n return false;\n }\n // 如果图表已经实例化,跳过该步骤\n if (this._chart) {\n return true;\n }\n\n const { transformSpec, actionSource } = option;\n\n if (transformSpec) {\n // 初始化图表 spec\n this._initChartSpec(this._spec, 'render');\n // 插件生命周期\n }\n this._chartPluginApply('onBeforeInitChart', this._spec, actionSource);\n\n // 实例化图表\n this._option.performanceHook?.beforeInitializeChart?.(this);\n this._initChart(this._spec);\n this._option.performanceHook?.afterInitializeChart?.(this);\n // 如果实例化失败,终止渲染\n if (!this._chart || !this._compiler) {\n return false;\n }\n\n // compile\n this._option.performanceHook?.beforeCompileToVGrammar?.(this);\n this._compiler.compile({ chart: this._chart, vChart: this }, option);\n this._option.performanceHook?.afterCompileToVGrammar?.(this);\n return true;\n }\n\n /** 渲染之后的步骤 */\n protected _afterRender(): boolean {\n if (this._isReleased) {\n return false;\n }\n this._updateAnimateState();\n this._event.emit(ChartEvent.rendered, {\n chart: this._chart,\n vchart: this\n });\n return true;\n }\n\n /**\n * **同步方法** 渲染图表。\n * @param morphConfig 图表 morph 动画配置,可选\n * @returns VChart 实例\n */\n renderSync(morphConfig?: IMorphConfig) {\n return this._renderSync({\n morphConfig,\n transformSpec: true,\n actionSource: 'render'\n });\n }\n\n /**\n * **异步方法** 渲染图表。\n * @param morphConfig 图表 morph 动画配置,可选\n * @returns VChart 实例\n */\n async renderAsync(morphConfig?: IMorphConfig) {\n return this._renderAsync({\n morphConfig,\n transformSpec: true,\n actionSource: 'render'\n });\n }\n\n protected _renderSync = (option: IVChartRenderOption = {}) => {\n const self = this as unknown as IVChart;\n if (!this._beforeRender(option)) {\n return self;\n }\n // 填充数据绘图\n this._compiler?.render(option.morphConfig);\n this._afterRender();\n return self;\n };\n\n protected async _renderAsync(option: IVChartRenderOption = {}) {\n return this._renderSync(option);\n }\n\n private _updateAnimateState(initial?: boolean) {\n if (this._option.animation) {\n const animationState = initial ? AnimationStateEnum.appear : AnimationStateEnum.update;\n this._chart?.getAllRegions().forEach(region => {\n region.animate?.updateAnimateState(animationState, true);\n });\n this._chart?.getAllComponents().forEach(component => {\n component.animate?.updateAnimateState(animationState, true);\n });\n }\n }\n\n /**\n * 销毁图表\n */\n release() {\n if ((this._onResize as any)?.cancel) {\n (this._onResize as any).cancel();\n }\n this._chartPluginApply('releaseAll');\n this._chartPlugin = null;\n this._chartSpecTransformer = null;\n this._chart?.release();\n // eventDispatcher 的release 依赖 compiler\n this._eventDispatcher?.release();\n this._compiler?.release();\n this._unBindResizeEvent();\n // resetID(); // 为什么要重置ID呢?\n\n this._releaseData();\n\n this._onError = null;\n this._onResize = null;\n this._container = null;\n this._currentTheme = null;\n this._option = null;\n this._chart = null;\n this._compiler = null;\n this._spec = null;\n this._specInfo = null;\n this._originalSpec = null;\n // this._option = null;\n this._userEvents = null;\n this._event = null;\n this._eventDispatcher = null;\n this._isReleased = true;\n\n InstanceManager.unregisterInstance(this);\n }\n\n /**\n * **异步方法** 更新数据。\n * @param id 数据 id\n * @param data 数据值\n * @param parserOptions 数据参数\n * @returns VChart 实例\n */\n async updateData(\n id: StringOrNumber,\n data: DataView | Datum[] | string,\n parserOptions?: IParserOptions,\n userUpdateOptions?: IUpdateDataResult\n ): Promise<IVChart> {\n return this.updateDataSync(id, data, parserOptions, userUpdateOptions);\n }\n\n private _updateDataById(id: StringOrNumber, data: DataView | Datum[] | string, parserOptions?: IParserOptions) {\n const preDV = this._spec.data.find((dv: any) => dv.name === id || dv.id === id);\n if (preDV) {\n if (preDV.id === id) {\n preDV.values = data;\n } else if (preDV.name === id) {\n preDV.parse(data, parserOptions);\n }\n } else {\n if (isArray(data)) {\n this._spec.data.push({\n id,\n values: data\n });\n } else {\n this._spec.data.push(data);\n }\n }\n }\n\n /**\n * **异步方法** 批量更新数据。\n * @param list 待更新的数据列表\n * @returns VChart 实例\n */\n async updateDataInBatches(list: { id: string; data: Datum[]; options?: IParserOptions }[]): Promise<IVChart> {\n if (this._chart) {\n this._chart.updateFullData(\n list.map(({ id, data, options }) => {\n return { id, values: data, parser: options };\n })\n );\n this._chart.updateGlobalScaleDomain();\n this._compiler.render();\n return this as unknown as IVChart;\n }\n\n this._spec.data = array(this._spec.data);\n list.forEach(({ id, data, options }) => {\n this._updateDataById(id, data, options);\n });\n return this as unknown as IVChart;\n }\n\n /**\n * **同步方法** 更新数据\n * @param id 数据 id\n * @param data 数据值\n * @param parserOptions 数据参数\n * @returns VChart 实例\n */\n updateDataSync(\n id: StringOrNumber,\n data: DataView | Datum[] | string,\n parserOptions?: IParserOptions,\n userUpdateOptions?: IUpdateDataResult\n ) {\n if (isNil(this._dataSet)) {\n return this as unknown as IVChart;\n }\n if (this._chart) {\n if (userUpdateOptions?.reAnimate) {\n this.stopAnimation();\n this._updateAnimateState(true);\n }\n\n this._chart.updateData(id, data, true, parserOptions);\n\n // after layout\n this._compiler.render();\n return this as unknown as IVChart;\n }\n this._spec.data = array(this._spec.data);\n\n this._updateDataById(id, data, parserOptions);\n return this as unknown as IVChart;\n }\n\n /**\n * **同步方法** 更新数据\n * @param data 图表配置结构中的数据对象\n * @returns VChart 实例\n * @since 1.3.0\n */\n updateFullDataSync(\n data: IDataValues | IDataValues[],\n reRender: boolean = true,\n userUpdateOptions?: IUpdateSpecResult\n ) {\n if (this._chart) {\n if (userUpdateOptions?.reAnimate) {\n this.stopAnimation();\n this._updateAnimateState(true);\n }\n this._chart.updateFullData(data);\n if (reRender) {\n this._compiler.render();\n }\n return this as unknown as IVChart;\n }\n\n const prevData = array(this._spec.data) as DataView[];\n const list: IDataValues[] = array(data);\n list.forEach(d => {\n // only support update this attrs\n const { id, values, parser, fields } = d;\n const preDV = prevData.find(dv => dv.name === id);\n if (preDV) {\n if (preDV instanceof DataView) {\n preDV.setFields(cloneDeep(fields) as IFields);\n preDV.parse(values, cloneDeep(parser) as IParserOptions);\n } else {\n (preDV as IDataValues).values = values;\n isValid(parser) && ((preDV as IDataValues).parser = parser);\n isValid(fields) && ((preDV as IDataValues).fields = fields);\n }\n } else {\n // new data\n const dataView = dataToDataView(d, <DataSet>this._dataSet, prevData);\n\n if (isArray(this._spec.data)) {\n this._spec.data.push(dataView);\n }\n }\n });\n return this as unknown as IVChart;\n }\n\n /**\n * **异步方法** 更新数据\n * @param data 图表配置结构中的数据对象\n * @returns VChart 实例\n * @since 1.3.0\n */\n async updateFullData(data: IDataValues | IDataValues[], reRender: boolean = true) {\n return this.updateFullDataSync(data, reRender);\n }\n\n /**\n * **异步方法** spec 更新\n * @param spec\n * @param forceMerge\n * @returns\n */\n async updateSpec(\n spec: ISpec,\n forceMerge: boolean = false,\n morphConfig?: IMorphConfig,\n userUpdateOptions?: IUpdateSpecResult\n ) {\n const result = this._updateSpec(spec, forceMerge, userUpdateOptions);\n\n if (!result) {\n return this as unknown as IVChart;\n }\n\n await this.updateCustomConfigAndRerender(result, false, {\n morphConfig,\n transformSpec: result.reTransformSpec,\n actionSource: 'updateSpec'\n });\n return this as unknown as IVChart;\n }\n\n /**\n * **同步方法** spec 更新\n * @param spec\n * @param forceMerge\n * @returns\n */\n updateSpecSync(\n spec: ISpec,\n forceMerge: boolean = false,\n morphConfig?: IMorphConfig,\n userUpdateOptions?: IUpdateSpecResult\n ) {\n const result = this._updateSpec(spec, forceMerge, userUpdateOptions);\n\n if (!result) {\n return this as unknown as IVChart;\n }\n\n this.updateCustomConfigAndRerender(result, true, {\n morphConfig,\n transformSpec: result.reTransformSpec,\n actionSource: 'updateSpec'\n });\n return this as unknown as IVChart;\n }\n\n /** 更新 spec 并重新编译(不渲染),返回是否成功 */\n updateSpecAndRecompile(spec: ISpec, forceMerge: boolean = false, option: IVChartRenderOption = {}) {\n const result = this._updateSpec(spec, forceMerge);\n return this._updateCustomConfigAndRecompile(result, {\n actionSource: 'updateSpecAndRecompile',\n ...option\n });\n }\n\n private _updateSpec = (\n spec: ISpec,\n forceMerge: boolean = false,\n userUpdateOptions?: IUpdateSpecResult\n ): IUpdateSpecResult | undefined => {\n const lastSpec = this._spec;\n\n const result: IUpdateSpecResult = {\n changeBackground: false,\n reTransformSpec: false,\n change: false,\n reMake: false,\n reCompile: false,\n reSize: false,\n changeTheme: false\n };\n\n // 这里已经将 this._spec 设置为新spec\n if (!this._setNewSpec(spec, forceMerge)) {\n return undefined;\n }\n\n // 这时图表内对象是旧的,对应上一份 spec\n if (!isEqual(lastSpec.theme, this._spec.theme)) {\n result.changeTheme = true;\n // setCurrentTheme 会导致 chart 实例的 reInit。\n // 只要模块从 vchart 实例获取与 spec 相关的信息,都会出现错误,它们已经不匹配了\n // this._setCurrentTheme();\n } else if (!isEqual(this._spec.background, lastSpec.background)) {\n result.reMake = true;\n result.changeBackground = true;\n }\n\n const reSize = this._shouldChartResize(lastSpec);\n result.reSize = reSize;\n\n if (this._spec.type !== lastSpec.type) {\n this._compiler?.updateLayoutTag();\n result.reMake = true;\n result.reTransformSpec = true;\n result.change = true;\n result.changeTheme = true; // 支持了根据图表类型 merge 当前主题。当 type 变了后,需要更新主题\n return result;\n }\n // 再次处理 spec 并得到 specInfo\n this._initChartSpec(this._spec, 'updateSpec');\n\n const res = mergeUpdateResult(this._chart.updateSpec(this._spec), result);\n\n return userUpdateOptions\n ? {\n ...res,\n ...userUpdateOptions\n }\n : res;\n };\n\n /**\n * **异步方法** spec 更新\n * @param filter\n * @param spec\n * @param forceMerge\n * @returns\n * @sync 1.4.0\n */\n async updateModelSpec(\n filter: string | { type: string; index: number } | ((model: IModel) => boolean),\n spec: unknown,\n forceMerge: boolean = false,\n morphConfig?: IMorphConfig\n ) {\n return this.updateModelSpecSync(filter, spec, forceMerge, morphConfig);\n }\n\n /**\n * **同步方法** spec 更新\n * @param filter\n * @param spec\n * @param forceMerge\n * @returns\n * @sync 1.4.0\n */\n updateModelSpecSync(\n filter: string | { type: string; index: number } | ((model: IModel) => boolean),\n spec: unknown,\n forceMerge: boolean = false,\n morphConfig?: IMorphConfig\n ) {\n if (!spec || !this._spec) {\n return this as unknown as IVChart;\n }\n if (isString(spec)) {\n spec = JSON.parse(spec);\n }\n\n if (!isFunction(filter)) {\n // find spec and update\n mergeSpecWithFilter(this._spec, filter, spec, forceMerge);\n }\n\n if (this._chart) {\n const model = this._chart.getModelInFilter(filter);\n if (model) {\n return this._updateModelSpec(model, spec, true, forceMerge, morphConfig) as IVChart;\n }\n }\n return this as unknown as IVChart;\n }\n\n /**\n * **同步方法** 模块 spec 更新\n * @param model\n * @param spec\n * @param forceMerge\n * @returns\n */\n protected _updateModelSpec(\n model: IModel,\n spec: unknown,\n sync: boolean = false,\n forceMerge: boolean = false,\n morphConfig?: IMorphConfig\n ) {\n if (forceMerge) {\n spec = mergeSpec({}, model.getSpec(), spec);\n }\n\n const result = model.updateSpec(spec);\n model.reInit(spec);\n if (result.change || result.reCompile || result.reMake || result.reSize || result.reRender) {\n this._chart.reDataFlow();\n }\n\n return this.updateCustomConfigAndRerender(result, sync, {\n morphConfig,\n transformSpec: false,\n actionSource: 'updateModelSpec'\n });\n }\n\n /**\n * **异步方法**,图表尺寸更新方法\n * @param width 宽度\n * @param height 高度\n * @returns VChart 当前实例\n */\n async resize(width: number, height: number) {\n return this.resizeSync(width, height);\n }\n\n /**\n * **同步方法**,图表尺寸更新方法\n * @param width 宽度\n * @param height 高度\n * @returns VChart 当前实例\n */\n resizeSync(width: number, height: number) {\n if (!this._beforeResize(width, height)) {\n return this as unknown as IVChart;\n }\n this._compiler.resize?.(width, height);\n return this._afterResize();\n }\n\n protected _beforeResize(width: number, height: number): boolean {\n if (!this._chart || !this._compiler) {\n return false;\n }\n // 如果宽高未变化,不需要重新执行 resize,防止当图表初始化时会执行一次多余的 resize\n const chartCanvasRect = this._chart.getCanvasRect();\n if (chartCanvasRect && chartCanvasRect.width === width && chartCanvasRect.height === height) {\n return false;\n }\n\n // 插件生命周期\n this._chartPluginApply('onBeforeResize', width, height);\n\n this._option.performanceHook?.beforeResizeWithUpdate?.(this);\n this._chart.onResize(width, height, false);\n this._option.performanceHook?.afterResizeWithUpdate?.(this);\n\n return true;\n }\n\n protected _afterResize() {\n if (!this._isReleased) {\n // emit resize event\n this._event.emit(ChartEvent.afterResize, { chart: this._chart });\n }\n return this as unknown as IVChart;\n }\n\n /**\n * 更新绘制区域\n * @param viewBox 绘制区域\n * @param reRender 是否重新渲染,默认为 true\n * @param reLayout 是否重新布局,默认为 true\n * @returns\n */\n updateViewBox(viewBox: IBoundsLike, reRender: boolean = true, reLayout: boolean = true) {\n if (!this._chart || !this._compiler) {\n return this as unknown as IVChart;\n }\n this._viewBox = viewBox;\n // 更新 layout 参数\n this._chart.updateViewBox(viewBox, reLayout);\n if (reLayout) {\n // 重新布局\n this._compiler.render();\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this._chart.onEvaluateEnd();\n }\n // 获取 compiler\n this._compiler.updateViewBox(viewBox, reRender);\n return this as unknown as IVChart;\n }\n\n // 事件相关方法\n on(eType: EventType, handler: EventCallback<ExtendEventParam>): void;\n on(eType: EventType, query: EventQuery, handler: EventCallback<ExtendEventParam>): void;\n on(\n eType: EventType,\n query: EventQuery | EventCallback<ExtendEventParam>,\n handler?: EventCallback<ExtendEventParam>\n ): void {\n if (!this._userEvents) {\n // userEvents正常情况下有默认值,如果!userEvents,说明此时chart被release了,就可以终止流程\n return;\n }\n this._userEvents.push({\n eType,\n query: typeof query === 'function' ? null : query,\n handler:\n typeof query === 'function'\n ? (query as EventCallback<ExtendEventParam>)\n : (handler as EventCallback<ExtendEventParam>)\n });\n this._event?.on(eType as any, query as any, handler as any);\n }\n off(eType: EventType, handler?: EventCallback<ExtendEventParam>): void {\n if (!this._userEvents || this._userEvents.length === 0) {\n return;\n }\n if (handler) {\n const index = this._userEvents.findIndex(e => e.eType === eType && e.handler === handler);\n if (index >= 0) {\n this._userEvents.splice(index, 1);\n this._event?.off(eType, handler);\n }\n } else {\n this._userEvents.forEach(e => {\n if (e.eType === eType) {\n this._event?.off(eType, e.handler);\n }\n });\n this._userEvents = this._userEvents.filter(e => e.eType !== eType);\n }\n }\n\n // 状态相关方法\n /**\n * 更新或设置图元状态\n * @param state 状态筛选器\n * @param filter 筛选器\n */\n updateState(\n state: Record<string, Omit<IMarkStateSpec<unknown>, 'style'>>,\n filter?: (series: ISeries, mark: IMark, stateKey: string) => boolean //series + mark 筛选\n ): void {\n if (!this._chart) {\n return;\n }\n this._chart.updateState(state, filter);\n }\n\n /**\n * 更新图元选中状态\n * @param datum hover 图元数据\n * @param filter 筛选器 用来筛选系列与mark\n * @param region region 筛选器\n */\n setSelected(\n datum: MaybeArray<any> | null,\n filter?: (series: ISeries, mark: IMark) => boolean,\n region?: IRegionQuerier\n ): void {\n if (!this._chart) {\n return;\n }\n this._chart.setSelected(datum, filter, region);\n }\n\n /**\n * 更新图元 hover 状态\n * @param datum hover 图元数据\n * @param filter 筛选器 用来筛选系列与mark\n * @param region region 筛选器\n */\n setHovered(\n datum: MaybeArray<Datum> | null,\n filter?: (series: ISeries, mark: IMark) => boolean,\n region?: IRegionQuerier\n ): void {\n if (!this._chart) {\n return;\n }\n this._chart.setHovered(datum, filter, region);\n }\n\n /**\n * 清除所有图元的状态\n *\n * @since 1.11.0\n */\n clearState(state: string) {\n if (!this._chart) {\n return;\n }\n this._chart.clearState(state);\n }\n\n /**\n * 清除所有图元的所有状态\n *\n * @since 1.12.4\n */\n clearAllStates() {\n if (!this._chart) {\n return;\n }\n this._chart.clearAllStates();\n }\n\n /**\n * 清除所有图元的选中状态\n *\n * @since 1.11.0\n */\n clearSelected() {\n if (!this._chart) {\n return;\n }\n this._chart.clearSelected();\n }\n\n /**\n * 清除所有图元的hover状态\n *\n * @since 1.11.0\n */\n clearHovered() {\n if (!this._chart) {\n return;\n }\n this._chart.clearHovered();\n }\n\n // 主题相关方法\n /**\n * 当 spec 或者 currentThemeName 有变化时需要调用此方法对 currentTheme 进行更新\n * @param nextThemeName 通过 setCurrentTheme 方法新设的主题\n */\n private _updateCurrentTheme(nextThemeName?: string) {\n const optionTheme: Maybe<string | ITheme> = this._option.theme;\n const specTheme: Maybe<string | ITheme> = this._spec?.theme;\n const chartType: string = this._spec?.type;\n if (nextThemeName) {\n this._currentThemeName = nextThemeName;\n }\n\n const processThemeByChartType = (type: string, theme: ITheme) => {\n if (theme.chart?.[type]) {\n theme = mergeTheme({}, theme, theme.chart[type]);\n }\n return theme;\n };\n\n let currentTheme;\n // 处理 specTheme 和 optionTheme, merge -> transform\n // 优先级 currentTheme < optionTheme < specTheme\n if (!isEmpty(optionTheme) || !isEmpty(specTheme)) {\n if (\n (isString(optionTheme) && (!specTheme || isString(specTheme))) ||\n (isString(specTheme) && (!optionTheme || isString(optionTheme)))\n ) {\n const finalTheme = mergeTheme(\n {},\n getThemeObject(this._currentThemeName, true),\n getThemeObject(optionTheme, true),\n getThemeObject(specTheme, true)\n );\n\n this._currentTheme = processThemeByChartType(chartType, finalTheme);\n } else {\n const finalTheme = mergeTheme(\n {},\n getThemeObject(this._currentThemeName),\n getThemeObject(optionTheme),\n getThemeObject(specTheme)\n );\n this._currentTheme = preprocessTheme(processThemeByChartType(chartType, finalTheme));\n }\n } else {\n currentTheme = getThemeObject(this._currentThemeName, true);\n this._currentTheme = processThemeByChartType(chartType, currentTheme);\n }\n\n // 设置 poptip 的主题\n setPoptipTheme(get(this._currentTheme, 'component.poptip'));\n // 设置背景色\n this._compiler?.setBackground(this._getBackground());\n }\n\n private _shouldChartResize(oldSpec: ISpec): boolean {\n let resize = false;\n\n if (isNil(this._spec.width)) {\n !isNil(oldSpec.width) && (this._spec.width = oldSpec.width);\n } else if (this._spec.width !== oldSpec.width) {\n resize = true;\n }\n\n if (isNil(this._spec.height)) {\n !isNil(oldSpec.height) && (this._spec.height = oldSpec.height);\n } else if (this._spec.height !== oldSpec.height) {\n resize = true;\n }\n\n const lasAutoSize = this._autoSize;\n this._autoSize = isTrueBrowser(this._option.mode) ? this._spec.autoFit ?? this._option.autoFit ?? true : false;\n if (this._autoSize !== lasAutoSize) {\n resize = true;\n }\n return resize;\n }\n\n private _getBackground() {\n const specBackground =\n typeof this._spec.background === 'string' || (isObject(this._spec.background) && this._spec.background.gradient)\n ? this._spec.background\n : null;\n // spec > spec.theme > initOptions.theme\n return specBackground || (this._currentTheme.background as string) || this._option.background;\n }\n\n /**\n * 获取当前主题,会返回完整的主题配置(只能获取用户通过`setCurrentTheme`方法设置过的主题,默认值为`ThemeManager`统一设置的主题)\n * */\n getCurrentTheme() {\n return getThemeObject(this._currentThemeName);\n }\n\n /**\n * 获取当前主题名称(只能获取用户通过`setCurrentTheme`方法设置过的主题,默认值为`ThemeManager`统一设置的主题)\n */\n getCurrentThemeName() {\n return this._currentThemeName;\n }\n\n /**\n * **异步方法**, 设置当前主题。\n * **注意,如果在 spec 上配置了 theme,则 spec 上的 theme 优先级更高。**\n * @param name 主题名称\n * @returns\n */\n async setCurrentTheme(name: string) {\n return this.setCurrentThemeSync(name);\n }\n\n /**\n * **同步方法** 设置当前主题。\n * **注意,如果在 spec 上配置了 theme,则 spec 上的 theme 优先级更高。**\n * @param name 主题名称\n * @returns\n */\n setCurrentThemeSync(name: string) {\n if (!ThemeManager.themeExist(name)) {\n return this as unknown as IVChart;\n }\n const result = this._setCurrentTheme(name);\n this._setFontFamilyTheme(this._currentTheme?.fontFamily as string);\n this.updateCustomConfigAndRerender(result, true, {\n transformSpec: false,\n actionSource: 'setCurrentTheme'\n });\n return this as unknown as IVChart;\n }\n\n protected _setCurrentTheme(name?: string): IUpdateSpecResult {\n this._updateCurrentTheme(name);\n this._initChartSpec(this._getSpecFromOriginalSpec(), 'setCurrentTheme');\n this._chart?.setCurrentTheme();\n return { change: true, reMake: false };\n }\n\n private _setFontFamilyTheme(fontFamily: string) {\n if (!fontFamily) {\n return;\n }\n // 全局字体的特殊设置逻辑\n // 设置全局字体\n (this.getStage() as any)?.setTheme({ text: { fontFamily } });\n }\n\n // Tooltip 相关方法\n private _getTooltipComponent(): Tooltip | undefined {\n const tooltip = this._chart?.getComponentsByType(ComponentTypeEnum.tooltip)[0] as unknown as Tooltip;\n return tooltip;\n }\n\n /**\n * 自定义 TooltipHandler\n * @param tooltipHandler\n */\n setTooltipHandler(tooltipHandler: ITooltipHandler) {\n this._context.tooltipHandler = tooltipHandler;\n const tooltip = this._getTooltipComponent();\n if (tooltip) {\n tooltip.tooltipHandler?.release?.();\n tooltip.tooltipHandler = tooltipHandler;\n }\n }\n\n /**\n * 获取用户定义的 TooltipHandler\n * @returns ITooltipHandler\n */\n getTooltipHandlerByUser(): ITooltipHandler | undefined {\n return this._context?.tooltipHandler;\n }\n\n /**\n * 获取 TooltipHandler\n * @returns\n */\n getTooltipHandler(): ITooltipHandler | undefined {\n const tooltip = this._getTooltipComponent();\n if (tooltip) {\n return tooltip.tooltipHandler;\n }\n return this._context.tooltipHandler;\n }\n\n /**\n * 手动调用展示 tooltip\n * @param datum 原始数据\n * @param options\n * @returns\n */\n showTooltip(datum: Datum, options: IShowTooltipOption): boolean {\n const tooltip = this._getTooltipComponent();\n return (isValid(datum) && tooltip?.showTooltip(datum, options) !== 'none') ?? false;\n }\n\n /**\n * 手动调用,关闭 tooltip\n * @returns\n */\n hideTooltip(): boolean {\n const tooltip = this._getTooltipComponent();\n return tooltip?.hideTooltip() ?? false;\n }\n\n // 图例相关 api\n /**\n * 根据图例组件 id 获取图例数据\n * @param id 组件 id\n * @returns\n */\n getLegendDataById(id: string) {\n const legendComponent = this._chart?.getComponentByUserId(id) as ILegend;\n if (legendComponent) {\n return legendComponent.getLegendData();\n }\n return [];\n }\n\n /**\n * 根据图例组件索引获取图例数据\n * @param index 图例索引,默认为 0\n * @returns\n */\n getLegendDataByIndex(index: number = 0) {\n const legends = this._chart?.getComponentsByType(ComponentTypeEnum.discreteLegend) as unknown as ILegend[];\n\n if (legends && legends[index]) {\n return legends[index].getLegendData();\n }\n\n return [];\n }\n\n /**\n * 根据图例组件 id 获取当前图例的选中项\n * @param id 组件 id\n * @returns\n */\n getLegendSelectedDataById(id: string) {\n const legendComponent = this._chart?.getComponentByUserId(id) as ILegend;\n if (legendComponent) {\n return legendComponent.getSelectedData();\n }\n return [];\n }\n\n /**\n * 根据图例组件索引获取当前图例的选中项\n * @param index 图例索引,默认为 0\n * @returns\n */\n getLegendSelectedDataByIndex(index: number = 0) {\n const legends = this._chart?.getComponentsByType(ComponentTypeEnum.discreteLegend) as unknown as ILegend[];\n\n if (legends && legends[index]) {\n return legends[index].getSelectedData();\n }\n\n return [];\n }\n\n /**\n * 根据图例组件 id 更新图例选中数据\n * @param id\n * @returns\n */\n setLegendSelectedDataById(id: string, selectedData: StringOrNumber[]) {\n const legendComponent = this._chart?.getComponentByUserId(id) as ILegend;\n if (legendComponent) {\n legendComponent.setSelectedData(selectedData);\n }\n }\n\n /**\n * 根据图例组件索引更新图例选中数据\n * @param index 图例索引,默认为 0\n * @returns\n */\n setLegendSelectedDataByIndex(index: number = 0, selectedData: StringOrNumber[]) {\n const legends = this._chart?.getComponentsByType(ComponentTypeEnum.discreteLegend) as unknown as ILegend[];\n\n if (legends && legends[index]) {\n legends[index].setSelectedData(selectedData);\n }\n }\n\n // 保存图片相关的方法\n /**\n * **异步方法**返回一个包含图片展示的 data URI。\n * @returns data URI\n */\n async getDataURL() {\n const stage = this.getStage();\n if (this._chart && stage) {\n // 因为 vrender 是 autoRender 的,它不能确认第几帧才是完整的图表,所以这里调用一次 render 以保证获取到的是完整的画布\n stage.render();\n const canvas = this._chart.getCanvas();\n const url = await getCanvasDataURL(canvas, {\n onError: this._onError\n });\n return url;\n }\n this._option?.onError(new ReferenceError(`render is not defined`));\n\n return null;\n }\n\n /**\n * **异步方法** 导出图表图片,只支持浏览器端。\n * @param name 保存的图片名称\n * @returns\n */\n async exportImg(name?: string) {\n if (!isTrueBrowser(this._option.mode)) {\n this._option?.onError(new TypeError(`non-browser environment can not export img`));\n return;\n }\n\n const dataURL = await this.getDataURL();\n if (dataURL) {\n URLToImage(name, dataURL);\n } else {\n this._option?.onError(new ReferenceError(`render is not defined`));\n }\n }\n /**\n * 导出绘制了图表内容的 canvas\n * @returns HTMLCanvasElement\n */\n exportCanvas(): HTMLCanvasElement | undefined {\n const stage = this.getStage();\n if (this._chart && stage) {\n return stage.toCanvas();\n }\n this._option?.onError(new ReferenceError(`render is not defined`));\n return undefined;\n }\n\n /**\n * 目前仅支持 node 环境,用于 node 端的图片导出\n * @returns\n */\n getImageBuffer() {\n if (this._option.mode !== 'node') {\n this._option?.onError(new TypeError('getImageBuffer() now only support node environment.'));\n return;\n }\n const stage = this.getStage();\n if (stage) {\n stage.render();\n const buffer = stage.window.getImageBuffer();\n return buffer;\n }\n this._option?.onError(new ReferenceError(`render is not defined`));\n\n return null;\n }\n\n // 布局相关的方法\n /**\n * 设置自定义布局\n */\n setLayout(layout: LayoutCallBack) {\n this._option.layout = layout;\n this._chart?.setLayout(layout);\n }\n /**\n * 强制重新布局\n */\n reLayout() {\n this._chart?.setLayoutTag(true);\n }\n\n /**\n * 获取编译器实例\n * @returns\n */\n getCompiler() {\n return this._compiler;\n }\n\n /**\n * Get the chart instance\n * 获取 Chart 图表实例。\n * @returns Chart 实例\n */\n getChart() {\n return this._chart;\n }\n\n /**\n * Get the renderer instance.\n * 获取渲染引擎实例。\n * @returns the instance of VRender Stage\n */\n getStage(): IStage {\n return this._compiler.getStage();\n }\n\n /**\n * 获取 canvas dom\n * @returns HTMLCanvasElement | undefined\n */\n getCanvas(): HTMLCanvasElement | undefined {\n return this._compiler?.getCanvas();\n }\n\n /**\n * 获取图表的 dom 容器\n * @returns\n */\n getContainer(): Maybe<HTMLElement> {\n // 用户传入 dom container\n if (isValid(this._container)) {\n return this._container;\n }\n\n // 用户传入 canvas\n let canvasNode: Maybe<HTMLCanvasElement>;\n if (isString(this._canvas)) {\n canvasNode = vglobal.getElementById(this._canvas) as HTMLCanvasElement;\n } else {\n canvasNode = this._canvas as HTMLCanvasElement;\n }\n if (isValid(canvasNode)) {\n return canvasNode.parentElement;\n }\n\n // 用户传入 stage\n return this.getCanvas()?.parentElement;\n }\n\n /**\n * 获取图表所有的组件实例\n * @returns 组件实例\n */\n getComponents() {\n return this._chart.getAllComponents();\n }\n\n /**\n * 获取全局scale\n * @param scaleName 指定scale的id\n * @returns scale实例\n */\n getScale(scaleId: string) {\n const globalScale = this._chart?.getGlobalScale();\n\n return globalScale?.getScale(scaleId);\n }\n\n /**\n * setDimensionIndex could trigger mark state, tooltip, crosshair\n * @param value dimension value\n * @param opt option for set trigger\n */\n setDimensionIndex(value: StringOrNumber, opt: DimensionIndexOption = {}) {\n return this._chart?.setDimensionIndex(value, opt);\n }\n\n /** 停止正在进行的所有动画 */\n stopAnimation() {\n // this._compiler?.getVGrammarView()?.animate?.stop();\n }\n\n /** 暂停正在进行的所有动画 */\n pauseAnimation() {\n // this._compiler?.getVGrammarView()?.animate?.pause();\n }\n\n /** 恢复暂停时正在进行的所有动画 */\n resumeAnimation() {\n // this._compiler?.getVGrammarView()?.animate?.resume();\n }\n\n // TODO: 后续需要考虑滚动场景\n /**\n * Convert the data corresponding to the graph into coordinates\n * 将图形对应的数据转换为坐标,该数据需要从传入图表的数据集中获取,如果数据不存在数据集中,可以使用 `convertValueToPosition` 方法\n * @param datum 要转化的数据 the datum(from data source)to convert\n * @param dataLinkInfo 数据的绑定信息,the data link info, could be seriesId or seriesIndex, default is { seriesIndex: 0 }\n * @param isRelativeToCanvas 是否相对画布坐标 Whether relative to canvas coordinates\n * @param checkInViewData 是否检查数据对应的图元是否在视图中,如果不在视图中,返回 null\n * @returns\n */\n convertDatumToPosition(\n datum: Datum,\n dataLinkInfo: DataLinkSeries = {},\n isRelativeToCanvas: boolean = false,\n checkInViewData?: boolean\n ): IPoint | null {\n if (!this._chart) {\n return null;\n }\n if (isEmpty(datum)) {\n return null;\n }\n const { seriesId, seriesIndex = 0 } = dataLinkInfo;\n\n let series: ISeries;\n if (isValid(seriesId)) {\n series = this._chart.getSeriesInUserId(seriesId);\n } else if (isValid(seriesIndex)) {\n series = this._chart.getSeriesInIndex([seriesIndex])?.[0];\n }\n\n if (series) {\n const keys = Object.keys(datum);\n const handledDatum = series\n .getViewData()\n // eslint-disable-next-line eqeqeq\n .latestData.find((viewDatum: Datum) => keys.every(k => viewDatum[k] == datum[k]));\n const seriesLayoutStartPoint = series.getRegion().getLayoutStartPoint();\n let point: IPoint;\n if (handledDatum) {\n point = series.dataToPosition(handledDatum, checkInViewData);\n } else {\n point = series.dataToPosition(datum, checkInViewData);\n }\n if (!point) {\n return null;\n }\n return convertPoint(point, seriesLayoutStartPoint, isRelativeToCanvas);\n }\n\n return null;\n }\n\n // TODO: 1. 后续需要考虑滚动场景 2. 极坐标场景支持\n convertValueToPosition(\n value: StringOrNumber,\n dataLinkInfo: DataLinkAxis,\n isRelativeToCanvas?: boolean\n ): number | null;\n convertValueToPosition(\n value: [StringOrNumber, StringOrNumber],\n dataLinkInfo: DataLinkSeries,\n isRelativeToCanvas?: boolean\n ): IPoint | null;\n convertValueToPosition(\n value: StringOrNumber | [StringOrNumber, StringOrNumber],\n dataLinkInfo: DataLinkAxis | DataLinkSeries,\n isRelativeToCanvas: boolean = false\n ): number | IPoint | null {\n if (!this._chart || isNil(value) || isEmpty(dataLinkInfo)) {\n return null;\n }\n\n if (!isArray(value)) {\n // 如果单个值,则默认使用 axis 绑定信息\n const { axisId, axisIndex } = dataLinkInfo as DataLinkAxis;\n let axis;\n if (isValid(axisId)) {\n axis = this._chart.getComponentsByKey('axes').find(s => s.userId === axisId);\n } else if (isValid(axisIndex)) {\n axis = this._chart.getComponentsByKey('axes')?.[axisIndex];\n }\n if (!axis) {\n warn('Please check whether the `axisId` or `axisIndex` is set!');\n return null;\n }\n\n const pointValue = (axis as IAxis)?.valueToPosition(value);\n if (isRelativeToCanvas) {\n const axisLayoutStartPoint = axis.getLayoutStartPoint();\n const axisOrient = (axis as IAxis).getOrient();\n return (\n pointValue +\n (axisOrient === 'bottom' || axisOrient === 'top' ? axisLayoutStartPoint.x : axisLayoutStartPoint.y)\n );\n }\n\n return pointValue;\n }\n const { seriesId, seriesIndex } = dataLinkInfo as DataLinkSeries;\n let series;\n if (isValid(seriesId)) {\n series = this._chart.getSeriesInUserId(seriesId);\n } else if (isValid(seriesIndex)) {\n series = this._chart.getSeriesInIndex([seriesIndex])?.[0];\n }\n\n if (!series) {\n warn('Please check whether the `seriesId` or `seriesIndex` is set!');\n return null;\n }\n\n return convertPoint(\n (series as ISeries).valueToPosition(value[0], value[1]),\n series.getRegion().getLayoutStartPoint(),\n isRelativeToCanvas\n );\n }\n\n /**\n * 获取实例函数\n * @param key 函数名称\n * @returns\n */\n getFunction(key: string): Function | null {\n return ExpressionFunction.instance().getFunction(key);\n }\n\n /**\n * 注册实例函数(对内包装一层,区分名字,避免重名问题)\n * @param key 函数名称\n * @param fun 函数内容\n * @returns\n */\n registerFunction(key: string, fun: Function) {\n if (!key || !fun) {\n return;\n }\n ExpressionFunction.instance().registerFunction(key, fun);\n }\n\n /**\n * 注销实例函数\n * @param key 函数名称\n */\n unregisterFunction(key: string) {\n if (!key) {\n return;\n }\n ExpressionFunction.instance().unregisterFunction(key);\n }\n\n /**\n * 获取实例函数列表\n * @returns\n */\n getFunctionList() {\n return ExpressionFunction.instance().getFunctionNameList();\n }\n\n /** 设置运行时 spec */\n setRuntimeSpec(spec: any) {\n this._spec = spec;\n this._updateSpecInfo();\n }\n\n /**\n * 根据 indicator 组件 id 更新 indicator 数据\n * @since 1.11.7\n */\n updateIndicatorDataById(id: string, datum?: Datum) {\n const indicator = this._chart?.getComponentByUserId(id) as unknown as IIndicator;\n if (indicator) {\n indicator.updateDatum(datum);\n }\n }\n\n /**\n * 根据 indicator 组件索引更新 indicator 数据\n * @since 1.11.7\n */\n updateIndicatorDataByIndex(index: number = 0, datum?: Datum) {\n const indicators = this._chart?.getComponentsByType(ComponentTypeEnum.indicator) as unknown as IIndicator[];\n if (indicators && indicators[index]) {\n indicators[index].updateDatum(datum);\n }\n }\n\n /**\n * 地图缩放 API\n * @param [regionIndex=0] 根据索引顺序指定某个 region 区域的地图坐标系进行缩放\n * @param zoom 缩放比例\n * @param center 缩放中心\n * @since 1.11.10\n */\n geoZoomByIndex(regionIndex: number = 0, zoom: number, center?: { x: number; y: number }) {\n this._geoZoomByQuery({ regionIndex }, zoom, center);\n }\n\n /**\n * 地图缩放 API\n * @param [regionId=0] 根据 region id 指定某个 region 区域的地图坐标系进行缩放\n * @param zoom 缩放比例\n * @param center 缩放中心\n * @since 1.11.10\n */\n geoZoomById(regionId: string | number, zoom: number, center?: { x: number; y: number }) {\n this._geoZoomByQuery({ regionId }, zoom, center);\n }\n\n _geoZoomByQuery(query: MaybeArray<IRegionQuerier>, zoom: number, center?: { x: number; y: number }) {\n const region = this._chart?.getRegionsInQuerier(query)[0];\n const geoCoordinates = this._chart?.getComponentsByType(\n ComponentTypeEnum.geoCoordinate\n ) as unknown as IGeoCoordinate[];\n const coord = geoCoordinates?.find(coord => coord.getRegions()?.includes(region));\n if (coord) {\n coord.dispatchZoom(zoom, center);\n }\n }\n\n private _initChartPlugin() {\n const pluginList = Factory.getChartPlugins();\n if (pluginList.length > 0) {\n this._chartPlugin = new ChartPluginService(this);\n this._chartPlugin.load(pluginList.map(p => new p()));\n // 插件生命周期\n this._chartPluginApply('onInit', this._spec);\n }\n }\n\n private _chartPluginApply(funcName: keyof IChartPluginService, ...args: any[]) {\n if (!this._chartPlugin || !this._chartPlugin[funcName]) {\n return;\n }\n (this._chartPlugin[funcName] as (...args: any[]) => any).apply(this._chartPlugin, args);\n }\n\n protected _getMode() {\n return this._option.mode || RenderModeEnum['desktop-browser'];\n }\n\n protected _getChartOption(type: string): IChartOption {\n return {\n type,\n globalInstance: this,\n eventDispatcher: this._eventDispatcher!,\n dataSet: this._dataSet!,\n container: this._container,\n canvas: this._canvas,\n map: new Map(),\n mode: this._getMode(),\n modeParams: this._option.modeParams,\n getCompiler: () => this._compiler,\n viewBox: this._viewBox,\n animation: this._option.animation,\n getTheme: () => this._currentTheme ?? {},\n getSpecInfo: () => this._specInfo ?? {},\n\n layout: this._option.layout,\n onError: this._onError,\n disableTriggerEvent: this._option.disableTriggerEvent === true\n };\n }\n}\n\nexport const registerVChartCore = () => {\n // install region module\n Factory.registerRegion('region', Region);\n // install layout module\n Factory.registerLayout('base', Layout);\n // install essential marks\n registerGroupMark();\n // install essential vgrammar transform\n registerGesturePlugin();\n // install default interaction\n registerElementHighlight();\n registerElementSelect();\n registerDimensionHover();\n // install default theme\n registerTheme(darkTheme.name, darkTheme);\n};\n\nregisterVChartCore();\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data/transforms/dimension-data.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAqB,EAAE,EAAqB,EAAE,EAAE;IAC5E,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;QACd,OAAO,IAAI,CAAC;KACb;IACD,MAAM,WAAW,GAAG,IAAI;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE;QACP,OAAO,CAAC,CAAC,UAAU,CAAC;IACtB,CAAC,CAAC;SACD,IAAI,EAAE,CAAC;IACV,MAAM,eAAe,GAAG,EAAE,CAAC;IAC3B,OAAO;QACL,eAAe;QACf,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC;KAC/D,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,MAAM,CAAC,IAAa,EAAE,MAAgB,EAAE,eAAuB;IACtE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,eAAe,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;IAEnC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,IAAI,KAAK,CAAC,MAAM,EAAE;QAChB,OAAO,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACvC,OAAO,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,OAAO,CAAC,IAAa,EAAE,KAAa,EAAE,GAAgB;IAC7D,MAAM,MAAM,GAAG,EAAE,CAAC;IAElB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACf,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YAChB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACjB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACd;QACD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,EAAoC;IAC5E,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QAChD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAS,EAAE,MAAgB;IAC1D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;QAC7B,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC","file":"dimension-data.js","sourcesContent":["import type {
|
|
1
|
+
{"version":3,"sources":["../src/data/transforms/dimension-data.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAqB,EAAE,EAAqB,EAAE,EAAE;IAC5E,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;QACd,OAAO,IAAI,CAAC;KACb;IACD,MAAM,WAAW,GAAG,IAAI;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE;QACP,OAAO,CAAC,CAAC,UAAU,CAAC;IACtB,CAAC,CAAC;SACD,IAAI,EAAE,CAAC;IACV,MAAM,eAAe,GAAG,EAAE,CAAC;IAC3B,OAAO;QACL,eAAe;QACf,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC;KAC/D,CAAC;AACJ,CAAC,CAAC;AAEF,SAAS,MAAM,CAAC,IAAa,EAAE,MAAgB,EAAE,eAAuB;IACtE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,eAAe,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC;IAEnC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,IAAI,KAAK,CAAC,MAAM,EAAE;QAChB,OAAO,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACvC,OAAO,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;KACJ;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,OAAO,CAAC,IAAa,EAAE,KAAa,EAAE,GAAgB;IAC7D,MAAM,MAAM,GAAG,EAAE,CAAC;IAElB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACf,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YAChB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACjB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACd;QACD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,EAAoC;IAC5E,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QAChD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAS,EAAE,MAAgB;IAC1D,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;QACvB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE;QAC7B,OAAO,SAAS,CAAC;KAClB;IACD,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;AAC9C,CAAC","file":"dimension-data.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport type { Datum } from '../../typings/common';\n\nexport interface IDimensionTreeOpt {\n fields: string[];\n}\n\nexport const dimensionTree = (data: Array<DataView>, op: IDimensionTreeOpt) => {\n if (!op.fields) {\n return data;\n }\n const dataCollect = data\n .map(d => {\n return d.latestData;\n })\n .flat();\n const dimensionValues = {};\n return {\n dimensionValues,\n dimensionData: groups(dataCollect, op.fields, dimensionValues)\n };\n};\n\nfunction groups(data: Datum[], fields: string[], dimensionValues: object): any {\n if (fields.length === 0) {\n return data;\n }\n const first = fields[0];\n const _rest = fields.slice(1);\n dimensionValues[first] = new Set();\n\n const grouped = groupBy(data, first, dimensionValues[first]);\n if (_rest.length) {\n return mapValues(grouped, (value, key) => {\n return groups(value, _rest, dimensionValues);\n });\n }\n\n return grouped;\n}\n\nfunction groupBy(data: Datum[], field: string, set: Set<string>) {\n const groups = {};\n\n data.forEach(d => {\n const key = d[field];\n if (!groups[key]) {\n groups[key] = [];\n set.add(key);\n }\n groups[key].push(d);\n });\n return groups;\n}\n\nexport function mapValues(target: object, fn: (value: any, key: string) => any) {\n return Object.keys(target).reduce((result, key) => {\n result[key] = fn(target[key], key);\n return result;\n }, {});\n}\n\nexport function findDataInFields(data: any, fields: string[]): any {\n if (fields.length === 0) {\n return data;\n }\n const first = fields[0];\n const _rest = fields.slice(1);\n if (data[first] === undefined) {\n return undefined;\n }\n return findDataInFields(data[first], _rest);\n}\n\n/**\n *\n const data = [\n { type: \"circle\", color: \"red\", x: 10, y:100 },\n { type: \"circle\", color: \"blue\", x: 10, y:100 },\n { type: \"rect\", color: \"red\", x: 10, y:100 },\n { type: \"rect\", color: \"blue\", x: 10, y:100 },\n ]\n\n groups(data, [\"circle\", \"color\"])\n\n =====>\n {\n circle: {\n red:[{ type: \"circle\", color: \"red\", x: 10, y:100 }],\n blue:[{ type: \"circle\", color: \"blue\", x: 10, y:100 }]\n },\n rect:{\n red:[{ type: \"rect\", color: \"red\", x: 10, y:100 }],\n blue:[{ type: \"rect\", color: \"blue\", x: 10, y:100 }]\n }\n }\n */\n"]}
|
|
@@ -1,12 +1,24 @@
|
|
|
1
|
+
import { PREFIX } from "../../constant/base";
|
|
2
|
+
|
|
3
|
+
import { DEFAULT_DATA_INDEX, DEFAULT_DATA_KEY } from "../../constant/data";
|
|
4
|
+
|
|
5
|
+
import { isValid } from "@visactor/vutils";
|
|
6
|
+
|
|
1
7
|
export const objFlat = (data, op) => {
|
|
2
8
|
var _a;
|
|
3
9
|
const dataCollect = (null === (_a = data[0]) || void 0 === _a ? void 0 : _a.latestData) ? data[0].latestData : data || [], result = [];
|
|
10
|
+
let index = 0;
|
|
4
11
|
return dataCollect.forEach((datum => {
|
|
5
|
-
const
|
|
6
|
-
|
|
12
|
+
const dataKeyObj = {};
|
|
13
|
+
let dataKey;
|
|
14
|
+
for (const key in datum) key === op || key.startsWith(PREFIX) || (dataKeyObj[key] = datum[key],
|
|
15
|
+
dataKey = isValid(dataKey) ? `${dataKey}_${datum[key]}` : `${datum[key]}`);
|
|
7
16
|
const dataOp = datum[op];
|
|
8
|
-
null == dataOp || dataOp.forEach((d => {
|
|
9
|
-
result.push(Object.assign({},
|
|
17
|
+
null == dataOp || dataOp.forEach(((d, i) => {
|
|
18
|
+
result.push(Object.assign({}, dataKeyObj, d, {
|
|
19
|
+
[DEFAULT_DATA_INDEX]: index,
|
|
20
|
+
[DEFAULT_DATA_KEY]: `${dataKey}_${i}`
|
|
21
|
+
})), index++;
|
|
10
22
|
}));
|
|
11
23
|
})), result;
|
|
12
24
|
};
|