@visactor/vchart 1.10.0-alpha.4 → 1.10.0-alpha.5
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 +32729 -32038
- package/build/index.min.js +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/cjs/animation/utils.js +5 -5
- package/cjs/animation/utils.js.map +1 -1
- package/cjs/chart/base/base-chart-transformer.js +7 -9
- package/cjs/chart/base/base-chart-transformer.js.map +1 -1
- package/cjs/chart/base/base-chart.d.ts +1 -1
- package/cjs/chart/base/base-chart.js.map +1 -1
- package/cjs/chart/interface/chart.d.ts +1 -1
- package/cjs/chart/interface/chart.js.map +1 -1
- package/cjs/chart/progress/circular/circular-progress-transformer.js +2 -0
- package/cjs/chart/progress/circular/circular-progress-transformer.js.map +1 -1
- package/cjs/compile/compiler.d.ts +1 -1
- package/cjs/compile/compiler.js +3 -3
- package/cjs/compile/compiler.js.map +1 -1
- package/cjs/compile/mark/interface.js.map +1 -1
- package/cjs/component/axis/base-axis.d.ts +9 -6
- package/cjs/component/axis/base-axis.js +37 -6
- package/cjs/component/axis/base-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/axis.d.ts +1 -5
- package/cjs/component/axis/cartesian/axis.js +9 -31
- package/cjs/component/axis/cartesian/axis.js.map +1 -1
- package/cjs/component/axis/cartesian/time-axis.d.ts +1 -1
- package/cjs/component/axis/cartesian/time-axis.js +3 -3
- package/cjs/component/axis/cartesian/time-axis.js.map +1 -1
- package/cjs/component/axis/cartesian/util/index.d.ts +0 -1
- package/cjs/component/axis/cartesian/util/index.js +1 -1
- package/cjs/component/axis/cartesian/util/index.js.map +1 -1
- package/cjs/component/axis/interface/common.d.ts +2 -1
- package/cjs/component/axis/interface/common.js.map +1 -1
- package/cjs/component/axis/interface/spec.d.ts +2 -0
- package/cjs/component/axis/interface/spec.js.map +1 -1
- package/cjs/component/axis/polar/axis.d.ts +1 -5
- package/cjs/component/axis/polar/axis.js +5 -23
- package/cjs/component/axis/polar/axis.js.map +1 -1
- package/cjs/component/base/util.d.ts +5 -0
- package/cjs/component/base/util.js +24 -16
- package/cjs/component/base/util.js.map +1 -1
- package/cjs/component/crosshair/base.d.ts +4 -1
- package/cjs/component/crosshair/base.js +1 -10
- package/cjs/component/crosshair/base.js.map +1 -1
- package/cjs/component/crosshair/cartesian.d.ts +1 -7
- package/cjs/component/crosshair/cartesian.js +17 -208
- package/cjs/component/crosshair/cartesian.js.map +1 -1
- package/cjs/component/crosshair/config.js.map +1 -1
- package/cjs/component/crosshair/interface/cartesian.d.ts +46 -0
- package/cjs/component/crosshair/interface/cartesian.js +6 -0
- package/cjs/component/crosshair/interface/cartesian.js.map +1 -0
- package/cjs/component/crosshair/interface/common.d.ts +7 -0
- package/cjs/component/crosshair/interface/common.js +6 -0
- package/cjs/component/crosshair/interface/common.js.map +1 -0
- package/cjs/component/crosshair/interface/index.d.ts +3 -0
- package/cjs/component/crosshair/interface/index.js +3 -1
- package/cjs/component/crosshair/interface/index.js.map +1 -1
- package/cjs/component/crosshair/interface/polar.d.ts +23 -0
- package/cjs/component/crosshair/interface/polar.js +6 -0
- package/cjs/component/crosshair/interface/polar.js.map +1 -0
- package/cjs/component/crosshair/interface/spec.d.ts +1 -0
- package/cjs/component/crosshair/interface/spec.js.map +1 -1
- package/cjs/component/crosshair/polar.d.ts +2 -2
- package/cjs/component/crosshair/polar.js +17 -114
- package/cjs/component/crosshair/polar.js.map +1 -1
- package/cjs/component/crosshair/utils/cartesian.d.ts +32 -0
- package/cjs/component/crosshair/utils/cartesian.js +238 -0
- package/cjs/component/crosshair/utils/cartesian.js.map +1 -0
- package/{esm/component/crosshair/util.d.ts → cjs/component/crosshair/utils/common.d.ts} +3 -3
- package/cjs/component/crosshair/{util.js → utils/common.js} +2 -2
- package/cjs/component/crosshair/utils/common.js.map +1 -0
- package/cjs/component/crosshair/utils/index.d.ts +1 -0
- package/cjs/component/crosshair/utils/index.js +21 -0
- package/cjs/component/crosshair/utils/index.js.map +1 -0
- package/cjs/component/crosshair/utils/polar.d.ts +37 -0
- package/cjs/component/crosshair/utils/polar.js +133 -0
- package/cjs/component/crosshair/utils/polar.js.map +1 -0
- 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-zoom/data-zoom.d.ts +1 -0
- package/cjs/component/data-zoom/data-zoom/data-zoom.js +10 -3
- package/cjs/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/cjs/component/data-zoom/data-zoom/interface.d.ts +4 -5
- package/cjs/component/data-zoom/data-zoom/interface.js.map +1 -1
- package/cjs/component/data-zoom/scroll-bar/interface.d.ts +2 -4
- package/cjs/component/data-zoom/scroll-bar/interface.js.map +1 -1
- package/cjs/component/data-zoom/util.d.ts +0 -4
- package/cjs/component/data-zoom/util.js +2 -10
- package/cjs/component/data-zoom/util.js.map +1 -1
- package/cjs/component/index.d.ts +1 -0
- package/cjs/component/index.js +16 -1
- package/cjs/component/index.js.map +1 -1
- package/cjs/component/interface/theme.d.ts +8 -0
- package/cjs/component/interface/theme.js.map +1 -1
- package/cjs/component/label/interface.d.ts +1 -1
- package/cjs/component/label/interface.js.map +1 -1
- package/cjs/component/label/util.js +4 -4
- package/cjs/component/label/util.js.map +1 -1
- package/cjs/component/legend/continuous/interface.d.ts +6 -12
- package/cjs/component/legend/continuous/interface.js.map +1 -1
- package/cjs/component/legend/discrete/interface.d.ts +17 -4
- package/cjs/component/legend/discrete/interface.js.map +1 -1
- package/cjs/component/legend/discrete/legend.d.ts +1 -0
- package/cjs/component/legend/discrete/legend.js +11 -2
- package/cjs/component/legend/discrete/legend.js.map +1 -1
- package/cjs/component/legend/discrete/util.js +6 -4
- package/cjs/component/legend/discrete/util.js.map +1 -1
- package/cjs/component/legend/util.d.ts +1 -2
- package/cjs/component/legend/util.js +2 -6
- package/cjs/component/legend/util.js.map +1 -1
- package/cjs/component/player/interface/theme.d.ts +1 -1
- package/cjs/component/player/interface/theme.js.map +1 -1
- package/cjs/component/player/utils/transform.js.map +1 -1
- package/cjs/component/tooltip/interface/common.d.ts +2 -2
- package/cjs/component/tooltip/interface/common.js.map +1 -1
- package/cjs/component/tooltip/interface/event.d.ts +0 -2
- package/cjs/component/tooltip/interface/event.js.map +1 -1
- package/cjs/component/tooltip/interface/index.d.ts +1 -0
- package/cjs/component/tooltip/interface/index.js +1 -1
- package/cjs/component/tooltip/interface/index.js.map +1 -1
- package/cjs/component/tooltip/interface/spec.d.ts +2 -2
- package/cjs/component/tooltip/interface/spec.js.map +1 -1
- package/cjs/component/tooltip/interface/theme.d.ts +3 -3
- package/cjs/component/tooltip/interface/theme.js.map +1 -1
- package/cjs/component/tooltip/processor/dimension-tooltip.js +2 -1
- package/cjs/component/tooltip/processor/dimension-tooltip.js.map +1 -1
- package/cjs/component/tooltip/processor/mark-tooltip.js +2 -1
- package/cjs/component/tooltip/processor/mark-tooltip.js.map +1 -1
- package/cjs/component/tooltip/tooltip.d.ts +3 -3
- package/cjs/component/tooltip/tooltip.js +7 -5
- package/cjs/component/tooltip/tooltip.js.map +1 -1
- package/cjs/component/tooltip/utils/show-tooltip.js +3 -0
- package/cjs/component/tooltip/utils/show-tooltip.js.map +1 -1
- package/cjs/component/util.d.ts +8 -0
- package/cjs/component/util.js +15 -3
- package/cjs/component/util.js.map +1 -1
- package/cjs/core/factory.d.ts +3 -0
- package/cjs/core/factory.js +6 -0
- package/cjs/core/factory.js.map +1 -1
- package/cjs/core/index.d.ts +2 -1
- package/cjs/core/index.js +3 -2
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/interface.d.ts +1 -1
- package/cjs/core/interface.js.map +1 -1
- package/cjs/core/vchart.d.ts +2 -1
- package/cjs/core/vchart.js +2 -2
- package/cjs/core/vchart.js.map +1 -1
- package/cjs/data/initialize.js.map +1 -1
- package/cjs/event/events/dimension/interface.d.ts +3 -2
- package/cjs/event/events/dimension/interface.js.map +1 -1
- package/cjs/event/events/dimension/util/cartesian.js +1 -0
- package/cjs/event/events/dimension/util/cartesian.js.map +1 -1
- package/cjs/event/events/dimension/util/polar.js +2 -0
- package/cjs/event/events/dimension/util/polar.js.map +1 -1
- package/cjs/index-lark.js +2 -2
- package/cjs/index-lark.js.map +1 -1
- package/cjs/index-wx-simple.js +2 -2
- package/cjs/index-wx-simple.js.map +1 -1
- package/cjs/index-wx.js +2 -2
- package/cjs/index-wx.js.map +1 -1
- package/cjs/index.d.ts +1 -0
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/mark/arc.js +3 -1
- package/cjs/mark/arc.js.map +1 -1
- package/cjs/mark/base/base-mark.d.ts +3 -3
- package/cjs/mark/base/base-mark.js +20 -13
- package/cjs/mark/base/base-mark.js.map +1 -1
- package/cjs/mark/index.d.ts +2 -3
- package/cjs/mark/index.js +1 -10
- package/cjs/mark/index.js.map +1 -1
- package/cjs/mark/interface/type.d.ts +0 -1
- package/cjs/mark/interface/type.js +2 -3
- package/cjs/mark/interface/type.js.map +1 -1
- package/cjs/plugin/chart/formatter/formatter.d.ts +28 -0
- package/cjs/plugin/chart/formatter/formatter.js +74 -0
- package/cjs/plugin/chart/formatter/formatter.js.map +1 -0
- package/cjs/plugin/chart/formatter/index.d.ts +1 -0
- package/cjs/plugin/chart/formatter/index.js +21 -0
- package/cjs/plugin/chart/formatter/index.js.map +1 -0
- package/cjs/plugin/components/index.d.ts +2 -5
- package/cjs/plugin/components/index.js +16 -7
- package/cjs/plugin/components/index.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/base.d.ts +6 -6
- package/cjs/plugin/components/tooltip-handler/base.js +112 -51
- package/cjs/plugin/components/tooltip-handler/base.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.d.ts +2 -2
- package/cjs/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/constants.d.ts +2 -2
- package/cjs/plugin/components/tooltip-handler/constants.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.d.ts +8 -4
- package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +31 -9
- package/cjs/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/dom/model/base-tooltip-model.d.ts +2 -2
- package/cjs/plugin/components/tooltip-handler/dom/model/base-tooltip-model.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/dom/model/content-column-model.d.ts +2 -2
- package/cjs/plugin/components/tooltip-handler/dom/model/content-column-model.js +2 -3
- package/cjs/plugin/components/tooltip-handler/dom/model/content-column-model.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/dom/model/interface.d.ts +2 -2
- package/cjs/plugin/components/tooltip-handler/dom/model/interface.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/attribute.d.ts +2 -2
- package/cjs/plugin/components/tooltip-handler/utils/attribute.js +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/common.d.ts +3 -3
- package/cjs/plugin/components/tooltip-handler/utils/common.js +9 -3
- package/cjs/plugin/components/tooltip-handler/utils/common.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/compose.d.ts +2 -2
- package/cjs/plugin/components/tooltip-handler/utils/compose.js +9 -8
- package/cjs/plugin/components/tooltip-handler/utils/compose.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/get-spec.js +12 -9
- package/cjs/plugin/components/tooltip-handler/utils/get-spec.js.map +1 -1
- package/cjs/plugin/components/tooltip-handler/utils/position.d.ts +18 -3
- package/cjs/plugin/components/tooltip-handler/utils/position.js +49 -8
- package/cjs/plugin/components/tooltip-handler/utils/position.js.map +1 -1
- package/cjs/plugin/index.d.ts +1 -0
- package/cjs/plugin/index.js +1 -1
- package/cjs/plugin/index.js.map +1 -1
- package/cjs/series/base/base-series.js +2 -1
- package/cjs/series/base/base-series.js.map +1 -1
- package/cjs/series/base/tooltip-helper.d.ts +3 -3
- package/cjs/series/base/tooltip-helper.js.map +1 -1
- package/cjs/series/dot/tooltip-helper.js +2 -2
- package/cjs/series/dot/tooltip-helper.js.map +1 -1
- package/cjs/series/gauge/constant.js +2 -2
- package/cjs/series/gauge/constant.js.map +1 -1
- package/cjs/series/gauge/gauge.js +2 -2
- package/cjs/series/gauge/gauge.js.map +1 -1
- package/cjs/series/gauge/interface.d.ts +3 -3
- package/cjs/series/gauge/interface.js.map +1 -1
- package/cjs/series/interface/common.d.ts +1 -1
- package/cjs/series/interface/common.js.map +1 -1
- package/cjs/series/link/tooltip-helper.js +2 -2
- package/cjs/series/link/tooltip-helper.js.map +1 -1
- package/cjs/series/polar/progress-like/progress-like.js +24 -26
- package/cjs/series/polar/progress-like/progress-like.js.map +1 -1
- package/cjs/series/progress/circular/circular.js +3 -4
- package/cjs/series/progress/circular/circular.js.map +1 -1
- package/cjs/series/progress/circular/constant.js +2 -2
- package/cjs/series/progress/circular/constant.js.map +1 -1
- package/cjs/series/progress/circular/interface.d.ts +5 -5
- package/cjs/series/progress/circular/interface.js.map +1 -1
- package/cjs/series/range-area/tooltip-helper.js.map +1 -1
- package/cjs/series/sankey/tooltip-helper.js.map +1 -1
- package/cjs/series/sunburst/sunburst.d.ts +1 -1
- package/cjs/series/word-cloud/interface.js.map +1 -1
- package/cjs/theme/builtin/common/mark.js +2 -1
- package/cjs/theme/builtin/common/mark.js.map +1 -1
- package/cjs/theme/builtin/common/series/box-plot.js +5 -0
- package/cjs/theme/builtin/common/series/box-plot.js.map +1 -1
- package/cjs/theme/builtin/common/series/rangeColumn.js +1 -0
- package/cjs/theme/builtin/common/series/rangeColumn.js.map +1 -1
- package/cjs/theme/builtin/common/series/waterfall.js +4 -1
- package/cjs/theme/builtin/common/series/waterfall.js.map +1 -1
- package/cjs/typings/spec/common.d.ts +4 -3
- package/cjs/typings/spec/common.js.map +1 -1
- package/cjs/typings/tooltip/line.d.ts +5 -2
- package/cjs/typings/tooltip/line.js.map +1 -1
- package/cjs/typings/tooltip/position.d.ts +21 -10
- package/cjs/typings/tooltip/position.js.map +1 -1
- package/cjs/typings/tooltip/shape.d.ts +2 -2
- package/cjs/typings/tooltip/shape.js.map +1 -1
- package/cjs/typings/tooltip/tooltip.d.ts +8 -8
- package/cjs/typings/tooltip/tooltip.js.map +1 -1
- package/cjs/typings/visual.d.ts +2 -4
- package/cjs/typings/visual.js.map +1 -1
- package/cjs/util/index.d.ts +1 -2
- package/cjs/util/index.js +2 -2
- package/cjs/util/index.js.map +1 -1
- package/cjs/vchart-all.js +2 -2
- package/cjs/vchart-all.js.map +1 -1
- package/cjs/vchart-simple.js +2 -2
- package/cjs/vchart-simple.js.map +1 -1
- package/esm/animation/utils.js +5 -5
- package/esm/animation/utils.js.map +1 -1
- package/esm/chart/base/base-chart-transformer.js +7 -9
- package/esm/chart/base/base-chart-transformer.js.map +1 -1
- package/esm/chart/base/base-chart.d.ts +1 -1
- package/esm/chart/base/base-chart.js.map +1 -1
- package/esm/chart/interface/chart.d.ts +1 -1
- package/esm/chart/interface/chart.js.map +1 -1
- package/esm/chart/progress/circular/circular-progress-transformer.js +2 -0
- package/esm/chart/progress/circular/circular-progress-transformer.js.map +1 -1
- package/esm/compile/compiler.d.ts +1 -1
- package/esm/compile/compiler.js +4 -4
- package/esm/compile/compiler.js.map +1 -1
- package/esm/compile/mark/interface.js.map +1 -1
- package/esm/component/axis/base-axis.d.ts +9 -6
- package/esm/component/axis/base-axis.js +39 -5
- package/esm/component/axis/base-axis.js.map +1 -1
- package/esm/component/axis/cartesian/axis.d.ts +1 -5
- package/esm/component/axis/cartesian/axis.js +8 -26
- package/esm/component/axis/cartesian/axis.js.map +1 -1
- package/esm/component/axis/cartesian/time-axis.d.ts +1 -1
- package/esm/component/axis/cartesian/time-axis.js +2 -2
- package/esm/component/axis/cartesian/time-axis.js.map +1 -1
- package/esm/component/axis/cartesian/util/index.d.ts +0 -1
- package/esm/component/axis/cartesian/util/index.js +0 -2
- package/esm/component/axis/cartesian/util/index.js.map +1 -1
- package/esm/component/axis/interface/common.d.ts +2 -1
- package/esm/component/axis/interface/common.js.map +1 -1
- package/esm/component/axis/interface/spec.d.ts +2 -0
- package/esm/component/axis/interface/spec.js.map +1 -1
- package/esm/component/axis/polar/axis.d.ts +1 -5
- package/esm/component/axis/polar/axis.js +5 -23
- package/esm/component/axis/polar/axis.js.map +1 -1
- package/esm/component/base/util.d.ts +5 -0
- package/esm/component/base/util.js +12 -9
- package/esm/component/base/util.js.map +1 -1
- package/esm/component/crosshair/base.d.ts +4 -1
- package/esm/component/crosshair/base.js +1 -10
- package/esm/component/crosshair/base.js.map +1 -1
- package/esm/component/crosshair/cartesian.d.ts +1 -7
- package/esm/component/crosshair/cartesian.js +20 -206
- package/esm/component/crosshair/cartesian.js.map +1 -1
- package/esm/component/crosshair/config.js.map +1 -1
- package/esm/component/crosshair/interface/cartesian.d.ts +46 -0
- package/esm/component/crosshair/interface/cartesian.js +2 -0
- package/esm/component/crosshair/interface/cartesian.js.map +1 -0
- package/esm/component/crosshair/interface/common.d.ts +7 -0
- package/esm/component/crosshair/interface/common.js +2 -0
- package/esm/component/crosshair/interface/common.js.map +1 -0
- package/esm/component/crosshair/interface/index.d.ts +3 -0
- package/esm/component/crosshair/interface/index.js +6 -0
- package/esm/component/crosshair/interface/index.js.map +1 -1
- package/esm/component/crosshair/interface/polar.d.ts +23 -0
- package/esm/component/crosshair/interface/polar.js +2 -0
- package/esm/component/crosshair/interface/polar.js.map +1 -0
- package/esm/component/crosshair/interface/spec.d.ts +1 -0
- package/esm/component/crosshair/interface/spec.js.map +1 -1
- package/esm/component/crosshair/polar.d.ts +2 -2
- package/esm/component/crosshair/polar.js +19 -116
- package/esm/component/crosshair/polar.js.map +1 -1
- package/esm/component/crosshair/utils/cartesian.d.ts +32 -0
- package/esm/component/crosshair/utils/cartesian.js +233 -0
- package/esm/component/crosshair/utils/cartesian.js.map +1 -0
- package/{cjs/component/crosshair/util.d.ts → esm/component/crosshair/utils/common.d.ts} +3 -3
- package/esm/component/crosshair/{util.js → utils/common.js} +6 -6
- package/esm/component/crosshair/utils/common.js.map +1 -0
- package/esm/component/crosshair/utils/index.d.ts +1 -0
- package/esm/component/crosshair/utils/index.js +2 -0
- package/esm/component/crosshair/utils/index.js.map +1 -0
- package/esm/component/crosshair/utils/polar.d.ts +37 -0
- package/esm/component/crosshair/utils/polar.js +125 -0
- package/esm/component/crosshair/utils/polar.js.map +1 -0
- package/esm/component/custom-mark/custom-mark.js +2 -1
- package/esm/component/custom-mark/custom-mark.js.map +1 -1
- package/esm/component/data-zoom/data-zoom/data-zoom.d.ts +1 -0
- package/esm/component/data-zoom/data-zoom/data-zoom.js +10 -2
- package/esm/component/data-zoom/data-zoom/data-zoom.js.map +1 -1
- package/esm/component/data-zoom/data-zoom/interface.d.ts +4 -5
- package/esm/component/data-zoom/data-zoom/interface.js.map +1 -1
- package/esm/component/data-zoom/scroll-bar/interface.d.ts +2 -4
- package/esm/component/data-zoom/scroll-bar/interface.js.map +1 -1
- package/esm/component/data-zoom/util.d.ts +0 -4
- package/esm/component/data-zoom/util.js +1 -10
- package/esm/component/data-zoom/util.js.map +1 -1
- package/esm/component/index.d.ts +1 -0
- package/esm/component/index.js +2 -0
- package/esm/component/index.js.map +1 -1
- package/esm/component/interface/theme.d.ts +8 -0
- package/esm/component/interface/theme.js.map +1 -1
- package/esm/component/label/interface.d.ts +1 -1
- package/esm/component/label/interface.js.map +1 -1
- package/esm/component/label/util.js +6 -3
- package/esm/component/label/util.js.map +1 -1
- package/esm/component/legend/continuous/interface.d.ts +6 -12
- package/esm/component/legend/continuous/interface.js.map +1 -1
- package/esm/component/legend/discrete/interface.d.ts +17 -4
- package/esm/component/legend/discrete/interface.js.map +1 -1
- package/esm/component/legend/discrete/legend.d.ts +1 -0
- package/esm/component/legend/discrete/legend.js +11 -1
- package/esm/component/legend/discrete/legend.js.map +1 -1
- package/esm/component/legend/discrete/util.js +3 -2
- package/esm/component/legend/discrete/util.js.map +1 -1
- package/esm/component/legend/util.d.ts +1 -2
- package/esm/component/legend/util.js +0 -4
- package/esm/component/legend/util.js.map +1 -1
- package/esm/component/player/interface/theme.d.ts +1 -1
- package/esm/component/player/interface/theme.js.map +1 -1
- package/esm/component/player/utils/transform.js.map +1 -1
- package/esm/component/tooltip/interface/common.d.ts +2 -2
- package/esm/component/tooltip/interface/common.js.map +1 -1
- package/esm/component/tooltip/interface/event.d.ts +0 -2
- package/esm/component/tooltip/interface/event.js.map +1 -1
- package/esm/component/tooltip/interface/index.d.ts +1 -0
- package/esm/component/tooltip/interface/index.js +2 -0
- package/esm/component/tooltip/interface/index.js.map +1 -1
- package/esm/component/tooltip/interface/spec.d.ts +2 -2
- package/esm/component/tooltip/interface/spec.js.map +1 -1
- package/esm/component/tooltip/interface/theme.d.ts +3 -3
- package/esm/component/tooltip/interface/theme.js.map +1 -1
- package/esm/component/tooltip/processor/dimension-tooltip.js +2 -1
- package/esm/component/tooltip/processor/dimension-tooltip.js.map +1 -1
- package/esm/component/tooltip/processor/mark-tooltip.js +2 -1
- package/esm/component/tooltip/processor/mark-tooltip.js.map +1 -1
- package/esm/component/tooltip/tooltip.d.ts +3 -3
- package/esm/component/tooltip/tooltip.js +8 -6
- package/esm/component/tooltip/tooltip.js.map +1 -1
- package/esm/component/tooltip/utils/show-tooltip.js +3 -0
- package/esm/component/tooltip/utils/show-tooltip.js.map +1 -1
- package/esm/component/util.d.ts +8 -0
- package/esm/component/util.js +14 -0
- package/esm/component/util.js.map +1 -1
- package/esm/core/factory.d.ts +3 -0
- package/esm/core/factory.js +6 -0
- package/esm/core/factory.js.map +1 -1
- package/esm/core/index.d.ts +2 -1
- package/esm/core/index.js +3 -1
- package/esm/core/index.js.map +1 -1
- package/esm/core/interface.d.ts +1 -1
- package/esm/core/interface.js.map +1 -1
- package/esm/core/vchart.d.ts +2 -1
- package/esm/core/vchart.js +3 -1
- package/esm/core/vchart.js.map +1 -1
- package/esm/data/initialize.js.map +1 -1
- package/esm/event/events/dimension/interface.d.ts +3 -2
- package/esm/event/events/dimension/interface.js.map +1 -1
- package/esm/event/events/dimension/util/cartesian.js +1 -0
- package/esm/event/events/dimension/util/cartesian.js.map +1 -1
- package/esm/event/events/dimension/util/polar.js +2 -0
- package/esm/event/events/dimension/util/polar.js.map +1 -1
- package/esm/index-lark.js +4 -2
- package/esm/index-lark.js.map +1 -1
- package/esm/index-wx-simple.js +4 -2
- package/esm/index-wx-simple.js.map +1 -1
- package/esm/index-wx.js +1 -1
- package/esm/index-wx.js.map +1 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.js +2 -0
- package/esm/index.js.map +1 -1
- package/esm/mark/arc.js +3 -1
- package/esm/mark/arc.js.map +1 -1
- package/esm/mark/base/base-mark.d.ts +3 -3
- package/esm/mark/base/base-mark.js +20 -13
- package/esm/mark/base/base-mark.js.map +1 -1
- package/esm/mark/index.d.ts +2 -3
- package/esm/mark/index.js +1 -3
- package/esm/mark/index.js.map +1 -1
- package/esm/mark/interface/type.d.ts +0 -1
- package/esm/mark/interface/type.js +2 -3
- package/esm/mark/interface/type.js.map +1 -1
- package/esm/plugin/chart/formatter/formatter.d.ts +28 -0
- package/esm/plugin/chart/formatter/formatter.js +71 -0
- package/esm/plugin/chart/formatter/formatter.js.map +1 -0
- package/esm/plugin/chart/formatter/index.d.ts +1 -0
- package/esm/plugin/chart/formatter/index.js +2 -0
- package/esm/plugin/chart/formatter/index.js.map +1 -0
- package/esm/plugin/components/index.d.ts +2 -5
- package/esm/plugin/components/index.js +2 -4
- package/esm/plugin/components/index.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/base.d.ts +6 -6
- package/esm/plugin/components/tooltip-handler/base.js +111 -50
- package/esm/plugin/components/tooltip-handler/base.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.d.ts +2 -2
- package/esm/plugin/components/tooltip-handler/canvas/canvas-tooltip-handler.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/constants.d.ts +2 -2
- package/esm/plugin/components/tooltip-handler/constants.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.d.ts +8 -4
- package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js +31 -8
- package/esm/plugin/components/tooltip-handler/dom/dom-tooltip-handler.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/dom/model/base-tooltip-model.d.ts +2 -2
- package/esm/plugin/components/tooltip-handler/dom/model/base-tooltip-model.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/dom/model/content-column-model.d.ts +2 -2
- package/esm/plugin/components/tooltip-handler/dom/model/content-column-model.js +2 -3
- package/esm/plugin/components/tooltip-handler/dom/model/content-column-model.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/dom/model/interface.d.ts +2 -2
- package/esm/plugin/components/tooltip-handler/dom/model/interface.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/utils/attribute.d.ts +2 -2
- package/esm/plugin/components/tooltip-handler/utils/attribute.js +1 -1
- package/esm/plugin/components/tooltip-handler/utils/attribute.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/utils/common.d.ts +3 -3
- package/esm/plugin/components/tooltip-handler/utils/common.js +10 -1
- package/esm/plugin/components/tooltip-handler/utils/common.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/utils/compose.d.ts +2 -2
- package/esm/plugin/components/tooltip-handler/utils/compose.js +5 -7
- package/esm/plugin/components/tooltip-handler/utils/compose.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/utils/get-spec.js +12 -9
- package/esm/plugin/components/tooltip-handler/utils/get-spec.js.map +1 -1
- package/esm/plugin/components/tooltip-handler/utils/position.d.ts +18 -3
- package/esm/plugin/components/tooltip-handler/utils/position.js +39 -7
- package/esm/plugin/components/tooltip-handler/utils/position.js.map +1 -1
- package/esm/plugin/index.d.ts +1 -0
- package/esm/plugin/index.js +2 -0
- package/esm/plugin/index.js.map +1 -1
- package/esm/series/base/base-series.js +2 -1
- package/esm/series/base/base-series.js.map +1 -1
- package/esm/series/base/tooltip-helper.d.ts +3 -3
- package/esm/series/base/tooltip-helper.js.map +1 -1
- package/esm/series/dot/tooltip-helper.js +1 -3
- package/esm/series/dot/tooltip-helper.js.map +1 -1
- package/esm/series/gauge/constant.js +2 -2
- package/esm/series/gauge/constant.js.map +1 -1
- package/esm/series/gauge/gauge.js +3 -3
- package/esm/series/gauge/gauge.js.map +1 -1
- package/esm/series/gauge/interface.d.ts +3 -3
- package/esm/series/gauge/interface.js.map +1 -1
- package/esm/series/interface/common.d.ts +1 -1
- package/esm/series/interface/common.js.map +1 -1
- package/esm/series/link/tooltip-helper.js +1 -1
- package/esm/series/link/tooltip-helper.js.map +1 -1
- package/esm/series/polar/progress-like/progress-like.js +23 -25
- package/esm/series/polar/progress-like/progress-like.js.map +1 -1
- package/esm/series/progress/circular/circular.js +1 -3
- package/esm/series/progress/circular/circular.js.map +1 -1
- package/esm/series/progress/circular/constant.js +2 -2
- package/esm/series/progress/circular/constant.js.map +1 -1
- package/esm/series/progress/circular/interface.d.ts +5 -5
- package/esm/series/progress/circular/interface.js.map +1 -1
- package/esm/series/range-area/tooltip-helper.js.map +1 -1
- package/esm/series/sankey/tooltip-helper.js.map +1 -1
- package/esm/series/sunburst/sunburst.d.ts +1 -1
- package/esm/series/word-cloud/interface.js.map +1 -1
- package/esm/theme/builtin/common/mark.js +2 -1
- package/esm/theme/builtin/common/mark.js.map +1 -1
- package/esm/theme/builtin/common/series/box-plot.js +5 -0
- package/esm/theme/builtin/common/series/box-plot.js.map +1 -1
- package/esm/theme/builtin/common/series/rangeColumn.js +1 -0
- package/esm/theme/builtin/common/series/rangeColumn.js.map +1 -1
- package/esm/theme/builtin/common/series/waterfall.js +4 -1
- package/esm/theme/builtin/common/series/waterfall.js.map +1 -1
- package/esm/typings/spec/common.d.ts +4 -3
- package/esm/typings/spec/common.js.map +1 -1
- package/esm/typings/tooltip/line.d.ts +5 -2
- package/esm/typings/tooltip/line.js.map +1 -1
- package/esm/typings/tooltip/position.d.ts +21 -10
- package/esm/typings/tooltip/position.js.map +1 -1
- package/esm/typings/tooltip/shape.d.ts +2 -2
- package/esm/typings/tooltip/shape.js.map +1 -1
- package/esm/typings/tooltip/tooltip.d.ts +8 -8
- package/esm/typings/tooltip/tooltip.js.map +1 -1
- package/esm/typings/visual.d.ts +2 -4
- package/esm/typings/visual.js.map +1 -1
- package/esm/util/index.d.ts +1 -2
- package/esm/util/index.js +1 -3
- package/esm/util/index.js.map +1 -1
- package/esm/vchart-all.js +4 -2
- package/esm/vchart-all.js.map +1 -1
- package/esm/vchart-simple.js +1 -1
- package/esm/vchart-simple.js.map +1 -1
- package/package.json +17 -17
- package/cjs/component/axis/cartesian/util/time.d.ts +0 -80
- package/cjs/component/axis/cartesian/util/time.js +0 -204
- package/cjs/component/axis/cartesian/util/time.js.map +0 -1
- package/cjs/component/crosshair/util.js.map +0 -1
- package/cjs/mark/progress-arc.d.ts +0 -14
- package/cjs/mark/progress-arc.js +0 -55
- package/cjs/mark/progress-arc.js.map +0 -1
- package/esm/component/axis/cartesian/util/time.d.ts +0 -80
- package/esm/component/axis/cartesian/util/time.js +0 -196
- package/esm/component/axis/cartesian/util/time.js.map +0 -1
- package/esm/component/crosshair/util.js.map +0 -1
- package/esm/mark/progress-arc.d.ts +0 -14
- package/esm/mark/progress-arc.js +0 -47
- package/esm/mark/progress-arc.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { IMarkSpec } from '../../../typings/spec';
|
|
2
2
|
import type { IAreaMarkSpec, ILineMarkSpec, IRectMarkSpec, ISymbolMarkSpec, ITextMarkSpec } from '../../../typings/visual';
|
|
3
3
|
import type { IComponentSpec } from '../../base/interface';
|
|
4
|
-
import type { IComponent } from '../../interface';
|
|
4
|
+
import type { ComponentThemeWithDirection, IComponent } from '../../interface';
|
|
5
5
|
import type { IFilterMode } from '../constant';
|
|
6
6
|
import type { IDataFilterComponent, IDataFilterComponentSpec } from '../interface';
|
|
7
7
|
export type IDataZoom = IComponent & IDataFilterComponent;
|
|
@@ -43,11 +43,13 @@ export interface IDataZoomSpec extends IDataZoomStyle, IDataFilterComponentSpec
|
|
|
43
43
|
padding?: number;
|
|
44
44
|
style?: IMarkSpec<ITextMarkSpec>;
|
|
45
45
|
formatMethod?: (text: string | number) => string | string[];
|
|
46
|
+
formatter?: string | string[];
|
|
46
47
|
};
|
|
47
48
|
endText?: {
|
|
48
49
|
padding?: number;
|
|
49
50
|
style?: IMarkSpec<ITextMarkSpec>;
|
|
50
51
|
formatMethod?: (text: string | number) => string | string[];
|
|
52
|
+
formatter?: string | string[];
|
|
51
53
|
};
|
|
52
54
|
brushSelect?: boolean;
|
|
53
55
|
ignoreBandSize?: boolean;
|
|
@@ -58,7 +60,4 @@ export type IDataZoomCommonTheme = IComponentSpec & IDataZoomStyle & {
|
|
|
58
60
|
height?: IDataZoomSpec['height'];
|
|
59
61
|
brushSelect?: boolean;
|
|
60
62
|
};
|
|
61
|
-
export type IDataZoomTheme = IDataZoomCommonTheme
|
|
62
|
-
horizontal?: Omit<IDataZoomCommonTheme, 'orient'>;
|
|
63
|
-
vertical?: Omit<IDataZoomCommonTheme, 'orient'>;
|
|
64
|
-
};
|
|
63
|
+
export type IDataZoomTheme = ComponentThemeWithDirection<IDataZoomCommonTheme>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/data-zoom/data-zoom/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IMarkSpec } from '../../../typings/spec';\nimport type {\n IAreaMarkSpec,\n ILineMarkSpec,\n IRectMarkSpec,\n ISymbolMarkSpec,\n ITextMarkSpec\n} from '../../../typings/visual';\nimport type { IComponentSpec } from '../../base/interface';\nimport type { IComponent } from '../../interface';\nimport type { IFilterMode } from '../constant';\nimport type { IDataFilterComponent, IDataFilterComponentSpec } from '../interface';\n\nexport type IDataZoom = IComponent & IDataFilterComponent;\n\n// TODO: 开放的状态样式配置较少,暂时不使用markSpec方式配置\nexport interface IDataZoomStyle {\n /**\n * 是否显示startText和endText\n * @default 'auto' 鼠标hover在选中区域时才显示startText和endText\n */\n showDetail?: 'auto' | boolean;\n\n middleHandler?: {\n visible?: boolean;\n icon?: ISymbolMarkSpec;\n background?: {\n size?: number;\n } & IRectMarkSpec;\n };\n background?: {\n size?: number;\n } & IRectMarkSpec;\n startHandler?: ISymbolMarkSpec;\n endHandler?: ISymbolMarkSpec;\n startText?: {\n padding?: number;\n } & ITextMarkSpec;\n endText?: {\n padding?: number;\n } & ITextMarkSpec;\n dragMask?: IRectMarkSpec;\n selectedBackground?: IRectMarkSpec;\n backgroundChart?: {\n line?: ILineMarkSpec;\n area?: IAreaMarkSpec;\n };\n selectedBackgroundChart?: {\n line?: ILineMarkSpec;\n area?: IAreaMarkSpec;\n };\n}\n\n/** spec */\nexport interface IDataZoomSpec extends IDataZoomStyle, IDataFilterComponentSpec {\n /**\n * 数据过滤模式\n * @default 'filter' (dataZoom默认数据过滤模式)\n * 详细可参考:https://echarts.apache.org/zh/option.html#dataZoom-slider.filterMode)\n */\n filterMode?: IFilterMode;\n /**\n * 背景趋势线对应的字段\n */\n valueField?: string;\n /**\n * 起始点文字标签format格式配置\n */\n startText?: {\n padding?: number;\n style?: IMarkSpec<ITextMarkSpec>;\n formatMethod?: (text: string | number) => string | string[];\n };\n endText?: {\n padding?: number;\n style?: IMarkSpec<ITextMarkSpec>;\n formatMethod?: (text: string | number) => string | string[];\n };\n /**\n * 是否开启框选, 如果不开启则支持selectedBackground拖拽(框选和拖拽两者互斥)\n * @default false\n */\n brushSelect?: boolean;\n /**\n * 是否忽略轴上配置的固定 bandSize\n * 如果置为 true,则 datazoom 可以任意改变轴的 bandSize。\n * 但如果轴上配置了 bandSize 范围,则第一次渲染会保持 bandSize 在配置范围内。\n * 该配置仅在 auto 设为 true 时生效。\n * @since 1.7.0\n */\n ignoreBandSize?: boolean;\n}\n\nexport type IDataZoomCommonTheme = IComponentSpec &\n IDataZoomStyle & {\n /** 显示的位置 */\n orient?: IDataZoomSpec['orient'];\n /** 组件宽度 */\n width?: IDataZoomSpec['width'];\n /** 组件高度 */\n height?: IDataZoomSpec['height'];\n /**\n * 是否开启框选, 如果不开启则支持selectedBackground拖拽(框选和拖拽两者互斥)\n * @default false\n */\n brushSelect?: boolean;\n };\n\nexport type IDataZoomTheme =
|
|
1
|
+
{"version":3,"sources":["../src/component/data-zoom/data-zoom/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IMarkSpec } from '../../../typings/spec';\nimport type {\n IAreaMarkSpec,\n ILineMarkSpec,\n IRectMarkSpec,\n ISymbolMarkSpec,\n ITextMarkSpec\n} from '../../../typings/visual';\nimport type { IComponentSpec } from '../../base/interface';\nimport type { ComponentThemeWithDirection, IComponent } from '../../interface';\nimport type { IFilterMode } from '../constant';\nimport type { IDataFilterComponent, IDataFilterComponentSpec } from '../interface';\n\nexport type IDataZoom = IComponent & IDataFilterComponent;\n\n// TODO: 开放的状态样式配置较少,暂时不使用markSpec方式配置\nexport interface IDataZoomStyle {\n /**\n * 是否显示startText和endText\n * @default 'auto' 鼠标hover在选中区域时才显示startText和endText\n */\n showDetail?: 'auto' | boolean;\n\n middleHandler?: {\n visible?: boolean;\n icon?: ISymbolMarkSpec;\n background?: {\n size?: number;\n } & IRectMarkSpec;\n };\n background?: {\n size?: number;\n } & IRectMarkSpec;\n startHandler?: ISymbolMarkSpec;\n endHandler?: ISymbolMarkSpec;\n startText?: {\n padding?: number;\n } & ITextMarkSpec;\n endText?: {\n padding?: number;\n } & ITextMarkSpec;\n dragMask?: IRectMarkSpec;\n selectedBackground?: IRectMarkSpec;\n backgroundChart?: {\n line?: ILineMarkSpec;\n area?: IAreaMarkSpec;\n };\n selectedBackgroundChart?: {\n line?: ILineMarkSpec;\n area?: IAreaMarkSpec;\n };\n}\n\n/** spec */\nexport interface IDataZoomSpec extends IDataZoomStyle, IDataFilterComponentSpec {\n /**\n * 数据过滤模式\n * @default 'filter' (dataZoom默认数据过滤模式)\n * 详细可参考:https://echarts.apache.org/zh/option.html#dataZoom-slider.filterMode)\n */\n filterMode?: IFilterMode;\n /**\n * 背景趋势线对应的字段\n */\n valueField?: string;\n /**\n * 起始点文字标签format格式配置\n */\n startText?: {\n padding?: number;\n style?: IMarkSpec<ITextMarkSpec>;\n formatMethod?: (text: string | number) => string | string[];\n /**\n * 格式化模板\n * @description 可以通过类似 `{value:.2f}%` 的形式对指定数据字段进行格式化\n * @since 1.10.0\n */\n formatter?: string | string[];\n };\n endText?: {\n padding?: number;\n style?: IMarkSpec<ITextMarkSpec>;\n formatMethod?: (text: string | number) => string | string[];\n formatter?: string | string[];\n };\n /**\n * 是否开启框选, 如果不开启则支持selectedBackground拖拽(框选和拖拽两者互斥)\n * @default false\n */\n brushSelect?: boolean;\n /**\n * 是否忽略轴上配置的固定 bandSize\n * 如果置为 true,则 datazoom 可以任意改变轴的 bandSize。\n * 但如果轴上配置了 bandSize 范围,则第一次渲染会保持 bandSize 在配置范围内。\n * 该配置仅在 auto 设为 true 时生效。\n * @since 1.7.0\n */\n ignoreBandSize?: boolean;\n}\n\nexport type IDataZoomCommonTheme = IComponentSpec &\n IDataZoomStyle & {\n /** 显示的位置 */\n orient?: IDataZoomSpec['orient'];\n /** 组件宽度 */\n width?: IDataZoomSpec['width'];\n /** 组件高度 */\n height?: IDataZoomSpec['height'];\n /**\n * 是否开启框选, 如果不开启则支持selectedBackground拖拽(框选和拖拽两者互斥)\n * @default false\n */\n brushSelect?: boolean;\n };\n\nexport type IDataZoomTheme = ComponentThemeWithDirection<IDataZoomCommonTheme>;\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ILayoutItemSpec } from '../../../layout/interface';
|
|
2
2
|
import type { IPadding } from '../../../typings';
|
|
3
3
|
import type { IRectMarkSpec } from '../../../typings/visual';
|
|
4
|
+
import type { ComponentThemeWithDirection } from '../../interface';
|
|
4
5
|
import type { IFilterMode } from '../constant';
|
|
5
6
|
import type { IDataFilterComponentSpec } from '../interface';
|
|
6
7
|
export interface IScrollBarStyle {
|
|
@@ -21,7 +22,4 @@ export type IScrollBarCommonTheme = ILayoutItemSpec & IScrollBarStyle & {
|
|
|
21
22
|
round?: IScrollBarSpec['round'];
|
|
22
23
|
innerPadding?: IScrollBarSpec['innerPadding'];
|
|
23
24
|
};
|
|
24
|
-
export type IScrollBarTheme = IScrollBarCommonTheme
|
|
25
|
-
horizontal?: Omit<IScrollBarCommonTheme, 'orient'>;
|
|
26
|
-
vertical?: Omit<IScrollBarCommonTheme, 'orient'>;
|
|
27
|
-
};
|
|
25
|
+
export type IScrollBarTheme = ComponentThemeWithDirection<IScrollBarCommonTheme>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/data-zoom/scroll-bar/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { ILayoutItemSpec } from '../../../layout/interface';\nimport type { IPadding } from '../../../typings';\nimport type { IRectMarkSpec } from '../../../typings/visual';\nimport type { IFilterMode } from '../constant';\nimport type { IDataFilterComponentSpec } from '../interface';\n\nexport interface IScrollBarStyle {\n /**\n * 滚动条轨道样式。\n */\n rail?: Omit<IRectMarkSpec, 'width' | 'height'>;\n /**\n * 滚动条滑块样式。\n */\n slider?: Omit<IRectMarkSpec, 'width' | 'height'>;\n}\n\nexport interface IScrollBarSpec extends IDataFilterComponentSpec, IScrollBarStyle {\n /**\n * 数据过滤模式\n * @default 'axis' (scrollBar默认视口裁剪模式)\n * 详细可参考:https://echarts.apache.org/zh/option.html#dataZoom-slider.filterMode)\n */\n filterMode?: IFilterMode;\n /** 滑块是否圆角。 */\n round?: boolean;\n /**\n * 滚动条内边距,影响滑轨的实际可用空间 [top, right, bottom, left]\n */\n innerPadding?: number | number[] | IPadding;\n /** 滑块当前的可视范围,数值为 0 - 1 */\n range?: [number, number];\n /**\n * 滑块限制的滚动范围,数值为 0 - 1\n */\n limitRange?: [number, number];\n}\n\nexport type IScrollBarCommonTheme = ILayoutItemSpec &\n IScrollBarStyle & {\n /** 显示的位置 */\n orient?: IScrollBarSpec['orient'];\n /** 组件宽度 */\n width?: IScrollBarSpec['width'];\n /** 组件高度 */\n height?: IScrollBarSpec['height'];\n /** 滑块是否圆角。 */\n round?: IScrollBarSpec['round'];\n /**\n * 滚动条内边距,影响滑轨的实际可用空间 [top, right, bottom, left]\n */\n innerPadding?: IScrollBarSpec['innerPadding'];\n };\n\nexport type IScrollBarTheme =
|
|
1
|
+
{"version":3,"sources":["../src/component/data-zoom/scroll-bar/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { ILayoutItemSpec } from '../../../layout/interface';\nimport type { IPadding } from '../../../typings';\nimport type { IRectMarkSpec } from '../../../typings/visual';\nimport type { ComponentThemeWithDirection } from '../../interface';\nimport type { IFilterMode } from '../constant';\nimport type { IDataFilterComponentSpec } from '../interface';\n\nexport interface IScrollBarStyle {\n /**\n * 滚动条轨道样式。\n */\n rail?: Omit<IRectMarkSpec, 'width' | 'height'>;\n /**\n * 滚动条滑块样式。\n */\n slider?: Omit<IRectMarkSpec, 'width' | 'height'>;\n}\n\nexport interface IScrollBarSpec extends IDataFilterComponentSpec, IScrollBarStyle {\n /**\n * 数据过滤模式\n * @default 'axis' (scrollBar默认视口裁剪模式)\n * 详细可参考:https://echarts.apache.org/zh/option.html#dataZoom-slider.filterMode)\n */\n filterMode?: IFilterMode;\n /** 滑块是否圆角。 */\n round?: boolean;\n /**\n * 滚动条内边距,影响滑轨的实际可用空间 [top, right, bottom, left]\n */\n innerPadding?: number | number[] | IPadding;\n /** 滑块当前的可视范围,数值为 0 - 1 */\n range?: [number, number];\n /**\n * 滑块限制的滚动范围,数值为 0 - 1\n */\n limitRange?: [number, number];\n}\n\nexport type IScrollBarCommonTheme = ILayoutItemSpec &\n IScrollBarStyle & {\n /** 显示的位置 */\n orient?: IScrollBarSpec['orient'];\n /** 组件宽度 */\n width?: IScrollBarSpec['width'];\n /** 组件高度 */\n height?: IScrollBarSpec['height'];\n /** 滑块是否圆角。 */\n round?: IScrollBarSpec['round'];\n /**\n * 滚动条内边距,影响滑轨的实际可用空间 [top, right, bottom, left]\n */\n innerPadding?: IScrollBarSpec['innerPadding'];\n };\n\nexport type IScrollBarTheme = ComponentThemeWithDirection<IScrollBarCommonTheme>;\n"]}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import type { IOrientType } from '../../typings';
|
|
2
|
-
import type { ComponentTypeEnum } from '../interface';
|
|
3
|
-
import type { ITheme } from '../../theme';
|
|
4
1
|
export interface IDataFilterWithNewDomainOption {
|
|
5
2
|
getNewDomain: () => any[];
|
|
6
3
|
isContinuous: () => boolean;
|
|
@@ -20,4 +17,3 @@ export interface IDataFilterComputeDomainOption {
|
|
|
20
17
|
};
|
|
21
18
|
}
|
|
22
19
|
export declare const dataFilterComputeDomain: (data: Array<any>, op: IDataFilterComputeDomainOption) => any[];
|
|
23
|
-
export declare const getDataFilterTheme: (orient: IOrientType, type: ComponentTypeEnum, chartTheme: ITheme) => any;
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
import { array, isNil
|
|
2
|
-
|
|
3
|
-
import { getComponentThemeFromOption } from "../util";
|
|
4
|
-
|
|
5
|
-
import { getDirectionByOrient } from "../axis/cartesian/util";
|
|
1
|
+
import { array, isNil } from "../../util";
|
|
6
2
|
|
|
7
3
|
export const dataFilterWithNewDomain = (data, op) => {
|
|
8
4
|
const {getNewDomain: getNewDomain, isContinuous: isContinuous, field: field} = op, datumField = field(), newDomain = getNewDomain();
|
|
@@ -33,9 +29,4 @@ export const dataFilterComputeDomain = (data, op) => {
|
|
|
33
29
|
valueField && (res[valueField] = resultObj[d]), resultData.push(res);
|
|
34
30
|
})), resultData;
|
|
35
31
|
};
|
|
36
|
-
|
|
37
|
-
export const getDataFilterTheme = (orient, type, chartTheme) => {
|
|
38
|
-
const theme = getComponentThemeFromOption(type, chartTheme), directionTheme = theme[getDirectionByOrient(orient)], finalTheme = mergeSpec({}, theme, directionTheme);
|
|
39
|
-
return delete finalTheme.horizontal, delete finalTheme.vertical, finalTheme;
|
|
40
|
-
};
|
|
41
32
|
//# sourceMappingURL=util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/data-zoom/util.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,KAAK,
|
|
1
|
+
{"version":3,"sources":["../src/component/data-zoom/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import type { IOrientType } from '../../typings';\n// eslint-disable-next-line no-duplicate-imports\nimport { Direction } from '../../typings';\nimport { array, isNil, mergeSpec } from '../../util';\nimport type { DataView } from '@visactor/vdataset';\nimport type { ComponentTypeEnum } from '../interface';\nimport { getComponentThemeFromOption } from '../util';\nimport { getDirectionByOrient } from '../axis/cartesian/util';\nimport type { ITheme } from '../../theme';\n\nexport interface IDataFilterWithNewDomainOption {\n getNewDomain: () => any[];\n isContinuous: () => boolean;\n field: () => string;\n}\n\n/**\n * 保证数据筛选的结果全都在坐标轴的新domain范围中,防止出现point数据因为超出domain范围而绘制在原点的情况\n */\nexport const dataFilterWithNewDomain = (data: Array<any>, op: IDataFilterWithNewDomainOption) => {\n const { getNewDomain, isContinuous, field } = op;\n const datumField = field();\n const newDomain = getNewDomain();\n if (isNil(newDomain) || isNil(datumField)) {\n return data;\n }\n if (newDomain.length === 0) {\n return [];\n }\n\n let filter = null;\n if (isContinuous()) {\n filter = (d: any) => d[datumField] >= newDomain[0] && d[datumField] <= newDomain[1];\n } else {\n filter = (d: any) => {\n // 这里d[f] + ''的原因是:数据是number类型的,但轴声明为band轴,domain会强制将number => string,所以filter的时候要将data中的number => string\n return newDomain.indexOf(d[datumField] + '') >= 0 || newDomain.indexOf(d[datumField]) >= 0;\n };\n }\n\n return data.filter(filter);\n};\n\nexport interface IDataFilterComputeDomainOption {\n input: {\n dataCollection: any[];\n stateFields: string[];\n valueFields: string[];\n method: 'sum'; // todo: 也许可以提供多种数据统计方法 @chensiji\n };\n output: {\n stateField: string;\n valueField: string;\n };\n}\n\nexport const dataFilterComputeDomain = (data: Array<any>, op: IDataFilterComputeDomainOption) => {\n const { stateFields, valueFields, dataCollection } = op.input;\n const { stateField, valueField } = op.output;\n const resultObj = {};\n const resultData: any[] = [];\n\n dataCollection.forEach((dv: DataView, i) => {\n if (isNil(stateFields[i])) {\n return;\n }\n // 按照用户指定的domain进行排序(这里不通过getRawDataStatistics来取是因为时机不对,此时getRawDataStatistics还没有正确结果)\n const stateFieldInfo = dv.getFields()?.[stateFields[i]];\n if (stateFieldInfo && stateFieldInfo.lockStatisticsByDomain) {\n stateFieldInfo.domain.forEach((d: any) => {\n resultObj[d] = 0;\n });\n }\n dv.latestData.forEach((d: any) => {\n // 针对rangeColumn等xField为数组形式的图表,需要将xField的所有value都记录下来\n array(stateFields[i]).forEach(state => {\n if (!isNil(d[state])) {\n if (isNil(resultObj[d[state]])) {\n resultObj[d[state]] = 0;\n }\n if (!isNil(valueFields[i])) {\n // 传进来的d[yFields[i]]可能是stringnumber\n // 传进来的d[yFields[i]]可能是普通的字符串,这时计数按1计算(其实相当于计算数据条数)\n resultObj[d[state]] += isNaN(parseFloat(d[valueFields[i]])) ? 1 : parseFloat(d[valueFields[i]]);\n }\n }\n });\n });\n });\n Object.keys(resultObj).forEach((d, i) => {\n const res = { [stateField]: d };\n\n if (valueField) {\n res[valueField] = resultObj[d];\n }\n\n resultData.push(res);\n });\n\n return resultData;\n};\n"]}
|
package/esm/component/index.d.ts
CHANGED
|
@@ -45,3 +45,4 @@ export { ScrollBar, DataZoom, CustomMark, Brush, MapLabelComponent, CartesianAxi
|
|
|
45
45
|
export { registerBrush, registerScrollBar, registerTitle, registerTooltip, registerCartesianBandAxis, registerCartesianCrossHair, registerCartesianLinearAxis, registerCartesianLogAxis, registerCartesianSymlogAxis, registerCartesianTimeAxis, registerContinuousLegend, registerCustomMark, registerDataZoom, registerDiscreteLegend, registerGeoCoordinate, registerIndicator, registerLabel, registerTotalLabel, registerMapLabel, registerMarkArea, registerMarkLine, registerMarkPoint, registerPlayer, registerPolarBandAxis, registerPolarCrossHair, registerPolarLinearAxis, registerPoptip };
|
|
46
46
|
export type { IComponent, IScrollBarSpec, IBrushSpec, ICartesianAxisSpec, ICartesianBandAxisSpec, ICartesianCrosshairSpec, ICartesianLinearAxisSpec, ICartesianTimeAxisSpec, ICartesianLogAxisSpec, IContinuousLegendSpec, IDataZoomSpec, IDiscreteLegendSpec, IGeoCoordinateSpec, IIndicatorSpec, ILabelSpec, IMapLabelSpec, IMarkAreaSpec, IMarkLineSpec, IStepMarkLineSpec, IMarkPointSpec, IPlayerSpec, IPolarAxisSpec, IPolarBandAxisSpec, IPolarCrosshairSpec, IPolarLinearAxisSpec, ITitleSpec, ITooltipSpec };
|
|
47
47
|
export type { IComponentTheme, ICrosshairTheme, IAxisItemTheme, IAxisCommonTheme, IBandAxisTheme, IPolarAxisCommonTheme, ICartesianAxisCommonTheme, IBrushTheme, IDataZoomTheme, IScrollBarTheme, IIndicatorTheme, IMapLabelTheme, ITotalLabelTheme, ISizeLegendTheme, IColorLegendTheme, IDiscreteLegendTheme, IContinuousLegendTheme, IMarkAreaTheme, IMarkLineTheme, IMarkPointTheme, IPlayerTheme, IPoptipTheme, ITitleTheme, ITooltipTheme };
|
|
48
|
+
export * from './tooltip/interface';
|
package/esm/component/index.js
CHANGED
|
@@ -43,4 +43,6 @@ import { registerPoptip } from "./poptip/index";
|
|
|
43
43
|
export { ScrollBar, DataZoom, CustomMark, Brush, MapLabelComponent, CartesianAxis, CartesianBandAxis, CartesianLinearAxis, CartesianTimeAxis, CartesianLogAxis, CartesianSymlogAxis, PolarAxis, PolarBandAxis, PolarLinearAxis, DiscreteLegend, ContinuousLegend, Indicator, Title, GeoCoordinate, CartesianCrossHair, PolarCrossHair, Player, MarkArea, MarkLine, MarkPoint, Tooltip, Label, TotalLabel };
|
|
44
44
|
|
|
45
45
|
export { registerBrush, registerScrollBar, registerTitle, registerTooltip, registerCartesianBandAxis, registerCartesianCrossHair, registerCartesianLinearAxis, registerCartesianLogAxis, registerCartesianSymlogAxis, registerCartesianTimeAxis, registerContinuousLegend, registerCustomMark, registerDataZoom, registerDiscreteLegend, registerGeoCoordinate, registerIndicator, registerLabel, registerTotalLabel, registerMapLabel, registerMarkArea, registerMarkLine, registerMarkPoint, registerPlayer, registerPolarBandAxis, registerPolarCrossHair, registerPolarLinearAxis, registerPoptip };
|
|
46
|
+
|
|
47
|
+
export * from "./tooltip/interface";
|
|
46
48
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEjF,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAS5E,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,SAAS,EACT,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAO3E,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAEjF,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE3D,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKhD,OAAO,EACL,SAAS,EACT,QAAQ,EACR,UAAU,EACV,KAAK,EACL,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,EACT,aAAa,EACb,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,KAAK,EACL,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,OAAO,EACP,KAAK,EACL,UAAU,EACX,CAAC;AAEF,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACf,CAAC","file":"index.js","sourcesContent":["import type { IComponent } from './interface/common';\n/* eslint-disable no-duplicate-imports */\n/**\n * @description export all component modules\n */\nimport type { IScrollBarSpec, IScrollBarTheme } from './data-zoom/scroll-bar';\nimport { ScrollBar, registerScrollBar } from './data-zoom/scroll-bar/scroll-bar';\nimport type { IDataZoomSpec, IDataZoomTheme } from './data-zoom/data-zoom';\nimport { DataZoom, registerDataZoom } from './data-zoom/data-zoom/data-zoom';\nimport { CustomMark, registerCustomMark } from './custom-mark/custom-mark';\nimport type { IBrushSpec, IBrushTheme } from './brush';\nimport { Brush, registerBrush } from './brush/brush';\nimport type { IMapLabelSpec, IMapLabelTheme } from './map-label';\nimport { MapLabelComponent, registerMapLabel } from './map-label/component';\nimport type {\n ICartesianLinearAxisSpec,\n ICartesianBandAxisSpec,\n ICartesianTimeAxisSpec,\n ICartesianAxisSpec,\n ICartesianLogAxisSpec,\n ICartesianAxisCommonTheme\n} from './axis/cartesian/index';\nimport {\n CartesianAxis,\n CartesianLinearAxis,\n CartesianBandAxis,\n CartesianTimeAxis,\n CartesianLogAxis,\n CartesianSymlogAxis,\n registerCartesianBandAxis,\n registerCartesianLinearAxis,\n registerCartesianLogAxis,\n registerCartesianSymlogAxis,\n registerCartesianTimeAxis\n} from './axis/cartesian/index';\nimport type { IPolarAxisCommonTheme, IPolarAxisSpec, IPolarBandAxisSpec, IPolarLinearAxisSpec } from './axis/polar';\nimport {\n PolarAxis,\n PolarBandAxis,\n PolarLinearAxis,\n registerPolarBandAxis,\n registerPolarLinearAxis\n} from './axis/polar';\nimport type { IDiscreteLegendSpec, IDiscreteLegendTheme } from './legend/discrete';\nimport { DiscreteLegend, registerDiscreteLegend } from './legend/discrete';\nimport type {\n IColorLegendTheme,\n IContinuousLegendSpec,\n IContinuousLegendTheme,\n ISizeLegendTheme\n} from './legend/continuous';\nimport { ContinuousLegend, registerContinuousLegend } from './legend/continuous';\nimport type { IIndicatorSpec, IIndicatorTheme } from './indicator';\nimport { Indicator, registerIndicator } from './indicator';\nimport type { ITitleSpec, ITitleTheme } from './title';\nimport { Title, registerTitle } from './title';\nimport type { IGeoCoordinateSpec } from './geo';\nimport { GeoCoordinate, registerGeoCoordinate } from './geo';\nimport type { ICartesianCrosshairSpec, ICrosshairTheme, IPolarCrosshairSpec } from './crosshair';\nimport { CartesianCrossHair, PolarCrossHair, registerCartesianCrossHair, registerPolarCrossHair } from './crosshair';\nimport type { IPlayerSpec, IPlayerTheme } from './player';\nimport { Player, registerPlayer } from './player';\nimport type { IMarkLineSpec, IStepMarkLineSpec, IMarkLineTheme } from './marker/mark-line';\nimport { MarkLine, registerMarkLine } from './marker/mark-line';\nimport type { IMarkAreaSpec, IMarkAreaTheme } from './marker/mark-area';\nimport { MarkArea, registerMarkArea } from './marker/mark-area';\nimport type { IMarkPointSpec, IMarkPointTheme } from './marker/mark-point';\nimport { MarkPoint, registerMarkPoint } from './marker/mark-point';\nimport type { ITooltipSpec, ITooltipTheme } from './tooltip';\nimport { Tooltip, registerTooltip } from './tooltip';\nimport type { ILabelSpec, ITotalLabelTheme } from './label';\nimport { Label, registerLabel } from './label';\nimport { TotalLabel, registerTotalLabel } from './label/total-label';\nimport { registerPoptip } from './poptip/index';\nimport type { IComponentTheme } from './interface';\nimport type { IAxisCommonTheme, IAxisItemTheme, IBandAxisTheme } from './axis/interface';\nimport type { IPoptipTheme } from './poptip/interface';\n\nexport {\n ScrollBar,\n DataZoom,\n CustomMark,\n Brush,\n MapLabelComponent,\n CartesianAxis,\n CartesianBandAxis,\n CartesianLinearAxis,\n CartesianTimeAxis,\n CartesianLogAxis,\n CartesianSymlogAxis,\n PolarAxis,\n PolarBandAxis,\n PolarLinearAxis,\n DiscreteLegend,\n ContinuousLegend,\n Indicator,\n Title,\n GeoCoordinate,\n CartesianCrossHair,\n PolarCrossHair,\n Player,\n MarkArea,\n MarkLine,\n MarkPoint,\n Tooltip,\n Label,\n TotalLabel\n};\n\nexport {\n registerBrush,\n registerScrollBar,\n registerTitle,\n registerTooltip,\n registerCartesianBandAxis,\n registerCartesianCrossHair,\n registerCartesianLinearAxis,\n registerCartesianLogAxis,\n registerCartesianSymlogAxis,\n registerCartesianTimeAxis,\n registerContinuousLegend,\n registerCustomMark,\n registerDataZoom,\n registerDiscreteLegend,\n registerGeoCoordinate,\n registerIndicator,\n registerLabel,\n registerTotalLabel,\n registerMapLabel,\n registerMarkArea,\n registerMarkLine,\n registerMarkPoint,\n registerPlayer,\n registerPolarBandAxis,\n registerPolarCrossHair,\n registerPolarLinearAxis,\n registerPoptip\n};\n\nexport type {\n IComponent,\n IScrollBarSpec,\n IBrushSpec,\n ICartesianAxisSpec,\n ICartesianBandAxisSpec,\n ICartesianCrosshairSpec,\n ICartesianLinearAxisSpec,\n ICartesianTimeAxisSpec,\n ICartesianLogAxisSpec,\n IContinuousLegendSpec,\n IDataZoomSpec,\n IDiscreteLegendSpec,\n IGeoCoordinateSpec,\n IIndicatorSpec,\n ILabelSpec,\n IMapLabelSpec,\n IMarkAreaSpec,\n IMarkLineSpec,\n IStepMarkLineSpec,\n IMarkPointSpec,\n IPlayerSpec,\n IPolarAxisSpec,\n IPolarBandAxisSpec,\n IPolarCrosshairSpec,\n IPolarLinearAxisSpec,\n ITitleSpec,\n ITooltipSpec\n};\n\nexport type {\n IComponentTheme,\n ICrosshairTheme,\n IAxisItemTheme,\n IAxisCommonTheme,\n IBandAxisTheme,\n IPolarAxisCommonTheme,\n ICartesianAxisCommonTheme,\n IBrushTheme,\n IDataZoomTheme,\n IScrollBarTheme,\n IIndicatorTheme,\n IMapLabelTheme,\n ITotalLabelTheme,\n ISizeLegendTheme,\n IColorLegendTheme,\n IDiscreteLegendTheme,\n IContinuousLegendTheme,\n IMarkAreaTheme,\n IMarkLineTheme,\n IMarkPointTheme,\n IPlayerTheme,\n IPoptipTheme,\n ITitleTheme,\n ITooltipTheme\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAEjF,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE3E,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAS5E,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,SAAS,EACT,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAO3E,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAEjF,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE3D,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErH,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAErD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKhD,OAAO,EACL,SAAS,EACT,QAAQ,EACR,UAAU,EACV,KAAK,EACL,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,EACT,aAAa,EACb,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,KAAK,EACL,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,OAAO,EACP,KAAK,EACL,UAAU,EACX,CAAC;AAEF,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,cAAc,EACf,CAAC;AA4DF,cAAc,qBAAqB,CAAC","file":"index.js","sourcesContent":["import type { IComponent } from './interface/common';\n/* eslint-disable no-duplicate-imports */\n/**\n * @description export all component modules\n */\nimport type { IScrollBarSpec, IScrollBarTheme } from './data-zoom/scroll-bar';\nimport { ScrollBar, registerScrollBar } from './data-zoom/scroll-bar/scroll-bar';\nimport type { IDataZoomSpec, IDataZoomTheme } from './data-zoom/data-zoom';\nimport { DataZoom, registerDataZoom } from './data-zoom/data-zoom/data-zoom';\nimport { CustomMark, registerCustomMark } from './custom-mark/custom-mark';\nimport type { IBrushSpec, IBrushTheme } from './brush';\nimport { Brush, registerBrush } from './brush/brush';\nimport type { IMapLabelSpec, IMapLabelTheme } from './map-label';\nimport { MapLabelComponent, registerMapLabel } from './map-label/component';\nimport type {\n ICartesianLinearAxisSpec,\n ICartesianBandAxisSpec,\n ICartesianTimeAxisSpec,\n ICartesianAxisSpec,\n ICartesianLogAxisSpec,\n ICartesianAxisCommonTheme\n} from './axis/cartesian/index';\nimport {\n CartesianAxis,\n CartesianLinearAxis,\n CartesianBandAxis,\n CartesianTimeAxis,\n CartesianLogAxis,\n CartesianSymlogAxis,\n registerCartesianBandAxis,\n registerCartesianLinearAxis,\n registerCartesianLogAxis,\n registerCartesianSymlogAxis,\n registerCartesianTimeAxis\n} from './axis/cartesian/index';\nimport type { IPolarAxisCommonTheme, IPolarAxisSpec, IPolarBandAxisSpec, IPolarLinearAxisSpec } from './axis/polar';\nimport {\n PolarAxis,\n PolarBandAxis,\n PolarLinearAxis,\n registerPolarBandAxis,\n registerPolarLinearAxis\n} from './axis/polar';\nimport type { IDiscreteLegendSpec, IDiscreteLegendTheme } from './legend/discrete';\nimport { DiscreteLegend, registerDiscreteLegend } from './legend/discrete';\nimport type {\n IColorLegendTheme,\n IContinuousLegendSpec,\n IContinuousLegendTheme,\n ISizeLegendTheme\n} from './legend/continuous';\nimport { ContinuousLegend, registerContinuousLegend } from './legend/continuous';\nimport type { IIndicatorSpec, IIndicatorTheme } from './indicator';\nimport { Indicator, registerIndicator } from './indicator';\nimport type { ITitleSpec, ITitleTheme } from './title';\nimport { Title, registerTitle } from './title';\nimport type { IGeoCoordinateSpec } from './geo';\nimport { GeoCoordinate, registerGeoCoordinate } from './geo';\nimport type { ICartesianCrosshairSpec, ICrosshairTheme, IPolarCrosshairSpec } from './crosshair';\nimport { CartesianCrossHair, PolarCrossHair, registerCartesianCrossHair, registerPolarCrossHair } from './crosshair';\nimport type { IPlayerSpec, IPlayerTheme } from './player';\nimport { Player, registerPlayer } from './player';\nimport type { IMarkLineSpec, IStepMarkLineSpec, IMarkLineTheme } from './marker/mark-line';\nimport { MarkLine, registerMarkLine } from './marker/mark-line';\nimport type { IMarkAreaSpec, IMarkAreaTheme } from './marker/mark-area';\nimport { MarkArea, registerMarkArea } from './marker/mark-area';\nimport type { IMarkPointSpec, IMarkPointTheme } from './marker/mark-point';\nimport { MarkPoint, registerMarkPoint } from './marker/mark-point';\nimport type { ITooltipSpec, ITooltipTheme } from './tooltip';\nimport { Tooltip, registerTooltip } from './tooltip';\nimport type { ILabelSpec, ITotalLabelTheme } from './label';\nimport { Label, registerLabel } from './label';\nimport { TotalLabel, registerTotalLabel } from './label/total-label';\nimport { registerPoptip } from './poptip/index';\nimport type { IComponentTheme } from './interface';\nimport type { IAxisCommonTheme, IAxisItemTheme, IBandAxisTheme } from './axis/interface';\nimport type { IPoptipTheme } from './poptip/interface';\n\nexport {\n ScrollBar,\n DataZoom,\n CustomMark,\n Brush,\n MapLabelComponent,\n CartesianAxis,\n CartesianBandAxis,\n CartesianLinearAxis,\n CartesianTimeAxis,\n CartesianLogAxis,\n CartesianSymlogAxis,\n PolarAxis,\n PolarBandAxis,\n PolarLinearAxis,\n DiscreteLegend,\n ContinuousLegend,\n Indicator,\n Title,\n GeoCoordinate,\n CartesianCrossHair,\n PolarCrossHair,\n Player,\n MarkArea,\n MarkLine,\n MarkPoint,\n Tooltip,\n Label,\n TotalLabel\n};\n\nexport {\n registerBrush,\n registerScrollBar,\n registerTitle,\n registerTooltip,\n registerCartesianBandAxis,\n registerCartesianCrossHair,\n registerCartesianLinearAxis,\n registerCartesianLogAxis,\n registerCartesianSymlogAxis,\n registerCartesianTimeAxis,\n registerContinuousLegend,\n registerCustomMark,\n registerDataZoom,\n registerDiscreteLegend,\n registerGeoCoordinate,\n registerIndicator,\n registerLabel,\n registerTotalLabel,\n registerMapLabel,\n registerMarkArea,\n registerMarkLine,\n registerMarkPoint,\n registerPlayer,\n registerPolarBandAxis,\n registerPolarCrossHair,\n registerPolarLinearAxis,\n registerPoptip\n};\n\nexport type {\n IComponent,\n IScrollBarSpec,\n IBrushSpec,\n ICartesianAxisSpec,\n ICartesianBandAxisSpec,\n ICartesianCrosshairSpec,\n ICartesianLinearAxisSpec,\n ICartesianTimeAxisSpec,\n ICartesianLogAxisSpec,\n IContinuousLegendSpec,\n IDataZoomSpec,\n IDiscreteLegendSpec,\n IGeoCoordinateSpec,\n IIndicatorSpec,\n ILabelSpec,\n IMapLabelSpec,\n IMarkAreaSpec,\n IMarkLineSpec,\n IStepMarkLineSpec,\n IMarkPointSpec,\n IPlayerSpec,\n IPolarAxisSpec,\n IPolarBandAxisSpec,\n IPolarCrosshairSpec,\n IPolarLinearAxisSpec,\n ITitleSpec,\n ITooltipSpec\n};\n\nexport type {\n IComponentTheme,\n ICrosshairTheme,\n IAxisItemTheme,\n IAxisCommonTheme,\n IBandAxisTheme,\n IPolarAxisCommonTheme,\n ICartesianAxisCommonTheme,\n IBrushTheme,\n IDataZoomTheme,\n IScrollBarTheme,\n IIndicatorTheme,\n IMapLabelTheme,\n ITotalLabelTheme,\n ISizeLegendTheme,\n IColorLegendTheme,\n IDiscreteLegendTheme,\n IContinuousLegendTheme,\n IMarkAreaTheme,\n IMarkLineTheme,\n IMarkPointTheme,\n IPlayerTheme,\n IPoptipTheme,\n ITitleTheme,\n ITooltipTheme\n};\n\n// tooltip\nexport * from './tooltip/interface';\n"]}
|
|
@@ -15,6 +15,7 @@ import type { ComponentTypeEnum } from './type';
|
|
|
15
15
|
import type { ITotalLabelTheme } from '../label';
|
|
16
16
|
import type { IPoptipTheme } from '../poptip/interface';
|
|
17
17
|
import type { IColorKey } from '../../theme';
|
|
18
|
+
import type { Direction, IOrientType } from '../../typings';
|
|
18
19
|
export interface IComponentTheme {
|
|
19
20
|
axis?: IAxisCommonTheme;
|
|
20
21
|
axisBand?: IAxisCommonTheme;
|
|
@@ -42,3 +43,10 @@ export interface IComponentTheme {
|
|
|
42
43
|
[ComponentTypeEnum.poptip]?: IPoptipTheme;
|
|
43
44
|
[ComponentTypeEnum.totalLabel]?: ITotalLabelTheme;
|
|
44
45
|
}
|
|
46
|
+
export type ComponentThemeWithDirection<T extends {
|
|
47
|
+
orient?: IOrientType;
|
|
48
|
+
}> = T & {
|
|
49
|
+
orient?: IOrientType;
|
|
50
|
+
[Direction.horizontal]?: Omit<T, 'orient'>;
|
|
51
|
+
[Direction.vertical]?: Omit<T, 'orient'>;
|
|
52
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/interface/theme.ts"],"names":[],"mappings":"","file":"theme.js","sourcesContent":["import type { IAxisCommonTheme, ICartesianAxisCommonTheme, IPolarAxisCommonTheme } from '../axis';\nimport type { IBrushTheme } from '../brush';\nimport type { ICrosshairTheme } from '../crosshair/interface';\nimport type { IDataZoomTheme, IScrollBarTheme } from '../data-zoom';\nimport type { IIndicatorTheme } from '../indicator/interface';\nimport type { IDiscreteLegendTheme, IColorLegendTheme, ISizeLegendTheme } from '../legend';\nimport type { IMapLabelTheme } from '../map-label';\nimport type { IMarkAreaTheme } from '../marker/mark-area/interface';\nimport type { IMarkLineTheme } from '../marker/mark-line/interface';\nimport type { IMarkPointTheme } from '../marker/mark-point/interface';\nimport type { IPlayerTheme } from '../player';\nimport type { ITitleTheme } from '../title';\nimport type { ITooltipTheme } from '../tooltip/interface';\nimport type { ComponentTypeEnum } from './type';\nimport type { ITotalLabelTheme } from '../label';\nimport type { IPoptipTheme } from '../poptip/interface';\nimport type { IColorKey } from '../../theme';\n\nexport interface IComponentTheme {\n /**\n * 通用坐标轴配置\n */\n axis?: IAxisCommonTheme;\n /**\n * 离散轴的通用配置\n */\n axisBand?: IAxisCommonTheme;\n /**\n * 连续轴的通用配置\n */\n axisLinear?: IAxisCommonTheme;\n /**\n * 笛卡尔坐标系下 x 轴的配置\n */\n axisX?: ICartesianAxisCommonTheme;\n /**\n * 笛卡尔坐标系下 y 轴配置\n */\n axisY?: ICartesianAxisCommonTheme;\n /**\n * 笛卡尔坐标系下 z 轴配置\n */\n axisZ?: ICartesianAxisCommonTheme;\n /**\n * 极坐标系下半径轴配置\n */\n axisRadius?: IPolarAxisCommonTheme;\n /**\n * 极坐标系下角度轴配置\n */\n axisAngle?: IPolarAxisCommonTheme;\n /**\n * 离散图例配置\n */\n [ComponentTypeEnum.discreteLegend]?: IDiscreteLegendTheme;\n /**\n * 连续颜色图例配置\n */\n [ComponentTypeEnum.colorLegend]?: IColorLegendTheme;\n /**\n * 连续尺寸图例配置\n */\n [ComponentTypeEnum.sizeLegend]?: ISizeLegendTheme;\n /**\n * markLine 标记配置\n */\n [ComponentTypeEnum.markLine]?: IMarkLineTheme;\n /**\n * markArea 标记配置\n */\n [ComponentTypeEnum.markArea]?: IMarkAreaTheme;\n /**\n * markPoint 标记配置\n */\n [ComponentTypeEnum.markPoint]?: IMarkPointTheme;\n /**\n * tooltip 组件配置\n */\n [ComponentTypeEnum.tooltip]?: ITooltipTheme<string | IColorKey>;\n /**\n * crosshair 配置\n */\n [ComponentTypeEnum.crosshair]?: ICrosshairTheme;\n /**\n * dataZoom 配置\n */\n [ComponentTypeEnum.dataZoom]?: IDataZoomTheme;\n /**\n * scrollbar 滚动条配置\n */\n [ComponentTypeEnum.scrollBar]?: IScrollBarTheme;\n /**\n * 指标卡组件配置\n */\n [ComponentTypeEnum.indicator]?: IIndicatorTheme;\n /**\n * 播放器配置\n */\n [ComponentTypeEnum.player]?: IPlayerTheme;\n /**\n * 框选配置\n */\n [ComponentTypeEnum.brush]?: IBrushTheme;\n /**\n * 图表标题配置\n */\n [ComponentTypeEnum.title]?: ITitleTheme;\n /**\n * 地图标签配置\n */\n [ComponentTypeEnum.mapLabel]?: IMapLabelTheme;\n /**\n * 省略文本配置\n */\n [ComponentTypeEnum.poptip]?: IPoptipTheme;\n /**\n * 堆叠总计标签配置\n * @since 1.3.0\n */\n [ComponentTypeEnum.totalLabel]?: ITotalLabelTheme;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/interface/theme.ts"],"names":[],"mappings":"","file":"theme.js","sourcesContent":["import type { IAxisCommonTheme, ICartesianAxisCommonTheme, IPolarAxisCommonTheme } from '../axis';\nimport type { IBrushTheme } from '../brush';\nimport type { ICrosshairTheme } from '../crosshair/interface';\nimport type { IDataZoomTheme, IScrollBarTheme } from '../data-zoom';\nimport type { IIndicatorTheme } from '../indicator/interface';\nimport type { IDiscreteLegendTheme, IColorLegendTheme, ISizeLegendTheme } from '../legend';\nimport type { IMapLabelTheme } from '../map-label';\nimport type { IMarkAreaTheme } from '../marker/mark-area/interface';\nimport type { IMarkLineTheme } from '../marker/mark-line/interface';\nimport type { IMarkPointTheme } from '../marker/mark-point/interface';\nimport type { IPlayerTheme } from '../player';\nimport type { ITitleTheme } from '../title';\nimport type { ITooltipTheme } from '../tooltip/interface';\nimport type { ComponentTypeEnum } from './type';\nimport type { ITotalLabelTheme } from '../label';\nimport type { IPoptipTheme } from '../poptip/interface';\nimport type { IColorKey } from '../../theme';\nimport type { Direction, IOrientType } from '../../typings';\n\nexport interface IComponentTheme {\n /**\n * 通用坐标轴配置\n */\n axis?: IAxisCommonTheme;\n /**\n * 离散轴的通用配置\n */\n axisBand?: IAxisCommonTheme;\n /**\n * 连续轴的通用配置\n */\n axisLinear?: IAxisCommonTheme;\n /**\n * 笛卡尔坐标系下 x 轴的配置\n */\n axisX?: ICartesianAxisCommonTheme;\n /**\n * 笛卡尔坐标系下 y 轴配置\n */\n axisY?: ICartesianAxisCommonTheme;\n /**\n * 笛卡尔坐标系下 z 轴配置\n */\n axisZ?: ICartesianAxisCommonTheme;\n /**\n * 极坐标系下半径轴配置\n */\n axisRadius?: IPolarAxisCommonTheme;\n /**\n * 极坐标系下角度轴配置\n */\n axisAngle?: IPolarAxisCommonTheme;\n /**\n * 离散图例配置\n */\n [ComponentTypeEnum.discreteLegend]?: IDiscreteLegendTheme;\n /**\n * 连续颜色图例配置\n */\n [ComponentTypeEnum.colorLegend]?: IColorLegendTheme;\n /**\n * 连续尺寸图例配置\n */\n [ComponentTypeEnum.sizeLegend]?: ISizeLegendTheme;\n /**\n * markLine 标记配置\n */\n [ComponentTypeEnum.markLine]?: IMarkLineTheme;\n /**\n * markArea 标记配置\n */\n [ComponentTypeEnum.markArea]?: IMarkAreaTheme;\n /**\n * markPoint 标记配置\n */\n [ComponentTypeEnum.markPoint]?: IMarkPointTheme;\n /**\n * tooltip 组件配置\n */\n [ComponentTypeEnum.tooltip]?: ITooltipTheme<string | IColorKey>;\n /**\n * crosshair 配置\n */\n [ComponentTypeEnum.crosshair]?: ICrosshairTheme;\n /**\n * dataZoom 配置\n */\n [ComponentTypeEnum.dataZoom]?: IDataZoomTheme;\n /**\n * scrollbar 滚动条配置\n */\n [ComponentTypeEnum.scrollBar]?: IScrollBarTheme;\n /**\n * 指标卡组件配置\n */\n [ComponentTypeEnum.indicator]?: IIndicatorTheme;\n /**\n * 播放器配置\n */\n [ComponentTypeEnum.player]?: IPlayerTheme;\n /**\n * 框选配置\n */\n [ComponentTypeEnum.brush]?: IBrushTheme;\n /**\n * 图表标题配置\n */\n [ComponentTypeEnum.title]?: ITitleTheme;\n /**\n * 地图标签配置\n */\n [ComponentTypeEnum.mapLabel]?: IMapLabelTheme;\n /**\n * 省略文本配置\n */\n [ComponentTypeEnum.poptip]?: IPoptipTheme;\n /**\n * 堆叠总计标签配置\n * @since 1.3.0\n */\n [ComponentTypeEnum.totalLabel]?: ITotalLabelTheme;\n}\n\n/** 区分方向的组件主题类型 */\nexport type ComponentThemeWithDirection<\n T extends {\n orient?: IOrientType;\n }\n> = T /* 通用主题,留作兼容 */ & {\n orient?: IOrientType;\n /** 横向主题 */\n [Direction.horizontal]?: Omit<T, 'orient'>;\n /** 纵向主题 */\n [Direction.vertical]?: Omit<T, 'orient'>;\n};\n"]}
|
|
@@ -11,7 +11,7 @@ export interface ILabelSpec extends IComponentSpec {
|
|
|
11
11
|
interactive?: boolean;
|
|
12
12
|
textType?: 'text' | 'rich';
|
|
13
13
|
formatMethod?: IFormatMethod<[text: string | string[], datum?: Datum, ctx?: ILabelFormatMethodContext]>;
|
|
14
|
-
formatter?: string;
|
|
14
|
+
formatter?: string | string[];
|
|
15
15
|
offset?: number;
|
|
16
16
|
position?: string;
|
|
17
17
|
style?: ConvertToMarkStyleSpec<IComposedTextMarkSpec>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/label/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { BaseLabelAttrs } from '@visactor/vrender-components';\nimport type { ConvertToMarkStyleSpec, Datum, IComposedTextMarkSpec, IFormatMethod, ITextMarkSpec } from '../../typings';\nimport type { IComponentSpec } from '../base/interface';\nimport type { ILabelMark } from '../../mark/label';\nimport type { ISeries } from '../../series';\n\nexport interface ILabelFormatMethodContext {\n series?: ISeries;\n}\n\nexport interface ILabelSpec extends IComponentSpec {\n /** 默认不显示标签 */\n visible?: boolean;\n /**\n * 是否支持交互。\n * @default false\n */\n interactive?: boolean;\n /**\n * 文本类型:text, rich,\n * @since 1.7.0\n * @deprecated\n */\n textType?: 'text' | 'rich';\n /**\n * 格式化函数\n * @since 1.10.0 支持返回结构 `{type:'rich', text: [{text:'some text', fill:'black', fontSize: 20}]}\n */\n formatMethod?: IFormatMethod<[text: string | string[], datum?: Datum, ctx?: ILabelFormatMethodContext]>;\n /**\n * 字符串模版\n * 用{}包裹变量名的字符串模版, 变量名取自数据属性值\n *
|
|
1
|
+
{"version":3,"sources":["../src/component/label/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { BaseLabelAttrs } from '@visactor/vrender-components';\nimport type { ConvertToMarkStyleSpec, Datum, IComposedTextMarkSpec, IFormatMethod, ITextMarkSpec } from '../../typings';\nimport type { IComponentSpec } from '../base/interface';\nimport type { ILabelMark } from '../../mark/label';\nimport type { ISeries } from '../../series';\n\nexport interface ILabelFormatMethodContext {\n series?: ISeries;\n}\n\nexport interface ILabelSpec extends IComponentSpec {\n /** 默认不显示标签 */\n visible?: boolean;\n /**\n * 是否支持交互。\n * @default false\n */\n interactive?: boolean;\n /**\n * 文本类型:text, rich,\n * @since 1.7.0\n * @deprecated\n */\n textType?: 'text' | 'rich';\n /**\n * 格式化函数\n * @since 1.10.0 支持返回结构 `{type:'rich', text: [{text:'some text', fill:'black', fontSize: 20}]}\n */\n formatMethod?: IFormatMethod<[text: string | string[], datum?: Datum, ctx?: ILabelFormatMethodContext]>;\n /**\n * 字符串模版\n * 用{}包裹变量名的字符串模版, 变量名取自数据属性值\n * eg: 'type={type},value={value}'\n * @since 1.7.0\n */\n formatter?: string | string[];\n /** 标签与其对应数据图元的间距 */\n offset?: number;\n /** 标签位置 */\n position?: string;\n /** 标签样式配置 */\n style?: ConvertToMarkStyleSpec<IComposedTextMarkSpec>;\n /** 交互样式配置 */\n state?: LabelStateStyle<Partial<IComposedTextMarkSpec>>;\n /** 标签防重叠配置 */\n overlap?: BaseLabelAttrs['overlap'];\n /** 标签智能反色配置 */\n smartInvert?: BaseLabelAttrs['smartInvert'];\n /** 动画配置 */\n animation?: BaseLabelAttrs['animation'];\n /** 自定义标签数据筛选和排序\n * @since 1.3.0\n */\n dataFilter?: BaseLabelAttrs['dataFilter'];\n /** 自定义标签布局函数。\n * @description 当配置了 customLayoutFunc 后,默认布局和防重叠逻辑将不再生效。(overlap/position/offset不生效)\n * @since 1.3.0\n */\n customLayoutFunc?: BaseLabelAttrs['customLayoutFunc'];\n /** 自定义标签躲避函数\n * @description 当配置了 customOverlapFunc 后,会根据 position 和 offset 进行初始布局。配置的防重叠逻辑(overlap)不生效。\n * @since 1.3.0\n */\n customOverlapFunc?: BaseLabelAttrs['customOverlapFunc'];\n /** 标签布局 */\n labelLayout?: 'series' | 'region';\n /** 是否支持3D */\n support3d?: boolean;\n /**\n * 是否同步数据图元的状态变化\n * @default false\n * @since 1.9.0\n */\n syncState?: boolean;\n}\n\nexport type IMultiLabelSpec<T extends Omit<ILabelSpec, 'position'>> = T | T[];\n\ntype LabelStateStyle<T> = {\n hover?: T;\n hover_reverse?: T;\n selected?: T;\n selected_reverse?: T;\n};\n\nexport type ITotalLabelSpec = Pick<\n ILabelSpec,\n 'visible' | 'formatMethod' | 'interactive' | 'offset' | 'style' | 'state' | 'textType'\n>;\n\nexport interface ITotalLabelTheme\n extends Pick<ILabelSpec, 'visible' | 'interactive' | 'offset' | 'overlap' | 'smartInvert' | 'animation'> {\n style?: ITextMarkSpec;\n}\n\n// 内部处理转换后的标签配置\nexport type TransformedLabelSpec = ILabelSpec & {\n getStyleHandler: (series: ISeries) => (mark?: ILabelMark, spec?: any) => void;\n};\n"]}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { isBoolean, isFunction, isObject, isString
|
|
1
|
+
import { isBoolean, isFunction, isObject, isString } from "@visactor/vutils";
|
|
2
2
|
|
|
3
3
|
import { createText } from "@visactor/vrender-core";
|
|
4
4
|
|
|
5
|
+
import { getFormatFunction } from "../util";
|
|
6
|
+
|
|
5
7
|
export const labelRuleMap = {
|
|
6
8
|
rect: barLabel,
|
|
7
9
|
symbol: symbolLabel,
|
|
@@ -34,9 +36,10 @@ export function textAttribute(labelInfo, datum, formatMethod, formatter) {
|
|
|
34
36
|
const attr = labelMark.getAttribute(key, datum);
|
|
35
37
|
textAttribute[key] = attr;
|
|
36
38
|
}
|
|
37
|
-
|
|
39
|
+
const {formatFunc: formatFunc, args: args} = getFormatFunction(formatMethod, formatter, textAttribute.text, datum);
|
|
40
|
+
return formatFunc && (textAttribute.text = formatFunc(...args, {
|
|
38
41
|
series: series
|
|
39
|
-
})),
|
|
42
|
+
})), textAttribute;
|
|
40
43
|
}
|
|
41
44
|
|
|
42
45
|
function uniformLabelPosition(position) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/label/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import type { WaterfallSeries } from './../../series/waterfall/waterfall';\nimport type { Datum } from '../../typings/common';\nimport { Direction } from '../../typings/space';\nimport type { ILabelInfo } from './label';\nimport type { BaseLabelAttrs, LabelItem, OverlapAttrs, Strategy } from '@visactor/vrender-components';\nimport type { ICartesianSeries } from '../../series/interface';\nimport { isBoolean, isFunction, isObject, isString, substitute } from '@visactor/vutils';\nimport { createText } from '@visactor/vrender-core';\nimport type { IWaterfallSeriesSpec } from '../../series/waterfall/interface';\nimport type { ILabelSpec } from './interface';\n\nexport const labelRuleMap = {\n rect: barLabel,\n symbol: symbolLabel,\n arc: pieLabel,\n point: pointLabel,\n 'line-data': lineDataLabel,\n stackLabel: stackLabel,\n line: LineLabel,\n area: LineLabel,\n rect3d: barLabel,\n arc3d: pieLabel,\n treemap: treemapLabel\n};\n\nexport function defaultLabelConfig(rule: string, labelInfo: ILabelInfo) {\n const { labelSpec } = labelInfo;\n if (labelSpec.overlap && !isObject(labelSpec.overlap)) {\n labelSpec.overlap = {};\n }\n const processor = labelRuleMap[rule] ?? labelRuleMap.point;\n return processor(labelInfo);\n}\n\nexport function textAttribute(\n labelInfo: ILabelInfo,\n datum: Datum,\n formatMethod?: ILabelSpec['formatMethod'],\n formatter?: ILabelSpec['formatter']\n) {\n const { labelMark, series } = labelInfo;\n const field = series.getMeasureField()[0];\n const textAttribute = { text: datum[field], data: datum, textType: labelInfo.labelSpec.textType ?? 'text' } as any;\n\n const attributes = Object.keys(labelMark.stateStyle.normal);\n\n for (const key of attributes) {\n const attr = labelMark.getAttribute(key as any, datum);\n textAttribute[key] = attr;\n }\n\n if (formatMethod) {\n textAttribute.text = formatMethod(textAttribute.text, datum, { series });\n }\n\n if (formatter) {\n textAttribute.text = substitute(formatter, datum);\n }\n return textAttribute;\n}\n\nfunction uniformLabelPosition(position?: ILabelSpec['position']) {\n if (isFunction(position)) {\n return (datum: Datum) => {\n return position(datum.data);\n };\n }\n return position;\n}\n\n/**\n * symbol 图元标签规则。\n */\nexport function symbolLabel(labelInfo: ILabelInfo) {\n const { series, labelSpec } = labelInfo;\n\n // encode position config\n const defaultPosition = (series as ICartesianSeries).direction === 'horizontal' ? 'right' : 'top';\n const position = uniformLabelPosition(labelSpec.position) ?? defaultPosition;\n\n // encode overlap config\n let overlap;\n if (labelSpec.overlap === false) {\n overlap = false;\n } else {\n overlap = {\n strategy: (labelSpec.overlap as OverlapAttrs)?.strategy ?? symbolLabelOverlapStrategy(),\n avoidBaseMark: position !== 'center'\n };\n }\n\n return { position, overlap };\n}\n\nexport function lineDataLabel(labelInfo: ILabelInfo) {\n const result = symbolLabel(labelInfo);\n if (!isBoolean(result.overlap)) {\n result.overlap.avoidBaseMark = false;\n }\n return result;\n}\n\nfunction symbolLabelOverlapStrategy() {\n const strategy: Strategy[] = [\n {\n type: 'position',\n position: ['top', 'bottom', 'right', 'left', 'top-right', 'top-left', 'bottom-left', 'bottom-right']\n }\n ];\n\n return strategy;\n}\n\n/**\n *\n */\nexport function barLabel(labelInfo: ILabelInfo) {\n const { series, labelSpec = {} as ILabelSpec } = labelInfo;\n\n // encode position config\n const originPosition = uniformLabelPosition(labelSpec.position) ?? 'outside';\n const direction = (series as ICartesianSeries).direction ?? 'vertical';\n const isInverse =\n (series as ICartesianSeries).direction === 'horizontal'\n ? (series as ICartesianSeries).getXAxisHelper()?.isInverse()\n : (series as ICartesianSeries).getYAxisHelper()?.isInverse();\n\n let position = originPosition as BaseLabelAttrs['position'];\n\n if (isString(originPosition) && originPosition === 'outside') {\n position = (data: Datum) => {\n const { data: datum } = data;\n const dataField = series.getMeasureField()[0];\n const positionMap = { vertical: ['top', 'bottom'], horizontal: ['right', 'left'] };\n const index = (datum?.[dataField] >= 0 && isInverse) || (datum?.[dataField] < 0 && !isInverse) ? 1 : 0;\n return positionMap[direction][index];\n };\n }\n // encode overlap config\n let overlap;\n if (labelSpec.overlap === false) {\n overlap = false;\n } else {\n overlap = {\n strategy: (labelSpec.overlap as OverlapAttrs)?.strategy ?? barLabelOverlapStrategy(series as ICartesianSeries)\n };\n }\n\n // encode smartInvert\n let smartInvert = false;\n if (isString(originPosition) && originPosition.includes('inside')) {\n smartInvert = true;\n }\n\n return { position, overlap, smartInvert };\n}\n\nfunction barLabelOverlapStrategy(series: ICartesianSeries) {\n const strategy: Strategy[] = [\n {\n type: 'position',\n position: (data: any) => {\n const { data: datum } = data;\n const dataField = series.getMeasureField()[0];\n const isInverse =\n (series as ICartesianSeries).direction === 'horizontal'\n ? (series as ICartesianSeries).getXAxisHelper()?.isInverse()\n : (series as ICartesianSeries).getYAxisHelper()?.isInverse();\n if (isInverse) {\n if (datum?.[dataField] >= 0) {\n return series.direction === 'horizontal' ? ['left', 'inside-left'] : ['bottom', 'inside-bottom'];\n }\n return series.direction === 'horizontal' ? ['right', 'inside-right'] : ['top', 'inside-top'];\n }\n if (datum?.[dataField] >= 0) {\n return series.direction === 'horizontal' ? ['right', 'inside-right'] : ['top', 'inside-top'];\n }\n return series.direction === 'horizontal' ? ['left', 'inside-left'] : ['bottom', 'inside-bottom'];\n }\n }\n ];\n\n return strategy;\n}\n\n/**\n * 无关图元,指定x/y坐标的标签配置规则\n */\nexport function pointLabel(labelInfo: ILabelInfo) {\n const { labelSpec } = labelInfo;\n\n // encode overlap config\n let overlap;\n if (labelSpec.overlap === false) {\n overlap = false;\n } else {\n overlap = {\n avoidBaseMark: false\n };\n }\n\n return { position: 'center', overlap };\n}\n\n/**\n * pie 图元标签配置规则\n */\n\nexport function pieLabel(labelInfo: ILabelInfo) {\n const { labelSpec } = labelInfo;\n // encode position config\n const labelPosition = uniformLabelPosition(labelSpec.position) ?? 'outside';\n const position = labelPosition as BaseLabelAttrs['position'];\n\n // encode smartInvert\n let smartInvert;\n if (labelSpec.smartInvert) {\n smartInvert = labelSpec.smartInvert;\n } else {\n smartInvert = isString(labelPosition) && labelPosition.includes('inside');\n }\n\n return { position, smartInvert };\n}\n\n/**\n * 瀑布图堆积标签配置规则\n */\n\nexport function stackLabel(labelInfo: ILabelInfo) {\n const series = labelInfo.series as WaterfallSeries;\n const labelSpec = labelInfo.labelSpec || ({} as IWaterfallSeriesSpec['stackLabel']);\n const totalData = series.getTotalData();\n return {\n customLayoutFunc: (labels: LabelItem[]) => {\n return labels.map(label => {\n const pos = labelSpec.position || 'withChange';\n const offset = labelSpec.offset || 0;\n\n const datum = label.data;\n const attribute = textAttribute(labelInfo, datum, labelSpec.formatMethod);\n const x = (datum: any) => {\n if (series.direction === Direction.horizontal) {\n if (pos === 'middle') {\n return (series.totalPositionX(datum, 'end') + series.totalPositionY(datum, 'start')) * 0.5;\n } else if (pos === 'max') {\n return series.totalPositionX(datum, datum.end >= datum.start ? 'end' : 'start') + offset;\n } else if (pos === 'min') {\n return series.totalPositionX(datum, datum.end >= datum.start ? 'start' : 'end') - offset;\n }\n return series.totalPositionX(datum, 'end') + (datum.end >= datum.start ? offset : -offset);\n }\n return series.totalPositionX(datum, 'index', 0.5);\n };\n const y = (datum: any) => {\n if (series.direction === Direction.horizontal) {\n return series.totalPositionY(datum, 'index', 0.5);\n }\n if (pos === 'middle') {\n return (series.totalPositionY(datum, 'end') + series.totalPositionY(datum, 'start')) * 0.5;\n } else if (pos === 'max') {\n return series.totalPositionY(datum, datum.end >= datum.start ? 'end' : 'start') - offset;\n } else if (pos === 'min') {\n return series.totalPositionY(datum, datum.end >= datum.start ? 'start' : 'end') + offset;\n }\n return series.totalPositionY(datum, 'end') + (datum.end >= datum.start ? -offset : offset);\n };\n attribute.x = x(datum);\n attribute.y = y(datum);\n if (series.direction === Direction.horizontal) {\n attribute.textAlign =\n pos === 'middle'\n ? 'center'\n : (pos === 'withChange' && datum.end - datum.start >= 0) || pos === 'max'\n ? 'left'\n : 'right';\n } else {\n attribute.textBaseline =\n pos === 'middle'\n ? pos\n : (pos === 'withChange' && datum.end - datum.start >= 0) || pos === 'max'\n ? 'bottom'\n : 'top';\n }\n return createText({ ...attribute, id: label.id });\n });\n },\n dataFilter: (labels: LabelItem[]) => {\n const result: LabelItem[] = [];\n totalData.forEach((total: any) => {\n const label = labels.find(labelItem => {\n return total.index === labelItem.data?.[series.getDimensionField()[0]];\n });\n if (label) {\n label.data = total;\n result.push(label);\n }\n });\n return result;\n },\n overlap: {\n strategy: [] as any\n }\n };\n}\n\n/**\n * treemap 非叶子节点标签配置规则\n */\nexport function treemapLabel(labelInfo: ILabelInfo) {\n return {\n customLayoutFunc: (labels: LabelItem[], text: any) => text,\n overlap: false\n };\n}\n\n/**\n * line 图元标签\n */\n\nexport function LineLabel(labelInfo: ILabelInfo) {\n const { labelSpec, series } = labelInfo;\n\n const seriesData = series.getViewDataStatistics?.().latestData?.[series.getSeriesField()]?.values;\n const data = seriesData ? seriesData.map((d: Datum, index: number) => ({ [series.getSeriesField()]: d, index })) : [];\n return { position: labelSpec.position ?? 'end', data };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/component/label/util.ts"],"names":[],"mappings":"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","file":"util.js","sourcesContent":["import type { WaterfallSeries } from './../../series/waterfall/waterfall';\nimport type { Datum } from '../../typings/common';\nimport { Direction } from '../../typings/space';\nimport type { ILabelInfo } from './label';\nimport type { BaseLabelAttrs, LabelItem, OverlapAttrs, Strategy } from '@visactor/vrender-components';\nimport type { ICartesianSeries } from '../../series/interface';\nimport { isBoolean, isFunction, isObject, isString } from '@visactor/vutils';\nimport { createText } from '@visactor/vrender-core';\nimport type { IWaterfallSeriesSpec } from '../../series/waterfall/interface';\nimport type { ILabelSpec } from './interface';\nimport { getFormatFunction } from '../util';\n\nexport const labelRuleMap = {\n rect: barLabel,\n symbol: symbolLabel,\n arc: pieLabel,\n point: pointLabel,\n 'line-data': lineDataLabel,\n stackLabel: stackLabel,\n line: LineLabel,\n area: LineLabel,\n rect3d: barLabel,\n arc3d: pieLabel,\n treemap: treemapLabel\n};\n\nexport function defaultLabelConfig(rule: string, labelInfo: ILabelInfo) {\n const { labelSpec } = labelInfo;\n if (labelSpec.overlap && !isObject(labelSpec.overlap)) {\n labelSpec.overlap = {};\n }\n const processor = labelRuleMap[rule] ?? labelRuleMap.point;\n return processor(labelInfo);\n}\n\nexport function textAttribute(\n labelInfo: ILabelInfo,\n datum: Datum,\n formatMethod?: ILabelSpec['formatMethod'],\n formatter?: ILabelSpec['formatter']\n) {\n const { labelMark, series } = labelInfo;\n const field = series.getMeasureField()[0];\n const textAttribute = { text: datum[field], data: datum, textType: labelInfo.labelSpec.textType ?? 'text' } as any;\n\n const attributes = Object.keys(labelMark.stateStyle.normal);\n\n for (const key of attributes) {\n const attr = labelMark.getAttribute(key as any, datum);\n textAttribute[key] = attr;\n }\n\n const { formatFunc, args } = getFormatFunction(formatMethod, formatter, textAttribute.text, datum);\n if (formatFunc) {\n textAttribute.text = formatFunc(...args, { series });\n }\n\n return textAttribute;\n}\n\nfunction uniformLabelPosition(position?: ILabelSpec['position']) {\n if (isFunction(position)) {\n return (datum: Datum) => {\n return position(datum.data);\n };\n }\n return position;\n}\n\n/**\n * symbol 图元标签规则。\n */\nexport function symbolLabel(labelInfo: ILabelInfo) {\n const { series, labelSpec } = labelInfo;\n\n // encode position config\n const defaultPosition = (series as ICartesianSeries).direction === 'horizontal' ? 'right' : 'top';\n const position = uniformLabelPosition(labelSpec.position) ?? defaultPosition;\n\n // encode overlap config\n let overlap;\n if (labelSpec.overlap === false) {\n overlap = false;\n } else {\n overlap = {\n strategy: (labelSpec.overlap as OverlapAttrs)?.strategy ?? symbolLabelOverlapStrategy(),\n avoidBaseMark: position !== 'center'\n };\n }\n\n return { position, overlap };\n}\n\nexport function lineDataLabel(labelInfo: ILabelInfo) {\n const result = symbolLabel(labelInfo);\n if (!isBoolean(result.overlap)) {\n result.overlap.avoidBaseMark = false;\n }\n return result;\n}\n\nfunction symbolLabelOverlapStrategy() {\n const strategy: Strategy[] = [\n {\n type: 'position',\n position: ['top', 'bottom', 'right', 'left', 'top-right', 'top-left', 'bottom-left', 'bottom-right']\n }\n ];\n\n return strategy;\n}\n\n/**\n *\n */\nexport function barLabel(labelInfo: ILabelInfo) {\n const { series, labelSpec = {} as ILabelSpec } = labelInfo;\n\n // encode position config\n const originPosition = uniformLabelPosition(labelSpec.position) ?? 'outside';\n const direction = (series as ICartesianSeries).direction ?? 'vertical';\n const isInverse =\n (series as ICartesianSeries).direction === 'horizontal'\n ? (series as ICartesianSeries).getXAxisHelper()?.isInverse()\n : (series as ICartesianSeries).getYAxisHelper()?.isInverse();\n\n let position = originPosition as BaseLabelAttrs['position'];\n\n if (isString(originPosition) && originPosition === 'outside') {\n position = (data: Datum) => {\n const { data: datum } = data;\n const dataField = series.getMeasureField()[0];\n const positionMap = { vertical: ['top', 'bottom'], horizontal: ['right', 'left'] };\n const index = (datum?.[dataField] >= 0 && isInverse) || (datum?.[dataField] < 0 && !isInverse) ? 1 : 0;\n return positionMap[direction][index];\n };\n }\n // encode overlap config\n let overlap;\n if (labelSpec.overlap === false) {\n overlap = false;\n } else {\n overlap = {\n strategy: (labelSpec.overlap as OverlapAttrs)?.strategy ?? barLabelOverlapStrategy(series as ICartesianSeries)\n };\n }\n\n // encode smartInvert\n let smartInvert = false;\n if (isString(originPosition) && originPosition.includes('inside')) {\n smartInvert = true;\n }\n\n return { position, overlap, smartInvert };\n}\n\nfunction barLabelOverlapStrategy(series: ICartesianSeries) {\n const strategy: Strategy[] = [\n {\n type: 'position',\n position: (data: any) => {\n const { data: datum } = data;\n const dataField = series.getMeasureField()[0];\n const isInverse =\n (series as ICartesianSeries).direction === 'horizontal'\n ? (series as ICartesianSeries).getXAxisHelper()?.isInverse()\n : (series as ICartesianSeries).getYAxisHelper()?.isInverse();\n if (isInverse) {\n if (datum?.[dataField] >= 0) {\n return series.direction === 'horizontal' ? ['left', 'inside-left'] : ['bottom', 'inside-bottom'];\n }\n return series.direction === 'horizontal' ? ['right', 'inside-right'] : ['top', 'inside-top'];\n }\n if (datum?.[dataField] >= 0) {\n return series.direction === 'horizontal' ? ['right', 'inside-right'] : ['top', 'inside-top'];\n }\n return series.direction === 'horizontal' ? ['left', 'inside-left'] : ['bottom', 'inside-bottom'];\n }\n }\n ];\n\n return strategy;\n}\n\n/**\n * 无关图元,指定x/y坐标的标签配置规则\n */\nexport function pointLabel(labelInfo: ILabelInfo) {\n const { labelSpec } = labelInfo;\n\n // encode overlap config\n let overlap;\n if (labelSpec.overlap === false) {\n overlap = false;\n } else {\n overlap = {\n avoidBaseMark: false\n };\n }\n\n return { position: 'center', overlap };\n}\n\n/**\n * pie 图元标签配置规则\n */\n\nexport function pieLabel(labelInfo: ILabelInfo) {\n const { labelSpec } = labelInfo;\n // encode position config\n const labelPosition = uniformLabelPosition(labelSpec.position) ?? 'outside';\n const position = labelPosition as BaseLabelAttrs['position'];\n\n // encode smartInvert\n let smartInvert;\n if (labelSpec.smartInvert) {\n smartInvert = labelSpec.smartInvert;\n } else {\n smartInvert = isString(labelPosition) && labelPosition.includes('inside');\n }\n\n return { position, smartInvert };\n}\n\n/**\n * 瀑布图堆积标签配置规则\n */\n\nexport function stackLabel(labelInfo: ILabelInfo) {\n const series = labelInfo.series as WaterfallSeries;\n const labelSpec = labelInfo.labelSpec || ({} as IWaterfallSeriesSpec['stackLabel']);\n const totalData = series.getTotalData();\n return {\n customLayoutFunc: (labels: LabelItem[]) => {\n return labels.map(label => {\n const pos = labelSpec.position || 'withChange';\n const offset = labelSpec.offset || 0;\n\n const datum = label.data;\n const attribute = textAttribute(labelInfo, datum, labelSpec.formatMethod);\n const x = (datum: any) => {\n if (series.direction === Direction.horizontal) {\n if (pos === 'middle') {\n return (series.totalPositionX(datum, 'end') + series.totalPositionY(datum, 'start')) * 0.5;\n } else if (pos === 'max') {\n return series.totalPositionX(datum, datum.end >= datum.start ? 'end' : 'start') + offset;\n } else if (pos === 'min') {\n return series.totalPositionX(datum, datum.end >= datum.start ? 'start' : 'end') - offset;\n }\n return series.totalPositionX(datum, 'end') + (datum.end >= datum.start ? offset : -offset);\n }\n return series.totalPositionX(datum, 'index', 0.5);\n };\n const y = (datum: any) => {\n if (series.direction === Direction.horizontal) {\n return series.totalPositionY(datum, 'index', 0.5);\n }\n if (pos === 'middle') {\n return (series.totalPositionY(datum, 'end') + series.totalPositionY(datum, 'start')) * 0.5;\n } else if (pos === 'max') {\n return series.totalPositionY(datum, datum.end >= datum.start ? 'end' : 'start') - offset;\n } else if (pos === 'min') {\n return series.totalPositionY(datum, datum.end >= datum.start ? 'start' : 'end') + offset;\n }\n return series.totalPositionY(datum, 'end') + (datum.end >= datum.start ? -offset : offset);\n };\n attribute.x = x(datum);\n attribute.y = y(datum);\n if (series.direction === Direction.horizontal) {\n attribute.textAlign =\n pos === 'middle'\n ? 'center'\n : (pos === 'withChange' && datum.end - datum.start >= 0) || pos === 'max'\n ? 'left'\n : 'right';\n } else {\n attribute.textBaseline =\n pos === 'middle'\n ? pos\n : (pos === 'withChange' && datum.end - datum.start >= 0) || pos === 'max'\n ? 'bottom'\n : 'top';\n }\n return createText({ ...attribute, id: label.id });\n });\n },\n dataFilter: (labels: LabelItem[]) => {\n const result: LabelItem[] = [];\n totalData.forEach((total: any) => {\n const label = labels.find(labelItem => {\n return total.index === labelItem.data?.[series.getDimensionField()[0]];\n });\n if (label) {\n label.data = total;\n result.push(label);\n }\n });\n return result;\n },\n overlap: {\n strategy: [] as any\n }\n };\n}\n\n/**\n * treemap 非叶子节点标签配置规则\n */\nexport function treemapLabel(labelInfo: ILabelInfo) {\n return {\n customLayoutFunc: (labels: LabelItem[], text: any) => text,\n overlap: false\n };\n}\n\n/**\n * line 图元标签\n */\n\nexport function LineLabel(labelInfo: ILabelInfo) {\n const { labelSpec, series } = labelInfo;\n\n const seriesData = series.getViewDataStatistics?.().latestData?.[series.getSeriesField()]?.values;\n const data = seriesData ? seriesData.map((d: Datum, index: number) => ({ [series.getSeriesField()]: d, index })) : [];\n return { position: labelSpec.position ?? 'end', data };\n}\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { IRectMarkSpec, ISymbolMarkSpec, ITextMarkSpec, StringOrNumber } from '../../../typings';
|
|
2
|
+
import type { ComponentThemeWithDirection } from '../../interface';
|
|
2
3
|
import type { ILegendCommonSpec, NoVisibleMarkStyle } from '../interface';
|
|
3
4
|
type Text = StringOrNumber;
|
|
4
5
|
export type TextAttribute = {
|
|
@@ -44,16 +45,9 @@ export type ISizeLegendSpec = IContinuousLegendSpec & {
|
|
|
44
45
|
align?: 'top' | 'bottom' | 'left' | 'right';
|
|
45
46
|
};
|
|
46
47
|
export type IContinuousLegendTheme = Omit<IContinuousLegendSpec, 'type' | 'field' | 'scale' | 'regionIndex' | 'regionId' | 'seriesIndex' | 'seriesId' | 'id' | 'defaultSelected'>;
|
|
47
|
-
export
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
export
|
|
52
|
-
horizontal?: IContinuousLegendTheme & {
|
|
53
|
-
sizeBackground?: ISizeLegendSpec['sizeBackground'];
|
|
54
|
-
};
|
|
55
|
-
vertical?: IContinuousLegendTheme & {
|
|
56
|
-
sizeBackground?: ISizeLegendSpec['sizeBackground'];
|
|
57
|
-
};
|
|
58
|
-
}
|
|
48
|
+
export type ISizeLegendCommonTheme = IContinuousLegendTheme & {
|
|
49
|
+
sizeBackground?: ISizeLegendSpec['sizeBackground'];
|
|
50
|
+
};
|
|
51
|
+
export type IColorLegendTheme = ComponentThemeWithDirection<IContinuousLegendTheme>;
|
|
52
|
+
export type ISizeLegendTheme = ComponentThemeWithDirection<ISizeLegendCommonTheme>;
|
|
59
53
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/legend/continuous/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IRectMarkSpec, ISymbolMarkSpec, ITextMarkSpec, StringOrNumber } from '../../../typings';\nimport type { ILegendCommonSpec, NoVisibleMarkStyle } from '../interface';\n\ntype Text = StringOrNumber;\n\nexport type TextAttribute = {\n /** 是否展示 */\n visible?: boolean;\n /** 文本内容 */\n text?: Text;\n /**\n * 文本同滑块的间距,默认为 6\n */\n space?: number;\n /**\n * 文本样式\n */\n style?: Omit<NoVisibleMarkStyle<ITextMarkSpec>, 'text'>;\n};\n\nexport type HandlerTextAttribute = {\n /** 是否展示 */\n visible?: boolean;\n /**\n * 数据展示的小数精度,默认为0,无小数点。\n */\n precision?: number;\n /** 文本内容格式化函数 */\n formatter?: (text: Text) => Text;\n /**\n * 文本同滑块的间距,默认为 6\n */\n space?: number;\n /**\n * 文本样式\n */\n style?: Omit<NoVisibleMarkStyle<ITextMarkSpec>, 'text'>;\n};\n\n// 连续图例通用配置\nexport type IContinuousLegendSpec = ILegendCommonSpec & {\n /**\n * 声明关联的映射字段\n */\n field?: string;\n /**\n * 连续图例关联的映射 scale\n */\n scale?: string;\n /**\n * 默认筛选的数据范围\n */\n defaultSelected?: [number, number];\n /**\n * 是否允许拖动,默认为 true\n */\n slidable?: boolean;\n /**\n * 滑块轨道配置\n */\n rail?: {\n /**\n * 滑块的宽度\n */\n width?: number;\n /**\n * 滑块的高度\n */\n height?: number;\n /**\n * 背景轨道样式配置\n */\n style?: Omit<NoVisibleMarkStyle<IRectMarkSpec>, 'width' | 'height'>;\n };\n /**\n * 滑块手柄配置\n */\n handler?: {\n /**\n * 是否绘制 handler,默认为 true\n */\n visible?: boolean;\n /**\n * 滑块手柄的样式配置\n */\n style?: NoVisibleMarkStyle<ISymbolMarkSpec>;\n };\n /**\n * 选中区域样式配置\n */\n track?: {\n style?: Omit<NoVisibleMarkStyle<IRectMarkSpec>, 'width' | 'height'>;\n };\n /**\n * 滑块首部文本配置\n */\n startText?: TextAttribute;\n /**\n * 滑块尾部文本配置\n */\n endText?: TextAttribute;\n /**\n * 滑块对应的文本配置项\n */\n handlerText?: HandlerTextAttribute;\n};\n\n// 颜色图例配置\nexport type IColorLegendSpec = IContinuousLegendSpec & {\n /**\n * 声明 color 类型图例\n */\n type: 'color';\n};\n\n// 尺寸图例配置\nexport type ISizeLegendSpec = IContinuousLegendSpec & {\n /**\n * 声明 size 类型图例\n */\n type: 'size';\n /**\n * size 背景样式配置\n */\n sizeBackground?: Omit<NoVisibleMarkStyle<IRectMarkSpec>, 'visible' | 'width' | 'height'>;\n /**\n * 指定组件中手柄和文字的摆放位置,可选值为:\n * 'left' 手柄和label在滑块左侧,layout 为 vertical 时有效。\n * 'right' 手柄和label在滑块右侧,layout 为 vertical 时有效。\n * 'top' 手柄和label在滑块上侧,layout 为 horizontal 时有效。\n * 'bottom' 手柄和label在滑块下侧,layout 为 horizontal 时有效。\n */\n align?: 'top' | 'bottom' | 'left' | 'right';\n};\n\nexport type IContinuousLegendTheme = Omit<\n IContinuousLegendSpec,\n 'type' | 'field' | 'scale' | 'regionIndex' | 'regionId' | 'seriesIndex' | 'seriesId' | 'id' | 'defaultSelected'\n>;\n\nexport
|
|
1
|
+
{"version":3,"sources":["../src/component/legend/continuous/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IRectMarkSpec, ISymbolMarkSpec, ITextMarkSpec, StringOrNumber } from '../../../typings';\nimport type { ComponentThemeWithDirection } from '../../interface';\nimport type { ILegendCommonSpec, NoVisibleMarkStyle } from '../interface';\n\ntype Text = StringOrNumber;\n\nexport type TextAttribute = {\n /** 是否展示 */\n visible?: boolean;\n /** 文本内容 */\n text?: Text;\n /**\n * 文本同滑块的间距,默认为 6\n */\n space?: number;\n /**\n * 文本样式\n */\n style?: Omit<NoVisibleMarkStyle<ITextMarkSpec>, 'text'>;\n};\n\nexport type HandlerTextAttribute = {\n /** 是否展示 */\n visible?: boolean;\n /**\n * 数据展示的小数精度,默认为0,无小数点。\n */\n precision?: number;\n /** 文本内容格式化函数 */\n formatter?: (text: Text) => Text;\n /**\n * 文本同滑块的间距,默认为 6\n */\n space?: number;\n /**\n * 文本样式\n */\n style?: Omit<NoVisibleMarkStyle<ITextMarkSpec>, 'text'>;\n};\n\n// 连续图例通用配置\nexport type IContinuousLegendSpec = ILegendCommonSpec & {\n /**\n * 声明关联的映射字段\n */\n field?: string;\n /**\n * 连续图例关联的映射 scale\n */\n scale?: string;\n /**\n * 默认筛选的数据范围\n */\n defaultSelected?: [number, number];\n /**\n * 是否允许拖动,默认为 true\n */\n slidable?: boolean;\n /**\n * 滑块轨道配置\n */\n rail?: {\n /**\n * 滑块的宽度\n */\n width?: number;\n /**\n * 滑块的高度\n */\n height?: number;\n /**\n * 背景轨道样式配置\n */\n style?: Omit<NoVisibleMarkStyle<IRectMarkSpec>, 'width' | 'height'>;\n };\n /**\n * 滑块手柄配置\n */\n handler?: {\n /**\n * 是否绘制 handler,默认为 true\n */\n visible?: boolean;\n /**\n * 滑块手柄的样式配置\n */\n style?: NoVisibleMarkStyle<ISymbolMarkSpec>;\n };\n /**\n * 选中区域样式配置\n */\n track?: {\n style?: Omit<NoVisibleMarkStyle<IRectMarkSpec>, 'width' | 'height'>;\n };\n /**\n * 滑块首部文本配置\n */\n startText?: TextAttribute;\n /**\n * 滑块尾部文本配置\n */\n endText?: TextAttribute;\n /**\n * 滑块对应的文本配置项\n */\n handlerText?: HandlerTextAttribute;\n};\n\n// 颜色图例配置\nexport type IColorLegendSpec = IContinuousLegendSpec & {\n /**\n * 声明 color 类型图例\n */\n type: 'color';\n};\n\n// 尺寸图例配置\nexport type ISizeLegendSpec = IContinuousLegendSpec & {\n /**\n * 声明 size 类型图例\n */\n type: 'size';\n /**\n * size 背景样式配置\n */\n sizeBackground?: Omit<NoVisibleMarkStyle<IRectMarkSpec>, 'visible' | 'width' | 'height'>;\n /**\n * 指定组件中手柄和文字的摆放位置,可选值为:\n * 'left' 手柄和label在滑块左侧,layout 为 vertical 时有效。\n * 'right' 手柄和label在滑块右侧,layout 为 vertical 时有效。\n * 'top' 手柄和label在滑块上侧,layout 为 horizontal 时有效。\n * 'bottom' 手柄和label在滑块下侧,layout 为 horizontal 时有效。\n */\n align?: 'top' | 'bottom' | 'left' | 'right';\n};\n\nexport type IContinuousLegendTheme = Omit<\n IContinuousLegendSpec,\n 'type' | 'field' | 'scale' | 'regionIndex' | 'regionId' | 'seriesIndex' | 'seriesId' | 'id' | 'defaultSelected'\n>;\n\nexport type ISizeLegendCommonTheme = IContinuousLegendTheme & {\n sizeBackground?: ISizeLegendSpec['sizeBackground'];\n};\n\nexport type IColorLegendTheme = ComponentThemeWithDirection<IContinuousLegendTheme>;\n\nexport type ISizeLegendTheme = ComponentThemeWithDirection<ISizeLegendCommonTheme>;\n"]}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { IRectMarkSpec, ISymbolMarkSpec, ITextMarkSpec } from '../../../typings/visual';
|
|
2
|
-
import type { DiscreteLegendAttrs, LegendItemDatum, LegendItem } from '@visactor/vrender-components';
|
|
2
|
+
import type { DiscreteLegendAttrs, LegendItemDatum, LegendItem, LegendPagerAttributes, LegendScrollbarAttributes } from '@visactor/vrender-components';
|
|
3
3
|
import type { ILegendCommonSpec, NoVisibleMarkStyle } from '../interface';
|
|
4
4
|
import type { IFormatMethod, StringOrNumber } from '../../../typings';
|
|
5
5
|
import type { IBaseScale } from '@visactor/vscale';
|
|
6
6
|
import type { IGlobalScale } from '../../../scale/interface';
|
|
7
|
+
import type { ComponentThemeWithDirection } from '../../interface';
|
|
7
8
|
export type formatterCallback = IFormatMethod<[text: StringOrNumber, item: LegendItemDatum, index: number]>;
|
|
8
9
|
export type LegendItemStyleValue<T> = T | ((item: LegendItemDatum, isSelected: boolean, index: number, allItems: LegendItemDatum[]) => T);
|
|
9
10
|
export type LegendItemStyle<T> = {
|
|
@@ -16,6 +17,7 @@ export type LegendItemStyle<T> = {
|
|
|
16
17
|
};
|
|
17
18
|
};
|
|
18
19
|
export type IItem = {
|
|
20
|
+
align?: 'left' | 'right';
|
|
19
21
|
background?: {
|
|
20
22
|
visible?: boolean;
|
|
21
23
|
} & LegendItemStyle<LegendItemStyleValue<NoVisibleMarkStyle<IRectMarkSpec>>>;
|
|
@@ -24,18 +26,23 @@ export type IItem = {
|
|
|
24
26
|
space?: number;
|
|
25
27
|
} & LegendItemStyle<LegendItemStyleValue<Partial<NoVisibleMarkStyle<ISymbolMarkSpec>>>>;
|
|
26
28
|
label?: {
|
|
29
|
+
widthRatio?: number;
|
|
27
30
|
space?: number;
|
|
28
31
|
formatMethod?: formatterCallback;
|
|
32
|
+
formatter?: string;
|
|
29
33
|
} & LegendItemStyle<LegendItemStyleValue<NoVisibleMarkStyle<ITextMarkSpec>>>;
|
|
30
34
|
value?: {
|
|
35
|
+
widthRatio?: number;
|
|
31
36
|
space?: number;
|
|
32
37
|
alignRight?: boolean;
|
|
33
38
|
formatMethod?: formatterCallback;
|
|
39
|
+
formatter?: string | string[];
|
|
34
40
|
} & LegendItemStyle<LegendItemStyleValue<NoVisibleMarkStyle<ITextMarkSpec>>>;
|
|
35
41
|
focusIconStyle?: NoVisibleMarkStyle<ISymbolMarkSpec>;
|
|
36
42
|
maxWidth?: number | string;
|
|
37
43
|
width?: number | string;
|
|
38
44
|
height?: number | string;
|
|
45
|
+
autoEllipsisStrategy?: 'labelFirst' | 'valueFirst' | 'none';
|
|
39
46
|
} & Omit<LegendItem, 'background' | 'shape' | 'label' | 'value' | 'focusIconStyle' | 'width' | 'height' | 'maxWidth'>;
|
|
40
47
|
export type IPager = {
|
|
41
48
|
textStyle?: Partial<NoVisibleMarkStyle<ITextMarkSpec>>;
|
|
@@ -49,14 +56,20 @@ export type IPager = {
|
|
|
49
56
|
disable?: Omit<NoVisibleMarkStyle<ISymbolMarkSpec>, 'symbolType'>;
|
|
50
57
|
};
|
|
51
58
|
};
|
|
52
|
-
} & Omit<
|
|
59
|
+
} & Omit<LegendPagerAttributes, 'textStyle' | 'handler'>;
|
|
60
|
+
export type ILegendScrollbar = {
|
|
61
|
+
type: 'scrollbar';
|
|
62
|
+
railStyle?: Omit<Partial<NoVisibleMarkStyle<IRectMarkSpec>>, 'width' | 'height'>;
|
|
63
|
+
sliderStyle?: Omit<Partial<NoVisibleMarkStyle<IRectMarkSpec>>, 'width' | 'height'>;
|
|
64
|
+
} & Omit<LegendScrollbarAttributes, 'railStyle' | 'sliderStyle'>;
|
|
53
65
|
export type IDiscreteLegendSpec = ILegendCommonSpec & {
|
|
54
66
|
type?: 'discrete';
|
|
55
67
|
data?: (data: LegendItemDatum[], colorScale: IBaseScale, globalScale: IGlobalScale) => LegendItemDatum[];
|
|
56
68
|
item?: IItem;
|
|
57
|
-
pager?: IPager;
|
|
69
|
+
pager?: IPager | ILegendScrollbar;
|
|
58
70
|
scaleName?: string;
|
|
59
71
|
field?: string;
|
|
60
72
|
defaultSelected?: string[];
|
|
61
73
|
} & Omit<DiscreteLegendAttrs, 'layout' | 'title' | 'items' | 'item' | 'pager'>;
|
|
62
|
-
export type
|
|
74
|
+
export type IDiscreteLegendCommonTheme = Omit<IDiscreteLegendSpec, 'type' | 'data' | 'regionIndex' | 'regionId' | 'seriesIndex' | 'seriesId' | 'id' | 'defaultSelected'>;
|
|
75
|
+
export type IDiscreteLegendTheme = ComponentThemeWithDirection<IDiscreteLegendCommonTheme>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/component/legend/discrete/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IRectMarkSpec, ISymbolMarkSpec, ITextMarkSpec } from '../../../typings/visual';\nimport type {
|
|
1
|
+
{"version":3,"sources":["../src/component/legend/discrete/interface.ts"],"names":[],"mappings":"","file":"interface.js","sourcesContent":["import type { IRectMarkSpec, ISymbolMarkSpec, ITextMarkSpec } from '../../../typings/visual';\nimport type {\n DiscreteLegendAttrs,\n LegendItemDatum,\n LegendItem,\n LegendPagerAttributes,\n LegendScrollbarAttributes\n} from '@visactor/vrender-components';\nimport type { ILegendCommonSpec, NoVisibleMarkStyle } from '../interface';\nimport type { IFormatMethod, StringOrNumber } from '../../../typings';\nimport type { IBaseScale } from '@visactor/vscale';\nimport type { IGlobalScale } from '../../../scale/interface';\nimport type { ComponentThemeWithDirection } from '../../interface';\n\n// export type formatterCallback = (text: StringOrNumber, item: LegendItemDatum, index: number) => any;\nexport type formatterCallback = IFormatMethod<[text: StringOrNumber, item: LegendItemDatum, index: number]>;\nexport type LegendItemStyleValue<T> =\n | T\n | ((item: LegendItemDatum, isSelected: boolean, index: number, allItems: LegendItemDatum[]) => T);\nexport type LegendItemStyle<T> = {\n /**\n * 样式配置\n */\n style?: T;\n /**\n * 状态样式配置\n */\n state?: {\n /**\n * 选中态\n */\n selected?: T;\n /**\n * 非选中态\n */\n unSelected?: T;\n /**\n * 选中态 hover\n */\n selectedHover?: T;\n /**\n * 非选中态 hover\n */\n unSelectedHover?: T;\n };\n};\n\nexport type IItem = {\n /**\n * @since 1.10.0\n * 指定图例项中图标和文字的摆放位置,可选值为:\n * 'left' 图标在左侧\n * 'right' 图标在右侧\n * 默认值为: 'left'\n */\n align?: 'left' | 'right';\n /**\n * 图例项背景配置\n */\n background?: {\n /**\n * 是否展示图例项背景\n */\n visible?: boolean;\n } & LegendItemStyle<LegendItemStyleValue<NoVisibleMarkStyle<IRectMarkSpec>>>;\n /**\n * 图例项的 shape 图标的配置\n */\n shape?: {\n /**\n * 图例项的 shape 图标\n */\n visible?: boolean;\n /** shape 同后面 label 的间距 */\n space?: number;\n } & LegendItemStyle<LegendItemStyleValue<Partial<NoVisibleMarkStyle<ISymbolMarkSpec>>>>;\n /**\n * 图例项的 label 文本配置\n */\n label?: {\n /**\n * @since 1.10.0\n * 当 label + value 同时展示,文字超长的时候,label的宽度占比\n */\n widthRatio?: number;\n /**\n * 图例项 label 同后面 value 的间距\n */\n space?: number;\n /**\n * 格式化文本函数\n */\n formatMethod?: formatterCallback;\n /**\n * 格式化模板\n * @description 可以通过类似 `{value:.2f}%` 的形式对指定数据字段进行格式化\n * @since 1.10.0\n */\n formatter?: string;\n } & LegendItemStyle<LegendItemStyleValue<NoVisibleMarkStyle<ITextMarkSpec>>>;\n /**\n * 图例项 value 配置\n */\n value?: {\n /**\n * @since 1.10.0\n * 当 label + value 同时展示,文字超长的时候,label的宽度占比\n */\n widthRatio?: number;\n /** value 同后面元素的间距 */\n space?: number;\n /**\n * 是否右对齐显示,仅当设置图例项宽度 itemWidth 时生效\n * 默认为 false,\n */\n alignRight?: boolean;\n /**\n * 格式化文本函数\n */\n formatMethod?: formatterCallback;\n /**\n * 格式化模板\n * @description 可以通过类似 `{value:.2f}%` 的形式对指定数据字段进行格式化\n * @since 1.10.0\n */\n formatter?: string | string[];\n } & LegendItemStyle<LegendItemStyleValue<NoVisibleMarkStyle<ITextMarkSpec>>>;\n /**\n * 聚焦按钮配置\n */\n focusIconStyle?: NoVisibleMarkStyle<ISymbolMarkSpec>;\n /**\n * 图例项的最大宽度,默认为 null。\n * 可使用百分比,表示显示区域的宽度占比。\n */\n maxWidth?: number | string;\n /**\n * 图例项的宽度, 默认自动计算。\n * 可使用百分比,表示显示区域的宽度占比。\n */\n width?: number | string;\n /**\n * 图例的高度,默认自动计算。\n * 可使用百分比,表示显示区域的高度占比。\n */\n height?: number | string;\n /**\n * @since 1.10.0\n * 当label+ value同时存在的时候,自动省略的策略\n * 'labelFirst' - 尽量保证完整展示`label`\n * 'valueFirst' - 尽量保证完整展示`value`\n * 'none' - 按照`widthRatio`展示label 和 value\n */\n autoEllipsisStrategy?: 'labelFirst' | 'valueFirst' | 'none';\n} & Omit<LegendItem, 'background' | 'shape' | 'label' | 'value' | 'focusIconStyle' | 'width' | 'height' | 'maxWidth'>;\n\nexport type IPager = {\n /**\n * 文本样式配置\n */\n textStyle?: Partial<NoVisibleMarkStyle<ITextMarkSpec>>;\n handler?: {\n /**\n * 按钮同文本内容区的间距,默认为 8\n */\n space?: number;\n /**\n * 上一页按钮形状\n */\n preShape?: string;\n /**\n * 下一页按钮形状\n */\n nextShape?: string;\n style?: Omit<NoVisibleMarkStyle<ISymbolMarkSpec>, 'symbolType'>;\n state?: {\n /**\n * hover 状态下的样式\n */\n hover?: Omit<NoVisibleMarkStyle<ISymbolMarkSpec>, 'symbolType'>;\n /**\n * 不可用状态样式\n */\n disable?: Omit<NoVisibleMarkStyle<ISymbolMarkSpec>, 'symbolType'>;\n };\n };\n} & Omit<LegendPagerAttributes, 'textStyle' | 'handler'>;\n\nexport type ILegendScrollbar = {\n type: 'scrollbar';\n railStyle?: Omit<Partial<NoVisibleMarkStyle<IRectMarkSpec>>, 'width' | 'height'>;\n sliderStyle?: Omit<Partial<NoVisibleMarkStyle<IRectMarkSpec>>, 'width' | 'height'>;\n} & Omit<LegendScrollbarAttributes, 'railStyle' | 'sliderStyle'>;\n\n/** spec */\nexport type IDiscreteLegendSpec = ILegendCommonSpec & {\n type?: 'discrete';\n /**\n * 在原始图例绘制数据的基础上,进行自定义,比如可以自定义 value 值\n * @param data 图例的绘制数据\n * @param colorScale 全局颜色映射 scale\n * @param globalScale 图表上所有的 scale\n * @returns\n */\n data?: (data: LegendItemDatum[], colorScale: IBaseScale, globalScale: IGlobalScale) => LegendItemDatum[];\n\n /** 图例项配置 */\n item?: IItem;\n\n /**\n * 翻页器配置\n */\n pager?: IPager | ILegendScrollbar;\n\n /**\n * scaleName must match the id of the scale configured in **scales**\n */\n scaleName?: string;\n /**\n * After the legend is bound to the scale, the dimension associated with the series data and the legend can be configured through field.\n * If the field is not configured, the first item of fields in the domain of scale is used by default\n * If the domain of the scale is not dependent on data statistics, series.getSeriesField() is used by default\n */\n field?: string;\n /**\n * 默认筛选的数据范围\n */\n defaultSelected?: string[];\n} & Omit<DiscreteLegendAttrs, 'layout' | 'title' | 'items' | 'item' | 'pager'>;\n\n// theme 主题相关配置\nexport type IDiscreteLegendCommonTheme = Omit<\n IDiscreteLegendSpec,\n 'type' | 'data' | 'regionIndex' | 'regionId' | 'seriesIndex' | 'seriesId' | 'id' | 'defaultSelected'\n>;\n\nexport type IDiscreteLegendTheme = ComponentThemeWithDirection<IDiscreteLegendCommonTheme>;\n"]}
|
|
@@ -23,5 +23,6 @@ export declare class DiscreteLegend extends BaseLegend<IDiscreteLegendSpec> {
|
|
|
23
23
|
protected _getLegendConstructor(): typeof LegendComponent;
|
|
24
24
|
protected _initEvent(): void;
|
|
25
25
|
private _getLegendItems;
|
|
26
|
+
private _addLegendItemFormatMethods;
|
|
26
27
|
}
|
|
27
28
|
export declare const registerDiscreteLegend: () => void;
|