@visactor/vchart 1.7.4 → 1.8.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/es5/index.js +1 -1
- package/build/index.js +35567 -40135
- package/build/index.min.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/animation/config.d.ts +5 -1
- package/cjs/animation/config.js +28 -4
- package/cjs/animation/config.js.map +1 -1
- package/cjs/animation/utils.d.ts +2 -2
- package/cjs/chart/base-chart.js +7 -11
- package/cjs/chart/base-chart.js.map +1 -1
- package/cjs/compile/interface/compiler.d.ts +5 -0
- package/cjs/compile/interface/compiler.js.map +1 -1
- package/cjs/component/axis/base-axis.d.ts +29 -2
- package/cjs/component/axis/base-axis.js +64 -23
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/axis.d.ts +2 -1
- package/cjs/component/axis/cartesian/axis.js +10 -28
- 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 +9 -17
- package/cjs/component/axis/cartesian/time-axis.js.map +1 -1
- package/cjs/component/axis/mixin/linear-axis-mixin.js +11 -15
- package/cjs/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/cjs/component/axis/polar/axis.d.ts +2 -0
- package/cjs/component/axis/polar/axis.js +10 -26
- package/cjs/component/axis/polar/axis.js.map +1 -1
- package/cjs/component/base/base-component.d.ts +1 -0
- package/cjs/component/base/base-component.js +4 -2
- package/cjs/component/base/base-component.js.map +1 -1
- package/cjs/component/brush/brush.d.ts +2 -0
- package/cjs/component/brush/brush.js +43 -34
- package/cjs/component/brush/brush.js.map +1 -1
- package/cjs/component/crosshair/base.js +13 -7
- package/cjs/component/crosshair/base.js.map +1 -1
- package/cjs/component/custom-mark/custom-mark.js +2 -1
- package/cjs/component/custom-mark/custom-mark.js.map +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.d.ts +1 -1
- package/cjs/component/data-zoom/data-filter-base-component.js +3 -2
- package/cjs/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/cjs/component/data-zoom/data-zoom/data-zoom.d.ts +5 -1
- package/cjs/component/data-zoom/data-zoom/data-zoom.js +47 -38
- package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/cjs/component/data-zoom/data-zoom/interface.d.ts +2 -2
- package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
- package/cjs/component/data-zoom/interface.d.ts +1 -1
- package/cjs/component/data-zoom/interface.js.map +1 -1
- package/cjs/component/geo/geo-coordinate.d.ts +0 -3
- package/cjs/component/geo/geo-coordinate.js +12 -15
- package/cjs/component/geo/geo-coordinate.js.map +1 -1
- package/cjs/component/geo/projection.js +10 -6
- package/cjs/component/geo/projection.js.map +1 -1
- package/cjs/component/label/label.js +1 -2
- package/cjs/component/label/label.js.map +1 -1
- package/cjs/component/label/totalLabel.js +2 -2
- package/cjs/component/label/totalLabel.js.map +1 -1
- package/cjs/component/legend/discrete/util.js +1 -1
- package/cjs/component/legend/discrete/util.js.map +1 -1
- package/cjs/component/legend/util.d.ts +1 -1
- package/cjs/component/map-label/component.js.map +1 -1
- package/cjs/component/marker/base-marker.js +4 -10
- package/cjs/component/marker/base-marker.js.map +1 -1
- package/cjs/component/marker/mark-area/mark-area.js +16 -15
- package/cjs/component/marker/mark-area/mark-area.js.map +1 -1
- package/cjs/component/marker/mark-line/mark-line.js +22 -21
- package/cjs/component/marker/mark-line/mark-line.js.map +1 -1
- package/cjs/component/marker/mark-point/mark-point.js +30 -26
- package/cjs/component/marker/mark-point/mark-point.js.map +1 -1
- package/cjs/component/tooltip/handler/base.js +10 -9
- package/cjs/component/tooltip/handler/base.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/vchart.js +5 -2
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/event/events/dimension/util/cartesian.js +5 -17
- package/cjs/event/events/dimension/util/cartesian.js.map +1 -1
- package/cjs/event/events/dimension/util/common.d.ts +1 -0
- package/cjs/event/events/dimension/util/common.js +9 -1
- package/cjs/event/events/dimension/util/common.js.map +1 -1
- package/cjs/event/events/dimension/util/polar.js +4 -17
- package/cjs/event/events/dimension/util/polar.js.map +1 -1
- package/cjs/interaction/zoom/zoomable.js +17 -8
- package/cjs/interaction/zoom/zoomable.js.map +1 -1
- package/cjs/mark/arc-3d.d.ts +1 -0
- package/cjs/mark/arc-3d.js +9 -2
- package/cjs/mark/arc-3d.js.map +1 -1
- package/cjs/mark/arc.d.ts +1 -0
- package/cjs/mark/arc.js +9 -2
- package/cjs/mark/arc.js.map +1 -1
- package/cjs/mark/area.d.ts +1 -0
- package/cjs/mark/area.js +9 -2
- package/cjs/mark/area.js.map +1 -1
- package/cjs/mark/box-plot.d.ts +1 -0
- package/cjs/mark/box-plot.js +10 -5
- package/cjs/mark/box-plot.js.map +1 -1
- package/cjs/mark/cell.d.ts +1 -0
- package/cjs/mark/cell.js +9 -2
- package/cjs/mark/cell.js.map +1 -1
- package/cjs/mark/component.d.ts +1 -0
- package/cjs/mark/component.js +8 -2
- package/cjs/mark/component.js.map +1 -1
- package/cjs/mark/group.d.ts +2 -1
- package/cjs/mark/group.js +8 -2
- package/cjs/mark/group.js.map +1 -1
- package/cjs/mark/image.d.ts +1 -0
- package/cjs/mark/image.js +8 -2
- package/cjs/mark/image.js.map +1 -1
- package/cjs/mark/label.d.ts +1 -0
- package/cjs/mark/label.js +8 -2
- package/cjs/mark/label.js.map +1 -1
- package/cjs/mark/line.d.ts +1 -0
- package/cjs/mark/line.js +9 -2
- package/cjs/mark/line.js.map +1 -1
- package/cjs/mark/link-path.d.ts +1 -0
- package/cjs/mark/link-path.js +8 -3
- package/cjs/mark/link-path.js.map +1 -1
- package/cjs/mark/path.d.ts +1 -0
- package/cjs/mark/path.js +8 -2
- package/cjs/mark/path.js.map +1 -1
- package/cjs/mark/polygon/polygon.d.ts +1 -0
- package/cjs/mark/polygon/polygon.js +9 -2
- package/cjs/mark/polygon/polygon.js.map +1 -1
- package/cjs/mark/polygon/pyramid-3d.d.ts +1 -0
- package/cjs/mark/polygon/pyramid-3d.js +9 -2
- package/cjs/mark/polygon/pyramid-3d.js.map +1 -1
- package/cjs/mark/progress-arc.d.ts +1 -0
- package/cjs/mark/progress-arc.js +9 -2
- package/cjs/mark/progress-arc.js.map +1 -1
- package/cjs/mark/rect-3d.d.ts +1 -0
- package/cjs/mark/rect-3d.js +9 -2
- package/cjs/mark/rect-3d.js.map +1 -1
- package/cjs/mark/rect.d.ts +1 -0
- package/cjs/mark/rect.js +9 -2
- package/cjs/mark/rect.js.map +1 -1
- package/cjs/mark/ripple.d.ts +1 -0
- package/cjs/mark/ripple.js +8 -3
- package/cjs/mark/ripple.js.map +1 -1
- package/cjs/mark/rule.d.ts +1 -0
- package/cjs/mark/rule.js +8 -2
- package/cjs/mark/rule.js.map +1 -1
- package/cjs/mark/symbol.d.ts +1 -0
- package/cjs/mark/symbol.js +8 -2
- package/cjs/mark/symbol.js.map +1 -1
- package/cjs/mark/text.d.ts +1 -0
- package/cjs/mark/text.js +8 -2
- package/cjs/mark/text.js.map +1 -1
- package/cjs/model/base-model.d.ts +0 -2
- package/cjs/model/base-model.js +1 -8
- package/cjs/model/base-model.js.map +1 -1
- package/cjs/series/area/area.js +11 -12
- package/cjs/series/area/area.js.map +1 -1
- package/cjs/series/area/interface.d.ts +2 -2
- package/cjs/series/area/interface.js.map +1 -1
- package/cjs/series/bar/bar-3d.js +2 -2
- package/cjs/series/bar/bar-3d.js.map +1 -1
- package/cjs/series/bar/bar.js +5 -5
- package/cjs/series/bar/bar.js.map +1 -1
- package/cjs/series/bar/interface.d.ts +2 -2
- package/cjs/series/bar/interface.js.map +1 -1
- package/cjs/series/base/base-series.js +7 -3
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/box-plot/box-plot.js +2 -3
- package/cjs/series/box-plot/box-plot.js.map +1 -1
- package/cjs/series/circle-packing/circle-packing.js +4 -4
- package/cjs/series/circle-packing/circle-packing.js.map +1 -1
- package/cjs/series/correlation/correlation.js +32 -29
- package/cjs/series/correlation/correlation.js.map +1 -1
- package/cjs/series/dot/dot.js +4 -5
- package/cjs/series/dot/dot.js.map +1 -1
- package/cjs/series/funnel/funnel-3d.js +1 -2
- package/cjs/series/funnel/funnel-3d.js.map +1 -1
- package/cjs/series/funnel/funnel.js +9 -10
- package/cjs/series/funnel/funnel.js.map +1 -1
- package/cjs/series/gauge/gauge-pointer.js +2 -3
- package/cjs/series/gauge/gauge-pointer.js.map +1 -1
- package/cjs/series/gauge/gauge.js +2 -2
- package/cjs/series/gauge/gauge.js.map +1 -1
- package/cjs/series/heatmap/heatmap.d.ts +1 -1
- package/cjs/series/heatmap/heatmap.js +3 -4
- package/cjs/series/heatmap/heatmap.js.map +1 -1
- package/cjs/series/line/interface.d.ts +2 -2
- package/cjs/series/line/interface.js.map +1 -1
- package/cjs/series/line/line.js +2 -3
- package/cjs/series/line/line.js.map +1 -1
- package/cjs/series/link/link.js +1 -2
- package/cjs/series/link/link.js.map +1 -1
- package/cjs/series/map/map.d.ts +3 -0
- package/cjs/series/map/map.js +4 -1
- package/cjs/series/map/map.js.map +1 -1
- package/cjs/series/pie/pie-3d.js +1 -2
- package/cjs/series/pie/pie-3d.js.map +1 -1
- package/cjs/series/pie/pie.d.ts +2 -0
- package/cjs/series/pie/pie.js +34 -34
- package/cjs/series/pie/pie.js.map +1 -1
- package/cjs/series/polar/polar.d.ts +1 -0
- package/cjs/series/polar/polar.js +7 -1
- package/cjs/series/polar/polar.js.map +1 -1
- package/cjs/series/progress/circular/circular.js +3 -3
- package/cjs/series/progress/circular/circular.js.map +1 -1
- package/cjs/series/progress/linear/linear.js +2 -2
- package/cjs/series/progress/linear/linear.js.map +1 -1
- package/cjs/series/radar/radar.js +3 -3
- package/cjs/series/radar/radar.js.map +1 -1
- package/cjs/series/range-area/range-area.js +1 -1
- package/cjs/series/range-area/range-area.js.map +1 -1
- package/cjs/series/range-column/range-column-3d.js +1 -2
- package/cjs/series/range-column/range-column-3d.js.map +1 -1
- package/cjs/series/range-column/range-column.js +2 -3
- package/cjs/series/range-column/range-column.js.map +1 -1
- package/cjs/series/rose/rose.d.ts +3 -0
- package/cjs/series/rose/rose.js +16 -3
- package/cjs/series/rose/rose.js.map +1 -1
- package/cjs/series/sankey/sankey.js +11 -11
- package/cjs/series/sankey/sankey.js.map +1 -1
- package/cjs/series/scatter/interface.d.ts +2 -2
- package/cjs/series/scatter/interface.js.map +1 -1
- package/cjs/series/scatter/scatter.js +2 -2
- package/cjs/series/scatter/scatter.js.map +1 -1
- package/cjs/series/sunburst/sunburst.js +3 -3
- package/cjs/series/sunburst/sunburst.js.map +1 -1
- package/cjs/series/treemap/treemap.js +2 -3
- package/cjs/series/treemap/treemap.js.map +1 -1
- package/cjs/series/waterfall/waterfall.js +3 -4
- package/cjs/series/waterfall/waterfall.js.map +1 -1
- package/cjs/series/word-cloud/base.d.ts +3 -0
- package/cjs/series/word-cloud/base.js +86 -73
- package/cjs/series/word-cloud/base.js.map +1 -1
- package/cjs/series/word-cloud/word-cloud-3d.d.ts +22 -1
- package/cjs/series/word-cloud/word-cloud-3d.js +31 -151
- package/cjs/series/word-cloud/word-cloud-3d.js.map +1 -1
- package/cjs/series/word-cloud/word-cloud.js +3 -3
- package/cjs/series/word-cloud/word-cloud.js.map +1 -1
- package/cjs/theme/builtin/common/component/axis/common-axis.js +4 -0
- package/cjs/theme/builtin/common/component/axis/common-axis.js.map +1 -1
- package/cjs/theme/builtin/common/component/data-zoom.js +2 -4
- package/cjs/theme/builtin/common/component/data-zoom.js.map +1 -1
- package/cjs/theme/builtin/index.d.ts +0 -1
- package/cjs/theme/builtin/index.js +1 -2
- package/cjs/theme/builtin/index.js.map +1 -1
- package/cjs/typings/spec/chart.d.ts +2 -1
- package/cjs/typings/spec/chart.js.map +1 -1
- package/cjs/util/model.d.ts +1 -0
- package/cjs/util/model.js +15 -1
- package/cjs/util/model.js.map +1 -1
- package/cjs/util/space.d.ts +1 -3
- package/cjs/util/space.js +4 -16
- package/cjs/util/space.js.map +1 -1
- package/cjs/vchart-all.js.map +1 -1
- package/esm/animation/config.d.ts +5 -1
- package/esm/animation/config.js +18 -2
- package/esm/animation/config.js.map +1 -1
- package/esm/animation/utils.d.ts +2 -2
- package/esm/chart/base-chart.js +7 -11
- package/esm/chart/base-chart.js.map +1 -1
- package/esm/compile/interface/compiler.d.ts +5 -0
- package/esm/compile/interface/compiler.js.map +1 -1
- package/esm/component/axis/base-axis.d.ts +29 -2
- package/esm/component/axis/base-axis.js +71 -24
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/axis/cartesian/axis.d.ts +2 -1
- package/esm/component/axis/cartesian/axis.js +9 -34
- 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 +9 -17
- package/esm/component/axis/cartesian/time-axis.js.map +1 -1
- package/esm/component/axis/mixin/linear-axis-mixin.js +7 -5
- package/esm/component/axis/mixin/linear-axis-mixin.js.map +1 -1
- package/esm/component/axis/polar/axis.d.ts +2 -0
- package/esm/component/axis/polar/axis.js +9 -32
- package/esm/component/axis/polar/axis.js.map +1 -1
- package/esm/component/base/base-component.d.ts +1 -0
- package/esm/component/base/base-component.js +4 -2
- package/esm/component/base/base-component.js.map +1 -1
- package/esm/component/brush/brush.d.ts +2 -0
- package/esm/component/brush/brush.js +44 -35
- package/esm/component/brush/brush.js.map +1 -1
- package/esm/component/crosshair/base.js +13 -7
- package/esm/component/crosshair/base.js.map +1 -1
- package/esm/component/custom-mark/custom-mark.js +3 -2
- package/esm/component/custom-mark/custom-mark.js.map +1 -1
- package/esm/component/data-zoom/data-filter-base-component.d.ts +1 -1
- package/esm/component/data-zoom/data-filter-base-component.js +3 -2
- package/esm/component/data-zoom/data-filter-base-component.js.map +1 -1
- package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +5 -1
- package/esm/component/data-zoom/data-zoom/data-zoom.js +47 -38
- package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/esm/component/data-zoom/data-zoom/interface.d.ts +2 -2
- package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
- package/esm/component/data-zoom/interface.d.ts +1 -1
- package/esm/component/data-zoom/interface.js.map +1 -1
- package/esm/component/geo/geo-coordinate.d.ts +0 -3
- package/esm/component/geo/geo-coordinate.js +13 -16
- package/esm/component/geo/geo-coordinate.js.map +1 -1
- package/esm/component/geo/projection.js +10 -6
- package/esm/component/geo/projection.js.map +1 -1
- package/esm/component/label/label.js +3 -4
- 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/legend/discrete/util.js +1 -1
- package/esm/component/legend/discrete/util.js.map +1 -1
- package/esm/component/legend/util.d.ts +1 -1
- package/esm/component/map-label/component.js.map +1 -1
- package/esm/component/marker/base-marker.js +5 -9
- package/esm/component/marker/base-marker.js.map +1 -1
- package/esm/component/marker/mark-area/mark-area.js +16 -15
- package/esm/component/marker/mark-area/mark-area.js.map +1 -1
- package/esm/component/marker/mark-line/mark-line.js +22 -21
- package/esm/component/marker/mark-line/mark-line.js.map +1 -1
- package/esm/component/marker/mark-point/mark-point.js +30 -26
- package/esm/component/marker/mark-point/mark-point.js.map +1 -1
- package/esm/component/tooltip/handler/base.js +8 -10
- package/esm/component/tooltip/handler/base.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/vchart.js +9 -6
- package/esm/core/vchart.js.map +1 -1
- package/esm/event/events/dimension/util/cartesian.js +7 -18
- package/esm/event/events/dimension/util/cartesian.js.map +1 -1
- package/esm/event/events/dimension/util/common.d.ts +1 -0
- package/esm/event/events/dimension/util/common.js +5 -0
- package/esm/event/events/dimension/util/common.js.map +1 -1
- package/esm/event/events/dimension/util/polar.js +6 -17
- package/esm/event/events/dimension/util/polar.js.map +1 -1
- package/esm/interaction/zoom/zoomable.js +17 -10
- package/esm/interaction/zoom/zoomable.js.map +1 -1
- package/esm/mark/arc-3d.d.ts +1 -0
- package/esm/mark/arc-3d.js +10 -0
- package/esm/mark/arc-3d.js.map +1 -1
- package/esm/mark/arc.d.ts +1 -0
- package/esm/mark/arc.js +10 -0
- package/esm/mark/arc.js.map +1 -1
- package/esm/mark/area.d.ts +1 -0
- package/esm/mark/area.js +10 -0
- package/esm/mark/area.js.map +1 -1
- package/esm/mark/box-plot.d.ts +1 -0
- package/esm/mark/box-plot.js +7 -3
- package/esm/mark/box-plot.js.map +1 -1
- package/esm/mark/cell.d.ts +1 -0
- package/esm/mark/cell.js +8 -0
- package/esm/mark/cell.js.map +1 -1
- package/esm/mark/component.d.ts +1 -0
- package/esm/mark/component.js +6 -0
- package/esm/mark/component.js.map +1 -1
- package/esm/mark/group.d.ts +2 -1
- package/esm/mark/group.js +8 -0
- package/esm/mark/group.js.map +1 -1
- package/esm/mark/image.d.ts +1 -0
- package/esm/mark/image.js +8 -0
- package/esm/mark/image.js.map +1 -1
- package/esm/mark/label.d.ts +1 -0
- package/esm/mark/label.js +8 -0
- package/esm/mark/label.js.map +1 -1
- package/esm/mark/line.d.ts +1 -0
- package/esm/mark/line.js +10 -0
- package/esm/mark/line.js.map +1 -1
- package/esm/mark/link-path.d.ts +1 -0
- package/esm/mark/link-path.js +6 -1
- package/esm/mark/link-path.js.map +1 -1
- package/esm/mark/path.d.ts +1 -0
- package/esm/mark/path.js +8 -0
- package/esm/mark/path.js.map +1 -1
- package/esm/mark/polygon/polygon.d.ts +1 -0
- package/esm/mark/polygon/polygon.js +10 -0
- package/esm/mark/polygon/polygon.js.map +1 -1
- package/esm/mark/polygon/pyramid-3d.d.ts +1 -0
- package/esm/mark/polygon/pyramid-3d.js +11 -0
- package/esm/mark/polygon/pyramid-3d.js.map +1 -1
- package/esm/mark/progress-arc.d.ts +1 -0
- package/esm/mark/progress-arc.js +10 -0
- package/esm/mark/progress-arc.js.map +1 -1
- package/esm/mark/rect-3d.d.ts +1 -0
- package/esm/mark/rect-3d.js +10 -0
- package/esm/mark/rect-3d.js.map +1 -1
- package/esm/mark/rect.d.ts +1 -0
- package/esm/mark/rect.js +10 -0
- package/esm/mark/rect.js.map +1 -1
- package/esm/mark/ripple.d.ts +1 -0
- package/esm/mark/ripple.js +6 -1
- package/esm/mark/ripple.js.map +1 -1
- package/esm/mark/rule.d.ts +1 -0
- package/esm/mark/rule.js +8 -0
- package/esm/mark/rule.js.map +1 -1
- package/esm/mark/symbol.d.ts +1 -0
- package/esm/mark/symbol.js +8 -0
- package/esm/mark/symbol.js.map +1 -1
- package/esm/mark/text.d.ts +1 -0
- package/esm/mark/text.js +7 -1
- package/esm/mark/text.js.map +1 -1
- package/esm/model/base-model.d.ts +0 -2
- package/esm/model/base-model.js +1 -7
- package/esm/model/base-model.js.map +1 -1
- package/esm/series/area/area.js +13 -17
- package/esm/series/area/area.js.map +1 -1
- package/esm/series/area/interface.d.ts +2 -2
- package/esm/series/area/interface.js.map +1 -1
- package/esm/series/bar/bar-3d.js +2 -3
- package/esm/series/bar/bar-3d.js.map +1 -1
- package/esm/series/bar/bar.js +5 -6
- package/esm/series/bar/bar.js.map +1 -1
- package/esm/series/bar/interface.d.ts +2 -2
- package/esm/series/bar/interface.js.map +1 -1
- package/esm/series/base/base-series.js +7 -3
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/box-plot/box-plot.js +3 -4
- package/esm/series/box-plot/box-plot.js.map +1 -1
- package/esm/series/circle-packing/circle-packing.js +6 -7
- package/esm/series/circle-packing/circle-packing.js.map +1 -1
- package/esm/series/correlation/correlation.js +34 -30
- package/esm/series/correlation/correlation.js.map +1 -1
- package/esm/series/dot/dot.js +7 -8
- package/esm/series/dot/dot.js.map +1 -1
- package/esm/series/funnel/funnel-3d.js +4 -5
- package/esm/series/funnel/funnel-3d.js.map +1 -1
- package/esm/series/funnel/funnel.js +12 -13
- package/esm/series/funnel/funnel.js.map +1 -1
- package/esm/series/gauge/gauge-pointer.js +3 -4
- package/esm/series/gauge/gauge-pointer.js.map +1 -1
- package/esm/series/gauge/gauge.js +2 -3
- package/esm/series/gauge/gauge.js.map +1 -1
- package/esm/series/heatmap/heatmap.d.ts +1 -1
- package/esm/series/heatmap/heatmap.js +5 -8
- package/esm/series/heatmap/heatmap.js.map +1 -1
- package/esm/series/line/interface.d.ts +2 -2
- package/esm/series/line/interface.js.map +1 -1
- package/esm/series/line/line.js +4 -5
- package/esm/series/line/line.js.map +1 -1
- package/esm/series/link/link.js +3 -4
- package/esm/series/link/link.js.map +1 -1
- package/esm/series/map/map.d.ts +3 -0
- package/esm/series/map/map.js +7 -4
- package/esm/series/map/map.js.map +1 -1
- package/esm/series/pie/pie-3d.js +2 -3
- package/esm/series/pie/pie-3d.js.map +1 -1
- package/esm/series/pie/pie.d.ts +2 -0
- package/esm/series/pie/pie.js +31 -29
- package/esm/series/pie/pie.js.map +1 -1
- package/esm/series/polar/polar.d.ts +1 -0
- package/esm/series/polar/polar.js +8 -0
- package/esm/series/polar/polar.js.map +1 -1
- package/esm/series/progress/circular/circular.js +4 -5
- package/esm/series/progress/circular/circular.js.map +1 -1
- package/esm/series/progress/linear/linear.js +3 -3
- package/esm/series/progress/linear/linear.js.map +1 -1
- package/esm/series/radar/radar.js +5 -6
- package/esm/series/radar/radar.js.map +1 -1
- package/esm/series/range-area/range-area.js +2 -2
- package/esm/series/range-area/range-area.js.map +1 -1
- package/esm/series/range-column/range-column-3d.js +2 -2
- package/esm/series/range-column/range-column-3d.js.map +1 -1
- package/esm/series/range-column/range-column.js +4 -5
- package/esm/series/range-column/range-column.js.map +1 -1
- package/esm/series/rose/rose.d.ts +3 -0
- package/esm/series/rose/rose.js +17 -5
- package/esm/series/rose/rose.js.map +1 -1
- package/esm/series/sankey/sankey.js +13 -13
- package/esm/series/sankey/sankey.js.map +1 -1
- package/esm/series/scatter/interface.d.ts +2 -2
- package/esm/series/scatter/interface.js.map +1 -1
- package/esm/series/scatter/scatter.js +2 -3
- package/esm/series/scatter/scatter.js.map +1 -1
- package/esm/series/sunburst/sunburst.js +4 -5
- package/esm/series/sunburst/sunburst.js.map +1 -1
- package/esm/series/treemap/treemap.js +4 -5
- package/esm/series/treemap/treemap.js.map +1 -1
- package/esm/series/waterfall/waterfall.js +4 -5
- package/esm/series/waterfall/waterfall.js.map +1 -1
- package/esm/series/word-cloud/base.d.ts +3 -0
- package/esm/series/word-cloud/base.js +86 -73
- package/esm/series/word-cloud/base.js.map +1 -1
- package/esm/series/word-cloud/word-cloud-3d.d.ts +22 -1
- package/esm/series/word-cloud/word-cloud-3d.js +34 -158
- package/esm/series/word-cloud/word-cloud-3d.js.map +1 -1
- package/esm/series/word-cloud/word-cloud.js +6 -6
- package/esm/series/word-cloud/word-cloud.js.map +1 -1
- package/esm/theme/builtin/common/component/axis/common-axis.js +4 -0
- package/esm/theme/builtin/common/component/axis/common-axis.js.map +1 -1
- package/esm/theme/builtin/common/component/data-zoom.js +2 -4
- package/esm/theme/builtin/common/component/data-zoom.js.map +1 -1
- package/esm/theme/builtin/index.d.ts +0 -1
- package/esm/theme/builtin/index.js +0 -2
- package/esm/theme/builtin/index.js.map +1 -1
- package/esm/typings/spec/chart.d.ts +2 -1
- package/esm/typings/spec/chart.js.map +1 -1
- package/esm/util/model.d.ts +1 -0
- package/esm/util/model.js +12 -0
- package/esm/util/model.js.map +1 -1
- package/esm/util/space.d.ts +1 -3
- package/esm/util/space.js +0 -12
- package/esm/util/space.js.map +1 -1
- package/esm/vchart-all.js.map +1 -1
- package/package.json +14 -14
- package/cjs/theme/builtin/common/legacy/index.d.ts +0 -1
- package/cjs/theme/builtin/common/legacy/index.js +0 -21
- package/cjs/theme/builtin/common/legacy/index.js.map +0 -1
- package/cjs/theme/builtin/common/legacy/legend/color-legend.d.ts +0 -2
- package/cjs/theme/builtin/common/legacy/legend/color-legend.js +0 -43
- package/cjs/theme/builtin/common/legacy/legend/color-legend.js.map +0 -1
- package/cjs/theme/builtin/common/legacy/legend/continuous.d.ts +0 -2
- package/cjs/theme/builtin/common/legacy/legend/continuous.js +0 -60
- package/cjs/theme/builtin/common/legacy/legend/continuous.js.map +0 -1
- package/cjs/theme/builtin/common/legacy/legend/index.d.ts +0 -2
- package/cjs/theme/builtin/common/legacy/legend/index.js +0 -24
- package/cjs/theme/builtin/common/legacy/legend/index.js.map +0 -1
- package/cjs/theme/builtin/common/legacy/legend/size-legend.d.ts +0 -2
- package/cjs/theme/builtin/common/legacy/legend/size-legend.js +0 -56
- package/cjs/theme/builtin/common/legacy/legend/size-legend.js.map +0 -1
- package/esm/theme/builtin/common/legacy/index.d.ts +0 -1
- package/esm/theme/builtin/common/legacy/index.js +0 -2
- package/esm/theme/builtin/common/legacy/index.js.map +0 -1
- package/esm/theme/builtin/common/legacy/legend/color-legend.d.ts +0 -2
- package/esm/theme/builtin/common/legacy/legend/color-legend.js +0 -39
- package/esm/theme/builtin/common/legacy/legend/color-legend.js.map +0 -1
- package/esm/theme/builtin/common/legacy/legend/continuous.d.ts +0 -2
- package/esm/theme/builtin/common/legacy/legend/continuous.js +0 -54
- package/esm/theme/builtin/common/legacy/legend/continuous.js.map +0 -1
- package/esm/theme/builtin/common/legacy/legend/index.d.ts +0 -2
- package/esm/theme/builtin/common/legacy/legend/index.js +0 -4
- package/esm/theme/builtin/common/legacy/legend/index.js.map +0 -1
- package/esm/theme/builtin/common/legacy/legend/size-legend.d.ts +0 -2
- package/esm/theme/builtin/common/legacy/legend/size-legend.js +0 -54
- package/esm/theme/builtin/common/legacy/legend/size-legend.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/event/events/dimension/util/common.ts"],"names":[],"mappings":"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","file":"common.js","sourcesContent":["/* eslint-disable max-depth */\nimport type { IChart } from '../../../../chart/interface';\nimport type { IDimensionData, IDimensionInfo } from '../interface';\nimport { isNil, array, isValid, isValidNumber } from '@visactor/vutils';\nimport type { AxisComponent } from '../../../../component/axis/base-axis';\nimport type { CoordinateType, ILayoutPoint } from '../../../../typings';\nimport { isDiscrete } from '@visactor/vscale';\nimport type { ICartesianLinearAxisSpec } from '../../../../component';\nimport type { Maybe } from '@visactor/vutils';\n\nconst isInBound = (pos: ILayoutPoint, min: ILayoutPoint, max: ILayoutPoint): boolean =>\n pos.x >= min.x && pos.x <= max.x && pos.y >= min.y && pos.y <= max.y;\n\nexport const isInRegionBound = (chart: IChart, axis: AxisComponent, pos: ILayoutPoint) => {\n const regionList = chart.getRegionsInIds(array(axis.layout.layoutBindRegionID));\n return regionList?.some(region => {\n const rect = region.getLayoutRect();\n const startPoint = region.getLayoutStartPoint();\n return isInBound(\n pos,\n { x: startPoint.x, y: startPoint.y },\n { x: rect.width + startPoint.x, y: rect.height + startPoint.y }\n );\n });\n};\n\nexport const isSameDimensionInfo = (a?: IDimensionInfo, b?: IDimensionInfo): boolean => {\n if (a === b) {\n return true;\n }\n if (isNil(a) || isNil(b)) {\n return false;\n }\n if (a.value !== b.value) {\n return false;\n }\n if (a.axis?.id !== b.axis?.id) {\n return false;\n }\n return true;\n};\n\n/** 给定维度项的值,获取对应维度数据 */\nexport const getDimensionData = (\n value: any,\n axis: AxisComponent,\n coordinate: CoordinateType,\n getDimensionField: (series: any) => string | string[]\n): IDimensionData[] => {\n const scale = axis.getScale();\n const isDiscreteAxis = isDiscrete(scale.type);\n\n const data: IDimensionData[] = [];\n const regions = axis.getRegions(); // TODO: 直接从轴里取系列\n for (const region of regions) {\n const seriesList = region.getSeries();\n for (const series of seriesList) {\n if (series.coordinate === coordinate) {\n const dimensionField = array(getDimensionField(series));\n const viewData = series.getViewData()?.latestData;\n if (dimensionField && viewData) {\n if (isDiscreteAxis) {\n data.push({\n series,\n datum: viewData.filter(\n (datum: any) => datum[dimensionField[0]]?.toString() === value?.toString() // 获取该维度项所对应的数据\n )\n });\n } else {\n // 连续轴\n if (isValid(dimensionField[1])) {\n // 直方图情况,根据范围取 datum\n data.push({\n series,\n datum: viewData.filter((datum: any) => {\n if (datum[dimensionField[0]]?.toString() === value?.toString()) {\n return true;\n }\n return (\n isValid(datum[dimensionField[0]]) &&\n isValid(datum[dimensionField[1]]) &&\n value >= datum[dimensionField[0]] &&\n value < datum[dimensionField[1]]\n );\n })\n });\n } else {\n // 散点图情况,依据轴上的配置判断\n const range = (axis.getSpec() as ICartesianLinearAxisSpec).tooltipFilterRange;\n const rangeArr = (isValidNumber(range) ? [-range, range] : range) as Maybe<[number, number]>;\n let datums: any[] = [];\n if (rangeArr) {\n // 根据范围取 datum\n viewData.forEach((datum: any) => {\n if (isValid(datum[dimensionField[0]])) {\n const delta = datum[dimensionField[0]] - value;\n if (delta >= rangeArr[0] && delta <= rangeArr[1]) {\n datums.push(datum);\n }\n }\n });\n } else {\n // 根据最近距离取 datum\n let minDelta = Infinity;\n let deltaSign = 0;\n viewData.forEach((datum: any) => {\n if (isValid(datum[dimensionField[0]])) {\n const delta = Math.abs(datum[dimensionField[0]] - value);\n const sign = Math.sign(datum[dimensionField[0]] - value);\n if (delta < minDelta) {\n minDelta = delta;\n datums = [datum];\n deltaSign = sign;\n } else if (delta === minDelta && sign === deltaSign) {\n datums.push(datum);\n }\n }\n });\n }\n data.push({\n series,\n datum: datums\n });\n }\n }\n }\n }\n }\n }\n return data;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/event/events/dimension/util/common.ts"],"names":[],"mappings":";;;AAGA,6CAAwE;AAGxE,6CAA8C;AAI9C,MAAM,SAAS,GAAG,CAAC,GAAiB,EAAE,GAAiB,EAAE,GAAiB,EAAW,EAAE,CACrF,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;AAEhE,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,IAAmB,EAAE,GAAiB,EAAE,EAAE;IACvF,MAAM,UAAU,GAAG,KAAK,CAAC,eAAe,CAAC,IAAA,cAAK,EAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAChF,OAAO,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,CAAC,MAAM,CAAC,EAAE;QAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAChD,OAAO,SAAS,CACd,GAAG,EACH,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,EACpC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,EAAE,CAChE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAXW,QAAA,eAAe,mBAW1B;AAEK,MAAM,mBAAmB,GAAG,CAAC,CAAkB,EAAE,CAAkB,EAAW,EAAE;;IACrF,IAAI,CAAC,KAAK,CAAC,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IACD,IAAI,IAAA,cAAK,EAAC,CAAC,CAAC,IAAI,IAAA,cAAK,EAAC,CAAC,CAAC,EAAE;QACxB,OAAO,KAAK,CAAC;KACd;IACD,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,EAAE;QACvB,OAAO,KAAK,CAAC;KACd;IACD,IAAI,CAAA,MAAA,CAAC,CAAC,IAAI,0CAAE,EAAE,OAAK,MAAA,CAAC,CAAC,IAAI,0CAAE,EAAE,CAAA,EAAE;QAC7B,OAAO,KAAK,CAAC;KACd;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAdW,QAAA,mBAAmB,uBAc9B;AAGK,MAAM,gBAAgB,GAAG,CAC9B,KAAU,EACV,IAAmB,EACnB,UAA0B,EAC1B,iBAAqD,EACnC,EAAE;;IACpB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9B,MAAM,cAAc,GAAG,IAAA,mBAAU,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE9C,MAAM,IAAI,GAAqB,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAClC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;QACtC,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;YAC/B,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE;gBACpC,MAAM,cAAc,GAAG,IAAA,cAAK,EAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxD,MAAM,QAAQ,GAAG,MAAA,MAAM,CAAC,WAAW,EAAE,0CAAE,UAAU,CAAC;gBAClD,IAAI,cAAc,IAAI,QAAQ,EAAE;oBAC9B,IAAI,cAAc,EAAE;wBAClB,IAAI,CAAC,IAAI,CAAC;4BACR,MAAM;4BACN,KAAK,EAAE,QAAQ,CAAC,MAAM,CACpB,CAAC,KAAU,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,0CAAE,QAAQ,EAAE,OAAK,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,EAAE,CAAA,CAAA,EAAA,CAC3E;yBACF,CAAC,CAAC;qBACJ;yBAAM;wBAEL,IAAI,IAAA,gBAAO,EAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE;4BAE9B,IAAI,CAAC,IAAI,CAAC;gCACR,MAAM;gCACN,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE;;oCACpC,IAAI,CAAA,MAAA,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,0CAAE,QAAQ,EAAE,OAAK,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,EAAE,CAAA,EAAE;wCAC9D,OAAO,IAAI,CAAC;qCACb;oCACD,OAAO,CACL,IAAA,gBAAO,EAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;wCACjC,IAAA,gBAAO,EAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;wCACjC,KAAK,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;wCACjC,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CACjC,CAAC;gCACJ,CAAC,CAAC;6BACH,CAAC,CAAC;yBACJ;6BAAM;4BAEL,MAAM,KAAK,GAAI,IAAI,CAAC,OAAO,EAA+B,CAAC,kBAAkB,CAAC;4BAC9E,MAAM,QAAQ,GAAG,CAAC,IAAA,sBAAa,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAA4B,CAAC;4BAC7F,IAAI,MAAM,GAAU,EAAE,CAAC;4BACvB,IAAI,QAAQ,EAAE;gCAEZ,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE;oCAC9B,IAAI,IAAA,gBAAO,EAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;wCACrC,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;wCAC/C,IAAI,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;4CAChD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yCACpB;qCACF;gCACH,CAAC,CAAC,CAAC;6BACJ;iCAAM;gCAEL,IAAI,QAAQ,GAAG,QAAQ,CAAC;gCACxB,IAAI,SAAS,GAAG,CAAC,CAAC;gCAClB,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE;oCAC9B,IAAI,IAAA,gBAAO,EAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;wCACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;wCACzD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;wCACzD,IAAI,KAAK,GAAG,QAAQ,EAAE;4CACpB,QAAQ,GAAG,KAAK,CAAC;4CACjB,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC;4CACjB,SAAS,GAAG,IAAI,CAAC;yCAClB;6CAAM,IAAI,KAAK,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE;4CACnD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;yCACpB;qCACF;gCACH,CAAC,CAAC,CAAC;6BACJ;4BACD,IAAI,CAAC,IAAI,CAAC;gCACR,MAAM;gCACN,KAAK,EAAE,MAAM;6BACd,CAAC,CAAC;yBACJ;qBACF;iBACF;aACF;SACF;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAvFW,QAAA,gBAAgB,oBAuF3B;AAEK,MAAM,OAAO,GAAG,CACrB,KAAa,EACb,MAA2B,EAC3B,GAAiB,EACL,EAAE;IACd,MAAM,cAAc,GAAG,KAAK;SACzB,gBAAgB,EAAE;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,IAAI,MAAM,CAAC,CAAM,CAAC,IAAI,IAAA,uBAAe,EAAC,KAAK,EAAE,CAAM,EAAE,GAAG,CAAC,CAAQ,CAAC;IACrG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;QAC1B,OAAO,IAAI,CAAC;KACb;IACD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAZW,QAAA,OAAO,WAYlB","file":"common.js","sourcesContent":["/* eslint-disable max-depth */\nimport type { IChart } from '../../../../chart/interface';\nimport type { IDimensionData, IDimensionInfo } from '../interface';\nimport { isNil, array, isValid, isValidNumber } from '@visactor/vutils';\nimport type { AxisComponent } from '../../../../component/axis/base-axis';\nimport type { CoordinateType, ILayoutPoint } from '../../../../typings';\nimport { isDiscrete } from '@visactor/vscale';\nimport type { ICartesianLinearAxisSpec } from '../../../../component';\nimport type { Maybe } from '@visactor/vutils';\n\nconst isInBound = (pos: ILayoutPoint, min: ILayoutPoint, max: ILayoutPoint): boolean =>\n pos.x >= min.x && pos.x <= max.x && pos.y >= min.y && pos.y <= max.y;\n\nexport const isInRegionBound = (chart: IChart, axis: AxisComponent, pos: ILayoutPoint) => {\n const regionList = chart.getRegionsInIds(array(axis.layout.layoutBindRegionID));\n return regionList?.some(region => {\n const rect = region.getLayoutRect();\n const startPoint = region.getLayoutStartPoint();\n return isInBound(\n pos,\n { x: startPoint.x, y: startPoint.y },\n { x: rect.width + startPoint.x, y: rect.height + startPoint.y }\n );\n });\n};\n\nexport const isSameDimensionInfo = (a?: IDimensionInfo, b?: IDimensionInfo): boolean => {\n if (a === b) {\n return true;\n }\n if (isNil(a) || isNil(b)) {\n return false;\n }\n if (a.value !== b.value) {\n return false;\n }\n if (a.axis?.id !== b.axis?.id) {\n return false;\n }\n return true;\n};\n\n/** 给定维度项的值,获取对应维度数据 */\nexport const getDimensionData = (\n value: any,\n axis: AxisComponent,\n coordinate: CoordinateType,\n getDimensionField: (series: any) => string | string[]\n): IDimensionData[] => {\n const scale = axis.getScale();\n const isDiscreteAxis = isDiscrete(scale.type);\n\n const data: IDimensionData[] = [];\n const regions = axis.getRegions(); // TODO: 直接从轴里取系列\n for (const region of regions) {\n const seriesList = region.getSeries();\n for (const series of seriesList) {\n if (series.coordinate === coordinate) {\n const dimensionField = array(getDimensionField(series));\n const viewData = series.getViewData()?.latestData;\n if (dimensionField && viewData) {\n if (isDiscreteAxis) {\n data.push({\n series,\n datum: viewData.filter(\n (datum: any) => datum[dimensionField[0]]?.toString() === value?.toString() // 获取该维度项所对应的数据\n )\n });\n } else {\n // 连续轴\n if (isValid(dimensionField[1])) {\n // 直方图情况,根据范围取 datum\n data.push({\n series,\n datum: viewData.filter((datum: any) => {\n if (datum[dimensionField[0]]?.toString() === value?.toString()) {\n return true;\n }\n return (\n isValid(datum[dimensionField[0]]) &&\n isValid(datum[dimensionField[1]]) &&\n value >= datum[dimensionField[0]] &&\n value < datum[dimensionField[1]]\n );\n })\n });\n } else {\n // 散点图情况,依据轴上的配置判断\n const range = (axis.getSpec() as ICartesianLinearAxisSpec).tooltipFilterRange;\n const rangeArr = (isValidNumber(range) ? [-range, range] : range) as Maybe<[number, number]>;\n let datums: any[] = [];\n if (rangeArr) {\n // 根据范围取 datum\n viewData.forEach((datum: any) => {\n if (isValid(datum[dimensionField[0]])) {\n const delta = datum[dimensionField[0]] - value;\n if (delta >= rangeArr[0] && delta <= rangeArr[1]) {\n datums.push(datum);\n }\n }\n });\n } else {\n // 根据最近距离取 datum\n let minDelta = Infinity;\n let deltaSign = 0;\n viewData.forEach((datum: any) => {\n if (isValid(datum[dimensionField[0]])) {\n const delta = Math.abs(datum[dimensionField[0]] - value);\n const sign = Math.sign(datum[dimensionField[0]] - value);\n if (delta < minDelta) {\n minDelta = delta;\n datums = [datum];\n deltaSign = sign;\n } else if (delta === minDelta && sign === deltaSign) {\n datums.push(datum);\n }\n }\n });\n }\n data.push({\n series,\n datum: datums\n });\n }\n }\n }\n }\n }\n }\n return data;\n};\n\nexport const getAxis = <T extends AxisComponent>(\n chart: IChart,\n filter: (cmp: T) => boolean,\n pos: ILayoutPoint\n): T[] | null => {\n const axesComponents = chart\n .getAllComponents()\n .filter(c => c.specKey === 'axes' && filter(c as T) && isInRegionBound(chart, c as T, pos)) as T[];\n if (!axesComponents.length) {\n return null;\n }\n return axesComponents;\n};\n"]}
|
|
@@ -4,28 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.getPolarDimensionInfo = void 0;
|
|
6
6
|
|
|
7
|
-
const vscale_1 = require("@visactor/vscale"), common_1 = require("./common"), vutils_1 = require("@visactor/vutils"), math_1 = require("../../../../util/math"),
|
|
8
|
-
const axesComponents = chart.getAllComponents().filter((c => "axes" === c.specKey && c.getOrient() === type && (0,
|
|
9
|
-
common_1.isInRegionBound)(chart, c, pos)));
|
|
10
|
-
return axesComponents.length ? axesComponents : null;
|
|
11
|
-
}, getFirstSeries = chart => {
|
|
12
|
-
const regions = chart.getRegionsInIndex();
|
|
13
|
-
for (let i = 0; i < regions.length; i++) {
|
|
14
|
-
const series = regions[i].getSeries();
|
|
15
|
-
for (let j = 0; j < series.length; j++) {
|
|
16
|
-
const s = series[j];
|
|
17
|
-
if ("polar" === s.coordinate) return s;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
return null;
|
|
21
|
-
}, angleStandardize = (angle, range) => {
|
|
7
|
+
const vscale_1 = require("@visactor/vscale"), common_1 = require("./common"), vutils_1 = require("@visactor/vutils"), math_1 = require("../../../../util/math"), model_1 = require("../../../../util/model"), angleStandardize = (angle, range) => {
|
|
22
8
|
const unit = 2 * Math.PI, min = (0, vutils_1.minInArray)(range), max = (0, vutils_1.maxInArray)(range);
|
|
23
9
|
return angle < min ? angle += Math.ceil((min - angle) / unit) * unit : angle > max && (angle -= Math.ceil((angle - max) / unit) * unit),
|
|
24
10
|
angle;
|
|
25
11
|
}, getPolarDimensionInfo = (chart, pos) => {
|
|
26
12
|
if (!chart) return null;
|
|
27
|
-
if (!getFirstSeries(chart)) return null;
|
|
28
|
-
const {x: x, y: y} = pos, angleAxisList = getAxis(chart, "angle"
|
|
13
|
+
if (!(0, model_1.getFirstSeries)(chart.getRegionsInIndex(), "polar")) return null;
|
|
14
|
+
const {x: x, y: y} = pos, angleAxisList = (0, common_1.getAxis)(chart, (cmp => "angle" === cmp.getOrient()), pos), radiusAxisList = (0,
|
|
15
|
+
common_1.getAxis)(chart, (cmp => "radius" === cmp.getOrient()), pos), targetAxisInfo = [], getDimensionField = series => series.getDimensionField()[0];
|
|
29
16
|
return angleAxisList && angleAxisList.forEach((axis => {
|
|
30
17
|
var _a;
|
|
31
18
|
const angleScale = axis.getScale();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/event/events/dimension/util/polar.ts"],"names":[],"mappings":"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","file":"polar.js","sourcesContent":["import type { IChart } from '../../../../chart/interface';\nimport type { IDimensionInfo } from '../interface';\nimport { isDiscrete } from '@visactor/vscale';\nimport { getDimensionData, isInRegionBound } from './common';\nimport type { IPolarSeries } from '../../../../series/interface';\nimport { isNil, maxInArray, minInArray } from '@visactor/vutils';\nimport type { PolarAxis } from '../../../../component/axis/polar';\nimport { distance, vectorAngle } from '../../../../util/math';\nimport type { AxisComponent } from '../../../../component/axis/base-axis';\nimport type { ILayoutPoint } from '../../../../typings/layout';\n\nconst getAxis = (chart: IChart, type: 'radius' | 'angle', pos: ILayoutPoint): PolarAxis[] | null => {\n const axesComponents = chart\n .getAllComponents()\n .filter(\n c =>\n c.specKey === 'axes' &&\n (c as AxisComponent).getOrient() === type &&\n isInRegionBound(chart, c as AxisComponent, pos)\n ) as PolarAxis[];\n if (!axesComponents.length) {\n return null;\n }\n return axesComponents;\n};\n\nconst getFirstSeries = (chart: IChart) => {\n const regions = chart.getRegionsInIndex();\n for (let i = 0; i < regions.length; i++) {\n const r = regions[i];\n const series = r.getSeries();\n for (let j = 0; j < series.length; j++) {\n const s = series[j];\n if (s.coordinate === 'polar') {\n return s as IPolarSeries;\n }\n }\n }\n return null;\n};\n\n/** 将角度标准化为 range 范围内的角度 */\nconst angleStandardize = (angle: number, range: [number, number]) => {\n const unit = Math.PI * 2;\n const min = minInArray(range);\n const max = maxInArray(range);\n if (angle < min) {\n angle += Math.ceil((min - angle) / unit) * unit;\n } else if (angle > max) {\n angle -= Math.ceil((angle - max) / unit) * unit;\n }\n return angle;\n};\n\nexport const getPolarDimensionInfo = (chart: IChart | undefined, pos: ILayoutPoint): IDimensionInfo[] | null => {\n if (!chart) {\n return null;\n }\n const series = getFirstSeries(chart);\n if (!series) {\n return null;\n }\n\n const { x, y } = pos;\n const angleAxisList = getAxis(chart, 'angle', pos);\n const radiusAxisList = getAxis(chart, 'radius', pos);\n const targetAxisInfo: IDimensionInfo[] = [];\n\n const getDimensionField = (series: IPolarSeries) => series.getDimensionField()[0];\n\n if (angleAxisList) {\n angleAxisList.forEach(axis => {\n const angleScale = axis.getScale();\n // 限定为离散轴\n if (angleScale && isDiscrete(angleScale.type)) {\n const angleDomain = angleScale.domain();\n const angleRange = angleScale.range();\n const center = axis.getCenter();\n const vector = {\n x: x - axis.getLayoutStartPoint().x - center.x,\n y: y - axis.getLayoutStartPoint().y - center.y\n };\n\n // 计算顺时针角度\n let angle = vectorAngle({ x: 1, y: 0 }, vector);\n angle = angleStandardize(angle, angleRange);\n\n // 计算半径\n const radius = distance(vector);\n const radiusScale = radiusAxisList[0]?.getScale(); // FIXME: 想办法获取到和当前角度轴对应的径向轴,而不是取第一个\n const radiusRange = radiusScale?.range();\n\n // 判断是否在 range 范围内\n if (\n (angle - angleRange?.[0]) * (angle - angleRange?.[1]) > 0 ||\n (radius - radiusRange?.[0]) * (radius - radiusRange?.[1]) > 0\n ) {\n return;\n }\n\n const value = axis.invert(angle);\n if (isNil(value)) {\n return;\n }\n let index: number | undefined = angleDomain.findIndex((v: any) => v?.toString() === value.toString());\n if (index < 0) {\n index = undefined;\n }\n\n const data = getDimensionData(value, axis, 'polar', getDimensionField);\n targetAxisInfo.push({ index, value, axis, data });\n }\n });\n }\n if (radiusAxisList) {\n radiusAxisList.forEach(axis => {\n const radiusScale = axis.getScale();\n const radiusRange = radiusScale?.range();\n\n // 限定为离散轴\n if (radiusScale && isDiscrete(radiusScale.type)) {\n const center = axis.getCenter();\n const vector = {\n x: x - axis.getLayoutStartPoint().x - center.x,\n y: y - axis.getLayoutStartPoint().y - center.y\n };\n\n // 计算顺时针角度\n let angle = vectorAngle({ x: 1, y: 0 }, vector);\n if (angle < -Math.PI / 2) {\n angle = Math.PI * 2 + angle;\n }\n\n // 计算半径\n const radius = distance(vector);\n const angleScale = angleAxisList[0]?.getScale(); // FIXME: 想办法获取到和当前径向轴对应的角度轴,而不是取第一个\n const angleRange = angleScale?.range();\n\n // 判断是否在 range 范围内\n if (\n (angle - angleRange?.[0]) * (angle - angleRange?.[1]) > 0 ||\n (radius - radiusRange?.[0]) * (radius - radiusRange?.[1]) > 0\n ) {\n return;\n }\n\n const value = radiusScale.invert(radius);\n if (isNil(value)) {\n return;\n }\n const domain = radiusScale.domain();\n let index: number | undefined = domain.findIndex((v: any) => v?.toString() === value.toString());\n if (index < 0) {\n index = undefined;\n }\n\n const data = getDimensionData(value, axis, 'polar', getDimensionField);\n targetAxisInfo.push({ index, value, axis, data });\n }\n });\n }\n if (!targetAxisInfo.length) {\n return null;\n }\n return targetAxisInfo;\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/event/events/dimension/util/polar.ts"],"names":[],"mappings":"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","file":"polar.js","sourcesContent":["import type { IChart } from '../../../../chart/interface';\nimport type { IDimensionInfo } from '../interface';\nimport { isDiscrete } from '@visactor/vscale';\nimport { getAxis, getDimensionData } from './common';\nimport type { IPolarSeries } from '../../../../series/interface';\nimport { isNil, maxInArray, minInArray } from '@visactor/vutils';\nimport { distance, vectorAngle } from '../../../../util/math';\nimport type { ILayoutPoint } from '../../../../typings/layout';\nimport type { PolarAxis } from '../../../../component';\nimport { getFirstSeries } from '../../../../util/model';\n\n/** 将角度标准化为 range 范围内的角度 */\nconst angleStandardize = (angle: number, range: [number, number]) => {\n const unit = Math.PI * 2;\n const min = minInArray(range);\n const max = maxInArray(range);\n if (angle < min) {\n angle += Math.ceil((min - angle) / unit) * unit;\n } else if (angle > max) {\n angle -= Math.ceil((angle - max) / unit) * unit;\n }\n return angle;\n};\n\nexport const getPolarDimensionInfo = (chart: IChart | undefined, pos: ILayoutPoint): IDimensionInfo[] | null => {\n if (!chart) {\n return null;\n }\n const series = getFirstSeries(chart.getRegionsInIndex(), 'polar');\n if (!series) {\n return null;\n }\n\n const { x, y } = pos;\n const angleAxisList = getAxis(chart, (cmp: PolarAxis) => cmp.getOrient() === 'angle', pos);\n const radiusAxisList = getAxis(chart, (cmp: PolarAxis) => cmp.getOrient() === 'radius', pos);\n const targetAxisInfo: IDimensionInfo[] = [];\n\n const getDimensionField = (series: IPolarSeries) => series.getDimensionField()[0];\n\n if (angleAxisList) {\n angleAxisList.forEach(axis => {\n const angleScale = axis.getScale();\n // 限定为离散轴\n if (angleScale && isDiscrete(angleScale.type)) {\n const angleDomain = angleScale.domain();\n const angleRange = angleScale.range();\n const center = axis.getCenter();\n const vector = {\n x: x - axis.getLayoutStartPoint().x - center.x,\n y: y - axis.getLayoutStartPoint().y - center.y\n };\n\n // 计算顺时针角度\n let angle = vectorAngle({ x: 1, y: 0 }, vector);\n angle = angleStandardize(angle, angleRange);\n\n // 计算半径\n const radius = distance(vector);\n const radiusScale = radiusAxisList[0]?.getScale(); // FIXME: 想办法获取到和当前角度轴对应的径向轴,而不是取第一个\n const radiusRange = radiusScale?.range();\n\n // 判断是否在 range 范围内\n if (\n (angle - angleRange?.[0]) * (angle - angleRange?.[1]) > 0 ||\n (radius - radiusRange?.[0]) * (radius - radiusRange?.[1]) > 0\n ) {\n return;\n }\n\n const value = axis.invert(angle);\n if (isNil(value)) {\n return;\n }\n let index: number | undefined = angleDomain.findIndex((v: any) => v?.toString() === value.toString());\n if (index < 0) {\n index = undefined;\n }\n\n const data = getDimensionData(value, axis, 'polar', getDimensionField);\n targetAxisInfo.push({ index, value, axis, data });\n }\n });\n }\n if (radiusAxisList) {\n radiusAxisList.forEach(axis => {\n const radiusScale = axis.getScale();\n const radiusRange = radiusScale?.range();\n\n // 限定为离散轴\n if (radiusScale && isDiscrete(radiusScale.type)) {\n const center = axis.getCenter();\n const vector = {\n x: x - axis.getLayoutStartPoint().x - center.x,\n y: y - axis.getLayoutStartPoint().y - center.y\n };\n\n // 计算顺时针角度\n let angle = vectorAngle({ x: 1, y: 0 }, vector);\n if (angle < -Math.PI / 2) {\n angle = Math.PI * 2 + angle;\n }\n\n // 计算半径\n const radius = distance(vector);\n const angleScale = angleAxisList[0]?.getScale(); // FIXME: 想办法获取到和当前径向轴对应的角度轴,而不是取第一个\n const angleRange = angleScale?.range();\n\n // 判断是否在 range 范围内\n if (\n (angle - angleRange?.[0]) * (angle - angleRange?.[1]) > 0 ||\n (radius - radiusRange?.[0]) * (radius - radiusRange?.[1]) > 0\n ) {\n return;\n }\n\n const value = radiusScale.invert(radius);\n if (isNil(value)) {\n return;\n }\n const domain = radiusScale.domain();\n let index: number | undefined = domain.findIndex((v: any) => v?.toString() === value.toString());\n if (index < 0) {\n index = undefined;\n }\n\n const data = getDimensionData(value, axis, 'polar', getDimensionField);\n targetAxisInfo.push({ index, value, axis, data });\n }\n });\n }\n if (!targetAxisInfo.length) {\n return null;\n }\n return targetAxisInfo;\n};\n"]}
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.Zoomable = void 0;
|
|
6
6
|
|
|
7
|
-
const vutils_1 = require("@visactor/vutils"), common_1 = require("../../typings/spec/common"), config_1 = require("../../component/common/trigger/config"),
|
|
7
|
+
const vutils_1 = require("@visactor/vutils"), common_1 = require("../../typings/spec/common"), config_1 = require("../../component/common/trigger/config"), constant_1 = require("../../constant"), delayMap = {
|
|
8
8
|
debounce: vutils_1.debounce,
|
|
9
9
|
throttle: vutils_1.throttle
|
|
10
10
|
};
|
|
@@ -22,10 +22,11 @@ class Zoomable {
|
|
|
22
22
|
const event = params.event.clone();
|
|
23
23
|
this._zoomableTrigger.parserZoomEvent(event);
|
|
24
24
|
const {zoomDelta: zoomDelta, zoomX: zoomX, zoomY: zoomY} = event;
|
|
25
|
-
(0, vutils_1.isNil)(zoomDelta) || (0,
|
|
25
|
+
(0, vutils_1.isNil)(zoomDelta) || (0, vutils_1.pointInRect)({
|
|
26
26
|
x: zoomX,
|
|
27
27
|
y: zoomY
|
|
28
|
-
}, this._getRegionOrSeriesLayout(regionOrSeries)) && (this._clickEnable = !1,
|
|
28
|
+
}, this._getRegionOrSeriesLayout(regionOrSeries), !1) && (this._clickEnable = !1,
|
|
29
|
+
callback && callback({
|
|
29
30
|
zoomDelta: zoomDelta,
|
|
30
31
|
zoomX: zoomX,
|
|
31
32
|
zoomY: zoomY
|
|
@@ -39,7 +40,14 @@ class Zoomable {
|
|
|
39
40
|
}));
|
|
40
41
|
}
|
|
41
42
|
_getRegionOrSeriesLayout(rs) {
|
|
42
|
-
|
|
43
|
+
"region" !== rs.type && (rs = rs.getRegion());
|
|
44
|
+
const {x: x, y: y, width: width, height: height} = rs.layout.getLayout();
|
|
45
|
+
return {
|
|
46
|
+
x1: x,
|
|
47
|
+
y1: y,
|
|
48
|
+
x2: x + width,
|
|
49
|
+
y2: y + height
|
|
50
|
+
};
|
|
43
51
|
}
|
|
44
52
|
_bindZoomEventAsRegion(eventObj, regionOrSeries, callback, option) {
|
|
45
53
|
var _a, _b;
|
|
@@ -71,10 +79,11 @@ class Zoomable {
|
|
|
71
79
|
const {event: event} = params;
|
|
72
80
|
this._zoomableTrigger.parserScrollEvent(event);
|
|
73
81
|
const {scrollX: scrollX, scrollY: scrollY} = event;
|
|
74
|
-
(0, vutils_1.isNil)(scrollX) && (0, vutils_1.isNil)(scrollY) || (0,
|
|
82
|
+
(0, vutils_1.isNil)(scrollX) && (0, vutils_1.isNil)(scrollY) || (0, vutils_1.pointInRect)({
|
|
75
83
|
x: event.canvasX,
|
|
76
84
|
y: event.canvasY
|
|
77
|
-
}, this._getRegionOrSeriesLayout(regionOrSeries)) && (this._clickEnable = !1,
|
|
85
|
+
}, this._getRegionOrSeriesLayout(regionOrSeries), !1) && (this._clickEnable = !1,
|
|
86
|
+
callback && callback({
|
|
78
87
|
scrollX: scrollX,
|
|
79
88
|
scrollY: scrollY
|
|
80
89
|
}, event), this._eventObj.emit("scroll", {
|
|
@@ -114,10 +123,10 @@ class Zoomable {
|
|
|
114
123
|
}, (params => {
|
|
115
124
|
if (!params.event) return;
|
|
116
125
|
const {event: event} = params;
|
|
117
|
-
(0,
|
|
126
|
+
(0, vutils_1.pointInRect)({
|
|
118
127
|
x: event.canvasX,
|
|
119
128
|
y: event.canvasY
|
|
120
|
-
}, this._getRegionOrSeriesLayout(regionOrSeries)) && this._handleDrag(params, callback, option);
|
|
129
|
+
}, this._getRegionOrSeriesLayout(regionOrSeries), !1) && this._handleDrag(params, callback, option);
|
|
121
130
|
})), eventObj.on("click", {
|
|
122
131
|
level: constant_1.Event_Bubble_Level.chart
|
|
123
132
|
}, (() => !this._clickEnable));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/interaction/zoom/zoomable.ts"],"names":[],"mappings":";;;AACA,6CAA6D;AAI7D,sDAA2D;AAC3D,kEAAqF;AAErF,4CAAiD;AAEjD,6CAAuE;AAGvE,MAAM,QAAQ,GAAG;IACf,QAAQ,EAAE,iBAAQ;IAClB,QAAQ,EAAE,iBAAQ;CACnB,CAAC;AAmDF,MAAa,QAAQ;IASnB,YAAY,CAAC,GAAW,EAAE,OAAmB,uBAAc,CAAC,iBAAiB,CAAC;QAC5E,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,IAAA,qCAA4B,EAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAElD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,gBAAgB,GAAG,KAAK,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAS,GAAE,CAAC;SACzE;IACH,CAAC;IAGO,gBAAgB,CAAC,IAAY;QACnC,OAAO,IAAA,qCAA4B,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IAEO,kBAAkB,CACxB,MAAuB,EACvB,cAAiC,EACjC,QAA6G;QAE7G,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACjB,OAAO;SACR;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAE7C,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAY,CAAC;QACjD,IAAI,IAAA,cAAK,EAAC,SAAS,CAAC,EAAE;YACpB,OAAO;SACR;QACD,IACE,CAAC,IAAA,qBAAa,EACZ;YACE,CAAC,EAAE,KAAK;YACR,CAAC,EAAE,KAAK;SACT,EACD,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAC9C,EACD;YACA,OAAO;SACR;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAE1B,IAAI,QAAQ,EAAE;YAEZ,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;SAC9C;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE;YAC1B,KAAK,EAAE,KAAK,CAAC,SAAS;YACtB,WAAW,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE;YAC/C,KAAK,EAAE,IAAI;SACmB,CAAC,CAAC;IACpC,CAAC;IAEO,wBAAwB,CAAC,EAAqB;QACpD,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE;YACxB,EAAE,GAAa,EAAG,CAAC,SAAS,EAAE,CAAC;SAChC;QACD,OAAO,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC;IAEO,sBAAsB,CAC5B,QAAgB,EAChB,cAAiC,EACjC,QAA6G,EAC7G,MAAuB;;QAEvB,MAAM,SAAS,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,mCAAI,UAAU,CAAC;QAClD,MAAM,SAAS,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,mCAAI,CAAC,CAAC;QAGzC,QAAQ,CAAC,EAAE,CACT,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAClC,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EACnD,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,MAAuB,EAAE,EAAE;YAC9C,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;QACpC,CAAC,EAAE,SAAS,CAAQ,CACrB,CAAC;QAEF,QAAQ,CAAC,EAAE,CACT,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAC/B,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAClD,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,MAAuB,EAAE,EAAE;YAE9C,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;QAE5D,CAAC,EAAE,SAAS,CAAQ,CACrB,CAAC;IACJ,CAAC;IAED,qBAAqB,CACnB,CAAU,EACV,QAA6G,EAC7G,MAAuB;QAEvB,IAAI,IAAA,qCAA4B,EAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAClD,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;SAC3D;IACH,CAAC;IAED,sBAAsB,CACpB,OAAkB,EAClB,MAAgC,EAChC,QAA6G,EAC7G,MAAuB;QAEvB,IAAI,IAAA,qCAA4B,EAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAClD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAClB,IAAI,MAAM,EAAE;oBACV,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACxB,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;4BACb,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;yBAC3D;oBACH,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;iBAClE;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAEO,oBAAoB,CAC1B,MAAuB,EACvB,cAAiC,EACjC,QAA8F;QAE9F,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACjB,OAAO;SACR;QACD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;QACzB,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAE/C,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAY,CAAC;QAC1C,IAAI,IAAA,cAAK,EAAC,OAAO,CAAC,IAAI,IAAA,cAAK,EAAC,OAAO,CAAC,EAAE;YACpC,OAAO;SACR;QACD,IACE,CAAC,IAAA,qBAAa,EACZ;YACE,CAAC,EAAE,KAAK,CAAC,OAAO;YAChB,CAAC,EAAE,KAAK,CAAC,OAAO;SACjB,EACD,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAC9C,EACD;YACA,OAAO;SACR;QACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAE1B,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC;SACvC;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC5B,OAAO;YACP,OAAO;YACP,KAAK,EAAE,IAAI;SACmB,CAAC,CAAC;IACpC,CAAC;IAEO,wBAAwB,CAC9B,QAAgB,EAChB,cAAiC,EACjC,QAA8F,EAC9F,MAAuB;;QAEvB,MAAM,SAAS,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,mCAAI,UAAU,CAAC;QAClD,MAAM,SAAS,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,mCAAI,CAAC,CAAC;QAGzC,QAAQ,CAAC,EAAE,CACT,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAClC,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EACnD,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,MAAW,EAAE,EAAE;YAClC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;QACtC,CAAC,EAAE,SAAS,CAAC,CACd,CAAC;QAEF,QAAQ,CAAC,EAAE,CACT,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAC/B,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAClD,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,MAAW,EAAE,EAAE;YAElC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;QAE9D,CAAC,EAAE,SAAS,CAAC,CACd,CAAC;IACJ,CAAC;IAED,uBAAuB,CACrB,CAAU,EACV,QAA8F,EAC9F,MAAuB;QAEvB,IAAI,IAAA,qCAA4B,EAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAClD,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;SAC7D;IACH,CAAC;IAED,wBAAwB,CACtB,OAAkB,EAClB,MAAgC,EAChC,QAA8F,EAC9F,MAAuB;QAEvB,IAAI,IAAA,qCAA4B,EAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAClD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAClB,IAAI,MAAM,EAAE;oBACV,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACxB,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;4BACb,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;yBAC7D;oBACH,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;iBACpE;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAEO,sBAAsB,CAC5B,QAAgB,EAChB,cAAiC,EACjC,QAAyE,EACzE,MAAuB;QAEvB,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,MAAW,EAAE,EAAE;YAC/F,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;gBACjB,OAAO;aACR;YAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;YACzB,MAAM,aAAa,GAAG,IAAA,qBAAa,EACjC;gBACE,CAAC,EAAE,KAAK,CAAC,OAAO;gBAChB,CAAC,EAAE,KAAK,CAAC,OAAO;aACjB,EACD,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAC9C,CAAC;YACF,IAAI,aAAa,EAAE;gBACjB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;aAC5C;QACH,CAAC,CAAC,CAAC;QAGH,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE;YAC7D,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB,CACnB,CAAU,EACV,QAAyE,EACzE,MAAuB;QAEvB,IAAI,IAAA,qCAA4B,EAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAClD,CAAC,CAAC,KAAK,CAAC,EAAE,CACR,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAC9B,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,MAAK,CAAC,CAAC,EAAE,EAAE,EAC9E,MAAM,CAAC,EAAE;gBACP,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC7C,CAAC,CACF,CAAC;SACH;IACH,CAAC;IAED,sBAAsB,CACpB,OAAkB,EAClB,MAAgC,EAChC,QAAyE,EACzE,MAAuB;QAEvB,IAAI,IAAA,qCAA4B,EAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAClD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBAClB,IAAI,MAAM,EAAE;oBACV,CAAC,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;wBACxB,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;4BACb,CAAC,CAAC,KAAK,CAAC,EAAE,CACR,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAC9B,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,MAAK,CAAC,CAAC,EAAE,EAAE,EAC9E,MAAM,CAAC,EAAE;gCACP,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;4BACrC,CAAC,CACF,CAAC;4BAIF,CAAC,CAAC,KAAK,CAAC,EAAE,CACR,OAAO,EACP,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,MAAK,CAAC,CAAC,EAAE,EAAE,EAC9E,GAAG,EAAE;gCACH,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;4BAC5B,CAAC,CACF,CAAC;yBACH;oBACH,CAAC,CAAC,CAAC;iBACJ;qBAAM;oBACL,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;iBAClE;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAES,WAAW,CACnB,MAAwB,EACxB,QAAyE,EACzE,MAAuB;;QAEvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YACxD,OAAO;SACR;QACD,MAAM,SAAS,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,mCAAI,UAAU,CAAC;QAClD,MAAM,SAAS,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,mCAAI,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,mCAAI,IAAI,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;QAC1B,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;QAC1B,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;QACxB,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;QAExB,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,MAAuB,EAAE,EAAE;YAC9D,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAY,CAAC;YAClC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;YAC/B,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC;YAC/B,MAAM,KAAK,GAAqB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAEzC,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;YACpB,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC;YAEpB,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE;gBACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;aAC/B;YAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAC5B,KAAK;gBACL,KAAK,EAAE,IAAI;aACkB,CAAC,CAAC;YACjC,IAAI,CAAC,gBAAgB,CAAC,SAAS,GAAG,IAAI,CAAC;YACvC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,4BAAiB,CAAC,KAAK,EAAE,EAAE,SAAgB,CAAC,CAAC;YACjH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,4BAAiB,CAAC,MAAM,EAAE,EAAE,OAAc,CAAC,CAAC;QACjH,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,MAAuB,EAAE,EAAE;YAChE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBACxD,OAAO;aACR;YACD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;YACjC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;YACjC,MAAM,KAAK,GAAqB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAEzC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;YACtB,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;YAEtB,IAAI,QAAQ,IAAI,QAAQ,EAAE;gBACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;aAC/B;YACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE;gBAC7B,KAAK;gBACL,KAAK,EAAE,IAAI;aACmB,CAAC,CAAC;QACpC,CAAC,EAAE,SAAS,CAAC,CAAC;QAEd,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,4BAAiB,CAAC,KAAK,EAAE,EAAE,SAAgB,CAAC,CAAC;QAChH,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,6BAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,4BAAiB,CAAC,KAAK,EAAE,EAAE,OAAc,CAAC,CAAC;IAC/G,CAAC;CACF;AA1XD,4BA0XC","file":"zoomable.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { debounce, isNil, throttle } from '@visactor/vutils';\nimport type { BaseEventParams, EventType, ExtendEventParam, IEvent } from '../../event/interface';\nimport type { IRegion } from '../../region/interface';\nimport type { RenderMode } from '../../typings/spec';\nimport { RenderModeEnum } from '../../typings/spec/common';\nimport { getDefaultTriggerEventByMode } from '../../component/common/trigger/config';\nimport type { IZoomTrigger } from '../../component/common/trigger/interface';\nimport { isPointInRect } from '../../util/space';\nimport type { ISeries } from '../../series/interface';\nimport { Event_Bubble_Level, Event_Source_Type } from '../../constant';\nimport type { IDelayType } from '../../typings/event';\n\nconst delayMap = {\n debounce: debounce,\n throttle: throttle\n};\n\nexport interface ITriggerOption {\n delayType: IDelayType;\n delayTime: number;\n realTime: boolean;\n}\nexport interface IZoomEventOptions {\n shouldZoom?: boolean;\n zoomCallback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void;\n shouldScroll?: boolean;\n scrollCallback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void;\n}\nexport interface IZoomable {\n initZoomable: (evt: IEvent, mode?: RenderMode) => void;\n initZoomEventOfSeries: (\n s: ISeries,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void\n ) => any;\n initZoomEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) => void;\n\n initScrollEventOfSeries: (\n s: ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void\n ) => any;\n initScrollEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) => void;\n\n initDragEventOfSeries: (\n s: ISeries,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) => any;\n\n initDragEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) => void;\n}\n\nexport class Zoomable implements IZoomable {\n private _clickEnable: boolean;\n\n private _zoomableTrigger: IZoomTrigger;\n\n private _eventObj: IEvent;\n\n private _renderMode: RenderMode;\n\n initZoomable(evt: IEvent, mode: RenderMode = RenderModeEnum['desktop-browser']) {\n this._eventObj = evt;\n this._renderMode = mode;\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n this._clickEnable = true;\n this._zoomableTrigger = new (this._getTriggerEvent('trigger') as any)();\n }\n }\n\n // event\n private _getTriggerEvent(type: string): EventType {\n return getDefaultTriggerEventByMode(this._renderMode)[type];\n }\n\n private _zoomEventDispatch(\n params: BaseEventParams,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void\n ) {\n if (!params.event) {\n return;\n }\n const event = params.event.clone();\n this._zoomableTrigger.parserZoomEvent(event);\n // FIXME: event类型目前不全\n const { zoomDelta, zoomX, zoomY } = event as any;\n if (isNil(zoomDelta)) {\n return;\n }\n if (\n !isPointInRect(\n {\n x: zoomX,\n y: zoomY\n },\n this._getRegionOrSeriesLayout(regionOrSeries)\n )\n ) {\n return;\n }\n this._clickEnable = false;\n\n if (callback) {\n // zoomDelta, zoomX, zoomY can be changed in the callback\n callback({ zoomDelta, zoomX, zoomY }, event);\n }\n this._eventObj.emit('zoom', {\n scale: event.zoomDelta,\n scaleCenter: { x: event.zoomX, y: event.zoomY },\n model: this\n } as unknown as ExtendEventParam);\n }\n\n private _getRegionOrSeriesLayout(rs: IRegion | ISeries) {\n if (rs.type !== 'region') {\n rs = (<ISeries>rs).getRegion();\n }\n return rs.layout.getLayout();\n }\n\n private _bindZoomEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n const delayType = option?.delayType ?? 'throttle';\n const delayTime = option?.delayTime ?? 0;\n\n // pc端没有scrollEnd事件,所以漫游模式下scroll仅支持realTime\n eventObj.on(\n this._getTriggerEvent('scrollEnd'),\n { level: Event_Bubble_Level.chart, consume: false },\n delayMap[delayType]((params: BaseEventParams) => {\n this._zoomableTrigger.clearZoom();\n }, delayTime) as any\n );\n\n eventObj.on(\n this._getTriggerEvent('scroll'),\n { level: Event_Bubble_Level.chart, consume: true },\n delayMap[delayType]((params: BaseEventParams) => {\n // if (realTime) {\n this._zoomEventDispatch(params, regionOrSeries, callback);\n // }\n }, delayTime) as any\n );\n }\n\n initZoomEventOfSeries(\n s: ISeries,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n this._bindZoomEventAsRegion(s.event, s, callback, option);\n }\n }\n\n initZoomEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n this._bindZoomEventAsRegion(s.event, s, callback, option);\n }\n });\n } else {\n this._bindZoomEventAsRegion(this._eventObj, r, callback, option);\n }\n });\n }\n }\n\n private _scrollEventDispatch(\n params: BaseEventParams,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void\n ) {\n if (!params.event) {\n return;\n }\n const { event } = params;\n this._zoomableTrigger.parserScrollEvent(event);\n // FIXME: event类型目前不全\n const { scrollX, scrollY } = event as any;\n if (isNil(scrollX) && isNil(scrollY)) {\n return;\n }\n if (\n !isPointInRect(\n {\n x: event.canvasX,\n y: event.canvasY\n },\n this._getRegionOrSeriesLayout(regionOrSeries)\n )\n ) {\n return;\n }\n this._clickEnable = false;\n\n if (callback) {\n callback({ scrollX, scrollY }, event);\n }\n this._eventObj.emit('scroll', {\n scrollX,\n scrollY,\n model: this\n } as unknown as ExtendEventParam);\n }\n\n private _bindScrollEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n const delayType = option?.delayType ?? 'throttle';\n const delayTime = option?.delayTime ?? 0;\n\n // pc端没有scrollEnd事件,所以漫游模式下scroll仅支持realTime\n eventObj.on(\n this._getTriggerEvent('scrollEnd'),\n { level: Event_Bubble_Level.chart, consume: false },\n delayMap[delayType]((params: any) => {\n this._zoomableTrigger.clearScroll();\n }, delayTime)\n );\n\n eventObj.on(\n this._getTriggerEvent('scroll'),\n { level: Event_Bubble_Level.chart, consume: true },\n delayMap[delayType]((params: any) => {\n // if (realTime) {\n this._scrollEventDispatch(params, regionOrSeries, callback);\n // }\n }, delayTime)\n );\n }\n\n initScrollEventOfSeries(\n s: ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n this._bindScrollEventAsRegion(s.event, s, callback, option);\n }\n }\n\n initScrollEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n this._bindScrollEventAsRegion(s.event, s, callback, option);\n }\n });\n } else {\n this._bindScrollEventAsRegion(this._eventObj, r, callback, option);\n }\n });\n }\n }\n\n private _bindDragEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n eventObj.on(this._getTriggerEvent('start'), { level: Event_Bubble_Level.chart }, (params: any) => {\n if (!params.event) {\n return;\n }\n\n const { event } = params;\n const shouldTrigger = isPointInRect(\n {\n x: event.canvasX,\n y: event.canvasY\n },\n this._getRegionOrSeriesLayout(regionOrSeries)\n );\n if (shouldTrigger) {\n this._handleDrag(params, callback, option);\n }\n });\n // click 事件需要在drag和zoom时被屏蔽\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n eventObj.on('click', { level: Event_Bubble_Level.chart }, () => {\n return !this._clickEnable;\n });\n }\n\n initDragEventOfSeries(\n s: ISeries,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n s.event.on(\n this._getTriggerEvent('start'),\n { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id },\n params => {\n this._handleDrag(params, callback, option);\n }\n );\n }\n }\n\n initDragEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n s.event.on(\n this._getTriggerEvent('start'),\n { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id },\n params => {\n this._handleDrag(params, callback);\n }\n );\n\n // click 事件需要在drag和zoom时被屏蔽\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n s.event.on(\n 'click',\n { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id },\n () => {\n return !this._clickEnable;\n }\n );\n }\n });\n } else {\n this._bindDragEventAsRegion(this._eventObj, r, callback, option);\n }\n });\n }\n }\n\n protected _handleDrag(\n params: ExtendEventParam,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n this._clickEnable = true;\n if (!this._zoomableTrigger.parserDragEvent(params.event)) {\n return;\n }\n const delayType = option?.delayType ?? 'throttle';\n const delayTime = option?.delayTime ?? 0;\n const realTime = option?.realTime ?? true;\n const move = this._getTriggerEvent('move');\n const end = this._getTriggerEvent('end');\n const event = params.event;\n let moveX = event.canvasX;\n let moveY = event.canvasY;\n let upX = event.canvasX;\n let upY = event.canvasY;\n\n const mouseup = delayMap[delayType]((params: BaseEventParams) => {\n this._clickEnable = false;\n const event = params.event as any;\n const dx = event.canvasX - upX;\n const dy = event.canvasY - upY;\n const delta: [number, number] = [dx, dy];\n\n upX = event.canvasX;\n upY = event.canvasY;\n\n if (!realTime && callback) {\n callback(delta, params.event);\n }\n\n this._eventObj.emit('panend', {\n delta,\n model: this\n } as unknown as BaseEventParams);\n this._zoomableTrigger.pointerId = null;\n this._eventObj.off(move, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mousemove as any);\n this._eventObj.off(end, { level: Event_Bubble_Level.chart, source: Event_Source_Type.window }, mouseup as any);\n }, delayTime);\n const mousemove = delayMap[delayType]((params: BaseEventParams) => {\n if (!this._zoomableTrigger.parserDragEvent(params.event)) {\n return;\n }\n this._clickEnable = false;\n const event = params.event;\n const dx = event.canvasX - moveX;\n const dy = event.canvasY - moveY;\n const delta: [number, number] = [dx, dy];\n\n moveX = event.canvasX;\n moveY = event.canvasY;\n\n if (realTime && callback) {\n callback(delta, params.event);\n }\n this._eventObj.emit('panmove', {\n delta,\n model: this\n } as unknown as ExtendEventParam);\n }, delayTime);\n\n this._eventObj.on(move, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mousemove as any);\n this._eventObj.on(end, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mouseup as any);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/interaction/zoom/zoomable.ts"],"names":[],"mappings":"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","file":"zoomable.js","sourcesContent":["/* eslint-disable no-duplicate-imports */\nimport { debounce, isNil, pointInRect, throttle } from '@visactor/vutils';\nimport type { BaseEventParams, EventType, ExtendEventParam, IEvent } from '../../event/interface';\nimport type { IRegion } from '../../region/interface';\nimport type { RenderMode } from '../../typings/spec';\nimport { RenderModeEnum } from '../../typings/spec/common';\nimport { getDefaultTriggerEventByMode } from '../../component/common/trigger/config';\nimport type { IZoomTrigger } from '../../component/common/trigger/interface';\nimport type { ISeries } from '../../series/interface';\nimport { Event_Bubble_Level, Event_Source_Type } from '../../constant';\nimport type { IDelayType } from '../../typings/event';\n\nconst delayMap = {\n debounce: debounce,\n throttle: throttle\n};\n\nexport interface ITriggerOption {\n delayType: IDelayType;\n delayTime: number;\n realTime: boolean;\n}\nexport interface IZoomEventOptions {\n shouldZoom?: boolean;\n zoomCallback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void;\n shouldScroll?: boolean;\n scrollCallback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void;\n}\nexport interface IZoomable {\n initZoomable: (evt: IEvent, mode?: RenderMode) => void;\n initZoomEventOfSeries: (\n s: ISeries,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void\n ) => any;\n initZoomEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) => void;\n\n initScrollEventOfSeries: (\n s: ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void\n ) => any;\n initScrollEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) => void;\n\n initDragEventOfSeries: (\n s: ISeries,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) => any;\n\n initDragEventOfRegions: (\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) => void;\n}\n\nexport class Zoomable implements IZoomable {\n private _clickEnable: boolean;\n\n private _zoomableTrigger: IZoomTrigger;\n\n private _eventObj: IEvent;\n\n private _renderMode: RenderMode;\n\n initZoomable(evt: IEvent, mode: RenderMode = RenderModeEnum['desktop-browser']) {\n this._eventObj = evt;\n this._renderMode = mode;\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n this._clickEnable = true;\n this._zoomableTrigger = new (this._getTriggerEvent('trigger') as any)();\n }\n }\n\n // event\n private _getTriggerEvent(type: string): EventType {\n return getDefaultTriggerEventByMode(this._renderMode)[type];\n }\n\n private _zoomEventDispatch(\n params: BaseEventParams,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void\n ) {\n if (!params.event) {\n return;\n }\n const event = params.event.clone();\n this._zoomableTrigger.parserZoomEvent(event);\n // FIXME: event类型目前不全\n const { zoomDelta, zoomX, zoomY } = event as any;\n if (isNil(zoomDelta)) {\n return;\n }\n if (\n !pointInRect(\n {\n x: zoomX,\n y: zoomY\n },\n this._getRegionOrSeriesLayout(regionOrSeries),\n false\n )\n ) {\n return;\n }\n this._clickEnable = false;\n\n if (callback) {\n // zoomDelta, zoomX, zoomY can be changed in the callback\n callback({ zoomDelta, zoomX, zoomY }, event);\n }\n this._eventObj.emit('zoom', {\n scale: event.zoomDelta,\n scaleCenter: { x: event.zoomX, y: event.zoomY },\n model: this\n } as unknown as ExtendEventParam);\n }\n\n private _getRegionOrSeriesLayout(rs: IRegion | ISeries) {\n if (rs.type !== 'region') {\n rs = (<ISeries>rs).getRegion();\n }\n const { x, y, width, height } = rs.layout.getLayout();\n return {\n x1: x,\n y1: y,\n x2: x + width,\n y2: y + height\n };\n }\n\n private _bindZoomEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n const delayType = option?.delayType ?? 'throttle';\n const delayTime = option?.delayTime ?? 0;\n\n // pc端没有scrollEnd事件,所以漫游模式下scroll仅支持realTime\n eventObj.on(\n this._getTriggerEvent('scrollEnd'),\n { level: Event_Bubble_Level.chart, consume: false },\n delayMap[delayType]((params: BaseEventParams) => {\n this._zoomableTrigger.clearZoom();\n }, delayTime) as any\n );\n\n eventObj.on(\n this._getTriggerEvent('scroll'),\n { level: Event_Bubble_Level.chart, consume: true },\n delayMap[delayType]((params: BaseEventParams) => {\n // if (realTime) {\n this._zoomEventDispatch(params, regionOrSeries, callback);\n // }\n }, delayTime) as any\n );\n }\n\n initZoomEventOfSeries(\n s: ISeries,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n this._bindZoomEventAsRegion(s.event, s, callback, option);\n }\n }\n\n initZoomEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { zoomDelta: number; zoomX: number; zoomY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n this._bindZoomEventAsRegion(s.event, s, callback, option);\n }\n });\n } else {\n this._bindZoomEventAsRegion(this._eventObj, r, callback, option);\n }\n });\n }\n }\n\n private _scrollEventDispatch(\n params: BaseEventParams,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void\n ) {\n if (!params.event) {\n return;\n }\n const { event } = params;\n this._zoomableTrigger.parserScrollEvent(event);\n // FIXME: event类型目前不全\n const { scrollX, scrollY } = event as any;\n if (isNil(scrollX) && isNil(scrollY)) {\n return;\n }\n if (\n !pointInRect(\n {\n x: event.canvasX,\n y: event.canvasY\n },\n this._getRegionOrSeriesLayout(regionOrSeries),\n false\n )\n ) {\n return;\n }\n this._clickEnable = false;\n\n if (callback) {\n callback({ scrollX, scrollY }, event);\n }\n this._eventObj.emit('scroll', {\n scrollX,\n scrollY,\n model: this\n } as unknown as ExtendEventParam);\n }\n\n private _bindScrollEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n const delayType = option?.delayType ?? 'throttle';\n const delayTime = option?.delayTime ?? 0;\n\n // pc端没有scrollEnd事件,所以漫游模式下scroll仅支持realTime\n eventObj.on(\n this._getTriggerEvent('scrollEnd'),\n { level: Event_Bubble_Level.chart, consume: false },\n delayMap[delayType]((params: any) => {\n this._zoomableTrigger.clearScroll();\n }, delayTime)\n );\n\n eventObj.on(\n this._getTriggerEvent('scroll'),\n { level: Event_Bubble_Level.chart, consume: true },\n delayMap[delayType]((params: any) => {\n // if (realTime) {\n this._scrollEventDispatch(params, regionOrSeries, callback);\n // }\n }, delayTime)\n );\n }\n\n initScrollEventOfSeries(\n s: ISeries,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n this._bindScrollEventAsRegion(s.event, s, callback, option);\n }\n }\n\n initScrollEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (params: { scrollX: number; scrollY: number }, e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n this._bindScrollEventAsRegion(s.event, s, callback, option);\n }\n });\n } else {\n this._bindScrollEventAsRegion(this._eventObj, r, callback, option);\n }\n });\n }\n }\n\n private _bindDragEventAsRegion(\n eventObj: IEvent,\n regionOrSeries: IRegion | ISeries,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n eventObj.on(this._getTriggerEvent('start'), { level: Event_Bubble_Level.chart }, (params: any) => {\n if (!params.event) {\n return;\n }\n\n const { event } = params;\n const shouldTrigger = pointInRect(\n {\n x: event.canvasX,\n y: event.canvasY\n },\n this._getRegionOrSeriesLayout(regionOrSeries),\n false\n );\n if (shouldTrigger) {\n this._handleDrag(params, callback, option);\n }\n });\n // click 事件需要在drag和zoom时被屏蔽\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n eventObj.on('click', { level: Event_Bubble_Level.chart }, () => {\n return !this._clickEnable;\n });\n }\n\n initDragEventOfSeries(\n s: ISeries,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n s.event.on(\n this._getTriggerEvent('start'),\n { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id },\n params => {\n this._handleDrag(params, callback, option);\n }\n );\n }\n }\n\n initDragEventOfRegions(\n regions: IRegion[],\n filter?: (s: ISeries) => boolean,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n if (getDefaultTriggerEventByMode(this._renderMode)) {\n regions.forEach(r => {\n if (filter) {\n r.getSeries().forEach(s => {\n if (filter(s)) {\n s.event.on(\n this._getTriggerEvent('start'),\n { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id },\n params => {\n this._handleDrag(params, callback);\n }\n );\n\n // click 事件需要在drag和zoom时被屏蔽\n // hack 应该由事件系统做?或者事件系统有更好的方式处理这种交互冲突场景\n s.event.on(\n 'click',\n { level: Event_Bubble_Level.model, filter: ({ model }) => model?.id === s.id },\n () => {\n return !this._clickEnable;\n }\n );\n }\n });\n } else {\n this._bindDragEventAsRegion(this._eventObj, r, callback, option);\n }\n });\n }\n }\n\n protected _handleDrag(\n params: ExtendEventParam,\n callback?: (delta: [number, number], e: BaseEventParams['event']) => void,\n option?: ITriggerOption\n ) {\n this._clickEnable = true;\n if (!this._zoomableTrigger.parserDragEvent(params.event)) {\n return;\n }\n const delayType = option?.delayType ?? 'throttle';\n const delayTime = option?.delayTime ?? 0;\n const realTime = option?.realTime ?? true;\n const move = this._getTriggerEvent('move');\n const end = this._getTriggerEvent('end');\n const event = params.event;\n let moveX = event.canvasX;\n let moveY = event.canvasY;\n let upX = event.canvasX;\n let upY = event.canvasY;\n\n const mouseup = delayMap[delayType]((params: BaseEventParams) => {\n this._clickEnable = false;\n const event = params.event as any;\n const dx = event.canvasX - upX;\n const dy = event.canvasY - upY;\n const delta: [number, number] = [dx, dy];\n\n upX = event.canvasX;\n upY = event.canvasY;\n\n if (!realTime && callback) {\n callback(delta, params.event);\n }\n\n this._eventObj.emit('panend', {\n delta,\n model: this\n } as unknown as BaseEventParams);\n this._zoomableTrigger.pointerId = null;\n this._eventObj.off(move, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mousemove as any);\n this._eventObj.off(end, { level: Event_Bubble_Level.chart, source: Event_Source_Type.window }, mouseup as any);\n }, delayTime);\n const mousemove = delayMap[delayType]((params: BaseEventParams) => {\n if (!this._zoomableTrigger.parserDragEvent(params.event)) {\n return;\n }\n this._clickEnable = false;\n const event = params.event;\n const dx = event.canvasX - moveX;\n const dy = event.canvasY - moveY;\n const delta: [number, number] = [dx, dy];\n\n moveX = event.canvasX;\n moveY = event.canvasY;\n\n if (realTime && callback) {\n callback(delta, params.event);\n }\n this._eventObj.emit('panmove', {\n delta,\n model: this\n } as unknown as ExtendEventParam);\n }, delayTime);\n\n this._eventObj.on(move, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mousemove as any);\n this._eventObj.on(end, { level: Event_Bubble_Level.chart, source: Event_Source_Type.chart }, mouseup as any);\n }\n}\n"]}
|
package/cjs/mark/arc-3d.d.ts
CHANGED
package/cjs/mark/arc-3d.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: !0
|
|
5
|
-
}), exports.Arc3dMark = void 0;
|
|
5
|
+
}), exports.registerArc3dMark = exports.Arc3dMark = void 0;
|
|
6
6
|
|
|
7
|
-
const arc_1 = require("./arc"), type_1 = require("./interface/type");
|
|
7
|
+
const factory_1 = require("./../core/factory"), arc_1 = require("./arc"), type_1 = require("./interface/type"), vgrammar_core_1 = require("@visactor/vgrammar-core"), config_1 = require("../animation/config");
|
|
8
8
|
|
|
9
9
|
class Arc3dMark extends arc_1.BaseArcMark {
|
|
10
10
|
constructor() {
|
|
@@ -13,4 +13,11 @@ class Arc3dMark extends arc_1.BaseArcMark {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
exports.Arc3dMark = Arc3dMark, Arc3dMark.type = type_1.MarkTypeEnum.arc3d;
|
|
16
|
+
|
|
17
|
+
const registerArc3dMark = () => {
|
|
18
|
+
(0, config_1.registerVGrammarArcAnimation)(), (0, vgrammar_core_1.registerArc3dGraphic)(),
|
|
19
|
+
factory_1.Factory.registerMark(Arc3dMark.type, Arc3dMark);
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
exports.registerArc3dMark = registerArc3dMark;
|
|
16
23
|
//# sourceMappingURL=arc-3d.js.map
|
package/cjs/mark/arc-3d.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mark/arc-3d.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"sources":["../src/mark/arc-3d.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAE5C,+BAAoC;AAEpC,2CAAgD;AAChD,2DAA+D;AAC/D,gDAAmE;AAInE,MAAa,SAAU,SAAQ,iBAA2B;IAA1D;;QAEW,SAAI,GAAiB,SAAS,CAAC,IAAI,CAAC;IAC/C,CAAC;;AAHD,8BAGC;AAFiB,cAAI,GAAG,mBAAY,CAAC,KAAK,CAAC;AAIrC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,IAAA,qCAA4B,GAAE,CAAC;IAC/B,IAAA,oCAAoB,GAAE,CAAC;IACvB,iBAAO,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAClD,CAAC,CAAC;AAJW,QAAA,iBAAiB,qBAI5B","file":"arc-3d.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { IArc3dMarkSpec } from '../typings';\nimport { BaseArcMark } from './arc';\nimport type { IMarkRaw } from './interface';\nimport { MarkTypeEnum } from './interface/type';\nimport { registerArc3dGraphic } from '@visactor/vgrammar-core';\nimport { registerVGrammarArcAnimation } from '../animation/config';\n\nexport type IArc3dMark = IMarkRaw<IArc3dMarkSpec>;\n\nexport class Arc3dMark extends BaseArcMark<IArc3dMarkSpec> implements IArc3dMark {\n static readonly type = MarkTypeEnum.arc3d;\n readonly type: MarkTypeEnum = Arc3dMark.type;\n}\n\nexport const registerArc3dMark = () => {\n registerVGrammarArcAnimation();\n registerArc3dGraphic();\n Factory.registerMark(Arc3dMark.type, Arc3dMark);\n};\n"]}
|
package/cjs/mark/arc.d.ts
CHANGED
package/cjs/mark/arc.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: !0
|
|
5
|
-
}), exports.ArcMark = exports.BaseArcMark = void 0;
|
|
5
|
+
}), exports.registerArcMark = exports.ArcMark = exports.BaseArcMark = void 0;
|
|
6
6
|
|
|
7
|
-
const constant_1 = require("../constant"), math_1 = require("../util/math"), base_mark_1 = require("./base/base-mark"), type_1 = require("./interface/type");
|
|
7
|
+
const factory_1 = require("./../core/factory"), constant_1 = require("../constant"), math_1 = require("../util/math"), base_mark_1 = require("./base/base-mark"), type_1 = require("./interface/type"), vgrammar_core_1 = require("@visactor/vgrammar-core"), config_1 = require("../animation/config");
|
|
8
8
|
|
|
9
9
|
class BaseArcMark extends base_mark_1.BaseMark {
|
|
10
10
|
constructor(name, option) {
|
|
@@ -43,4 +43,11 @@ class ArcMark extends BaseArcMark {
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
exports.ArcMark = ArcMark, ArcMark.type = type_1.MarkTypeEnum.arc;
|
|
46
|
+
|
|
47
|
+
const registerArcMark = () => {
|
|
48
|
+
(0, vgrammar_core_1.registerArcGraphic)(), (0, config_1.registerVGrammarArcAnimation)(),
|
|
49
|
+
factory_1.Factory.registerMark(ArcMark.type, ArcMark);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
exports.registerArcMark = registerArcMark;
|
|
46
53
|
//# sourceMappingURL=arc.js.map
|
package/cjs/mark/arc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mark/arc.ts"],"names":[],"mappings":";;;AAAA,0CAA+C;AAE/C,uCAAgD;AAEhD,gDAA4C;AAG5C,2CAAgD;
|
|
1
|
+
{"version":3,"sources":["../src/mark/arc.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAC5C,0CAA+C;AAE/C,uCAAgD;AAEhD,gDAA4C;AAG5C,2CAAgD;AAChD,2DAA6D;AAC7D,gDAAmE;AAInE,MAAa,WAAoC,SAAQ,oBAAW;IAKlE,YAAY,IAAY,EAAE,MAAmB;QAC3C,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QALb,SAAI,GAAiB,OAAO,CAAC,IAAI,CAAC;QAE3C,sBAAiB,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QA2BrD,uBAAkB,GAAG,CAC7B,GAAW,EACX,KAAY,EACZ,SAAyB,QAAQ,EACjC,GAAQ,EACR,UAAkB,EACV,EAAE;;YACV,MAAM,MAAM,GAAG,MAAC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAY,mCAAI,CAAC,CAAC;YACtF,OAAO,UAAU,GAAG,MAAM,CAAC;QAC7B,CAAC,CAAC;QAEQ,kBAAa,GAAG,CACxB,GAAc,EACd,KAAY,EACZ,SAAyB,QAAQ,EACjC,GAAQ,EACR,MAAc,EACd,EAAE;YACF,MAAM,MAAM,GAAG,IAAA,uBAAgB,EAAC;gBAC9B,KAAK,EAAE,KAAK,CAAC,2BAAgB,CAAC;gBAC9B,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAW;aACxE,CAAC,CAAC;YACH,OAAO,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC;QA5CA,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,IAAI,CAAC,aAA8B,CAAC;QAC/D,IAAI,CAAC,iBAAiB,CAAC,CAAC,GAAG,IAAI,CAAC,aAA8B,CAAC;QAC/D,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAmC,CAAC;QAE9E,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAG,CAAC,aAAa,CAAC,CAAC;IACxD,CAAC;IAES,gBAAgB;QACxB,MAAM,YAAY,mCACb,KAAK,CAAC,gBAAgB,EAAE,KAC3B,UAAU,EAAE,CAAC,EACb,QAAQ,EAAE,CAAC,EACX,WAAW,EAAE,CAAC,EACd,WAAW,EAAE,CAAC,EACd,YAAY,EAAE,CAAC,EACf,SAAS,EAAE,CAAC,GACb,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;CA0BF;AAtDD,kCAsDC;AAED,MAAa,OAAQ,SAAQ,WAAyB;IAAtD;;QAEW,SAAI,GAAiB,OAAO,CAAC,IAAI,CAAC;IAC7C,CAAC;;AAHD,0BAGC;AAFiB,YAAI,GAAG,mBAAY,CAAC,GAAG,CAAC;AAInC,MAAM,eAAe,GAAG,GAAG,EAAE;IAClC,IAAA,kCAAkB,GAAE,CAAC;IACrB,IAAA,qCAA4B,GAAE,CAAC;IAC/B,iBAAO,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC,CAAC;AAJW,QAAA,eAAe,mBAI1B","file":"arc.js","sourcesContent":["import { Factory } from './../core/factory';\nimport { ARC_MIDDLE_ANGLE } from '../constant';\nimport type { IArcMarkSpec, Datum, StateValueType } from '../typings';\nimport { polarToCartesian } from '../util/math';\nimport type { ExChannelCall } from './base/base-mark';\nimport { BaseMark } from './base/base-mark';\nimport type { IMarkOption, IMarkRaw, IMarkStyle } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\nimport { registerArcGraphic } from '@visactor/vgrammar-core';\nimport { registerVGrammarArcAnimation } from '../animation/config';\n\nexport type IArcMark = IMarkRaw<IArcMarkSpec>;\n\nexport class BaseArcMark<T extends IArcMarkSpec> extends BaseMark<T> implements IMarkRaw<T> {\n readonly type: MarkTypeEnum = ArcMark.type;\n\n _unCompileChannel = { centerOffset: true, radiusOffset: true };\n\n constructor(name: string, option: IMarkOption) {\n super(name, option);\n\n // because of set object.function, this setting should be write after object init\n this._computeExChannel.x = this.computeCenter as ExChannelCall;\n this._computeExChannel.y = this.computeCenter as ExChannelCall;\n this._computeExChannel.outerRadius = this.computeOuterRadius as ExChannelCall;\n\n this._extensionChannel.centerOffset = ['x', 'y'];\n this._extensionChannel.radiusOffset = ['outerRadius'];\n }\n\n protected _getDefaultStyle() {\n const defaultStyle: IMarkStyle<T> = {\n ...super._getDefaultStyle(),\n startAngle: 0,\n endAngle: 0,\n outerRadius: 0,\n innerRadius: 0,\n cornerRadius: 0,\n lineWidth: 0\n };\n return defaultStyle;\n }\n\n protected computeOuterRadius = (\n key: string,\n datum: Datum,\n states: StateValueType = 'normal',\n opt: any,\n superValue: number\n ): number => {\n const offset = (this.getAttribute('radiusOffset', datum, states, opt) as number) ?? 0;\n return superValue + offset;\n };\n\n protected computeCenter = (\n key: 'x' | 'y',\n datum: Datum,\n states: StateValueType = 'normal',\n opt: any,\n center: number\n ) => {\n const offset = polarToCartesian({\n angle: datum[ARC_MIDDLE_ANGLE],\n radius: this.getAttribute('centerOffset', datum, states, opt) as number\n });\n return center + offset[key];\n };\n}\n\nexport class ArcMark extends BaseArcMark<IArcMarkSpec> implements IArcMark {\n static readonly type = MarkTypeEnum.arc;\n readonly type: MarkTypeEnum = ArcMark.type;\n}\n\nexport const registerArcMark = () => {\n registerArcGraphic();\n registerVGrammarArcAnimation();\n Factory.registerMark(ArcMark.type, ArcMark);\n};\n"]}
|
package/cjs/mark/area.d.ts
CHANGED
package/cjs/mark/area.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: !0
|
|
5
|
-
}), exports.AreaMark = void 0;
|
|
5
|
+
}), exports.registerAreaMark = exports.AreaMark = void 0;
|
|
6
6
|
|
|
7
|
-
const base_line_1 = require("./base/base-line"), type_1 = require("./interface/type");
|
|
7
|
+
const factory_1 = require("./../core/factory"), base_line_1 = require("./base/base-line"), type_1 = require("./interface/type"), vgrammar_core_1 = require("@visactor/vgrammar-core"), config_1 = require("../animation/config");
|
|
8
8
|
|
|
9
9
|
class AreaMark extends base_line_1.BaseLineMark {
|
|
10
10
|
constructor() {
|
|
@@ -21,4 +21,11 @@ class AreaMark extends base_line_1.BaseLineMark {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
exports.AreaMark = AreaMark, AreaMark.type = type_1.MarkTypeEnum.area;
|
|
24
|
+
|
|
25
|
+
const registerAreaMark = () => {
|
|
26
|
+
factory_1.Factory.registerMark(AreaMark.type, AreaMark), (0, vgrammar_core_1.registerAreaGraphic)(),
|
|
27
|
+
(0, config_1.registerVGrammarLineOrAreaAnimation)();
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
exports.registerAreaMark = registerAreaMark;
|
|
24
31
|
//# sourceMappingURL=area.js.map
|
package/cjs/mark/area.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mark/area.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"sources":["../src/mark/area.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAE5C,gDAAgD;AAGhD,2CAAgD;AAChD,2DAA8D;AAC9D,gDAA0E;AAI1E,MAAa,QAAS,SAAQ,wBAA2B;IAAzD;;QAEW,SAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAahC,CAAC;IAXW,gBAAgB;QACxB,MAAM,YAAY,mCACb,KAAK,CAAC,gBAAgB,EAAE,KAC3B,SAAS,EAAE,CAAC,GACb,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;IAES,oBAAoB;QAC5B,OAAO,EAAE,CAAC;IACZ,CAAC;;AAdH,4BAeC;AAdiB,aAAI,GAAG,mBAAY,CAAC,IAAI,CAAC;AAgBpC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,iBAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,IAAA,mCAAmB,GAAE,CAAC;IACtB,IAAA,4CAAmC,GAAE,CAAC;AACxC,CAAC,CAAC;AAJW,QAAA,gBAAgB,oBAI3B","file":"area.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { IAreaMarkSpec } from '../typings/visual';\nimport { BaseLineMark } from './base/base-line';\nimport type { IMarkRaw, IMarkStyle } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\nimport { registerAreaGraphic } from '@visactor/vgrammar-core';\nimport { registerVGrammarLineOrAreaAnimation } from '../animation/config';\n\nexport type IAreaMark = IMarkRaw<IAreaMarkSpec>;\n\nexport class AreaMark extends BaseLineMark<IAreaMarkSpec> implements IAreaMark {\n static readonly type = MarkTypeEnum.area;\n readonly type = AreaMark.type;\n\n protected _getDefaultStyle() {\n const defaultStyle: IMarkStyle<IAreaMarkSpec> = {\n ...super._getDefaultStyle(),\n lineWidth: 0\n };\n return defaultStyle;\n }\n\n protected _getIgnoreAttributes(): string[] {\n return [];\n }\n}\n\nexport const registerAreaMark = () => {\n Factory.registerMark(AreaMark.type, AreaMark);\n registerAreaGraphic();\n registerVGrammarLineOrAreaAnimation();\n};\n"]}
|
package/cjs/mark/box-plot.d.ts
CHANGED
package/cjs/mark/box-plot.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: !0
|
|
5
|
-
}), exports.BoxPlotMark = void 0;
|
|
5
|
+
}), exports.registerBoxPlotMark = exports.BoxPlotMark = void 0;
|
|
6
6
|
|
|
7
|
-
const base_mark_1 = require("./base/base-mark"), vgrammar_core_1 = require("@visactor/vgrammar-core"), type_1 = require("./interface/type"), BOX_PLOT_GLYPH_TYPE = "boxplot", BAR_BOX_PLOT_GLYPH_TYPE = "barBoxplot";
|
|
7
|
+
const factory_1 = require("./../core/factory"), base_mark_1 = require("./base/base-mark"), vgrammar_core_1 = require("@visactor/vgrammar-core"), type_1 = require("./interface/type"), BOX_PLOT_GLYPH_TYPE = "boxplot", BAR_BOX_PLOT_GLYPH_TYPE = "barBoxplot";
|
|
8
8
|
|
|
9
9
|
class BoxPlotMark extends base_mark_1.BaseMark {
|
|
10
10
|
constructor() {
|
|
@@ -19,9 +19,7 @@ class BoxPlotMark extends base_mark_1.BaseMark {
|
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
21
|
_initProduct(group) {
|
|
22
|
-
const shaftShape = this.getStyle("shaftShape");
|
|
23
|
-
"bar" === shaftShape ? (0, vgrammar_core_1.registerBarBoxplotGlyph)() : (0, vgrammar_core_1.registerBoxplotGlyph)();
|
|
24
|
-
const view = this.getVGrammarView(), id = this.getProductId(), glyphType = "bar" === shaftShape ? "barBoxplot" : "boxplot", direction = this.getStyle("direction");
|
|
22
|
+
const shaftShape = this.getStyle("shaftShape"), view = this.getVGrammarView(), id = this.getProductId(), glyphType = "bar" === shaftShape ? "barBoxplot" : "boxplot", direction = this.getStyle("direction");
|
|
25
23
|
this._product = view.glyph(glyphType, null != group ? group : view.rootMark).id(id).configureGlyph({
|
|
26
24
|
direction: direction
|
|
27
25
|
}), this._compiledProductId = id;
|
|
@@ -29,4 +27,11 @@ class BoxPlotMark extends base_mark_1.BaseMark {
|
|
|
29
27
|
}
|
|
30
28
|
|
|
31
29
|
exports.BoxPlotMark = BoxPlotMark, BoxPlotMark.type = type_1.MarkTypeEnum.boxPlot;
|
|
30
|
+
|
|
31
|
+
const registerBoxPlotMark = () => {
|
|
32
|
+
factory_1.Factory.registerMark(BoxPlotMark.type, BoxPlotMark), (0, vgrammar_core_1.registerBoxplotGlyph)(),
|
|
33
|
+
(0, vgrammar_core_1.registerBarBoxplotGlyph)();
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
exports.registerBoxPlotMark = registerBoxPlotMark;
|
|
32
37
|
//# sourceMappingURL=box-plot.js.map
|
package/cjs/mark/box-plot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mark/box-plot.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"sources":["../src/mark/box-plot.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAE5C,gDAA4C;AAG5C,2DAAwF;AAGxF,2CAAgD;AAGhD,MAAM,mBAAmB,GAAG,SAAS,CAAC;AACtC,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAE7C,MAAa,WAAY,SAAQ,oBAA0B;IAA3D;;QAEW,SAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IA2BnC,CAAC;IAzBW,gBAAgB;QACxB,MAAM,YAAY,mCACb,KAAK,CAAC,gBAAgB,EAAE,KAC3B,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,EAAE,EACZ,UAAU,EAAE,EAAE,EACd,UAAU,EAAE,MAAM,GACnB,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;IAES,YAAY,CAAC,KAA2B;QAChD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAGpC,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACvF,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI;aACjB,KAAK,CAAC,SAAS,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,CAAC,QAAQ,CAAC;aACxC,EAAE,CAAC,EAAE,CAAC;aACN,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;IAC/B,CAAC;;AA5BH,kCA6BC;AA5BiB,gBAAI,GAAG,mBAAY,CAAC,OAAO,CAAC;AA8BvC,MAAM,mBAAmB,GAAG,GAAG,EAAE;IACtC,iBAAO,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACpD,IAAA,oCAAoB,GAAE,CAAC;IACvB,IAAA,uCAAuB,GAAE,CAAC;AAC5B,CAAC,CAAC;AAJW,QAAA,mBAAmB,uBAI9B","file":"box-plot.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { IBoxPlotMarkSpec } from '../typings/visual';\nimport { BaseMark } from './base/base-mark';\nimport type { IGroupMark } from '@visactor/vgrammar-core';\n// eslint-disable-next-line no-duplicate-imports\nimport { registerBarBoxplotGlyph, registerBoxplotGlyph } from '@visactor/vgrammar-core';\nimport type { IMarkRaw, IMarkStyle } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\nexport type IBoxPlotMark = IMarkRaw<IBoxPlotMarkSpec>;\n\nconst BOX_PLOT_GLYPH_TYPE = 'boxplot';\nconst BAR_BOX_PLOT_GLYPH_TYPE = 'barBoxplot';\n\nexport class BoxPlotMark extends BaseMark<IBoxPlotMarkSpec> implements IBoxPlotMark {\n static readonly type = MarkTypeEnum.boxPlot;\n readonly type = BoxPlotMark.type;\n\n protected _getDefaultStyle() {\n const defaultStyle: IMarkStyle<IBoxPlotMarkSpec> = {\n ...super._getDefaultStyle(),\n lineWidth: 2,\n boxWidth: 30,\n shaftWidth: 20,\n shaftShape: 'line'\n };\n return defaultStyle;\n }\n /** 创建语法元素对象 */\n protected _initProduct(group?: string | IGroupMark) {\n const shaftShape = this.getStyle('shaftShape');\n const view = this.getVGrammarView();\n\n // 声明语法元素\n const id = this.getProductId();\n const glyphType = shaftShape === 'bar' ? BAR_BOX_PLOT_GLYPH_TYPE : BOX_PLOT_GLYPH_TYPE;\n const direction = this.getStyle('direction');\n this._product = view\n .glyph(glyphType, group ?? view.rootMark)\n .id(id)\n .configureGlyph({ direction });\n this._compiledProductId = id;\n }\n}\n\nexport const registerBoxPlotMark = () => {\n Factory.registerMark(BoxPlotMark.type, BoxPlotMark);\n registerBoxplotGlyph();\n registerBarBoxplotGlyph();\n};\n"]}
|
package/cjs/mark/cell.d.ts
CHANGED
package/cjs/mark/cell.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: !0
|
|
5
|
-
}), exports.CellMark = void 0;
|
|
5
|
+
}), exports.registerCellMark = exports.CellMark = void 0;
|
|
6
6
|
|
|
7
|
-
const type_1 = require("./interface/type"), symbol_1 = require("./symbol");
|
|
7
|
+
const factory_1 = require("./../core/factory"), type_1 = require("./interface/type"), symbol_1 = require("./symbol"), vgrammar_core_1 = require("@visactor/vgrammar-core");
|
|
8
8
|
|
|
9
9
|
class CellMark extends symbol_1.BaseSymbolMark {
|
|
10
10
|
constructor() {
|
|
@@ -18,4 +18,11 @@ class CellMark extends symbol_1.BaseSymbolMark {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
exports.CellMark = CellMark, CellMark.type = type_1.MarkTypeEnum.cell;
|
|
21
|
+
|
|
22
|
+
const registerCellMark = () => {
|
|
23
|
+
factory_1.Factory.registerMark(CellMark.type, CellMark), (0, vgrammar_core_1.registerCellGraphic)(),
|
|
24
|
+
(0, vgrammar_core_1.registerCellMark)();
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
exports.registerCellMark = registerCellMark;
|
|
21
28
|
//# sourceMappingURL=cell.js.map
|
package/cjs/mark/cell.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mark/cell.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"sources":["../src/mark/cell.ts"],"names":[],"mappings":";;;AAAA,+CAA4C;AAI5C,2CAAgD;AAChD,qCAA0C;AAC1C,2DAA4G;AAI5G,MAAa,QAAS,SAAQ,uBAA6B;IAA3D;;QAEW,SAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAShC,CAAC;IAPW,gBAAgB;QACxB,MAAM,YAAY,mCACb,KAAK,CAAC,gBAAgB,EAAE,KAC3B,OAAO,EAAE,CAAC,GACX,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC;;AAVH,4BAWC;AAViB,aAAI,GAAG,mBAAY,CAAC,IAAI,CAAC;AAYpC,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,iBAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9C,IAAA,mCAAmB,GAAE,CAAC;IACtB,IAAA,gCAAwB,GAAE,CAAC;AAC7B,CAAC,CAAC;AAJW,QAAA,gBAAgB,oBAI3B","file":"cell.js","sourcesContent":["import { Factory } from './../core/factory';\nimport type { ICellMarkSpec } from '../typings';\nimport type { IMarkRaw, IMarkStyle } from './interface';\n// eslint-disable-next-line no-duplicate-imports\nimport { MarkTypeEnum } from './interface/type';\nimport { BaseSymbolMark } from './symbol';\nimport { registerCellGraphic, registerCellMark as registerVgrammarCellMark } from '@visactor/vgrammar-core';\n\nexport type ICellMark = IMarkRaw<ICellMarkSpec>;\n\nexport class CellMark extends BaseSymbolMark<ICellMarkSpec> implements ICellMark {\n static readonly type = MarkTypeEnum.cell;\n readonly type = CellMark.type;\n\n protected _getDefaultStyle() {\n const defaultStyle: IMarkStyle<ICellMarkSpec> = {\n ...super._getDefaultStyle(),\n padding: 0\n };\n return defaultStyle;\n }\n}\n\nexport const registerCellMark = () => {\n Factory.registerMark(CellMark.type, CellMark);\n registerCellGraphic();\n registerVgrammarCellMark();\n};\n"]}
|
package/cjs/mark/component.d.ts
CHANGED
package/cjs/mark/component.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: !0
|
|
5
|
-
}), exports.ComponentMark = void 0;
|
|
5
|
+
}), exports.registerComponentMark = exports.ComponentMark = void 0;
|
|
6
6
|
|
|
7
|
-
const vgrammar_core_1 = require("@visactor/vgrammar-core"), base_mark_1 = require("./base/base-mark"), type_1 = require("./interface/type");
|
|
7
|
+
const factory_1 = require("./../core/factory"), vgrammar_core_1 = require("@visactor/vgrammar-core"), base_mark_1 = require("./base/base-mark"), type_1 = require("./interface/type");
|
|
8
8
|
|
|
9
9
|
class ComponentMark extends base_mark_1.BaseMark {
|
|
10
10
|
constructor(name, option) {
|
|
@@ -21,4 +21,10 @@ class ComponentMark extends base_mark_1.BaseMark {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
exports.ComponentMark = ComponentMark, ComponentMark.type = type_1.MarkTypeEnum.component;
|
|
24
|
+
|
|
25
|
+
const registerComponentMark = () => {
|
|
26
|
+
factory_1.Factory.registerMark(ComponentMark.type, ComponentMark);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
exports.registerComponentMark = registerComponentMark;
|
|
24
30
|
//# sourceMappingURL=component.js.map
|