@visactor/vchart 1.7.0-alpha.0 → 1.7.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/es5/index.js +1 -1
- package/build/index.js +23903 -23822
- package/build/index.min.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/chart/area/area.js +2 -1
- package/cjs/chart/area/area.js.map +1 -1
- package/cjs/chart/base-chart.d.ts +9 -12
- package/cjs/chart/base-chart.js +35 -46
- package/cjs/chart/base-chart.js.map +1 -1
- package/cjs/chart/interface/chart.d.ts +2 -4
- package/cjs/chart/interface/chart.js.map +1 -1
- package/cjs/chart/line/line.js +2 -1
- package/cjs/chart/line/line.js.map +1 -1
- package/cjs/chart/sequence/sequence.d.ts +1 -1
- package/cjs/chart/sequence/sequence.js +1 -1
- package/cjs/chart/sequence/sequence.js.map +1 -1
- package/cjs/chart/stack.js +2 -1
- package/cjs/compile/compiler.d.ts +2 -2
- package/cjs/compile/compiler.js +7 -7
- package/cjs/compile/compiler.js.map +1 -1
- package/cjs/compile/mark/compilable-mark.d.ts +10 -6
- package/cjs/compile/mark/compilable-mark.js +22 -11
- package/cjs/compile/mark/compilable-mark.js.map +1 -1
- package/cjs/compile/mark/interface.d.ts +6 -4
- package/cjs/compile/mark/interface.js.map +1 -1
- package/cjs/compile/mark/util.d.ts +1 -3
- package/cjs/compile/mark/util.js +1 -37
- package/cjs/compile/mark/util.js.map +1 -1
- package/cjs/component/axis/base-axis.d.ts +1 -4
- package/cjs/component/axis/base-axis.js +19 -34
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/axis.d.ts +3 -13
- package/cjs/component/axis/cartesian/axis.js +15 -15
- package/cjs/component/axis/cartesian/axis.js.map +1 -1
- package/cjs/component/axis/cartesian/band-axis.d.ts +0 -7
- package/cjs/component/axis/cartesian/band-axis.js +0 -1
- package/cjs/component/axis/cartesian/band-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/interface/common.d.ts +0 -6
- package/cjs/component/axis/cartesian/interface/common.js.map +1 -1
- package/cjs/component/axis/interface/common.d.ts +0 -1
- package/cjs/component/axis/interface/common.js.map +1 -1
- package/cjs/component/axis/interface/spec.js.map +1 -1
- package/cjs/component/axis/mixin/band-axis-mixin.d.ts +0 -1
- package/cjs/component/axis/mixin/band-axis-mixin.js +1 -1
- package/cjs/component/axis/mixin/band-axis-mixin.js.map +1 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.d.ts +0 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.js +4 -3
- package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/cjs/component/axis/polar/axis.js +6 -3
- package/cjs/component/axis/polar/axis.js.map +1 -1
- package/cjs/component/base/base-component.js +3 -3
- package/cjs/component/base/base-component.js.map +1 -1
- package/cjs/component/base/util.js +16 -12
- package/cjs/component/base/util.js.map +1 -1
- package/cjs/component/brush/brush.d.ts +1 -2
- package/cjs/component/brush/brush.js +1 -1
- package/cjs/component/brush/brush.js.map +1 -1
- package/cjs/component/crosshair/base.d.ts +2 -2
- package/cjs/component/crosshair/base.js +1 -1
- package/cjs/component/crosshair/base.js.map +1 -1
- package/cjs/component/custom-mark/custom-mark.d.ts +2 -2
- package/cjs/component/custom-mark/custom-mark.js +1 -1
- package/cjs/component/custom-mark/custom-mark.js.map +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.d.ts +3 -1
- package/cjs/component/data-zoom/data-filter-base-component.js +52 -30
- package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +3 -1
- package/cjs/component/data-zoom/data-zoom/data-zoom.js +47 -37
- package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/cjs/component/data-zoom/data-zoom/interface.d.ts +5 -1
- package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
- package/cjs/component/data-zoom/scroll-bar/interface.d.ts +5 -1
- package/cjs/component/data-zoom/scroll-bar/interface.js.map +1 -1
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.d.ts +3 -0
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.js +19 -15
- package/cjs/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
- package/cjs/component/data-zoom/util.d.ts +4 -0
- package/cjs/component/data-zoom/util.js +11 -2
- package/cjs/component/data-zoom/util.js.map +1 -1
- package/cjs/component/geo/geo-coordinate.d.ts +2 -2
- package/cjs/component/geo/geo-coordinate.js +1 -1
- package/cjs/component/geo/geo-coordinate.js.map +1 -1
- package/cjs/component/index.d.ts +3 -2
- package/cjs/component/index.js.map +1 -1
- package/cjs/component/indicator/indicator.d.ts +2 -2
- package/cjs/component/indicator/indicator.js +1 -1
- package/cjs/component/indicator/indicator.js.map +1 -1
- package/cjs/component/interface/theme.d.ts +2 -1
- package/cjs/component/interface/theme.js.map +1 -1
- package/cjs/component/label/base-label.d.ts +1 -2
- package/cjs/component/label/base-label.js +1 -2
- package/cjs/component/label/base-label.js.map +1 -1
- package/cjs/component/label/interface.d.ts +4 -0
- package/cjs/component/label/interface.js.map +1 -1
- package/cjs/component/label/label.d.ts +4 -6
- package/cjs/component/label/label.js +13 -8
- package/cjs/component/label/label.js.map +1 -1
- package/cjs/component/label/totalLabel.d.ts +0 -2
- package/cjs/component/label/totalLabel.js +2 -1
- package/cjs/component/label/totalLabel.js.map +1 -1
- package/cjs/component/label/util.d.ts +9 -2
- package/cjs/component/label/util.js +20 -5
- package/cjs/component/label/util.js.map +1 -1
- package/cjs/component/legend/util.d.ts +1 -1
- package/cjs/component/map-label/component.d.ts +2 -2
- package/cjs/component/map-label/component.js +1 -1
- package/cjs/component/map-label/component.js.map +1 -1
- package/cjs/component/marker/base-marker.d.ts +7 -2
- package/cjs/component/marker/base-marker.js +43 -19
- package/cjs/component/marker/base-marker.js.map +1 -1
- package/cjs/component/marker/interface.d.ts +14 -3
- package/cjs/component/marker/interface.js.map +1 -1
- package/cjs/component/marker/mark-area/interface/spec.d.ts +1 -1
- package/cjs/component/marker/mark-area/interface/spec.js.map +1 -1
- package/cjs/component/marker/mark-area/mark-area.js +28 -12
- package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
- package/cjs/component/marker/mark-line/interface/spec.d.ts +3 -4
- package/cjs/component/marker/mark-line/interface/spec.js.map +1 -1
- package/cjs/component/marker/mark-line/mark-line.js +32 -14
- package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
- package/cjs/component/marker/mark-line/util.d.ts +3 -3
- package/cjs/component/marker/mark-line/util.js.map +1 -1
- package/cjs/component/marker/mark-point/interface/spec.d.ts +5 -4
- package/cjs/component/marker/mark-point/interface/spec.js.map +1 -1
- package/cjs/component/marker/mark-point/interface/theme.d.ts +5 -5
- package/cjs/component/marker/mark-point/interface/theme.js.map +1 -1
- package/cjs/component/marker/mark-point/mark-point.js +13 -5
- package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
- package/cjs/component/marker/utils.d.ts +3 -4
- package/cjs/component/marker/utils.js +44 -25
- package/cjs/component/marker/utils.js.map +1 -1
- package/cjs/component/title/title.js +1 -1
- package/cjs/component/title/title.js.map +1 -1
- package/cjs/component/tooltip/handler/base.js +6 -6
- package/cjs/component/tooltip/handler/base.js.map +1 -1
- package/cjs/component/tooltip/handler/dom/util.js +3 -2
- package/cjs/component/tooltip/handler/dom/util.js.map +1 -1
- package/cjs/component/tooltip/handler/utils/attribute.d.ts +3 -3
- package/cjs/component/tooltip/handler/utils/attribute.js.map +1 -1
- package/cjs/component/tooltip/handler/utils/common.js.map +1 -1
- package/cjs/component/tooltip/interface/spec.d.ts +1 -1
- package/cjs/component/tooltip/interface/spec.js.map +1 -1
- package/cjs/component/tooltip/interface/theme.d.ts +10 -11
- package/cjs/component/tooltip/interface/theme.js.map +1 -1
- package/cjs/component/tooltip/tooltip.d.ts +2 -2
- package/cjs/component/tooltip/tooltip.js +3 -4
- package/cjs/component/tooltip/tooltip.js.map +1 -1
- package/cjs/component/util.d.ts +1 -3
- package/cjs/component/util.js +2 -2
- package/cjs/component/util.js.map +1 -1
- package/cjs/constant/scatter.js +1 -2
- package/cjs/constant/scroll-bar.js +2 -1
- package/cjs/core/expression-function.d.ts +12 -0
- package/cjs/core/expression-function.js +30 -0
- package/cjs/core/expression-function.js.map +1 -0
- package/cjs/core/index.d.ts +2 -1
- package/cjs/core/index.js +3 -2
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/interface.d.ts +5 -0
- package/cjs/core/interface.js.map +1 -1
- package/cjs/core/vchart.d.ts +9 -1
- package/cjs/core/vchart.js +97 -71
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/data/initialize.js +7 -6
- package/cjs/data/initialize.js.map +1 -1
- package/cjs/data/transforms/aggregation.d.ts +4 -3
- package/cjs/data/transforms/aggregation.js +4 -4
- package/cjs/data/transforms/aggregation.js.map +1 -1
- package/cjs/data/transforms/dimension-statistics.js +14 -4
- package/cjs/data/transforms/dimension-statistics.js.map +1 -1
- package/cjs/data/transforms/sankey.d.ts +3 -6
- package/cjs/data/transforms/sankey.js +40 -23
- package/cjs/data/transforms/sankey.js.map +1 -1
- package/cjs/event/bubble.js +1 -2
- package/cjs/event/event.js +2 -1
- package/cjs/event/events/dimension/base.d.ts +1 -0
- package/cjs/event/events/dimension/base.js +10 -6
- package/cjs/event/events/dimension/base.js.map +1 -1
- package/cjs/event/interface.d.ts +1 -1
- package/cjs/event/interface.js.map +1 -1
- package/cjs/index-wx-simple.d.ts +4 -0
- package/cjs/index-wx-simple.js +35 -0
- package/cjs/index-wx-simple.js.map +1 -0
- package/cjs/interaction/config.d.ts +2 -2
- package/cjs/interaction/config.js +2 -2
- package/cjs/interaction/config.js.map +1 -1
- package/cjs/interaction/trigger.js +2 -2
- package/cjs/interaction/trigger.js.map +1 -1
- package/cjs/layout/base-layout.js +1 -1
- package/cjs/layout/layout-item.js +3 -5
- package/cjs/layout/layout-item.js.map +1 -1
- package/cjs/mark/arc.js +2 -2
- package/cjs/mark/arc.js.map +1 -1
- package/cjs/mark/base/base-mark.d.ts +2 -2
- package/cjs/mark/base/base-mark.js +62 -40
- package/cjs/mark/base/base-mark.js.map +1 -1
- package/cjs/mark/label.js +1 -4
- package/cjs/mark/label.js.map +1 -1
- package/cjs/model/base-model.d.ts +0 -2
- package/cjs/model/base-model.js +9 -15
- package/cjs/model/base-model.js.map +1 -1
- package/cjs/model/interface.d.ts +3 -9
- package/cjs/model/interface.js.map +1 -1
- package/cjs/model/layout-model.d.ts +6 -4
- package/cjs/model/layout-model.js +28 -17
- package/cjs/model/layout-model.js.map +1 -1
- package/cjs/series/area/area.d.ts +1 -1
- package/cjs/series/area/area.js +5 -6
- package/cjs/series/area/area.js.map +1 -1
- package/cjs/series/area/interface.d.ts +4 -0
- package/cjs/series/area/interface.js.map +1 -1
- package/cjs/series/bar/bar.js +2 -4
- package/cjs/series/bar/bar.js.map +1 -1
- package/cjs/series/base/base-series.d.ts +4 -0
- package/cjs/series/base/base-series.js +13 -5
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/cartesian/cartesian.d.ts +3 -0
- package/cjs/series/cartesian/cartesian.js +16 -4
- package/cjs/series/cartesian/cartesian.js.map +1 -1
- package/cjs/series/correlation/correlation.js +3 -7
- package/cjs/series/correlation/correlation.js.map +1 -1
- package/cjs/series/funnel/funnel-3d.js +1 -1
- package/cjs/series/funnel/funnel-3d.js.map +1 -1
- package/cjs/series/funnel/funnel.js +2 -6
- package/cjs/series/funnel/funnel.js.map +1 -1
- package/cjs/series/gauge/gauge.d.ts +0 -1
- package/cjs/series/gauge/gauge.js +3 -8
- package/cjs/series/gauge/gauge.js.map +1 -1
- package/cjs/series/heatmap/heatmap.js +2 -4
- package/cjs/series/heatmap/heatmap.js.map +1 -1
- package/cjs/series/index.d.ts +2 -2
- package/cjs/series/index.js.map +1 -1
- package/cjs/series/interface/common.d.ts +2 -2
- package/cjs/series/interface/common.js.map +1 -1
- package/cjs/series/interface/series.d.ts +1 -0
- package/cjs/series/interface/series.js.map +1 -1
- package/cjs/series/interface/type.d.ts +3 -1
- package/cjs/series/interface/type.js +2 -1
- package/cjs/series/interface/type.js.map +1 -1
- package/cjs/series/line/interface.d.ts +4 -0
- package/cjs/series/line/interface.js.map +1 -1
- package/cjs/series/line/line.d.ts +1 -1
- package/cjs/series/line/line.js.map +1 -1
- package/cjs/series/map/map.js +2 -4
- package/cjs/series/map/map.js.map +1 -1
- package/cjs/series/mixin/line-mixin.d.ts +3 -1
- package/cjs/series/mixin/line-mixin.js +16 -10
- package/cjs/series/mixin/line-mixin.js.map +1 -1
- package/cjs/series/pie/pie.js +1 -4
- package/cjs/series/pie/pie.js.map +1 -1
- package/cjs/series/polar/progress-like/progress-like.js +4 -4
- package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
- package/cjs/series/radar/animation.js.map +1 -1
- package/cjs/series/range-column/range-column.js +2 -2
- package/cjs/series/range-column/range-column.js.map +1 -1
- package/cjs/series/rose/rose.d.ts +2 -1
- package/cjs/series/rose/rose.js +2 -4
- package/cjs/series/rose/rose.js.map +1 -1
- package/cjs/series/sankey/sankey.d.ts +6 -1
- package/cjs/series/sankey/sankey.js +48 -42
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/cjs/series/scatter/scatter.js +2 -4
- package/cjs/series/scatter/scatter.js.map +1 -1
- package/cjs/series/waterfall/waterfall.js +1 -1
- package/cjs/series/waterfall/waterfall.js.map +1 -1
- package/cjs/series/word-cloud/base.d.ts +1 -0
- package/cjs/series/word-cloud/base.js +33 -33
- package/cjs/series/word-cloud/base.js.map +1 -1
- package/cjs/series/word-cloud/word-cloud-3d.js +32 -32
- package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
- package/cjs/theme/builtin/common/component/axis/cartesian-axis.js +2 -2
- package/cjs/theme/builtin/common/component/axis/cartesian-axis.js.map +1 -1
- package/cjs/theme/builtin/common/component/axis/common-axis.js +1 -1
- package/cjs/theme/builtin/common/component/axis/common-axis.js.map +1 -1
- package/cjs/theme/builtin/common/component/crosshair.js +5 -5
- package/cjs/theme/builtin/common/component/crosshair.js.map +1 -1
- package/cjs/theme/builtin/common/component/data-zoom.js +10 -10
- package/cjs/theme/builtin/common/component/data-zoom.js.map +1 -1
- package/cjs/theme/builtin/common/component/indicator.js +1 -1
- package/cjs/theme/builtin/common/component/indicator.js.map +1 -1
- package/cjs/theme/builtin/common/component/legend/color-legend.js +3 -4
- package/cjs/theme/builtin/common/component/legend/color-legend.js.map +1 -1
- package/cjs/theme/builtin/common/component/legend/discrete-legend.js +2 -2
- package/cjs/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
- package/cjs/theme/builtin/common/component/legend/size-legend.js +6 -6
- package/cjs/theme/builtin/common/component/legend/size-legend.js.map +1 -1
- package/cjs/theme/builtin/common/component/map-label.js.map +1 -1
- package/cjs/theme/builtin/common/component/mark-area.js.map +1 -1
- package/cjs/theme/builtin/common/component/mark-line.js +9 -9
- package/cjs/theme/builtin/common/component/mark-line.js.map +1 -1
- package/cjs/theme/builtin/common/component/mark-point.js +15 -3
- package/cjs/theme/builtin/common/component/mark-point.js.map +1 -1
- package/cjs/theme/builtin/common/component/player.js +7 -7
- package/cjs/theme/builtin/common/component/player.js.map +1 -1
- package/cjs/theme/builtin/common/component/poptip.js +3 -4
- package/cjs/theme/builtin/common/component/poptip.js.map +1 -1
- package/cjs/theme/builtin/common/component/scroll-bar.js +20 -7
- package/cjs/theme/builtin/common/component/scroll-bar.js.map +1 -1
- package/cjs/theme/builtin/common/component/title.js +1 -1
- package/cjs/theme/builtin/common/component/title.js.map +1 -1
- package/cjs/theme/builtin/common/component/tooltip.d.ts +2 -1
- package/cjs/theme/builtin/common/component/tooltip.js +3 -4
- package/cjs/theme/builtin/common/component/tooltip.js.map +1 -1
- package/cjs/theme/builtin/common/component/total-label.js.map +1 -1
- package/cjs/theme/builtin/common/mark.js.map +1 -1
- package/cjs/theme/builtin/common/series/rangeColumn.js +1 -1
- package/cjs/theme/builtin/common/series/rangeColumn.js.map +1 -1
- package/cjs/theme/builtin/dark/color-scheme.js +20 -11
- package/cjs/theme/builtin/dark/color-scheme.js.map +1 -1
- package/cjs/theme/builtin/index.d.ts +2 -4
- package/cjs/theme/builtin/index.js +17 -22
- package/cjs/theme/builtin/index.js.map +1 -1
- package/cjs/theme/builtin/light/color-scheme.js +19 -10
- package/cjs/theme/builtin/light/color-scheme.js.map +1 -1
- package/cjs/theme/color-scheme/builtin/interface.d.ts +16 -7
- package/cjs/theme/color-scheme/builtin/interface.js.map +1 -1
- package/cjs/theme/color-scheme/legacy.js +18 -2
- package/cjs/theme/color-scheme/legacy.js.map +1 -1
- package/cjs/theme/color-scheme/util.js +2 -2
- package/cjs/theme/color-scheme/util.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/spec/common.d.ts +1 -2
- package/cjs/typings/spec/common.js.map +1 -1
- package/cjs/typings/visual.d.ts +1 -1
- package/cjs/typings/visual.js.map +1 -1
- package/cjs/util/spec/background.js +8 -14
- package/cjs/util/spec/background.js.map +1 -1
- package/cjs/util/spec/common.d.ts +1 -1
- package/cjs/util/spec/common.js +2 -2
- package/cjs/util/spec/common.js.map +1 -1
- package/cjs/util/spec/preprocess.d.ts +1 -1
- package/cjs/util/spec/preprocess.js +7 -17
- package/cjs/util/spec/preprocess.js.map +1 -1
- package/cjs/util/spec/transform.d.ts +2 -0
- package/cjs/util/spec/transform.js +18 -2
- package/cjs/util/spec/transform.js.map +1 -1
- package/cjs/vchart-all.js +2 -3
- package/cjs/vchart-all.js.map +1 -1
- package/cjs/vchart-simple.d.ts +1 -0
- package/cjs/vchart-simple.js +4 -4
- package/cjs/vchart-simple.js.map +1 -1
- package/esm/chart/area/area.js +2 -1
- package/esm/chart/area/area.js.map +1 -1
- package/esm/chart/base-chart.d.ts +9 -12
- package/esm/chart/base-chart.js +33 -45
- package/esm/chart/base-chart.js.map +1 -1
- package/esm/chart/interface/chart.d.ts +2 -4
- package/esm/chart/interface/chart.js.map +1 -1
- package/esm/chart/line/line.js +2 -1
- package/esm/chart/line/line.js.map +1 -1
- package/esm/chart/sequence/sequence.d.ts +1 -1
- package/esm/chart/sequence/sequence.js +1 -1
- package/esm/chart/sequence/sequence.js.map +1 -1
- package/esm/chart/stack.js +2 -1
- package/esm/compile/compiler.d.ts +2 -2
- package/esm/compile/compiler.js +7 -7
- package/esm/compile/compiler.js.map +1 -1
- package/esm/compile/mark/compilable-mark.d.ts +10 -6
- package/esm/compile/mark/compilable-mark.js +23 -12
- package/esm/compile/mark/compilable-mark.js.map +1 -1
- package/esm/compile/mark/interface.d.ts +6 -4
- package/esm/compile/mark/interface.js.map +1 -1
- package/esm/compile/mark/util.d.ts +1 -3
- package/esm/compile/mark/util.js +0 -34
- package/esm/compile/mark/util.js.map +1 -1
- package/esm/component/axis/base-axis.d.ts +1 -4
- package/esm/component/axis/base-axis.js +18 -35
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/axis/cartesian/axis.d.ts +3 -13
- package/esm/component/axis/cartesian/axis.js +14 -13
- package/esm/component/axis/cartesian/axis.js.map +1 -1
- package/esm/component/axis/cartesian/band-axis.d.ts +0 -7
- package/esm/component/axis/cartesian/band-axis.js +0 -1
- package/esm/component/axis/cartesian/band-axis.js.map +1 -1
- package/esm/component/axis/cartesian/interface/common.d.ts +0 -6
- package/esm/component/axis/cartesian/interface/common.js.map +1 -1
- package/esm/component/axis/interface/common.d.ts +0 -1
- package/esm/component/axis/interface/common.js.map +1 -1
- package/esm/component/axis/interface/spec.js.map +1 -1
- package/esm/component/axis/mixin/band-axis-mixin.d.ts +0 -1
- package/esm/component/axis/mixin/band-axis-mixin.js +1 -1
- package/esm/component/axis/mixin/band-axis-mixin.js.map +1 -1
- package/esm/component/axis/mixin/linear-axis-mixin.d.ts +0 -1
- package/esm/component/axis/mixin/linear-axis-mixin.js +4 -3
- package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/esm/component/axis/polar/axis.js +5 -2
- package/esm/component/axis/polar/axis.js.map +1 -1
- package/esm/component/base/base-component.js +2 -4
- package/esm/component/base/base-component.js.map +1 -1
- package/esm/component/base/util.js +7 -3
- package/esm/component/base/util.js.map +1 -1
- package/esm/component/brush/brush.d.ts +1 -2
- package/esm/component/brush/brush.js +1 -1
- package/esm/component/brush/brush.js.map +1 -1
- package/esm/component/crosshair/base.d.ts +2 -2
- package/esm/component/crosshair/base.js +1 -1
- package/esm/component/crosshair/base.js.map +1 -1
- package/esm/component/custom-mark/custom-mark.d.ts +2 -2
- package/esm/component/custom-mark/custom-mark.js +1 -1
- package/esm/component/custom-mark/custom-mark.js.map +1 -1
- package/esm/component/data-zoom/data-filter-base-component.d.ts +3 -1
- package/esm/component/data-zoom/data-filter-base-component.js +52 -30
- package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +3 -1
- package/esm/component/data-zoom/data-zoom/data-zoom.js +47 -37
- package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/esm/component/data-zoom/data-zoom/interface.d.ts +5 -1
- package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
- package/esm/component/data-zoom/scroll-bar/interface.d.ts +5 -1
- package/esm/component/data-zoom/scroll-bar/interface.js.map +1 -1
- package/esm/component/data-zoom/scroll-bar/scroll-bar.d.ts +3 -0
- package/esm/component/data-zoom/scroll-bar/scroll-bar.js +19 -15
- package/esm/component/data-zoom/scroll-bar/scroll-bar.js.map +1 -1
- package/esm/component/data-zoom/util.d.ts +4 -0
- package/esm/component/data-zoom/util.js +13 -1
- package/esm/component/data-zoom/util.js.map +1 -1
- package/esm/component/geo/geo-coordinate.d.ts +2 -2
- package/esm/component/geo/geo-coordinate.js +1 -1
- package/esm/component/geo/geo-coordinate.js.map +1 -1
- package/esm/component/index.d.ts +3 -2
- package/esm/component/index.js.map +1 -1
- package/esm/component/indicator/indicator.d.ts +2 -2
- package/esm/component/indicator/indicator.js +1 -1
- package/esm/component/indicator/indicator.js.map +1 -1
- package/esm/component/interface/theme.d.ts +2 -1
- package/esm/component/interface/theme.js.map +1 -1
- package/esm/component/label/base-label.d.ts +1 -2
- package/esm/component/label/base-label.js +1 -1
- package/esm/component/label/base-label.js.map +1 -1
- package/esm/component/label/interface.d.ts +4 -0
- package/esm/component/label/interface.js.map +1 -1
- package/esm/component/label/label.d.ts +4 -6
- package/esm/component/label/label.js +14 -8
- package/esm/component/label/label.js.map +1 -1
- package/esm/component/label/totalLabel.d.ts +0 -2
- package/esm/component/label/totalLabel.js +2 -1
- package/esm/component/label/totalLabel.js.map +1 -1
- package/esm/component/label/util.d.ts +9 -2
- package/esm/component/label/util.js +17 -3
- package/esm/component/label/util.js.map +1 -1
- package/esm/component/legend/util.d.ts +1 -1
- package/esm/component/map-label/component.d.ts +2 -2
- package/esm/component/map-label/component.js +1 -1
- package/esm/component/map-label/component.js.map +1 -1
- package/esm/component/marker/base-marker.d.ts +7 -2
- package/esm/component/marker/base-marker.js +41 -18
- package/esm/component/marker/base-marker.js.map +1 -1
- package/esm/component/marker/interface.d.ts +14 -3
- package/esm/component/marker/interface.js.map +1 -1
- package/esm/component/marker/mark-area/interface/spec.d.ts +1 -1
- package/esm/component/marker/mark-area/interface/spec.js.map +1 -1
- package/esm/component/marker/mark-area/mark-area.js +25 -11
- package/esm/component/marker/mark-area/mark-area.js.map +1 -1
- package/esm/component/marker/mark-line/interface/spec.d.ts +3 -4
- package/esm/component/marker/mark-line/interface/spec.js.map +1 -1
- package/esm/component/marker/mark-line/mark-line.js +32 -11
- package/esm/component/marker/mark-line/mark-line.js.map +1 -1
- package/esm/component/marker/mark-line/util.d.ts +3 -3
- package/esm/component/marker/mark-line/util.js.map +1 -1
- package/esm/component/marker/mark-point/interface/spec.d.ts +5 -4
- package/esm/component/marker/mark-point/interface/spec.js.map +1 -1
- package/esm/component/marker/mark-point/interface/theme.d.ts +5 -5
- package/esm/component/marker/mark-point/interface/theme.js.map +1 -1
- package/esm/component/marker/mark-point/mark-point.js +13 -5
- package/esm/component/marker/mark-point/mark-point.js.map +1 -1
- package/esm/component/marker/utils.d.ts +3 -4
- package/esm/component/marker/utils.js +43 -23
- package/esm/component/marker/utils.js.map +1 -1
- package/esm/component/title/title.js +1 -1
- package/esm/component/title/title.js.map +1 -1
- package/esm/component/tooltip/handler/base.js +5 -7
- package/esm/component/tooltip/handler/base.js.map +1 -1
- package/esm/component/tooltip/handler/dom/util.js +3 -1
- package/esm/component/tooltip/handler/dom/util.js.map +1 -1
- package/esm/component/tooltip/handler/utils/attribute.d.ts +3 -3
- package/esm/component/tooltip/handler/utils/attribute.js.map +1 -1
- package/esm/component/tooltip/handler/utils/common.js.map +1 -1
- package/esm/component/tooltip/interface/spec.d.ts +1 -1
- package/esm/component/tooltip/interface/spec.js.map +1 -1
- package/esm/component/tooltip/interface/theme.d.ts +10 -11
- package/esm/component/tooltip/interface/theme.js.map +1 -1
- package/esm/component/tooltip/tooltip.d.ts +2 -2
- package/esm/component/tooltip/tooltip.js +3 -3
- package/esm/component/tooltip/tooltip.js.map +1 -1
- package/esm/component/util.d.ts +1 -3
- package/esm/component/util.js +2 -2
- package/esm/component/util.js.map +1 -1
- package/esm/constant/scatter.js +1 -2
- package/esm/constant/scroll-bar.js +2 -1
- package/esm/core/expression-function.d.ts +12 -0
- package/esm/core/expression-function.js +22 -0
- package/esm/core/expression-function.js.map +1 -0
- package/esm/core/index.d.ts +2 -1
- package/esm/core/index.js +3 -1
- package/esm/core/index.js.map +1 -1
- package/esm/core/interface.d.ts +5 -0
- package/esm/core/interface.js.map +1 -1
- package/esm/core/vchart.d.ts +9 -1
- package/esm/core/vchart.js +65 -44
- package/esm/core/vchart.js.map +1 -1
- package/esm/data/initialize.js +7 -7
- package/esm/data/initialize.js.map +1 -1
- package/esm/data/transforms/aggregation.d.ts +4 -3
- package/esm/data/transforms/aggregation.js +6 -6
- package/esm/data/transforms/aggregation.js.map +1 -1
- package/esm/data/transforms/dimension-statistics.js +14 -4
- package/esm/data/transforms/dimension-statistics.js.map +1 -1
- package/esm/data/transforms/sankey.d.ts +3 -6
- package/esm/data/transforms/sankey.js +36 -22
- package/esm/data/transforms/sankey.js.map +1 -1
- package/esm/event/bubble.js +1 -2
- package/esm/event/event.js +2 -1
- package/esm/event/events/dimension/base.d.ts +1 -0
- package/esm/event/events/dimension/base.js +10 -6
- package/esm/event/events/dimension/base.js.map +1 -1
- package/esm/event/interface.d.ts +1 -1
- package/esm/event/interface.js.map +1 -1
- package/esm/index-wx-simple.d.ts +4 -0
- package/esm/index-wx-simple.js +35 -0
- package/esm/index-wx-simple.js.map +1 -0
- package/esm/interaction/config.d.ts +2 -2
- package/esm/interaction/config.js +2 -2
- package/esm/interaction/config.js.map +1 -1
- package/esm/interaction/trigger.js +2 -2
- package/esm/interaction/trigger.js.map +1 -1
- package/esm/layout/base-layout.js +1 -1
- package/esm/layout/layout-item.js +3 -5
- package/esm/layout/layout-item.js.map +1 -1
- package/esm/mark/arc.js +2 -2
- package/esm/mark/arc.js.map +1 -1
- package/esm/mark/base/base-mark.d.ts +2 -2
- package/esm/mark/base/base-mark.js +59 -38
- package/esm/mark/base/base-mark.js.map +1 -1
- package/esm/mark/label.js +1 -4
- package/esm/mark/label.js.map +1 -1
- package/esm/model/base-model.d.ts +0 -2
- package/esm/model/base-model.js +8 -18
- package/esm/model/base-model.js.map +1 -1
- package/esm/model/interface.d.ts +3 -9
- package/esm/model/interface.js.map +1 -1
- package/esm/model/layout-model.d.ts +6 -4
- package/esm/model/layout-model.js +27 -18
- package/esm/model/layout-model.js.map +1 -1
- package/esm/series/area/area.d.ts +1 -1
- package/esm/series/area/area.js +5 -6
- package/esm/series/area/area.js.map +1 -1
- package/esm/series/area/interface.d.ts +4 -0
- package/esm/series/area/interface.js.map +1 -1
- package/esm/series/bar/bar.js +1 -5
- package/esm/series/bar/bar.js.map +1 -1
- package/esm/series/base/base-series.d.ts +4 -0
- package/esm/series/base/base-series.js +13 -7
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/cartesian/cartesian.d.ts +3 -0
- package/esm/series/cartesian/cartesian.js +16 -4
- package/esm/series/cartesian/cartesian.js.map +1 -1
- package/esm/series/correlation/correlation.js +2 -8
- package/esm/series/correlation/correlation.js.map +1 -1
- package/esm/series/funnel/funnel-3d.js +1 -1
- package/esm/series/funnel/funnel-3d.js.map +1 -1
- package/esm/series/funnel/funnel.js +3 -7
- package/esm/series/funnel/funnel.js.map +1 -1
- package/esm/series/gauge/gauge.d.ts +0 -1
- package/esm/series/gauge/gauge.js +2 -9
- package/esm/series/gauge/gauge.js.map +1 -1
- package/esm/series/heatmap/heatmap.js +1 -5
- package/esm/series/heatmap/heatmap.js.map +1 -1
- package/esm/series/index.d.ts +2 -2
- package/esm/series/index.js.map +1 -1
- package/esm/series/interface/common.d.ts +2 -2
- package/esm/series/interface/common.js.map +1 -1
- package/esm/series/interface/series.d.ts +1 -0
- package/esm/series/interface/series.js.map +1 -1
- package/esm/series/interface/type.d.ts +3 -1
- package/esm/series/interface/type.js +2 -1
- package/esm/series/interface/type.js.map +1 -1
- package/esm/series/line/interface.d.ts +4 -0
- package/esm/series/line/interface.js.map +1 -1
- package/esm/series/line/line.d.ts +1 -1
- package/esm/series/line/line.js.map +1 -1
- package/esm/series/map/map.js +1 -5
- package/esm/series/map/map.js.map +1 -1
- package/esm/series/mixin/line-mixin.d.ts +3 -1
- package/esm/series/mixin/line-mixin.js +15 -10
- package/esm/series/mixin/line-mixin.js.map +1 -1
- package/esm/series/pie/pie.js +1 -4
- package/esm/series/pie/pie.js.map +1 -1
- package/esm/series/polar/progress-like/progress-like.js +3 -4
- package/esm/series/polar/progress-like/progress-like.js.map +1 -1
- package/esm/series/radar/animation.js.map +1 -1
- package/esm/series/range-column/range-column.js +1 -3
- package/esm/series/range-column/range-column.js.map +1 -1
- package/esm/series/rose/rose.d.ts +2 -1
- package/esm/series/rose/rose.js +1 -5
- package/esm/series/rose/rose.js.map +1 -1
- package/esm/series/sankey/sankey.d.ts +6 -1
- package/esm/series/sankey/sankey.js +49 -46
- package/esm/series/sankey/sankey.js.map +1 -1
- package/esm/series/scatter/scatter.js +1 -5
- package/esm/series/scatter/scatter.js.map +1 -1
- package/esm/series/waterfall/waterfall.js +1 -1
- package/esm/series/waterfall/waterfall.js.map +1 -1
- package/esm/series/word-cloud/base.d.ts +1 -0
- package/esm/series/word-cloud/base.js +33 -33
- package/esm/series/word-cloud/base.js.map +1 -1
- package/esm/series/word-cloud/word-cloud-3d.js +32 -32
- package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
- package/esm/theme/builtin/common/component/axis/cartesian-axis.js +2 -2
- package/esm/theme/builtin/common/component/axis/cartesian-axis.js.map +1 -1
- package/esm/theme/builtin/common/component/axis/common-axis.js +1 -1
- package/esm/theme/builtin/common/component/axis/common-axis.js.map +1 -1
- package/esm/theme/builtin/common/component/crosshair.js +5 -5
- package/esm/theme/builtin/common/component/crosshair.js.map +1 -1
- package/esm/theme/builtin/common/component/data-zoom.js +10 -10
- package/esm/theme/builtin/common/component/data-zoom.js.map +1 -1
- package/esm/theme/builtin/common/component/indicator.js +1 -1
- package/esm/theme/builtin/common/component/indicator.js.map +1 -1
- package/esm/theme/builtin/common/component/legend/color-legend.js +3 -4
- package/esm/theme/builtin/common/component/legend/color-legend.js.map +1 -1
- package/esm/theme/builtin/common/component/legend/discrete-legend.js +2 -2
- package/esm/theme/builtin/common/component/legend/discrete-legend.js.map +1 -1
- package/esm/theme/builtin/common/component/legend/size-legend.js +6 -6
- package/esm/theme/builtin/common/component/legend/size-legend.js.map +1 -1
- package/esm/theme/builtin/common/component/map-label.js.map +1 -1
- package/esm/theme/builtin/common/component/mark-area.js.map +1 -1
- package/esm/theme/builtin/common/component/mark-line.js +9 -9
- package/esm/theme/builtin/common/component/mark-line.js.map +1 -1
- package/esm/theme/builtin/common/component/mark-point.js +15 -3
- package/esm/theme/builtin/common/component/mark-point.js.map +1 -1
- package/esm/theme/builtin/common/component/player.js +7 -7
- package/esm/theme/builtin/common/component/player.js.map +1 -1
- package/esm/theme/builtin/common/component/poptip.js +3 -4
- package/esm/theme/builtin/common/component/poptip.js.map +1 -1
- package/esm/theme/builtin/common/component/scroll-bar.js +20 -7
- package/esm/theme/builtin/common/component/scroll-bar.js.map +1 -1
- package/esm/theme/builtin/common/component/title.js +1 -1
- package/esm/theme/builtin/common/component/title.js.map +1 -1
- package/esm/theme/builtin/common/component/tooltip.d.ts +2 -1
- package/esm/theme/builtin/common/component/tooltip.js +3 -4
- package/esm/theme/builtin/common/component/tooltip.js.map +1 -1
- package/esm/theme/builtin/common/component/total-label.js.map +1 -1
- package/esm/theme/builtin/common/mark.js.map +1 -1
- package/esm/theme/builtin/common/series/rangeColumn.js +1 -1
- package/esm/theme/builtin/common/series/rangeColumn.js.map +1 -1
- package/esm/theme/builtin/dark/color-scheme.js +20 -11
- package/esm/theme/builtin/dark/color-scheme.js.map +1 -1
- package/esm/theme/builtin/index.d.ts +2 -4
- package/esm/theme/builtin/index.js +15 -28
- package/esm/theme/builtin/index.js.map +1 -1
- package/esm/theme/builtin/light/color-scheme.js +19 -10
- package/esm/theme/builtin/light/color-scheme.js.map +1 -1
- package/esm/theme/color-scheme/builtin/interface.d.ts +16 -7
- package/esm/theme/color-scheme/builtin/interface.js.map +1 -1
- package/esm/theme/color-scheme/legacy.js +18 -2
- package/esm/theme/color-scheme/legacy.js.map +1 -1
- package/esm/theme/color-scheme/util.js +2 -2
- package/esm/theme/color-scheme/util.js.map +1 -1
- package/esm/theme/theme-manager.d.ts +1 -1
- package/esm/theme/theme-manager.js +2 -2
- package/esm/theme/theme-manager.js.map +1 -1
- package/esm/typings/spec/common.d.ts +1 -2
- package/esm/typings/spec/common.js.map +1 -1
- package/esm/typings/visual.d.ts +1 -1
- package/esm/typings/visual.js.map +1 -1
- package/esm/util/spec/background.js +3 -11
- package/esm/util/spec/background.js.map +1 -1
- package/esm/util/spec/common.d.ts +1 -1
- package/esm/util/spec/common.js +2 -2
- package/esm/util/spec/common.js.map +1 -1
- package/esm/util/spec/preprocess.d.ts +1 -1
- package/esm/util/spec/preprocess.js +5 -18
- package/esm/util/spec/preprocess.js.map +1 -1
- package/esm/util/spec/transform.d.ts +2 -0
- package/esm/util/spec/transform.js +17 -1
- package/esm/util/spec/transform.js.map +1 -1
- package/esm/vchart-all.js +1 -4
- package/esm/vchart-all.js.map +1 -1
- package/esm/vchart-simple.d.ts +1 -0
- package/esm/vchart-simple.js +15 -14
- package/esm/vchart-simple.js.map +1 -1
- package/package.json +19 -20
- package/cjs/theme/util.d.ts +0 -5
- package/cjs/theme/util.js +0 -35
- package/cjs/theme/util.js.map +0 -1
- package/esm/theme/util.d.ts +0 -5
- package/esm/theme/util.js +0 -37
- package/esm/theme/util.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isFunction, isPlainObject, isValid } from "@visactor/vutils";
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { variance, average, min, max, sum, standardDeviation, median } from "../../util/math";
|
|
4
4
|
|
|
5
5
|
export const markerMin = (_data, opt) => {
|
|
6
6
|
const data = _data[0].latestData;
|
|
@@ -55,22 +55,22 @@ export function markerAggregation(_data, options) {
|
|
|
55
55
|
if (isValid(option.x)) {
|
|
56
56
|
let x = option.x;
|
|
57
57
|
if (isFunction(x) && (x = x(relativeSeriesData, startRelativeSeriesData, endRelativeSeriesData)),
|
|
58
|
-
|
|
58
|
+
isPlainObject(x)) {
|
|
59
59
|
const {aggrType: aggrType, field: field} = x;
|
|
60
60
|
result.x = aggrMap[aggrType](_data, {
|
|
61
61
|
field: field
|
|
62
62
|
});
|
|
63
|
-
}
|
|
63
|
+
} else result.x = x;
|
|
64
64
|
}
|
|
65
65
|
if (isValid(option.y)) {
|
|
66
66
|
let y = option.y;
|
|
67
67
|
if (isFunction(y) && (y = y(relativeSeriesData, startRelativeSeriesData, endRelativeSeriesData)),
|
|
68
|
-
|
|
68
|
+
isPlainObject(y)) {
|
|
69
69
|
const {aggrType: aggrType, field: field} = y;
|
|
70
70
|
result.y = aggrMap[aggrType](_data, {
|
|
71
71
|
field: field
|
|
72
72
|
});
|
|
73
|
-
}
|
|
73
|
+
} else result.y = y;
|
|
74
74
|
}
|
|
75
75
|
option.getRefRelativeSeries && (result.getRefRelativeSeries = option.getRefRelativeSeries),
|
|
76
76
|
results.push(result);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data/transforms/aggregation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/data/transforms/aggregation.ts"],"names":[],"mappings":"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","file":"aggregation.js","sourcesContent":["import type { DataView } from '@visactor/vdataset';\nimport type { IAggrType } from '../../component/marker/interface';\nimport type { ICartesianSeries } from '../../series/interface';\nimport type { Datum, StringOrNumber } from '../../typings';\n\nimport { isFunction, isPlainObject, isValid } from '@visactor/vutils';\nimport { variance, average, min, max, sum, standardDeviation, median } from '../../util/math';\n\nexport type IOption = {\n field: string;\n};\n\nexport type IOptionAggrField = {\n field: string;\n aggrType: IAggrType;\n};\n\nexport type IOptionPos = IOptionAggrField | string | number | StringOrNumber[];\n\nexport type IOptionSeries = {\n getRelativeSeries: () => ICartesianSeries;\n getStartRelativeSeries: () => ICartesianSeries;\n getEndRelativeSeries: () => ICartesianSeries;\n};\n\nexport type IOptionCallback = (\n relativeSeriesData: any,\n startRelativeSeriesData: any,\n endRelativeSeriesData: any\n) => IOptionPos;\n\nexport type IOptionAggr = {\n x?: IOptionPos | IOptionCallback;\n y?: IOptionPos | IOptionCallback;\n getRefRelativeSeries?: () => ICartesianSeries;\n} & IOptionSeries;\n\nexport const markerMin = (_data: Array<DataView>, opt: IOption) => {\n const data = _data[0].latestData as Datum[];\n\n return min(data, opt.field);\n};\nexport const markerMax = (_data: Array<DataView>, opt: IOption) => {\n const data = _data[0].latestData as Datum[];\n\n return max(data, opt.field);\n};\n\nexport function markerSum(_data: Array<DataView>, opt: IOption) {\n const data = _data[0].latestData;\n\n return sum(data, opt.field);\n}\nexport function markerAverage(_data: Array<DataView>, opt: IOption) {\n const data = _data[0].latestData;\n\n return average(data, opt.field);\n}\n\nexport function markerVariance(_data: Array<DataView>, opt: IOption) {\n const data = _data[0].latestData;\n\n return variance(data, opt.field);\n}\n\nexport function markerStandardDeviation(_data: Array<DataView>, opt: IOption) {\n const data = _data[0].latestData;\n\n return standardDeviation(data, opt.field);\n}\n\nexport function markerMedian(_data: Array<DataView>, opt: IOption) {\n const data = _data[0].latestData;\n\n return median(data, opt.field);\n}\n\nexport function markerAggregation(_data: Array<DataView>, options: IOptionAggr[]) {\n const aggrMap = {\n min: markerMin,\n max: markerMax,\n sum: markerSum,\n average: markerAverage,\n variance: markerVariance,\n standardDeviation: markerStandardDeviation,\n median: markerMedian\n };\n const results: {\n x: StringOrNumber[] | StringOrNumber | null;\n y: StringOrNumber[] | StringOrNumber | null;\n }[] = [];\n\n options.forEach(option => {\n const result: {\n x: StringOrNumber[] | StringOrNumber | null;\n y: StringOrNumber[] | StringOrNumber | null;\n getRefRelativeSeries?: () => ICartesianSeries;\n } = { x: null, y: null };\n\n const relativeSeriesData = option.getRelativeSeries().getData().getLatestData();\n const startRelativeSeriesData = option.getStartRelativeSeries().getData().getLatestData();\n const endRelativeSeriesData = option.getEndRelativeSeries().getData().getLatestData();\n\n if (isValid(option.x)) {\n let x = option.x;\n if (isFunction(x)) {\n x = x(relativeSeriesData, startRelativeSeriesData, endRelativeSeriesData);\n }\n if (isPlainObject(x)) {\n const { aggrType, field } = x as IOptionAggrField;\n result.x = aggrMap[aggrType](_data, { field: field });\n } else {\n result.x = x;\n }\n }\n if (isValid(option.y)) {\n let y = option.y;\n if (isFunction(y)) {\n y = y(relativeSeriesData, startRelativeSeriesData, endRelativeSeriesData);\n }\n\n if (isPlainObject(y)) {\n const { aggrType, field } = y as IOptionAggrField;\n result.y = aggrMap[aggrType](_data, { field: field });\n } else {\n result.y = y;\n }\n }\n if (option.getRefRelativeSeries) {\n result.getRefRelativeSeries = option.getRefRelativeSeries;\n }\n results.push(result);\n });\n\n return results;\n}\n"]}
|
|
@@ -27,16 +27,26 @@ export const dimensionStatistics = (data, op) => {
|
|
|
27
27
|
|
|
28
28
|
export const dimensionStatisticsOfSimpleData = (latestData, fields, dataFields) => {
|
|
29
29
|
const result = {};
|
|
30
|
+
let fValues = [], nextFValues = [];
|
|
30
31
|
return fields.forEach((f => {
|
|
31
32
|
const key = f.key;
|
|
32
33
|
result[key] = {};
|
|
33
34
|
const dataFieldInKey = null == dataFields ? void 0 : dataFields[key], operations = f.operations, isNumberField = operations.some((op => "min" === op || "max" === op || "allValid" === op));
|
|
34
|
-
let allValid = !0
|
|
35
|
-
|
|
35
|
+
let allValid = !0;
|
|
36
|
+
fValues.length = 0, latestData.forEach((d => {
|
|
37
|
+
d && fValues.push(d[key]);
|
|
38
|
+
}));
|
|
36
39
|
const len = fValues.length;
|
|
37
|
-
|
|
40
|
+
if (isNumberField) {
|
|
41
|
+
nextFValues.length = 0, fValues.forEach(((item, i) => {
|
|
42
|
+
couldBeValidNumber(item) && nextFValues.push(item);
|
|
43
|
+
}));
|
|
44
|
+
const t = fValues;
|
|
45
|
+
fValues = nextFValues, nextFValues = t, allValid = fValues.length === len;
|
|
46
|
+
} else fValues = operations.some((op => "array-min" === op || "array-max" === op)) ? fValues.reduce(((res, entry) => (entry && entry.forEach((d => {
|
|
38
47
|
couldBeValidNumber(d) && res.push(d);
|
|
39
|
-
})), res)), []) : fValues.filter((entry => void 0 !== entry))
|
|
48
|
+
})), res)), []) : fValues.filter((entry => void 0 !== entry));
|
|
49
|
+
operations.forEach((op => {
|
|
40
50
|
if (f.customize) result[key][op] = f.customize; else {
|
|
41
51
|
if (dataFieldInKey && dataFieldInKey.lockStatisticsByDomain && !isNil(dataFieldInKey.domain)) {
|
|
42
52
|
if ("values" === op) return void (result[key][op] = [ ...dataFieldInKey.domain ]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data/transforms/dimension-statistics.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../src/data/transforms/dimension-statistics.ts"],"names":[],"mappings":"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","file":"dimension-statistics.js","sourcesContent":["import { isNil, isFunction } from '@visactor/vutils';\nimport type { IFieldsMeta } from '../../typings/spec';\nimport { couldBeValidNumber } from '../../util/type';\nimport { mergeFields } from '../../util/data';\nimport type { DataView } from '@visactor/vdataset';\nimport type { Datum } from '../../typings';\n\nconst methods = {\n min: (arr: any[]) => {\n return arr.length ? Math.min.apply(null, arr) : 0;\n },\n max: (arr: any[]) => {\n return arr.length ? Math.max.apply(null, arr) : 0;\n },\n 'array-min': (arr: any[]) => {\n return arr.length ? Math.min.apply(null, arr) : 0;\n },\n 'array-max': (arr: any[]) => {\n return arr.length ? Math.max.apply(null, arr) : 0;\n },\n values: (arr: any[]) => {\n const map = {};\n const res: any[] = [];\n\n for (const entry of arr) {\n if (!map[entry]) {\n res.push(entry);\n map[entry] = 1;\n }\n }\n\n return res;\n }\n};\n\nexport type StatisticOperations = Array<'max' | 'min' | 'values' | 'array-max' | 'array-min' | 'allValid'>;\n\nexport interface IStatisticsOption {\n fields: {\n key: string;\n operations: StatisticOperations;\n customize?: { max: number; min: number } | any[];\n }[];\n // operations: Array<'max' | 'min' | 'values'>;\n target?: 'parser' | 'latest';\n}\n\n/**\n * 聚合统计主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果\n * @param data\n * @param options\n * @returns\n */\nexport const dimensionStatistics = (data: Array<DataView>, op: IStatisticsOption) => {\n // const operations = op.operations;\n let fields = op.fields;\n if (isFunction(fields)) {\n fields = fields();\n }\n if (!fields?.length || !data?.length) {\n return {};\n }\n\n // merge same key\n fields = mergeFields([], fields);\n\n const dataKey = op.target === 'parser' ? 'parserData' : 'latestData';\n const latestData = data[0][dataKey] ? data[0][dataKey] : data || [];\n const dataFields = data[0].getFields?.() as Record<\n /** 字段key */\n string,\n IFieldsMeta\n >;\n\n return dimensionStatisticsOfSimpleData(latestData, fields, dataFields);\n};\n\n/**\n * 聚合统计主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果\n * @param data\n * @param options\n * @returns\n */\nexport const dimensionStatisticsOfSimpleData = (\n latestData: Datum[],\n fields: {\n key: string;\n operations: StatisticOperations;\n customize?: { max: number; min: number } | any[];\n }[],\n dataFields?: Record<\n /** 字段key */\n string,\n IFieldsMeta\n >\n) => {\n const result = {};\n\n let fValues: any[] = [];\n let nextFValues: any[] = [];\n fields.forEach(f => {\n const key = f.key;\n // NOTE: the same key in fields has been merge already\n result[key] = {};\n const dataFieldInKey = dataFields?.[key];\n const operations: StatisticOperations = f.operations;\n const isNumberField = operations.some(op => op === 'min' || op === 'max' || op === 'allValid');\n let allValid = true;\n fValues.length = 0;\n\n latestData.forEach((d: Datum) => {\n if (d) {\n fValues.push(d[key]);\n }\n });\n const len = fValues.length;\n\n if (isNumberField) {\n nextFValues.length = 0;\n fValues.forEach((item, i) => {\n if (couldBeValidNumber(item)) {\n nextFValues.push(item);\n }\n });\n const t = fValues;\n fValues = nextFValues;\n nextFValues = t;\n // fValues = fValues.filter(couldBeValidNumber);\n allValid = fValues.length === len;\n } else if (operations.some(op => op === 'array-min' || op === 'array-max')) {\n fValues = fValues.reduce((res, entry) => {\n if (entry) {\n entry.forEach((d: any) => {\n if (couldBeValidNumber(d)) {\n res.push(d);\n }\n });\n }\n\n return res;\n }, []);\n } else {\n fValues = fValues.filter((entry: any) => entry !== undefined);\n }\n\n operations.forEach(op => {\n // @chensij 如果指定了计算的domain结果,则忽略计算(目前该逻辑仅在dot series中维护,因为dot series期望在filter data之后x轴改变domain,y轴不改变domain)\n if (f.customize) {\n result[key][op] = f.customize;\n } else {\n if (dataFieldInKey && dataFieldInKey.lockStatisticsByDomain && !isNil(dataFieldInKey.domain)) {\n if (op === 'values') {\n result[key][op] = [...dataFieldInKey.domain];\n return;\n }\n } else if (op === 'allValid') {\n return;\n }\n\n result[key][op] = methods[op](fValues);\n\n if (op === 'array-max') {\n result[key].max = result[key][op];\n }\n if (op === 'array-min') {\n result[key].min = result[key][op];\n }\n }\n });\n\n if (isNumberField) {\n result[key].allValid = allValid;\n }\n });\n\n return result;\n};\n"]}
|
|
@@ -10,12 +10,9 @@ export interface ISankeyOpt extends SankeyOptions {
|
|
|
10
10
|
y1: number;
|
|
11
11
|
};
|
|
12
12
|
}
|
|
13
|
-
export declare const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
} | {
|
|
17
|
-
nodes: import("@visactor/vgrammar-sankey").HierarchyNodeDatum[];
|
|
18
|
-
} | {
|
|
13
|
+
export declare const collectHierarchyField: (set: Set<any>, data: any[], field: string) => void;
|
|
14
|
+
export declare const sankeyFormat: (data: any[]) => SankeyData[];
|
|
15
|
+
export declare const sankeyLayout: (data: SankeyData[], op: ISankeyOpt) => {
|
|
19
16
|
nodes: import("@visactor/vgrammar-sankey").SankeyNodeElement[];
|
|
20
17
|
links: import("@visactor/vgrammar-sankey").SankeyLinkElement[];
|
|
21
18
|
columns: import("@visactor/vgrammar-sankey").SankeyNodeElement[][];
|
|
@@ -1,43 +1,57 @@
|
|
|
1
1
|
import { SankeyLayout } from "@visactor/vgrammar-sankey";
|
|
2
2
|
|
|
3
|
-
import { isArray, isString } from "@visactor/vutils";
|
|
3
|
+
import { isArray, isNil, isString } from "@visactor/vutils";
|
|
4
4
|
|
|
5
|
-
export const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
export const collectHierarchyField = (set, data, field) => {
|
|
6
|
+
data.forEach((obj => {
|
|
7
|
+
isNil(obj[field]) || set.add(obj[field]), obj.children && obj.children.length > 0 && collectHierarchyField(set, obj.children, field);
|
|
8
|
+
}));
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const convertValuesToNumbers = data => {
|
|
12
|
+
data.forEach((obj => {
|
|
13
|
+
obj.value = isString(obj.value) ? +obj.value : obj.value, obj.children && obj.children.length > 0 && convertValuesToNumbers(obj.children);
|
|
14
|
+
}));
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export const sankeyFormat = data => {
|
|
18
|
+
var _a;
|
|
19
|
+
if (!data || !isArray(data)) return [];
|
|
10
20
|
if (data.length > 1) {
|
|
11
21
|
const updateData = {
|
|
12
22
|
links: [],
|
|
13
23
|
nodes: []
|
|
14
24
|
};
|
|
15
|
-
data.forEach((datum => {
|
|
25
|
+
return data.forEach((datum => {
|
|
16
26
|
"links" !== datum.id && "nodes" !== datum.id || (updateData[datum.id] = datum.values);
|
|
17
|
-
})),
|
|
18
|
-
}
|
|
19
|
-
|
|
27
|
+
})), [ updateData ];
|
|
28
|
+
}
|
|
29
|
+
return (null === (_a = data[0]) || void 0 === _a ? void 0 : _a.latestData) ? data[0].latestData : data;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export const sankeyLayout = (data, op) => {
|
|
33
|
+
var _a, _b;
|
|
34
|
+
if (!data || !(null == op ? void 0 : op.view) || !data.length) return [];
|
|
35
|
+
const view = op.view();
|
|
36
|
+
if (view.x1 - view.x0 == 0 || view.y1 - view.y0 == 0 || view.x1 - view.x0 == -1 / 0 || view.x1 - view.x0 == 1 / 0 || view.y1 - view.y0 == -1 / 0 || view.y1 - view.y0 == 1 / 0) return [];
|
|
37
|
+
const originalData = data[0];
|
|
38
|
+
if (("source" !== op.sourceField || "target" !== op.targetField || "value" !== op.valueField) && originalData.links) {
|
|
20
39
|
const updatedData = [];
|
|
21
|
-
|
|
40
|
+
originalData.links.forEach((datum => {
|
|
22
41
|
const updatedDatum = {};
|
|
23
42
|
for (const key in datum) key === op.sourceField ? updatedDatum.source = datum[op.sourceField] : key === op.targetField ? updatedDatum.target = datum[op.targetField] : key === op.valueField ? updatedDatum.value = datum[op.valueField] : updatedDatum[key] = datum[key];
|
|
24
43
|
updatedData.push(updatedDatum);
|
|
25
|
-
})),
|
|
44
|
+
})), originalData.links = updatedData;
|
|
26
45
|
}
|
|
27
|
-
|
|
28
|
-
data.forEach((obj => {
|
|
29
|
-
obj.value = isString(obj.value) ? +obj.value : obj.value, obj.children && obj.children.length > 0 && convertValuesToNumbers(obj.children);
|
|
30
|
-
}));
|
|
31
|
-
};
|
|
32
|
-
for (const key in data) if ("links" === key) {
|
|
46
|
+
if (originalData.links) {
|
|
33
47
|
const updatedData = [];
|
|
34
|
-
|
|
48
|
+
originalData.links.forEach((datum => {
|
|
35
49
|
const updatedDatum = {};
|
|
36
50
|
for (const key in datum) "value" === key ? updatedDatum.value = isString(datum.value) ? +datum.value : datum.value : updatedDatum[key] = datum[key];
|
|
37
51
|
updatedData.push(updatedDatum);
|
|
38
|
-
})),
|
|
39
|
-
} else
|
|
52
|
+
})), originalData.links = updatedData;
|
|
53
|
+
} else (null === (_b = null === (_a = originalData.nodes) || void 0 === _a ? void 0 : _a[0]) || void 0 === _b ? void 0 : _b.children) && convertValuesToNumbers(originalData.nodes);
|
|
40
54
|
const layout = new SankeyLayout(op), result = [];
|
|
41
|
-
return result.push(layout.layout(
|
|
55
|
+
return result.push(layout.layout(originalData, view)), result;
|
|
42
56
|
};
|
|
43
57
|
//# sourceMappingURL=sankey.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/data/transforms/sankey.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"sources":["../src/data/transforms/sankey.ts"],"names":[],"mappings":"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","file":"sankey.js","sourcesContent":["import type { SankeyOptions, SankeyData } from '@visactor/vgrammar-sankey';\nimport { SankeyLayout } from '@visactor/vgrammar-sankey';\nimport { isArray, isNil, isString } from '@visactor/vutils';\n\nexport interface ISankeyOpt extends SankeyOptions {\n targetField: string;\n sourceField: string;\n valueField: string;\n view: () => { x0: number; x1: number; y0: number; y1: number };\n}\n\nexport const collectHierarchyField = (set: Set<any>, data: any[], field: string) => {\n data.forEach((obj: any) => {\n if (!isNil(obj[field])) {\n set.add(obj[field]);\n }\n\n if (obj.children && obj.children.length > 0) {\n collectHierarchyField(set, obj.children, field); // 递归处理子节点\n }\n });\n};\n\nconst convertValuesToNumbers = (data: any) => {\n data.forEach((obj: any) => {\n obj.value = isString(obj.value) ? +obj.value : obj.value; // 将字符串转换为数值类型\n if (obj.children && obj.children.length > 0) {\n convertValuesToNumbers(obj.children); // 递归处理子节点\n }\n });\n};\n\nexport const sankeyFormat = (data: any[]): SankeyData[] => {\n if (!data || !isArray(data)) {\n return [] as SankeyData[];\n }\n\n if (data.length > 1) {\n /**\n * data structure for Fengshen:\n * [{id:’nodes’, values:[xxx]},{id:’links’, values:[xxx]}]\n */\n const updateData: SankeyData = {\n links: [],\n nodes: []\n };\n data.forEach((datum: any) => {\n if (datum.id === 'links' || datum.id === 'nodes') {\n updateData[datum.id] = datum.values;\n }\n });\n return [updateData];\n }\n /**\n * data structure:\n * [{nodes: [xxx], links: [xxx]}]\n */\n if (data[0]?.latestData) {\n return data[0].latestData;\n }\n return data;\n};\n\nexport const sankeyLayout = (data: SankeyData[], op: ISankeyOpt) => {\n if (!data || !op?.view || !data.length) {\n return [];\n }\n\n const view = op.view();\n\n if (\n view.x1 - view.x0 === 0 ||\n view.y1 - view.y0 === 0 ||\n view.x1 - view.x0 === -Infinity ||\n view.x1 - view.x0 === Infinity ||\n view.y1 - view.y0 === -Infinity ||\n view.y1 - view.y0 === Infinity\n ) {\n return [];\n }\n\n const originalData = data[0];\n\n if (op.sourceField !== 'source' || op.targetField !== 'target' || op.valueField !== 'value') {\n if ((originalData as any).links) {\n const updatedData: {}[] = [];\n\n (originalData as any).links.forEach((datum: any) => {\n const updatedDatum: any = {};\n for (const key in datum) {\n if (key === op.sourceField) {\n updatedDatum.source = datum[op.sourceField];\n } else if (key === op.targetField) {\n updatedDatum.target = datum[op.targetField];\n } else if (key === op.valueField) {\n updatedDatum.value = datum[op.valueField];\n } else {\n updatedDatum[key] = datum[key];\n }\n }\n updatedData.push(updatedDatum);\n });\n (originalData as any).links = updatedData;\n }\n }\n\n if ((originalData as any).links) {\n //node-link型数据\n const updatedData: {}[] = [];\n (originalData as any).links.forEach((datum: any) => {\n const updatedDatum: any = {};\n for (const key in datum) {\n if (key === 'value') {\n updatedDatum.value = isString(datum.value) ? +datum.value : datum.value; // 将字符串转换为数值类型\n } else {\n updatedDatum[key] = datum[key];\n }\n }\n updatedData.push(updatedDatum);\n });\n (originalData as any).links = updatedData;\n } else if ((originalData as any).nodes?.[0]?.children) {\n //层级型数据\n //Convert value from string to number\n convertValuesToNumbers((originalData as any).nodes);\n }\n\n const layout = new SankeyLayout(op);\n\n const result = [];\n\n result.push(layout.layout(originalData, view));\n\n return result;\n};\n"]}
|
package/esm/event/bubble.js
CHANGED
package/esm/event/event.js
CHANGED
|
@@ -10,6 +10,7 @@ export declare class DimensionEvent implements IComposedEvent {
|
|
|
10
10
|
protected _callback: (params: BaseEventParams) => void;
|
|
11
11
|
protected _chart: Maybe<IChart>;
|
|
12
12
|
constructor(eventDispatcher: IEventDispatcher, mode: RenderMode);
|
|
13
|
+
private get chart();
|
|
13
14
|
register<Evt extends string>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>): void;
|
|
14
15
|
unregister(): void;
|
|
15
16
|
protected getTargetDimensionInfo(x: number, y: number): IDimensionInfo[] | null;
|
|
@@ -8,23 +8,27 @@ import { isDiscrete } from "@visactor/vscale";
|
|
|
8
8
|
|
|
9
9
|
export class DimensionEvent {
|
|
10
10
|
constructor(eventDispatcher, mode) {
|
|
11
|
+
this._eventDispatcher = eventDispatcher, this._mode = mode;
|
|
12
|
+
}
|
|
13
|
+
get chart() {
|
|
11
14
|
var _a, _b;
|
|
12
|
-
|
|
15
|
+
return this._chart || (this._chart = null === (_b = (_a = this._eventDispatcher.globalInstance).getChart) || void 0 === _b ? void 0 : _b.call(_a)),
|
|
16
|
+
this._chart;
|
|
13
17
|
}
|
|
14
18
|
register(eType, handler) {
|
|
15
19
|
var _a, _b;
|
|
16
|
-
(null !== (_b = null === (_a = this.
|
|
20
|
+
(null !== (_b = null === (_a = this.chart) || void 0 === _a ? void 0 : _a.getOption().onError) && void 0 !== _b ? _b : error)("Method not implemented.");
|
|
17
21
|
}
|
|
18
22
|
unregister() {
|
|
19
23
|
var _a, _b;
|
|
20
|
-
(null !== (_b = null === (_a = this.
|
|
24
|
+
(null !== (_b = null === (_a = this.chart) || void 0 === _a ? void 0 : _a.getOption().onError) && void 0 !== _b ? _b : error)("Method not implemented.");
|
|
21
25
|
}
|
|
22
26
|
getTargetDimensionInfo(x, y) {
|
|
23
27
|
var _a, _b;
|
|
24
|
-
const cartesianInfo = null !== (_a = getCartesianDimensionInfo(this.
|
|
28
|
+
const cartesianInfo = null !== (_a = getCartesianDimensionInfo(this.chart, {
|
|
25
29
|
x: x,
|
|
26
30
|
y: y
|
|
27
|
-
})) && void 0 !== _a ? _a : [], polarInfo = null !== (_b = getPolarDimensionInfo(this.
|
|
31
|
+
})) && void 0 !== _a ? _a : [], polarInfo = null !== (_b = getPolarDimensionInfo(this.chart, {
|
|
28
32
|
x: x,
|
|
29
33
|
y: y
|
|
30
34
|
})) && void 0 !== _b ? _b : [], result = [].concat(cartesianInfo, polarInfo);
|
|
@@ -32,7 +36,7 @@ export class DimensionEvent {
|
|
|
32
36
|
}
|
|
33
37
|
dispatch(v, opt) {
|
|
34
38
|
var _a;
|
|
35
|
-
const axis = null === (_a = this.
|
|
39
|
+
const axis = null === (_a = this.chart) || void 0 === _a ? void 0 : _a.getAllComponents().filter((c => {
|
|
36
40
|
if ("axes" !== c.specKey) return !1;
|
|
37
41
|
const scale = c.getScale();
|
|
38
42
|
return !!isDiscrete(scale.type) && (!(null == opt ? void 0 : opt.filter) || opt.filter(c));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/event/events/dimension/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAY5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAEtF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,OAAO,cAAc;IAQzB,YAAY,eAAiC,EAAE,IAAgB
|
|
1
|
+
{"version":3,"sources":["../src/event/events/dimension/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAY5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAEtF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,OAAO,cAAc;IAQzB,YAAY,eAAiC,EAAE,IAAgB;QAC7D,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,IAAY,KAAK;;QACf,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,IAAI,CAAC,MAAM,GAAG,MAAA,MAAA,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAC,QAAQ,kDAAI,CAAC;SACjE;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,QAAQ,CAAqB,KAAU,EAAE,OAAiD;;QACxF,CAAC,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,SAAS,GAAG,OAAO,mCAAI,KAAK,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACxE,CAAC;IACD,UAAU;;QACR,CAAC,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,SAAS,GAAG,OAAO,mCAAI,KAAK,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACxE,CAAC;IAES,sBAAsB,CAAC,CAAS,EAAE,CAAS;;QACnD,MAAM,aAAa,GAAG,MAAA,yBAAyB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,mCAAI,EAAE,CAAC;QAC5E,MAAM,SAAS,GAAG,MAAA,qBAAqB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,mCAAI,EAAE,CAAC;QAEpE,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QACnD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC;SACb;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,CAAU,EAAE,GAA0C;;QAE7D,MAAM,IAAI,GAAG,MAAA,IAAI,CAAC,KAAK,0CAAE,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;YACrD,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,EAAE;gBACxB,OAAO,KAAK,CAAC;aACd;YACD,MAAM,KAAK,GAAW,CAAE,CAAC,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAC3B,OAAO,KAAK,CAAC;aACd;YACD,IAAI,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,MAAM,EAAE;gBACf,OAAO,GAAG,CAAC,MAAM,CAAQ,CAAC,CAAC,CAAC;aAC7B;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAY,CAAC;QACd,MAAM,aAAa,GAAqB,EAAE,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACf,MAAM,IAAI,GAAG,uBAAuB,CAAC,CAAmB,EAAE,CAAC,CAAC,CAAC;YAC7D,IAAI,IAAI,EAAE;gBACR,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC1B;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE;YACxB,MAAM,EAAE,OAAO;YACf,aAAa;SACgB,CAAC,CAAC;QACjC,OAAO,aAAa,CAAC;IACvB,CAAC;CACF","file":"base.js","sourcesContent":["import { error } from '../../../util/debug';\nimport type { IAxis } from '../../../component/axis/interface';\nimport type { RenderMode } from '../../../typings/spec/common';\nimport type {\n BaseEventParams,\n EventHandler,\n EventParamsDefinition,\n IComposedEvent,\n IEventDispatcher\n} from '../../interface';\nimport type { IChart } from '../../../chart/interface';\nimport type { IDimensionInfo } from './interface';\nimport { getPolarDimensionInfo } from './util/polar';\nimport { getCartesianDimensionInfo, getDimensionInfoByValue } from './util/cartesian';\nimport type { Maybe } from '../../../typings';\nimport { isDiscrete } from '@visactor/vscale';\n\nexport class DimensionEvent implements IComposedEvent {\n protected _eventDispatcher: IEventDispatcher;\n protected _mode: RenderMode;\n\n protected _callback!: (params: BaseEventParams) => void;\n\n protected _chart: Maybe<IChart>;\n\n constructor(eventDispatcher: IEventDispatcher, mode: RenderMode) {\n this._eventDispatcher = eventDispatcher;\n this._mode = mode;\n }\n\n private get chart() {\n if (!this._chart) {\n this._chart = this._eventDispatcher.globalInstance.getChart?.();\n }\n return this._chart;\n }\n\n register<Evt extends string>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>): void {\n (this.chart?.getOption().onError ?? error)('Method not implemented.');\n }\n unregister(): void {\n (this.chart?.getOption().onError ?? error)('Method not implemented.');\n }\n\n protected getTargetDimensionInfo(x: number, y: number): IDimensionInfo[] | null {\n const cartesianInfo = getCartesianDimensionInfo(this.chart, { x, y }) ?? [];\n const polarInfo = getPolarDimensionInfo(this.chart, { x, y }) ?? [];\n\n const result = [].concat(cartesianInfo, polarInfo);\n if (result.length === 0) {\n return null;\n }\n\n return result;\n }\n\n dispatch(v: unknown, opt: { filter?: (axis: IAxis) => boolean }) {\n // get all enable axis\n const axis = this.chart?.getAllComponents().filter(c => {\n if (c.specKey !== 'axes') {\n return false;\n }\n const scale = (<IAxis>c).getScale();\n if (!isDiscrete(scale.type)) {\n return false;\n }\n if (opt?.filter) {\n return opt.filter(<IAxis>c);\n }\n return true;\n }) as IAxis[];\n const dimensionInfo: IDimensionInfo[] = [];\n axis.forEach(a => {\n const info = getDimensionInfoByValue(a as unknown as any, v);\n if (info) {\n dimensionInfo.push(info);\n }\n });\n this._callback.call(null, {\n action: 'enter',\n dimensionInfo\n } as unknown as BaseEventParams);\n return dimensionInfo;\n }\n}\n"]}
|
package/esm/event/interface.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ import type { TooltipEventParams } from '../component/tooltip/interface/event';
|
|
|
12
12
|
import type { ILayoutItem } from '../layout/interface';
|
|
13
13
|
export type EventType = 'pointerdown' | 'pointerup' | 'pointerupoutside' | 'pointertap' | 'pointerover' | 'pointermove' | 'pointerenter' | 'pointerleave' | 'pointerout' | 'mousedown' | 'mouseup' | 'mouseupoutside' | 'rightdown' | 'rightup' | 'rightupoutside' | 'click' | 'dblclick' | 'mousemove' | 'mouseover' | 'mouseout' | 'mouseenter' | 'mouseleave' | 'wheel' | 'touchstart' | 'touchend' | 'touchendoutside' | 'touchmove' | 'touchcancel' | 'tap' | 'dragstart' | 'drag' | 'dragenter' | 'dragleave' | 'dragover' | 'dragend' | 'drop' | 'pan' | 'panstart' | 'panend' | 'press' | 'pressup' | 'pressend' | 'pinch' | 'pinchstart' | 'pinchend' | 'swipe' | keyof typeof ChartEvent | keyof typeof VGRAMMAR_HOOK_EVENT | string;
|
|
14
14
|
export type EventBubbleLevel = keyof typeof Event_Bubble_Level;
|
|
15
|
-
export type ComponentType = 'axis' | 'dataZoom' | 'indicator' | 'legend' | 'mapLabel' | 'markLine' | 'tooltip' | 'title' | 'label';
|
|
15
|
+
export type ComponentType = 'axis' | 'dataZoom' | 'indicator' | 'legend' | 'mapLabel' | 'markLine' | 'markArea' | 'markPoint' | 'tooltip' | 'title' | 'label';
|
|
16
16
|
export type EventTargetType = MarkType | ComponentType | SeriesType;
|
|
17
17
|
export type EventSourceType = keyof typeof Event_Source_Type;
|
|
18
18
|
export type EventQuery = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/event/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IGraphic } from '@visactor/vrender-core';\nimport type { IElement } from '@visactor/vgrammar-core';\nimport type { IChart } from '../chart/interface';\nimport type { IModel } from '../model/interface';\nimport type { IMark, MarkType } from '../mark/interface';\nimport type { VChart } from '../core/vchart';\nimport type { DimensionEventParams } from './events/dimension/interface';\nimport type { Datum, IPoint, StringOrNumber } from '../typings';\nimport type { ChartEvent, Event_Bubble_Level, Event_Source_Type, VGRAMMAR_HOOK_EVENT } from '../constant';\nimport type { SeriesType } from '../series/interface';\nimport type { TooltipEventParams } from '../component/tooltip/interface/event';\nimport type { ILayoutItem } from '../layout/interface';\n\nexport type EventType =\n | 'pointerdown'\n | 'pointerup'\n | 'pointerupoutside'\n | 'pointertap'\n | 'pointerover'\n | 'pointermove'\n | 'pointerenter'\n | 'pointerleave'\n | 'pointerout'\n | 'mousedown'\n | 'mouseup'\n | 'mouseupoutside'\n | 'rightdown'\n | 'rightup'\n | 'rightupoutside'\n | 'click'\n | 'dblclick'\n | 'mousemove'\n | 'mouseover'\n | 'mouseout'\n | 'mouseenter'\n | 'mouseleave'\n | 'wheel'\n | 'touchstart'\n | 'touchend'\n | 'touchendoutside'\n | 'touchmove'\n | 'touchcancel'\n | 'tap'\n | 'dragstart'\n | 'drag'\n | 'dragenter'\n | 'dragleave'\n | 'dragover'\n | 'dragend'\n | 'drop'\n | 'pan'\n | 'panstart'\n | 'panend'\n | 'press'\n | 'pressup'\n | 'pressend'\n | 'pinch'\n | 'pinchstart'\n | 'pinchend'\n | 'swipe'\n | keyof typeof ChartEvent\n | keyof typeof VGRAMMAR_HOOK_EVENT\n | string;\n\nexport type EventBubbleLevel = keyof typeof Event_Bubble_Level;\n\nexport type ComponentType =\n | 'axis'\n | 'dataZoom'\n | 'indicator'\n | 'legend'\n | 'mapLabel'\n | 'markLine'\n | 'tooltip'\n | 'title'\n | 'label';\nexport type EventTargetType = MarkType | ComponentType | SeriesType;\n\nexport type EventSourceType = keyof typeof Event_Source_Type;\n\n/**\n * 事件 API 中的事件筛选配置\n */\nexport type EventQuery = {\n /**\n * 事件的冒泡层级配置,其中 model 指的是图表的内部模型,包括 region、series 以及 component\n */\n level?: EventBubbleLevel;\n /**\n * 事件来源配置。\n * - `window`: window 事件\n * - `chart`: 图表事件\n */\n source?: EventSourceType;\n\n /**\n * vrender 图形节点名称\n */\n nodeName?: string;\n /**\n * mark 图元名称\n */\n markName?: string;\n /**\n * 仅在 level 为 'mark' 或者 'model' 的场景下使用,用于筛选 mark 类型或者图表组成元素模型类型\n */\n type?: EventTargetType;\n /**\n * 用户在 spec 上配置的 id\n */\n id?: StringOrNumber;\n /**\n * 自定义过滤函数\n * @param params\n * @returns\n */\n filter?: (params: Partial<BaseEventParams>) => boolean;\n\n throttle?: number;\n debounce?: number;\n /**\n * 是否阻止冒泡\n */\n consume?: boolean;\n};\n\nexport type EventParams = {\n /**\n * 事件对象\n */\n event?: SuperEvent;\n /**\n * 供不同的事件用于存储期望携带的数据\n */\n value?: any;\n /**\n * 事件来源的 mark\n */\n mark?: IMark;\n /**\n * 事件来源的 model\n */\n model?: IModel;\n /**\n * 事件来源的 chart\n */\n chart?: IChart;\n /**\n * 事件拾取到的图元的数据\n */\n datum?: Datum;\n /**\n * 拾取到的图形节点\n */\n node?: IGraphic;\n};\n\ntype SuperEvent = Event & {\n [key: string]: any;\n};\n\nexport type BaseEventParams = EventParams & {\n /**\n * 事件对象\n */\n event: SuperEvent;\n item: IElement;\n datum: Datum;\n source: EventSourceType;\n itemMap: Map<string, any>;\n};\n\nexport type EventCallback<Params extends EventParams> = (params: Params) => boolean | void;\n\n/**\n * 内部事件分发中所应用的事件筛选配置\n */\nexport type EventFilter = {\n source: EventSourceType;\n level: EventBubbleLevel;\n type: string | null;\n markName: string | null;\n nodeName: string | null;\n userId: StringOrNumber | null;\n filter: (params: Partial<BaseEventParams>) => boolean | null;\n};\n\nexport type EventHandler<Params extends EventParams> = {\n callback: EventCallback<Params>;\n query: EventQuery | null;\n // 如果有 debounce/throttle 配置则需要封装原始回调函数\n wrappedCallback?: EventCallback<Params>;\n // 转换后的事件筛选配置\n filter?: EventFilter;\n};\n\nexport type ExtendEventParam = EventParams & {\n event?: Event;\n item?: any;\n datum?: Datum;\n source?: EventSourceType;\n itemMap?: Map<string, any>;\n};\n\nexport type LayoutEventParam = {\n elements: (ILayoutItem & { type: string })[];\n} & Partial<BaseEventParams>;\n\nexport type PanEventParam = ExtendEventParam & {\n // x/y方向上的偏移值\n delta: [number, number];\n};\n\nexport type ZoomEventParam = ExtendEventParam & {\n // 缩放值\n scale: number;\n // 缩放中心\n scaleCenter: IPoint;\n};\n\nexport type EventParamsDefinition = {\n // 基础事件回调参数\n pointerdown: BaseEventParams;\n pointerup: BaseEventParams;\n pointerupoutside: BaseEventParams;\n pointertap: BaseEventParams;\n pointerover: BaseEventParams;\n pointermove: BaseEventParams;\n pointerenter: BaseEventParams;\n pointerleave: BaseEventParams;\n pointerout: BaseEventParams;\n mousedown: BaseEventParams;\n mouseup: BaseEventParams;\n mouseupoutside: BaseEventParams;\n rightdown: BaseEventParams;\n rightup: BaseEventParams;\n rightupoutside: BaseEventParams;\n click: BaseEventParams;\n dblclick: BaseEventParams;\n mousemove: BaseEventParams;\n mouseover: BaseEventParams;\n mouseout: BaseEventParams;\n mouseenter: BaseEventParams;\n mouseleave: BaseEventParams;\n wheel: BaseEventParams;\n touchstart: BaseEventParams;\n touchend: BaseEventParams;\n touchendoutside: BaseEventParams;\n touchmove: BaseEventParams;\n touchcancel: BaseEventParams;\n\n dragstart: BaseEventParams;\n drag: BaseEventParams;\n dragenter: BaseEventParams;\n dragleave: BaseEventParams;\n dragover: BaseEventParams;\n dragend: BaseEventParams;\n drop: BaseEventParams;\n\n tap: BaseEventParams;\n pan: BaseEventParams;\n panstart: BaseEventParams;\n panend: BaseEventParams;\n press: BaseEventParams;\n pressup: BaseEventParams;\n pressend: BaseEventParams;\n pinch: BaseEventParams;\n pinchstart: BaseEventParams;\n pinchend: BaseEventParams;\n swipe: BaseEventParams;\n\n // VChart 内置的扩展组合事件\n dimension: DimensionEventParams;\n tooltipShow: TooltipEventParams;\n tooltipHide: TooltipEventParams;\n tooltipRelease: TooltipEventParams;\n afterLayout: LayoutEventParam;\n\n // 扩展事件参数\n [key: string]: ExtendEventParam;\n};\n\nexport interface IEventDispatcher {\n globalInstance: VChart;\n register: <Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) => this;\n unregister: <Evt extends EventType>(eType: Evt, handler?: EventHandler<EventParamsDefinition[Evt]>) => this;\n dispatch: <Evt extends EventType>(eType: Evt, params?: EventParamsDefinition[Evt], level?: EventBubbleLevel) => this;\n release: () => void;\n}\n\nexport interface IEvent {\n on: (<Evt extends EventType>(eType: Evt, callback: EventCallback<EventParamsDefinition[Evt]>) => this) &\n (<Evt extends EventType>(\n eType: Evt,\n query: EventQuery,\n callback: EventCallback<EventParamsDefinition[Evt]>\n ) => this);\n off: (<Evt extends EventType>(eType: Evt, callback?: EventCallback<EventParamsDefinition[Evt]>) => this) &\n (<Evt extends EventType>(\n eType: Evt,\n query: EventQuery,\n callback: EventCallback<EventParamsDefinition[Evt]>\n ) => this);\n emit: <Evt extends EventType>(eType: Evt, params: EventParamsDefinition[Evt], level?: EventBubbleLevel) => void;\n release: () => void;\n\n getComposedEventMap: () => Map<EventCallback<EventParams>, { eventType: EventType; event: IComposedEvent }>;\n}\n\nexport interface IComposedEvent {\n register: <Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) => void;\n unregister: () => void;\n dispatch: (v: unknown, opt: unknown) => unknown;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/event/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IGraphic } from '@visactor/vrender-core';\nimport type { IElement } from '@visactor/vgrammar-core';\nimport type { IChart } from '../chart/interface';\nimport type { IModel } from '../model/interface';\nimport type { IMark, MarkType } from '../mark/interface';\nimport type { VChart } from '../core/vchart';\nimport type { DimensionEventParams } from './events/dimension/interface';\nimport type { Datum, IPoint, StringOrNumber } from '../typings';\nimport type { ChartEvent, Event_Bubble_Level, Event_Source_Type, VGRAMMAR_HOOK_EVENT } from '../constant';\nimport type { SeriesType } from '../series/interface';\nimport type { TooltipEventParams } from '../component/tooltip/interface/event';\nimport type { ILayoutItem } from '../layout/interface';\n\nexport type EventType =\n | 'pointerdown'\n | 'pointerup'\n | 'pointerupoutside'\n | 'pointertap'\n | 'pointerover'\n | 'pointermove'\n | 'pointerenter'\n | 'pointerleave'\n | 'pointerout'\n | 'mousedown'\n | 'mouseup'\n | 'mouseupoutside'\n | 'rightdown'\n | 'rightup'\n | 'rightupoutside'\n | 'click'\n | 'dblclick'\n | 'mousemove'\n | 'mouseover'\n | 'mouseout'\n | 'mouseenter'\n | 'mouseleave'\n | 'wheel'\n | 'touchstart'\n | 'touchend'\n | 'touchendoutside'\n | 'touchmove'\n | 'touchcancel'\n | 'tap'\n | 'dragstart'\n | 'drag'\n | 'dragenter'\n | 'dragleave'\n | 'dragover'\n | 'dragend'\n | 'drop'\n | 'pan'\n | 'panstart'\n | 'panend'\n | 'press'\n | 'pressup'\n | 'pressend'\n | 'pinch'\n | 'pinchstart'\n | 'pinchend'\n | 'swipe'\n | keyof typeof ChartEvent\n | keyof typeof VGRAMMAR_HOOK_EVENT\n | string;\n\nexport type EventBubbleLevel = keyof typeof Event_Bubble_Level;\n\nexport type ComponentType =\n | 'axis'\n | 'dataZoom'\n | 'indicator'\n | 'legend'\n | 'mapLabel'\n | 'markLine'\n | 'markArea'\n | 'markPoint'\n | 'tooltip'\n | 'title'\n | 'label';\nexport type EventTargetType = MarkType | ComponentType | SeriesType;\n\nexport type EventSourceType = keyof typeof Event_Source_Type;\n\n/**\n * 事件 API 中的事件筛选配置\n */\nexport type EventQuery = {\n /**\n * 事件的冒泡层级配置,其中 model 指的是图表的内部模型,包括 region、series 以及 component\n */\n level?: EventBubbleLevel;\n /**\n * 事件来源配置。\n * - `window`: window 事件\n * - `chart`: 图表事件\n */\n source?: EventSourceType;\n\n /**\n * vrender 图形节点名称\n */\n nodeName?: string;\n /**\n * mark 图元名称\n */\n markName?: string;\n /**\n * 仅在 level 为 'mark' 或者 'model' 的场景下使用,用于筛选 mark 类型或者图表组成元素模型类型\n */\n type?: EventTargetType;\n /**\n * 用户在 spec 上配置的 id\n */\n id?: StringOrNumber;\n /**\n * 自定义过滤函数\n * @param params\n * @returns\n */\n filter?: (params: Partial<BaseEventParams>) => boolean;\n\n throttle?: number;\n debounce?: number;\n /**\n * 是否阻止冒泡\n */\n consume?: boolean;\n};\n\nexport type EventParams = {\n /**\n * 事件对象\n */\n event?: SuperEvent;\n /**\n * 供不同的事件用于存储期望携带的数据\n */\n value?: any;\n /**\n * 事件来源的 mark\n */\n mark?: IMark;\n /**\n * 事件来源的 model\n */\n model?: IModel;\n /**\n * 事件来源的 chart\n */\n chart?: IChart;\n /**\n * 事件拾取到的图元的数据\n */\n datum?: Datum;\n /**\n * 拾取到的图形节点\n */\n node?: IGraphic;\n};\n\ntype SuperEvent = Event & {\n [key: string]: any;\n};\n\nexport type BaseEventParams = EventParams & {\n /**\n * 事件对象\n */\n event: SuperEvent;\n item: IElement;\n datum: Datum;\n source: EventSourceType;\n itemMap: Map<string, any>;\n};\n\nexport type EventCallback<Params extends EventParams> = (params: Params) => boolean | void;\n\n/**\n * 内部事件分发中所应用的事件筛选配置\n */\nexport type EventFilter = {\n source: EventSourceType;\n level: EventBubbleLevel;\n type: string | null;\n markName: string | null;\n nodeName: string | null;\n userId: StringOrNumber | null;\n filter: (params: Partial<BaseEventParams>) => boolean | null;\n};\n\nexport type EventHandler<Params extends EventParams> = {\n callback: EventCallback<Params>;\n query: EventQuery | null;\n // 如果有 debounce/throttle 配置则需要封装原始回调函数\n wrappedCallback?: EventCallback<Params>;\n // 转换后的事件筛选配置\n filter?: EventFilter;\n};\n\nexport type ExtendEventParam = EventParams & {\n event?: Event;\n item?: any;\n datum?: Datum;\n source?: EventSourceType;\n itemMap?: Map<string, any>;\n};\n\nexport type LayoutEventParam = {\n elements: (ILayoutItem & { type: string })[];\n} & Partial<BaseEventParams>;\n\nexport type PanEventParam = ExtendEventParam & {\n // x/y方向上的偏移值\n delta: [number, number];\n};\n\nexport type ZoomEventParam = ExtendEventParam & {\n // 缩放值\n scale: number;\n // 缩放中心\n scaleCenter: IPoint;\n};\n\nexport type EventParamsDefinition = {\n // 基础事件回调参数\n pointerdown: BaseEventParams;\n pointerup: BaseEventParams;\n pointerupoutside: BaseEventParams;\n pointertap: BaseEventParams;\n pointerover: BaseEventParams;\n pointermove: BaseEventParams;\n pointerenter: BaseEventParams;\n pointerleave: BaseEventParams;\n pointerout: BaseEventParams;\n mousedown: BaseEventParams;\n mouseup: BaseEventParams;\n mouseupoutside: BaseEventParams;\n rightdown: BaseEventParams;\n rightup: BaseEventParams;\n rightupoutside: BaseEventParams;\n click: BaseEventParams;\n dblclick: BaseEventParams;\n mousemove: BaseEventParams;\n mouseover: BaseEventParams;\n mouseout: BaseEventParams;\n mouseenter: BaseEventParams;\n mouseleave: BaseEventParams;\n wheel: BaseEventParams;\n touchstart: BaseEventParams;\n touchend: BaseEventParams;\n touchendoutside: BaseEventParams;\n touchmove: BaseEventParams;\n touchcancel: BaseEventParams;\n\n dragstart: BaseEventParams;\n drag: BaseEventParams;\n dragenter: BaseEventParams;\n dragleave: BaseEventParams;\n dragover: BaseEventParams;\n dragend: BaseEventParams;\n drop: BaseEventParams;\n\n tap: BaseEventParams;\n pan: BaseEventParams;\n panstart: BaseEventParams;\n panend: BaseEventParams;\n press: BaseEventParams;\n pressup: BaseEventParams;\n pressend: BaseEventParams;\n pinch: BaseEventParams;\n pinchstart: BaseEventParams;\n pinchend: BaseEventParams;\n swipe: BaseEventParams;\n\n // VChart 内置的扩展组合事件\n dimension: DimensionEventParams;\n tooltipShow: TooltipEventParams;\n tooltipHide: TooltipEventParams;\n tooltipRelease: TooltipEventParams;\n afterLayout: LayoutEventParam;\n\n // 扩展事件参数\n [key: string]: ExtendEventParam;\n};\n\nexport interface IEventDispatcher {\n globalInstance: VChart;\n register: <Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) => this;\n unregister: <Evt extends EventType>(eType: Evt, handler?: EventHandler<EventParamsDefinition[Evt]>) => this;\n dispatch: <Evt extends EventType>(eType: Evt, params?: EventParamsDefinition[Evt], level?: EventBubbleLevel) => this;\n release: () => void;\n}\n\nexport interface IEvent {\n on: (<Evt extends EventType>(eType: Evt, callback: EventCallback<EventParamsDefinition[Evt]>) => this) &\n (<Evt extends EventType>(\n eType: Evt,\n query: EventQuery,\n callback: EventCallback<EventParamsDefinition[Evt]>\n ) => this);\n off: (<Evt extends EventType>(eType: Evt, callback?: EventCallback<EventParamsDefinition[Evt]>) => this) &\n (<Evt extends EventType>(\n eType: Evt,\n query: EventQuery,\n callback: EventCallback<EventParamsDefinition[Evt]>\n ) => this);\n emit: <Evt extends EventType>(eType: Evt, params: EventParamsDefinition[Evt], level?: EventBubbleLevel) => void;\n release: () => void;\n\n getComposedEventMap: () => Map<EventCallback<EventParams>, { eventType: EventType; event: IComposedEvent }>;\n}\n\nexport interface IComposedEvent {\n register: <Evt extends EventType>(eType: Evt, handler: EventHandler<EventParamsDefinition[Evt]>) => void;\n unregister: () => void;\n dispatch: (v: unknown, opt: unknown) => unknown;\n}\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { VChart } from "./core";
|
|
2
|
+
|
|
3
|
+
import { registerLineChart } from "./chart/line/line";
|
|
4
|
+
|
|
5
|
+
import { registerBarChart } from "./chart/bar/bar";
|
|
6
|
+
|
|
7
|
+
import { registerAreaChart } from "./chart/area/area";
|
|
8
|
+
|
|
9
|
+
import { registerPieChart } from "./chart/pie/pie";
|
|
10
|
+
|
|
11
|
+
import { registerCommonChart } from "./chart/common/common";
|
|
12
|
+
|
|
13
|
+
import { registerLabel } from "./component/label/label";
|
|
14
|
+
|
|
15
|
+
import { registerCartesianCrossHair } from "./component/crosshair/cartesian";
|
|
16
|
+
|
|
17
|
+
import { registerTooltip } from "./component/tooltip/tooltip";
|
|
18
|
+
|
|
19
|
+
import { registerDiscreteLegend } from "./component/legend/discrete/legend";
|
|
20
|
+
|
|
21
|
+
import { registerCartesianBandAxis } from "./component/axis/cartesian/band-axis";
|
|
22
|
+
|
|
23
|
+
import { registerCartesianLinearAxis } from "./component/axis/cartesian/linear-axis";
|
|
24
|
+
|
|
25
|
+
import { registerWXEnv } from "./env";
|
|
26
|
+
|
|
27
|
+
export * from "./core";
|
|
28
|
+
|
|
29
|
+
VChart.useRegisters([ registerLineChart, registerAreaChart, registerBarChart, registerPieChart, registerCommonChart, registerCartesianLinearAxis, registerCartesianBandAxis, registerDiscreteLegend, registerTooltip, registerCartesianCrossHair, registerLabel ]),
|
|
30
|
+
VChart.useRegisters([ registerWXEnv ]);
|
|
31
|
+
|
|
32
|
+
export { VChart };
|
|
33
|
+
|
|
34
|
+
export default VChart;
|
|
35
|
+
//# sourceMappingURL=index-wx-simple.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index-wx-simple.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtC,cAAc,QAAQ,CAAC;AAEvB,MAAM,CAAC,YAAY,CAAC;IAElB,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,mBAAmB;IAGnB,2BAA2B;IAC3B,yBAAyB;IACzB,sBAAsB;IACtB,eAAe;IACf,0BAA0B;IAC1B,aAAa;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAErC,OAAO,EAAE,MAAM,EAAE,CAAC;AAElB,eAAe,MAAM,CAAC","file":"index-wx-simple.js","sourcesContent":["/**\n * @description 包含基础的折柱饼图,提供坐标轴、离散图例以及 tooltip、crosshair、label 组件\n */\nimport { VChart } from './core';\nimport { registerLineChart } from './chart/line/line';\nimport { registerBarChart } from './chart/bar/bar';\nimport { registerAreaChart } from './chart/area/area';\nimport { registerPieChart } from './chart/pie/pie';\nimport { registerCommonChart } from './chart/common/common';\n\nimport { registerLabel } from './component/label/label';\nimport { registerCartesianCrossHair } from './component/crosshair/cartesian';\nimport { registerTooltip } from './component/tooltip/tooltip';\nimport { registerDiscreteLegend } from './component/legend/discrete/legend';\nimport { registerCartesianBandAxis } from './component/axis/cartesian/band-axis';\nimport { registerCartesianLinearAxis } from './component/axis/cartesian/linear-axis';\nimport { registerWXEnv } from './env';\n\nexport * from './core';\n\nVChart.useRegisters([\n // charts\n registerLineChart,\n registerAreaChart,\n registerBarChart,\n registerPieChart,\n registerCommonChart,\n\n // components\n registerCartesianLinearAxis,\n registerCartesianBandAxis,\n registerDiscreteLegend,\n registerTooltip,\n registerCartesianCrossHair,\n registerLabel\n]);\n\nVChart.useRegisters([registerWXEnv]);\n\nexport { VChart };\n\nexport default VChart;\n"]}
|
|
@@ -3,7 +3,7 @@ export declare function getDefaultInteractionConfigByMode(mode: RenderMode): {
|
|
|
3
3
|
hover: {
|
|
4
4
|
enable: boolean;
|
|
5
5
|
trigger: string;
|
|
6
|
-
triggerOff: string
|
|
6
|
+
triggerOff: string;
|
|
7
7
|
};
|
|
8
8
|
select: {
|
|
9
9
|
enable: boolean;
|
|
@@ -13,7 +13,7 @@ export declare function getDefaultInteractionConfigByMode(mode: RenderMode): {
|
|
|
13
13
|
hover: {
|
|
14
14
|
enable: boolean;
|
|
15
15
|
trigger: string[];
|
|
16
|
-
triggerOff: string
|
|
16
|
+
triggerOff: string;
|
|
17
17
|
};
|
|
18
18
|
select: {
|
|
19
19
|
enable: boolean;
|
|
@@ -7,7 +7,7 @@ export function getDefaultInteractionConfigByMode(mode) {
|
|
|
7
7
|
hover: {
|
|
8
8
|
enable: !0,
|
|
9
9
|
trigger: "pointermove",
|
|
10
|
-
triggerOff:
|
|
10
|
+
triggerOff: "pointerleave"
|
|
11
11
|
},
|
|
12
12
|
select: {
|
|
13
13
|
enable: !0,
|
|
@@ -17,7 +17,7 @@ export function getDefaultInteractionConfigByMode(mode) {
|
|
|
17
17
|
hover: {
|
|
18
18
|
enable: !0,
|
|
19
19
|
trigger: [ "pointerdown", "pointermove" ],
|
|
20
|
-
triggerOff:
|
|
20
|
+
triggerOff: "pointerleave"
|
|
21
21
|
},
|
|
22
22
|
select: {
|
|
23
23
|
enable: !0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/interaction/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE9D,MAAM,UAAU,iCAAiC,CAAC,IAAgB;IAChE,IAAI,IAAI,KAAK,cAAc,CAAC,iBAAiB,CAAC,IAAI,IAAI,KAAK,cAAc,CAAC,iBAAiB,CAAC,EAAE;QAC5F,OAAO;YACL,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,aAAa;gBACtB,UAAU,EAAE,
|
|
1
|
+
{"version":3,"sources":["../src/interaction/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE9D,MAAM,UAAU,iCAAiC,CAAC,IAAgB;IAChE,IAAI,IAAI,KAAK,cAAc,CAAC,iBAAiB,CAAC,IAAI,IAAI,KAAK,cAAc,CAAC,iBAAiB,CAAC,EAAE;QAC5F,OAAO;YACL,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,aAAa;gBACtB,UAAU,EAAE,cAAc;aAC3B;YACD,MAAM,EAAE;gBACN,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,YAAY;aACtB;SACF,CAAC;KACH;IAED,IAAI,gBAAgB,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE;QACrD,OAAO;YACL,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC;gBACvC,UAAU,EAAE,cAAc;aAC3B;YACD,MAAM,EAAE;gBACN,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,KAAK;aACf;SACF,CAAC;KACH;IAED,OAAO,IAAI,CAAC;AACd,CAAC","file":"config.js","sourcesContent":["import type { RenderMode } from '../typings/spec/common';\nimport { RenderModeEnum } from '../typings/spec/common';\nimport { isMiniAppLikeMode, isMobileLikeMode } from '../util';\n\nexport function getDefaultInteractionConfigByMode(mode: RenderMode) {\n if (mode === RenderModeEnum['desktop-browser'] || mode === RenderModeEnum['desktop-miniApp']) {\n return {\n hover: {\n enable: true,\n trigger: 'pointermove',\n triggerOff: 'pointerleave'\n },\n select: {\n enable: true,\n trigger: 'pointertap'\n }\n };\n }\n\n if (isMobileLikeMode(mode) || isMiniAppLikeMode(mode)) {\n return {\n hover: {\n enable: true,\n trigger: ['pointerdown', 'pointermove'],\n triggerOff: 'pointerleave'\n },\n select: {\n enable: true,\n trigger: 'tap'\n }\n };\n }\n\n return null;\n}\n"]}
|
|
@@ -22,7 +22,7 @@ export class Trigger {
|
|
|
22
22
|
constructor(spec, option) {
|
|
23
23
|
this._fields = null, this._marks = new MarkSet, this._markReverse = new MarkSet,
|
|
24
24
|
this.onHover = params => {
|
|
25
|
-
this.filterEventMark(params)
|
|
25
|
+
this.filterEventMark(params) ? this.hoverItem(params) : this.unhoverItem();
|
|
26
26
|
}, this.onUnHover = params => {
|
|
27
27
|
this.filterEventMark(params) || this.interaction.filterEventMark(params, STATE_VALUE_ENUM.STATE_HOVER) || this.interaction.getEventElement(STATE_VALUE_ENUM.STATE_HOVER)[0] && this.unhoverItem();
|
|
28
28
|
}, this.onSelect = params => {
|
|
@@ -137,4 +137,4 @@ export class Trigger {
|
|
|
137
137
|
return (this._fields ? this._fields : Object.keys(datumA)).every((f => datumA[f] === datumB[f]));
|
|
138
138
|
}
|
|
139
139
|
}
|
|
140
|
-
//# sourceMappingURL=trigger.js.map
|
|
140
|
+
//# sourceMappingURL=trigger.js.map
|