@visactor/vchart 2.1.0-alpha.18 → 2.1.0-alpha.19
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 +3 -3
- package/build/index.es.js +60472 -64304
- package/build/index.js +60474 -64306
- package/build/index.min.js +2 -2
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/animation/callback-disappear.d.ts +1 -1
- package/cjs/animation/callback-disappear.js +2 -2
- package/cjs/animation/callback-disappear.js.map +1 -1
- package/cjs/animation/config.js +34 -34
- package/cjs/animation/config.js.map +1 -1
- package/cjs/animation/index.js +1 -2
- package/cjs/chart/base/base-chart-transformer.d.ts +0 -3
- package/cjs/chart/base/base-chart-transformer.js +3 -23
- package/cjs/chart/base/base-chart-transformer.js.map +1 -1
- package/cjs/chart/base/base-chart.d.ts +9 -27
- package/cjs/chart/base/base-chart.js +28 -209
- package/cjs/chart/base/base-chart.js.map +1 -1
- package/cjs/chart/gauge/gauge-transformer.js +2 -3
- package/cjs/chart/gauge/gauge-transformer.js.map +1 -1
- package/cjs/chart/interface/chart.d.ts +0 -1
- package/cjs/chart/interface/chart.js.map +1 -1
- package/cjs/chart/pie/base/pie-transformer.js +2 -2
- package/cjs/chart/pie/base/pie-transformer.js.map +1 -1
- package/cjs/chart/polar/polar-transformer.js +1 -1
- package/cjs/chart/polar/polar-transformer.js.map +1 -1
- package/cjs/chart/polar/progress-like/progress-like-transformer.js +1 -1
- package/cjs/chart/polar/progress-like/progress-like-transformer.js.map +1 -1
- package/cjs/chart/progress/circular/circular-progress-transformer.js +1 -2
- package/cjs/chart/progress/circular/circular-progress-transformer.js.map +1 -1
- package/cjs/chart/progress/linear/linear-progress-transformer.js +1 -1
- package/cjs/chart/progress/linear/linear-progress-transformer.js.map +1 -1
- package/cjs/chart/radar/radar-transformer.js +2 -3
- package/cjs/chart/radar/radar-transformer.js.map +1 -1
- package/cjs/chart/range-area/range-area-transformer.js +2 -2
- package/cjs/chart/range-area/range-area-transformer.js.map +1 -1
- package/cjs/chart/rose/rose-transformer.js +1 -2
- package/cjs/chart/rose/rose-transformer.js.map +1 -1
- package/cjs/chart/util.d.ts +1 -4
- package/cjs/chart/util.js +4 -40
- package/cjs/chart/util.js.map +1 -1
- package/cjs/chart/waterfall/waterfall-transformer.js +1 -2
- package/cjs/chart/waterfall/waterfall-transformer.js.map +1 -1
- package/cjs/compile/compiler.d.ts +0 -2
- package/cjs/compile/compiler.js +48 -68
- package/cjs/compile/compiler.js.map +1 -1
- package/cjs/compile/data/compilable-data.d.ts +1 -1
- package/cjs/compile/data/compilable-data.js +1 -1
- package/cjs/compile/data/compilable-data.js.map +1 -1
- package/cjs/compile/grammar-item.d.ts +1 -1
- package/cjs/compile/grammar-item.js.map +1 -1
- package/cjs/compile/interface/compilable-item.d.ts +1 -1
- package/cjs/compile/interface/compilable-item.js.map +1 -1
- package/cjs/compile/interface/compiler.d.ts +1 -2
- package/cjs/compile/interface/compiler.js.map +1 -1
- package/cjs/compile/morph.js +6 -5
- package/cjs/compile/morph.js.map +1 -1
- package/cjs/component/axis/base-axis.d.ts +8 -3
- package/cjs/component/axis/base-axis.js +7 -27
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/band-axis.d.ts +7 -1
- package/cjs/component/axis/cartesian/band-axis.js +4 -4
- package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/linear-axis.d.ts +1 -1
- package/cjs/component/axis/cartesian/linear-axis.js +4 -4
- package/cjs/component/axis/cartesian/linear-axis.js.map +1 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.js +10 -7
- package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/cjs/component/axis/polar/band-axis.d.ts +0 -2
- package/cjs/component/axis/polar/band-axis.js +0 -3
- package/cjs/component/axis/polar/band-axis.js.map +1 -1
- package/cjs/component/axis/polar/linear-axis.js +0 -3
- package/cjs/component/axis/polar/linear-axis.js.map +1 -1
- package/cjs/component/base/base-component.d.ts +7 -7
- package/cjs/component/base/base-component.js +6 -41
- package/cjs/component/base/base-component.js.map +1 -1
- package/cjs/component/brush/brush.d.ts +7 -3
- package/cjs/component/brush/brush.js +16 -34
- package/cjs/component/brush/brush.js.map +1 -1
- package/cjs/component/crosshair/base.d.ts +8 -5
- package/cjs/component/crosshair/base.js +5 -33
- package/cjs/component/crosshair/base.js.map +1 -1
- package/cjs/component/crosshair/cartesian.js +3 -3
- package/cjs/component/crosshair/cartesian.js.map +1 -1
- package/cjs/component/custom-mark/custom-mark.d.ts +7 -4
- package/cjs/component/custom-mark/custom-mark.js +3 -27
- package/cjs/component/custom-mark/custom-mark.js.map +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.d.ts +7 -3
- package/cjs/component/data-zoom/data-filter-base-component.js +2 -15
- package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +0 -1
- package/cjs/component/data-zoom/data-zoom/data-zoom.js +1 -19
- package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +0 -1
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +1 -12
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
- package/cjs/component/geo/geo-coordinate.d.ts +7 -1
- package/cjs/component/indicator/indicator.d.ts +0 -1
- package/cjs/component/indicator/indicator.js +2 -11
- package/cjs/component/indicator/indicator.js.map +1 -1
- package/cjs/component/indicator/util.d.ts +3 -4
- package/cjs/component/indicator/util.js +1 -1
- package/cjs/component/indicator/util.js.map +1 -1
- package/cjs/component/label/base-label.d.ts +7 -1
- package/cjs/component/label/base-label.js +2 -6
- package/cjs/component/label/base-label.js.map +1 -1
- package/cjs/component/label/label.js +3 -3
- package/cjs/component/label/label.js.map +1 -1
- package/cjs/component/legend/base-legend.d.ts +7 -2
- package/cjs/component/legend/base-legend.js +3 -20
- package/cjs/component/legend/base-legend.js.map +1 -1
- package/cjs/component/legend/discrete/legend.d.ts +1 -1
- package/cjs/component/legend/discrete/legend.js +7 -7
- package/cjs/component/legend/discrete/legend.js.map +1 -1
- package/cjs/component/marker/base-marker.d.ts +7 -14
- package/cjs/component/marker/base-marker.js +12 -112
- package/cjs/component/marker/base-marker.js.map +1 -1
- package/cjs/component/marker/mark-area/cartesian-mark-area.js +3 -3
- package/cjs/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
- package/cjs/component/marker/mark-area/polar-mark-area.js +2 -2
- package/cjs/component/marker/mark-area/polar-mark-area.js.map +1 -1
- package/cjs/component/marker/mark-line/base-mark-line.js +4 -2
- package/cjs/component/marker/mark-line/base-mark-line.js.map +1 -1
- package/cjs/component/marker/mark-line/cartesian-mark-line.js +2 -2
- package/cjs/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
- package/cjs/component/marker/mark-line/polar-mark-line.js +2 -2
- package/cjs/component/marker/mark-line/polar-mark-line.js.map +1 -1
- package/cjs/component/marker/mark-point/base-mark-point.js +11 -26
- package/cjs/component/marker/mark-point/base-mark-point.js.map +1 -1
- package/cjs/component/marker/mark-point/cartesian-mark-point.js +2 -2
- package/cjs/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
- package/cjs/component/marker/mark-point/polar-mark-point.js +1 -1
- package/cjs/component/marker/mark-point/polar-mark-point.js.map +1 -1
- package/cjs/component/marker/utils.d.ts +4 -4
- package/cjs/component/marker/utils.js +23 -27
- package/cjs/component/marker/utils.js.map +1 -1
- package/cjs/component/player/player.d.ts +0 -1
- package/cjs/component/player/player.js +0 -10
- package/cjs/component/player/player.js.map +1 -1
- package/cjs/component/title/title.d.ts +7 -1
- package/cjs/component/title/title.js +2 -6
- package/cjs/component/title/title.js.map +1 -1
- package/cjs/component/tooltip/tooltip.d.ts +0 -1
- package/cjs/component/tooltip/tooltip.js +0 -8
- package/cjs/component/tooltip/tooltip.js.map +1 -1
- package/cjs/component/util.js +1 -2
- package/cjs/constant/correlation.js +2 -1
- package/cjs/constant/marker.js +1 -1
- package/cjs/constant/polar.js +1 -1
- package/cjs/constant/scatter.js +1 -1
- package/cjs/constant/scroll-bar.js +1 -2
- package/cjs/constant/sunburst.js +1 -1
- package/cjs/constant/waterfall.js +1 -1
- package/cjs/constant/word-cloud.js +1 -1
- package/cjs/core/expression-function.js +2 -1
- package/cjs/core/index.d.ts +1 -2
- package/cjs/core/index.js +4 -8
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/interface.js +1 -1
- package/cjs/core/util.js +1 -1
- package/cjs/core/vchart.d.ts +1 -5
- package/cjs/core/vchart.js +21 -38
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/data/transforms/box-plot.d.ts +1 -4
- package/cjs/data/transforms/box-plot.js +3 -3
- package/cjs/data/transforms/box-plot.js.map +1 -1
- package/cjs/data/transforms/correlation-center.d.ts +4 -11
- package/cjs/data/transforms/correlation-center.js +2 -3
- package/cjs/data/transforms/correlation-center.js.map +1 -1
- package/cjs/data/transforms/correlation.d.ts +15 -18
- package/cjs/data/transforms/correlation.js +17 -22
- package/cjs/data/transforms/correlation.js.map +1 -1
- package/cjs/data/transforms/funnel.d.ts +8 -10
- package/cjs/data/transforms/funnel.js +3 -4
- package/cjs/data/transforms/funnel.js.map +1 -1
- package/cjs/data/transforms/lookup.d.ts +3 -3
- package/cjs/data/transforms/lookup.js +7 -12
- package/cjs/data/transforms/lookup.js.map +1 -1
- package/cjs/data/transforms/map.d.ts +2 -8
- package/cjs/data/transforms/map.js +6 -9
- package/cjs/data/transforms/map.js.map +1 -1
- package/cjs/data/transforms/sankey.d.ts +4 -12
- package/cjs/data/transforms/sankey.js +13 -18
- package/cjs/data/transforms/sankey.js.map +1 -1
- package/cjs/data/transforms/stack-split.d.ts +1 -2
- package/cjs/data/transforms/stack-split.js +1 -1
- package/cjs/data/transforms/stack-split.js.map +1 -1
- package/cjs/data/transforms/treemap.d.ts +3 -5
- package/cjs/data/transforms/treemap.js +6 -7
- package/cjs/data/transforms/treemap.js.map +1 -1
- package/cjs/data/transforms/venn.d.ts +2 -4
- package/cjs/data/transforms/venn.js +4 -4
- package/cjs/data/transforms/venn.js.map +1 -1
- package/cjs/data/transforms/waterfall.d.ts +2 -4
- package/cjs/data/transforms/waterfall.js +7 -7
- package/cjs/data/transforms/waterfall.js.map +1 -1
- package/cjs/env/env.js +11 -11
- package/cjs/env/env.js.map +1 -1
- package/cjs/env/index.js +1 -1
- package/cjs/event/event.d.ts +0 -4
- package/cjs/event/event.js +7 -26
- package/cjs/event/event.js.map +1 -1
- package/cjs/interaction/interaction.js +8 -11
- package/cjs/interaction/interaction.js.map +1 -1
- package/cjs/interaction/triggers/element-active-by-legend.js +2 -3
- package/cjs/interaction/triggers/element-active-by-legend.js.map +1 -1
- package/cjs/interaction/triggers/element-active.js +3 -4
- package/cjs/interaction/triggers/element-active.js.map +1 -1
- package/cjs/interaction/triggers/element-highlight-by-group.js +2 -3
- package/cjs/interaction/triggers/element-highlight-by-group.js.map +1 -1
- package/cjs/interaction/triggers/element-highlight-by-legend.js +2 -2
- package/cjs/interaction/triggers/element-highlight-by-legend.js.map +1 -1
- package/cjs/interaction/triggers/element-highlight-by-name.js +2 -2
- package/cjs/interaction/triggers/element-highlight-by-name.js.map +1 -1
- package/cjs/interaction/triggers/element-highlight.js +2 -2
- package/cjs/interaction/triggers/element-highlight.js.map +1 -1
- package/cjs/interaction/triggers/element-select.js +3 -3
- package/cjs/interaction/triggers/element-select.js.map +1 -1
- package/cjs/mark/arc.js +4 -4
- package/cjs/mark/arc.js.map +1 -1
- package/cjs/mark/area.js +5 -4
- package/cjs/mark/area.js.map +1 -1
- package/cjs/mark/base/base-mark.d.ts +2 -12
- package/cjs/mark/base/base-mark.js +29 -98
- package/cjs/mark/base/base-mark.js.map +1 -1
- package/cjs/mark/component.d.ts +0 -9
- package/cjs/mark/component.js +3 -51
- package/cjs/mark/component.js.map +1 -1
- package/cjs/mark/glyph.js +1 -1
- package/cjs/mark/glyph.js.map +1 -1
- package/cjs/mark/group.js +6 -6
- package/cjs/mark/group.js.map +1 -1
- package/cjs/mark/interface/common.js.map +1 -1
- package/cjs/mark/interface/mark.d.ts +0 -2
- package/cjs/mark/interface/mark.js.map +1 -1
- package/cjs/mark/line.js +5 -4
- package/cjs/mark/line.js.map +1 -1
- package/cjs/mark/rect.js +3 -3
- package/cjs/mark/rect.js.map +1 -1
- package/cjs/mark/symbol.js +3 -3
- package/cjs/mark/symbol.js.map +1 -1
- package/cjs/mark/text.js +4 -4
- package/cjs/mark/text.js.map +1 -1
- package/cjs/mark/utils/glyph.js +2 -3
- package/cjs/mark/utils/glyph.js.map +1 -1
- package/cjs/model/base-model.d.ts +15 -3
- package/cjs/model/base-model.js.map +1 -1
- package/cjs/model/interface.d.ts +0 -13
- package/cjs/model/interface.js.map +1 -1
- package/cjs/plugin/components/axis-sync/tick-align-transform.js +2 -2
- package/cjs/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.d.ts +2 -2
- package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.js +2 -2
- package/cjs/plugin/components/tooltip-handler/canvas-tooltip-handler.js.map +1 -1
- package/cjs/plugin/other.js +5 -5
- package/cjs/plugin/other.js.map +1 -1
- package/cjs/region/region.d.ts +7 -1
- package/cjs/scale/color-ordinal-scale.d.ts +0 -1
- package/cjs/scale/color-ordinal-scale.js +0 -3
- package/cjs/scale/color-ordinal-scale.js.map +1 -1
- package/cjs/scale/global-scale.js +2 -9
- package/cjs/scale/global-scale.js.map +1 -1
- package/cjs/series/area/area.d.ts +0 -2
- package/cjs/series/area/area.js +0 -6
- package/cjs/series/area/area.js.map +1 -1
- package/cjs/series/bar/bar.d.ts +0 -3
- package/cjs/series/bar/bar.js +4 -30
- package/cjs/series/bar/bar.js.map +1 -1
- package/cjs/series/base/base-series.d.ts +7 -11
- package/cjs/series/base/base-series.js +23 -93
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/base/constant.d.ts +0 -3
- package/cjs/series/base/constant.js +1 -9
- package/cjs/series/base/constant.js.map +1 -1
- package/cjs/series/box-plot/box-plot.d.ts +0 -2
- package/cjs/series/box-plot/box-plot.js +4 -16
- package/cjs/series/box-plot/box-plot.js.map +1 -1
- package/cjs/series/correlation/correlation.js +11 -13
- package/cjs/series/correlation/correlation.js.map +1 -1
- package/cjs/series/dot/dot.d.ts +0 -12
- package/cjs/series/dot/dot.js +1 -16
- package/cjs/series/dot/dot.js.map +1 -1
- package/cjs/series/funnel/funnel.js +8 -5
- package/cjs/series/funnel/funnel.js.map +1 -1
- package/cjs/series/heatmap/heatmap.d.ts +0 -2
- package/cjs/series/heatmap/heatmap.js +0 -10
- package/cjs/series/heatmap/heatmap.js.map +1 -1
- package/cjs/series/line/line.d.ts +0 -2
- package/cjs/series/line/line.js +3 -9
- package/cjs/series/line/line.js.map +1 -1
- package/cjs/series/map/map.js +3 -3
- package/cjs/series/map/map.js.map +1 -1
- package/cjs/series/mixin/line-mixin.d.ts +0 -1
- package/cjs/series/mixin/line-mixin.js +1 -6
- package/cjs/series/mixin/line-mixin.js.map +1 -1
- package/cjs/series/pie/pie.d.ts +7 -3
- package/cjs/series/pie/pie.js +1 -16
- package/cjs/series/pie/pie.js.map +1 -1
- package/cjs/series/polar/progress-like/progress-like.d.ts +0 -2
- package/cjs/series/polar/progress-like/progress-like.js +1 -16
- package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
- package/cjs/series/polar/rose-like/rose-like.d.ts +0 -2
- package/cjs/series/polar/rose-like/rose-like.js +1 -15
- package/cjs/series/polar/rose-like/rose-like.js.map +1 -1
- package/cjs/series/progress/circular/circular.d.ts +0 -2
- package/cjs/series/progress/circular/circular.js +1 -10
- package/cjs/series/progress/circular/circular.js.map +1 -1
- package/cjs/series/progress/linear/linear.d.ts +0 -2
- package/cjs/series/progress/linear/linear.js +1 -19
- package/cjs/series/progress/linear/linear.js.map +1 -1
- package/cjs/series/sankey/sankey.js +57 -67
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/cjs/series/scatter/scatter.d.ts +0 -2
- package/cjs/series/scatter/scatter.js +1 -9
- package/cjs/series/scatter/scatter.js.map +1 -1
- package/cjs/series/treemap/treemap.js +20 -23
- package/cjs/series/treemap/treemap.js.map +1 -1
- package/cjs/series/venn/venn.js +2 -2
- package/cjs/series/venn/venn.js.map +1 -1
- package/cjs/series/waterfall/waterfall.d.ts +0 -2
- package/cjs/series/waterfall/waterfall.js +20 -36
- package/cjs/series/waterfall/waterfall.js.map +1 -1
- package/cjs/series/word-cloud/animation.js +0 -3
- package/cjs/series/word-cloud/animation.js.map +1 -1
- package/cjs/theme/builtin/common/series/word-cloud.js +6 -2
- package/cjs/theme/builtin/common/series/word-cloud.js.map +1 -1
- package/cjs/util/mark.js +3 -7
- package/cjs/util/mark.js.map +1 -1
- package/cjs/util/math.d.ts +1 -1
- package/cjs/util/math.js +2 -2
- package/cjs/util/math.js.map +1 -1
- package/cjs/util/text.js +2 -2
- package/cjs/util/text.js.map +1 -1
- package/esm/animation/callback-disappear.d.ts +1 -1
- package/esm/animation/callback-disappear.js +1 -1
- package/esm/animation/callback-disappear.js.map +1 -1
- package/esm/animation/config.js +1 -33
- package/esm/animation/config.js.map +1 -1
- package/esm/animation/index.js +1 -2
- package/esm/chart/base/base-chart-transformer.d.ts +0 -3
- package/esm/chart/base/base-chart-transformer.js +2 -24
- package/esm/chart/base/base-chart-transformer.js.map +1 -1
- package/esm/chart/base/base-chart.d.ts +9 -27
- package/esm/chart/base/base-chart.js +27 -202
- package/esm/chart/base/base-chart.js.map +1 -1
- package/esm/chart/gauge/gauge-transformer.js +2 -3
- package/esm/chart/gauge/gauge-transformer.js.map +1 -1
- package/esm/chart/interface/chart.d.ts +0 -1
- package/esm/chart/interface/chart.js.map +1 -1
- package/esm/chart/pie/base/pie-transformer.js +2 -2
- package/esm/chart/pie/base/pie-transformer.js.map +1 -1
- package/esm/chart/polar/polar-transformer.js +1 -1
- package/esm/chart/polar/polar-transformer.js.map +1 -1
- package/esm/chart/polar/progress-like/progress-like-transformer.js +1 -1
- package/esm/chart/polar/progress-like/progress-like-transformer.js.map +1 -1
- package/esm/chart/progress/circular/circular-progress-transformer.js +1 -2
- package/esm/chart/progress/circular/circular-progress-transformer.js.map +1 -1
- package/esm/chart/progress/linear/linear-progress-transformer.js +1 -1
- package/esm/chart/progress/linear/linear-progress-transformer.js.map +1 -1
- package/esm/chart/radar/radar-transformer.js +2 -3
- package/esm/chart/radar/radar-transformer.js.map +1 -1
- package/esm/chart/range-area/range-area-transformer.js +2 -2
- package/esm/chart/range-area/range-area-transformer.js.map +1 -1
- package/esm/chart/rose/rose-transformer.js +1 -2
- package/esm/chart/rose/rose-transformer.js.map +1 -1
- package/esm/chart/util.d.ts +1 -4
- package/esm/chart/util.js +1 -34
- package/esm/chart/util.js.map +1 -1
- package/esm/chart/waterfall/waterfall-transformer.js +1 -2
- package/esm/chart/waterfall/waterfall-transformer.js.map +1 -1
- package/esm/compile/compiler.d.ts +0 -2
- package/esm/compile/compiler.js +47 -69
- package/esm/compile/compiler.js.map +1 -1
- package/esm/compile/data/compilable-data.d.ts +1 -1
- package/esm/compile/data/compilable-data.js +1 -1
- package/esm/compile/data/compilable-data.js.map +1 -1
- package/esm/compile/grammar-item.d.ts +1 -1
- package/esm/compile/grammar-item.js.map +1 -1
- package/esm/compile/interface/compilable-item.d.ts +1 -1
- package/esm/compile/interface/compilable-item.js.map +1 -1
- package/esm/compile/interface/compiler.d.ts +1 -2
- package/esm/compile/interface/compiler.js.map +1 -1
- package/esm/compile/morph.js +3 -2
- package/esm/compile/morph.js.map +1 -1
- package/esm/component/axis/base-axis.d.ts +8 -3
- package/esm/component/axis/base-axis.js +6 -27
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/axis/cartesian/band-axis.d.ts +7 -1
- package/esm/component/axis/cartesian/band-axis.js +2 -4
- package/esm/component/axis/cartesian/band-axis.js.map +1 -1
- package/esm/component/axis/cartesian/linear-axis.d.ts +1 -1
- package/esm/component/axis/cartesian/linear-axis.js +1 -5
- package/esm/component/axis/cartesian/linear-axis.js.map +1 -1
- package/esm/component/axis/mixin/linear-axis-mixin.js +10 -7
- package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/esm/component/axis/polar/band-axis.d.ts +0 -2
- package/esm/component/axis/polar/band-axis.js +0 -3
- package/esm/component/axis/polar/band-axis.js.map +1 -1
- package/esm/component/axis/polar/linear-axis.js +0 -3
- package/esm/component/axis/polar/linear-axis.js.map +1 -1
- package/esm/component/base/base-component.d.ts +7 -7
- package/esm/component/base/base-component.js +5 -41
- package/esm/component/base/base-component.js.map +1 -1
- package/esm/component/brush/brush.d.ts +7 -3
- package/esm/component/brush/brush.js +11 -29
- package/esm/component/brush/brush.js.map +1 -1
- package/esm/component/crosshair/base.d.ts +8 -5
- package/esm/component/crosshair/base.js +3 -27
- package/esm/component/crosshair/base.js.map +1 -1
- package/esm/component/crosshair/cartesian.js +1 -3
- package/esm/component/crosshair/cartesian.js.map +1 -1
- package/esm/component/custom-mark/custom-mark.d.ts +7 -4
- package/esm/component/custom-mark/custom-mark.js +2 -27
- package/esm/component/custom-mark/custom-mark.js.map +1 -1
- package/esm/component/data-zoom/data-filter-base-component.d.ts +7 -3
- package/esm/component/data-zoom/data-filter-base-component.js +2 -14
- package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +0 -1
- package/esm/component/data-zoom/data-zoom/data-zoom.js +0 -20
- package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +0 -1
- package/esm/component/data-zoom/scroll-bar/scroll-bar.js +1 -12
- package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
- package/esm/component/geo/geo-coordinate.d.ts +7 -1
- package/esm/component/indicator/indicator.d.ts +0 -1
- package/esm/component/indicator/indicator.js +2 -11
- package/esm/component/indicator/indicator.js.map +1 -1
- package/esm/component/indicator/util.d.ts +3 -4
- package/esm/component/indicator/util.js +2 -2
- package/esm/component/indicator/util.js.map +1 -1
- package/esm/component/label/base-label.d.ts +7 -1
- package/esm/component/label/base-label.js +1 -5
- package/esm/component/label/base-label.js.map +1 -1
- package/esm/component/label/label.js +2 -2
- package/esm/component/label/label.js.map +1 -1
- package/esm/component/legend/base-legend.d.ts +7 -2
- package/esm/component/legend/base-legend.js +2 -20
- package/esm/component/legend/base-legend.js.map +1 -1
- package/esm/component/legend/discrete/legend.d.ts +1 -1
- package/esm/component/legend/discrete/legend.js +2 -2
- package/esm/component/legend/discrete/legend.js.map +1 -1
- package/esm/component/marker/base-marker.d.ts +7 -14
- package/esm/component/marker/base-marker.js +11 -113
- package/esm/component/marker/base-marker.js.map +1 -1
- package/esm/component/marker/mark-area/cartesian-mark-area.js +3 -3
- package/esm/component/marker/mark-area/cartesian-mark-area.js.map +1 -1
- package/esm/component/marker/mark-area/polar-mark-area.js +2 -2
- package/esm/component/marker/mark-area/polar-mark-area.js.map +1 -1
- package/esm/component/marker/mark-line/base-mark-line.js +4 -2
- package/esm/component/marker/mark-line/base-mark-line.js.map +1 -1
- package/esm/component/marker/mark-line/cartesian-mark-line.js +2 -2
- package/esm/component/marker/mark-line/cartesian-mark-line.js.map +1 -1
- package/esm/component/marker/mark-line/polar-mark-line.js +2 -2
- package/esm/component/marker/mark-line/polar-mark-line.js.map +1 -1
- package/esm/component/marker/mark-point/base-mark-point.js +11 -24
- package/esm/component/marker/mark-point/base-mark-point.js.map +1 -1
- package/esm/component/marker/mark-point/cartesian-mark-point.js +1 -1
- package/esm/component/marker/mark-point/cartesian-mark-point.js.map +1 -1
- package/esm/component/marker/mark-point/polar-mark-point.js +1 -1
- package/esm/component/marker/mark-point/polar-mark-point.js.map +1 -1
- package/esm/component/marker/utils.d.ts +4 -4
- package/esm/component/marker/utils.js +23 -27
- package/esm/component/marker/utils.js.map +1 -1
- package/esm/component/player/player.d.ts +0 -1
- package/esm/component/player/player.js +0 -10
- package/esm/component/player/player.js.map +1 -1
- package/esm/component/title/title.d.ts +7 -1
- package/esm/component/title/title.js +2 -6
- package/esm/component/title/title.js.map +1 -1
- package/esm/component/tooltip/tooltip.d.ts +0 -1
- package/esm/component/tooltip/tooltip.js +1 -9
- package/esm/component/tooltip/tooltip.js.map +1 -1
- package/esm/component/util.js +1 -2
- package/esm/constant/correlation.js +2 -1
- package/esm/constant/marker.js +1 -1
- package/esm/constant/polar.js +1 -1
- package/esm/constant/scatter.js +1 -1
- package/esm/constant/scroll-bar.js +1 -2
- package/esm/constant/sunburst.js +1 -1
- package/esm/constant/waterfall.js +1 -1
- package/esm/constant/word-cloud.js +1 -1
- package/esm/core/expression-function.js +2 -1
- package/esm/core/index.d.ts +1 -2
- package/esm/core/index.js +1 -3
- package/esm/core/index.js.map +1 -1
- package/esm/core/interface.js +1 -1
- package/esm/core/util.js +1 -1
- package/esm/core/vchart.d.ts +1 -5
- package/esm/core/vchart.js +21 -39
- package/esm/core/vchart.js.map +1 -1
- package/esm/data/transforms/box-plot.d.ts +1 -4
- package/esm/data/transforms/box-plot.js +4 -4
- package/esm/data/transforms/box-plot.js.map +1 -1
- package/esm/data/transforms/correlation-center.d.ts +4 -11
- package/esm/data/transforms/correlation-center.js +2 -4
- package/esm/data/transforms/correlation-center.js.map +1 -1
- package/esm/data/transforms/correlation.d.ts +15 -18
- package/esm/data/transforms/correlation.js +8 -13
- package/esm/data/transforms/correlation.js.map +1 -1
- package/esm/data/transforms/funnel.d.ts +8 -10
- package/esm/data/transforms/funnel.js +3 -5
- package/esm/data/transforms/funnel.js.map +1 -1
- package/esm/data/transforms/lookup.d.ts +3 -3
- package/esm/data/transforms/lookup.js +6 -12
- package/esm/data/transforms/lookup.js.map +1 -1
- package/esm/data/transforms/map.d.ts +2 -8
- package/esm/data/transforms/map.js +6 -11
- package/esm/data/transforms/map.js.map +1 -1
- package/esm/data/transforms/sankey.d.ts +4 -12
- package/esm/data/transforms/sankey.js +14 -19
- package/esm/data/transforms/sankey.js.map +1 -1
- package/esm/data/transforms/stack-split.d.ts +1 -2
- package/esm/data/transforms/stack-split.js +2 -2
- package/esm/data/transforms/stack-split.js.map +1 -1
- package/esm/data/transforms/treemap.d.ts +3 -5
- package/esm/data/transforms/treemap.js +5 -8
- package/esm/data/transforms/treemap.js.map +1 -1
- package/esm/data/transforms/venn.d.ts +2 -4
- package/esm/data/transforms/venn.js +3 -5
- package/esm/data/transforms/venn.js.map +1 -1
- package/esm/data/transforms/waterfall.d.ts +2 -4
- package/esm/data/transforms/waterfall.js +8 -7
- package/esm/data/transforms/waterfall.js.map +1 -1
- package/esm/env/env.js +2 -2
- package/esm/env/env.js.map +1 -1
- package/esm/env/index.js +1 -1
- package/esm/event/event.d.ts +0 -4
- package/esm/event/event.js +7 -26
- package/esm/event/event.js.map +1 -1
- package/esm/interaction/interaction.js +8 -10
- package/esm/interaction/interaction.js.map +1 -1
- package/esm/interaction/triggers/element-active-by-legend.js +1 -3
- package/esm/interaction/triggers/element-active-by-legend.js.map +1 -1
- package/esm/interaction/triggers/element-active.js +2 -4
- package/esm/interaction/triggers/element-active.js.map +1 -1
- package/esm/interaction/triggers/element-highlight-by-group.js +1 -4
- package/esm/interaction/triggers/element-highlight-by-group.js.map +1 -1
- package/esm/interaction/triggers/element-highlight-by-legend.js +1 -3
- package/esm/interaction/triggers/element-highlight-by-legend.js.map +1 -1
- package/esm/interaction/triggers/element-highlight-by-name.js +1 -3
- package/esm/interaction/triggers/element-highlight-by-name.js.map +1 -1
- package/esm/interaction/triggers/element-highlight.js +1 -3
- package/esm/interaction/triggers/element-highlight.js.map +1 -1
- package/esm/interaction/triggers/element-select.js +2 -4
- package/esm/interaction/triggers/element-select.js.map +1 -1
- package/esm/mark/arc.js +2 -4
- package/esm/mark/arc.js.map +1 -1
- package/esm/mark/area.js +2 -6
- package/esm/mark/area.js.map +1 -1
- package/esm/mark/base/base-mark.d.ts +2 -12
- package/esm/mark/base/base-mark.js +28 -99
- package/esm/mark/base/base-mark.js.map +1 -1
- package/esm/mark/component.d.ts +0 -9
- package/esm/mark/component.js +2 -51
- package/esm/mark/component.js.map +1 -1
- package/esm/mark/glyph.js +1 -1
- package/esm/mark/glyph.js.map +1 -1
- package/esm/mark/group.js +5 -6
- package/esm/mark/group.js.map +1 -1
- package/esm/mark/interface/common.js.map +1 -1
- package/esm/mark/interface/mark.d.ts +0 -2
- package/esm/mark/interface/mark.js.map +1 -1
- package/esm/mark/line.js +2 -6
- package/esm/mark/line.js.map +1 -1
- package/esm/mark/rect.js +2 -4
- package/esm/mark/rect.js.map +1 -1
- package/esm/mark/symbol.js +2 -4
- package/esm/mark/symbol.js.map +1 -1
- package/esm/mark/text.js +1 -5
- package/esm/mark/text.js.map +1 -1
- package/esm/mark/utils/glyph.js +1 -3
- package/esm/mark/utils/glyph.js.map +1 -1
- package/esm/model/base-model.d.ts +15 -3
- package/esm/model/base-model.js.map +1 -1
- package/esm/model/interface.d.ts +0 -13
- package/esm/model/interface.js.map +1 -1
- package/esm/plugin/components/axis-sync/tick-align-transform.js +1 -1
- package/esm/plugin/components/axis-sync/tick-align-transform.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.d.ts +2 -2
- package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.js +1 -1
- package/esm/plugin/components/tooltip-handler/canvas-tooltip-handler.js.map +1 -1
- package/esm/plugin/other.js +2 -2
- package/esm/plugin/other.js.map +1 -1
- package/esm/region/region.d.ts +7 -1
- package/esm/scale/color-ordinal-scale.d.ts +0 -1
- package/esm/scale/color-ordinal-scale.js +0 -3
- package/esm/scale/color-ordinal-scale.js.map +1 -1
- package/esm/scale/global-scale.js +1 -9
- package/esm/scale/global-scale.js.map +1 -1
- package/esm/series/area/area.d.ts +0 -2
- package/esm/series/area/area.js +1 -7
- package/esm/series/area/area.js.map +1 -1
- package/esm/series/bar/bar.d.ts +0 -3
- package/esm/series/bar/bar.js +4 -30
- package/esm/series/bar/bar.js.map +1 -1
- package/esm/series/base/base-series.d.ts +7 -11
- package/esm/series/base/base-series.js +21 -89
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/base/constant.d.ts +0 -3
- package/esm/series/base/constant.js +0 -10
- package/esm/series/base/constant.js.map +1 -1
- package/esm/series/box-plot/box-plot.d.ts +0 -2
- package/esm/series/box-plot/box-plot.js +4 -15
- package/esm/series/box-plot/box-plot.js.map +1 -1
- package/esm/series/correlation/correlation.js +11 -13
- package/esm/series/correlation/correlation.js.map +1 -1
- package/esm/series/dot/dot.d.ts +0 -12
- package/esm/series/dot/dot.js +0 -17
- package/esm/series/dot/dot.js.map +1 -1
- package/esm/series/funnel/funnel.js +8 -5
- package/esm/series/funnel/funnel.js.map +1 -1
- package/esm/series/heatmap/heatmap.d.ts +0 -2
- package/esm/series/heatmap/heatmap.js +0 -10
- package/esm/series/heatmap/heatmap.js.map +1 -1
- package/esm/series/line/line.d.ts +0 -2
- package/esm/series/line/line.js +2 -10
- package/esm/series/line/line.js.map +1 -1
- package/esm/series/map/map.js +3 -3
- package/esm/series/map/map.js.map +1 -1
- package/esm/series/mixin/line-mixin.d.ts +0 -1
- package/esm/series/mixin/line-mixin.js +0 -5
- package/esm/series/mixin/line-mixin.js.map +1 -1
- package/esm/series/pie/pie.d.ts +7 -3
- package/esm/series/pie/pie.js +0 -17
- package/esm/series/pie/pie.js.map +1 -1
- package/esm/series/polar/progress-like/progress-like.d.ts +0 -2
- package/esm/series/polar/progress-like/progress-like.js +0 -17
- package/esm/series/polar/progress-like/progress-like.js.map +1 -1
- package/esm/series/polar/rose-like/rose-like.d.ts +0 -2
- package/esm/series/polar/rose-like/rose-like.js +0 -16
- package/esm/series/polar/rose-like/rose-like.js.map +1 -1
- package/esm/series/progress/circular/circular.d.ts +0 -2
- package/esm/series/progress/circular/circular.js +0 -11
- package/esm/series/progress/circular/circular.js.map +1 -1
- package/esm/series/progress/linear/linear.d.ts +0 -2
- package/esm/series/progress/linear/linear.js +0 -20
- package/esm/series/progress/linear/linear.js.map +1 -1
- package/esm/series/sankey/sankey.js +54 -60
- package/esm/series/sankey/sankey.js.map +1 -1
- package/esm/series/scatter/scatter.d.ts +0 -2
- package/esm/series/scatter/scatter.js +0 -10
- package/esm/series/scatter/scatter.js.map +1 -1
- package/esm/series/treemap/treemap.js +20 -23
- package/esm/series/treemap/treemap.js.map +1 -1
- package/esm/series/venn/venn.js +2 -2
- package/esm/series/venn/venn.js.map +1 -1
- package/esm/series/waterfall/waterfall.d.ts +0 -2
- package/esm/series/waterfall/waterfall.js +20 -36
- package/esm/series/waterfall/waterfall.js.map +1 -1
- package/esm/series/word-cloud/animation.js +0 -3
- package/esm/series/word-cloud/animation.js.map +1 -1
- package/esm/theme/builtin/common/series/word-cloud.js +6 -2
- package/esm/theme/builtin/common/series/word-cloud.js.map +1 -1
- package/esm/util/mark.js +2 -8
- package/esm/util/mark.js.map +1 -1
- package/esm/util/math.d.ts +1 -1
- package/esm/util/math.js +1 -1
- package/esm/util/math.js.map +1 -1
- package/esm/util/text.js +1 -1
- package/esm/util/text.js.map +1 -1
- package/package.json +8 -11
- package/cjs/compile/stage-app.d.ts +0 -17
- package/cjs/compile/stage-app.js +0 -82
- package/cjs/compile/stage-app.js.map +0 -1
- package/cjs/component/base/release-vrender-component.d.ts +0 -10
- package/cjs/component/base/release-vrender-component.js +0 -37
- package/cjs/component/base/release-vrender-component.js.map +0 -1
- package/cjs/data/data-view-utils.d.ts +0 -5
- package/cjs/data/data-view-utils.js +0 -58
- package/cjs/data/data-view-utils.js.map +0 -1
- package/cjs/util/graphic-state.d.ts +0 -4
- package/cjs/util/graphic-state.js +0 -40
- package/cjs/util/graphic-state.js.map +0 -1
- package/cjs/vchart-line.d.ts +0 -4
- package/cjs/vchart-line.js +0 -35
- package/cjs/vchart-line.js.map +0 -1
- package/esm/compile/stage-app.d.ts +0 -17
- package/esm/compile/stage-app.js +0 -77
- package/esm/compile/stage-app.js.map +0 -1
- package/esm/component/base/release-vrender-component.d.ts +0 -10
- package/esm/component/base/release-vrender-component.js +0 -24
- package/esm/component/base/release-vrender-component.js.map +0 -1
- package/esm/data/data-view-utils.d.ts +0 -5
- package/esm/data/data-view-utils.js +0 -46
- package/esm/data/data-view-utils.js.map +0 -1
- package/esm/util/graphic-state.d.ts +0 -4
- package/esm/util/graphic-state.js +0 -30
- package/esm/util/graphic-state.js.map +0 -1
- package/esm/vchart-line.d.ts +0 -4
- package/esm/vchart-line.js +0 -28
- package/esm/vchart-line.js.map +0 -1
package/cjs/compile/morph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/compile/morph.ts"],"names":[],"mappings":"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","file":"morph.js","sourcesContent":["import { morphPath, multiToOneMorph, oneToMultiMorph } from '@visactor/vrender-animate/custom/morphing';\nimport { isNil, isNumber, isValid, isValidNumber } from '@visactor/vutils';\nimport type { IMark, IMarkGraphic } from '../mark/interface';\nimport type { IMorphConfig } from '../animation/spec';\nimport type { Datum } from '../typings';\n\n/** Morph data for animation */\ninterface MorphData {\n prev: Datum[];\n next: Datum[];\n}\n\n/** Elements to morph */\ninterface MorphElements {\n prev: IMarkGraphic[];\n next: IMarkGraphic[];\n}\n\n/** Type to allow either a static value or a function that returns a value */\ntype MorphFunctionValueType<T> = T | ((params: any, morphData: MorphData, morphElements: MorphElements) => T);\n\n/**\n * Apply a function value or return the static value\n */\nconst invokeFunctionType = <T>(\n value: MorphFunctionValueType<T>,\n params: any,\n morphData: MorphData,\n morphElements: MorphElements\n): T => {\n if (typeof value === 'function') {\n return (value as Function)(params, morphData, morphElements) as T;\n }\n return value;\n};\n\n/**\n * Execute the morphing animation between previous and next elements\n */\nconst doMorph = (\n prev: IMarkGraphic[],\n next: IMarkGraphic[],\n config: IMorphConfig,\n onEnd: () => void,\n parameters: any\n) => {\n const morphData: MorphData = {\n prev: prev.map(element => element.context?.data?.[0]),\n next: next.map(element => element.context?.data?.[0])\n };\n\n const morphElements: MorphElements = {\n prev: prev.slice(),\n next: next.slice()\n };\n\n const animation = config.animation ?? {};\n const easing = animation.easing;\n const delay = invokeFunctionType(animation.delay as any, parameters, morphData, morphElements);\n const duration = invokeFunctionType(animation.duration as any, parameters, morphData, morphElements);\n const oneByOne = invokeFunctionType(animation.oneByOne as any, parameters, morphData, morphElements);\n const splitPath = invokeFunctionType(animation.splitPath as any, parameters, morphData, morphElements);\n\n const individualDelay =\n isValidNumber(oneByOne) && (oneByOne as number) > 0\n ? (index: number) => {\n if (isNumber(oneByOne)) {\n return index * (oneByOne as number);\n } else if (oneByOne === true) {\n return index * duration;\n }\n return 0;\n }\n : undefined;\n\n // if no previous item or just one, still execute morph animation\n if ((prev.length === 1 || prev.length === 0) && next.length === 1) {\n morphPath(prev[0], next[0], { delay, duration, easing, onEnd });\n } else if (prev.length === 1 && next.length > 1) {\n oneToMultiMorph(prev[0], next, { delay, duration, easing, onEnd, individualDelay, splitPath });\n } else if (prev.length > 1 && next.length === 1) {\n multiToOneMorph(prev, next[0], { delay, duration, easing, onEnd, individualDelay, splitPath });\n }\n};\n\n/**\n * Divide elements into specified number of groups\n */\nconst divideElements = (elements: IMarkGraphic[], count: number) => {\n const divideLength = Math.floor(elements.length / count);\n return new Array(count).fill(0).map((_, index) => {\n return elements.slice(divideLength * index, index === count - 1 ? elements.length : divideLength * (index + 1));\n });\n};\n\n/**\n * Add morphKey to each mark's graphics based on mark's morphConfig\n */\nconst appendMorphKeyToGraphics = (mark: IMark) => {\n const config = mark.getMarkConfig();\n\n if (isValid(config.morphElementKey)) {\n const graphics = mark.getGraphics();\n graphics.forEach(graphic => {\n const data = graphic.context?.data?.[0];\n if (data) {\n (graphic.context as any).morphKey = data[config.morphElementKey];\n }\n });\n }\n};\n\n/**\n * Execute morphing animation between two sets of marks\n */\nexport const morph = (prevMarks: IMark[], nextMarks: IMark[], morphConfig: IMorphConfig = {}) => {\n // Get all graphics from previous and next marks\n const prevGraphics: IMarkGraphic[] = [];\n const nextGraphics: IMarkGraphic[] = [];\n\n // Get graphics and append morph keys\n prevMarks.forEach(mark => {\n appendMorphKeyToGraphics(mark);\n prevGraphics.push(...mark.getGraphics());\n });\n\n nextMarks.forEach(mark => {\n appendMorphKeyToGraphics(mark);\n nextGraphics.push(...mark.getGraphics());\n });\n\n // Group graphics by morphKey if available\n const getKey = (graphic: IMarkGraphic) => (graphic.context as any)?.morphKey ?? graphic.context?.key;\n\n // Group graphics by their keys\n const prevByKey = new Map<string, IMarkGraphic[]>();\n const nextByKey = new Map<string, IMarkGraphic[]>();\n\n prevGraphics.forEach(graphic => {\n const key = getKey(graphic);\n if (key) {\n if (!prevByKey.has(key)) {\n prevByKey.set(key, []);\n }\n prevByKey.get(key).push(graphic);\n }\n });\n\n nextGraphics.forEach(graphic => {\n const key = getKey(graphic);\n if (key) {\n if (!nextByKey.has(key)) {\n nextByKey.set(key, []);\n }\n nextByKey.get(key).push(graphic);\n }\n });\n\n // TODO 这里逻辑有问题,无法实现一对多和多对一的morphing效果。所以如果无法执行一对一动画的话,直接不走morphing了\n if (!(prevByKey.size === nextByKey.size && Array.from(prevByKey.keys()).every(k => nextByKey.has(k)))) {\n return false;\n }\n\n // Find matching keys for update animation\n const updateKeys = [...new Set([...prevByKey.keys()].filter(key => nextByKey.has(key)))];\n\n // Find enter keys (in next but not in prev)\n const enterKeys = [...nextByKey.keys()].filter(key => !prevByKey.has(key));\n\n // Track morph operations to know when all are complete\n let morphCount = 0;\n const onMorphEnd = () => {\n morphCount -= 1;\n if (morphCount === 0) {\n // Enable animations for next marks after all morphs complete\n nextMarks.forEach(mark => {\n // If mark has any animation states that were disabled, re-enable them\n // This is placeholder logic - actual implementation depends on animation system\n });\n }\n };\n\n // Handle enter animations\n enterKeys.forEach(key => {\n const nextElements = nextByKey.get(key);\n doMorph([], nextElements, morphConfig, onMorphEnd, {});\n morphCount += 1;\n });\n\n // Handle update animations\n updateKeys.forEach(key => {\n const prevElements = prevByKey.get(key);\n const nextElements = nextByKey.get(key);\n\n // Handle different count scenarios\n const divideCount = Math.min(prevElements.length, nextElements.length);\n if (divideCount > 0) {\n const prevDivide = divideElements(prevElements, divideCount);\n const nextDivide = divideElements(nextElements, divideCount);\n\n for (let i = 0; i < divideCount; i++) {\n doMorph(prevDivide[i], nextDivide[i], morphConfig, onMorphEnd, {});\n morphCount += 1;\n }\n }\n });\n\n // Handle exit animations if needed (not in original sample but might be needed)\n // This would be similar to enter but with empty next elements\n\n // If no morphs were started, call onMorphEnd to ensure animations are re-enabled\n if (morphCount === 0) {\n onMorphEnd();\n }\n return true;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/compile/morph.ts"],"names":[],"mappings":"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","file":"morph.js","sourcesContent":["import { morphPath, multiToOneMorph, oneToMultiMorph } from '@visactor/vrender-animate';\nimport { isNil, isNumber, isValid, isValidNumber } from '@visactor/vutils';\nimport type { IMark, IMarkGraphic } from '../mark/interface';\nimport type { IMorphConfig } from '../animation/spec';\nimport type { Datum } from '../typings';\n\n/** Morph data for animation */\ninterface MorphData {\n prev: Datum[];\n next: Datum[];\n}\n\n/** Elements to morph */\ninterface MorphElements {\n prev: IMarkGraphic[];\n next: IMarkGraphic[];\n}\n\n/** Type to allow either a static value or a function that returns a value */\ntype MorphFunctionValueType<T> = T | ((params: any, morphData: MorphData, morphElements: MorphElements) => T);\n\n/**\n * Apply a function value or return the static value\n */\nconst invokeFunctionType = <T>(\n value: MorphFunctionValueType<T>,\n params: any,\n morphData: MorphData,\n morphElements: MorphElements\n): T => {\n if (typeof value === 'function') {\n return (value as Function)(params, morphData, morphElements) as T;\n }\n return value;\n};\n\n/**\n * Execute the morphing animation between previous and next elements\n */\nconst doMorph = (\n prev: IMarkGraphic[],\n next: IMarkGraphic[],\n config: IMorphConfig,\n onEnd: () => void,\n parameters: any\n) => {\n const morphData: MorphData = {\n prev: prev.map(element => element.context?.data?.[0]),\n next: next.map(element => element.context?.data?.[0])\n };\n\n const morphElements: MorphElements = {\n prev: prev.slice(),\n next: next.slice()\n };\n\n const animation = config.animation ?? {};\n const easing = animation.easing;\n const delay = invokeFunctionType(animation.delay as any, parameters, morphData, morphElements);\n const duration = invokeFunctionType(animation.duration as any, parameters, morphData, morphElements);\n const oneByOne = invokeFunctionType(animation.oneByOne as any, parameters, morphData, morphElements);\n const splitPath = invokeFunctionType(animation.splitPath as any, parameters, morphData, morphElements);\n\n const individualDelay =\n isValidNumber(oneByOne) && (oneByOne as number) > 0\n ? (index: number) => {\n if (isNumber(oneByOne)) {\n return index * (oneByOne as number);\n } else if (oneByOne === true) {\n return index * duration;\n }\n return 0;\n }\n : undefined;\n\n // if no previous item or just one, still execute morph animation\n if ((prev.length === 1 || prev.length === 0) && next.length === 1) {\n morphPath(prev[0], next[0], { delay, duration, easing, onEnd });\n } else if (prev.length === 1 && next.length > 1) {\n oneToMultiMorph(prev[0], next, { delay, duration, easing, onEnd, individualDelay, splitPath });\n } else if (prev.length > 1 && next.length === 1) {\n multiToOneMorph(prev, next[0], { delay, duration, easing, onEnd, individualDelay, splitPath });\n }\n};\n\n/**\n * Divide elements into specified number of groups\n */\nconst divideElements = (elements: IMarkGraphic[], count: number) => {\n const divideLength = Math.floor(elements.length / count);\n return new Array(count).fill(0).map((_, index) => {\n return elements.slice(divideLength * index, index === count - 1 ? elements.length : divideLength * (index + 1));\n });\n};\n\n/**\n * Add morphKey to each mark's graphics based on mark's morphConfig\n */\nconst appendMorphKeyToGraphics = (mark: IMark) => {\n const config = mark.getMarkConfig();\n\n if (isValid(config.morphElementKey)) {\n const graphics = mark.getGraphics();\n graphics.forEach(graphic => {\n const data = graphic.context?.data?.[0];\n if (data) {\n (graphic.context as any).morphKey = data[config.morphElementKey];\n }\n });\n }\n};\n\n/**\n * Execute morphing animation between two sets of marks\n */\nexport const morph = (prevMarks: IMark[], nextMarks: IMark[], morphConfig: IMorphConfig = {}) => {\n // Get all graphics from previous and next marks\n const prevGraphics: IMarkGraphic[] = [];\n const nextGraphics: IMarkGraphic[] = [];\n\n // Get graphics and append morph keys\n prevMarks.forEach(mark => {\n appendMorphKeyToGraphics(mark);\n prevGraphics.push(...mark.getGraphics());\n });\n\n nextMarks.forEach(mark => {\n appendMorphKeyToGraphics(mark);\n nextGraphics.push(...mark.getGraphics());\n });\n\n // Group graphics by morphKey if available\n const getKey = (graphic: IMarkGraphic) => (graphic.context as any)?.morphKey ?? graphic.context?.key;\n\n // Group graphics by their keys\n const prevByKey = new Map<string, IMarkGraphic[]>();\n const nextByKey = new Map<string, IMarkGraphic[]>();\n\n prevGraphics.forEach(graphic => {\n const key = getKey(graphic);\n if (key) {\n if (!prevByKey.has(key)) {\n prevByKey.set(key, []);\n }\n prevByKey.get(key).push(graphic);\n }\n });\n\n nextGraphics.forEach(graphic => {\n const key = getKey(graphic);\n if (key) {\n if (!nextByKey.has(key)) {\n nextByKey.set(key, []);\n }\n nextByKey.get(key).push(graphic);\n }\n });\n\n // TODO 这里逻辑有问题,无法实现一对多和多对一的morphing效果。所以如果无法执行一对一动画的话,直接不走morphing了\n if (!(prevByKey.size === nextByKey.size && Array.from(prevByKey.keys()).every(k => nextByKey.has(k)))) {\n return false;\n }\n\n // Find matching keys for update animation\n const updateKeys = [...new Set([...prevByKey.keys()].filter(key => nextByKey.has(key)))];\n\n // Find enter keys (in next but not in prev)\n const enterKeys = [...nextByKey.keys()].filter(key => !prevByKey.has(key));\n\n // Track morph operations to know when all are complete\n let morphCount = 0;\n const onMorphEnd = () => {\n morphCount -= 1;\n if (morphCount === 0) {\n // Enable animations for next marks after all morphs complete\n nextMarks.forEach(mark => {\n // If mark has any animation states that were disabled, re-enable them\n // This is placeholder logic - actual implementation depends on animation system\n });\n }\n };\n\n // Handle enter animations\n enterKeys.forEach(key => {\n const nextElements = nextByKey.get(key);\n doMorph([], nextElements, morphConfig, onMorphEnd, {});\n morphCount += 1;\n });\n\n // Handle update animations\n updateKeys.forEach(key => {\n const prevElements = prevByKey.get(key);\n const nextElements = nextByKey.get(key);\n\n // Handle different count scenarios\n const divideCount = Math.min(prevElements.length, nextElements.length);\n if (divideCount > 0) {\n const prevDivide = divideElements(prevElements, divideCount);\n const nextDivide = divideElements(nextElements, divideCount);\n\n for (let i = 0; i < divideCount; i++) {\n doMorph(prevDivide[i], nextDivide[i], morphConfig, onMorphEnd, {});\n morphCount += 1;\n }\n }\n });\n\n // Handle exit animations if needed (not in original sample but might be needed)\n // This would be similar to enter but with empty next elements\n\n // If no morphs were started, call onMorphEnd to ensure animations are re-enabled\n if (morphCount === 0) {\n onMorphEnd();\n }\n return true;\n};\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IGroup } from '@visactor/vrender-core';
|
|
2
|
-
import type { ITickDataOpt } from '@visactor/vrender-components
|
|
2
|
+
import type { ITickDataOpt } from '@visactor/vrender-components';
|
|
3
3
|
import type { IBaseScale } from '@visactor/vscale';
|
|
4
4
|
import type { IGraphic } from '@visactor/vrender-core';
|
|
5
5
|
import type { IOrientType, IPolarOrientType, StringOrNumber, CoordinateType } from '../../typings';
|
|
@@ -82,8 +82,13 @@ export declare abstract class AxisComponent<T extends ICommonAxisSpec & Record<s
|
|
|
82
82
|
protected computeData(updateType?: 'domain' | 'range' | 'force'): void;
|
|
83
83
|
protected _updateTickDataMarks(m: ICompilableMark): void;
|
|
84
84
|
protected initScales(): void;
|
|
85
|
-
_compareSpec(spec: T, prevSpec: T):
|
|
86
|
-
|
|
85
|
+
_compareSpec(spec: T, prevSpec: T): {
|
|
86
|
+
change: boolean;
|
|
87
|
+
reMake: boolean;
|
|
88
|
+
reRender: boolean;
|
|
89
|
+
reSize: boolean;
|
|
90
|
+
reCompile: boolean;
|
|
91
|
+
};
|
|
87
92
|
protected _getAxisAttributes(): any;
|
|
88
93
|
protected _getGridAttributes(): {
|
|
89
94
|
alternateColor: any;
|
|
@@ -14,19 +14,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
14
14
|
value: !0
|
|
15
15
|
}), exports.registerAxis = exports.AxisComponent = void 0;
|
|
16
16
|
|
|
17
|
-
const vscale_1 = require("@visactor/vscale"), base_component_1 = require("../base/base-component"), data_1 = require("../../compile/data"), interface_1 = require("./interface"), interface_2 = require("../interface"), model_1 = require("../../util/model"), vutils_extension_1 = require("@visactor/vutils-extension"), event_1 = require("../../constant/event"), layout_1 = require("../../constant/layout"), utils_1 = require("../../animation/utils"), vutils_1 = require("@visactor/vutils"), util_1 = require("./util"), style_1 = require("../../util/style"), vdataset_1 = require("@visactor/vdataset"), component_1 = require("../../mark/component"), factory_1 = require("../../core/factory"),
|
|
18
|
-
grid: !0,
|
|
19
|
-
subGrid: !0,
|
|
20
|
-
tick: !0,
|
|
21
|
-
subTick: !0,
|
|
22
|
-
label: !0,
|
|
23
|
-
domainLine: !0,
|
|
24
|
-
title: !0,
|
|
25
|
-
maxWidth: !0,
|
|
26
|
-
minWidth: !0,
|
|
27
|
-
maxHeight: !0,
|
|
28
|
-
minHeight: !0
|
|
29
|
-
};
|
|
17
|
+
const vscale_1 = require("@visactor/vscale"), base_component_1 = require("../base/base-component"), data_1 = require("../../compile/data"), interface_1 = require("./interface"), interface_2 = require("../interface"), model_1 = require("../../util/model"), vutils_extension_1 = require("@visactor/vutils-extension"), event_1 = require("../../constant/event"), layout_1 = require("../../constant/layout"), utils_1 = require("../../animation/utils"), vutils_1 = require("@visactor/vutils"), util_1 = require("./util"), style_1 = require("../../util/style"), vdataset_1 = require("@visactor/vdataset"), component_1 = require("../../mark/component"), factory_1 = require("../../core/factory"), vrender_components_1 = require("@visactor/vrender-components"), scale_1 = require("../../data/parser/scale"), register_1 = require("../../data/register"), util_2 = require("../util"), transform_1 = require("../../util/spec/transform");
|
|
30
18
|
|
|
31
19
|
class AxisComponent extends base_component_1.BaseComponent {
|
|
32
20
|
getOrient() {
|
|
@@ -276,20 +264,12 @@ class AxisComponent extends base_component_1.BaseComponent {
|
|
|
276
264
|
}
|
|
277
265
|
}
|
|
278
266
|
_compareSpec(spec, prevSpec) {
|
|
279
|
-
var _a, _b;
|
|
280
267
|
const result = super._compareSpec(spec, prevSpec);
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
layout: !0,
|
|
287
|
-
render: !0
|
|
288
|
-
})), result) : (result.reMake = !0, result);
|
|
289
|
-
}
|
|
290
|
-
_isComponentOnlySpecChange(spec, prevSpec) {
|
|
291
|
-
return Object.keys(Object.assign(Object.assign({}, prevSpec), spec)).every((key => (0,
|
|
292
|
-
vutils_1.isEqual)(null == prevSpec ? void 0 : prevSpec[key], null == spec ? void 0 : spec[key]) || AXIS_COMPONENT_ONLY_CHANGE_KEYS[key]));
|
|
268
|
+
return result.reMake ? result : (result.reRender = !0, (null == prevSpec ? void 0 : prevSpec.type) !== (null == spec ? void 0 : spec.type) || (null == prevSpec ? void 0 : prevSpec.visible) !== (null == spec ? void 0 : spec.visible) ? (result.reMake = !0,
|
|
269
|
+
result) : (result.reMake = [ "grid", "subGrid", "tick", "subTick", "label", "domainLine", "title" ].some((k => {
|
|
270
|
+
var _a, _b;
|
|
271
|
+
return (null === (_a = null == prevSpec ? void 0 : prevSpec[k]) || void 0 === _a ? void 0 : _a.visible) !== (null === (_b = null == spec ? void 0 : spec[k]) || void 0 === _b ? void 0 : _b.visible);
|
|
272
|
+
})), result));
|
|
293
273
|
}
|
|
294
274
|
_getAxisAttributes() {
|
|
295
275
|
const spec = this._spec, axisAttrs = {
|
|
@@ -433,7 +413,7 @@ class AxisComponent extends base_component_1.BaseComponent {
|
|
|
433
413
|
}
|
|
434
414
|
getDatum(childGraphic) {
|
|
435
415
|
var _a;
|
|
436
|
-
return childGraphic && childGraphic.name ===
|
|
416
|
+
return childGraphic && childGraphic.name === vrender_components_1.AXIS_ELEMENT_NAME.label ? childGraphic.data : this._axisMark ? null === (_a = this._axisMark.getComponent()) || void 0 === _a ? void 0 : _a.attribute.items : void 0;
|
|
437
417
|
}
|
|
438
418
|
scaleRangeFactor(_, slience, clear) {
|
|
439
419
|
return this._onTickDataChange(this.getTickData()), this.getScale().rangeFactor(_, slience, clear);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/axis/base-axis.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAKA,6CAAgD;AAWhD,2DAAuD;AACvD,6CAAoD;AACpD,2CAA+F;AAC/F,4CAAwE;AACxE,4CAAyD;AAEzD,iEAAuD;AAEvD,gDAAkD;AAClD,kDAAqD;AACrD,iDAAwD;AAExD,6CAW0B;AAC1B,iCAAqE;AACrE,4CAAyG;AAGzG,iDAA8C;AAE9C,oDAA6D;AAC7D,gDAA6C;AAG7C,yEAA+E;AAG/E,mDAAsD;AACtD,kDAAoE;AACpE,kCAA4C;AAI5C,yDAAuE;AAEvE,MAAM,+BAA+B,GAAyB;IAC5D,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,IAAI;IACX,UAAU,EAAE,IAAI;IAChB,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;CAChB,CAAC;AAEF,MAAsB,aACpB,SAAQ,8BAAgB;IAOxB,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAGD,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAGD,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAGD,WAAW,CAAC,KAAK,GAAG,CAAC;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAcD,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IACD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAOD,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAmBD,iBAAiB;QACf,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,YAAY,IAAO,EAAE,OAAyB;;QAC5C,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAxEvB,YAAO,GAAG,MAAM,CAAC;QAYP,YAAO,GAAiB,EAAE,CAAC;QAK3B,cAAS,GAAqB,EAAE,CAAC;QAgBjC,aAAQ,GAAY,IAAI,CAAC;QAQzB,iBAAY,GAAY,IAAI,CAAC;QAC7B,mBAAc,GAAY,KAAK,CAAC;QAQhC,UAAK,GAAsB,SAAS,CAAC;QAiJrC,sBAAiB,GAAG,CAAC,QAA0B,EAAE,EAAE;YAC3D,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,EAAE,CAAC;QACzB,CAAC,CAAC;QA7HA,IAAI,CAAC,YAAY,GAAG,MAAA,IAAI,CAAC,OAAO,mCAAI,IAAI,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,MAAA,IAAI,CAAC,aAAa,mCAAI,KAAK,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;QAClC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;IAChC,CAAC;IAED,eAAe;;QACb,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,OAAO,mCAAI,IAAI,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,aAAa,mCAAI,KAAK,CAAC;QACxD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC;QAElC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACjC;IACH,CAAC;IAED,oBAAoB;;QAClB,OAAO,CAAC,MAAA,IAAI,CAAC,SAAS,0CAAE,UAAU,EAAE,EAAE,MAAA,IAAI,CAAC,SAAS,0CAAE,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,gBAAO,CAAC,CAAC;IACtF,CAAC;IAED,OAAO;;QACL,KAAK,CAAC,OAAO,EAAE,CAAC;QAEhB,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEnC,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEhC,IAAI,CAAC,sBAAsB,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QAElD,IAAI,IAAI,CAAC,YAAY,EAAE;YAErB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAC/B,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,EACvD;gBACE,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,oBAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAQ,CAAC,QAAQ;gBACrF,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;aACtB,EACD;gBACE,SAAS,EAAE,IAAI;aAChB,CACF,CAAC;YACF,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,CAAC,SAAS,GAAG,QAA0B,CAAC;YAC5C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YACtD,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;gBAC1B,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aACnC;YACD,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,mCAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;YAChG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAE9B,IAAI,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,0CAAE,OAAO,EAAE;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAC/B,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,EAC5D;oBACE,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,oBAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,oBAAQ,CAAC,YAAY;oBAC7F,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;iBACtB,EACD;oBACE,SAAS,EAAE,IAAI;iBAChB,CACF,CAAC;gBAEF,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;gBACpC,QAAQ,CAAC,aAAa,CAAC;oBACrB,MAAM,EAAE,MAAA,MAAA,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,0CAAE,KAAK,0CAAE,MAAM,mCAAI,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,0CAAE,MAAM,mCAAI,qBAAY,CAAC,SAAS;oBAC3F,WAAW,EAAE,KAAK;iBACnB,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC9B,IAAI,CAAC,SAAS,GAAG,QAA0B,CAAC;aAC7C;YAED,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAGhC,IACE,CAAA,MAAA,IAAI,CAAC,OAAO,CAAC,cAAc,0CAAE,iBAAiB,EAAE;gBAChD,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,KAAK,KAAK;gBAC7D,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,IAAI,EAC7B;gBACA,MAAM,iBAAiB,GAAG,IAAA,uBAAe,EAAC,MAAA,iBAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC,2CAAI,EAAE;oBAC/E,MAAM,EACJ,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,eAAe,mCAC1B,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,sBAAsB,CAAC,mCAC9D,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,iBAAiB,CAAC;oBAC3D,SAAS,EACP,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,kBAAkB,mCAC7B,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,yBAAyB,CAAC,mCACjE,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,oBAAoB,CAAC;oBAC9D,KAAK,EACH,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,cAAc,mCACzB,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,qBAAqB,CAAC,mCAC7D,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC;oBAC1D,IAAI,EACF,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,aAAa,mCACxB,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,oBAAoB,CAAC,mCAC5D,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,eAAe,CAAC;oBACzD,MAAM,EACJ,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,eAAe,mCAC1B,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,sBAAsB,CAAC,mCAC9D,IAAA,YAAG,EAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE,iBAAiB,CAAC;iBAC5D,CAAC,CAAC;gBAEH,IAAI,iBAAiB,CAAC,KAAK,EAAE;oBAC3B,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAG;wBAC7C,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;qBAClC,CAAC;iBACH;gBACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,CAAC;aACnE;SACF;IACH,CAAC;IAES,sBAAsB;QAE9B,OAAO,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC;IACrG,CAAC;IAQS,SAAS;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACpE,MAAM,eAAe,GAAG,IAAI,qBAAc,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACnE,IAAI,CAAC,SAAS,GAAG,CAAC,eAAe,CAAC,CAAC;QACnC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE;YACzC,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;IAES,WAAW,CAAC,KAAa,EAAE,OAAiB;QACpD,MAAM,IAAI,GAAkD,EAAE,CAAC;QAC/D,IAAI,CAAC,QAAQ;YACX,IAAA,kBAAU,EACR,IAAI,CAAC,QAAQ,EACb,CAAC,CAAC,EAAE;;gBACF,IAAI,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC9C,KAAK,GAAG,CAAC,IAAA,gBAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAA,qBAAY,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAa,CAAC;gBACvG,IAAI,CAAC,KAAK,EAAE;oBACV,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;iBACjD;gBAED,IAAI,KAAK,EAAE;oBACT,MAAM,QAAQ,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;oBACjC,IAAI,OAAO,EAAE;wBACX,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;4BAChB,IAAI,CAAC,IAAI,CACP,CAAC,CAAC,2BAA2B,CAAC,CAAC,EAAE,CAAC,CAAC,IAAA,qBAAY,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAIhE,CACF,CAAC;wBACJ,CAAC,CAAC,CAAC;qBACJ;yBAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE;wBACxE,MAAM,UAAU,GAAG,MAAA,CAAC,CAAC,qBAAqB,iDAAI,CAAC;wBAC/C,MAAM,aAAa,GACjB,IAAI,CAAC,IAAI,KAAK,6BAAiB,CAAC,mBAAmB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;wBAEvG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;;4BAChB,IAAI,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,UAAU,0CAAG,CAAC,CAAC,EAAE;gCAC/B,IAAI,aAAa,EAAE;oCACjB,IAAI,CAAC,IAAI,iCACJ,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,KAC3B,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAU,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IACvD,CAAC;iCACJ;qCAAM;oCACL,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;iCACrC;6BACF;wBACH,CAAC,CAAC,CAAC;qBACJ;iBACF;YACH,CAAC,EACD;gBACE,MAAM,EAAE,IAAI,CAAC,aAAa;gBAC1B,SAAS,EAAE,IAAI,CAAC,YAAY;aAC7B,CACF,CAAC;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;IAES,kBAAkB;QAC1B,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAA,kBAAU,EACR,IAAI,CAAC,QAAQ,EACb,CAAC,CAAC,EAAE;;YACF,IAAI,IAAA,gBAAO,EAAC,MAAA,CAAC,CAAC,qBAAqB,EAAE,0CAAE,UAAU,CAAC,EAAE;gBAClD,MAAM,GAAG,KAAK,CAAC;aAChB;QACH,CAAC,EACD;YACE,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,SAAS,EAAE,IAAI,CAAC,YAAY;SAC7B,CACF,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,2BAA2B;QACnC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACpE,IAAA,gBAAO,EAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAC,CAAC;QAC5D,IAAA,gBAAO,EAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAC,CAAC;QAC5D,IAAA,gBAAO,EAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAA,cAAK,EAAC,WAAW,CAAC,CAAC,CAAC;QACjE,IAAA,gBAAO,EAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAA,cAAK,EAAC,WAAW,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,aAAyB,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAE1G,IAAI,CAAC,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,mBAAmB;QACjB,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,SAAS,EAAE,IAAI,CAAC,YAAY;SAC7B,CAAC;IACJ,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,KAAK,CAAC,EAAE,CACX,kBAAU,CAAC,WAAW,EACtB,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,MAAK,IAAI,CAAC,EAAE,EAAE,EAChD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CACnC,CAAC;QACF,MAAM,cAAc,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,QAAQ,EAAE;YAC9C,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,SAAS,EAAE,IAAI,CAAC,YAAY;SAC7B,CAAC;aACC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC;aACnC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,cAAc,EAAE,QAAQ,EAAE,GAAG,EAAE;gBAC9E,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YACtC,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE;gBAClD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;SACJ;QAED,IAAA,kBAAU,EACR,IAAI,CAAC,QAAQ,EACb,CAAC,CAAC,EAAE;YACF,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,kBAAU,CAAC,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,MAAK,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE;gBAEvF,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,CAAC,CAAC,CAAC;QACL,CAAC,EACD;YACE,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,SAAS,EAAE,IAAI,CAAC,YAAY;SAC7B,CACF,CAAC;IACJ,CAAC;IAES,iBAAiB;IAE3B,CAAC;IAES,uBAAuB;QAC/B,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACxC,CAAC;IAES,wBAAwB;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAClG,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,KAAK,WAAW,CAAC;QAC9C,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;QAE5B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;YACpC,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACjC;QAED,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAES,wBAAwB;;QAChC,MAAA,IAAI,CAAC,SAAS,0CAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAA,IAAI,CAAC,SAAS,0CAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,0CAAE,OAAO,MAAK,KAAK,CAAC,CAAC;QAEhF,MAAA,MAAC,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,YAAY,kDAAe,0CAAE,aAAa,mDAAG,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7F,MAAA,MAAC,MAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,YAAY,kDAAe,0CAAE,aAAa,mDAAG;YAC5D,UAAU,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,IAAI,0CAAE,OAAO,MAAK,KAAK;SAChE,CAAC,CAAC;IACL,CAAC;IAES,eAAe;IAEzB,CAAC;IAED,WAAW;QACT,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAU,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAEzE,KAAK,CAAC,WAAW,EAAE,CAAC;IACtB,CAAC;IAES,WAAW,CAAC,UAAyC;QAM7D,IAAI,UAAU,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzE,IAAA,kBAAU,EACR,IAAI,CAAC,QAAQ,EACb,CAAC,CAAC,EAAE;;gBACF,MAAA,CAAC,CAAC,WAAW,EAAE,0CAAE,iBAAiB,EAAE,CAAC;YACvC,CAAC,EACD;gBACE,MAAM,EAAE,IAAI,CAAC,aAAa;gBAC1B,SAAS,EAAE,IAAI,CAAC,YAAY;aAC7B,CACF,CAAC;SACH;aAAM,IACL,IAAI,CAAC,SAAS;YACd,IAAI,CAAC,SAAS,CAAC,MAAM;YACrB,CAAC,UAAU,KAAK,OAAO,IAAI,CAAC,IAAA,gBAAO,EAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EACjE;YACA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAChC,QAAQ,CAAC,WAAW,EAAE,CAAC,iBAAiB,CAAC;oBACvC,SAAS,EAAE,IAAI;iBAChB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAES,oBAAoB,CAAC,CAAkB;QAC/C,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACzB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YACtB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAES,UAAU;QAClB,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,MAAM,MAAM,GAAmB,EAAE,CAAC;QAClC,IAAA,kBAAU,EACR,IAAI,CAAC,QAAQ,EACb,CAAC,CAAC,EAAE;YACF,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;YACxB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC,EACD;YACE,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,SAAS,EAAE,IAAI,CAAC,YAAY;SAC7B,CACF,CAAC;QACF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,MAAM,KAAK,GAAG,IAAA,mBAAU,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1B;SACF;IAEH,CAAC;IAGD,YAAY,CAAC,IAAO,EAAE,QAAW;;QAC/B,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC,MAAM,EAAE;YACjB,OAAO,MAAM,CAAC;SACf;QACD,MAAM,WAAW,GAAG,CAAC,IAAA,gBAAO,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAE7C,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QAIvB,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,OAAK,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAA,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,OAAK,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAA,EAAE;YACxE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YACrB,OAAO,MAAM,CAAC;SACf;QAED,IAAI,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,0CAAE,OAAO,MAAK,IAAI,IAAI,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,0CAAE,OAAO,MAAK,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACvF,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;YACrB,OAAO,MAAM,CAAC;SACf;QAED,IAAI,WAAW,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;YACpF,MAAM,CAAC,OAAO,mCACT,MAAM,CAAC,OAAO,KACjB,SAAS,EAAE,IAAI,EACf,MAAM,EAAE,IAAI,EACZ,MAAM,EAAE,IAAI,GACb,CAAC;SACH;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,0BAA0B,CAAC,IAAO,EAAE,QAAW;QACrD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,iCACnB,QAAQ,GACR,IAAI,EACP,CAAC;QAEH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACtB,OAAO,IAAA,gBAAO,EAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,GAAG,CAAC,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,GAAG,CAAC,CAAC,IAAI,+BAA+B,CAAC,GAAG,CAAC,CAAC;QACvF,CAAC,CAAC,CAAC;IACL,CAAC;IAES,kBAAkB;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,MAAM,SAAS,GAAQ;YACrB,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;YACxB,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;YACvE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;SACtE,CAAC;QAGF,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;YAC9C,SAAS,CAAC,IAAI,GAAG,IAAA,6BAAsB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC1D;aAAM;YACL,SAAS,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;SACrC;QAED,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YACpC,MAAM,SAAS,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;YAC9E,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC;YAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBACpB,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;oBAClD,CAAC,CAAC,CAAC,KAAY,EAAE,KAAa,EAAE,IAAa,EAAE,KAAc,EAAE,EAAE;;wBAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;wBAC1E,OAAO,IAAA,0BAAkB,EAAC,IAAA,4BAAS,EAAC,EAAE,EAAE,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,0CAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;oBAC5E,CAAC;oBACH,CAAC,CAAC,IAAA,0BAAkB,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC1C;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;gBACnD,SAAS,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAC7D;YACD,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBACpB,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,IAAA,oCAA4B,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACxE;YACD,IAAI,IAAA,mBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;gBACrC,SAAS,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,IAAgB,EAAE,KAAa,EAAE,EAAE,CAC/D,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;aAC/E;SACF;aAAM;YACL,SAAS,CAAC,KAAK,GAAG;gBAChB,OAAO,EAAE,KAAK;aACf,CAAC;SACH;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YAClC,SAAS,CAAC,IAAI,GAAG;gBACf,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;gBAC1B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAC1B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;gBACxB,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc;gBACxC,UAAU,EAAE,IAAA,mBAAU,EAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;oBAC1C,CAAC,CAAC,CAAC,IAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;oBAC3F,CAAC,CAAC,SAAS;aACd,CAAC;YACF,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACnB,SAAS,CAAC,IAAI,CAAC,KAAK,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;oBAChD,CAAC,CAAC,CAAC,KAAa,EAAE,KAAa,EAAE,KAAY,EAAE,IAAa,EAAE,EAAE;;wBAC5D,MAAM,KAAK,GAAI,IAAI,CAAC,IAAI,CAAC,KAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;wBAClE,OAAO,IAAA,0BAAkB,EAAC,IAAA,4BAAS,EAAC,EAAE,EAAE,MAAA,IAAI,CAAC,MAAM,CAAC,IAAI,0CAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;oBAC3E,CAAC;oBACH,CAAC,CAAC,IAAA,0BAAkB,EAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACzC;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACnB,SAAS,CAAC,IAAI,CAAC,KAAK,GAAG,IAAA,2BAAmB,EAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC7D;SACF;aAAM;YACL,SAAS,CAAC,IAAI,GAAG;gBACf,OAAO,EAAE,KAAK;aACf,CAAC;SACH;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACxC,SAAS,CAAC,OAAO,GAAG;gBAClB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;gBAC7B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ;gBAC7B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;gBAC3B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;aAC9B,CAAC;YACF,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACtB,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;oBACtD,CAAC,CAAC,CAAC,KAAa,EAAE,KAAa,EAAE,KAAY,EAAE,IAAa,EAAE,EAAE;;wBAC5D,MAAM,KAAK,GAAI,IAAI,CAAC,OAAO,CAAC,KAAa,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;wBACrE,OAAO,IAAA,0BAAkB,EAAC,IAAA,4BAAS,EAAC,EAAE,EAAE,MAAA,IAAI,CAAC,MAAM,CAAC,OAAO,0CAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;oBAC9E,CAAC;oBACH,CAAC,CAAC,IAAA,0BAAkB,EAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAC5C;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACtB,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,IAAA,2BAAmB,EAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aACnE;SACF;aAAM;YACL,SAAS,CAAC,OAAO,GAAG;gBAClB,OAAO,EAAE,KAAK;aACf,CAAC;SACH;QAED,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;YACpC,MAAM,KAQF,IAAI,CAAC,KAAK,EARR,EACJ,UAAU,EACV,KAAK,EACL,KAAK,EAAE,UAAU,GAAG,EAAE,EACtB,UAAU,EAAE,mBAAmB,EAC/B,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,cAAc,OAET,EADT,cAAc,cAPb,gEAQL,CAAa,CAAC;YACf,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,IAAI,cAAc,CAAC;YACnB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;gBAErD,IAAI,UAAU,IAAI,IAAA,cAAK,EAAC,UAAU,CAAC,EAAE;oBACnC,UAAU,GAAG,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC/C,cAAc,GAAI,0BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBAC5D;aACF;YAED,SAAS,CAAC,KAAK,mCACV,cAAc,KACjB,UAAU,EAAE,KAAK,EACjB,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,IAAA,uBAAc,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EACrD,SAAS,EAAE,IAAA,4BAAS,EAAC,EAAE,EAAE,cAAc,EAAE,IAAA,0BAAkB,EAAC,UAAU,CAAC,CAAC,EACxE,QAAQ,EAAE,UAAU,CAAC,QAAQ,KAAK,KAAK,EACvC,gBAAgB,EAAE,UAAU,CAAC,QAAQ,KAAK,KAAK,EAC/C,KAAK,EAAE,EAAE,GACV,CAAC;YAEF,IAAI,cAAc,IAAI,cAAc,CAAC,OAAO,EAAE;gBAC5C,SAAS,CAAC,KAAK,CAAC,KAAK,mCAChB,cAAc,KACjB,KAAK,EAAE,IAAA,0BAAkB,EAAC,cAAc,CAAC,KAAK,CAAC,GAChD,CAAC;gBACF,IAAI,cAAc,CAAC,KAAK,EAAE;oBACxB,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,IAAA,2BAAmB,EAAC,cAAc,CAAC,KAAK,CAAC,CAAC;iBACzE;aACF;iBAAM;gBACL,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;aAC5C;YAED,IAAI,mBAAmB,IAAI,mBAAmB,CAAC,OAAO,EAAE;gBACtD,SAAS,CAAC,KAAK,CAAC,UAAU,mCACrB,mBAAmB,KACtB,KAAK,EAAE,IAAA,0BAAkB,EAAC,mBAAmB,CAAC,KAAK,CAAC,GACrD,CAAC;gBACF,IAAI,mBAAmB,CAAC,KAAK,EAAE;oBAC7B,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,IAAA,2BAAmB,EAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;iBACnF;aACF;iBAAM;gBACL,SAAS,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;aACjD;YAED,IAAI,UAAU,EAAE;gBACd,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,IAAA,2BAAmB,EAAC,UAAU,CAAC,CAAC;aAC9D;SACF;aAAM;YACL,SAAS,CAAC,KAAK,GAAG;gBAChB,OAAO,EAAE,KAAK;aACf,CAAC;SACH;QAED,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;YAC9C,SAAS,CAAC,KAAK,GAAG;gBAChB,OAAO,EAAE,IAAI;aACd,CAAC;YACF,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;gBACzB,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,IAAA,0BAAkB,EAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aACnE;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;gBACzB,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,IAAA,2BAAmB,EAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aACpE;SACF;aAAM;YACL,SAAS,CAAC,KAAK,GAAG;gBAChB,OAAO,EAAE,KAAK;aACf,CAAC;SACH;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAES,kBAAkB;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,OAAO;YACL,cAAc,EAAE,IAAA,sCAA0B,EAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;YACpE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc;YACxC,KAAK,EAAE,IAAA,mBAAU,EAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBAChC,CAAC,CAAC,CAAC,KAAY,EAAE,KAAa,EAAE,EAAE;;oBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAA,KAAK,CAAC,KAAK,0CAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;oBACzE,OAAO,IAAA,0BAAkB,EAAC,IAAA,4BAAS,EAAC,EAAE,EAAE,MAAA,IAAI,CAAC,MAAM,CAAC,IAAI,0CAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC3E,CAAC;gBACH,CAAC,CAAC,IAAA,0BAAkB,EAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACvC,OAAO,EACL,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK;gBAC5B,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;gBACpB,CAAC,CAAC;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;oBAC7B,cAAc,EAAE,IAAA,sCAA0B,EAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;oBACvE,KAAK,EAAE,IAAA,0BAAkB,EAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;iBAC9C;SACR,CAAC;IACJ,CAAC;IAES,qBAAqB;QAC7B,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACrD,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,wBAAiB,EAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAClE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,KAAU,EAAE,KAAU,EAAE,KAAa,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrH,CAAC;IAIS,gBAAgB,CAAyB,OAAU,EAAE,QAAgB,CAAC;QAC9E,IAAA,wCAA6B,EAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,mBAAW,CAAC,CAAC;QAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,UAAU,KAAK,EAAE,EAAE,CAAC;aACpG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC1B,IAAI,EAAE,OAAO;SACd,CAAC;aACD,SAAS,CACR;YACE,IAAI,EAAE,IAAI;YACV,OAAO;SACR,EACD,KAAK,CACN,CAAC;QACJ,OAAO,QAAQ,CAAC;IAClB,CAAC;IAES,oBAAoB;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QACrC,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC/D,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;QACpF,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,KAAK;YACvC,SAAS;YACT,cAAc;YACd,QAAQ;YACR,QAAQ;YACR,cAAc,EAAE,IAAI,CAAC,OAAO;YAC5B,cAAc,EAAE,IAAI,CAAC,eAAe;YAEpC,UAAU;YACV,cAAc;YACd,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,sBAAsB,CAAC,OAA0B,EAAE,OAAiB;QAClE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;;YAChC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,EAAE,0CAAE,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,cAAc,CAAC,MAAa;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,YAAuB;;QAC9B,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,KAAK,4BAAiB,CAAC,KAAK,EAAE;YACjE,OAAO,YAAY,CAAC,IAAI,CAAC;SAC1B;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,MAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAU,0CAAE,SAAS,CAAC,KAAK,CAAC;SAChE;IACH,CAAC;IAED,gBAAgB,CAAC,CAAoB,EAAE,OAAiB,EAAE,KAAe;QACvE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3C,OAAQ,IAAI,CAAC,QAAQ,EAAwC,CAAC,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC/F,CAAC;IAED,mBAAmB,CAAC,CAAU,EAAE,OAAiB,EAAE,KAAe;QAChE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3C,OAAQ,IAAI,CAAC,QAAQ,EAAwC,CAAC,cAAc,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3F,CAAC;IAED,qBAAqB,CAAC,CAAU,EAAE,OAAiB,EAAE,KAAe;QAClE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3C,OAAQ,IAAI,CAAC,QAAQ,EAAwC,CAAC,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7F,CAAC;;AAjwBH,sCAkwBC;AA9vBQ,qBAAO,GAAG,MAAM,CAAC;AAgwBnB,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,IAAA,iCAAqB,GAAE,CAAC;IACxB,iBAAO,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QACvC,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;SACf;QACD,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;SACf;QACD,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;SACf;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;SAEhB;KACF,CAAC,CAAC,CAAC;AACN,CAAC,CAAC;AAjBW,QAAA,YAAY,gBAiBvB","file":"base-axis.js","sourcesContent":["import type { IGroup } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport type { ITickDataOpt, AxisItem } from '@visactor/vrender-components/axis/type';\nimport type { IBandLikeScale, IBaseScale, IContinuousScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport type { IGraphic } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport type {\n IOrientType,\n IPolarOrientType,\n Datum,\n StringOrNumber,\n IGroup as ISeriesGroup,\n CoordinateType\n} from '../../typings';\nimport { BaseComponent } from '../base/base-component';\nimport { CompilableData } from '../../compile/data';\nimport { AxisEnum, GridEnum, type IAxis, type ICommonAxisSpec, type ITick } from './interface';\nimport { ComponentTypeEnum, type IComponentOption } from '../interface';\nimport { eachSeries, getSeries } from '../../util/model';\n// eslint-disable-next-line no-duplicate-imports\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport type { ISeries } from '../../series/interface';\nimport { ChartEvent } from '../../constant/event';\nimport { LayoutZIndex } from '../../constant/layout';\nimport { animationConfig } from '../../animation/utils';\n// eslint-disable-next-line no-duplicate-imports\nimport {\n degreeToRadian,\n pickWithout,\n isEqual,\n array,\n get,\n isArray,\n isFunction,\n isNil,\n isValid,\n maxInArray\n} from '@visactor/vutils';\nimport { DEFAULT_TITLE_STYLE, transformAxisLineStyle } from './util';\nimport { transformAxisLabelStateStyle, transformStateStyle, transformToGraphic } from '../../util/style';\nimport type { ITransformOptions } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataView } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerComponentMark } from '../../mark/component';\nimport { Factory } from '../../core/factory';\n// eslint-disable-next-line no-duplicate-imports\nimport { GroupTransition } from '@visactor/vrender-components/axis/animate/group-transition';\nimport { AXIS_ELEMENT_NAME } from '@visactor/vrender-components/axis/constant';\n// eslint-disable-next-line no-duplicate-imports\nimport { GroupFadeOut, GroupFadeIn } from '@visactor/vrender-animate/custom/groupFade';\nimport { scaleParser } from '../../data/parser/scale';\nimport { registerDataSetInstanceParser } from '../../data/register';\nimport { getFormatFunction } from '../util';\nimport type { IComponentMark } from '../../mark/interface/mark';\nimport type { ICompilableMark } from '../../compile/mark';\nimport type { ICompilableData } from './../../compile/data/interface';\nimport { transformFunctionAttribute } from '../../util/spec/transform';\n\nconst AXIS_COMPONENT_ONLY_CHANGE_KEYS: Record<string, true> = {\n grid: true,\n subGrid: true,\n tick: true,\n subTick: true,\n label: true,\n domainLine: true,\n title: true,\n maxWidth: true,\n minWidth: true,\n maxHeight: true,\n minHeight: true\n};\n\nexport abstract class AxisComponent<T extends ICommonAxisSpec & Record<string, any> = any> // FIXME: 补充公共类型,去掉 Record<string, any>\n extends BaseComponent<T>\n implements IAxis\n{\n static specKey = 'axes';\n specKey = 'axes';\n\n protected _orient: IPolarOrientType | IOrientType;\n getOrient() {\n return this._orient;\n }\n\n protected _scale!: IBaseScale;\n getScale() {\n return this._scale;\n }\n\n protected _scales: IBaseScale[] = [];\n getScales() {\n return this._scales;\n }\n\n protected _tickData: CompilableData[] = [];\n getTickData(index = 0) {\n return this._tickData[index];\n }\n\n // 与系列的关联关系\n // 优先级:id > index\n // 最终结果:series & region取交集\n protected _seriesUserId?: StringOrNumber[];\n protected _seriesIndex?: number[];\n protected _regionUserId?: StringOrNumber[];\n protected _regionIndex?: number[];\n\n /**\n * if axis will be shown\n */\n protected _visible: boolean = true;\n getVisible() {\n return this._visible;\n }\n get visible() {\n return this._visible;\n }\n\n protected _specVisible: boolean = true;\n protected _hideWhenEmpty: boolean = false;\n\n /** 轴是否产生反转的真实值,在横向图表的竖轴上可能和用户在 spec 上配的值相反 */\n protected _inverse: boolean;\n getInverse() {\n return this._inverse;\n }\n\n protected _tick: ITick | undefined = undefined;\n protected abstract computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[];\n abstract valueToPosition(value: any): number;\n protected abstract axisHelper(): any;\n protected abstract getSeriesStatisticsField(s: ISeries): string[];\n protected abstract updateSeriesScale(): void;\n protected abstract collectSeriesField(depth: number, series: ISeries): string | string[];\n abstract transformScaleDomain(): void;\n abstract updateScaleRange(): boolean;\n protected abstract getDefaultInteractive(): boolean;\n\n protected _dataFieldText: string;\n protected _axisMark: IComponentMark;\n\n protected _gridMark: IComponentMark;\n\n protected _coordinateType: CoordinateType;\n getCoordinateType() {\n return this._coordinateType;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._specVisible = spec.visible ?? true;\n this._hideWhenEmpty = spec.hideWhenEmpty ?? false;\n this._visible = this._specVisible;\n this._coordinateType = 'none';\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._specVisible = this._spec.visible ?? true;\n this._hideWhenEmpty = this._spec.hideWhenEmpty ?? false;\n this._visible = this._specVisible;\n\n if (this._scale) {\n this._refreshVisibilityByData();\n }\n }\n\n getVRenderComponents() {\n return [this._axisMark?.getProduct(), this._gridMark?.getProduct()].filter(isValid);\n }\n\n created() {\n super.created();\n //series and regions\n this.setSeriesAndRegionsFromSpec();\n // event\n this.initEvent();\n // scales\n this.initScales();\n this.updateSeriesScale();\n this._refreshVisibilityByData();\n // data\n this._shouldComputeTickData() && this._initData();\n\n if (this._specVisible) {\n // 创建语法元素\n const axisMark = this._createMark(\n { type: 'component', name: `axis-${this.getOrient()}` },\n {\n componentType: this.getOrient() === 'angle' ? AxisEnum.circleAxis : AxisEnum.lineAxis,\n mode: this._spec.mode\n },\n {\n skipTheme: true // skip theme of vgrammar to avoid merge\n }\n );\n this._updateTickDataMarks(axisMark);\n this._axisMark = axisMark as IComponentMark;\n axisMark.setMarkConfig({ zIndex: this.layoutZIndex });\n if (isValid(this._spec.id)) {\n axisMark.setUserId(this._spec.id);\n }\n axisMark.setMarkConfig({ interactive: this._spec.interactive ?? this.getDefaultInteractive() });\n this._marks.addMark(axisMark);\n\n if (this._spec.grid?.visible) {\n const gridMark = this._createMark(\n { type: 'component', name: `axis-${this.getOrient()}-grid` },\n {\n componentType: this.getOrient() === 'angle' ? GridEnum.circleAxisGrid : GridEnum.lineAxisGrid,\n mode: this._spec.mode\n },\n {\n skipTheme: true\n }\n );\n\n this._updateTickDataMarks(gridMark);\n gridMark.setMarkConfig({\n zIndex: this._spec.grid?.style?.zIndex ?? this._spec.grid?.zIndex ?? LayoutZIndex.Axis_Grid,\n interactive: false // 轴网格线关闭交互\n });\n this._marks.addMark(gridMark);\n this._gridMark = gridMark as IComponentMark;\n }\n\n this._syncComponentVisibility();\n\n // Tip: 支持 spec.animationAppear.axis,并且坐标轴默认关闭动画\n if (\n this._option.globalInstance?.isAnimationEnable() &&\n get(this._option.getChart().getSpec(), 'animation') !== false &&\n this._spec.animation === true\n ) {\n const axisAnimateConfig = animationConfig(Factory.getAnimationInKey('axis')?.(), {\n appear:\n this._spec.animationAppear ??\n get(this._option.getChart().getSpec(), 'animationAppear.axis') ??\n get(this._option.getChart().getSpec(), 'animationAppear'),\n disappear:\n this._spec.animationDisappear ??\n get(this._option.getChart().getSpec(), 'animationDisappear.axis') ??\n get(this._option.getChart().getSpec(), 'animationDisappear'),\n enter:\n this._spec.animationEnter ??\n get(this._option.getChart().getSpec(), 'animationEnter.axis') ??\n get(this._option.getChart().getSpec(), 'animationEnter'),\n exit:\n this._spec.animationExit ??\n get(this._option.getChart().getSpec(), 'animationExit.axis') ??\n get(this._option.getChart().getSpec(), 'animationExit'),\n update:\n this._spec.animationUpdate ??\n get(this._option.getChart().getSpec(), 'animationUpdate.axis') ??\n get(this._option.getChart().getSpec(), 'animationUpdate')\n });\n // 因为坐标轴的更新动画中处理了 enter,所以需要将 enter 的参数传入\n if (axisAnimateConfig.enter) {\n axisAnimateConfig.update[0].customParameters = {\n enter: axisAnimateConfig.enter[0]\n };\n }\n this._marks.forEach(m => m.setAnimationConfig(axisAnimateConfig));\n }\n }\n }\n\n protected _shouldComputeTickData() {\n // 当轴被展示、或者强制要求计算 data 时再计算 data\n return this._specVisible && (this.getVisible() || this._spec.forceInitTick || this._hideWhenEmpty);\n }\n\n protected _onTickDataChange = (tickData?: ICompilableData) => {\n this._forceLayout();\n tickData?.updateData();\n };\n\n // data\n protected _initData() {\n const tickData = this._initTickDataSet(this._tickTransformOption());\n const tickDataCompile = new CompilableData(this._option, tickData);\n this._tickData = [tickDataCompile];\n tickData.target.addListener('change', () => {\n this._onTickDataChange(tickDataCompile);\n });\n }\n\n protected collectData(depth: number, rawData?: boolean) {\n const data: { min: number; max: number; values: any[] }[] = [];\n this._regions &&\n eachSeries(\n this._regions,\n s => {\n let field = this.collectSeriesField(depth, s);\n field = (isArray(field) ? (isContinuous(this._scale.type) ? field : [field[0]]) : [field]) as string[];\n if (!depth) {\n this._dataFieldText = s.getFieldAlias(field[0]);\n }\n\n if (field) {\n const viewData = s.getViewData();\n if (rawData) {\n field.forEach(f => {\n data.push(\n s.getRawDataStatisticsByField(f, !!isContinuous(this._scale.type)) as {\n min: number;\n max: number;\n values: any[];\n }\n );\n });\n } else if (viewData && viewData.latestData && viewData.latestData.length) {\n const seriesData = s.getViewDataStatistics?.();\n const userSetBreaks =\n this.type === ComponentTypeEnum.cartesianLinearAxis && this._spec.breaks && this._spec.breaks.length;\n\n field.forEach(f => {\n if (seriesData?.latestData?.[f]) {\n if (userSetBreaks) {\n data.push({\n ...seriesData.latestData[f],\n values: viewData.latestData.map((obj: Datum) => obj[f])\n });\n } else {\n data.push(seriesData.latestData[f]);\n }\n }\n });\n }\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return data;\n }\n\n protected isSeriesDataEnable() {\n let enable = true;\n eachSeries(\n this._regions,\n s => {\n if (isArray(s.getViewDataStatistics()?.latestData)) {\n enable = false;\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return enable;\n }\n\n protected setSeriesAndRegionsFromSpec() {\n const { seriesId, seriesIndex, regionId, regionIndex } = this._spec;\n isValid(seriesId) && (this._seriesUserId = array(seriesId));\n isValid(regionId) && (this._regionUserId = array(regionId));\n isValid(seriesIndex) && (this._seriesIndex = array(seriesIndex));\n isValid(regionIndex) && (this._regionIndex = array(regionIndex));\n this._regions = this._option.getRegionsInUserIdOrIndex(this._regionUserId as string[], this._regionIndex);\n // _regions 被更新了,layoutBindRegionID 也要更新\n this.layout.layoutBindRegionID = this._regions.map(x => x.id);\n }\n\n getBindSeriesFilter() {\n return {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n };\n }\n\n protected initEvent() {\n this.event.on(\n ChartEvent.scaleUpdate,\n { filter: ({ model }) => model?.id === this.id },\n this.effect.scaleUpdate.bind(this)\n );\n const viewStatistics = getSeries(this._regions, {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n })\n .map(s => s.getViewDataStatistics())\n .filter(v => !!v);\n\n if (viewStatistics.length > 1) {\n this._option.dataSet.multipleDataViewAddListener(viewStatistics, 'change', () => {\n this.updateScaleDomain();\n });\n } else if (viewStatistics.length === 1) {\n viewStatistics[0].target.addListener('change', () => {\n this.updateScaleDomain();\n });\n }\n\n eachSeries(\n this._regions,\n s => {\n s.event.on(ChartEvent.rawDataUpdate, { filter: ({ model }) => model?.id === s.id }, () => {\n // 只清除,不更新,在需要时,更新一次。避免多系列下多次更新\n this._clearRawDomain();\n });\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n protected updateScaleDomain() {\n // 留给各个类型的 axis 来 override\n }\n\n protected _hasCollectedSeriesData() {\n return this.collectData(0).length > 0;\n }\n\n protected _refreshVisibilityByData() {\n const nextVisible = this._specVisible && (!this._hideWhenEmpty || this._hasCollectedSeriesData());\n const changed = this._visible !== nextVisible;\n this._visible = nextVisible;\n\n if (this._axisMark || this._gridMark) {\n this._syncComponentVisibility();\n }\n\n if (changed) {\n this._forceLayout();\n }\n\n return changed;\n }\n\n protected _syncComponentVisibility() {\n this._axisMark?.setVisible(this._visible);\n this._gridMark?.setVisible(this._visible && this._spec.grid?.visible !== false);\n\n (this._axisMark?.getComponent?.() as IGroup)?.setAttributes?.({ visibleAll: this._visible });\n (this._gridMark?.getComponent?.() as IGroup)?.setAttributes?.({\n visibleAll: this._visible && this._spec.grid?.visible !== false\n });\n }\n\n protected _clearRawDomain() {\n // 留给各个类型的 axis 来 override\n }\n\n onLayoutEnd(): void {\n const changed = this.updateScaleRange();\n\n this.event.emit(ChartEvent.scaleUpdate, { model: this, value: 'range' });\n\n super.onLayoutEnd();\n }\n\n protected computeData(updateType?: 'domain' | 'range' | 'force'): void {\n // 对应问题#3287: 轴隐藏(tickData为[])时, dataZoom/scrollBar无法触发视图更新\n // 解决方式: dataZoom/scrollBar更新时, 使用force, 此时即使没有tickData也要触发视图更新\n // ps:\n // 1. 其他逻辑没有使用force更新, 所以不会带来额外影响\n // 2. force更新时, 如果有tickData仍然走老逻辑, 这里只考虑force && 无tickData的情况\n if (updateType === 'force' && (!this._tickData || !this._tickData.length)) {\n eachSeries(\n this._regions,\n s => {\n s.getViewData()?.reRunAllTransform();\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n } else if (\n this._tickData &&\n this._tickData.length &&\n (updateType === 'force' || !isEqual(this._scale.range(), [0, 1]))\n ) {\n this._tickData.forEach(tickData => {\n tickData.getDataView().reRunAllTransform({\n skipEqual: true\n });\n });\n }\n }\n\n protected _updateTickDataMarks(m: ICompilableMark) {\n if (this._tickData) {\n this._tickData.forEach(d => {\n d.addRelatedMark(m);\n });\n }\n }\n\n protected initScales() {\n this._scales = [this._scale];\n const groups: ISeriesGroup[] = [];\n eachSeries(\n this._regions,\n s => {\n const g = s.getGroups();\n g && groups.push(g);\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n if (groups.length !== 0) {\n const depth = maxInArray(groups.map(g => g.fields.length));\n for (let i = 1; i < depth; i++) {\n const scale = this._scale.clone();\n this._scales.push(scale);\n }\n }\n // this.updateScaleDomain();\n }\n\n /** Update API **/\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n if (result.reMake) {\n return result;\n }\n const specChanged = !isEqual(prevSpec, spec);\n\n result.reRender = true;\n /**\n * 存在轴同步相关配置的时候,暂时通过`reMake`触发更新\n */\n if (prevSpec?.type !== spec?.type || prevSpec?.visible !== spec?.visible) {\n result.reMake = true;\n return result;\n }\n\n if (spec?.grid?.visible === true && prevSpec?.grid?.visible !== true && !this._gridMark) {\n result.reMake = true;\n return result;\n }\n\n if (specChanged && !result.reMake && this._isComponentOnlySpecChange(spec, prevSpec)) {\n result.effects = {\n ...result.effects,\n component: true,\n layout: true,\n render: true\n };\n }\n\n return result;\n }\n\n private _isComponentOnlySpecChange(spec: T, prevSpec: T) {\n const keys = Object.keys({\n ...prevSpec,\n ...spec\n });\n\n return keys.every(key => {\n return isEqual(prevSpec?.[key], spec?.[key]) || AXIS_COMPONENT_ONLY_CHANGE_KEYS[key];\n });\n }\n\n protected _getAxisAttributes() {\n const spec = this._spec;\n const axisAttrs: any = {\n orient: this.getOrient(),\n select: this._option.disableTriggerEvent === true ? false : spec.select,\n hover: this._option.disableTriggerEvent === true ? false : spec.hover\n };\n\n // 属性均需要显示开启\n if (spec.domainLine && spec.domainLine.visible) {\n axisAttrs.line = transformAxisLineStyle(spec.domainLine);\n } else {\n axisAttrs.line = { visible: false };\n }\n\n if (spec.label && spec.label.visible) {\n const labelSpec = pickWithout(spec.label, ['style', 'formatMethod', 'state']);\n axisAttrs.label = labelSpec;\n if (spec.label.style) {\n axisAttrs.label.style = isFunction(spec.label.style)\n ? (datum: Datum, index: number, data: Datum[], layer?: number) => {\n const style = spec.label.style(datum.rawValue, index, datum, data, layer);\n return transformToGraphic(mergeSpec({}, this._theme.label?.style, style));\n }\n : transformToGraphic(spec.label.style);\n }\n if (spec.label.formatMethod || spec.label.formatter) {\n axisAttrs.label.formatMethod = this._getLabelFormatMethod();\n }\n if (spec.label.state) {\n axisAttrs.label.state = transformAxisLabelStateStyle(spec.label.state);\n }\n if (isFunction(spec.label.dataFilter)) {\n axisAttrs.label.dataFilter = (data: AxisItem[], layer: number) =>\n spec.label.dataFilter(data, layer, { vchart: this._option.globalInstance });\n }\n } else {\n axisAttrs.label = {\n visible: false\n };\n }\n\n if (spec.tick && spec.tick.visible) {\n axisAttrs.tick = {\n visible: spec.tick.visible,\n length: spec.tick.tickSize,\n inside: spec.tick.inside,\n alignWithLabel: spec.tick.alignWithLabel,\n dataFilter: isFunction(spec.tick.dataFilter)\n ? (data: AxisItem[]) => spec.tick.dataFilter(data, { vchart: this._option.globalInstance })\n : undefined\n };\n if (spec.tick.style) {\n axisAttrs.tick.style = isFunction(spec.tick.style)\n ? (value: number, index: number, datum: Datum, data: Datum[]) => {\n const style = (spec.tick.style as any)(value, index, datum, data);\n return transformToGraphic(mergeSpec({}, this._theme.tick?.style, style));\n }\n : transformToGraphic(spec.tick.style);\n }\n if (spec.tick.state) {\n axisAttrs.tick.state = transformStateStyle(spec.tick.state);\n }\n } else {\n axisAttrs.tick = {\n visible: false\n };\n }\n\n if (spec.subTick && spec.subTick.visible) {\n axisAttrs.subTick = {\n visible: spec.subTick.visible,\n length: spec.subTick.tickSize,\n inside: spec.subTick.inside,\n count: spec.subTick.tickCount\n };\n if (spec.subTick.style) {\n axisAttrs.subTick.style = isFunction(spec.subTick.style)\n ? (value: number, index: number, datum: Datum, data: Datum[]) => {\n const style = (spec.subTick.style as any)(value, index, datum, data);\n return transformToGraphic(mergeSpec({}, this._theme.subTick?.style, style));\n }\n : transformToGraphic(spec.subTick.style);\n }\n if (spec.subTick.state) {\n axisAttrs.subTick.state = transformStateStyle(spec.subTick.state);\n }\n } else {\n axisAttrs.subTick = {\n visible: false\n };\n }\n\n if (spec.title && spec.title.visible) {\n const {\n autoRotate,\n angle,\n style: titleStyle = {},\n background: titleBackgroundSpec,\n state: titleState,\n shape: titleShapeSpec,\n ...restTitleAttrs\n } = spec.title;\n let titleAngle = angle;\n let titleTextStyle;\n if (spec.orient === 'left' || spec.orient === 'right') {\n // 处理纵轴的标题样式\n if (autoRotate && isNil(titleAngle)) {\n titleAngle = spec.orient === 'left' ? -90 : 90;\n titleTextStyle = (DEFAULT_TITLE_STYLE as any)[spec.orient];\n }\n }\n\n axisAttrs.title = {\n ...restTitleAttrs,\n autoRotate: false, // 默认不对外提供该配置\n angle: titleAngle ? degreeToRadian(titleAngle) : null,\n textStyle: mergeSpec({}, titleTextStyle, transformToGraphic(titleStyle)),\n pickable: titleStyle.pickable !== false,\n childrenPickable: titleStyle.pickable !== false,\n state: {}\n };\n\n if (titleShapeSpec && titleShapeSpec.visible) {\n axisAttrs.title.shape = {\n ...titleShapeSpec,\n style: transformToGraphic(titleShapeSpec.style)\n };\n if (titleShapeSpec.state) {\n axisAttrs.title.state.shape = transformStateStyle(titleShapeSpec.state);\n }\n } else {\n axisAttrs.title.shape = { visible: false };\n }\n\n if (titleBackgroundSpec && titleBackgroundSpec.visible) {\n axisAttrs.title.background = {\n ...titleBackgroundSpec,\n style: transformToGraphic(titleBackgroundSpec.style)\n };\n if (titleBackgroundSpec.state) {\n axisAttrs.title.state.background = transformStateStyle(titleBackgroundSpec.state);\n }\n } else {\n axisAttrs.title.background = { visible: false };\n }\n\n if (titleState) {\n axisAttrs.title.state.text = transformStateStyle(titleState);\n }\n } else {\n axisAttrs.title = {\n visible: false\n };\n }\n\n if (spec.background && spec.background.visible) {\n axisAttrs.panel = {\n visible: true\n };\n if (spec.background.style) {\n axisAttrs.panel.style = transformToGraphic(spec.background.style);\n }\n if (spec.background.state) {\n axisAttrs.panel.state = transformStateStyle(spec.background.state);\n }\n } else {\n axisAttrs.panel = {\n visible: false\n };\n }\n\n return axisAttrs;\n }\n\n protected _getGridAttributes() {\n const spec = this._spec;\n return {\n alternateColor: transformFunctionAttribute(spec.grid.alternateColor),\n alignWithLabel: spec.grid.alignWithLabel,\n style: isFunction(spec.grid.style)\n ? (datum: Datum, index: number) => {\n const style = spec.grid.style(datum.datum?.rawValue, index, datum.datum);\n return transformToGraphic(mergeSpec({}, this._theme.grid?.style, style));\n }\n : transformToGraphic(spec.grid.style),\n subGrid:\n spec.subGrid.visible === false\n ? { visible: false }\n : {\n type: 'line',\n visible: spec.subGrid.visible,\n alternateColor: transformFunctionAttribute(spec.subGrid.alternateColor),\n style: transformToGraphic(spec.subGrid.style)\n }\n };\n }\n\n protected _getLabelFormatMethod() {\n const { formatMethod, formatter } = this._spec.label;\n const { formatFunc } = getFormatFunction(formatMethod, formatter);\n return formatFunc ? (value: any, datum: any, index: number) => formatFunc(datum.rawValue, datum, formatter) : null;\n }\n\n protected abstract registerTicksTransform(): string;\n\n protected _initTickDataSet<T extends ITickDataOpt>(options: T, index: number = 0) {\n registerDataSetInstanceParser(this._option.dataSet, 'scale', scaleParser);\n const name = this.registerTicksTransform();\n const tickData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_ticks_${index}` })\n .parse(this._scales[index], {\n type: 'scale'\n })\n .transform(\n {\n type: name,\n options\n },\n false\n );\n return tickData;\n }\n\n protected _tickTransformOption(): ITickDataOpt {\n const tick = this._tick || {};\n const label = this._spec.label || {};\n const { tickCount, forceTickCount, tickStep, tickMode } = tick;\n const { style: labelStyle, formatMethod: labelFormatter, minGap: labelGap } = label;\n return {\n sampling: this._spec.sampling !== false,\n tickCount,\n forceTickCount,\n tickStep,\n tickMode,\n axisOrientType: this._orient,\n coordinateType: this._coordinateType,\n\n labelStyle,\n labelFormatter,\n labelGap\n };\n }\n\n addTransformToTickData(options: ITransformOptions, execute?: boolean) {\n this._tickData.forEach(tickData => {\n tickData?.getDataView()?.transform(options, execute);\n });\n }\n\n dataToPosition(values: any[]): number {\n return this._scale.scale(values);\n }\n\n getDatum(childGraphic?: IGraphic) {\n if (childGraphic && childGraphic.name === AXIS_ELEMENT_NAME.label) {\n return childGraphic.data;\n }\n\n if (this._axisMark) {\n return (this._axisMark.getComponent() as any)?.attribute.items;\n }\n }\n\n scaleRangeFactor(_?: [number, number], slience?: boolean, clear?: boolean) {\n this._onTickDataChange(this.getTickData());\n return (this.getScale() as IContinuousScale | IBandLikeScale).rangeFactor(_, slience, clear);\n }\n\n scaleRangeFactorEnd(_?: number, slience?: boolean, clear?: boolean) {\n this._onTickDataChange(this.getTickData());\n return (this.getScale() as IContinuousScale | IBandLikeScale).rangeFactorEnd(_, slience);\n }\n\n scaleRangeFactorStart(_?: number, slience?: boolean, clear?: boolean) {\n this._onTickDataChange(this.getTickData());\n return (this.getScale() as IContinuousScale | IBandLikeScale).rangeFactorStart(_, slience);\n }\n}\n\nexport const registerAxis = () => {\n registerComponentMark();\n Factory.registerAnimation('axis', () => ({\n appear: {\n type: 'fadeIn'\n },\n enter: {\n type: 'fadeIn'\n },\n update: {\n type: 'update'\n },\n exit: {\n type: 'fadeOut'\n // custom: GroupFadeOut\n }\n }));\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/axis/base-axis.ts"],"names":[],"mappings":"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","file":"base-axis.js","sourcesContent":["import type { IGroup } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport type { ITickDataOpt, AxisItem } from '@visactor/vrender-components';\nimport type { IBandLikeScale, IBaseScale, IContinuousScale } from '@visactor/vscale';\n// eslint-disable-next-line no-duplicate-imports\nimport { isContinuous } from '@visactor/vscale';\nimport type { IGraphic } from '@visactor/vrender-core';\n// eslint-disable-next-line no-duplicate-imports\nimport type {\n IOrientType,\n IPolarOrientType,\n Datum,\n StringOrNumber,\n IGroup as ISeriesGroup,\n CoordinateType\n} from '../../typings';\nimport { BaseComponent } from '../base/base-component';\nimport { CompilableData } from '../../compile/data';\nimport { AxisEnum, GridEnum, type IAxis, type ICommonAxisSpec, type ITick } from './interface';\nimport { ComponentTypeEnum, type IComponentOption } from '../interface';\nimport { eachSeries, getSeries } from '../../util/model';\n// eslint-disable-next-line no-duplicate-imports\nimport { mergeSpec } from '@visactor/vutils-extension';\nimport type { ISeries } from '../../series/interface';\nimport { ChartEvent } from '../../constant/event';\nimport { LayoutZIndex } from '../../constant/layout';\nimport { animationConfig } from '../../animation/utils';\n// eslint-disable-next-line no-duplicate-imports\nimport {\n degreeToRadian,\n pickWithout,\n isEqual,\n array,\n get,\n isArray,\n isFunction,\n isNil,\n isValid,\n maxInArray\n} from '@visactor/vutils';\nimport { DEFAULT_TITLE_STYLE, transformAxisLineStyle } from './util';\nimport { transformAxisLabelStateStyle, transformStateStyle, transformToGraphic } from '../../util/style';\nimport type { ITransformOptions } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { DataView } from '@visactor/vdataset';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerComponentMark } from '../../mark/component';\nimport { Factory } from '../../core/factory';\n// eslint-disable-next-line no-duplicate-imports\nimport { AXIS_ELEMENT_NAME, GroupTransition } from '@visactor/vrender-components';\n// eslint-disable-next-line no-duplicate-imports\nimport { GroupFadeOut, GroupFadeIn } from '@visactor/vrender-animate';\nimport { scaleParser } from '../../data/parser/scale';\nimport { registerDataSetInstanceParser } from '../../data/register';\nimport { getFormatFunction } from '../util';\nimport type { IComponentMark } from '../../mark/interface/mark';\nimport type { ICompilableMark } from '../../compile/mark';\nimport type { ICompilableData } from './../../compile/data/interface';\nimport { transformFunctionAttribute } from '../../util/spec/transform';\n\nexport abstract class AxisComponent<T extends ICommonAxisSpec & Record<string, any> = any> // FIXME: 补充公共类型,去掉 Record<string, any>\n extends BaseComponent<T>\n implements IAxis\n{\n static specKey = 'axes';\n specKey = 'axes';\n\n protected _orient: IPolarOrientType | IOrientType;\n getOrient() {\n return this._orient;\n }\n\n protected _scale!: IBaseScale;\n getScale() {\n return this._scale;\n }\n\n protected _scales: IBaseScale[] = [];\n getScales() {\n return this._scales;\n }\n\n protected _tickData: CompilableData[] = [];\n getTickData(index = 0) {\n return this._tickData[index];\n }\n\n // 与系列的关联关系\n // 优先级:id > index\n // 最终结果:series & region取交集\n protected _seriesUserId?: StringOrNumber[];\n protected _seriesIndex?: number[];\n protected _regionUserId?: StringOrNumber[];\n protected _regionIndex?: number[];\n\n /**\n * if axis will be shown\n */\n protected _visible: boolean = true;\n getVisible() {\n return this._visible;\n }\n get visible() {\n return this._visible;\n }\n\n protected _specVisible: boolean = true;\n protected _hideWhenEmpty: boolean = false;\n\n /** 轴是否产生反转的真实值,在横向图表的竖轴上可能和用户在 spec 上配的值相反 */\n protected _inverse: boolean;\n getInverse() {\n return this._inverse;\n }\n\n protected _tick: ITick | undefined = undefined;\n protected abstract computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[];\n abstract valueToPosition(value: any): number;\n protected abstract axisHelper(): any;\n protected abstract getSeriesStatisticsField(s: ISeries): string[];\n protected abstract updateSeriesScale(): void;\n protected abstract collectSeriesField(depth: number, series: ISeries): string | string[];\n abstract transformScaleDomain(): void;\n abstract updateScaleRange(): boolean;\n protected abstract getDefaultInteractive(): boolean;\n\n protected _dataFieldText: string;\n protected _axisMark: IComponentMark;\n\n protected _gridMark: IComponentMark;\n\n protected _coordinateType: CoordinateType;\n getCoordinateType() {\n return this._coordinateType;\n }\n\n constructor(spec: T, options: IComponentOption) {\n super(spec, options);\n this._specVisible = spec.visible ?? true;\n this._hideWhenEmpty = spec.hideWhenEmpty ?? false;\n this._visible = this._specVisible;\n this._coordinateType = 'none';\n }\n\n setAttrFromSpec() {\n super.setAttrFromSpec();\n this._specVisible = this._spec.visible ?? true;\n this._hideWhenEmpty = this._spec.hideWhenEmpty ?? false;\n this._visible = this._specVisible;\n\n if (this._scale) {\n this._refreshVisibilityByData();\n }\n }\n\n getVRenderComponents() {\n return [this._axisMark?.getProduct(), this._gridMark?.getProduct()].filter(isValid);\n }\n\n created() {\n super.created();\n //series and regions\n this.setSeriesAndRegionsFromSpec();\n // event\n this.initEvent();\n // scales\n this.initScales();\n this.updateSeriesScale();\n this._refreshVisibilityByData();\n // data\n this._shouldComputeTickData() && this._initData();\n\n if (this._specVisible) {\n // 创建语法元素\n const axisMark = this._createMark(\n { type: 'component', name: `axis-${this.getOrient()}` },\n {\n componentType: this.getOrient() === 'angle' ? AxisEnum.circleAxis : AxisEnum.lineAxis,\n mode: this._spec.mode\n },\n {\n skipTheme: true // skip theme of vgrammar to avoid merge\n }\n );\n this._updateTickDataMarks(axisMark);\n this._axisMark = axisMark as IComponentMark;\n axisMark.setMarkConfig({ zIndex: this.layoutZIndex });\n if (isValid(this._spec.id)) {\n axisMark.setUserId(this._spec.id);\n }\n axisMark.setMarkConfig({ interactive: this._spec.interactive ?? this.getDefaultInteractive() });\n this._marks.addMark(axisMark);\n\n if (this._spec.grid?.visible) {\n const gridMark = this._createMark(\n { type: 'component', name: `axis-${this.getOrient()}-grid` },\n {\n componentType: this.getOrient() === 'angle' ? GridEnum.circleAxisGrid : GridEnum.lineAxisGrid,\n mode: this._spec.mode\n },\n {\n skipTheme: true\n }\n );\n\n this._updateTickDataMarks(gridMark);\n gridMark.setMarkConfig({\n zIndex: this._spec.grid?.style?.zIndex ?? this._spec.grid?.zIndex ?? LayoutZIndex.Axis_Grid,\n interactive: false // 轴网格线关闭交互\n });\n this._marks.addMark(gridMark);\n this._gridMark = gridMark as IComponentMark;\n }\n\n this._syncComponentVisibility();\n\n // Tip: 支持 spec.animationAppear.axis,并且坐标轴默认关闭动画\n if (\n this._option.globalInstance?.isAnimationEnable() &&\n get(this._option.getChart().getSpec(), 'animation') !== false &&\n this._spec.animation === true\n ) {\n const axisAnimateConfig = animationConfig(Factory.getAnimationInKey('axis')?.(), {\n appear:\n this._spec.animationAppear ??\n get(this._option.getChart().getSpec(), 'animationAppear.axis') ??\n get(this._option.getChart().getSpec(), 'animationAppear'),\n disappear:\n this._spec.animationDisappear ??\n get(this._option.getChart().getSpec(), 'animationDisappear.axis') ??\n get(this._option.getChart().getSpec(), 'animationDisappear'),\n enter:\n this._spec.animationEnter ??\n get(this._option.getChart().getSpec(), 'animationEnter.axis') ??\n get(this._option.getChart().getSpec(), 'animationEnter'),\n exit:\n this._spec.animationExit ??\n get(this._option.getChart().getSpec(), 'animationExit.axis') ??\n get(this._option.getChart().getSpec(), 'animationExit'),\n update:\n this._spec.animationUpdate ??\n get(this._option.getChart().getSpec(), 'animationUpdate.axis') ??\n get(this._option.getChart().getSpec(), 'animationUpdate')\n });\n // 因为坐标轴的更新动画中处理了 enter,所以需要将 enter 的参数传入\n if (axisAnimateConfig.enter) {\n axisAnimateConfig.update[0].customParameters = {\n enter: axisAnimateConfig.enter[0]\n };\n }\n this._marks.forEach(m => m.setAnimationConfig(axisAnimateConfig));\n }\n }\n }\n\n protected _shouldComputeTickData() {\n // 当轴被展示、或者强制要求计算 data 时再计算 data\n return this._specVisible && (this.getVisible() || this._spec.forceInitTick || this._hideWhenEmpty);\n }\n\n protected _onTickDataChange = (tickData?: ICompilableData) => {\n this._forceLayout();\n tickData?.updateData();\n };\n\n // data\n protected _initData() {\n const tickData = this._initTickDataSet(this._tickTransformOption());\n const tickDataCompile = new CompilableData(this._option, tickData);\n this._tickData = [tickDataCompile];\n tickData.target.addListener('change', () => {\n this._onTickDataChange(tickDataCompile);\n });\n }\n\n protected collectData(depth: number, rawData?: boolean) {\n const data: { min: number; max: number; values: any[] }[] = [];\n this._regions &&\n eachSeries(\n this._regions,\n s => {\n let field = this.collectSeriesField(depth, s);\n field = (isArray(field) ? (isContinuous(this._scale.type) ? field : [field[0]]) : [field]) as string[];\n if (!depth) {\n this._dataFieldText = s.getFieldAlias(field[0]);\n }\n\n if (field) {\n const viewData = s.getViewData();\n if (rawData) {\n field.forEach(f => {\n data.push(\n s.getRawDataStatisticsByField(f, !!isContinuous(this._scale.type)) as {\n min: number;\n max: number;\n values: any[];\n }\n );\n });\n } else if (viewData && viewData.latestData && viewData.latestData.length) {\n const seriesData = s.getViewDataStatistics?.();\n const userSetBreaks =\n this.type === ComponentTypeEnum.cartesianLinearAxis && this._spec.breaks && this._spec.breaks.length;\n\n field.forEach(f => {\n if (seriesData?.latestData?.[f]) {\n if (userSetBreaks) {\n data.push({\n ...seriesData.latestData[f],\n values: viewData.latestData.map((obj: Datum) => obj[f])\n });\n } else {\n data.push(seriesData.latestData[f]);\n }\n }\n });\n }\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return data;\n }\n\n protected isSeriesDataEnable() {\n let enable = true;\n eachSeries(\n this._regions,\n s => {\n if (isArray(s.getViewDataStatistics()?.latestData)) {\n enable = false;\n }\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n return enable;\n }\n\n protected setSeriesAndRegionsFromSpec() {\n const { seriesId, seriesIndex, regionId, regionIndex } = this._spec;\n isValid(seriesId) && (this._seriesUserId = array(seriesId));\n isValid(regionId) && (this._regionUserId = array(regionId));\n isValid(seriesIndex) && (this._seriesIndex = array(seriesIndex));\n isValid(regionIndex) && (this._regionIndex = array(regionIndex));\n this._regions = this._option.getRegionsInUserIdOrIndex(this._regionUserId as string[], this._regionIndex);\n // _regions 被更新了,layoutBindRegionID 也要更新\n this.layout.layoutBindRegionID = this._regions.map(x => x.id);\n }\n\n getBindSeriesFilter() {\n return {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n };\n }\n\n protected initEvent() {\n this.event.on(\n ChartEvent.scaleUpdate,\n { filter: ({ model }) => model?.id === this.id },\n this.effect.scaleUpdate.bind(this)\n );\n const viewStatistics = getSeries(this._regions, {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n })\n .map(s => s.getViewDataStatistics())\n .filter(v => !!v);\n\n if (viewStatistics.length > 1) {\n this._option.dataSet.multipleDataViewAddListener(viewStatistics, 'change', () => {\n this.updateScaleDomain();\n });\n } else if (viewStatistics.length === 1) {\n viewStatistics[0].target.addListener('change', () => {\n this.updateScaleDomain();\n });\n }\n\n eachSeries(\n this._regions,\n s => {\n s.event.on(ChartEvent.rawDataUpdate, { filter: ({ model }) => model?.id === s.id }, () => {\n // 只清除,不更新,在需要时,更新一次。避免多系列下多次更新\n this._clearRawDomain();\n });\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n }\n\n protected updateScaleDomain() {\n // 留给各个类型的 axis 来 override\n }\n\n protected _hasCollectedSeriesData() {\n return this.collectData(0).length > 0;\n }\n\n protected _refreshVisibilityByData() {\n const nextVisible = this._specVisible && (!this._hideWhenEmpty || this._hasCollectedSeriesData());\n const changed = this._visible !== nextVisible;\n this._visible = nextVisible;\n\n if (this._axisMark || this._gridMark) {\n this._syncComponentVisibility();\n }\n\n if (changed) {\n this._forceLayout();\n }\n\n return changed;\n }\n\n protected _syncComponentVisibility() {\n this._axisMark?.setVisible(this._visible);\n this._gridMark?.setVisible(this._visible && this._spec.grid?.visible !== false);\n\n (this._axisMark?.getComponent?.() as IGroup)?.setAttributes?.({ visibleAll: this._visible });\n (this._gridMark?.getComponent?.() as IGroup)?.setAttributes?.({\n visibleAll: this._visible && this._spec.grid?.visible !== false\n });\n }\n\n protected _clearRawDomain() {\n // 留给各个类型的 axis 来 override\n }\n\n onLayoutEnd(): void {\n const changed = this.updateScaleRange();\n\n this.event.emit(ChartEvent.scaleUpdate, { model: this, value: 'range' });\n\n super.onLayoutEnd();\n }\n\n protected computeData(updateType?: 'domain' | 'range' | 'force'): void {\n // 对应问题#3287: 轴隐藏(tickData为[])时, dataZoom/scrollBar无法触发视图更新\n // 解决方式: dataZoom/scrollBar更新时, 使用force, 此时即使没有tickData也要触发视图更新\n // ps:\n // 1. 其他逻辑没有使用force更新, 所以不会带来额外影响\n // 2. force更新时, 如果有tickData仍然走老逻辑, 这里只考虑force && 无tickData的情况\n if (updateType === 'force' && (!this._tickData || !this._tickData.length)) {\n eachSeries(\n this._regions,\n s => {\n s.getViewData()?.reRunAllTransform();\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n } else if (\n this._tickData &&\n this._tickData.length &&\n (updateType === 'force' || !isEqual(this._scale.range(), [0, 1]))\n ) {\n this._tickData.forEach(tickData => {\n tickData.getDataView().reRunAllTransform({\n skipEqual: true\n });\n });\n }\n }\n\n protected _updateTickDataMarks(m: ICompilableMark) {\n if (this._tickData) {\n this._tickData.forEach(d => {\n d.addRelatedMark(m);\n });\n }\n }\n\n protected initScales() {\n this._scales = [this._scale];\n const groups: ISeriesGroup[] = [];\n eachSeries(\n this._regions,\n s => {\n const g = s.getGroups();\n g && groups.push(g);\n },\n {\n userId: this._seriesUserId,\n specIndex: this._seriesIndex\n }\n );\n if (groups.length !== 0) {\n const depth = maxInArray(groups.map(g => g.fields.length));\n for (let i = 1; i < depth; i++) {\n const scale = this._scale.clone();\n this._scales.push(scale);\n }\n }\n // this.updateScaleDomain();\n }\n\n /** Update API **/\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n if (result.reMake) {\n return result;\n }\n\n result.reRender = true;\n /**\n * 存在轴同步相关配置的时候,暂时通过`reMake`触发更新\n */\n if (prevSpec?.type !== spec?.type || prevSpec?.visible !== spec?.visible) {\n result.reMake = true;\n return result;\n }\n\n result.reMake = ['grid', 'subGrid', 'tick', 'subTick', 'label', 'domainLine', 'title'].some(k => {\n return prevSpec?.[k]?.visible !== spec?.[k]?.visible;\n });\n\n return result;\n }\n\n protected _getAxisAttributes() {\n const spec = this._spec;\n const axisAttrs: any = {\n orient: this.getOrient(),\n select: this._option.disableTriggerEvent === true ? false : spec.select,\n hover: this._option.disableTriggerEvent === true ? false : spec.hover\n };\n\n // 属性均需要显示开启\n if (spec.domainLine && spec.domainLine.visible) {\n axisAttrs.line = transformAxisLineStyle(spec.domainLine);\n } else {\n axisAttrs.line = { visible: false };\n }\n\n if (spec.label && spec.label.visible) {\n const labelSpec = pickWithout(spec.label, ['style', 'formatMethod', 'state']);\n axisAttrs.label = labelSpec;\n if (spec.label.style) {\n axisAttrs.label.style = isFunction(spec.label.style)\n ? (datum: Datum, index: number, data: Datum[], layer?: number) => {\n const style = spec.label.style(datum.rawValue, index, datum, data, layer);\n return transformToGraphic(mergeSpec({}, this._theme.label?.style, style));\n }\n : transformToGraphic(spec.label.style);\n }\n if (spec.label.formatMethod || spec.label.formatter) {\n axisAttrs.label.formatMethod = this._getLabelFormatMethod();\n }\n if (spec.label.state) {\n axisAttrs.label.state = transformAxisLabelStateStyle(spec.label.state);\n }\n if (isFunction(spec.label.dataFilter)) {\n axisAttrs.label.dataFilter = (data: AxisItem[], layer: number) =>\n spec.label.dataFilter(data, layer, { vchart: this._option.globalInstance });\n }\n } else {\n axisAttrs.label = {\n visible: false\n };\n }\n\n if (spec.tick && spec.tick.visible) {\n axisAttrs.tick = {\n visible: spec.tick.visible,\n length: spec.tick.tickSize,\n inside: spec.tick.inside,\n alignWithLabel: spec.tick.alignWithLabel,\n dataFilter: isFunction(spec.tick.dataFilter)\n ? (data: AxisItem[]) => spec.tick.dataFilter(data, { vchart: this._option.globalInstance })\n : undefined\n };\n if (spec.tick.style) {\n axisAttrs.tick.style = isFunction(spec.tick.style)\n ? (value: number, index: number, datum: Datum, data: Datum[]) => {\n const style = (spec.tick.style as any)(value, index, datum, data);\n return transformToGraphic(mergeSpec({}, this._theme.tick?.style, style));\n }\n : transformToGraphic(spec.tick.style);\n }\n if (spec.tick.state) {\n axisAttrs.tick.state = transformStateStyle(spec.tick.state);\n }\n } else {\n axisAttrs.tick = {\n visible: false\n };\n }\n\n if (spec.subTick && spec.subTick.visible) {\n axisAttrs.subTick = {\n visible: spec.subTick.visible,\n length: spec.subTick.tickSize,\n inside: spec.subTick.inside,\n count: spec.subTick.tickCount\n };\n if (spec.subTick.style) {\n axisAttrs.subTick.style = isFunction(spec.subTick.style)\n ? (value: number, index: number, datum: Datum, data: Datum[]) => {\n const style = (spec.subTick.style as any)(value, index, datum, data);\n return transformToGraphic(mergeSpec({}, this._theme.subTick?.style, style));\n }\n : transformToGraphic(spec.subTick.style);\n }\n if (spec.subTick.state) {\n axisAttrs.subTick.state = transformStateStyle(spec.subTick.state);\n }\n } else {\n axisAttrs.subTick = {\n visible: false\n };\n }\n\n if (spec.title && spec.title.visible) {\n const {\n autoRotate,\n angle,\n style: titleStyle = {},\n background: titleBackgroundSpec,\n state: titleState,\n shape: titleShapeSpec,\n ...restTitleAttrs\n } = spec.title;\n let titleAngle = angle;\n let titleTextStyle;\n if (spec.orient === 'left' || spec.orient === 'right') {\n // 处理纵轴的标题样式\n if (autoRotate && isNil(titleAngle)) {\n titleAngle = spec.orient === 'left' ? -90 : 90;\n titleTextStyle = (DEFAULT_TITLE_STYLE as any)[spec.orient];\n }\n }\n\n axisAttrs.title = {\n ...restTitleAttrs,\n autoRotate: false, // 默认不对外提供该配置\n angle: titleAngle ? degreeToRadian(titleAngle) : null,\n textStyle: mergeSpec({}, titleTextStyle, transformToGraphic(titleStyle)),\n pickable: titleStyle.pickable !== false,\n childrenPickable: titleStyle.pickable !== false,\n state: {}\n };\n\n if (titleShapeSpec && titleShapeSpec.visible) {\n axisAttrs.title.shape = {\n ...titleShapeSpec,\n style: transformToGraphic(titleShapeSpec.style)\n };\n if (titleShapeSpec.state) {\n axisAttrs.title.state.shape = transformStateStyle(titleShapeSpec.state);\n }\n } else {\n axisAttrs.title.shape = { visible: false };\n }\n\n if (titleBackgroundSpec && titleBackgroundSpec.visible) {\n axisAttrs.title.background = {\n ...titleBackgroundSpec,\n style: transformToGraphic(titleBackgroundSpec.style)\n };\n if (titleBackgroundSpec.state) {\n axisAttrs.title.state.background = transformStateStyle(titleBackgroundSpec.state);\n }\n } else {\n axisAttrs.title.background = { visible: false };\n }\n\n if (titleState) {\n axisAttrs.title.state.text = transformStateStyle(titleState);\n }\n } else {\n axisAttrs.title = {\n visible: false\n };\n }\n\n if (spec.background && spec.background.visible) {\n axisAttrs.panel = {\n visible: true\n };\n if (spec.background.style) {\n axisAttrs.panel.style = transformToGraphic(spec.background.style);\n }\n if (spec.background.state) {\n axisAttrs.panel.state = transformStateStyle(spec.background.state);\n }\n } else {\n axisAttrs.panel = {\n visible: false\n };\n }\n\n return axisAttrs;\n }\n\n protected _getGridAttributes() {\n const spec = this._spec;\n return {\n alternateColor: transformFunctionAttribute(spec.grid.alternateColor),\n alignWithLabel: spec.grid.alignWithLabel,\n style: isFunction(spec.grid.style)\n ? (datum: Datum, index: number) => {\n const style = spec.grid.style(datum.datum?.rawValue, index, datum.datum);\n return transformToGraphic(mergeSpec({}, this._theme.grid?.style, style));\n }\n : transformToGraphic(spec.grid.style),\n subGrid:\n spec.subGrid.visible === false\n ? { visible: false }\n : {\n type: 'line',\n visible: spec.subGrid.visible,\n alternateColor: transformFunctionAttribute(spec.subGrid.alternateColor),\n style: transformToGraphic(spec.subGrid.style)\n }\n };\n }\n\n protected _getLabelFormatMethod() {\n const { formatMethod, formatter } = this._spec.label;\n const { formatFunc } = getFormatFunction(formatMethod, formatter);\n return formatFunc ? (value: any, datum: any, index: number) => formatFunc(datum.rawValue, datum, formatter) : null;\n }\n\n protected abstract registerTicksTransform(): string;\n\n protected _initTickDataSet<T extends ITickDataOpt>(options: T, index: number = 0) {\n registerDataSetInstanceParser(this._option.dataSet, 'scale', scaleParser);\n const name = this.registerTicksTransform();\n const tickData = new DataView(this._option.dataSet, { name: `${this.type}_${this.id}_ticks_${index}` })\n .parse(this._scales[index], {\n type: 'scale'\n })\n .transform(\n {\n type: name,\n options\n },\n false\n );\n return tickData;\n }\n\n protected _tickTransformOption(): ITickDataOpt {\n const tick = this._tick || {};\n const label = this._spec.label || {};\n const { tickCount, forceTickCount, tickStep, tickMode } = tick;\n const { style: labelStyle, formatMethod: labelFormatter, minGap: labelGap } = label;\n return {\n sampling: this._spec.sampling !== false,\n tickCount,\n forceTickCount,\n tickStep,\n tickMode,\n axisOrientType: this._orient,\n coordinateType: this._coordinateType,\n\n labelStyle,\n labelFormatter,\n labelGap\n };\n }\n\n addTransformToTickData(options: ITransformOptions, execute?: boolean) {\n this._tickData.forEach(tickData => {\n tickData?.getDataView()?.transform(options, execute);\n });\n }\n\n dataToPosition(values: any[]): number {\n return this._scale.scale(values);\n }\n\n getDatum(childGraphic?: IGraphic) {\n if (childGraphic && childGraphic.name === AXIS_ELEMENT_NAME.label) {\n return childGraphic.data;\n }\n\n if (this._axisMark) {\n return (this._axisMark.getComponent() as any)?.attribute.items;\n }\n }\n\n scaleRangeFactor(_?: [number, number], slience?: boolean, clear?: boolean) {\n this._onTickDataChange(this.getTickData());\n return (this.getScale() as IContinuousScale | IBandLikeScale).rangeFactor(_, slience, clear);\n }\n\n scaleRangeFactorEnd(_?: number, slience?: boolean, clear?: boolean) {\n this._onTickDataChange(this.getTickData());\n return (this.getScale() as IContinuousScale | IBandLikeScale).rangeFactorEnd(_, slience);\n }\n\n scaleRangeFactorStart(_?: number, slience?: boolean, clear?: boolean) {\n this._onTickDataChange(this.getTickData());\n return (this.getScale() as IContinuousScale | IBandLikeScale).rangeFactorStart(_, slience);\n }\n}\n\nexport const registerAxis = () => {\n registerComponentMark();\n Factory.registerAnimation('axis', () => ({\n appear: {\n type: 'fadeIn'\n },\n enter: {\n type: 'fadeIn'\n },\n update: {\n type: 'update'\n },\n exit: {\n type: 'fadeOut'\n // custom: GroupFadeOut\n }\n }));\n};\n"]}
|
|
@@ -43,7 +43,13 @@ export declare class CartesianBandAxis<T extends ICartesianBandAxisSpec = ICarte
|
|
|
43
43
|
maxBandSize: number;
|
|
44
44
|
minBandSize: number;
|
|
45
45
|
};
|
|
46
|
-
_compareSpec(spec: T, prevSpec: T):
|
|
46
|
+
_compareSpec(spec: T, prevSpec: T): {
|
|
47
|
+
change: boolean;
|
|
48
|
+
reMake: boolean;
|
|
49
|
+
reRender: boolean;
|
|
50
|
+
reSize: boolean;
|
|
51
|
+
reCompile: boolean;
|
|
52
|
+
};
|
|
47
53
|
reInit(spec?: T): void;
|
|
48
54
|
}
|
|
49
55
|
export declare const registerCartesianBandAxis: () => void;
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.registerCartesianBandAxis = exports.CartesianBandAxis = void 0;
|
|
6
6
|
|
|
7
|
-
const vscale_1 = require("@visactor/vscale"), axis_1 = require("./axis"), interface_1 = require("../../interface"), vutils_1 = require("@visactor/vutils"), band_axis_mixin_1 = require("../mixin/band-axis-mixin"), factory_1 = require("../../../core/factory"), base_axis_1 = require("../base-axis"),
|
|
7
|
+
const vscale_1 = require("@visactor/vscale"), axis_1 = require("./axis"), interface_1 = require("../../interface"), vutils_1 = require("@visactor/vutils"), band_axis_mixin_1 = require("../mixin/band-axis-mixin"), factory_1 = require("../../../core/factory"), base_axis_1 = require("../base-axis"), vrender_components_1 = require("@visactor/vrender-components"), register_1 = require("../../../data/register"), vrender_components_2 = require("@visactor/vrender-components"), interface_2 = require("../interface"), band_axis_1 = require("../../../theme/builtin/common/component/axis/band-axis"), common_axis_1 = require("../../../theme/builtin/common/component/axis/common-axis"), cartesian_axis_1 = require("../../../theme/builtin/common/component/axis/cartesian-axis");
|
|
8
8
|
|
|
9
9
|
class CartesianBandAxis extends axis_1.CartesianAxis {
|
|
10
10
|
constructor() {
|
|
@@ -36,7 +36,7 @@ class CartesianBandAxis extends axis_1.CartesianAxis {
|
|
|
36
36
|
}
|
|
37
37
|
registerTicksTransform() {
|
|
38
38
|
const name = `${this.type}-ticks`;
|
|
39
|
-
return (0, register_1.registerDataSetInstanceTransform)(this._option.dataSet, name,
|
|
39
|
+
return (0, register_1.registerDataSetInstanceTransform)(this._option.dataSet, name, vrender_components_1.linearDiscreteTicks),
|
|
40
40
|
name;
|
|
41
41
|
}
|
|
42
42
|
transformScaleDomain() {
|
|
@@ -93,8 +93,8 @@ CartesianBandAxis.specKey = "axes", CartesianBandAxis.builtInTheme = {
|
|
|
93
93
|
}, (0, vutils_1.mixin)(CartesianBandAxis, band_axis_mixin_1.BandAxisMixin);
|
|
94
94
|
|
|
95
95
|
const registerCartesianBandAxis = () => {
|
|
96
|
-
factory_1.Factory.registerGraphicComponent(interface_2.AxisEnum.lineAxis, ((attrs, options) => new
|
|
97
|
-
factory_1.Factory.registerGraphicComponent(interface_2.GridEnum.lineAxisGrid, ((attrs, options) => new
|
|
96
|
+
factory_1.Factory.registerGraphicComponent(interface_2.AxisEnum.lineAxis, ((attrs, options) => new vrender_components_2.LineAxis(attrs, options))),
|
|
97
|
+
factory_1.Factory.registerGraphicComponent(interface_2.GridEnum.lineAxisGrid, ((attrs, options) => new vrender_components_1.LineAxisGrid(attrs, options))),
|
|
98
98
|
(0, base_axis_1.registerAxis)(), factory_1.Factory.registerComponent(CartesianBandAxis.type, CartesianBandAxis, !1);
|
|
99
99
|
};
|
|
100
100
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/axis/cartesian/band-axis.ts"],"names":[],"mappings":"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","file":"band-axis.js","sourcesContent":["import { BandScale, scaleWholeRangeSize } from '@visactor/vscale';\nimport { CartesianAxis } from './axis';\nimport type { ICartesianBandAxisSpec } from './interface';\nimport { ComponentTypeEnum } from '../../interface';\nimport { isEqual, isNil, isString, isValid, mixin } from '@visactor/vutils';\nimport { BandAxisMixin } from '../mixin/band-axis-mixin';\nimport type { StringOrNumber } from '../../../typings';\nimport { Factory } from '../../../core/factory';\nimport { registerAxis } from '../base-axis';\nimport { linearDiscreteTicks } from '@visactor/vrender-components/axis/tick-data/discrete/linear';\nimport { LineAxisGrid } from '@visactor/vrender-components/axis/grid/line';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport type { VRenderComponentOptions } from '../../../core/interface';\nimport { LineAxis } from '@visactor/vrender-components/axis/line';\nimport type { IGroup } from '@visactor/vrender-core';\nimport { AxisEnum, GridEnum } from '../interface';\nimport { axisBand } from '../../../theme/builtin/common/component/axis/band-axis';\nimport { commonAxis } from '../../../theme/builtin/common/component/axis/common-axis';\nimport { axisX, axisY } from '../../../theme/builtin/common/component/axis/cartesian-axis';\n\nexport interface CartesianBandAxis<T extends ICartesianBandAxisSpec = ICartesianBandAxisSpec>\n extends Pick<\n BandAxisMixin,\n 'valueToPosition' | 'updateGroupScaleRange' | 'getPosition' | 'calcScales' | 'computeBandDomain'\n >,\n CartesianAxis<T> {}\n\nexport class CartesianBandAxis<T extends ICartesianBandAxisSpec = ICartesianBandAxisSpec> extends CartesianAxis<T> {\n static type = ComponentTypeEnum.cartesianBandAxis;\n type = ComponentTypeEnum.cartesianBandAxis;\n\n static specKey = 'axes';\n static readonly builtInTheme = {\n axis: commonAxis,\n axisBand,\n axisX,\n axisY\n };\n\n protected _scale: BandScale = new BandScale();\n\n protected declare _scales: BandScale[];\n\n protected computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[] {\n return this.computeBandDomain(data);\n }\n\n updateScaleRange() {\n const isChanged = super.updateScaleRange();\n this.updateGroupScaleRange();\n\n return isChanged;\n }\n\n protected initScales() {\n super.initScales();\n this.calcScales(this._defaultBandInnerPadding, this._defaultBandOuterPadding);\n }\n\n protected axisHelper() {\n const getScale = (depth: number = 0) => {\n return this._scales[depth];\n };\n const getBandwidth = (depth: number = 0) => {\n return getScale(depth).bandwidth();\n };\n\n return {\n isContinuous: false,\n dataToPosition: this.dataToPosition.bind(this),\n getScale,\n getBandwidth,\n getAxisType: () => this.type,\n getAxisId: () => this.id,\n isInverse: () => this._inverse,\n getSpec: () => this._spec\n };\n }\n\n protected registerTicksTransform() {\n const name = `${this.type}-ticks`;\n registerDataSetInstanceTransform(this._option.dataSet, name, linearDiscreteTicks);\n\n return name;\n }\n transformScaleDomain() {\n this.updateFixedWholeLength();\n }\n\n updateFixedWholeLength() {\n if (this._scale) {\n const { bandSize, maxBandSize, minBandSize } = this._getOuterBandSizeFromSpec();\n if (bandSize) {\n this._scale.bandwidth(bandSize);\n }\n if (maxBandSize) {\n this._scale.maxBandwidth(maxBandSize);\n }\n if (minBandSize) {\n this._scale.minBandwidth(minBandSize);\n }\n // 更改 region 最大大小\n if (this._scale.isBandwidthFixed() && this._spec.autoRegionSize && (bandSize || maxBandSize)) {\n const rangeSize = scaleWholeRangeSize(\n this._scale.domain().length,\n bandSize ?? maxBandSize,\n this._scale.paddingInner(),\n this._scale.paddingOuter()\n );\n if (['bottom', 'top'].includes(this._orient)) {\n this._regions.forEach(region => region.setMaxWidth(rangeSize));\n } else if (['left', 'right'].includes(this._orient)) {\n this._regions.forEach(region => region.setMaxHeight(rangeSize));\n }\n }\n }\n }\n\n /** 获取最外层 scale 的实际 bandSize 配置 */\n protected _getOuterBandSizeFromSpec() {\n let { bandSize, maxBandSize, minBandSize, bandSizeLevel = 0 } = this._spec;\n const { gap, extend = 0 } = this._spec.bandSizeExtend ?? {};\n bandSizeLevel = Math.min(bandSizeLevel, this._scales.length - 1);\n\n // 由内而外计算最外层 scale 的 bandSize\n for (let i = bandSizeLevel; i > 0; i--) {\n const scale = this._scales[i];\n const domain = scale.domain();\n const paddingInner = scale.paddingInner();\n const paddingOuter = scale.paddingOuter();\n\n const getOuterBandSize = (b: number) => {\n const extendValue = i === bandSizeLevel ? extend : 0;\n if (isNil(gap) || i < bandSizeLevel) {\n return scaleWholeRangeSize(domain.length, b, paddingInner, paddingOuter) + extendValue;\n }\n const gapValue = isString(gap) ? b * (Number(gap.substring(0, gap.length - 1)) / 100) : gap;\n // 这里使组间距恰好等于柱间距\n return ((b + gapValue) * domain.length) / (this._scales[i - 1].paddingInner() + 1) + extendValue;\n };\n\n if (isValid(bandSize)) {\n bandSize = getOuterBandSize(bandSize);\n }\n if (isValid(maxBandSize)) {\n maxBandSize = getOuterBandSize(maxBandSize);\n }\n if (isValid(minBandSize)) {\n minBandSize = getOuterBandSize(minBandSize);\n }\n }\n\n return {\n bandSize,\n maxBandSize,\n minBandSize\n };\n }\n\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n if (result.reMake) {\n return result;\n }\n\n if (prevSpec?.showAllGroupLayers !== spec?.showAllGroupLayers || !isEqual(prevSpec?.layers, spec?.layers)) {\n result.reMake = true;\n }\n\n return result;\n }\n\n reInit(spec?: T): void {\n super.reInit();\n\n (this as any)?._updateData();\n }\n}\n\nmixin(CartesianBandAxis, BandAxisMixin);\n\nexport const registerCartesianBandAxis = () => {\n Factory.registerGraphicComponent(AxisEnum.lineAxis, (attrs: any, options: VRenderComponentOptions) => {\n return new LineAxis(attrs, options) as unknown as IGroup;\n });\n Factory.registerGraphicComponent(GridEnum.lineAxisGrid, (attrs: any, options: VRenderComponentOptions) => {\n return new LineAxisGrid(attrs, options) as unknown as IGroup;\n });\n registerAxis();\n Factory.registerComponent(CartesianBandAxis.type, CartesianBandAxis, false);\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/axis/cartesian/band-axis.ts"],"names":[],"mappings":"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","file":"band-axis.js","sourcesContent":["import { BandScale, scaleWholeRangeSize } from '@visactor/vscale';\nimport { CartesianAxis } from './axis';\nimport type { ICartesianBandAxisSpec } from './interface';\nimport { ComponentTypeEnum } from '../../interface';\nimport { isEqual, isNil, isString, isValid, mixin } from '@visactor/vutils';\nimport { BandAxisMixin } from '../mixin/band-axis-mixin';\nimport type { StringOrNumber } from '../../../typings';\nimport { Factory } from '../../../core/factory';\nimport { registerAxis } from '../base-axis';\nimport { linearDiscreteTicks, LineAxisGrid } from '@visactor/vrender-components';\nimport { registerDataSetInstanceTransform } from '../../../data/register';\nimport type { VRenderComponentOptions } from '../../../core/interface';\nimport { LineAxis } from '@visactor/vrender-components';\nimport type { IGroup } from '@visactor/vrender-core';\nimport { AxisEnum, GridEnum } from '../interface';\nimport { axisBand } from '../../../theme/builtin/common/component/axis/band-axis';\nimport { commonAxis } from '../../../theme/builtin/common/component/axis/common-axis';\nimport { axisX, axisY } from '../../../theme/builtin/common/component/axis/cartesian-axis';\n\nexport interface CartesianBandAxis<T extends ICartesianBandAxisSpec = ICartesianBandAxisSpec>\n extends Pick<\n BandAxisMixin,\n 'valueToPosition' | 'updateGroupScaleRange' | 'getPosition' | 'calcScales' | 'computeBandDomain'\n >,\n CartesianAxis<T> {}\n\nexport class CartesianBandAxis<T extends ICartesianBandAxisSpec = ICartesianBandAxisSpec> extends CartesianAxis<T> {\n static type = ComponentTypeEnum.cartesianBandAxis;\n type = ComponentTypeEnum.cartesianBandAxis;\n\n static specKey = 'axes';\n static readonly builtInTheme = {\n axis: commonAxis,\n axisBand,\n axisX,\n axisY\n };\n\n protected _scale: BandScale = new BandScale();\n\n protected declare _scales: BandScale[];\n\n protected computeDomain(data: { min: number; max: number; values: any[] }[]): StringOrNumber[] {\n return this.computeBandDomain(data);\n }\n\n updateScaleRange() {\n const isChanged = super.updateScaleRange();\n this.updateGroupScaleRange();\n\n return isChanged;\n }\n\n protected initScales() {\n super.initScales();\n this.calcScales(this._defaultBandInnerPadding, this._defaultBandOuterPadding);\n }\n\n protected axisHelper() {\n const getScale = (depth: number = 0) => {\n return this._scales[depth];\n };\n const getBandwidth = (depth: number = 0) => {\n return getScale(depth).bandwidth();\n };\n\n return {\n isContinuous: false,\n dataToPosition: this.dataToPosition.bind(this),\n getScale,\n getBandwidth,\n getAxisType: () => this.type,\n getAxisId: () => this.id,\n isInverse: () => this._inverse,\n getSpec: () => this._spec\n };\n }\n\n protected registerTicksTransform() {\n const name = `${this.type}-ticks`;\n registerDataSetInstanceTransform(this._option.dataSet, name, linearDiscreteTicks);\n\n return name;\n }\n transformScaleDomain() {\n this.updateFixedWholeLength();\n }\n\n updateFixedWholeLength() {\n if (this._scale) {\n const { bandSize, maxBandSize, minBandSize } = this._getOuterBandSizeFromSpec();\n if (bandSize) {\n this._scale.bandwidth(bandSize);\n }\n if (maxBandSize) {\n this._scale.maxBandwidth(maxBandSize);\n }\n if (minBandSize) {\n this._scale.minBandwidth(minBandSize);\n }\n // 更改 region 最大大小\n if (this._scale.isBandwidthFixed() && this._spec.autoRegionSize && (bandSize || maxBandSize)) {\n const rangeSize = scaleWholeRangeSize(\n this._scale.domain().length,\n bandSize ?? maxBandSize,\n this._scale.paddingInner(),\n this._scale.paddingOuter()\n );\n if (['bottom', 'top'].includes(this._orient)) {\n this._regions.forEach(region => region.setMaxWidth(rangeSize));\n } else if (['left', 'right'].includes(this._orient)) {\n this._regions.forEach(region => region.setMaxHeight(rangeSize));\n }\n }\n }\n }\n\n /** 获取最外层 scale 的实际 bandSize 配置 */\n protected _getOuterBandSizeFromSpec() {\n let { bandSize, maxBandSize, minBandSize, bandSizeLevel = 0 } = this._spec;\n const { gap, extend = 0 } = this._spec.bandSizeExtend ?? {};\n bandSizeLevel = Math.min(bandSizeLevel, this._scales.length - 1);\n\n // 由内而外计算最外层 scale 的 bandSize\n for (let i = bandSizeLevel; i > 0; i--) {\n const scale = this._scales[i];\n const domain = scale.domain();\n const paddingInner = scale.paddingInner();\n const paddingOuter = scale.paddingOuter();\n\n const getOuterBandSize = (b: number) => {\n const extendValue = i === bandSizeLevel ? extend : 0;\n if (isNil(gap) || i < bandSizeLevel) {\n return scaleWholeRangeSize(domain.length, b, paddingInner, paddingOuter) + extendValue;\n }\n const gapValue = isString(gap) ? b * (Number(gap.substring(0, gap.length - 1)) / 100) : gap;\n // 这里使组间距恰好等于柱间距\n return ((b + gapValue) * domain.length) / (this._scales[i - 1].paddingInner() + 1) + extendValue;\n };\n\n if (isValid(bandSize)) {\n bandSize = getOuterBandSize(bandSize);\n }\n if (isValid(maxBandSize)) {\n maxBandSize = getOuterBandSize(maxBandSize);\n }\n if (isValid(minBandSize)) {\n minBandSize = getOuterBandSize(minBandSize);\n }\n }\n\n return {\n bandSize,\n maxBandSize,\n minBandSize\n };\n }\n\n _compareSpec(spec: T, prevSpec: T) {\n const result = super._compareSpec(spec, prevSpec);\n if (result.reMake) {\n return result;\n }\n\n if (prevSpec?.showAllGroupLayers !== spec?.showAllGroupLayers || !isEqual(prevSpec?.layers, spec?.layers)) {\n result.reMake = true;\n }\n\n return result;\n }\n\n reInit(spec?: T): void {\n super.reInit();\n\n (this as any)?._updateData();\n }\n}\n\nmixin(CartesianBandAxis, BandAxisMixin);\n\nexport const registerCartesianBandAxis = () => {\n Factory.registerGraphicComponent(AxisEnum.lineAxis, (attrs: any, options: VRenderComponentOptions) => {\n return new LineAxis(attrs, options) as unknown as IGroup;\n });\n Factory.registerGraphicComponent(GridEnum.lineAxisGrid, (attrs: any, options: VRenderComponentOptions) => {\n return new LineAxisGrid(attrs, options) as unknown as IGroup;\n });\n registerAxis();\n Factory.registerComponent(CartesianBandAxis.type, CartesianBandAxis, false);\n};\n"]}
|
|
@@ -4,7 +4,7 @@ import { CartesianAxis } from './axis';
|
|
|
4
4
|
import type { IAxisHelper, ICartesianAxisCommonTheme, ICartesianLinearAxisSpec } from './interface';
|
|
5
5
|
import { ComponentTypeEnum } from '../../interface/type';
|
|
6
6
|
import { LinearAxisMixin } from '../mixin/linear-axis-mixin';
|
|
7
|
-
import type { ICartesianTickDataOpt } from '@visactor/vrender-components
|
|
7
|
+
import type { ICartesianTickDataOpt } from '@visactor/vrender-components';
|
|
8
8
|
export interface CartesianLinearAxis<T extends ICartesianLinearAxisSpec = ICartesianLinearAxisSpec> extends Pick<LinearAxisMixin, 'setExtraAttrFromSpec' | 'computeLinearDomain' | 'valueToPosition' | 'setScaleNice' | '_domain' | 'transformScaleDomain' | 'setExtendDomain' | '_break'>, CartesianAxis<T> {
|
|
9
9
|
}
|
|
10
10
|
export declare class CartesianLinearAxis<T extends ICartesianLinearAxisSpec = ICartesianLinearAxisSpec> extends CartesianAxis<T> {
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.registerCartesianLinearAxis = exports.CartesianLinearAxis = void 0;
|
|
6
6
|
|
|
7
|
-
const vscale_1 = require("@visactor/vscale"), axis_1 = require("./axis"), vutils_1 = require("@visactor/vutils"), type_1 = require("../../interface/type"), linear_axis_mixin_1 = require("../mixin/linear-axis-mixin"), factory_1 = require("../../../core/factory"), base_axis_1 = require("../base-axis"), register_1 = require("../../../data/register"),
|
|
7
|
+
const vscale_1 = require("@visactor/vscale"), axis_1 = require("./axis"), vutils_1 = require("@visactor/vutils"), type_1 = require("../../interface/type"), linear_axis_mixin_1 = require("../mixin/linear-axis-mixin"), factory_1 = require("../../../core/factory"), base_axis_1 = require("../base-axis"), register_1 = require("../../../data/register"), vrender_components_1 = require("@visactor/vrender-components"), util_1 = require("./util"), util_2 = require("../../../util"), interface_1 = require("../interface"), linear_axis_1 = require("../../../theme/builtin/common/component/axis/linear-axis"), cartesian_axis_1 = require("../../../theme/builtin/common/component/axis/cartesian-axis"), common_axis_1 = require("../../../theme/builtin/common/component/axis/common-axis");
|
|
8
8
|
|
|
9
9
|
class CartesianLinearAxis extends axis_1.CartesianAxis {
|
|
10
10
|
constructor() {
|
|
@@ -71,7 +71,7 @@ class CartesianLinearAxis extends axis_1.CartesianAxis {
|
|
|
71
71
|
}
|
|
72
72
|
registerTicksTransform() {
|
|
73
73
|
const name = `${this.type}-ticks`;
|
|
74
|
-
return (0, register_1.registerDataSetInstanceTransform)(this._option.dataSet, name,
|
|
74
|
+
return (0, register_1.registerDataSetInstanceTransform)(this._option.dataSet, name, vrender_components_1.continuousTicks),
|
|
75
75
|
name;
|
|
76
76
|
}
|
|
77
77
|
}
|
|
@@ -85,8 +85,8 @@ CartesianLinearAxis.specKey = "axes", CartesianLinearAxis.builtInTheme = {
|
|
|
85
85
|
}, (0, vutils_1.mixin)(CartesianLinearAxis, linear_axis_mixin_1.LinearAxisMixin);
|
|
86
86
|
|
|
87
87
|
const registerCartesianLinearAxis = () => {
|
|
88
|
-
factory_1.Factory.registerGraphicComponent(interface_1.AxisEnum.lineAxis, ((attrs, options) => new
|
|
89
|
-
factory_1.Factory.registerGraphicComponent(interface_1.GridEnum.lineAxisGrid, ((attrs, options) => new
|
|
88
|
+
factory_1.Factory.registerGraphicComponent(interface_1.AxisEnum.lineAxis, ((attrs, options) => new vrender_components_1.LineAxis(attrs, options))),
|
|
89
|
+
factory_1.Factory.registerGraphicComponent(interface_1.GridEnum.lineAxisGrid, ((attrs, options) => new vrender_components_1.LineAxisGrid(attrs, options))),
|
|
90
90
|
(0, base_axis_1.registerAxis)(), factory_1.Factory.registerComponent(CartesianLinearAxis.type, CartesianLinearAxis);
|
|
91
91
|
};
|
|
92
92
|
|