@visactor/vrender-components 0.17.1-alpha.1 → 0.17.1-alpha.3
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/cjs/axis/animate/group-fade.d.ts +2 -2
- package/cjs/axis/animate/group-fade.js +3 -3
- package/cjs/axis/animate/group-fade.js.map +1 -1
- package/cjs/axis/animate/group-transition.d.ts +2 -2
- package/cjs/axis/animate/group-transition.js +3 -3
- package/cjs/axis/animate/group-transition.js.map +1 -1
- package/cjs/axis/base.d.ts +1 -1
- package/cjs/axis/base.js +11 -11
- package/cjs/axis/base.js.map +1 -1
- package/cjs/axis/circle.d.ts +1 -1
- package/cjs/axis/circle.js +4 -2
- package/cjs/axis/circle.js.map +1 -1
- package/cjs/axis/grid/base.d.ts +1 -1
- package/cjs/axis/grid/base.js +5 -5
- package/cjs/axis/grid/base.js.map +1 -1
- package/cjs/axis/grid/circle.js +3 -1
- package/cjs/axis/grid/circle.js.map +1 -1
- package/cjs/axis/grid/line.js +3 -1
- package/cjs/axis/grid/line.js.map +1 -1
- package/cjs/axis/grid/type.d.ts +1 -1
- package/cjs/axis/grid/type.js.map +1 -1
- package/cjs/axis/line.d.ts +1 -1
- package/cjs/axis/line.js +5 -3
- package/cjs/axis/line.js.map +1 -1
- package/cjs/axis/overlap/auto-hide.d.ts +1 -1
- package/cjs/axis/overlap/auto-hide.js.map +1 -1
- package/cjs/axis/overlap/auto-limit.d.ts +1 -1
- package/cjs/axis/overlap/auto-limit.js.map +1 -1
- package/cjs/axis/overlap/auto-rotate.d.ts +1 -1
- package/cjs/axis/overlap/auto-rotate.js.map +1 -1
- package/cjs/axis/overlap/util.d.ts +1 -1
- package/cjs/axis/overlap/util.js.map +1 -1
- package/cjs/axis/register.d.ts +4 -0
- package/cjs/axis/register.js +32 -0
- package/cjs/axis/register.js.map +1 -0
- package/cjs/axis/type.d.ts +1 -1
- package/cjs/axis/type.js.map +1 -1
- package/cjs/axis/util.d.ts +1 -1
- package/cjs/axis/util.js +2 -2
- package/cjs/axis/util.js.map +1 -1
- package/cjs/brush/brush.d.ts +1 -1
- package/cjs/brush/brush.js +4 -2
- package/cjs/brush/brush.js.map +1 -1
- package/cjs/brush/register.d.ts +1 -0
- package/cjs/brush/register.js +14 -0
- package/cjs/brush/register.js.map +1 -0
- package/cjs/brush/type.d.ts +1 -1
- package/cjs/brush/type.js +1 -2
- package/cjs/brush/type.js.map +1 -1
- package/cjs/checkbox/checkbox.d.ts +1 -1
- package/cjs/checkbox/checkbox.js +8 -6
- package/cjs/checkbox/checkbox.js.map +1 -1
- package/cjs/checkbox/index.js +2 -1
- package/cjs/checkbox/register.d.ts +1 -0
- package/cjs/checkbox/register.js +15 -0
- package/cjs/checkbox/register.js.map +1 -0
- package/cjs/checkbox/type.d.ts +1 -1
- package/cjs/checkbox/type.js.map +1 -1
- package/cjs/core/base.d.ts +2 -2
- package/cjs/core/base.js +2 -2
- package/cjs/core/base.js.map +1 -1
- package/cjs/core/type.d.ts +1 -1
- package/cjs/core/type.js.map +1 -1
- package/cjs/crosshair/base.d.ts +1 -1
- package/cjs/crosshair/base.js.map +1 -1
- package/cjs/crosshair/circle.d.ts +2 -2
- package/cjs/crosshair/circle.js +3 -1
- package/cjs/crosshair/circle.js.map +1 -1
- package/cjs/crosshair/line.d.ts +2 -2
- package/cjs/crosshair/line.js +3 -1
- package/cjs/crosshair/line.js.map +1 -1
- package/cjs/crosshair/polygon.d.ts +2 -2
- package/cjs/crosshair/polygon.js +3 -1
- package/cjs/crosshair/polygon.js.map +1 -1
- package/cjs/crosshair/rect.d.ts +2 -2
- package/cjs/crosshair/rect.js +3 -1
- package/cjs/crosshair/rect.js.map +1 -1
- package/cjs/crosshair/register.d.ts +5 -0
- package/cjs/crosshair/register.js +32 -0
- package/cjs/crosshair/register.js.map +1 -0
- package/cjs/crosshair/sector.d.ts +2 -2
- package/cjs/crosshair/sector.js +3 -1
- package/cjs/crosshair/sector.js.map +1 -1
- package/cjs/crosshair/type.d.ts +1 -1
- package/cjs/crosshair/type.js.map +1 -1
- package/cjs/data-zoom/config.js +1 -2
- package/cjs/data-zoom/data-zoom.d.ts +1 -1
- package/cjs/data-zoom/data-zoom.js +6 -4
- package/cjs/data-zoom/data-zoom.js.map +1 -1
- package/cjs/data-zoom/register.d.ts +1 -0
- package/cjs/data-zoom/register.js +15 -0
- package/cjs/data-zoom/register.js.map +1 -0
- package/cjs/data-zoom/type.d.ts +1 -1
- package/cjs/data-zoom/type.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/indicator/config.js +2 -1
- package/cjs/indicator/indicator.js +3 -1
- package/cjs/indicator/indicator.js.map +1 -1
- package/cjs/indicator/register.d.ts +1 -0
- package/cjs/indicator/register.js +14 -0
- package/cjs/indicator/register.js.map +1 -0
- package/cjs/indicator/type.d.ts +1 -1
- package/cjs/indicator/type.js.map +1 -1
- package/cjs/interface.d.ts +1 -1
- package/cjs/interface.js.map +1 -1
- package/cjs/jsx/component-type.d.ts +1 -1
- package/cjs/jsx/component-type.js.map +1 -1
- package/cjs/label/animate/animate.d.ts +1 -1
- package/cjs/label/animate/animate.js +2 -2
- package/cjs/label/animate/animate.js.map +1 -1
- package/cjs/label/arc.d.ts +1 -1
- package/cjs/label/arc.js +2 -2
- package/cjs/label/arc.js.map +1 -1
- package/cjs/label/area.d.ts +1 -1
- package/cjs/label/area.js.map +1 -1
- package/cjs/label/base.d.ts +2 -2
- package/cjs/label/base.js +10 -8
- package/cjs/label/base.js.map +1 -1
- package/cjs/label/dataLabel.js.map +1 -1
- package/cjs/label/index.js +1 -2
- package/cjs/label/line.d.ts +1 -1
- package/cjs/label/line.js.map +1 -1
- package/cjs/label/overlap/place.d.ts +1 -1
- package/cjs/label/overlap/place.js.map +1 -1
- package/cjs/label/register.d.ts +1 -0
- package/cjs/label/register.js +15 -0
- package/cjs/label/register.js.map +1 -0
- package/cjs/label/type.d.ts +1 -1
- package/cjs/label/type.js +2 -1
- package/cjs/label/type.js.map +1 -1
- package/cjs/label/util.d.ts +1 -1
- package/cjs/label/util.js +1 -1
- package/cjs/label/util.js.map +1 -1
- package/cjs/legend/base.d.ts +1 -1
- package/cjs/legend/base.js +3 -3
- package/cjs/legend/base.js.map +1 -1
- package/cjs/legend/color/color.js +3 -1
- package/cjs/legend/color/color.js.map +1 -1
- package/cjs/legend/constant.js +1 -1
- package/cjs/legend/discrete/discrete.js +13 -11
- package/cjs/legend/discrete/discrete.js.map +1 -1
- package/cjs/legend/discrete/type.d.ts +1 -1
- package/cjs/legend/discrete/type.js.map +1 -1
- package/cjs/legend/index.js +1 -1
- package/cjs/legend/register.d.ts +3 -0
- package/cjs/legend/register.js +27 -0
- package/cjs/legend/register.js.map +1 -0
- package/cjs/legend/size/size.js +5 -3
- package/cjs/legend/size/size.js.map +1 -1
- package/cjs/legend/size/type.d.ts +1 -1
- package/cjs/legend/size/type.js.map +1 -1
- package/cjs/legend/type.d.ts +1 -1
- package/cjs/legend/type.js +1 -1
- package/cjs/legend/type.js.map +1 -1
- package/cjs/legend/util.js +1 -1
- package/cjs/link-path/index.js +1 -1
- package/cjs/link-path/link-path.js +2 -2
- package/cjs/link-path/link-path.js.map +1 -1
- package/cjs/link-path/register.d.ts +1 -0
- package/cjs/link-path/register.js +14 -0
- package/cjs/link-path/register.js.map +1 -0
- package/cjs/link-path/type.d.ts +1 -1
- package/cjs/link-path/type.js.map +1 -1
- package/cjs/marker/area.d.ts +1 -1
- package/cjs/marker/area.js +4 -2
- package/cjs/marker/area.js.map +1 -1
- package/cjs/marker/base.d.ts +1 -1
- package/cjs/marker/base.js +4 -4
- package/cjs/marker/base.js.map +1 -1
- package/cjs/marker/config.d.ts +1 -1
- package/cjs/marker/config.js.map +1 -1
- package/cjs/marker/line.d.ts +1 -1
- package/cjs/marker/line.js +3 -1
- package/cjs/marker/line.js.map +1 -1
- package/cjs/marker/point.d.ts +1 -1
- package/cjs/marker/point.js +5 -3
- package/cjs/marker/point.js.map +1 -1
- package/cjs/marker/register.d.ts +3 -0
- package/cjs/marker/register.js +28 -0
- package/cjs/marker/register.js.map +1 -0
- package/cjs/marker/type.d.ts +1 -1
- package/cjs/marker/type.js.map +1 -1
- package/cjs/pager/pager.d.ts +1 -1
- package/cjs/pager/pager.js +9 -7
- package/cjs/pager/pager.js.map +1 -1
- package/cjs/pager/register.d.ts +1 -0
- package/cjs/pager/register.js +14 -0
- package/cjs/pager/register.js.map +1 -0
- package/cjs/pager/type.d.ts +1 -1
- package/cjs/pager/type.js.map +1 -1
- package/cjs/player/base-player.js +2 -2
- package/cjs/player/base-player.js.map +1 -1
- package/cjs/player/continuous-player.js +8 -6
- package/cjs/player/continuous-player.js.map +1 -1
- package/cjs/player/controller/controller.d.ts +1 -1
- package/cjs/player/controller/controller.js +2 -2
- package/cjs/player/controller/controller.js.map +1 -1
- package/cjs/player/controller/icon/icon.d.ts +2 -2
- package/cjs/player/controller/icon/icon.js +2 -2
- package/cjs/player/controller/icon/icon.js.map +1 -1
- package/cjs/player/controller/type.d.ts +1 -1
- package/cjs/player/controller/type.js.map +1 -1
- package/cjs/player/discrete-player.js +7 -5
- package/cjs/player/discrete-player.js.map +1 -1
- package/cjs/player/register.d.ts +2 -0
- package/cjs/player/register.js +22 -0
- package/cjs/player/register.js.map +1 -0
- package/cjs/player/type/base.d.ts +1 -1
- package/cjs/player/type/base.js.map +1 -1
- package/cjs/player/type/layout.d.ts +1 -1
- package/cjs/player/type/layout.js.map +1 -1
- package/cjs/poptip/contribution.d.ts +1 -1
- package/cjs/poptip/contribution.js +2 -2
- package/cjs/poptip/contribution.js.map +1 -1
- package/cjs/poptip/index.d.ts +0 -1
- package/cjs/poptip/index.js +1 -2
- package/cjs/poptip/index.js.map +1 -1
- package/cjs/poptip/poptip-plugin.d.ts +1 -1
- package/cjs/poptip/poptip-plugin.js +5 -5
- package/cjs/poptip/poptip-plugin.js.map +1 -1
- package/cjs/poptip/poptip.js +3 -1
- package/cjs/poptip/poptip.js.map +1 -1
- package/cjs/poptip/register.d.ts +2 -1
- package/cjs/poptip/register.js +14 -9
- package/cjs/poptip/register.js.map +1 -1
- package/cjs/poptip/type.d.ts +1 -1
- package/cjs/poptip/type.js.map +1 -1
- package/cjs/scrollbar/index.d.ts +0 -1
- package/cjs/scrollbar/index.js +1 -2
- package/cjs/scrollbar/index.js.map +1 -1
- package/cjs/scrollbar/register.d.ts +2 -1
- package/cjs/scrollbar/register.js +10 -6
- package/cjs/scrollbar/register.js.map +1 -1
- package/cjs/scrollbar/scrollbar-plugin.d.ts +1 -1
- package/cjs/scrollbar/scrollbar-plugin.js +3 -3
- package/cjs/scrollbar/scrollbar-plugin.js.map +1 -1
- package/cjs/scrollbar/scrollbar.js +8 -6
- package/cjs/scrollbar/scrollbar.js.map +1 -1
- package/cjs/scrollbar/type.d.ts +1 -1
- package/cjs/scrollbar/type.js.map +1 -1
- package/cjs/segment/register.d.ts +1 -0
- package/cjs/segment/register.js +15 -0
- package/cjs/segment/register.js.map +1 -0
- package/cjs/segment/segment.d.ts +1 -1
- package/cjs/segment/segment.js +6 -4
- package/cjs/segment/segment.js.map +1 -1
- package/cjs/segment/type.d.ts +1 -1
- package/cjs/segment/type.js.map +1 -1
- package/cjs/slider/register.d.ts +1 -0
- package/cjs/slider/register.js +15 -0
- package/cjs/slider/register.js.map +1 -0
- package/cjs/slider/slider.d.ts +3 -3
- package/cjs/slider/slider.js +22 -20
- package/cjs/slider/slider.js.map +1 -1
- package/cjs/slider/type.d.ts +1 -1
- package/cjs/slider/type.js.map +1 -1
- package/cjs/tag/register.d.ts +1 -0
- package/cjs/tag/register.js +15 -0
- package/cjs/tag/register.js.map +1 -0
- package/cjs/tag/tag.js +3 -1
- package/cjs/tag/tag.js.map +1 -1
- package/cjs/tag/type.d.ts +1 -1
- package/cjs/tag/type.js.map +1 -1
- package/cjs/title/register.d.ts +1 -0
- package/cjs/title/register.js +14 -0
- package/cjs/title/register.js.map +1 -0
- package/cjs/title/title.js +3 -1
- package/cjs/title/title.js.map +1 -1
- package/cjs/title/type.d.ts +1 -1
- package/cjs/title/type.js.map +1 -1
- package/cjs/tooltip/register.d.ts +1 -0
- package/cjs/tooltip/register.js +15 -0
- package/cjs/tooltip/register.js.map +1 -0
- package/cjs/tooltip/tooltip.js +6 -4
- package/cjs/tooltip/tooltip.js.map +1 -1
- package/cjs/tooltip/type.d.ts +1 -1
- package/cjs/tooltip/type.js.map +1 -1
- package/cjs/tooltip/util.d.ts +1 -1
- package/cjs/tooltip/util.js.map +1 -1
- package/cjs/util/align.d.ts +1 -1
- package/cjs/util/align.js.map +1 -1
- package/cjs/util/common.d.ts +1 -1
- package/cjs/util/common.js.map +1 -1
- package/cjs/util/label-smartInvert.d.ts +1 -1
- package/cjs/util/label-smartInvert.js.map +1 -1
- package/cjs/util/limit-shape.d.ts +1 -1
- package/cjs/util/limit-shape.js.map +1 -1
- package/cjs/util/text.d.ts +1 -1
- package/cjs/util/text.js +3 -3
- package/cjs/util/text.js.map +1 -1
- package/dist/index.js +6280 -1673
- package/dist/index.min.js +1 -1
- package/es/axis/animate/group-fade.d.ts +2 -2
- package/es/axis/animate/group-fade.js +1 -1
- package/es/axis/animate/group-fade.js.map +1 -1
- package/es/axis/animate/group-transition.d.ts +2 -2
- package/es/axis/animate/group-transition.js +1 -1
- package/es/axis/animate/group-transition.js.map +1 -1
- package/es/axis/base.d.ts +1 -1
- package/es/axis/base.js +1 -1
- package/es/axis/base.js.map +1 -1
- package/es/axis/circle.d.ts +1 -1
- package/es/axis/circle.js +5 -1
- package/es/axis/circle.js.map +1 -1
- package/es/axis/grid/base.d.ts +1 -1
- package/es/axis/grid/base.js +1 -1
- package/es/axis/grid/base.js.map +1 -1
- package/es/axis/grid/circle.js +4 -0
- package/es/axis/grid/circle.js.map +1 -1
- package/es/axis/grid/line.js +4 -0
- package/es/axis/grid/line.js.map +1 -1
- package/es/axis/grid/type.d.ts +1 -1
- package/es/axis/grid/type.js.map +1 -1
- package/es/axis/line.d.ts +1 -1
- package/es/axis/line.js +5 -1
- package/es/axis/line.js.map +1 -1
- package/es/axis/overlap/auto-hide.d.ts +1 -1
- package/es/axis/overlap/auto-hide.js.map +1 -1
- package/es/axis/overlap/auto-limit.d.ts +1 -1
- package/es/axis/overlap/auto-limit.js.map +1 -1
- package/es/axis/overlap/auto-rotate.d.ts +1 -1
- package/es/axis/overlap/auto-rotate.js.map +1 -1
- package/es/axis/overlap/util.d.ts +1 -1
- package/es/axis/overlap/util.js.map +1 -1
- package/es/axis/register.d.ts +4 -0
- package/es/axis/register.js +22 -0
- package/es/axis/register.js.map +1 -0
- package/es/axis/type.d.ts +1 -1
- package/es/axis/type.js.map +1 -1
- package/es/axis/util.d.ts +1 -1
- package/es/axis/util.js +1 -1
- package/es/axis/util.js.map +1 -1
- package/es/brush/brush.d.ts +1 -1
- package/es/brush/brush.js +5 -1
- package/es/brush/brush.js.map +1 -1
- package/es/brush/register.d.ts +1 -0
- package/es/brush/register.js +6 -0
- package/es/brush/register.js.map +1 -0
- package/es/brush/type.d.ts +1 -1
- package/es/brush/type.js +1 -2
- package/es/brush/type.js.map +1 -1
- package/es/checkbox/checkbox.d.ts +1 -1
- package/es/checkbox/checkbox.js +5 -1
- package/es/checkbox/checkbox.js.map +1 -1
- package/es/checkbox/index.js +2 -1
- package/es/checkbox/register.d.ts +1 -0
- package/es/checkbox/register.js +6 -0
- package/es/checkbox/register.js.map +1 -0
- package/es/checkbox/type.d.ts +1 -1
- package/es/checkbox/type.js.map +1 -1
- package/es/core/base.d.ts +2 -2
- package/es/core/base.js +1 -1
- package/es/core/base.js.map +1 -1
- package/es/core/type.d.ts +1 -1
- package/es/core/type.js.map +1 -1
- package/es/crosshair/base.d.ts +1 -1
- package/es/crosshair/base.js.map +1 -1
- package/es/crosshair/circle.d.ts +2 -2
- package/es/crosshair/circle.js +4 -0
- package/es/crosshair/circle.js.map +1 -1
- package/es/crosshair/line.d.ts +2 -2
- package/es/crosshair/line.js +4 -0
- package/es/crosshair/line.js.map +1 -1
- package/es/crosshair/polygon.d.ts +2 -2
- package/es/crosshair/polygon.js +4 -0
- package/es/crosshair/polygon.js.map +1 -1
- package/es/crosshair/rect.d.ts +2 -2
- package/es/crosshair/rect.js +4 -0
- package/es/crosshair/rect.js.map +1 -1
- package/es/crosshair/register.d.ts +5 -0
- package/es/crosshair/register.js +22 -0
- package/es/crosshair/register.js.map +1 -0
- package/es/crosshair/sector.d.ts +2 -2
- package/es/crosshair/sector.js +4 -0
- package/es/crosshair/sector.js.map +1 -1
- package/es/crosshair/type.d.ts +1 -1
- package/es/crosshair/type.js.map +1 -1
- package/es/data-zoom/config.js +1 -2
- package/es/data-zoom/data-zoom.d.ts +1 -1
- package/es/data-zoom/data-zoom.js +5 -1
- package/es/data-zoom/data-zoom.js.map +1 -1
- package/es/data-zoom/register.d.ts +1 -0
- package/es/data-zoom/register.js +8 -0
- package/es/data-zoom/register.js.map +1 -0
- package/es/data-zoom/type.d.ts +1 -1
- package/es/data-zoom/type.js.map +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/es/index.js.map +1 -1
- package/es/indicator/config.js +2 -1
- package/es/indicator/indicator.js +4 -0
- package/es/indicator/indicator.js.map +1 -1
- package/es/indicator/register.d.ts +1 -0
- package/es/indicator/register.js +6 -0
- package/es/indicator/register.js.map +1 -0
- package/es/indicator/type.d.ts +1 -1
- package/es/indicator/type.js.map +1 -1
- package/es/interface.d.ts +1 -1
- package/es/interface.js.map +1 -1
- package/es/jsx/component-type.d.ts +1 -1
- package/es/jsx/component-type.js.map +1 -1
- package/es/label/animate/animate.d.ts +1 -1
- package/es/label/animate/animate.js +1 -1
- package/es/label/animate/animate.js.map +1 -1
- package/es/label/arc.d.ts +1 -1
- package/es/label/arc.js +1 -1
- package/es/label/arc.js.map +1 -1
- package/es/label/area.d.ts +1 -1
- package/es/label/area.js.map +1 -1
- package/es/label/base.d.ts +2 -2
- package/es/label/base.js +5 -1
- package/es/label/base.js.map +1 -1
- package/es/label/dataLabel.js.map +1 -1
- package/es/label/index.js +1 -2
- package/es/label/line.d.ts +1 -1
- package/es/label/line.js.map +1 -1
- package/es/label/overlap/place.d.ts +1 -1
- package/es/label/overlap/place.js.map +1 -1
- package/es/label/register.d.ts +1 -0
- package/es/label/register.js +6 -0
- package/es/label/register.js.map +1 -0
- package/es/label/type.d.ts +1 -1
- package/es/label/type.js +2 -1
- package/es/label/type.js.map +1 -1
- package/es/label/util.d.ts +1 -1
- package/es/label/util.js +1 -1
- package/es/label/util.js.map +1 -1
- package/es/legend/base.d.ts +1 -1
- package/es/legend/base.js +2 -2
- package/es/legend/base.js.map +1 -1
- package/es/legend/color/color.js +4 -0
- package/es/legend/color/color.js.map +1 -1
- package/es/legend/constant.js +1 -1
- package/es/legend/discrete/discrete.js +5 -1
- package/es/legend/discrete/discrete.js.map +1 -1
- package/es/legend/discrete/type.d.ts +1 -1
- package/es/legend/discrete/type.js.map +1 -1
- package/es/legend/index.js +1 -1
- package/es/legend/register.d.ts +3 -0
- package/es/legend/register.js +24 -0
- package/es/legend/register.js.map +1 -0
- package/es/legend/size/size.js +5 -1
- package/es/legend/size/size.js.map +1 -1
- package/es/legend/size/type.d.ts +1 -1
- package/es/legend/size/type.js.map +1 -1
- package/es/legend/type.d.ts +1 -1
- package/es/legend/type.js +1 -1
- package/es/legend/type.js.map +1 -1
- package/es/legend/util.js +1 -1
- package/es/link-path/index.js +1 -1
- package/es/link-path/link-path.js +4 -0
- package/es/link-path/link-path.js.map +1 -1
- package/es/link-path/register.d.ts +1 -0
- package/es/link-path/register.js +6 -0
- package/es/link-path/register.js.map +1 -0
- package/es/link-path/type.d.ts +1 -1
- package/es/link-path/type.js.map +1 -1
- package/es/marker/area.d.ts +1 -1
- package/es/marker/area.js +5 -1
- package/es/marker/area.js.map +1 -1
- package/es/marker/base.d.ts +1 -1
- package/es/marker/base.js +1 -1
- package/es/marker/base.js.map +1 -1
- package/es/marker/config.d.ts +1 -1
- package/es/marker/config.js.map +1 -1
- package/es/marker/line.d.ts +1 -1
- package/es/marker/line.js +4 -0
- package/es/marker/line.js.map +1 -1
- package/es/marker/point.d.ts +1 -1
- package/es/marker/point.js +5 -1
- package/es/marker/point.js.map +1 -1
- package/es/marker/register.d.ts +3 -0
- package/es/marker/register.js +22 -0
- package/es/marker/register.js.map +1 -0
- package/es/marker/type.d.ts +1 -1
- package/es/marker/type.js.map +1 -1
- package/es/pager/pager.d.ts +1 -1
- package/es/pager/pager.js +5 -1
- package/es/pager/pager.js.map +1 -1
- package/es/pager/register.d.ts +1 -0
- package/es/pager/register.js +6 -0
- package/es/pager/register.js.map +1 -0
- package/es/pager/type.d.ts +1 -1
- package/es/pager/type.js.map +1 -1
- package/es/player/base-player.js +1 -1
- package/es/player/base-player.js.map +1 -1
- package/es/player/continuous-player.js +5 -1
- package/es/player/continuous-player.js.map +1 -1
- package/es/player/controller/controller.d.ts +1 -1
- package/es/player/controller/controller.js +1 -1
- package/es/player/controller/controller.js.map +1 -1
- package/es/player/controller/icon/icon.d.ts +2 -2
- package/es/player/controller/icon/icon.js +1 -1
- package/es/player/controller/icon/icon.js.map +1 -1
- package/es/player/controller/type.d.ts +1 -1
- package/es/player/controller/type.js.map +1 -1
- package/es/player/discrete-player.js +5 -1
- package/es/player/discrete-player.js.map +1 -1
- package/es/player/register.d.ts +2 -0
- package/es/player/register.js +16 -0
- package/es/player/register.js.map +1 -0
- package/es/player/type/base.d.ts +1 -1
- package/es/player/type/base.js.map +1 -1
- package/es/player/type/layout.d.ts +1 -1
- package/es/player/type/layout.js.map +1 -1
- package/es/poptip/contribution.d.ts +1 -1
- package/es/poptip/contribution.js +1 -1
- package/es/poptip/contribution.js.map +1 -1
- package/es/poptip/index.d.ts +0 -1
- package/es/poptip/index.js +0 -2
- package/es/poptip/index.js.map +1 -1
- package/es/poptip/poptip-plugin.d.ts +1 -1
- package/es/poptip/poptip-plugin.js +1 -1
- package/es/poptip/poptip-plugin.js.map +1 -1
- package/es/poptip/poptip.js +4 -0
- package/es/poptip/poptip.js.map +1 -1
- package/es/poptip/register.d.ts +2 -1
- package/es/poptip/register.js +7 -1
- package/es/poptip/register.js.map +1 -1
- package/es/poptip/type.d.ts +1 -1
- package/es/poptip/type.js.map +1 -1
- package/es/scrollbar/index.d.ts +0 -1
- package/es/scrollbar/index.js +0 -2
- package/es/scrollbar/index.js.map +1 -1
- package/es/scrollbar/register.d.ts +2 -1
- package/es/scrollbar/register.js +7 -1
- package/es/scrollbar/register.js.map +1 -1
- package/es/scrollbar/scrollbar-plugin.d.ts +1 -1
- package/es/scrollbar/scrollbar-plugin.js +1 -1
- package/es/scrollbar/scrollbar-plugin.js.map +1 -1
- package/es/scrollbar/scrollbar.js +5 -1
- package/es/scrollbar/scrollbar.js.map +1 -1
- package/es/scrollbar/type.d.ts +1 -1
- package/es/scrollbar/type.js.map +1 -1
- package/es/segment/register.d.ts +1 -0
- package/es/segment/register.js +6 -0
- package/es/segment/register.js.map +1 -0
- package/es/segment/segment.d.ts +1 -1
- package/es/segment/segment.js +5 -1
- package/es/segment/segment.js.map +1 -1
- package/es/segment/type.d.ts +1 -1
- package/es/segment/type.js.map +1 -1
- package/es/slider/register.d.ts +1 -0
- package/es/slider/register.js +6 -0
- package/es/slider/register.js.map +1 -0
- package/es/slider/slider.d.ts +3 -3
- package/es/slider/slider.js +5 -1
- package/es/slider/slider.js.map +1 -1
- package/es/slider/type.d.ts +1 -1
- package/es/slider/type.js.map +1 -1
- package/es/tag/register.d.ts +1 -0
- package/es/tag/register.js +6 -0
- package/es/tag/register.js.map +1 -0
- package/es/tag/tag.js +4 -0
- package/es/tag/tag.js.map +1 -1
- package/es/tag/type.d.ts +1 -1
- package/es/tag/type.js.map +1 -1
- package/es/title/register.d.ts +1 -0
- package/es/title/register.js +6 -0
- package/es/title/register.js.map +1 -0
- package/es/title/title.js +4 -0
- package/es/title/title.js.map +1 -1
- package/es/title/type.d.ts +1 -1
- package/es/title/type.js.map +1 -1
- package/es/tooltip/register.d.ts +1 -0
- package/es/tooltip/register.js +6 -0
- package/es/tooltip/register.js.map +1 -0
- package/es/tooltip/tooltip.js +5 -1
- package/es/tooltip/tooltip.js.map +1 -1
- package/es/tooltip/type.d.ts +1 -1
- package/es/tooltip/type.js.map +1 -1
- package/es/tooltip/util.d.ts +1 -1
- package/es/tooltip/util.js.map +1 -1
- package/es/util/align.d.ts +1 -1
- package/es/util/align.js.map +1 -1
- package/es/util/common.d.ts +1 -1
- package/es/util/common.js.map +1 -1
- package/es/util/label-smartInvert.d.ts +1 -1
- package/es/util/label-smartInvert.js.map +1 -1
- package/es/util/limit-shape.d.ts +1 -1
- package/es/util/limit-shape.js.map +1 -1
- package/es/util/text.d.ts +1 -1
- package/es/util/text.js +1 -1
- package/es/util/text.js.map +1 -1
- package/package.json +4 -4
package/cjs/slider/slider.js
CHANGED
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.Slider = void 0;
|
|
6
6
|
|
|
7
|
-
const vutils_1 = require("@visactor/vutils"),
|
|
7
|
+
const vutils_1 = require("@visactor/vutils"), core_1 = require("@visactor/vrender/es/core"), base_1 = require("../core/base"), constant_1 = require("./constant"), register_1 = require("./register");
|
|
8
8
|
|
|
9
9
|
function convertValueToRange(value) {
|
|
10
10
|
return (0, vutils_1.isArray)(value) ? value : [ value, value ];
|
|
@@ -14,6 +14,8 @@ function getDefaultCursor(isHorizontal) {
|
|
|
14
14
|
return isHorizontal ? "ew-resize" : "ns-resize";
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
(0, register_1.loadSliderComponent)();
|
|
18
|
+
|
|
17
19
|
class Slider extends base_1.AbstractComponent {
|
|
18
20
|
get track() {
|
|
19
21
|
return this._track;
|
|
@@ -33,9 +35,9 @@ class Slider extends base_1.AbstractComponent {
|
|
|
33
35
|
this._startHandlerText = null, this._endHandlerText = null, this._currentHandler = null,
|
|
34
36
|
this._currentValue = {}, this._onHandlerPointerdown = e => {
|
|
35
37
|
e.stopPropagation(), this._currentHandler = e.target, this._prePos = this._isHorizontal ? e.clientX : e.clientY,
|
|
36
|
-
"browser" ===
|
|
38
|
+
"browser" === core_1.vglobal.env ? (core_1.vglobal.addEventListener("pointermove", this._onHandlerPointerMove, {
|
|
37
39
|
capture: !0
|
|
38
|
-
}),
|
|
40
|
+
}), core_1.vglobal.addEventListener("pointerup", this._onHandlerPointerUp)) : (this.stage.addEventListener("pointermove", this._onHandlerPointerMove, {
|
|
39
41
|
capture: !0
|
|
40
42
|
}), this.stage.addEventListener("pointerup", this._onHandlerPointerUp), this.stage.addEventListener("pointerupoutside", this._onHandlerPointerUp));
|
|
41
43
|
}, this._onHandlerPointerMove = e => {
|
|
@@ -53,16 +55,16 @@ class Slider extends base_1.AbstractComponent {
|
|
|
53
55
|
"text" === this._currentHandler.type ? this._updateHandlerText(this._currentHandler, newPos, currentValue) : this._updateHandler(this._currentHandler, newPos, currentValue),
|
|
54
56
|
this._updateTrack(), this._prePos = currentPos, this._dispatchChangeEvent();
|
|
55
57
|
}, this._onHandlerPointerUp = e => {
|
|
56
|
-
e.preventDefault(), this._currentHandler = null, "browser" ===
|
|
58
|
+
e.preventDefault(), this._currentHandler = null, "browser" === core_1.vglobal.env ? (core_1.vglobal.removeEventListener("pointermove", this._onHandlerPointerMove, {
|
|
57
59
|
capture: !0
|
|
58
|
-
}),
|
|
60
|
+
}), core_1.vglobal.removeEventListener("pointerup", this._onHandlerPointerUp)) : (this.stage.removeEventListener("pointermove", this._onHandlerPointerMove, {
|
|
59
61
|
capture: !0
|
|
60
62
|
}), this.stage.removeEventListener("pointerup", this._onHandlerPointerUp), this.stage.removeEventListener("pointerupoutside", this._onHandlerPointerUp));
|
|
61
63
|
}, this._onTrackPointerdown = e => {
|
|
62
64
|
e.stopPropagation(), this._prePos = this._isHorizontal ? e.clientX : e.clientY,
|
|
63
|
-
"browser" ===
|
|
65
|
+
"browser" === core_1.vglobal.env ? (core_1.vglobal.addEventListener("pointermove", this._onTrackPointerMove, {
|
|
64
66
|
capture: !0
|
|
65
|
-
}),
|
|
67
|
+
}), core_1.vglobal.addEventListener("pointerup", this._onTrackPointerUp)) : (this.stage.addEventListener("pointermove", this._onTrackPointerMove, {
|
|
66
68
|
capture: !0
|
|
67
69
|
}), this.stage.addEventListener("pointerup", this._onTrackPointerUp), this.stage.addEventListener("pointerupoutside", this._onTrackPointerUp));
|
|
68
70
|
}, this._onTrackPointerMove = e => {
|
|
@@ -93,9 +95,9 @@ class Slider extends base_1.AbstractComponent {
|
|
|
93
95
|
}
|
|
94
96
|
this._prePos = currentPos, this._dispatchChangeEvent();
|
|
95
97
|
}, this._onTrackPointerUp = e => {
|
|
96
|
-
e.preventDefault(), "browser" ===
|
|
98
|
+
e.preventDefault(), "browser" === core_1.vglobal.env ? (core_1.vglobal.removeEventListener("pointermove", this._onTrackPointerMove, {
|
|
97
99
|
capture: !0
|
|
98
|
-
}),
|
|
100
|
+
}), core_1.vglobal.removeEventListener("pointerup", this._onTrackPointerUp)) : (this.stage.removeEventListener("pointermove", this._onTrackPointerMove, {
|
|
99
101
|
capture: !0
|
|
100
102
|
}), this.stage.removeEventListener("pointerup", this._onTrackPointerUp), this.stage.removeEventListener("pointerupoutside", this._onTrackPointerUp));
|
|
101
103
|
}, this._onRailPointerDown = e => {
|
|
@@ -137,7 +139,7 @@ class Slider extends base_1.AbstractComponent {
|
|
|
137
139
|
};
|
|
138
140
|
const isHorizontal = "horizontal" === layout;
|
|
139
141
|
this._isHorizontal = isHorizontal;
|
|
140
|
-
const innerView =
|
|
142
|
+
const innerView = core_1.graphicCreator.group({
|
|
141
143
|
x: 0,
|
|
142
144
|
y: 0
|
|
143
145
|
});
|
|
@@ -145,7 +147,7 @@ class Slider extends base_1.AbstractComponent {
|
|
|
145
147
|
this._innerView = innerView;
|
|
146
148
|
let startTextShape, startLen = 0;
|
|
147
149
|
if (startText && startText.visible) {
|
|
148
|
-
startTextShape =
|
|
150
|
+
startTextShape = core_1.graphicCreator.text(Object.assign({
|
|
149
151
|
x: isHorizontal ? 0 : railWidth / 2,
|
|
150
152
|
y: isHorizontal ? railHeight / 2 : 0,
|
|
151
153
|
textAlign: isHorizontal ? "start" : "center",
|
|
@@ -157,12 +159,12 @@ class Slider extends base_1.AbstractComponent {
|
|
|
157
159
|
const space = (0, vutils_1.isValid)(startText.space) ? startText.space : 0;
|
|
158
160
|
startLen += (isHorizontal ? startTextShape.AABBBounds.width() : startTextShape.AABBBounds.height()) + space;
|
|
159
161
|
}
|
|
160
|
-
const mainContainer =
|
|
162
|
+
const mainContainer = core_1.graphicCreator.group({
|
|
161
163
|
x: isHorizontal ? startLen : 0,
|
|
162
164
|
y: isHorizontal ? 0 : startLen
|
|
163
165
|
});
|
|
164
166
|
innerView.add(mainContainer);
|
|
165
|
-
const railContainer =
|
|
167
|
+
const railContainer = core_1.graphicCreator.group({
|
|
166
168
|
x: 0,
|
|
167
169
|
y: 0
|
|
168
170
|
});
|
|
@@ -171,7 +173,7 @@ class Slider extends base_1.AbstractComponent {
|
|
|
171
173
|
mainContainer.add(railContainer), this._renderRail(railContainer), startLen += isHorizontal ? railWidth : railHeight,
|
|
172
174
|
endText && endText.visible) {
|
|
173
175
|
const space = (0, vutils_1.isValid)(endText.space) ? endText.space : 0;
|
|
174
|
-
endTextShape =
|
|
176
|
+
endTextShape = core_1.graphicCreator.text(Object.assign({
|
|
175
177
|
x: isHorizontal ? startLen + space : railWidth / 2,
|
|
176
178
|
y: isHorizontal ? railHeight / 2 : startLen + space,
|
|
177
179
|
textAlign: isHorizontal ? "start" : "center",
|
|
@@ -188,7 +190,7 @@ class Slider extends base_1.AbstractComponent {
|
|
|
188
190
|
const {railWidth: railWidth, railHeight: railHeight, railStyle: railStyle, slidable: slidable} = this.attribute;
|
|
189
191
|
let cursor = "default";
|
|
190
192
|
!1 !== slidable && (cursor = "pointer");
|
|
191
|
-
const railShape =
|
|
193
|
+
const railShape = core_1.graphicCreator.rect(Object.assign({
|
|
192
194
|
x: 0,
|
|
193
195
|
y: 0,
|
|
194
196
|
width: railWidth,
|
|
@@ -240,7 +242,7 @@ class Slider extends base_1.AbstractComponent {
|
|
|
240
242
|
} else startValue = min, endValue = (0, vutils_1.clamp)(value, min, max);
|
|
241
243
|
const isHorizontal = this._isHorizontal, railLen = isHorizontal ? railWidth : railHeight;
|
|
242
244
|
range || (startValue = min);
|
|
243
|
-
const trackContainer =
|
|
245
|
+
const trackContainer = core_1.graphicCreator.group({
|
|
244
246
|
x: 0,
|
|
245
247
|
y: 0,
|
|
246
248
|
width: railWidth,
|
|
@@ -253,7 +255,7 @@ class Slider extends base_1.AbstractComponent {
|
|
|
253
255
|
const draggableTrack = (0, vutils_1.isObject)(range) && !0 === range.draggableTrack;
|
|
254
256
|
let cursor;
|
|
255
257
|
cursor = !1 === slidable ? "default" : !1 === range || !1 === draggableTrack ? "pointer" : getDefaultCursor(isHorizontal);
|
|
256
|
-
const trackWidth = max === min ? railLen : (endValue - startValue) / (max - min) * railLen, startPos = max === min ? 0 : (startValue - min) / (max - min) * railLen, track =
|
|
258
|
+
const trackWidth = max === min ? railLen : (endValue - startValue) / (max - min) * railLen, startPos = max === min ? 0 : (startValue - min) / (max - min) * railLen, track = core_1.graphicCreator.rect(Object.assign({
|
|
257
259
|
x: isHorizontal ? startPos : 0,
|
|
258
260
|
y: isHorizontal ? 0 : startPos,
|
|
259
261
|
width: isHorizontal ? trackWidth : railWidth,
|
|
@@ -264,7 +266,7 @@ class Slider extends base_1.AbstractComponent {
|
|
|
264
266
|
container.add(trackContainer);
|
|
265
267
|
}
|
|
266
268
|
_renderHandler(style) {
|
|
267
|
-
return
|
|
269
|
+
return core_1.graphicCreator.symbol(style);
|
|
268
270
|
}
|
|
269
271
|
_renderHandlerText(value, position) {
|
|
270
272
|
var _a, _b, _c;
|
|
@@ -279,7 +281,7 @@ class Slider extends base_1.AbstractComponent {
|
|
|
279
281
|
textStyle.textAlign = "end", textStyle.x = (railWidth - handlerSize) / 2 - textSpace,
|
|
280
282
|
textStyle.y = handlerStart) : (textStyle.textBaseline = "middle", textStyle.textAlign = "start",
|
|
281
283
|
textStyle.x = (railWidth + handlerSize) / 2 + textSpace, textStyle.y = handlerStart);
|
|
282
|
-
return
|
|
284
|
+
return core_1.graphicCreator.text(Object.assign(Object.assign({}, textStyle), handlerText.style));
|
|
283
285
|
}
|
|
284
286
|
_bindEvents() {
|
|
285
287
|
if (this.attribute.disableTriggerEvent) return;
|
|
@@ -349,7 +351,7 @@ class Slider extends base_1.AbstractComponent {
|
|
|
349
351
|
}
|
|
350
352
|
_dispatchChangeEvent() {
|
|
351
353
|
var _a;
|
|
352
|
-
const isRange = !!this.attribute.range, currentValue = this._currentValue, changeEvent = new
|
|
354
|
+
const isRange = !!this.attribute.range, currentValue = this._currentValue, changeEvent = new core_1.CustomEvent("change", {
|
|
353
355
|
value: isRange ? [ Math.min(currentValue.endValue, currentValue.startValue), Math.max(currentValue.endValue, currentValue.startValue) ] : currentValue.startValue,
|
|
354
356
|
position: isRange ? [ Math.min(currentValue.endPos, currentValue.startPos), Math.max(currentValue.endPos, currentValue.startPos) ] : currentValue.startPos
|
|
355
357
|
});
|
package/cjs/slider/slider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/slider/slider.ts"],"names":[],"mappings":"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","file":"slider.js","sourcesContent":["/**\n * @description slider 滑块组件\n * TODO:\n * 3. step 功能开发\n * 4. tooltip 功能开发\n */\nimport type {\n IGroup,\n ISymbol,\n IGraphic,\n ISymbolGraphicAttribute,\n IText,\n ITextGraphicAttribute,\n FederatedPointerEvent,\n Cursor\n} from '@visactor/vrender-core';\nimport { isNil, merge, clamp, isValid, array, isObject, isArray, clampRange } from '@visactor/vutils';\nimport { graphicCreator, vglobal, CustomEvent } from '@visactor/vrender-core';\nimport { AbstractComponent } from '../core/base';\nimport { SLIDER_ELEMENT_NAME } from './constant';\n\nimport type { SliderAttributes } from './type';\nimport type { ComponentOptions } from '../interface';\n\nfunction convertValueToRange(value: number | [number, number]) {\n if (isArray(value)) {\n return value;\n }\n return [value, value];\n}\n\nfunction getDefaultCursor(isHorizontal: boolean) {\n return isHorizontal ? 'ew-resize' : 'ns-resize';\n}\n\nexport class Slider extends AbstractComponent<Required<SliderAttributes>> {\n name = 'slider';\n\n static defaultAttributes = {\n slidable: true,\n layout: 'horizontal',\n align: 'bottom',\n height: 8,\n showHandler: true,\n handlerSize: 14,\n handlerStyle: {\n symbolType: 'circle',\n fill: '#fff',\n stroke: '#91caff',\n lineWidth: 2\n },\n railStyle: {\n fill: 'rgba(0,0,0,.04)'\n },\n trackStyle: {\n fill: '#91caff'\n },\n showValue: true,\n valueStyle: {\n fill: '#2C3542',\n fontSize: 12\n },\n startText: {\n style: {\n fill: '#2C3542',\n fontSize: 12\n }\n },\n endText: {\n style: {\n fill: '#2C3542',\n fontSize: 12\n }\n },\n handlerText: {\n visible: true,\n space: 4,\n precision: 0,\n style: {\n fill: '#2C3542',\n fontSize: 12\n }\n }\n };\n\n protected _isHorizontal = true;\n protected _innerView!: IGroup;\n protected _startHandler: ISymbol | null = null;\n protected _endHandler: ISymbol | null = null;\n protected _startHandlerText: IText | null = null;\n protected _endHandlerText: IText | null = null;\n protected _railContainer!: IGroup;\n protected _rail!: IGraphic;\n protected _track!: IGraphic;\n // 保留滑块上一次的位置\n private _prePos!: number;\n // 存储当前正在操作的滑块\n private _currentHandler: IGraphic | null = null;\n private _currentValue: { startValue?: number; endValue?: number; startPos?: number; endPos?: number } = {};\n\n get track() {\n return this._track;\n }\n\n get currentValue() {\n return this._currentValue;\n }\n\n get startHandler() {\n return this._startHandler;\n }\n\n get endHandler() {\n return this._endHandler;\n }\n\n constructor(attributes: SliderAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Slider.defaultAttributes, attributes));\n }\n\n /**\n * 更新值域\n */\n setValue(value: number | number[]) {\n const { layout, railWidth, railHeight, min, max } = this.attribute as SliderAttributes;\n if (max === min) {\n return;\n }\n\n const [startValue, endValue] = array(value);\n\n const { startHandler, endHandler } = this._getHandlers();\n const railLen = layout === 'vertical' ? railHeight : railWidth;\n const startPos = ((startValue - min) / (max - min)) * railLen;\n if (startHandler) {\n this._updateHandler(startHandler, startPos, startValue);\n }\n\n if (endHandler) {\n const endPos = ((endValue - min) / (max - min)) * railLen;\n this._updateHandler(endHandler, endPos, endValue);\n }\n\n this._updateTrack();\n }\n\n render() {\n this.removeAllChild();\n const {\n layout = 'horizontal',\n railWidth,\n railHeight,\n startText,\n endText,\n min,\n max,\n showHandler = true\n } = this.attribute as SliderAttributes;\n let { value } = this.attribute as SliderAttributes;\n if (isNil(value)) {\n value = [min, max];\n }\n\n this._currentValue = {\n startValue: convertValueToRange(value)[0],\n endValue: convertValueToRange(value)[1]\n };\n const isHorizontal = layout === 'horizontal';\n this._isHorizontal = isHorizontal;\n\n const innerView = graphicCreator.group({\n x: 0,\n y: 0\n });\n innerView.name = SLIDER_ELEMENT_NAME.innerView;\n this.add(innerView);\n this._innerView = innerView;\n\n let startLen = 0;\n let startTextShape;\n if (startText && startText.visible) {\n // 渲染首部文本\n startTextShape = graphicCreator.text({\n x: isHorizontal ? 0 : railWidth / 2,\n y: isHorizontal ? (railHeight as number) / 2 : 0,\n textAlign: isHorizontal ? 'start' : 'center',\n textBaseline: isHorizontal ? 'middle' : 'top',\n text: startText.text,\n lineHeight: startText.style?.fontSize,\n ...startText.style\n });\n startTextShape.name = SLIDER_ELEMENT_NAME.startText;\n innerView.add(startTextShape);\n const space = isValid(startText.space) ? startText.space : 0;\n startLen += (isHorizontal ? startTextShape.AABBBounds.width() : startTextShape.AABBBounds.height()) + space;\n }\n const mainContainer = graphicCreator.group({\n x: isHorizontal ? startLen : 0,\n y: isHorizontal ? 0 : startLen\n });\n innerView.add(mainContainer);\n\n const railContainer = graphicCreator.group({\n x: 0,\n y: 0\n });\n railContainer.name = SLIDER_ELEMENT_NAME.railContainer;\n this._railContainer = railContainer;\n mainContainer.add(railContainer);\n\n this._renderRail(railContainer);\n\n startLen += isHorizontal ? (railWidth as number) : (railHeight as number);\n\n let endTextShape;\n if (endText && endText.visible) {\n const space = isValid(endText.space) ? endText.space : 0;\n\n // 渲染首部文本\n endTextShape = graphicCreator.text({\n x: isHorizontal ? startLen + space : railWidth / 2,\n y: isHorizontal ? (railHeight as number) / 2 : startLen + space,\n textAlign: isHorizontal ? 'start' : 'center',\n textBaseline: isHorizontal ? 'middle' : 'top',\n text: endText.text,\n lineHeight: endText.style?.fontSize,\n ...endText.style\n });\n endTextShape.name = SLIDER_ELEMENT_NAME.endText;\n innerView.add(endTextShape);\n }\n\n this._renderTrack(railContainer);\n\n if (showHandler) {\n this._renderHandlers(mainContainer);\n this._bindEvents();\n }\n }\n\n // 渲染滑块轨道\n protected _renderRail(container: IGroup) {\n const { railWidth, railHeight, railStyle, slidable } = this.attribute;\n\n let cursor: Cursor = 'default';\n if (slidable !== false) {\n cursor = 'pointer';\n }\n\n const railShape = graphicCreator.rect({\n x: 0,\n y: 0,\n width: railWidth,\n height: railHeight,\n cursor,\n ...railStyle\n });\n railShape.name = SLIDER_ELEMENT_NAME.rail;\n container.add(railShape);\n this._rail = railShape;\n\n return railShape;\n }\n\n // 渲染 handler\n protected _renderHandlers(container: IGroup) {\n const {\n range,\n min,\n max,\n handlerSize = 14,\n handlerStyle,\n handlerText,\n railHeight,\n railWidth,\n slidable\n } = this.attribute as SliderAttributes;\n let { value } = this.attribute as SliderAttributes;\n if (isNil(value)) {\n value = [min, max];\n }\n\n const handlerTextVisible = handlerText && handlerText.visible;\n const isHorizontal = this._isHorizontal;\n const railLen = isHorizontal ? railWidth : railHeight;\n\n const [startValue, endValue] = convertValueToRange(value);\n // 单滑块\n const handlerStart = max === min ? (range ? 0 : railLen) : (((startValue as number) - min) / (max - min)) * railLen;\n const startHandler = this._renderHandler({\n x: isHorizontal ? handlerStart : railWidth / 2,\n y: isHorizontal ? railHeight / 2 : handlerStart,\n size: handlerSize,\n strokeBoundsBuffer: 0,\n cursor: slidable === false ? 'default' : getDefaultCursor(isHorizontal),\n ...handlerStyle\n });\n startHandler.name = SLIDER_ELEMENT_NAME.startHandler;\n this._startHandler = startHandler;\n container.add(startHandler);\n this._currentValue.startPos = handlerStart;\n\n if (handlerTextVisible) {\n const startHandlerText = this._renderHandlerText(startValue, range ? 'start' : 'end');\n startHandlerText.name = SLIDER_ELEMENT_NAME.startHandlerText;\n container.add(startHandlerText);\n\n this._startHandlerText = startHandlerText;\n }\n\n if (range) {\n // 绘制第二个滑块\n // 单滑块\n const handlerEnd = max === min ? railLen : (((endValue as number) - min) / (max - min)) * railLen;\n const endHandler = this._renderHandler({\n x: isHorizontal ? handlerEnd : railWidth / 2,\n y: isHorizontal ? railHeight / 2 : handlerEnd,\n size: handlerSize,\n strokeBoundsBuffer: 0,\n cursor: slidable === false ? 'default' : getDefaultCursor(isHorizontal),\n ...handlerStyle\n });\n endHandler.name = SLIDER_ELEMENT_NAME.endHandler;\n this._endHandler = endHandler;\n container.add(endHandler);\n this._currentValue.endPos = handlerEnd;\n\n if (handlerTextVisible) {\n const endHandlerText = this._renderHandlerText(endValue, 'end');\n endHandlerText.name = SLIDER_ELEMENT_NAME.endHandlerText;\n container.add(endHandlerText);\n\n this._endHandlerText = endHandlerText;\n }\n }\n }\n\n // 渲染选中区域\n protected _renderTrack(container: IGroup) {\n const { range, min, max, railHeight, railWidth, trackStyle, railStyle, slidable, value } = this\n .attribute as SliderAttributes;\n\n let startValue;\n let endValue;\n\n if (isNil(value)) {\n if (range) {\n startValue = min;\n endValue = max;\n } else {\n startValue = endValue = min;\n }\n } else {\n if (range) {\n const clampValue = clampRange(value as [number, number], min, max);\n startValue = clampValue[0];\n endValue = clampValue[1];\n } else {\n startValue = min;\n endValue = clamp(value as number, min, max);\n }\n }\n\n const isHorizontal = this._isHorizontal;\n const railLen = isHorizontal ? railWidth : railHeight;\n // eslint-disable-next-line prefer-const\n // let [startValue, endValue] = convertValueToRange(value);\n\n if (!range) {\n startValue = min;\n }\n\n const trackContainer = graphicCreator.group({\n x: 0,\n y: 0,\n width: railWidth,\n height: railHeight,\n cornerRadius: railStyle?.cornerRadius,\n clip: true,\n pickable: false\n });\n trackContainer.name = SLIDER_ELEMENT_NAME.trackContainer;\n\n const draggableTrack = isObject(range) && range.draggableTrack === true;\n let cursor: Cursor;\n if (slidable === false) {\n cursor = 'default';\n } else if (range === false) {\n cursor = 'pointer';\n } else if (draggableTrack === false) {\n cursor = 'pointer';\n } else {\n cursor = getDefaultCursor(isHorizontal);\n }\n\n const trackWidth = max === min ? railLen : ((endValue - startValue) / (max - min)) * railLen;\n const startPos = max === min ? 0 : ((startValue - min) / (max - min)) * railLen;\n const track = graphicCreator.rect({\n x: isHorizontal ? startPos : 0,\n y: isHorizontal ? 0 : startPos,\n width: isHorizontal ? trackWidth : railWidth,\n height: isHorizontal ? railHeight : trackWidth,\n cursor,\n ...trackStyle\n });\n track.name = SLIDER_ELEMENT_NAME.track;\n this._track = track;\n trackContainer.add(track);\n container.add(trackContainer);\n }\n\n protected _renderHandler(style: Partial<ISymbolGraphicAttribute>) {\n // 渲染单个滑块\n const handler = graphicCreator.symbol(style);\n\n return handler;\n }\n\n private _renderHandlerText(value: number, position: string) {\n const {\n align,\n min,\n max,\n handlerSize = 14,\n handlerText = {},\n railHeight,\n railWidth,\n slidable\n } = this.attribute as SliderAttributes;\n\n const isHorizontal = this._isHorizontal;\n const railLen = isHorizontal ? railWidth : railHeight;\n const handlerStart =\n max === min ? (position === 'start' ? 0 : railLen) : (((value as number) - min) / (max - min)) * railLen;\n const textSpace = handlerText.space ?? 4;\n const textStyle: ITextGraphicAttribute = {\n text: handlerText?.formatter ? handlerText.formatter(value) : value.toFixed(handlerText?.precision ?? 0),\n lineHeight: handlerText.style?.lineHeight,\n cursor: slidable === false ? 'default' : getDefaultCursor(isHorizontal)\n };\n if (isHorizontal) {\n if (align === 'top') {\n // 展示 slider 上部\n textStyle.textBaseline = 'bottom';\n textStyle.textAlign = 'center';\n textStyle.x = handlerStart;\n textStyle.y = (railHeight - handlerSize) / 2 - textSpace;\n } else {\n // 展示 slider 下部\n textStyle.textBaseline = 'top';\n textStyle.textAlign = 'center';\n textStyle.x = handlerStart;\n textStyle.y = (railHeight + handlerSize) / 2 + textSpace;\n }\n } else {\n if (align === 'left') {\n // 展示 slider 左侧\n textStyle.textBaseline = 'middle';\n textStyle.textAlign = 'end';\n textStyle.x = (railWidth - handlerSize) / 2 - textSpace;\n textStyle.y = handlerStart;\n } else {\n // 展示 slider 右侧\n textStyle.textBaseline = 'middle';\n textStyle.textAlign = 'start';\n textStyle.x = (railWidth + handlerSize) / 2 + textSpace;\n textStyle.y = handlerStart;\n }\n }\n\n // 展示 handler 当前所在的数值\n const textShape = graphicCreator.text({\n ...textStyle,\n ...handlerText.style\n });\n return textShape;\n }\n\n private _bindEvents() {\n if (this.attribute.disableTriggerEvent) {\n return;\n }\n const { slidable, range } = this.attribute as SliderAttributes;\n if (slidable) {\n if (this._startHandler) {\n this._startHandler.addEventListener(\n 'pointerdown',\n this._onHandlerPointerdown as EventListenerOrEventListenerObject\n );\n }\n if (this._startHandlerText) {\n this._startHandlerText.addEventListener(\n 'pointerdown',\n this._onHandlerPointerdown as EventListenerOrEventListenerObject\n );\n }\n if (this._endHandler) {\n this._endHandler.addEventListener(\n 'pointerdown',\n this._onHandlerPointerdown as EventListenerOrEventListenerObject\n );\n }\n if (this._endHandlerText) {\n this._endHandlerText.addEventListener(\n 'pointerdown',\n this._onHandlerPointerdown as EventListenerOrEventListenerObject\n );\n }\n\n if (isObject(range) && range.draggableTrack) {\n this._track.addEventListener('pointerdown', this._onTrackPointerdown as EventListenerOrEventListenerObject);\n }\n\n this._railContainer.addEventListener(\n 'pointerdown',\n this._onRailPointerDown as EventListenerOrEventListenerObject\n );\n }\n }\n\n private _onHandlerPointerdown = (e: FederatedPointerEvent) => {\n e.stopPropagation();\n this._currentHandler = e.target as unknown as IGraphic;\n this._prePos = this._isHorizontal ? e.clientX : e.clientY;\n if (vglobal.env === 'browser') {\n vglobal.addEventListener('pointermove', this._onHandlerPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n vglobal.addEventListener('pointerup', this._onHandlerPointerUp as EventListenerOrEventListenerObject);\n } else {\n this.stage.addEventListener('pointermove', this._onHandlerPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n this.stage.addEventListener('pointerup', this._onHandlerPointerUp as EventListenerOrEventListenerObject);\n this.stage.addEventListener('pointerupoutside', this._onHandlerPointerUp as EventListenerOrEventListenerObject);\n }\n };\n\n private _onHandlerPointerMove = (e: FederatedPointerEvent) => {\n e.stopPropagation();\n const { railWidth, railHeight, min, max } = this.attribute as SliderAttributes;\n if (max === min) {\n return;\n }\n\n let currentPos;\n let delta = 0;\n let originPos;\n let railLen;\n if (!this._isHorizontal) {\n currentPos = e.clientY;\n delta = currentPos - this._prePos; // 实际位移的变化\n originPos = this._currentHandler?.attribute.y as number;\n railLen = railHeight;\n } else {\n currentPos = e.clientX;\n delta = currentPos - this._prePos; // 实际位移的变化\n originPos = this._currentHandler?.attribute.x as number;\n railLen = railWidth;\n }\n\n const newPos = clamp(originPos + delta, 0, railLen);\n const currentValue = (newPos / railLen) * (max - min) + min;\n\n if (this._currentHandler.type === 'text') {\n this._updateHandlerText(this._currentHandler as IText, newPos, currentValue);\n } else {\n this._updateHandler(this._currentHandler as ISymbol, newPos, currentValue);\n }\n\n this._updateTrack();\n this._prePos = currentPos;\n\n this._dispatchChangeEvent();\n };\n\n private _onHandlerPointerUp = (e: FederatedPointerEvent) => {\n e.preventDefault();\n this._currentHandler = null;\n if (vglobal.env === 'browser') {\n vglobal.removeEventListener('pointermove', this._onHandlerPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n vglobal.removeEventListener('pointerup', this._onHandlerPointerUp as EventListenerOrEventListenerObject);\n } else {\n this.stage.removeEventListener('pointermove', this._onHandlerPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n this.stage.removeEventListener('pointerup', this._onHandlerPointerUp as EventListenerOrEventListenerObject);\n this.stage.removeEventListener(\n 'pointerupoutside',\n this._onHandlerPointerUp as EventListenerOrEventListenerObject\n );\n }\n };\n\n private _onTrackPointerdown = (e: FederatedPointerEvent) => {\n e.stopPropagation();\n this._prePos = this._isHorizontal ? e.clientX : e.clientY;\n if (vglobal.env === 'browser') {\n vglobal.addEventListener('pointermove', this._onTrackPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n vglobal.addEventListener('pointerup', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n } else {\n this.stage.addEventListener('pointermove', this._onTrackPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n this.stage.addEventListener('pointerup', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n this.stage.addEventListener('pointerupoutside', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n }\n };\n\n private _onTrackPointerMove = (e: FederatedPointerEvent) => {\n e.stopPropagation();\n const { railWidth, railHeight, min, max } = this.attribute as SliderAttributes;\n\n if (max === min) {\n return;\n }\n const { startHandler, endHandler } = this._getHandlers();\n\n let currentPos;\n let trackLen;\n let railLen;\n if (this._isHorizontal) {\n currentPos = e.clientX;\n // @ts-ignore\n trackLen = this._track.attribute.width;\n railLen = railWidth;\n } else {\n currentPos = e.clientY;\n // @ts-ignore\n trackLen = this._track.attribute.height;\n railLen = railHeight;\n }\n const delta = currentPos - this._prePos; // 实际位移的变化\n if (startHandler) {\n const originPos = (this._isHorizontal ? startHandler.attribute.x : startHandler.attribute.y) as number;\n const newPos = clamp(originPos + delta, 0, railLen - trackLen);\n const currentValue = (newPos / railLen) * (max - min) + min;\n this._updateHandler(startHandler, newPos, currentValue);\n }\n\n if (endHandler) {\n const originPos = (this._isHorizontal ? endHandler.attribute.x : endHandler.attribute.y) as number;\n const newPos = clamp(originPos + delta, trackLen, railLen);\n const currentValue = (newPos / railLen) * (max - min) + min;\n this._updateHandler(endHandler, newPos, currentValue);\n this._track.setAttributes(\n this._isHorizontal\n ? {\n x: Math.min(startHandler?.attribute.x as number, endHandler?.attribute.x as number),\n // @ts-ignore\n width: Math.abs((startHandler?.attribute.x as number) - (endHandler?.attribute.x as number))\n }\n : {\n y: Math.min(startHandler?.attribute.y as number, endHandler?.attribute.y as number),\n // @ts-ignore\n height: Math.abs((startHandler?.attribute.y as number) - (endHandler?.attribute.y as number))\n }\n );\n }\n\n this._prePos = currentPos;\n this._dispatchChangeEvent();\n };\n\n private _onTrackPointerUp = (e: FederatedPointerEvent) => {\n e.preventDefault();\n if (vglobal.env === 'browser') {\n vglobal.removeEventListener('pointermove', this._onTrackPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n vglobal.removeEventListener('pointerup', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n } else {\n this.stage.removeEventListener('pointermove', this._onTrackPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n this.stage.removeEventListener('pointerup', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n this.stage.removeEventListener('pointerupoutside', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n }\n };\n\n private _onRailPointerDown = (e: FederatedPointerEvent) => {\n e.stopPropagation();\n const { railWidth, railHeight, min, max } = this.attribute as SliderAttributes;\n\n if (max === min) {\n return;\n }\n\n const startHandler = this._startHandler as ISymbol;\n const endHandler = this._endHandler;\n\n let currentPos;\n let startHandlerPos;\n let endHandlerPos;\n let railLen;\n // 更新 handler, text 以及 track\n if (this._isHorizontal) {\n currentPos = e.viewX - this._rail.globalAABBBounds.x1;\n startHandlerPos = startHandler?.attribute.x as number;\n endHandlerPos = endHandler?.attribute.x;\n railLen = railWidth;\n } else {\n currentPos = e.viewY - this._rail.globalAABBBounds.y1;\n startHandlerPos = startHandler?.attribute.y as number;\n endHandlerPos = endHandler?.attribute.y;\n railLen = railHeight;\n }\n\n const currentValue = (currentPos / railLen) * (max - min) + min;\n\n if (isValid(endHandlerPos)) {\n const updateHandler = (\n Math.abs(currentPos - startHandlerPos) > Math.abs(currentPos - endHandlerPos) ? endHandler : startHandler\n ) as ISymbol;\n this._updateHandler(updateHandler, currentPos, currentValue);\n } else {\n this._updateHandler(startHandler, currentPos, currentValue);\n }\n this._updateTrack();\n\n this._dispatchChangeEvent();\n };\n\n // 更新 track 样式\n private _updateTrack() {\n // 更新 track\n const startHandler = this._startHandler;\n const endHandler = this._endHandler;\n\n if (this._isHorizontal) {\n const startHandlerPos = startHandler?.attribute.x as number;\n if (endHandler) {\n const endHandlerPos = endHandler?.attribute.x as number;\n // 区间\n this._track.setAttributes({\n x: Math.min(startHandlerPos, endHandlerPos),\n // @ts-ignore\n width: Math.abs(startHandlerPos - endHandlerPos)\n });\n } else {\n this._track.setAttributes({\n // @ts-ignore\n width: startHandlerPos\n });\n }\n } else {\n const startHandlerPos = startHandler?.attribute.y as number;\n if (endHandler) {\n const endHandlerPos = endHandler?.attribute.y as number;\n // 区间\n this._track.setAttributes({\n y: Math.min(startHandlerPos, endHandlerPos),\n // @ts-ignore\n height: Math.abs(startHandlerPos - endHandlerPos)\n });\n } else {\n this._track.setAttributes({\n // @ts-ignore\n height: startHandlerPos\n });\n }\n }\n }\n\n // 更新 handler 以及对应 text\n private _updateHandler(handler: ISymbol, position: number, value: number) {\n const isHorizontal = this._isHorizontal;\n handler.setAttribute(isHorizontal ? 'x' : 'y', position);\n const updateHandlerText =\n handler.name === SLIDER_ELEMENT_NAME.startHandler ? this._startHandlerText : this._endHandlerText;\n if (updateHandlerText) {\n const { handlerText } = this.attribute as SliderAttributes;\n updateHandlerText?.setAttributes({\n text: handlerText?.formatter ? handlerText.formatter(value) : value.toFixed(handlerText?.precision ?? 0),\n [isHorizontal ? 'x' : 'y']: position\n });\n }\n\n if (handler.name === SLIDER_ELEMENT_NAME.startHandler) {\n this._currentValue.startValue = value;\n this._currentValue.startPos = position;\n } else {\n this._currentValue.endValue = value;\n this._currentValue.endPos = position;\n }\n }\n\n // 更新 handler 以及对应 text\n private _updateHandlerText(handlerText: IText, position: number, value: number) {\n const isHorizontal = this._isHorizontal;\n const { handlerText: handlerTextAttr } = this.attribute as SliderAttributes;\n handlerText.setAttributes({\n [isHorizontal ? 'x' : 'y']: position,\n text: handlerTextAttr?.formatter\n ? handlerTextAttr.formatter(value)\n : value.toFixed(handlerTextAttr?.precision ?? 0)\n });\n const updateHandler =\n handlerText.name === SLIDER_ELEMENT_NAME.startHandlerText ? this._startHandler : this._endHandler;\n if (updateHandler) {\n updateHandler?.setAttributes({\n [isHorizontal ? 'x' : 'y']: position\n });\n }\n\n if (handlerText.name === SLIDER_ELEMENT_NAME.startHandlerText) {\n this._currentValue.startValue = value;\n this._currentValue.startPos = position;\n } else {\n this._currentValue.endValue = value;\n this._currentValue.endPos = position;\n }\n }\n\n private _dispatchChangeEvent() {\n const isRange = !!this.attribute.range;\n const currentValue = this._currentValue;\n const changeEvent = new CustomEvent('change', {\n value: isRange\n ? [\n Math.min(currentValue.endValue as number, currentValue.startValue as number),\n Math.max(currentValue.endValue as number, currentValue.startValue as number)\n ]\n : currentValue.startValue,\n position: isRange\n ? [\n Math.min(currentValue.endPos as number, currentValue.startPos as number),\n Math.max(currentValue.endPos as number, currentValue.startPos as number)\n ]\n : currentValue.startPos\n });\n // FIXME: 需要在 vrender 的事件系统支持\n // @ts-ignore\n changeEvent.manager = this.stage?.eventSystem.manager;\n this.dispatchEvent(changeEvent);\n }\n\n private _getHandlers() {\n let startHandler = this._startHandler;\n let endHandler = this._endHandler;\n let temp;\n\n if (this._isHorizontal) {\n if (endHandler && (endHandler.attribute.x as number) < (startHandler?.attribute.x as number)) {\n temp = startHandler;\n startHandler = endHandler;\n endHandler = temp;\n }\n } else {\n if (endHandler && (endHandler.attribute.y as number) < (startHandler?.attribute.y as number)) {\n temp = startHandler;\n startHandler = endHandler;\n endHandler = temp;\n }\n }\n\n return {\n startHandler,\n endHandler\n };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/slider/slider.ts"],"names":[],"mappings":"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","file":"slider.js","sourcesContent":["/**\n * @description slider 滑块组件\n * TODO:\n * 3. step 功能开发\n * 4. tooltip 功能开发\n */\nimport type {\n IGroup,\n ISymbol,\n IGraphic,\n ISymbolGraphicAttribute,\n IText,\n ITextGraphicAttribute,\n FederatedPointerEvent,\n Cursor\n} from '@visactor/vrender/es/core';\nimport { isNil, merge, clamp, isValid, array, isObject, isArray, clampRange } from '@visactor/vutils';\nimport { graphicCreator, vglobal, CustomEvent } from '@visactor/vrender/es/core';\nimport { AbstractComponent } from '../core/base';\nimport { SLIDER_ELEMENT_NAME } from './constant';\n\nimport type { SliderAttributes } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { loadSliderComponent } from './register';\n\nfunction convertValueToRange(value: number | [number, number]) {\n if (isArray(value)) {\n return value;\n }\n return [value, value];\n}\n\nfunction getDefaultCursor(isHorizontal: boolean) {\n return isHorizontal ? 'ew-resize' : 'ns-resize';\n}\n\nloadSliderComponent();\n\nexport class Slider extends AbstractComponent<Required<SliderAttributes>> {\n name = 'slider';\n\n static defaultAttributes = {\n slidable: true,\n layout: 'horizontal',\n align: 'bottom',\n height: 8,\n showHandler: true,\n handlerSize: 14,\n handlerStyle: {\n symbolType: 'circle',\n fill: '#fff',\n stroke: '#91caff',\n lineWidth: 2\n },\n railStyle: {\n fill: 'rgba(0,0,0,.04)'\n },\n trackStyle: {\n fill: '#91caff'\n },\n showValue: true,\n valueStyle: {\n fill: '#2C3542',\n fontSize: 12\n },\n startText: {\n style: {\n fill: '#2C3542',\n fontSize: 12\n }\n },\n endText: {\n style: {\n fill: '#2C3542',\n fontSize: 12\n }\n },\n handlerText: {\n visible: true,\n space: 4,\n precision: 0,\n style: {\n fill: '#2C3542',\n fontSize: 12\n }\n }\n };\n\n protected _isHorizontal = true;\n protected _innerView!: IGroup;\n protected _startHandler: ISymbol | null = null;\n protected _endHandler: ISymbol | null = null;\n protected _startHandlerText: IText | null = null;\n protected _endHandlerText: IText | null = null;\n protected _railContainer!: IGroup;\n protected _rail!: IGraphic;\n protected _track!: IGraphic;\n // 保留滑块上一次的位置\n private _prePos!: number;\n // 存储当前正在操作的滑块\n private _currentHandler: IGraphic | null = null;\n private _currentValue: { startValue?: number; endValue?: number; startPos?: number; endPos?: number } = {};\n\n get track() {\n return this._track;\n }\n\n get currentValue() {\n return this._currentValue;\n }\n\n get startHandler() {\n return this._startHandler;\n }\n\n get endHandler() {\n return this._endHandler;\n }\n\n constructor(attributes: SliderAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Slider.defaultAttributes, attributes));\n }\n\n /**\n * 更新值域\n */\n setValue(value: number | number[]) {\n const { layout, railWidth, railHeight, min, max } = this.attribute as SliderAttributes;\n if (max === min) {\n return;\n }\n\n const [startValue, endValue] = array(value);\n\n const { startHandler, endHandler } = this._getHandlers();\n const railLen = layout === 'vertical' ? railHeight : railWidth;\n const startPos = ((startValue - min) / (max - min)) * railLen;\n if (startHandler) {\n this._updateHandler(startHandler, startPos, startValue);\n }\n\n if (endHandler) {\n const endPos = ((endValue - min) / (max - min)) * railLen;\n this._updateHandler(endHandler, endPos, endValue);\n }\n\n this._updateTrack();\n }\n\n render() {\n this.removeAllChild();\n const {\n layout = 'horizontal',\n railWidth,\n railHeight,\n startText,\n endText,\n min,\n max,\n showHandler = true\n } = this.attribute as SliderAttributes;\n let { value } = this.attribute as SliderAttributes;\n if (isNil(value)) {\n value = [min, max];\n }\n\n this._currentValue = {\n startValue: convertValueToRange(value)[0],\n endValue: convertValueToRange(value)[1]\n };\n const isHorizontal = layout === 'horizontal';\n this._isHorizontal = isHorizontal;\n\n const innerView = graphicCreator.group({\n x: 0,\n y: 0\n });\n innerView.name = SLIDER_ELEMENT_NAME.innerView;\n this.add(innerView);\n this._innerView = innerView;\n\n let startLen = 0;\n let startTextShape;\n if (startText && startText.visible) {\n // 渲染首部文本\n startTextShape = graphicCreator.text({\n x: isHorizontal ? 0 : railWidth / 2,\n y: isHorizontal ? (railHeight as number) / 2 : 0,\n textAlign: isHorizontal ? 'start' : 'center',\n textBaseline: isHorizontal ? 'middle' : 'top',\n text: startText.text,\n lineHeight: startText.style?.fontSize,\n ...startText.style\n });\n startTextShape.name = SLIDER_ELEMENT_NAME.startText;\n innerView.add(startTextShape);\n const space = isValid(startText.space) ? startText.space : 0;\n startLen += (isHorizontal ? startTextShape.AABBBounds.width() : startTextShape.AABBBounds.height()) + space;\n }\n const mainContainer = graphicCreator.group({\n x: isHorizontal ? startLen : 0,\n y: isHorizontal ? 0 : startLen\n });\n innerView.add(mainContainer);\n\n const railContainer = graphicCreator.group({\n x: 0,\n y: 0\n });\n railContainer.name = SLIDER_ELEMENT_NAME.railContainer;\n this._railContainer = railContainer;\n mainContainer.add(railContainer);\n\n this._renderRail(railContainer);\n\n startLen += isHorizontal ? (railWidth as number) : (railHeight as number);\n\n let endTextShape;\n if (endText && endText.visible) {\n const space = isValid(endText.space) ? endText.space : 0;\n\n // 渲染首部文本\n endTextShape = graphicCreator.text({\n x: isHorizontal ? startLen + space : railWidth / 2,\n y: isHorizontal ? (railHeight as number) / 2 : startLen + space,\n textAlign: isHorizontal ? 'start' : 'center',\n textBaseline: isHorizontal ? 'middle' : 'top',\n text: endText.text,\n lineHeight: endText.style?.fontSize,\n ...endText.style\n });\n endTextShape.name = SLIDER_ELEMENT_NAME.endText;\n innerView.add(endTextShape);\n }\n\n this._renderTrack(railContainer);\n\n if (showHandler) {\n this._renderHandlers(mainContainer);\n this._bindEvents();\n }\n }\n\n // 渲染滑块轨道\n protected _renderRail(container: IGroup) {\n const { railWidth, railHeight, railStyle, slidable } = this.attribute;\n\n let cursor: Cursor = 'default';\n if (slidable !== false) {\n cursor = 'pointer';\n }\n\n const railShape = graphicCreator.rect({\n x: 0,\n y: 0,\n width: railWidth,\n height: railHeight,\n cursor,\n ...railStyle\n });\n railShape.name = SLIDER_ELEMENT_NAME.rail;\n container.add(railShape);\n this._rail = railShape;\n\n return railShape;\n }\n\n // 渲染 handler\n protected _renderHandlers(container: IGroup) {\n const {\n range,\n min,\n max,\n handlerSize = 14,\n handlerStyle,\n handlerText,\n railHeight,\n railWidth,\n slidable\n } = this.attribute as SliderAttributes;\n let { value } = this.attribute as SliderAttributes;\n if (isNil(value)) {\n value = [min, max];\n }\n\n const handlerTextVisible = handlerText && handlerText.visible;\n const isHorizontal = this._isHorizontal;\n const railLen = isHorizontal ? railWidth : railHeight;\n\n const [startValue, endValue] = convertValueToRange(value);\n // 单滑块\n const handlerStart = max === min ? (range ? 0 : railLen) : (((startValue as number) - min) / (max - min)) * railLen;\n const startHandler = this._renderHandler({\n x: isHorizontal ? handlerStart : railWidth / 2,\n y: isHorizontal ? railHeight / 2 : handlerStart,\n size: handlerSize,\n strokeBoundsBuffer: 0,\n cursor: slidable === false ? 'default' : getDefaultCursor(isHorizontal),\n ...handlerStyle\n });\n startHandler.name = SLIDER_ELEMENT_NAME.startHandler;\n this._startHandler = startHandler;\n container.add(startHandler);\n this._currentValue.startPos = handlerStart;\n\n if (handlerTextVisible) {\n const startHandlerText = this._renderHandlerText(startValue, range ? 'start' : 'end');\n startHandlerText.name = SLIDER_ELEMENT_NAME.startHandlerText;\n container.add(startHandlerText);\n\n this._startHandlerText = startHandlerText;\n }\n\n if (range) {\n // 绘制第二个滑块\n // 单滑块\n const handlerEnd = max === min ? railLen : (((endValue as number) - min) / (max - min)) * railLen;\n const endHandler = this._renderHandler({\n x: isHorizontal ? handlerEnd : railWidth / 2,\n y: isHorizontal ? railHeight / 2 : handlerEnd,\n size: handlerSize,\n strokeBoundsBuffer: 0,\n cursor: slidable === false ? 'default' : getDefaultCursor(isHorizontal),\n ...handlerStyle\n });\n endHandler.name = SLIDER_ELEMENT_NAME.endHandler;\n this._endHandler = endHandler;\n container.add(endHandler);\n this._currentValue.endPos = handlerEnd;\n\n if (handlerTextVisible) {\n const endHandlerText = this._renderHandlerText(endValue, 'end');\n endHandlerText.name = SLIDER_ELEMENT_NAME.endHandlerText;\n container.add(endHandlerText);\n\n this._endHandlerText = endHandlerText;\n }\n }\n }\n\n // 渲染选中区域\n protected _renderTrack(container: IGroup) {\n const { range, min, max, railHeight, railWidth, trackStyle, railStyle, slidable, value } = this\n .attribute as SliderAttributes;\n\n let startValue;\n let endValue;\n\n if (isNil(value)) {\n if (range) {\n startValue = min;\n endValue = max;\n } else {\n startValue = endValue = min;\n }\n } else {\n if (range) {\n const clampValue = clampRange(value as [number, number], min, max);\n startValue = clampValue[0];\n endValue = clampValue[1];\n } else {\n startValue = min;\n endValue = clamp(value as number, min, max);\n }\n }\n\n const isHorizontal = this._isHorizontal;\n const railLen = isHorizontal ? railWidth : railHeight;\n // eslint-disable-next-line prefer-const\n // let [startValue, endValue] = convertValueToRange(value);\n\n if (!range) {\n startValue = min;\n }\n\n const trackContainer = graphicCreator.group({\n x: 0,\n y: 0,\n width: railWidth,\n height: railHeight,\n cornerRadius: railStyle?.cornerRadius,\n clip: true,\n pickable: false\n });\n trackContainer.name = SLIDER_ELEMENT_NAME.trackContainer;\n\n const draggableTrack = isObject(range) && range.draggableTrack === true;\n let cursor: Cursor;\n if (slidable === false) {\n cursor = 'default';\n } else if (range === false) {\n cursor = 'pointer';\n } else if (draggableTrack === false) {\n cursor = 'pointer';\n } else {\n cursor = getDefaultCursor(isHorizontal);\n }\n\n const trackWidth = max === min ? railLen : ((endValue - startValue) / (max - min)) * railLen;\n const startPos = max === min ? 0 : ((startValue - min) / (max - min)) * railLen;\n const track = graphicCreator.rect({\n x: isHorizontal ? startPos : 0,\n y: isHorizontal ? 0 : startPos,\n width: isHorizontal ? trackWidth : railWidth,\n height: isHorizontal ? railHeight : trackWidth,\n cursor,\n ...trackStyle\n });\n track.name = SLIDER_ELEMENT_NAME.track;\n this._track = track;\n trackContainer.add(track);\n container.add(trackContainer);\n }\n\n protected _renderHandler(style: Partial<ISymbolGraphicAttribute>) {\n // 渲染单个滑块\n const handler = graphicCreator.symbol(style);\n\n return handler;\n }\n\n private _renderHandlerText(value: number, position: string) {\n const {\n align,\n min,\n max,\n handlerSize = 14,\n handlerText = {},\n railHeight,\n railWidth,\n slidable\n } = this.attribute as SliderAttributes;\n\n const isHorizontal = this._isHorizontal;\n const railLen = isHorizontal ? railWidth : railHeight;\n const handlerStart =\n max === min ? (position === 'start' ? 0 : railLen) : (((value as number) - min) / (max - min)) * railLen;\n const textSpace = handlerText.space ?? 4;\n const textStyle: ITextGraphicAttribute = {\n text: handlerText?.formatter ? handlerText.formatter(value) : value.toFixed(handlerText?.precision ?? 0),\n lineHeight: handlerText.style?.lineHeight,\n cursor: slidable === false ? 'default' : getDefaultCursor(isHorizontal)\n };\n if (isHorizontal) {\n if (align === 'top') {\n // 展示 slider 上部\n textStyle.textBaseline = 'bottom';\n textStyle.textAlign = 'center';\n textStyle.x = handlerStart;\n textStyle.y = (railHeight - handlerSize) / 2 - textSpace;\n } else {\n // 展示 slider 下部\n textStyle.textBaseline = 'top';\n textStyle.textAlign = 'center';\n textStyle.x = handlerStart;\n textStyle.y = (railHeight + handlerSize) / 2 + textSpace;\n }\n } else {\n if (align === 'left') {\n // 展示 slider 左侧\n textStyle.textBaseline = 'middle';\n textStyle.textAlign = 'end';\n textStyle.x = (railWidth - handlerSize) / 2 - textSpace;\n textStyle.y = handlerStart;\n } else {\n // 展示 slider 右侧\n textStyle.textBaseline = 'middle';\n textStyle.textAlign = 'start';\n textStyle.x = (railWidth + handlerSize) / 2 + textSpace;\n textStyle.y = handlerStart;\n }\n }\n\n // 展示 handler 当前所在的数值\n const textShape = graphicCreator.text({\n ...textStyle,\n ...handlerText.style\n });\n return textShape;\n }\n\n private _bindEvents() {\n if (this.attribute.disableTriggerEvent) {\n return;\n }\n const { slidable, range } = this.attribute as SliderAttributes;\n if (slidable) {\n if (this._startHandler) {\n this._startHandler.addEventListener(\n 'pointerdown',\n this._onHandlerPointerdown as EventListenerOrEventListenerObject\n );\n }\n if (this._startHandlerText) {\n this._startHandlerText.addEventListener(\n 'pointerdown',\n this._onHandlerPointerdown as EventListenerOrEventListenerObject\n );\n }\n if (this._endHandler) {\n this._endHandler.addEventListener(\n 'pointerdown',\n this._onHandlerPointerdown as EventListenerOrEventListenerObject\n );\n }\n if (this._endHandlerText) {\n this._endHandlerText.addEventListener(\n 'pointerdown',\n this._onHandlerPointerdown as EventListenerOrEventListenerObject\n );\n }\n\n if (isObject(range) && range.draggableTrack) {\n this._track.addEventListener('pointerdown', this._onTrackPointerdown as EventListenerOrEventListenerObject);\n }\n\n this._railContainer.addEventListener(\n 'pointerdown',\n this._onRailPointerDown as EventListenerOrEventListenerObject\n );\n }\n }\n\n private _onHandlerPointerdown = (e: FederatedPointerEvent) => {\n e.stopPropagation();\n this._currentHandler = e.target as unknown as IGraphic;\n this._prePos = this._isHorizontal ? e.clientX : e.clientY;\n if (vglobal.env === 'browser') {\n vglobal.addEventListener('pointermove', this._onHandlerPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n vglobal.addEventListener('pointerup', this._onHandlerPointerUp as EventListenerOrEventListenerObject);\n } else {\n this.stage.addEventListener('pointermove', this._onHandlerPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n this.stage.addEventListener('pointerup', this._onHandlerPointerUp as EventListenerOrEventListenerObject);\n this.stage.addEventListener('pointerupoutside', this._onHandlerPointerUp as EventListenerOrEventListenerObject);\n }\n };\n\n private _onHandlerPointerMove = (e: FederatedPointerEvent) => {\n e.stopPropagation();\n const { railWidth, railHeight, min, max } = this.attribute as SliderAttributes;\n if (max === min) {\n return;\n }\n\n let currentPos;\n let delta = 0;\n let originPos;\n let railLen;\n if (!this._isHorizontal) {\n currentPos = e.clientY;\n delta = currentPos - this._prePos; // 实际位移的变化\n originPos = this._currentHandler?.attribute.y as number;\n railLen = railHeight;\n } else {\n currentPos = e.clientX;\n delta = currentPos - this._prePos; // 实际位移的变化\n originPos = this._currentHandler?.attribute.x as number;\n railLen = railWidth;\n }\n\n const newPos = clamp(originPos + delta, 0, railLen);\n const currentValue = (newPos / railLen) * (max - min) + min;\n\n if (this._currentHandler.type === 'text') {\n this._updateHandlerText(this._currentHandler as IText, newPos, currentValue);\n } else {\n this._updateHandler(this._currentHandler as ISymbol, newPos, currentValue);\n }\n\n this._updateTrack();\n this._prePos = currentPos;\n\n this._dispatchChangeEvent();\n };\n\n private _onHandlerPointerUp = (e: FederatedPointerEvent) => {\n e.preventDefault();\n this._currentHandler = null;\n if (vglobal.env === 'browser') {\n vglobal.removeEventListener('pointermove', this._onHandlerPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n vglobal.removeEventListener('pointerup', this._onHandlerPointerUp as EventListenerOrEventListenerObject);\n } else {\n this.stage.removeEventListener('pointermove', this._onHandlerPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n this.stage.removeEventListener('pointerup', this._onHandlerPointerUp as EventListenerOrEventListenerObject);\n this.stage.removeEventListener(\n 'pointerupoutside',\n this._onHandlerPointerUp as EventListenerOrEventListenerObject\n );\n }\n };\n\n private _onTrackPointerdown = (e: FederatedPointerEvent) => {\n e.stopPropagation();\n this._prePos = this._isHorizontal ? e.clientX : e.clientY;\n if (vglobal.env === 'browser') {\n vglobal.addEventListener('pointermove', this._onTrackPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n vglobal.addEventListener('pointerup', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n } else {\n this.stage.addEventListener('pointermove', this._onTrackPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n this.stage.addEventListener('pointerup', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n this.stage.addEventListener('pointerupoutside', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n }\n };\n\n private _onTrackPointerMove = (e: FederatedPointerEvent) => {\n e.stopPropagation();\n const { railWidth, railHeight, min, max } = this.attribute as SliderAttributes;\n\n if (max === min) {\n return;\n }\n const { startHandler, endHandler } = this._getHandlers();\n\n let currentPos;\n let trackLen;\n let railLen;\n if (this._isHorizontal) {\n currentPos = e.clientX;\n // @ts-ignore\n trackLen = this._track.attribute.width;\n railLen = railWidth;\n } else {\n currentPos = e.clientY;\n // @ts-ignore\n trackLen = this._track.attribute.height;\n railLen = railHeight;\n }\n const delta = currentPos - this._prePos; // 实际位移的变化\n if (startHandler) {\n const originPos = (this._isHorizontal ? startHandler.attribute.x : startHandler.attribute.y) as number;\n const newPos = clamp(originPos + delta, 0, railLen - trackLen);\n const currentValue = (newPos / railLen) * (max - min) + min;\n this._updateHandler(startHandler, newPos, currentValue);\n }\n\n if (endHandler) {\n const originPos = (this._isHorizontal ? endHandler.attribute.x : endHandler.attribute.y) as number;\n const newPos = clamp(originPos + delta, trackLen, railLen);\n const currentValue = (newPos / railLen) * (max - min) + min;\n this._updateHandler(endHandler, newPos, currentValue);\n this._track.setAttributes(\n this._isHorizontal\n ? {\n x: Math.min(startHandler?.attribute.x as number, endHandler?.attribute.x as number),\n // @ts-ignore\n width: Math.abs((startHandler?.attribute.x as number) - (endHandler?.attribute.x as number))\n }\n : {\n y: Math.min(startHandler?.attribute.y as number, endHandler?.attribute.y as number),\n // @ts-ignore\n height: Math.abs((startHandler?.attribute.y as number) - (endHandler?.attribute.y as number))\n }\n );\n }\n\n this._prePos = currentPos;\n this._dispatchChangeEvent();\n };\n\n private _onTrackPointerUp = (e: FederatedPointerEvent) => {\n e.preventDefault();\n if (vglobal.env === 'browser') {\n vglobal.removeEventListener('pointermove', this._onTrackPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n vglobal.removeEventListener('pointerup', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n } else {\n this.stage.removeEventListener('pointermove', this._onTrackPointerMove as EventListenerOrEventListenerObject, {\n capture: true\n });\n this.stage.removeEventListener('pointerup', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n this.stage.removeEventListener('pointerupoutside', this._onTrackPointerUp as EventListenerOrEventListenerObject);\n }\n };\n\n private _onRailPointerDown = (e: FederatedPointerEvent) => {\n e.stopPropagation();\n const { railWidth, railHeight, min, max } = this.attribute as SliderAttributes;\n\n if (max === min) {\n return;\n }\n\n const startHandler = this._startHandler as ISymbol;\n const endHandler = this._endHandler;\n\n let currentPos;\n let startHandlerPos;\n let endHandlerPos;\n let railLen;\n // 更新 handler, text 以及 track\n if (this._isHorizontal) {\n currentPos = e.viewX - this._rail.globalAABBBounds.x1;\n startHandlerPos = startHandler?.attribute.x as number;\n endHandlerPos = endHandler?.attribute.x;\n railLen = railWidth;\n } else {\n currentPos = e.viewY - this._rail.globalAABBBounds.y1;\n startHandlerPos = startHandler?.attribute.y as number;\n endHandlerPos = endHandler?.attribute.y;\n railLen = railHeight;\n }\n\n const currentValue = (currentPos / railLen) * (max - min) + min;\n\n if (isValid(endHandlerPos)) {\n const updateHandler = (\n Math.abs(currentPos - startHandlerPos) > Math.abs(currentPos - endHandlerPos) ? endHandler : startHandler\n ) as ISymbol;\n this._updateHandler(updateHandler, currentPos, currentValue);\n } else {\n this._updateHandler(startHandler, currentPos, currentValue);\n }\n this._updateTrack();\n\n this._dispatchChangeEvent();\n };\n\n // 更新 track 样式\n private _updateTrack() {\n // 更新 track\n const startHandler = this._startHandler;\n const endHandler = this._endHandler;\n\n if (this._isHorizontal) {\n const startHandlerPos = startHandler?.attribute.x as number;\n if (endHandler) {\n const endHandlerPos = endHandler?.attribute.x as number;\n // 区间\n this._track.setAttributes({\n x: Math.min(startHandlerPos, endHandlerPos),\n // @ts-ignore\n width: Math.abs(startHandlerPos - endHandlerPos)\n });\n } else {\n this._track.setAttributes({\n // @ts-ignore\n width: startHandlerPos\n });\n }\n } else {\n const startHandlerPos = startHandler?.attribute.y as number;\n if (endHandler) {\n const endHandlerPos = endHandler?.attribute.y as number;\n // 区间\n this._track.setAttributes({\n y: Math.min(startHandlerPos, endHandlerPos),\n // @ts-ignore\n height: Math.abs(startHandlerPos - endHandlerPos)\n });\n } else {\n this._track.setAttributes({\n // @ts-ignore\n height: startHandlerPos\n });\n }\n }\n }\n\n // 更新 handler 以及对应 text\n private _updateHandler(handler: ISymbol, position: number, value: number) {\n const isHorizontal = this._isHorizontal;\n handler.setAttribute(isHorizontal ? 'x' : 'y', position);\n const updateHandlerText =\n handler.name === SLIDER_ELEMENT_NAME.startHandler ? this._startHandlerText : this._endHandlerText;\n if (updateHandlerText) {\n const { handlerText } = this.attribute as SliderAttributes;\n updateHandlerText?.setAttributes({\n text: handlerText?.formatter ? handlerText.formatter(value) : value.toFixed(handlerText?.precision ?? 0),\n [isHorizontal ? 'x' : 'y']: position\n });\n }\n\n if (handler.name === SLIDER_ELEMENT_NAME.startHandler) {\n this._currentValue.startValue = value;\n this._currentValue.startPos = position;\n } else {\n this._currentValue.endValue = value;\n this._currentValue.endPos = position;\n }\n }\n\n // 更新 handler 以及对应 text\n private _updateHandlerText(handlerText: IText, position: number, value: number) {\n const isHorizontal = this._isHorizontal;\n const { handlerText: handlerTextAttr } = this.attribute as SliderAttributes;\n handlerText.setAttributes({\n [isHorizontal ? 'x' : 'y']: position,\n text: handlerTextAttr?.formatter\n ? handlerTextAttr.formatter(value)\n : value.toFixed(handlerTextAttr?.precision ?? 0)\n });\n const updateHandler =\n handlerText.name === SLIDER_ELEMENT_NAME.startHandlerText ? this._startHandler : this._endHandler;\n if (updateHandler) {\n updateHandler?.setAttributes({\n [isHorizontal ? 'x' : 'y']: position\n });\n }\n\n if (handlerText.name === SLIDER_ELEMENT_NAME.startHandlerText) {\n this._currentValue.startValue = value;\n this._currentValue.startPos = position;\n } else {\n this._currentValue.endValue = value;\n this._currentValue.endPos = position;\n }\n }\n\n private _dispatchChangeEvent() {\n const isRange = !!this.attribute.range;\n const currentValue = this._currentValue;\n const changeEvent = new CustomEvent('change', {\n value: isRange\n ? [\n Math.min(currentValue.endValue as number, currentValue.startValue as number),\n Math.max(currentValue.endValue as number, currentValue.startValue as number)\n ]\n : currentValue.startValue,\n position: isRange\n ? [\n Math.min(currentValue.endPos as number, currentValue.startPos as number),\n Math.max(currentValue.endPos as number, currentValue.startPos as number)\n ]\n : currentValue.startPos\n });\n // FIXME: 需要在 vrender 的事件系统支持\n // @ts-ignore\n changeEvent.manager = this.stage?.eventSystem.manager;\n this.dispatchEvent(changeEvent);\n }\n\n private _getHandlers() {\n let startHandler = this._startHandler;\n let endHandler = this._endHandler;\n let temp;\n\n if (this._isHorizontal) {\n if (endHandler && (endHandler.attribute.x as number) < (startHandler?.attribute.x as number)) {\n temp = startHandler;\n startHandler = endHandler;\n endHandler = temp;\n }\n } else {\n if (endHandler && (endHandler.attribute.y as number) < (startHandler?.attribute.y as number)) {\n temp = startHandler;\n startHandler = endHandler;\n endHandler = temp;\n }\n }\n\n return {\n startHandler,\n endHandler\n };\n }\n}\n"]}
|
package/cjs/slider/type.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ISymbolGraphicAttribute, IRectGraphicAttribute, ITextGraphicAttribute, IGroupGraphicAttribute } from '@visactor/vrender
|
|
1
|
+
import type { ISymbolGraphicAttribute, IRectGraphicAttribute, ITextGraphicAttribute, IGroupGraphicAttribute } from '@visactor/vrender/es/core';
|
|
2
2
|
type Text = string | number;
|
|
3
3
|
export type TextAttribute = {
|
|
4
4
|
visible?: boolean;
|
package/cjs/slider/type.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/slider/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type {\n ISymbolGraphicAttribute,\n IRectGraphicAttribute,\n ITextGraphicAttribute,\n IGroupGraphicAttribute\n} from '@visactor/vrender
|
|
1
|
+
{"version":3,"sources":["../src/slider/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type {\n ISymbolGraphicAttribute,\n IRectGraphicAttribute,\n ITextGraphicAttribute,\n IGroupGraphicAttribute\n} from '@visactor/vrender/es/core';\n\ntype Text = string | number;\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<Partial<ITextGraphicAttribute>, '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<Partial<ITextGraphicAttribute>, 'text'>;\n};\n\nexport type TooltipConfig = {\n // /**\n // * 是否始终展示\n // */\n // alwaysShow?: boolean;\n /**\n * 格式化函数\n */\n formatter?: (value: Text) => Text;\n // TODO: 待补充一些样式属性\n};\n\nexport type RangeType =\n | boolean\n | {\n /**\n * 范围刻度是否可被拖拽,默认值为 false\n */\n draggableTrack?: boolean;\n };\n\nexport type SliderAttributes = {\n /**\n * 是否允许拖动,默认为 true\n */\n slidable?: boolean;\n /**\n * TODO: 这个类型有问题\n * 布局方式。\n * - 'horizontal' 水平布局\n * - 'vertical' 垂直布局\n */\n layout?: 'horizontal' | 'vertical' | string;\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 * 双滑块模式,默认为 false,单滑块模式\n */\n range?: RangeType;\n /**\n * 最小值\n */\n min: number;\n /**\n * 最大值\n */\n max: number;\n /**\n * 设置当前取值。当 range 为 false 时,使用 number,否则用 [number, number]\n */\n value?: number | [number, number];\n /**\n * TODO:\n * 步长,取值必须大于 0,并且可被 (max - min) 整除。\n * 用于离散连续场景\n */\n step?: number;\n\n /**\n * 滑块的宽度\n */\n railWidth: number;\n /**\n * 滑块的高度\n */\n railHeight: number;\n\n /**\n * 是否绘制 handler,默认为 true\n */\n showHandler?: boolean;\n\n /**\n * handler 操作按钮的大小\n */\n handlerSize?: number;\n\n /**\n * 滑块手柄的样式配置\n */\n handlerStyle?: Partial<ISymbolGraphicAttribute>;\n /**\n * 背景轨道样式配置\n */\n railStyle?: Omit<Partial<IRectGraphicAttribute>, 'width' | 'height'>;\n /**\n * 选中区域样式配置\n */\n trackStyle?: Omit<Partial<IRectGraphicAttribute>, 'width' | 'height'>;\n\n /**\n * 滑块首部文本配置\n */\n startText?: TextAttribute;\n /**\n * 滑块尾部文本配置\n */\n endText?: TextAttribute;\n\n /**\n * 滑块对应的文本配置项\n */\n handlerText?: HandlerTextAttribute;\n\n /**\n * TODO\n * 是否显示 hander 上的 tooltip\n */\n showTooltip?: boolean;\n /**\n * handler tooltip 配置\n */\n tooltip?: TooltipConfig;\n /**\n * 关闭交互效果\n * @default false\n */\n disableTriggerEvent?: boolean;\n} & IGroupGraphicAttribute;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function loadTagComponent(): void;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: !0
|
|
5
|
+
}), exports.loadTagComponent = void 0;
|
|
6
|
+
|
|
7
|
+
const register_1 = require("@visactor/vrender/es/register");
|
|
8
|
+
|
|
9
|
+
function loadTagComponent() {
|
|
10
|
+
(0, register_1.registerGroup)(), (0, register_1.registerRect)(), (0, register_1.registerSymbol)(),
|
|
11
|
+
(0, register_1.registerRichtext)(), (0, register_1.registerText)();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
exports.loadTagComponent = loadTagComponent;
|
|
15
|
+
//# sourceMappingURL=register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/tag/register.ts"],"names":[],"mappings":";;;AAAA,4DAMuC;AAEvC,SAAgB,gBAAgB;IAC9B,IAAA,wBAAa,GAAE,CAAC;IAChB,IAAA,uBAAY,GAAE,CAAC;IACf,IAAA,yBAAc,GAAE,CAAC;IACjB,IAAA,2BAAgB,GAAE,CAAC;IACnB,IAAA,uBAAY,GAAE,CAAC;AACjB,CAAC;AAND,4CAMC","file":"register.js","sourcesContent":["import {\n registerGroup,\n registerRect,\n registerRichtext,\n registerSymbol,\n registerText\n} from '@visactor/vrender/es/register';\n\nexport function loadTagComponent() {\n registerGroup();\n registerRect();\n registerSymbol();\n registerRichtext();\n registerText();\n}\n"]}
|
package/cjs/tag/tag.js
CHANGED
|
@@ -14,7 +14,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
14
14
|
value: !0
|
|
15
15
|
}), exports.Tag = void 0;
|
|
16
16
|
|
|
17
|
-
const vutils_1 = require("@visactor/vutils"), base_1 = require("../core/base"), util_1 = require("../util"), constant_1 = require("../constant");
|
|
17
|
+
const vutils_1 = require("@visactor/vutils"), base_1 = require("../core/base"), util_1 = require("../util"), constant_1 = require("../constant"), register_1 = require("./register");
|
|
18
|
+
|
|
19
|
+
(0, register_1.loadTagComponent)();
|
|
18
20
|
|
|
19
21
|
class Tag extends base_1.AbstractComponent {
|
|
20
22
|
constructor(attributes, options) {
|
package/cjs/tag/tag.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tag/tag.ts"],"names":[],"mappings":"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","file":"tag.js","sourcesContent":["/**\n * @description 标签组件\n */\nimport type {\n IGroup,\n IRect,\n ISymbol,\n IText,\n ITextAttribute,\n ITextGraphicAttribute,\n IRichTextGraphicAttribute,\n IRichText,\n IRichTextCharacter\n} from '@visactor/vrender-core';\nimport { isBoolean, isEmpty, isNil, isNumber, isValid, merge, normalizePadding } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport { measureTextSize } from '../util';\nimport type { BackgroundAttributes, ComponentOptions } from '../interface';\nimport type { TagAttributes, TagShapeAttributes } from './type';\nimport { DEFAULT_HTML_TEXT_SPEC } from '../constant';\n\nexport class Tag extends AbstractComponent<Required<TagAttributes>> {\n name = 'tag';\n\n static defaultAttributes: Partial<TagAttributes> = {\n visible: true,\n textStyle: {\n fontSize: 12,\n fill: '#000',\n textAlign: 'left',\n textBaseline: 'top'\n },\n space: 4,\n padding: 4,\n // @ts-ignore\n shape: {\n fill: '#000'\n }\n };\n\n constructor(attributes: TagAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Tag.defaultAttributes, attributes));\n }\n\n protected render() {\n const {\n text = '',\n textStyle = {} as ITextGraphicAttribute | IRichTextGraphicAttribute,\n shape = {} as TagShapeAttributes,\n panel = {} as BackgroundAttributes,\n space = 4,\n minWidth,\n maxWidth,\n padding = 4,\n visible,\n state,\n type\n } = this.attribute as TagAttributes;\n const parsedPadding = normalizePadding(padding);\n\n const group = this.createOrUpdateChild('tag-content', { x: 0, y: 0, zIndex: 1 }, 'group') as IGroup;\n\n let symbol;\n let tagWidth = parsedPadding[1] + parsedPadding[3];\n let tagHeight = parsedPadding[0] + parsedPadding[2];\n let textX = 0;\n let symbolPlaceWidth = 0;\n const { visible: shapeVisible, ...shapeStyle } = shape;\n if (isBoolean(shapeVisible)) {\n const size = shapeStyle?.size || 10;\n const maxSize = isNumber(size) ? size : Math.max(size[0], size[1]);\n\n symbol = group.createOrUpdateChild(\n 'tag-shape',\n {\n symbolType: 'circle',\n size,\n strokeBoundsBuffer: 0,\n ...shapeStyle,\n visible: shapeVisible,\n x: maxSize / 2,\n y: maxSize / 2\n },\n 'symbol'\n ) as ISymbol;\n if (!isEmpty(state?.shape)) {\n symbol.states = state.shape;\n }\n\n if (shapeVisible) {\n symbolPlaceWidth = maxSize + space;\n }\n }\n\n tagWidth += symbolPlaceWidth;\n textX += symbolPlaceWidth;\n\n let textShape;\n if (type === 'rich') {\n const richTextAttrs = {\n textConfig: text as IRichTextCharacter[],\n visible: isValid(text) && visible !== false,\n ...(textStyle as IRichTextGraphicAttribute),\n x: textX,\n y: 0,\n width: (textStyle as IRichTextGraphicAttribute).width ?? 0,\n height: (textStyle as IRichTextGraphicAttribute).height ?? 0\n };\n textShape = group.createOrUpdateChild('tag-text', richTextAttrs, 'richtext') as IRichText;\n\n // 绘制背景层\n const { visible: bgVisible, ...backgroundStyle } = panel;\n if (visible && isBoolean(bgVisible)) {\n const bgRect = this.createOrUpdateChild(\n 'tag-panel',\n {\n ...backgroundStyle,\n visible: bgVisible && !!text,\n x: textShape.AABBBounds.x1,\n y: textShape.AABBBounds.y1,\n width: textShape.AABBBounds.width(),\n height: textShape.AABBBounds.height()\n },\n 'rect'\n ) as IRect;\n if (!isEmpty(state?.panel)) {\n bgRect.states = state.panel;\n }\n }\n } else if (type === 'html') {\n const richTextAttrs = {\n textConfig: [] as IRichTextCharacter[],\n visible: isValid(text) && visible !== false,\n html: {\n dom: text as string,\n ...DEFAULT_HTML_TEXT_SPEC,\n ...textStyle\n },\n ...(textStyle as IRichTextGraphicAttribute),\n x: textX,\n y: 0\n };\n textShape = group.createOrUpdateChild('tag-text', richTextAttrs, 'richtext') as IRichText;\n\n // 绘制背景层\n const { visible: bgVisible, ...backgroundStyle } = panel;\n if (visible && isBoolean(bgVisible)) {\n const bgRect = this.createOrUpdateChild(\n 'tag-panel',\n {\n ...backgroundStyle,\n visible: bgVisible && !!text,\n x: textShape.AABBBounds.x1,\n y: textShape.AABBBounds.y1,\n width: textShape.AABBBounds.width(),\n height: textShape.AABBBounds.height()\n },\n 'rect'\n ) as IRect;\n if (!isEmpty(state?.panel)) {\n bgRect.states = state.panel;\n }\n }\n } else {\n const textAttrs = {\n text: text as string | number | string[] | number[],\n visible: isValid(text) && visible !== false,\n lineHeight: (textStyle as ITextGraphicAttribute)?.fontSize,\n ...(textStyle as ITextGraphicAttribute),\n x: textX,\n y: 0\n };\n if (isNil(textAttrs.lineHeight)) {\n textAttrs.lineHeight = (textStyle as ITextGraphicAttribute).fontSize;\n }\n textShape = group.createOrUpdateChild('tag-text', textAttrs, 'text') as IText;\n if (!isEmpty(state?.text)) {\n textShape.states = state.text;\n }\n\n // 因为文本可能发生旋转,所以需要使用 measureTextSize 方法\n const textBounds = measureTextSize(textAttrs.text as string, textStyle);\n const textWidth = textBounds.width;\n const textHeight = textBounds.height;\n tagWidth += textWidth;\n const size = shape.size ?? 10;\n const maxSize = isNumber(size) ? size : Math.max(size[0], size[1]);\n tagHeight += Math.max(textHeight, shape?.visible ? maxSize : 0);\n\n const { textAlign, textBaseline } = textStyle as ITextAttribute;\n\n if (isValid(minWidth) || isValid(maxWidth)) {\n if (isValid(minWidth) && tagWidth < minWidth) {\n tagWidth = minWidth;\n }\n if (isValid(maxWidth) && tagWidth > maxWidth) {\n tagWidth = maxWidth;\n textShape.setAttribute('maxLineWidth', maxWidth - parsedPadding[1] - parsedPadding[2]);\n }\n }\n\n let x = 0;\n let y = 0;\n if (textAlign === 'center') {\n x -= tagWidth / 2;\n if (symbol) {\n symbol.setAttribute('x', (symbol.attribute.x || 0) - textWidth / 2);\n }\n\n group.setAttribute('x', -symbolPlaceWidth / 2);\n } else if (textAlign === 'right' || textAlign === 'end') {\n x -= tagWidth;\n if (symbol) {\n symbol.setAttribute('x', (symbol.attribute.x || 0) - textWidth);\n }\n\n group.setAttribute('x', -parsedPadding[1] - symbolPlaceWidth);\n } else if (textAlign === 'left' || textAlign === 'start') {\n group.setAttribute('x', parsedPadding[3]);\n }\n if (textBaseline === 'middle') {\n y -= tagHeight / 2;\n if (symbol) {\n symbol.setAttribute('y', 0);\n }\n } else if (textBaseline === 'bottom') {\n y -= tagHeight;\n if (symbol) {\n symbol.setAttribute('y', -textHeight / 2);\n }\n\n group.setAttribute('y', -parsedPadding[2]);\n } else if (textBaseline === 'top') {\n group.setAttribute('y', parsedPadding[0]);\n if (symbol) {\n symbol.setAttribute('y', textHeight / 2);\n }\n }\n\n // 绘制背景层\n const { visible: bgVisible, ...backgroundStyle } = panel;\n if (visible && isBoolean(bgVisible)) {\n const bgRect = this.createOrUpdateChild(\n 'tag-panel',\n {\n ...backgroundStyle,\n visible: bgVisible && !!text,\n x,\n y,\n width: tagWidth,\n height: tagHeight\n },\n 'rect'\n ) as IRect;\n if (!isEmpty(state?.panel)) {\n bgRect.states = state.panel;\n }\n }\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/tag/tag.ts"],"names":[],"mappings":"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","file":"tag.js","sourcesContent":["/**\n * @description 标签组件\n */\nimport type {\n IGroup,\n IRect,\n ISymbol,\n IText,\n ITextAttribute,\n ITextGraphicAttribute,\n IRichTextGraphicAttribute,\n IRichText,\n IRichTextCharacter\n} from '@visactor/vrender/es/core';\nimport { isBoolean, isEmpty, isNil, isNumber, isValid, merge, normalizePadding } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport { measureTextSize } from '../util';\nimport type { BackgroundAttributes, ComponentOptions } from '../interface';\nimport type { TagAttributes, TagShapeAttributes } from './type';\nimport { DEFAULT_HTML_TEXT_SPEC } from '../constant';\nimport { loadTagComponent } from './register';\n\nloadTagComponent();\nexport class Tag extends AbstractComponent<Required<TagAttributes>> {\n name = 'tag';\n\n static defaultAttributes: Partial<TagAttributes> = {\n visible: true,\n textStyle: {\n fontSize: 12,\n fill: '#000',\n textAlign: 'left',\n textBaseline: 'top'\n },\n space: 4,\n padding: 4,\n // @ts-ignore\n shape: {\n fill: '#000'\n }\n };\n\n constructor(attributes: TagAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Tag.defaultAttributes, attributes));\n }\n\n protected render() {\n const {\n text = '',\n textStyle = {} as ITextGraphicAttribute | IRichTextGraphicAttribute,\n shape = {} as TagShapeAttributes,\n panel = {} as BackgroundAttributes,\n space = 4,\n minWidth,\n maxWidth,\n padding = 4,\n visible,\n state,\n type\n } = this.attribute as TagAttributes;\n const parsedPadding = normalizePadding(padding);\n\n const group = this.createOrUpdateChild('tag-content', { x: 0, y: 0, zIndex: 1 }, 'group') as IGroup;\n\n let symbol;\n let tagWidth = parsedPadding[1] + parsedPadding[3];\n let tagHeight = parsedPadding[0] + parsedPadding[2];\n let textX = 0;\n let symbolPlaceWidth = 0;\n const { visible: shapeVisible, ...shapeStyle } = shape;\n if (isBoolean(shapeVisible)) {\n const size = shapeStyle?.size || 10;\n const maxSize = isNumber(size) ? size : Math.max(size[0], size[1]);\n\n symbol = group.createOrUpdateChild(\n 'tag-shape',\n {\n symbolType: 'circle',\n size,\n strokeBoundsBuffer: 0,\n ...shapeStyle,\n visible: shapeVisible,\n x: maxSize / 2,\n y: maxSize / 2\n },\n 'symbol'\n ) as ISymbol;\n if (!isEmpty(state?.shape)) {\n symbol.states = state.shape;\n }\n\n if (shapeVisible) {\n symbolPlaceWidth = maxSize + space;\n }\n }\n\n tagWidth += symbolPlaceWidth;\n textX += symbolPlaceWidth;\n\n let textShape;\n if (type === 'rich') {\n const richTextAttrs = {\n textConfig: text as IRichTextCharacter[],\n visible: isValid(text) && visible !== false,\n ...(textStyle as IRichTextGraphicAttribute),\n x: textX,\n y: 0,\n width: (textStyle as IRichTextGraphicAttribute).width ?? 0,\n height: (textStyle as IRichTextGraphicAttribute).height ?? 0\n };\n textShape = group.createOrUpdateChild('tag-text', richTextAttrs, 'richtext') as IRichText;\n\n // 绘制背景层\n const { visible: bgVisible, ...backgroundStyle } = panel;\n if (visible && isBoolean(bgVisible)) {\n const bgRect = this.createOrUpdateChild(\n 'tag-panel',\n {\n ...backgroundStyle,\n visible: bgVisible && !!text,\n x: textShape.AABBBounds.x1,\n y: textShape.AABBBounds.y1,\n width: textShape.AABBBounds.width(),\n height: textShape.AABBBounds.height()\n },\n 'rect'\n ) as IRect;\n if (!isEmpty(state?.panel)) {\n bgRect.states = state.panel;\n }\n }\n } else if (type === 'html') {\n const richTextAttrs = {\n textConfig: [] as IRichTextCharacter[],\n visible: isValid(text) && visible !== false,\n html: {\n dom: text as string,\n ...DEFAULT_HTML_TEXT_SPEC,\n ...textStyle\n },\n ...(textStyle as IRichTextGraphicAttribute),\n x: textX,\n y: 0\n };\n textShape = group.createOrUpdateChild('tag-text', richTextAttrs, 'richtext') as IRichText;\n\n // 绘制背景层\n const { visible: bgVisible, ...backgroundStyle } = panel;\n if (visible && isBoolean(bgVisible)) {\n const bgRect = this.createOrUpdateChild(\n 'tag-panel',\n {\n ...backgroundStyle,\n visible: bgVisible && !!text,\n x: textShape.AABBBounds.x1,\n y: textShape.AABBBounds.y1,\n width: textShape.AABBBounds.width(),\n height: textShape.AABBBounds.height()\n },\n 'rect'\n ) as IRect;\n if (!isEmpty(state?.panel)) {\n bgRect.states = state.panel;\n }\n }\n } else {\n const textAttrs = {\n text: text as string | number | string[] | number[],\n visible: isValid(text) && visible !== false,\n lineHeight: (textStyle as ITextGraphicAttribute)?.fontSize,\n ...(textStyle as ITextGraphicAttribute),\n x: textX,\n y: 0\n };\n if (isNil(textAttrs.lineHeight)) {\n textAttrs.lineHeight = (textStyle as ITextGraphicAttribute).fontSize;\n }\n textShape = group.createOrUpdateChild('tag-text', textAttrs, 'text') as IText;\n if (!isEmpty(state?.text)) {\n textShape.states = state.text;\n }\n\n // 因为文本可能发生旋转,所以需要使用 measureTextSize 方法\n const textBounds = measureTextSize(textAttrs.text as string, textStyle);\n const textWidth = textBounds.width;\n const textHeight = textBounds.height;\n tagWidth += textWidth;\n const size = shape.size ?? 10;\n const maxSize = isNumber(size) ? size : Math.max(size[0], size[1]);\n tagHeight += Math.max(textHeight, shape?.visible ? maxSize : 0);\n\n const { textAlign, textBaseline } = textStyle as ITextAttribute;\n\n if (isValid(minWidth) || isValid(maxWidth)) {\n if (isValid(minWidth) && tagWidth < minWidth) {\n tagWidth = minWidth;\n }\n if (isValid(maxWidth) && tagWidth > maxWidth) {\n tagWidth = maxWidth;\n textShape.setAttribute('maxLineWidth', maxWidth - parsedPadding[1] - parsedPadding[2]);\n }\n }\n\n let x = 0;\n let y = 0;\n if (textAlign === 'center') {\n x -= tagWidth / 2;\n if (symbol) {\n symbol.setAttribute('x', (symbol.attribute.x || 0) - textWidth / 2);\n }\n\n group.setAttribute('x', -symbolPlaceWidth / 2);\n } else if (textAlign === 'right' || textAlign === 'end') {\n x -= tagWidth;\n if (symbol) {\n symbol.setAttribute('x', (symbol.attribute.x || 0) - textWidth);\n }\n\n group.setAttribute('x', -parsedPadding[1] - symbolPlaceWidth);\n } else if (textAlign === 'left' || textAlign === 'start') {\n group.setAttribute('x', parsedPadding[3]);\n }\n if (textBaseline === 'middle') {\n y -= tagHeight / 2;\n if (symbol) {\n symbol.setAttribute('y', 0);\n }\n } else if (textBaseline === 'bottom') {\n y -= tagHeight;\n if (symbol) {\n symbol.setAttribute('y', -textHeight / 2);\n }\n\n group.setAttribute('y', -parsedPadding[2]);\n } else if (textBaseline === 'top') {\n group.setAttribute('y', parsedPadding[0]);\n if (symbol) {\n symbol.setAttribute('y', textHeight / 2);\n }\n }\n\n // 绘制背景层\n const { visible: bgVisible, ...backgroundStyle } = panel;\n if (visible && isBoolean(bgVisible)) {\n const bgRect = this.createOrUpdateChild(\n 'tag-panel',\n {\n ...backgroundStyle,\n visible: bgVisible && !!text,\n x,\n y,\n width: tagWidth,\n height: tagHeight\n },\n 'rect'\n ) as IRect;\n if (!isEmpty(state?.panel)) {\n bgRect.states = state.panel;\n }\n }\n }\n }\n}\n"]}
|
package/cjs/tag/type.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ITextGraphicAttribute, ISymbolGraphicAttribute, IGroupGraphicAttribute, IRectGraphicAttribute, IRichTextGraphicAttribute } from '@visactor/vrender
|
|
1
|
+
import type { ITextGraphicAttribute, ISymbolGraphicAttribute, IGroupGraphicAttribute, IRectGraphicAttribute, IRichTextGraphicAttribute } from '@visactor/vrender/es/core';
|
|
2
2
|
import type { Padding, State, TextContent } from '../core/type';
|
|
3
3
|
import type { BackgroundAttributes } from '../interface';
|
|
4
4
|
type StateStyle = {
|
package/cjs/tag/type.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tag/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type {\n ITextGraphicAttribute,\n ISymbolGraphicAttribute,\n IGroupGraphicAttribute,\n IRectGraphicAttribute,\n IRichTextCharacter,\n IRichTextGraphicAttribute\n} from '@visactor/vrender
|
|
1
|
+
{"version":3,"sources":["../src/tag/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type {\n ITextGraphicAttribute,\n ISymbolGraphicAttribute,\n IGroupGraphicAttribute,\n IRectGraphicAttribute,\n IRichTextCharacter,\n IRichTextGraphicAttribute\n} from '@visactor/vrender/es/core';\nimport type { Padding, State, TextContent } from '../core/type';\nimport type { BackgroundAttributes } from '../interface';\n\ntype StateStyle = {\n /**\n * text 文本的状态配置\n */\n text?: State<Partial<ITextGraphicAttribute>>;\n /**\n * shape 标记的状态配置\n */\n shape?: State<Partial<ISymbolGraphicAttribute>>;\n /**\n * panel 背景的状态配置ß\n */\n panel?: State<Partial<IRectGraphicAttribute>>;\n};\n\nexport type TagAttributes = {\n /** 文本样式 */\n textStyle?: Partial<ITextGraphicAttribute> | Partial<IRichTextGraphicAttribute>;\n /** 文本前 mark 图元 */\n shape?: TagShapeAttributes;\n /**\n * shape 同文本之间的间距\n */\n space?: number;\n /**\n * 内部边距\n */\n padding?: Padding;\n /**\n * 标签的背景面板配置, TODO: 支持symbol形状\n */\n panel?: BackgroundAttributes;\n /**\n * 最小宽度,像素值\n * @default 30\n */\n minWidth?: number;\n /**\n * 最大宽度,像素值。当文字超过最大宽度时,会自动省略。\n */\n maxWidth?: number;\n visible?: boolean;\n state?: StateStyle;\n} & Omit<IGroupGraphicAttribute, 'background'> &\n TextContent;\n\nexport type TagShapeAttributes = {\n /**\n * 是否展示 shape\n */\n visible: boolean;\n} & Partial<ISymbolGraphicAttribute>;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function loadTitleComponent(): void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: !0
|
|
5
|
+
}), exports.loadTitleComponent = void 0;
|
|
6
|
+
|
|
7
|
+
const register_1 = require("@visactor/vrender/es/register");
|
|
8
|
+
|
|
9
|
+
function loadTitleComponent() {
|
|
10
|
+
(0, register_1.registerGroup)(), (0, register_1.registerWrapText)(), (0, register_1.registerRichtext)();
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
exports.loadTitleComponent = loadTitleComponent;
|
|
14
|
+
//# sourceMappingURL=register.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/title/register.ts"],"names":[],"mappings":";;;AAAA,4DAAkG;AAElG,SAAgB,kBAAkB;IAChC,IAAA,wBAAa,GAAE,CAAC;IAChB,IAAA,2BAAgB,GAAE,CAAC;IACnB,IAAA,2BAAgB,GAAE,CAAC;AACrB,CAAC;AAJD,gDAIC","file":"register.js","sourcesContent":["import { registerGroup, registerWrapText, registerRichtext } from '@visactor/vrender/es/register';\n\nexport function loadTitleComponent() {\n registerGroup();\n registerWrapText();\n registerRichtext();\n}\n"]}
|