@visactor/vchart 1.3.1 → 1.4.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/es5/index.js +3 -3
- package/build/index.js +15097 -11432
- package/build/index.min.js +2 -2
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/chart/base-chart.d.ts +5 -0
- package/cjs/chart/base-chart.js +43 -24
- package/cjs/chart/base-chart.js.map +1 -1
- package/cjs/chart/common/common.d.ts +2 -0
- package/cjs/chart/common/common.js +15 -1
- package/cjs/chart/common/common.js.map +1 -1
- package/cjs/chart/interface/chart.d.ts +5 -0
- package/cjs/chart/interface/chart.js.map +1 -1
- package/cjs/chart/rose/rose.js.map +1 -1
- package/cjs/compile/compiler.d.ts +2 -2
- package/cjs/compile/compiler.js +32 -13
- 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/mark/compilable-mark.d.ts +9 -4
- package/cjs/compile/mark/compilable-mark.js +20 -6
- package/cjs/compile/mark/compilable-mark.js.map +1 -1
- package/cjs/compile/mark/interface.d.ts +4 -2
- package/cjs/compile/mark/interface.js.map +1 -1
- package/cjs/compile/signal/state-manager.d.ts +1 -1
- package/cjs/compile/signal/state-manager.js +1 -1
- package/cjs/compile/signal/state-manager.js.map +1 -1
- package/cjs/component/axis/base-axis.d.ts +14 -13
- package/cjs/component/axis/base-axis.js +46 -37
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/axis.js +64 -32
- package/cjs/component/axis/cartesian/axis.js.map +1 -1
- package/cjs/component/axis/cartesian/interface/spec.js.map +1 -1
- package/cjs/component/axis/cartesian/time-axis.js.map +1 -1
- package/cjs/component/axis/interface.d.ts +1 -0
- package/cjs/component/axis/interface.js.map +1 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.js +1 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/cjs/component/axis/polar/axis.d.ts +2 -1
- package/cjs/component/axis/polar/axis.js +69 -51
- package/cjs/component/axis/polar/axis.js.map +1 -1
- package/cjs/component/base/base-component.js +2 -2
- package/cjs/component/base/base-component.js.map +1 -1
- package/cjs/component/crosshair/base.d.ts +1 -1
- package/cjs/component/crosshair/base.js +4 -2
- package/cjs/component/crosshair/base.js.map +1 -1
- package/cjs/component/crosshair/cartesian.d.ts +1 -1
- package/cjs/component/crosshair/cartesian.js +2 -2
- package/cjs/component/crosshair/cartesian.js.map +1 -1
- package/cjs/component/crosshair/interface/spec.d.ts +1 -0
- package/cjs/component/crosshair/interface/spec.js.map +1 -1
- package/cjs/component/crosshair/polar.d.ts +1 -1
- package/cjs/component/crosshair/polar.js +2 -2
- package/cjs/component/crosshair/polar.js.map +1 -1
- package/cjs/component/label/label.d.ts +12 -6
- package/cjs/component/label/label.js +73 -58
- package/cjs/component/label/label.js.map +1 -1
- package/cjs/component/label/totalLabel.js +4 -3
- package/cjs/component/label/totalLabel.js.map +1 -1
- package/cjs/component/label/util.d.ts +44 -6
- package/cjs/component/label/util.js +123 -7
- package/cjs/component/label/util.js.map +1 -1
- package/cjs/component/legend/base-legend.d.ts +1 -1
- package/cjs/component/legend/util.d.ts +1 -1
- package/cjs/component/tooltip/handler/base.d.ts +2 -2
- package/cjs/component/tooltip/handler/base.js +15 -14
- package/cjs/component/tooltip/handler/base.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/model/interface.d.ts +3 -3
- package/cjs/component/tooltip/handler/dom/model/interface.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/util.d.ts +1 -1
- package/cjs/component/tooltip/handler/dom/util.js.map +1 -1
- package/cjs/component/tooltip/handler/utils/attribute.d.ts +1 -1
- package/cjs/component/tooltip/handler/utils/attribute.js.map +1 -1
- package/cjs/component/tooltip/tooltip.d.ts +1 -1
- package/cjs/component/tooltip/tooltip.js +11 -12
- package/cjs/component/tooltip/tooltip.js.map +1 -1
- package/cjs/constant/event.d.ts +2 -1
- package/cjs/constant/event.js +1 -1
- package/cjs/constant/event.js.map +1 -1
- package/cjs/constant/index.d.ts +1 -1
- package/cjs/constant/index.js +1 -1
- package/cjs/constant/index.js.map +1 -1
- package/cjs/core/index.d.ts +1 -1
- package/cjs/core/index.js +1 -1
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/interface.d.ts +8 -0
- package/cjs/core/interface.js.map +1 -1
- package/cjs/core/vchart.d.ts +12 -2
- package/cjs/core/vchart.js +51 -17
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/data/transforms/dimension-data.js +6 -4
- package/cjs/data/transforms/dimension-data.js.map +1 -1
- package/cjs/data/transforms/dimension-statistics.d.ts +0 -29
- package/cjs/data/transforms/dimension-statistics.js +31 -73
- package/cjs/data/transforms/dimension-statistics.js.map +1 -1
- package/cjs/data/transforms/waterfall.js +4 -3
- package/cjs/data/transforms/waterfall.js.map +1 -1
- package/cjs/event/event-dispatcher.d.ts +2 -0
- package/cjs/event/event-dispatcher.js +13 -2
- package/cjs/event/event-dispatcher.js.map +1 -1
- package/cjs/event/events/dimension/dimension-hover.js +1 -1
- package/cjs/event/events/dimension/dimension-hover.js.map +1 -1
- package/cjs/mark/base/base-mark.js +4 -4
- package/cjs/mark/base/base-mark.js.map +1 -1
- package/cjs/mark/interface/type.d.ts +2 -1
- package/cjs/mark/interface/type.js +1 -1
- package/cjs/mark/interface/type.js.map +1 -1
- package/cjs/mark/label.d.ts +26 -0
- package/cjs/mark/label.js +34 -0
- package/cjs/mark/label.js.map +1 -0
- package/cjs/model/base-model.d.ts +1 -1
- package/cjs/model/interface.d.ts +1 -1
- package/cjs/model/interface.js.map +1 -1
- package/cjs/plugin/components/axis-sync-plugin/tick-align-transform.js +3 -4
- package/cjs/plugin/components/axis-sync-plugin/tick-align-transform.js.map +1 -1
- package/cjs/series/area/area.js +1 -1
- package/cjs/series/area/area.js.map +1 -1
- package/cjs/series/base/base-series.d.ts +5 -6
- package/cjs/series/base/base-series.js +16 -10
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/base/group.d.ts +2 -1
- package/cjs/series/base/group.js.map +1 -1
- package/cjs/series/funnel/funnel-3d.d.ts +2 -0
- package/cjs/series/funnel/funnel-3d.js +15 -21
- package/cjs/series/funnel/funnel-3d.js.map +1 -1
- package/cjs/series/funnel/funnel.d.ts +4 -2
- package/cjs/series/funnel/funnel.js +55 -53
- package/cjs/series/funnel/funnel.js.map +1 -1
- package/cjs/series/gauge/gauge.js +2 -2
- package/cjs/series/gauge/gauge.js.map +1 -1
- package/cjs/series/interface/series.d.ts +4 -5
- package/cjs/series/interface/series.js.map +1 -1
- package/cjs/series/line/line.js +1 -1
- package/cjs/series/line/line.js.map +1 -1
- package/cjs/series/pie/pie-3d.js +2 -2
- package/cjs/series/pie/pie-3d.js.map +1 -1
- package/cjs/series/pie/pie.js +3 -3
- package/cjs/series/pie/pie.js.map +1 -1
- package/cjs/series/polar/progress-like/progress-like.js +5 -6
- package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
- package/cjs/series/radar/radar.js +4 -4
- package/cjs/series/radar/radar.js.map +1 -1
- package/cjs/series/sunburst/sunburst.d.ts +1 -1
- package/cjs/series/waterfall/waterfall.d.ts +6 -2
- package/cjs/series/waterfall/waterfall.js +47 -46
- package/cjs/series/waterfall/waterfall.js.map +1 -1
- package/cjs/theme/builtin/common/series/waterfall.js +1 -0
- package/cjs/theme/builtin/common/series/waterfall.js.map +1 -1
- package/cjs/theme/theme-manager.d.ts +1 -1
- package/cjs/theme/theme-manager.js +2 -2
- package/cjs/theme/theme-manager.js.map +1 -1
- package/cjs/typings/group.d.ts +8 -0
- package/cjs/{data/transforms/tick-data/interface.js → typings/group.js} +1 -1
- package/cjs/typings/group.js.map +1 -0
- package/cjs/typings/index.d.ts +1 -0
- package/cjs/typings/index.js +1 -1
- package/cjs/typings/index.js.map +1 -1
- package/cjs/typings/visual.d.ts +3 -3
- package/cjs/typings/visual.js.map +1 -1
- package/cjs/util/data.js.map +1 -1
- package/cjs/util/env.js +1 -1
- package/cjs/util/env.js.map +1 -1
- package/cjs/util/math.d.ts +5 -19
- package/cjs/util/math.js +22 -120
- package/cjs/util/math.js.map +1 -1
- package/cjs/util/spec/common.d.ts +2 -0
- package/cjs/util/spec/common.js +8 -3
- package/cjs/util/spec/common.js.map +1 -1
- package/cjs/util/spec/merge-spec.d.ts +4 -0
- package/cjs/util/spec/merge-spec.js +12 -2
- package/cjs/util/spec/merge-spec.js.map +1 -1
- package/cjs/util/style.js +1 -1
- package/cjs/util/style.js.map +1 -1
- package/cjs/util/text.d.ts +4 -3
- package/cjs/util/text.js +5 -8
- package/cjs/util/text.js.map +1 -1
- package/cjs/vchart-all.js +1 -1
- package/cjs/vchart-all.js.map +1 -1
- package/esm/chart/base-chart.d.ts +5 -0
- package/esm/chart/base-chart.js +44 -24
- package/esm/chart/base-chart.js.map +1 -1
- package/esm/chart/common/common.d.ts +2 -0
- package/esm/chart/common/common.js +16 -0
- package/esm/chart/common/common.js.map +1 -1
- package/esm/chart/interface/chart.d.ts +5 -0
- package/esm/chart/interface/chart.js.map +1 -1
- package/esm/chart/rose/rose.js.map +1 -1
- package/esm/compile/compiler.d.ts +2 -2
- package/esm/compile/compiler.js +31 -14
- 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/mark/compilable-mark.d.ts +9 -4
- package/esm/compile/mark/compilable-mark.js +20 -6
- package/esm/compile/mark/compilable-mark.js.map +1 -1
- package/esm/compile/mark/interface.d.ts +4 -2
- package/esm/compile/mark/interface.js.map +1 -1
- package/esm/compile/signal/state-manager.d.ts +1 -1
- package/esm/compile/signal/state-manager.js +1 -1
- package/esm/compile/signal/state-manager.js.map +1 -1
- package/esm/component/axis/base-axis.d.ts +14 -13
- package/esm/component/axis/base-axis.js +43 -34
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/axis/cartesian/axis.js +62 -28
- package/esm/component/axis/cartesian/axis.js.map +1 -1
- package/esm/component/axis/cartesian/interface/spec.js.map +1 -1
- package/esm/component/axis/cartesian/time-axis.js.map +1 -1
- package/esm/component/axis/interface.d.ts +1 -0
- package/esm/component/axis/interface.js.map +1 -1
- package/esm/component/axis/mixin/linear-axis-mixin.js +1 -1
- package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/esm/component/axis/polar/axis.d.ts +2 -1
- package/esm/component/axis/polar/axis.js +70 -53
- package/esm/component/axis/polar/axis.js.map +1 -1
- package/esm/component/base/base-component.js +2 -2
- package/esm/component/base/base-component.js.map +1 -1
- package/esm/component/crosshair/base.d.ts +1 -1
- package/esm/component/crosshair/base.js +4 -2
- package/esm/component/crosshair/base.js.map +1 -1
- package/esm/component/crosshair/cartesian.d.ts +1 -1
- package/esm/component/crosshair/cartesian.js +2 -2
- package/esm/component/crosshair/cartesian.js.map +1 -1
- package/esm/component/crosshair/interface/spec.d.ts +1 -0
- package/esm/component/crosshair/interface/spec.js.map +1 -1
- package/esm/component/crosshair/polar.d.ts +1 -1
- package/esm/component/crosshair/polar.js +2 -2
- package/esm/component/crosshair/polar.js.map +1 -1
- package/esm/component/label/label.d.ts +12 -6
- package/esm/component/label/label.js +77 -58
- package/esm/component/label/label.js.map +1 -1
- package/esm/component/label/totalLabel.js +4 -3
- package/esm/component/label/totalLabel.js.map +1 -1
- package/esm/component/label/util.d.ts +44 -6
- package/esm/component/label/util.js +121 -5
- package/esm/component/label/util.js.map +1 -1
- package/esm/component/legend/base-legend.d.ts +1 -1
- package/esm/component/legend/util.d.ts +1 -1
- package/esm/component/tooltip/handler/base.d.ts +2 -2
- package/esm/component/tooltip/handler/base.js +15 -14
- package/esm/component/tooltip/handler/base.js.map +1 -1
- package/esm/component/tooltip/handler/dom/dom-tooltip-handler.js.map +1 -1
- package/esm/component/tooltip/handler/dom/model/interface.d.ts +3 -3
- package/esm/component/tooltip/handler/dom/model/interface.js.map +1 -1
- package/esm/component/tooltip/handler/dom/util.d.ts +1 -1
- package/esm/component/tooltip/handler/dom/util.js.map +1 -1
- package/esm/component/tooltip/handler/utils/attribute.d.ts +1 -1
- package/esm/component/tooltip/handler/utils/attribute.js.map +1 -1
- package/esm/component/tooltip/tooltip.d.ts +1 -1
- package/esm/component/tooltip/tooltip.js +11 -12
- package/esm/component/tooltip/tooltip.js.map +1 -1
- package/esm/constant/event.d.ts +2 -1
- package/esm/constant/event.js +1 -1
- package/esm/constant/event.js.map +1 -1
- package/esm/constant/index.d.ts +1 -1
- package/esm/constant/index.js +1 -1
- package/esm/constant/index.js.map +1 -1
- package/esm/core/index.d.ts +1 -1
- package/esm/core/index.js +1 -1
- package/esm/core/index.js.map +1 -1
- package/esm/core/interface.d.ts +8 -0
- package/esm/core/interface.js.map +1 -1
- package/esm/core/vchart.d.ts +12 -2
- package/esm/core/vchart.js +49 -18
- package/esm/core/vchart.js.map +1 -1
- package/esm/data/transforms/dimension-data.js +6 -4
- package/esm/data/transforms/dimension-data.js.map +1 -1
- package/esm/data/transforms/dimension-statistics.d.ts +0 -29
- package/esm/data/transforms/dimension-statistics.js +28 -69
- package/esm/data/transforms/dimension-statistics.js.map +1 -1
- package/esm/data/transforms/waterfall.js +4 -4
- package/esm/data/transforms/waterfall.js.map +1 -1
- package/esm/event/event-dispatcher.d.ts +2 -0
- package/esm/event/event-dispatcher.js +13 -2
- package/esm/event/event-dispatcher.js.map +1 -1
- package/esm/event/events/dimension/dimension-hover.js +1 -1
- package/esm/event/events/dimension/dimension-hover.js.map +1 -1
- package/esm/mark/base/base-mark.js +5 -5
- package/esm/mark/base/base-mark.js.map +1 -1
- package/esm/mark/interface/type.d.ts +2 -1
- package/esm/mark/interface/type.js +1 -1
- package/esm/mark/interface/type.js.map +1 -1
- package/esm/mark/label.d.ts +26 -0
- package/esm/mark/label.js +30 -0
- package/esm/mark/label.js.map +1 -0
- package/esm/model/base-model.d.ts +1 -1
- package/esm/model/interface.d.ts +1 -1
- package/esm/model/interface.js.map +1 -1
- package/esm/plugin/components/axis-sync-plugin/tick-align-transform.js +3 -4
- package/esm/plugin/components/axis-sync-plugin/tick-align-transform.js.map +1 -1
- package/esm/series/area/area.js +1 -1
- package/esm/series/area/area.js.map +1 -1
- package/esm/series/base/base-series.d.ts +5 -6
- package/esm/series/base/base-series.js +16 -11
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/base/group.d.ts +2 -1
- package/esm/series/base/group.js.map +1 -1
- package/esm/series/funnel/funnel-3d.d.ts +2 -0
- package/esm/series/funnel/funnel-3d.js +15 -21
- package/esm/series/funnel/funnel-3d.js.map +1 -1
- package/esm/series/funnel/funnel.d.ts +4 -2
- package/esm/series/funnel/funnel.js +56 -53
- package/esm/series/funnel/funnel.js.map +1 -1
- package/esm/series/gauge/gauge.js +4 -2
- package/esm/series/gauge/gauge.js.map +1 -1
- package/esm/series/interface/series.d.ts +4 -5
- package/esm/series/interface/series.js.map +1 -1
- package/esm/series/line/line.js +1 -1
- package/esm/series/line/line.js.map +1 -1
- package/esm/series/pie/pie-3d.js +4 -2
- package/esm/series/pie/pie-3d.js.map +1 -1
- package/esm/series/pie/pie.js +4 -4
- package/esm/series/pie/pie.js.map +1 -1
- package/esm/series/polar/progress-like/progress-like.js +7 -6
- package/esm/series/polar/progress-like/progress-like.js.map +1 -1
- package/esm/series/radar/radar.js +6 -6
- package/esm/series/radar/radar.js.map +1 -1
- package/esm/series/sunburst/sunburst.d.ts +1 -1
- package/esm/series/waterfall/waterfall.d.ts +6 -2
- package/esm/series/waterfall/waterfall.js +49 -45
- package/esm/series/waterfall/waterfall.js.map +1 -1
- package/esm/theme/builtin/common/series/waterfall.js +1 -0
- package/esm/theme/builtin/common/series/waterfall.js.map +1 -1
- package/esm/theme/theme-manager.d.ts +1 -1
- package/esm/theme/theme-manager.js +3 -1
- package/esm/theme/theme-manager.js.map +1 -1
- package/esm/typings/group.d.ts +8 -0
- package/esm/typings/group.js +2 -0
- package/esm/typings/group.js.map +1 -0
- package/esm/typings/index.d.ts +1 -0
- package/esm/typings/index.js +2 -0
- package/esm/typings/index.js.map +1 -1
- package/esm/typings/visual.d.ts +3 -3
- package/esm/typings/visual.js.map +1 -1
- package/esm/util/data.js.map +1 -1
- package/esm/util/env.js +1 -1
- package/esm/util/env.js.map +1 -1
- package/esm/util/math.d.ts +5 -19
- package/esm/util/math.js +5 -107
- package/esm/util/math.js.map +1 -1
- package/esm/util/spec/common.d.ts +2 -0
- package/esm/util/spec/common.js +8 -0
- package/esm/util/spec/common.js.map +1 -1
- package/esm/util/spec/merge-spec.d.ts +4 -0
- package/esm/util/spec/merge-spec.js +10 -1
- package/esm/util/spec/merge-spec.js.map +1 -1
- package/esm/util/style.js +1 -1
- package/esm/util/style.js.map +1 -1
- package/esm/util/text.d.ts +4 -3
- package/esm/util/text.js +6 -12
- package/esm/util/text.js.map +1 -1
- package/esm/vchart-all.js +1 -1
- package/esm/vchart-all.js.map +1 -1
- package/package.json +14 -13
- package/cjs/component/label/bar.d.ts +0 -9
- package/cjs/component/label/bar.js +0 -47
- package/cjs/component/label/bar.js.map +0 -1
- package/cjs/component/label/pie.d.ts +0 -5
- package/cjs/component/label/pie.js +0 -21
- package/cjs/component/label/pie.js.map +0 -1
- package/cjs/component/label/symbol.d.ts +0 -9
- package/cjs/component/label/symbol.js +0 -26
- package/cjs/component/label/symbol.js.map +0 -1
- package/cjs/data/transforms/tick-data/config.d.ts +0 -1
- package/cjs/data/transforms/tick-data/config.js +0 -6
- package/cjs/data/transforms/tick-data/config.js.map +0 -1
- package/cjs/data/transforms/tick-data/continuous.d.ts +0 -3
- package/cjs/data/transforms/tick-data/continuous.js +0 -44
- package/cjs/data/transforms/tick-data/continuous.js.map +0 -1
- package/cjs/data/transforms/tick-data/discrete/linear.d.ts +0 -3
- package/cjs/data/transforms/tick-data/discrete/linear.js +0 -90
- package/cjs/data/transforms/tick-data/discrete/linear.js.map +0 -1
- package/cjs/data/transforms/tick-data/discrete/polar-angle.d.ts +0 -3
- package/cjs/data/transforms/tick-data/discrete/polar-angle.js +0 -46
- package/cjs/data/transforms/tick-data/discrete/polar-angle.js.map +0 -1
- package/cjs/data/transforms/tick-data/index.d.ts +0 -4
- package/cjs/data/transforms/tick-data/index.js +0 -36
- package/cjs/data/transforms/tick-data/index.js.map +0 -1
- package/cjs/data/transforms/tick-data/interface.d.ts +0 -31
- package/cjs/data/transforms/tick-data/interface.js.map +0 -1
- package/cjs/data/transforms/tick-data/util.d.ts +0 -15
- package/cjs/data/transforms/tick-data/util.js +0 -80
- package/cjs/data/transforms/tick-data/util.js.map +0 -1
- package/esm/component/label/bar.d.ts +0 -9
- package/esm/component/label/bar.js +0 -39
- package/esm/component/label/bar.js.map +0 -1
- package/esm/component/label/pie.d.ts +0 -5
- package/esm/component/label/pie.js +0 -13
- package/esm/component/label/pie.js.map +0 -1
- package/esm/component/label/symbol.d.ts +0 -9
- package/esm/component/label/symbol.js +0 -20
- package/esm/component/label/symbol.js.map +0 -1
- package/esm/data/transforms/tick-data/config.d.ts +0 -1
- package/esm/data/transforms/tick-data/config.js +0 -2
- package/esm/data/transforms/tick-data/config.js.map +0 -1
- package/esm/data/transforms/tick-data/continuous.d.ts +0 -3
- package/esm/data/transforms/tick-data/continuous.js +0 -43
- package/esm/data/transforms/tick-data/continuous.js.map +0 -1
- package/esm/data/transforms/tick-data/discrete/linear.d.ts +0 -3
- package/esm/data/transforms/tick-data/discrete/linear.js +0 -81
- package/esm/data/transforms/tick-data/discrete/linear.js.map +0 -1
- package/esm/data/transforms/tick-data/discrete/polar-angle.d.ts +0 -3
- package/esm/data/transforms/tick-data/discrete/polar-angle.js +0 -41
- package/esm/data/transforms/tick-data/discrete/polar-angle.js.map +0 -1
- package/esm/data/transforms/tick-data/index.d.ts +0 -4
- package/esm/data/transforms/tick-data/index.js +0 -21
- package/esm/data/transforms/tick-data/index.js.map +0 -1
- package/esm/data/transforms/tick-data/interface.d.ts +0 -31
- package/esm/data/transforms/tick-data/interface.js +0 -2
- package/esm/data/transforms/tick-data/interface.js.map +0 -1
- package/esm/data/transforms/tick-data/util.d.ts +0 -15
- package/esm/data/transforms/tick-data/util.js +0 -70
- package/esm/data/transforms/tick-data/util.js.map +0 -1
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { MarkTypeEnum } from "./interface";
|
|
2
|
+
|
|
3
|
+
import { TextMark } from "./text";
|
|
4
|
+
|
|
5
|
+
export class LabelMark extends TextMark {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments), this.skipEncode = !1;
|
|
8
|
+
}
|
|
9
|
+
getRule() {
|
|
10
|
+
return this._rule;
|
|
11
|
+
}
|
|
12
|
+
setRule(rule) {
|
|
13
|
+
this._rule = rule;
|
|
14
|
+
}
|
|
15
|
+
getTarget() {
|
|
16
|
+
return this._target;
|
|
17
|
+
}
|
|
18
|
+
setTarget(target) {
|
|
19
|
+
this._target = target;
|
|
20
|
+
}
|
|
21
|
+
getComponent() {
|
|
22
|
+
return this._component;
|
|
23
|
+
}
|
|
24
|
+
setComponent(component) {
|
|
25
|
+
this._component = component;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
LabelMark.type = MarkTypeEnum.text, LabelMark.constructorType = MarkTypeEnum.label;
|
|
30
|
+
//# sourceMappingURL=label.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mark/label.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAc,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,MAAM,OAAO,SAAU,SAAQ,QAAQ;IAAvC;;QAIE,eAAU,GAAG,KAAK,CAAC;IAyBrB,CAAC;IAtBC,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAGD,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IACD,SAAS,CAAC,MAAa;QACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAGD,YAAY;QACV,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,YAAY,CAAC,SAAgB;QAC3B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IAC9B,CAAC;;AA3Be,cAAI,GAAG,YAAY,CAAC,IAAI,CAAC;AACzB,yBAAe,GAAG,YAAY,CAAC,KAAK,CAAC","file":"label.js","sourcesContent":["import type { IComponentMark } from './component';\nimport { MarkTypeEnum, type IMark } from './interface';\nimport { TextMark } from './text';\n\nexport class LabelMark extends TextMark implements ILabelMark {\n static readonly type = MarkTypeEnum.text;\n static readonly constructorType = MarkTypeEnum.label;\n\n skipEncode = false;\n\n private _rule: string;\n getRule() {\n return this._rule;\n }\n setRule(rule: string) {\n this._rule = rule;\n }\n\n private _target: IMark;\n getTarget() {\n return this._target;\n }\n setTarget(target: IMark) {\n this._target = target;\n }\n\n private _component: IMark;\n getComponent() {\n return this._component;\n }\n setComponent(component: IMark) {\n this._component = component;\n }\n}\n\nexport interface ILabelMark extends IMark {\n skipEncode: boolean;\n\n getRule: () => string;\n setRule: (rule: string) => void;\n\n getTarget: () => IMark;\n setTarget: (target: IMark) => void;\n\n getComponent: () => IComponentMark;\n setComponent: (component: IComponentMark) => void;\n}\n"]}
|
|
@@ -45,7 +45,7 @@ export declare abstract class BaseModel<T extends IModelSpec> extends LayoutItem
|
|
|
45
45
|
coordinate?: CoordinateType;
|
|
46
46
|
protected _releaseEvent(): void;
|
|
47
47
|
created(): void;
|
|
48
|
-
updateState(newState: Record<string, unknown>): Promise<
|
|
48
|
+
updateState(newState: Record<string, unknown>): Promise<any>;
|
|
49
49
|
init(option: IModelInitOption): void;
|
|
50
50
|
afterInit(): void;
|
|
51
51
|
onLayoutStart(layoutRect: IRect, viewRect: ILayoutRect, ctx: any): void;
|
package/esm/model/interface.d.ts
CHANGED
|
@@ -136,7 +136,7 @@ export interface IModel extends ICompilable, ILayoutItem {
|
|
|
136
136
|
getChart: () => IChart;
|
|
137
137
|
created: () => void;
|
|
138
138
|
init: (option: IModelInitOption) => void;
|
|
139
|
-
reInit: (theme?: any) => void;
|
|
139
|
+
reInit: (theme?: any, lastSpec?: any) => void;
|
|
140
140
|
onLayoutStart: (layoutRect: IRect, viewRect: ILayoutRect, ctx: IModelLayoutOption) => void;
|
|
141
141
|
onLayoutEnd: (ctx: IModelLayoutOption) => void;
|
|
142
142
|
onEvaluateEnd: (ctx: IModelEvaluateOption) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/model/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IBoundsLike } from '@visactor/vutils';\nimport type { DataSet } from '@visactor/vdataset';\nimport type { IEvent, IEventDispatcher } from '../event/interface';\nimport type { IMark, IMarkRaw, IMarkStyle, MarkTypeEnum } from '../mark/interface';\nimport type { RenderMode } from '../typings/spec/common';\nimport type { VChart } from '../vchart-all';\nimport type { IData, IElement, IMark as IVGrammarMark } from '@visactor/vgrammar';\nimport type {\n IOrientType,\n IPoint,\n IGroupMarkSpec,\n ConvertToMarkStyleSpec,\n CoordinateType,\n ICommonSpec,\n IRect,\n StringOrNumber\n} from '../typings';\nimport type { ITheme } from '../theme';\nimport type { StateValueType } from '../typings/spec';\nimport type { ITooltipHelper } from './tooltip-helper';\nimport type { ModelStateManager } from './model-state-manager';\nimport type { ICompilable, ICompilableInitOption } from '../compile/interface';\nimport type { ICompilableData } from '../compile/data';\nimport type { IGlobalScale } from '../scale/interface';\nimport type { IChart } from '../chart/interface';\n\nexport type ILayoutNumber = number | IPercent | ((layoutRect: ILayoutRect) => number) | IPercentOffset;\n\nexport interface ILayoutPoint {\n x: number;\n y: number;\n}\n\nexport interface ILayoutRectLevel {\n width: number;\n height: number;\n}\nexport interface ILayoutRect {\n width: number;\n height: number;\n}\n\nexport type IPercent = `${number}%`;\n\nexport type IPercentOffset = { percent?: number; offset?: number };\n\nexport type ILayoutPercent = IPercent | number;\n\n/**\n * 相对布局和绝对布局\n * 在相对布局结束后进行二次的绝对布局\n * 绝对布局会只根据 chart 进行相对处理\n */\n\ntype ILayoutType = 'region-relative' | 'region' | 'normal' | 'absolute' | 'normal-inline';\n\nexport type ILayoutOrientPadding = {\n left?: ILayoutNumber;\n right?: ILayoutNumber;\n top?: ILayoutNumber;\n bottom?: ILayoutNumber;\n};\n\n/** 布局 padding的配置 */\nexport type ILayoutPaddingSpec = ILayoutOrientPadding | ILayoutNumber | ILayoutNumber[];\n\n/**\n * 因为这些元素都会继承到各个模块,所以这里统一有前缀避免语意冲突\n */\nexport interface ILayoutItem {\n /**\n * 标记这个布局Item的方向(left->right, right->left, top->bottom, bottom->top)\n */\n directionStr?: 'l2r' | 'r2l' | 't2b' | 'b2t';\n layoutClip: boolean;\n layoutType: ILayoutType;\n layoutBindRegionID: number | number[];\n layoutOrient: IOrientType;\n\n layoutPaddingLeft: number;\n layoutPaddingTop: number;\n layoutPaddingRight: number;\n layoutPaddingBottom: number;\n\n layoutOffsetX: number;\n layoutOffsetY: number;\n\n // 越大越先处理\n layoutLevel: number;\n\n layoutZIndex: number;\n chartLayoutRect: ILayoutRect;\n\n /** 是否可见 */\n getVisible: () => boolean;\n\n /** 是否自动缩进 */\n getAutoIndent: () => boolean;\n getLayoutStartPoint: () => ILayoutPoint;\n getLayoutRect: () => ILayoutRect;\n getLastComputeOutBounds: () => IBoundsLike;\n\n /**\n * 更新元素布局的 layoutRect 大小,用来更新指定布局空间\n */\n setLayoutRect: (rect: Partial<ILayoutRect>, levelMap?: Partial<ILayoutRectLevel>) => void;\n /**\n * 基于元素内部逻辑计算占位空间,rect表示可用空间\n */\n computeBoundsInRect: (rect: ILayoutRect) => ILayoutRect;\n /**\n * 更新元素布局的起始点位置\n */\n setLayoutStartPosition: (pos: Partial<IPoint>) => void;\n /**\n * 更新绝对布局元素的位置信息\n */\n absoluteLayoutInRect: (rect: IRect) => void;\n /**\n * 元素内部布局信息更新\n */\n updateLayoutAttribute: () => void;\n}\n\nexport interface ILayoutItemSpec {\n /** 当前模块的布局类型,配置为 absolute 的话,当前元素会以图表左上角为原点进行绝对布局 */\n layoutType?: ILayoutType;\n /**\n * 布局顺序等级,等级越大的,越优先布局\n * 比如顶部同时有标题和图例的场景,期望标题先放在顶部,然后放置图例。\n */\n layoutLevel?: number;\n\n // 基础的布局配置\n /** 模块布局位置 */\n orient?: IOrientType;\n /** 模块的布局间距 */\n padding?: ILayoutPaddingSpec;\n /** 是否按照 orient 自动修改 padding,隐藏位于外侧的 padding。目前只在组件上生效 */\n noOuterPadding?: boolean;\n /** 模块的布局大小:宽度 */\n width?: ILayoutNumber;\n /** 模块的布局最大宽度 */\n maxWidth?: ILayoutNumber;\n /** 模块的布局最小宽度 */\n minWidth?: ILayoutNumber;\n /** 模块的布局大小:高度 */\n height?: ILayoutNumber;\n /** 模块的布局最大高度 */\n maxHeight?: ILayoutNumber;\n /** 模块的布局最小高度 */\n minHeight?: ILayoutNumber;\n /** 模块的布局位置偏移:X */\n offsetX?: ILayoutNumber;\n /** 模块的布局位置偏移:Y */\n offsetY?: ILayoutNumber;\n\n /** 模块的展示层级,当2个模块重叠时,层级较大的展示在上方 */\n zIndex?: number;\n /** 模块是否裁剪超出布局区域外的绘图内容 */\n clip?: boolean;\n\n // 绝对布局下的对齐设置\n\n /** 模块绝对布局下,与图表左侧的距离。注意仅在 layoutType === 'absolute' 时生效 */\n left?: ILayoutNumber;\n /** 模块绝对布局下,与图表右侧的距离。注意仅在 layoutType === 'absolute' 时生效 */\n right?: ILayoutNumber;\n /** 模块绝对布局下,与图表顶部的距离。注意仅在 layoutType === 'absolute' 时生效 */\n top?: ILayoutNumber;\n /** 模块绝对布局下,与图表底部的距离。注意仅在 layoutType === 'absolute' 时生效 */\n bottom?: ILayoutNumber;\n /** 模块绝对布局下,元素将放置在图表的正中间。注意仅在 layoutType === 'absolute' 时生效,同时将忽略 padding 属性 */\n center?: boolean;\n}\n\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelInitOption {}\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelLayoutOption {}\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelEvaluateOption {}\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelRenderOption {}\n\nexport interface IEffect {\n [key: string]: (e?: any) => any;\n}\n\nexport interface IMarkTreeGroup extends Partial<IMarkStyle<IGroupMarkSpec>> {\n // 必须要有名字\n type: 'group';\n name: string;\n marks: (IMarkTreeGroup | IMark)[];\n // TODO: 这里要不要支持复杂场景,有图形组合的场景,用自定义mark?\n // from?: IData;\n}\n\nexport type IMarkTree = IMarkTreeGroup | IMark | (IMarkTreeGroup | IMark)[];\n\nexport interface IUpdateSpecResult {\n change: boolean;\n reMake: boolean;\n reMakeData?: boolean;\n reRender?: boolean;\n reSize?: boolean;\n // TODO: compile 的判断应不应该出现在这里?\n reCompile?: boolean;\n}\n\nexport interface IModelProduct {\n srData: IData;\n}\n\nexport interface IModel extends ICompilable, ILayoutItem {\n readonly modelType: string;\n readonly type: string;\n readonly specKey: string;\n\n readonly id: number;\n\n readonly userId?: StringOrNumber;\n\n // 事件\n readonly event: IEvent;\n\n // 副作用\n readonly effect: IEffect;\n\n // state如果绑定到mark的更新?\n // 组件的 mark 要怎么样描述,才能正确的基于组件状态进行样式更新?\n // 方案1: 组件的 state 关联到 mark 的状态。\n // 方案2: 组件设置 mark 属性,mark自身属性变化时,自己去更新。\n // react state\n readonly state: ModelStateManager;\n getState: () => ModelStateManager['_stateMap'];\n\n coordinate?: CoordinateType;\n\n // 初始化参数\n getOption: () => IModelOption;\n\n getMarks: () => IMark[];\n getMarkNameMap: () => Record<string, IMark>;\n getMarkInfoList: () => IModelMarkInfo[];\n\n getData: () => ICompilableData;\n\n getChart: () => IChart;\n\n //生命周期\n // 创建模块自身内容,设置自身属性\n created: () => void;\n // 用来处理与其他图表模块的联系\n init: (option: IModelInitOption) => void;\n // updateSpec 或者切换主题后,根据新 spec 执行的初始化过程\n reInit: (theme?: any) => void;\n\n onLayoutStart: (layoutRect: IRect, viewRect: ILayoutRect, ctx: IModelLayoutOption) => void;\n onLayoutEnd: (ctx: IModelLayoutOption) => void;\n onEvaluateEnd: (ctx: IModelEvaluateOption) => void;\n onRender: (ctx: IModelRenderOption) => void;\n onDataUpdate: () => void;\n\n updateSpec: (spec: any, totalSpec?: any) => IUpdateSpecResult;\n getSpec?: () => any;\n getSpecIndex: () => number;\n\n setCurrentTheme: (theme: any, noRender?: boolean) => void;\n\n setMarkStyle: <T extends ICommonSpec>(\n mark?: IMarkRaw<T>,\n style?: Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>>,\n state?: StateValueType,\n level?: number\n ) => void;\n\n initMarkStyleWithSpec: (mark?: IMark, spec?: any, key?: string) => void;\n\n // tooltip\n tooltipHelper: ITooltipHelper;\n\n /** 绑定场景结点 */\n bindSceneNode: (node: IElement) => void;\n /** 获取场景结点 */\n getSceneNodes: () => IElement[];\n /** 获取场景结点对应 mark */\n getSceneNodeMarks: () => IVGrammarMark[];\n}\n\nexport interface IModelOption extends ICompilableInitOption {\n eventDispatcher: IEventDispatcher;\n dataSet: DataSet;\n map: Map<StringOrNumber, IModel | IMark>;\n mode: RenderMode;\n globalInstance: VChart;\n specIndex?: number;\n specKey?: string;\n\n getTheme?: () => ITheme;\n\n getChartLayoutRect: () => IRect;\n getChartViewRect: () => ILayoutRect;\n\n getChart: () => IChart;\n\n globalScale: IGlobalScale;\n animation: boolean;\n /**\n * 错误消息回调函数\n */\n onError: (...args: any[]) => void;\n}\n\nexport interface IModelConstructor {\n new (ctx: IModelOption): IModel;\n}\n\nexport type ILayoutModelState = ModelStateManager['_stateMap'];\n\n// TODO: 补充model共有配置\nexport type IModelSpec = ILayoutItemSpec & { id?: StringOrNumber };\n\nexport interface IModelMarkInfo {\n /** mark 类型 */\n type: MarkTypeEnum | string | (MarkTypeEnum | string)[];\n /** mark 名称 */\n name: string;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/model/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IBoundsLike } from '@visactor/vutils';\nimport type { DataSet } from '@visactor/vdataset';\nimport type { IEvent, IEventDispatcher } from '../event/interface';\nimport type { IMark, IMarkRaw, IMarkStyle, MarkTypeEnum } from '../mark/interface';\nimport type { RenderMode } from '../typings/spec/common';\nimport type { VChart } from '../vchart-all';\nimport type { IData, IElement, IMark as IVGrammarMark } from '@visactor/vgrammar';\nimport type {\n IOrientType,\n IPoint,\n IGroupMarkSpec,\n ConvertToMarkStyleSpec,\n CoordinateType,\n ICommonSpec,\n IRect,\n StringOrNumber\n} from '../typings';\nimport type { ITheme } from '../theme';\nimport type { StateValueType } from '../typings/spec';\nimport type { ITooltipHelper } from './tooltip-helper';\nimport type { ModelStateManager } from './model-state-manager';\nimport type { ICompilable, ICompilableInitOption } from '../compile/interface';\nimport type { ICompilableData } from '../compile/data';\nimport type { IGlobalScale } from '../scale/interface';\nimport type { IChart } from '../chart/interface';\n\nexport type ILayoutNumber = number | IPercent | ((layoutRect: ILayoutRect) => number) | IPercentOffset;\n\nexport interface ILayoutPoint {\n x: number;\n y: number;\n}\n\nexport interface ILayoutRectLevel {\n width: number;\n height: number;\n}\nexport interface ILayoutRect {\n width: number;\n height: number;\n}\n\nexport type IPercent = `${number}%`;\n\nexport type IPercentOffset = { percent?: number; offset?: number };\n\nexport type ILayoutPercent = IPercent | number;\n\n/**\n * 相对布局和绝对布局\n * 在相对布局结束后进行二次的绝对布局\n * 绝对布局会只根据 chart 进行相对处理\n */\n\ntype ILayoutType = 'region-relative' | 'region' | 'normal' | 'absolute' | 'normal-inline';\n\nexport type ILayoutOrientPadding = {\n left?: ILayoutNumber;\n right?: ILayoutNumber;\n top?: ILayoutNumber;\n bottom?: ILayoutNumber;\n};\n\n/** 布局 padding的配置 */\nexport type ILayoutPaddingSpec = ILayoutOrientPadding | ILayoutNumber | ILayoutNumber[];\n\n/**\n * 因为这些元素都会继承到各个模块,所以这里统一有前缀避免语意冲突\n */\nexport interface ILayoutItem {\n /**\n * 标记这个布局Item的方向(left->right, right->left, top->bottom, bottom->top)\n */\n directionStr?: 'l2r' | 'r2l' | 't2b' | 'b2t';\n layoutClip: boolean;\n layoutType: ILayoutType;\n layoutBindRegionID: number | number[];\n layoutOrient: IOrientType;\n\n layoutPaddingLeft: number;\n layoutPaddingTop: number;\n layoutPaddingRight: number;\n layoutPaddingBottom: number;\n\n layoutOffsetX: number;\n layoutOffsetY: number;\n\n // 越大越先处理\n layoutLevel: number;\n\n layoutZIndex: number;\n chartLayoutRect: ILayoutRect;\n\n /** 是否可见 */\n getVisible: () => boolean;\n\n /** 是否自动缩进 */\n getAutoIndent: () => boolean;\n getLayoutStartPoint: () => ILayoutPoint;\n getLayoutRect: () => ILayoutRect;\n getLastComputeOutBounds: () => IBoundsLike;\n\n /**\n * 更新元素布局的 layoutRect 大小,用来更新指定布局空间\n */\n setLayoutRect: (rect: Partial<ILayoutRect>, levelMap?: Partial<ILayoutRectLevel>) => void;\n /**\n * 基于元素内部逻辑计算占位空间,rect表示可用空间\n */\n computeBoundsInRect: (rect: ILayoutRect) => ILayoutRect;\n /**\n * 更新元素布局的起始点位置\n */\n setLayoutStartPosition: (pos: Partial<IPoint>) => void;\n /**\n * 更新绝对布局元素的位置信息\n */\n absoluteLayoutInRect: (rect: IRect) => void;\n /**\n * 元素内部布局信息更新\n */\n updateLayoutAttribute: () => void;\n}\n\nexport interface ILayoutItemSpec {\n /** 当前模块的布局类型,配置为 absolute 的话,当前元素会以图表左上角为原点进行绝对布局 */\n layoutType?: ILayoutType;\n /**\n * 布局顺序等级,等级越大的,越优先布局\n * 比如顶部同时有标题和图例的场景,期望标题先放在顶部,然后放置图例。\n */\n layoutLevel?: number;\n\n // 基础的布局配置\n /** 模块布局位置 */\n orient?: IOrientType;\n /** 模块的布局间距 */\n padding?: ILayoutPaddingSpec;\n /** 是否按照 orient 自动修改 padding,隐藏位于外侧的 padding。目前只在组件上生效 */\n noOuterPadding?: boolean;\n /** 模块的布局大小:宽度 */\n width?: ILayoutNumber;\n /** 模块的布局最大宽度 */\n maxWidth?: ILayoutNumber;\n /** 模块的布局最小宽度 */\n minWidth?: ILayoutNumber;\n /** 模块的布局大小:高度 */\n height?: ILayoutNumber;\n /** 模块的布局最大高度 */\n maxHeight?: ILayoutNumber;\n /** 模块的布局最小高度 */\n minHeight?: ILayoutNumber;\n /** 模块的布局位置偏移:X */\n offsetX?: ILayoutNumber;\n /** 模块的布局位置偏移:Y */\n offsetY?: ILayoutNumber;\n\n /** 模块的展示层级,当2个模块重叠时,层级较大的展示在上方 */\n zIndex?: number;\n /** 模块是否裁剪超出布局区域外的绘图内容 */\n clip?: boolean;\n\n // 绝对布局下的对齐设置\n\n /** 模块绝对布局下,与图表左侧的距离。注意仅在 layoutType === 'absolute' 时生效 */\n left?: ILayoutNumber;\n /** 模块绝对布局下,与图表右侧的距离。注意仅在 layoutType === 'absolute' 时生效 */\n right?: ILayoutNumber;\n /** 模块绝对布局下,与图表顶部的距离。注意仅在 layoutType === 'absolute' 时生效 */\n top?: ILayoutNumber;\n /** 模块绝对布局下,与图表底部的距离。注意仅在 layoutType === 'absolute' 时生效 */\n bottom?: ILayoutNumber;\n /** 模块绝对布局下,元素将放置在图表的正中间。注意仅在 layoutType === 'absolute' 时生效,同时将忽略 padding 属性 */\n center?: boolean;\n}\n\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelInitOption {}\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelLayoutOption {}\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelEvaluateOption {}\n// TODO:\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface IModelRenderOption {}\n\nexport interface IEffect {\n [key: string]: (e?: any) => any;\n}\n\nexport interface IMarkTreeGroup extends Partial<IMarkStyle<IGroupMarkSpec>> {\n // 必须要有名字\n type: 'group';\n name: string;\n marks: (IMarkTreeGroup | IMark)[];\n // TODO: 这里要不要支持复杂场景,有图形组合的场景,用自定义mark?\n // from?: IData;\n}\n\nexport type IMarkTree = IMarkTreeGroup | IMark | (IMarkTreeGroup | IMark)[];\n\nexport interface IUpdateSpecResult {\n change: boolean;\n reMake: boolean;\n reMakeData?: boolean;\n reRender?: boolean;\n reSize?: boolean;\n // TODO: compile 的判断应不应该出现在这里?\n reCompile?: boolean;\n}\n\nexport interface IModelProduct {\n srData: IData;\n}\n\nexport interface IModel extends ICompilable, ILayoutItem {\n readonly modelType: string;\n readonly type: string;\n readonly specKey: string;\n\n readonly id: number;\n\n readonly userId?: StringOrNumber;\n\n // 事件\n readonly event: IEvent;\n\n // 副作用\n readonly effect: IEffect;\n\n // state如果绑定到mark的更新?\n // 组件的 mark 要怎么样描述,才能正确的基于组件状态进行样式更新?\n // 方案1: 组件的 state 关联到 mark 的状态。\n // 方案2: 组件设置 mark 属性,mark自身属性变化时,自己去更新。\n // react state\n readonly state: ModelStateManager;\n getState: () => ModelStateManager['_stateMap'];\n\n coordinate?: CoordinateType;\n\n // 初始化参数\n getOption: () => IModelOption;\n\n getMarks: () => IMark[];\n getMarkNameMap: () => Record<string, IMark>;\n getMarkInfoList: () => IModelMarkInfo[];\n\n getData: () => ICompilableData;\n\n getChart: () => IChart;\n\n //生命周期\n // 创建模块自身内容,设置自身属性\n created: () => void;\n // 用来处理与其他图表模块的联系\n init: (option: IModelInitOption) => void;\n // updateSpec 或者切换主题后,根据新 spec 执行的初始化过程\n reInit: (theme?: any, lastSpec?: any) => void;\n\n onLayoutStart: (layoutRect: IRect, viewRect: ILayoutRect, ctx: IModelLayoutOption) => void;\n onLayoutEnd: (ctx: IModelLayoutOption) => void;\n onEvaluateEnd: (ctx: IModelEvaluateOption) => void;\n onRender: (ctx: IModelRenderOption) => void;\n onDataUpdate: () => void;\n\n updateSpec: (spec: any, totalSpec?: any) => IUpdateSpecResult;\n getSpec?: () => any;\n getSpecIndex: () => number;\n\n setCurrentTheme: (theme: any, noRender?: boolean) => void;\n\n setMarkStyle: <T extends ICommonSpec>(\n mark?: IMarkRaw<T>,\n style?: Partial<IMarkStyle<T> | ConvertToMarkStyleSpec<T>>,\n state?: StateValueType,\n level?: number\n ) => void;\n\n initMarkStyleWithSpec: (mark?: IMark, spec?: any, key?: string) => void;\n\n // tooltip\n tooltipHelper: ITooltipHelper;\n\n /** 绑定场景结点 */\n bindSceneNode: (node: IElement) => void;\n /** 获取场景结点 */\n getSceneNodes: () => IElement[];\n /** 获取场景结点对应 mark */\n getSceneNodeMarks: () => IVGrammarMark[];\n}\n\nexport interface IModelOption extends ICompilableInitOption {\n eventDispatcher: IEventDispatcher;\n dataSet: DataSet;\n map: Map<StringOrNumber, IModel | IMark>;\n mode: RenderMode;\n globalInstance: VChart;\n specIndex?: number;\n specKey?: string;\n\n getTheme?: () => ITheme;\n\n getChartLayoutRect: () => IRect;\n getChartViewRect: () => ILayoutRect;\n\n getChart: () => IChart;\n\n globalScale: IGlobalScale;\n animation: boolean;\n /**\n * 错误消息回调函数\n */\n onError: (...args: any[]) => void;\n}\n\nexport interface IModelConstructor {\n new (ctx: IModelOption): IModel;\n}\n\nexport type ILayoutModelState = ModelStateManager['_stateMap'];\n\n// TODO: 补充model共有配置\nexport type IModelSpec = ILayoutItemSpec & { id?: StringOrNumber };\n\nexport interface IModelMarkInfo {\n /** mark 类型 */\n type: MarkTypeEnum | string | (MarkTypeEnum | string)[];\n /** mark 名称 */\n name: string;\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { convertDomainToTickData } from "
|
|
1
|
+
import { convertDomainToTickData } from "@visactor/vutils-extension";
|
|
2
2
|
|
|
3
3
|
export const tickAlign = (data, op) => {
|
|
4
4
|
var _a, _b, _c, _d, _e;
|
|
@@ -9,8 +9,7 @@ export const tickAlign = (data, op) => {
|
|
|
9
9
|
if (!currentAxis) return data;
|
|
10
10
|
const currentData = null === (_c = currentAxis.getTickData()) || void 0 === _c ? void 0 : _c.getDataView();
|
|
11
11
|
if (!currentData) return data;
|
|
12
|
-
|
|
13
|
-
if (!currentTickTransform) return data;
|
|
12
|
+
if (!currentData.transformsArr.find((t => "ticks" === t.type))) return data;
|
|
14
13
|
const currentScale = currentAxis.getScale();
|
|
15
14
|
if (!currentScale) return data;
|
|
16
15
|
const targetData = null === (_e = null === (_d = targetAxis.getTickData()) || void 0 === _d ? void 0 : _d.getDataView()) || void 0 === _e ? void 0 : _e.latestData;
|
|
@@ -25,6 +24,6 @@ export const tickAlign = (data, op) => {
|
|
|
25
24
|
const percent = (d.value - targetDomain[0]) / targetRange;
|
|
26
25
|
return currentRange * percent + currentDomain[0];
|
|
27
26
|
}));
|
|
28
|
-
return convertDomainToTickData(newTicks
|
|
27
|
+
return convertDomainToTickData(newTicks);
|
|
29
28
|
};
|
|
30
29
|
//# sourceMappingURL=tick-align-transform.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/plugin/components/axis-sync-plugin/tick-align-transform.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"sources":["../src/plugin/components/axis-sync-plugin/tick-align-transform.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAOrE,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAkB,EAAE,EAAiB,EAAE,EAAE;;IACjE,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,IAAI,CAAC;KACb;IAED,MAAM,UAAU,GAAG,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,UAAU,kDAAI,CAAC;IACtC,IAAI,CAAC,UAAU,EAAE;QACf,OAAO,IAAI,CAAC;KACb;IACD,MAAM,WAAW,GAAG,MAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,WAAW,kDAAI,CAAC;IACxC,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,WAAW,GAAG,MAAA,WAAW,CAAC,WAAW,EAAE,0CAAE,WAAW,EAAE,CAAC;IAC7D,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,oBAAoB,GAAG,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IACrF,IAAI,CAAC,oBAAoB,EAAE;QACzB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,YAAY,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC5C,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,UAAU,GAAG,MAAA,MAAA,UAAU,CAAC,WAAW,EAAE,0CAAE,WAAW,EAAE,0CAAE,UAAU,CAAC;IACvE,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAA,EAAE;QACvB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,EAAE,CAAC;IAC1C,IAAI,CAAC,WAAW,EAAE;QAChB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;IAC1C,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,WAAW,KAAK,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC;KACb;IACD,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;IAC5C,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACzD,IAAI,WAAW,KAAK,CAAC,EAAE;QACrB,OAAO,IAAI,CAAC;KACb;IAED,MAAM,QAAQ,GAAa,UAAU,CAAC,GAAG,CAAC,CAAC,CAAoB,EAAE,EAAE;QACjE,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;QAC1D,OAAO,YAAY,GAAG,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,OAAO,uBAAuB,CAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC,CAAC","file":"tick-align-transform.js","sourcesContent":["import type { Datum } from '../../../typings';\nimport type { CartesianAxis } from '../../../component';\nimport { convertDomainToTickData } from '@visactor/vutils-extension';\n\nexport interface ITickAlignOpt {\n targetAxis: () => CartesianAxis;\n currentAxis: () => CartesianAxis;\n}\n\nexport const tickAlign = (data: Array<Datum>, op: ITickAlignOpt) => {\n if (!data) {\n return data;\n }\n // check align enable\n const targetAxis = op?.targetAxis?.();\n if (!targetAxis) {\n return data;\n }\n const currentAxis = op?.currentAxis?.();\n if (!currentAxis) {\n return data;\n }\n const currentData = currentAxis.getTickData()?.getDataView();\n if (!currentData) {\n return data;\n }\n const currentTickTransform = currentData.transformsArr.find(t => t.type === 'ticks');\n if (!currentTickTransform) {\n return data;\n }\n const currentScale = currentAxis.getScale();\n if (!currentScale) {\n return data;\n }\n const targetData = targetAxis.getTickData()?.getDataView()?.latestData;\n if (!targetData?.length) {\n return data;\n }\n const targetScale = targetAxis.getScale();\n if (!targetScale) {\n return data;\n }\n const targetDomain = targetScale.domain();\n const targetRange = targetDomain[1] - targetDomain[0];\n if (targetRange === 0) {\n return data;\n }\n const currentDomain = currentScale.domain();\n const currentRange = currentDomain[1] - currentDomain[0];\n if (targetRange === 0) {\n return data;\n }\n // make the tickData of the current axis consistent with the tickData of the target axis\n const newTicks: number[] = targetData.map((d: { value: number }) => {\n const percent = (d.value - targetDomain[0]) / targetRange;\n return currentRange * percent + currentDomain[0];\n });\n return convertDomainToTickData(newTicks);\n};\n"]}
|
package/esm/series/area/area.js
CHANGED
|
@@ -40,7 +40,7 @@ VChart.useMark([ LineMark, AreaMark, TextMark, SymbolMark ]);
|
|
|
40
40
|
|
|
41
41
|
export class AreaSeries extends CartesianSeries {
|
|
42
42
|
constructor() {
|
|
43
|
-
super(...arguments), this.type = SeriesTypeEnum.area, this._stack = !0, this._sortDataByAxis = !
|
|
43
|
+
super(...arguments), this.type = SeriesTypeEnum.area, this._stack = !0, this._sortDataByAxis = !1;
|
|
44
44
|
}
|
|
45
45
|
setAttrFromSpec() {
|
|
46
46
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/series/area/area.ts"],"names":[],"mappings":"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","file":"area.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport { isValid } from '@visactor/vutils';\n/* eslint-disable no-duplicate-imports */\nimport { LineLikeSeriesMixin } from '../mixin/line-mixin';\nimport type { IAreaMark } from '../../mark/area';\nimport { Direction } from '../../typings/space';\nimport { CartesianSeries } from '../cartesian/cartesian';\nimport { AttributeLevel } from '../../constant';\nimport type { Maybe, Datum, ConvertToMarkStyleSpec, IAreaMarkSpec, InterpolateType } from '../../typings';\nimport { valueInScaleRange, mergeSpec } from '../../util';\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum } from '../interface/type';\nimport { SeriesTypeEnum } from '../interface';\nimport { mixin } from '@visactor/vutils';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport { DEFAULT_SMOOTH_INTERPOLATE } from '../../typings/interpolate';\nimport type { IAreaSeriesSpec, IAreaSeriesTheme } from './interface';\nimport type { IMarkAnimateSpec } from '../../animation/spec';\n\nimport { VChart } from '../../core/vchart';\nimport { LineMark } from '../../mark/line';\nimport { AreaMark } from '../../mark/area';\nimport { TextMark } from '../../mark/text';\nimport { SymbolMark } from '../../mark/symbol';\nimport { AreaSeriesTooltipHelper } from './tooltip-helpter';\nimport { areaSeriesMark } from './constant';\nVChart.useMark([LineMark, AreaMark, TextMark, SymbolMark]);\n\nexport interface AreaSeries<T extends IAreaSeriesSpec = IAreaSeriesSpec>\n extends Pick<\n LineLikeSeriesMixin,\n | 'initLineMark'\n | 'initSymbolMark'\n | 'initLabelMarkStyle'\n | 'initLineMarkStyle'\n | 'initSymbolMarkStyle'\n | 'encodeDefined'\n | '_lineMark'\n | '_symbolMark'\n >,\n CartesianSeries<T> {}\n\nexport class AreaSeries<T extends IAreaSeriesSpec = IAreaSeriesSpec> extends CartesianSeries<T> {\n static readonly type: string = SeriesTypeEnum.area;\n type = SeriesTypeEnum.area;\n\n static readonly mark: SeriesMarkMap = areaSeriesMark;\n\n protected declare _theme: Maybe<IAreaSeriesTheme>;\n\n protected _areaMark!: IAreaMark;\n protected _stack: boolean = true;\n protected _sortDataByAxis: boolean = true;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n const isAreaVisible = this._spec.area?.visible !== false && this._spec.area?.style?.visible !== false;\n const isLineVisible = this._spec.line?.visible !== false && this._spec.line?.style?.visible !== false;\n // merge line to area\n const areaSpec = this._spec.area ?? {};\n const lineSpec = this._spec.line ?? {};\n areaSpec.interactive = areaSpec.interactive || lineSpec.interactive;\n areaSpec.support3d = areaSpec.support3d || lineSpec.support3d;\n areaSpec.zIndex =\n isValid(areaSpec.zIndex) || isValid(lineSpec.zIndex)\n ? Math.max(areaSpec.zIndex ?? 0, lineSpec.zIndex ?? 0)\n : undefined;\n\n // remove area stroke\n if (areaSpec.style) {\n delete areaSpec.style.stroke;\n }\n if (areaSpec.state) {\n Object.keys(areaSpec.state).forEach(state => {\n if ('style' in areaSpec.state[state]) {\n delete areaSpec.state[state].style.stroke;\n } else {\n delete (<ConvertToMarkStyleSpec<IAreaMarkSpec>>areaSpec.state[state]).stroke;\n }\n });\n }\n // check which one is main\n let mainSpec = areaSpec;\n let subSpec = lineSpec;\n const seriesMark = this._spec.seriesMark ?? 'area';\n if (seriesMark === 'line' || (isLineVisible && !isAreaVisible)) {\n mainSpec = lineSpec;\n subSpec = areaSpec;\n }\n areaSpec.style = mergeSpec({}, subSpec.style, mainSpec.style);\n areaSpec.state = mergeSpec({}, subSpec.state, mainSpec.state);\n if (!isAreaVisible) {\n areaSpec.style.fill = false;\n }\n if (!isLineVisible) {\n areaSpec.style.stroke = false;\n }\n areaSpec.visible = !(!isAreaVisible && !isLineVisible);\n }\n\n initMark(): void {\n const progressive = {\n progressiveStep: this._spec.progressiveStep,\n progressiveThreshold: this._spec.progressiveThreshold,\n large: this._spec.large,\n largeThreshold: this._spec.largeThreshold\n };\n\n const isAreaVisible = this._spec.area?.visible !== false && this._spec.area?.style?.visible !== false;\n const seriesMark = this._spec.seriesMark ?? 'area';\n // area\n this._areaMark = this._createMark(AreaSeries.mark.area, {\n groupKey: this._seriesField,\n defaultMorphElementKey: this.getDimensionField()[0],\n progressive,\n isSeriesMark: isAreaVisible && seriesMark !== 'point'\n }) as IAreaMark;\n\n this.initSymbolMark(progressive, seriesMark === 'point');\n }\n\n initMarkStyle(): void {\n // FIXME 是不是应该把curveType提前到上层配置\n // 不允许area和line的curveType不一致\n const userCurveType = (this.getSpec().area?.style?.curveType ??\n this.getSpec().line?.style?.curveType) as InterpolateType;\n const curveType =\n userCurveType === DEFAULT_SMOOTH_INTERPOLATE\n ? this._direction === Direction.vertical\n ? 'monotoneX'\n : 'monotoneY'\n : userCurveType;\n\n // area\n const areaMark = this._areaMark;\n if (areaMark) {\n if (this._direction === Direction.vertical) {\n this.setMarkStyle(\n this._areaMark,\n {\n x: this.dataToPositionX.bind(this),\n y1: (datum: Datum) => {\n return valueInScaleRange(this.dataToPositionY1(datum), this._yAxisHelper?.getScale?.(0));\n },\n y: this.dataToPositionY.bind(this),\n z: this._fieldZ ? this.dataToPositionZ.bind(this) : null\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle(\n this._areaMark,\n {\n x: this.dataToPositionX.bind(this),\n x1: (datum: Datum) => {\n return valueInScaleRange(this.dataToPositionX1(datum), this._xAxisHelper?.getScale?.(0));\n },\n y: this.dataToPositionY.bind(this),\n z: this._fieldZ ? this.dataToPositionZ.bind(this) : null,\n orient: this._direction\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n areaMark,\n {\n fill: this.getColorAttribute(),\n stroke: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n if (this._invalidType !== 'zero') {\n this.setMarkStyle(\n areaMark,\n {\n defined: this._getInvalidDefined,\n connectedType: this._getInvalidConnectType()\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n areaMark,\n {\n curveType\n },\n 'normal',\n AttributeLevel.Built_In\n );\n this._trigger.registerMark(areaMark);\n this._tooltipHelper.activeTriggerSet.dimension.add(areaMark);\n\n // change stroke to area stoke = [lineStroke,false,false,false]\n Object.keys(areaMark.stateStyle).forEach(state => {\n if (areaMark.stateStyle[state].stroke) {\n areaMark.setPostProcess(\n 'stroke',\n result => {\n return [result, false, false, false];\n },\n state\n );\n }\n });\n }\n\n this.initLineMarkStyle(this._direction, userCurveType);\n this.initSymbolMarkStyle();\n this.initLabelMarkStyle();\n }\n\n initAnimation() {\n const animationParams = { direction: this.direction };\n const appearPreset = (this._spec?.animationAppear as IMarkAnimateSpec<string>)?.preset;\n\n if (this._lineMark) {\n this._lineMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.line(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.line, this._spec)\n )\n );\n }\n\n if (this._areaMark) {\n this._areaMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.area(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.area, this._spec)\n )\n );\n }\n\n if (this._symbolMark) {\n this._symbolMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.symbol(), userAnimationConfig(SeriesMarkNameEnum.point, this._spec))\n );\n }\n }\n\n protected initTooltip() {\n this._tooltipHelper = new AreaSeriesTooltipHelper(this);\n }\n\n viewDataStatisticsUpdate(d: DataView) {\n super.viewDataStatisticsUpdate(d);\n this.encodeDefined(this._areaMark, 'defined');\n }\n\n getDefaultShapeType() {\n return 'square';\n }\n}\n\nmixin(AreaSeries, LineLikeSeriesMixin);\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/series/area/area.ts"],"names":[],"mappings":"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","file":"area.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport { isValid } from '@visactor/vutils';\n/* eslint-disable no-duplicate-imports */\nimport { LineLikeSeriesMixin } from '../mixin/line-mixin';\nimport type { IAreaMark } from '../../mark/area';\nimport { Direction } from '../../typings/space';\nimport { CartesianSeries } from '../cartesian/cartesian';\nimport { AttributeLevel } from '../../constant';\nimport type { Maybe, Datum, ConvertToMarkStyleSpec, IAreaMarkSpec, InterpolateType } from '../../typings';\nimport { valueInScaleRange, mergeSpec } from '../../util';\nimport type { SeriesMarkMap } from '../interface';\nimport { SeriesMarkNameEnum } from '../interface/type';\nimport { SeriesTypeEnum } from '../interface';\nimport { mixin } from '@visactor/vutils';\nimport { animationConfig, userAnimationConfig } from '../../animation/utils';\nimport { DEFAULT_MARK_ANIMATION } from '../../animation/config';\nimport { DEFAULT_SMOOTH_INTERPOLATE } from '../../typings/interpolate';\nimport type { IAreaSeriesSpec, IAreaSeriesTheme } from './interface';\nimport type { IMarkAnimateSpec } from '../../animation/spec';\n\nimport { VChart } from '../../core/vchart';\nimport { LineMark } from '../../mark/line';\nimport { AreaMark } from '../../mark/area';\nimport { TextMark } from '../../mark/text';\nimport { SymbolMark } from '../../mark/symbol';\nimport { AreaSeriesTooltipHelper } from './tooltip-helpter';\nimport { areaSeriesMark } from './constant';\nVChart.useMark([LineMark, AreaMark, TextMark, SymbolMark]);\n\nexport interface AreaSeries<T extends IAreaSeriesSpec = IAreaSeriesSpec>\n extends Pick<\n LineLikeSeriesMixin,\n | 'initLineMark'\n | 'initSymbolMark'\n | 'initLabelMarkStyle'\n | 'initLineMarkStyle'\n | 'initSymbolMarkStyle'\n | 'encodeDefined'\n | '_lineMark'\n | '_symbolMark'\n >,\n CartesianSeries<T> {}\n\nexport class AreaSeries<T extends IAreaSeriesSpec = IAreaSeriesSpec> extends CartesianSeries<T> {\n static readonly type: string = SeriesTypeEnum.area;\n type = SeriesTypeEnum.area;\n\n static readonly mark: SeriesMarkMap = areaSeriesMark;\n\n protected declare _theme: Maybe<IAreaSeriesTheme>;\n\n protected _areaMark!: IAreaMark;\n protected _stack: boolean = true;\n protected _sortDataByAxis: boolean = false;\n\n setAttrFromSpec(): void {\n super.setAttrFromSpec();\n const isAreaVisible = this._spec.area?.visible !== false && this._spec.area?.style?.visible !== false;\n const isLineVisible = this._spec.line?.visible !== false && this._spec.line?.style?.visible !== false;\n // merge line to area\n const areaSpec = this._spec.area ?? {};\n const lineSpec = this._spec.line ?? {};\n areaSpec.interactive = areaSpec.interactive || lineSpec.interactive;\n areaSpec.support3d = areaSpec.support3d || lineSpec.support3d;\n areaSpec.zIndex =\n isValid(areaSpec.zIndex) || isValid(lineSpec.zIndex)\n ? Math.max(areaSpec.zIndex ?? 0, lineSpec.zIndex ?? 0)\n : undefined;\n\n // remove area stroke\n if (areaSpec.style) {\n delete areaSpec.style.stroke;\n }\n if (areaSpec.state) {\n Object.keys(areaSpec.state).forEach(state => {\n if ('style' in areaSpec.state[state]) {\n delete areaSpec.state[state].style.stroke;\n } else {\n delete (<ConvertToMarkStyleSpec<IAreaMarkSpec>>areaSpec.state[state]).stroke;\n }\n });\n }\n // check which one is main\n let mainSpec = areaSpec;\n let subSpec = lineSpec;\n const seriesMark = this._spec.seriesMark ?? 'area';\n if (seriesMark === 'line' || (isLineVisible && !isAreaVisible)) {\n mainSpec = lineSpec;\n subSpec = areaSpec;\n }\n areaSpec.style = mergeSpec({}, subSpec.style, mainSpec.style);\n areaSpec.state = mergeSpec({}, subSpec.state, mainSpec.state);\n if (!isAreaVisible) {\n areaSpec.style.fill = false;\n }\n if (!isLineVisible) {\n areaSpec.style.stroke = false;\n }\n areaSpec.visible = !(!isAreaVisible && !isLineVisible);\n }\n\n initMark(): void {\n const progressive = {\n progressiveStep: this._spec.progressiveStep,\n progressiveThreshold: this._spec.progressiveThreshold,\n large: this._spec.large,\n largeThreshold: this._spec.largeThreshold\n };\n\n const isAreaVisible = this._spec.area?.visible !== false && this._spec.area?.style?.visible !== false;\n const seriesMark = this._spec.seriesMark ?? 'area';\n // area\n this._areaMark = this._createMark(AreaSeries.mark.area, {\n groupKey: this._seriesField,\n defaultMorphElementKey: this.getDimensionField()[0],\n progressive,\n isSeriesMark: isAreaVisible && seriesMark !== 'point'\n }) as IAreaMark;\n\n this.initSymbolMark(progressive, seriesMark === 'point');\n }\n\n initMarkStyle(): void {\n // FIXME 是不是应该把curveType提前到上层配置\n // 不允许area和line的curveType不一致\n const userCurveType = (this.getSpec().area?.style?.curveType ??\n this.getSpec().line?.style?.curveType) as InterpolateType;\n const curveType =\n userCurveType === DEFAULT_SMOOTH_INTERPOLATE\n ? this._direction === Direction.vertical\n ? 'monotoneX'\n : 'monotoneY'\n : userCurveType;\n\n // area\n const areaMark = this._areaMark;\n if (areaMark) {\n if (this._direction === Direction.vertical) {\n this.setMarkStyle(\n this._areaMark,\n {\n x: this.dataToPositionX.bind(this),\n y1: (datum: Datum) => {\n return valueInScaleRange(this.dataToPositionY1(datum), this._yAxisHelper?.getScale?.(0));\n },\n y: this.dataToPositionY.bind(this),\n z: this._fieldZ ? this.dataToPositionZ.bind(this) : null\n },\n 'normal',\n AttributeLevel.Series\n );\n } else {\n this.setMarkStyle(\n this._areaMark,\n {\n x: this.dataToPositionX.bind(this),\n x1: (datum: Datum) => {\n return valueInScaleRange(this.dataToPositionX1(datum), this._xAxisHelper?.getScale?.(0));\n },\n y: this.dataToPositionY.bind(this),\n z: this._fieldZ ? this.dataToPositionZ.bind(this) : null,\n orient: this._direction\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n areaMark,\n {\n fill: this.getColorAttribute(),\n stroke: this.getColorAttribute()\n },\n 'normal',\n AttributeLevel.Series\n );\n if (this._invalidType !== 'zero') {\n this.setMarkStyle(\n areaMark,\n {\n defined: this._getInvalidDefined,\n connectedType: this._getInvalidConnectType()\n },\n 'normal',\n AttributeLevel.Series\n );\n }\n this.setMarkStyle(\n areaMark,\n {\n curveType\n },\n 'normal',\n AttributeLevel.Built_In\n );\n this._trigger.registerMark(areaMark);\n this._tooltipHelper.activeTriggerSet.dimension.add(areaMark);\n\n // change stroke to area stoke = [lineStroke,false,false,false]\n Object.keys(areaMark.stateStyle).forEach(state => {\n if (areaMark.stateStyle[state].stroke) {\n areaMark.setPostProcess(\n 'stroke',\n result => {\n return [result, false, false, false];\n },\n state\n );\n }\n });\n }\n\n this.initLineMarkStyle(this._direction, userCurveType);\n this.initSymbolMarkStyle();\n this.initLabelMarkStyle();\n }\n\n initAnimation() {\n const animationParams = { direction: this.direction };\n const appearPreset = (this._spec?.animationAppear as IMarkAnimateSpec<string>)?.preset;\n\n if (this._lineMark) {\n this._lineMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.line(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.line, this._spec)\n )\n );\n }\n\n if (this._areaMark) {\n this._areaMark.setAnimationConfig(\n animationConfig(\n DEFAULT_MARK_ANIMATION.area(animationParams, appearPreset),\n userAnimationConfig(SeriesMarkNameEnum.area, this._spec)\n )\n );\n }\n\n if (this._symbolMark) {\n this._symbolMark.setAnimationConfig(\n animationConfig(DEFAULT_MARK_ANIMATION.symbol(), userAnimationConfig(SeriesMarkNameEnum.point, this._spec))\n );\n }\n }\n\n protected initTooltip() {\n this._tooltipHelper = new AreaSeriesTooltipHelper(this);\n }\n\n viewDataStatisticsUpdate(d: DataView) {\n super.viewDataStatisticsUpdate(d);\n this.encodeDefined(this._areaMark, 'defined');\n }\n\n getDefaultShapeType() {\n return 'square';\n }\n}\n\nmixin(AreaSeries, LineLikeSeriesMixin);\n"]}
|
|
@@ -2,11 +2,10 @@ import { DataView } from '@visactor/vdataset';
|
|
|
2
2
|
import type { DataSet, ITransformOptions } from '@visactor/vdataset';
|
|
3
3
|
import type { IRegion } from '../../region/interface';
|
|
4
4
|
import type { IMark } from '../../mark/interface';
|
|
5
|
-
import type { CoordinateType, IInvalidType, IPoint, DataKeyType, Datum, Maybe, ISeriesSpec } from '../../typings';
|
|
5
|
+
import type { CoordinateType, IInvalidType, IPoint, DataKeyType, Datum, Maybe, ISeriesSpec, IGroup } from '../../typings';
|
|
6
6
|
import { BaseModel } from '../../model/base-model';
|
|
7
7
|
import type { ISeriesOption, ISeries, ISeriesMarkInitOption, ISeriesStackData, ISeriesTooltipHelper, SeriesMarkMap, ISeriesMarkInfo } from '../interface';
|
|
8
8
|
import type { IModelEvaluateOption, IModelRenderOption } from '../../model/interface';
|
|
9
|
-
import { Group } from './group';
|
|
10
9
|
import type { AddVChartPropertyContext } from '../../data/transforms/add-property';
|
|
11
10
|
import type { ITrigger } from '../../interaction/interface';
|
|
12
11
|
import type { LayoutItem } from '../../model/layout-item';
|
|
@@ -47,8 +46,8 @@ export declare abstract class BaseSeries<T extends ISeriesSpec> extends BaseMode
|
|
|
47
46
|
protected _seriesField?: string;
|
|
48
47
|
getSeriesField(): string;
|
|
49
48
|
setSeriesField(field: string): void;
|
|
50
|
-
protected _groups?:
|
|
51
|
-
getGroups():
|
|
49
|
+
protected _groups?: IGroup;
|
|
50
|
+
getGroups(): IGroup;
|
|
52
51
|
protected _stackValue: string;
|
|
53
52
|
protected _stack: boolean;
|
|
54
53
|
getStack(): boolean;
|
|
@@ -107,7 +106,7 @@ export declare abstract class BaseSeries<T extends ISeriesSpec> extends BaseMode
|
|
|
107
106
|
initRootMark(): void;
|
|
108
107
|
protected _initExtensionMark(): void;
|
|
109
108
|
private _createExtensionMark;
|
|
110
|
-
protected _updateExtensionMarkSpec(): void;
|
|
109
|
+
protected _updateExtensionMarkSpec(lastSpec?: any): void;
|
|
111
110
|
getStackData(): ISeriesStackData;
|
|
112
111
|
initTrigger(): void;
|
|
113
112
|
initAnimation(): void;
|
|
@@ -129,7 +128,7 @@ export declare abstract class BaseSeries<T extends ISeriesSpec> extends BaseMode
|
|
|
129
128
|
reSize: boolean;
|
|
130
129
|
reCompile: boolean;
|
|
131
130
|
};
|
|
132
|
-
reInit(theme?: any): void;
|
|
131
|
+
reInit(theme?: any, lastSpec?: any): void;
|
|
133
132
|
onEvaluateEnd(ctx: IModelEvaluateOption): void;
|
|
134
133
|
onRender(ctx: IModelRenderOption): void;
|
|
135
134
|
release(): void;
|
|
@@ -40,8 +40,6 @@ import { dataViewFromDataView } from "../../data/initialize";
|
|
|
40
40
|
|
|
41
41
|
import { isNil, isValid, isBoolean, isString, mergeSpec, isFunction, isArray, mergeFields, getFieldAlias, couldBeValidNumber } from "../../util";
|
|
42
42
|
|
|
43
|
-
import { Group } from "./group";
|
|
44
|
-
|
|
45
43
|
import { addVChartProperty } from "../../data/transforms/add-property";
|
|
46
44
|
|
|
47
45
|
import { Trigger } from "../../interaction/trigger";
|
|
@@ -60,7 +58,7 @@ import { SeriesData } from "./series-data";
|
|
|
60
58
|
|
|
61
59
|
import { addDataKey, initKeyMap } from "../../data/transforms/data-key";
|
|
62
60
|
|
|
63
|
-
import { array } from "@visactor/vutils";
|
|
61
|
+
import { array, isEqual } from "@visactor/vutils";
|
|
64
62
|
|
|
65
63
|
import { ColorOrdinalScale } from "../../scale/color-ordinal-scale";
|
|
66
64
|
|
|
@@ -194,7 +192,9 @@ export class BaseSeries extends BaseModel {
|
|
|
194
192
|
}
|
|
195
193
|
initGroups() {
|
|
196
194
|
const groupFields = this.getGroupFields();
|
|
197
|
-
groupFields && groupFields.length && (this._groups =
|
|
195
|
+
groupFields && groupFields.length && (this._groups = {
|
|
196
|
+
fields: groupFields
|
|
197
|
+
});
|
|
198
198
|
}
|
|
199
199
|
initStatisticalData() {
|
|
200
200
|
this._rawData && this._statisticRawData(), this._data && this._statisticViewData();
|
|
@@ -376,13 +376,15 @@ export class BaseSeries extends BaseModel {
|
|
|
376
376
|
dataView === this._rawData ? mark.setDataView(this.getViewData(), this.getViewDataProductId()) : mark.setDataView(dataView);
|
|
377
377
|
}
|
|
378
378
|
}
|
|
379
|
-
_updateExtensionMarkSpec() {
|
|
379
|
+
_updateExtensionMarkSpec(lastSpec) {
|
|
380
380
|
var _a;
|
|
381
381
|
null === (_a = this._spec.extensionMark) || void 0 === _a || _a.forEach(((spec, i) => {
|
|
382
|
+
var _a;
|
|
382
383
|
const mark = this._marks.getMarkWithInfo({
|
|
383
384
|
name: `${PREFIX}_series_${this.id}_extensionMark_${i}`
|
|
384
385
|
});
|
|
385
|
-
this.initMarkStyleWithSpec(mark, spec)
|
|
386
|
+
lastSpec && isEqual(null === (_a = lastSpec.extensionMark) || void 0 === _a ? void 0 : _a[i], spec) || (this.initMarkStyleWithSpec(mark, spec),
|
|
387
|
+
mark.updateStaticEncode(), mark.updateLayoutState());
|
|
386
388
|
}));
|
|
387
389
|
}
|
|
388
390
|
getStackData() {
|
|
@@ -487,10 +489,11 @@ export class BaseSeries extends BaseModel {
|
|
|
487
489
|
})) && (result.reCompile = !0), (null === (_b = originalSpec.extensionMark) || void 0 === _b ? void 0 : _b.some(((mark, index) => mark.visible !== this._spec.extensionMark[index].visible))) && (result.reCompile = !0)),
|
|
488
490
|
result;
|
|
489
491
|
}
|
|
490
|
-
reInit(theme) {
|
|
492
|
+
reInit(theme, lastSpec) {
|
|
491
493
|
super.reInit(theme), this.initMarkStyle(), this.getMarksWithoutRoot().forEach((mark => {
|
|
492
|
-
this._spec[mark.name] && this.initMarkStyleWithSpec(mark, this._spec[mark.name])
|
|
493
|
-
|
|
494
|
+
lastSpec && isEqual(lastSpec[mark.name], this._spec[mark.name]) || (this._spec[mark.name] && this.initMarkStyleWithSpec(mark, this._spec[mark.name]),
|
|
495
|
+
mark.updateStaticEncode(), mark.updateLayoutState(!0));
|
|
496
|
+
})), this._updateExtensionMarkSpec(lastSpec);
|
|
494
497
|
}
|
|
495
498
|
onEvaluateEnd(ctx) {
|
|
496
499
|
this._data.updateData();
|
|
@@ -498,7 +501,9 @@ export class BaseSeries extends BaseModel {
|
|
|
498
501
|
onRender(ctx) {}
|
|
499
502
|
release() {
|
|
500
503
|
var _a;
|
|
501
|
-
super.release(), this._viewDataMap.clear()
|
|
504
|
+
super.release(), this._viewDataMap.clear();
|
|
505
|
+
const transformIndex = this._rawData.transformsArr.findIndex((t => "addVChartProperty" === t.type));
|
|
506
|
+
transformIndex >= 0 && this._rawData.transformsArr.splice(transformIndex, 1), null === (_a = this._data) || void 0 === _a || _a.release(),
|
|
502
507
|
this._dataSet = this._data = this._rawData = this._rawDataStatistics = this._spec = this._region = this._viewDataStatistics = this._viewStackData = null;
|
|
503
508
|
}
|
|
504
509
|
onLayoutEnd(ctx) {
|
|
@@ -590,7 +595,7 @@ export class BaseSeries extends BaseModel {
|
|
|
590
595
|
isNil(dataView) ? (m.setDataView(this.getViewData(), this.getViewDataProductId()),
|
|
591
596
|
m.setSkipBeforeLayouted(!0)) : !1 !== dataView && m.setDataView(dataView, dataProductId),
|
|
592
597
|
isBoolean(skipBeforeLayouted) && m.setSkipBeforeLayouted(skipBeforeLayouted), isValid(depend) && m.setDepend(...array(depend)),
|
|
593
|
-
isValid(label) && m.
|
|
598
|
+
isValid(label) && m.addLabelSpec(label);
|
|
594
599
|
const spec = this.getSpec() || {};
|
|
595
600
|
m.setMorph(morph), m.setMorphKey((null === (_b = spec.morph) || void 0 === _b ? void 0 : _b.morphKey) || `${this._specIndex}`),
|
|
596
601
|
m.setMorphElementKey(null !== (_d = null === (_c = spec.morph) || void 0 === _c ? void 0 : _c.morphElementKey) && void 0 !== _d ? _d : option.defaultMorphElementKey),
|