@visactor/vrender-components 0.17.1-alpha.4 → 0.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 +15 -13
- package/cjs/axis/base.js.map +1 -1
- package/cjs/axis/circle.d.ts +1 -1
- package/cjs/axis/circle.js +2 -4
- package/cjs/axis/circle.js.map +1 -1
- package/cjs/axis/grid/base.d.ts +1 -1
- package/cjs/axis/grid/base.js +7 -5
- package/cjs/axis/grid/base.js.map +1 -1
- package/cjs/axis/grid/circle.js +1 -3
- package/cjs/axis/grid/circle.js.map +1 -1
- package/cjs/axis/grid/line.js +1 -3
- 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 +2 -1
- package/cjs/axis/line.js +4 -5
- 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/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 +4 -3
- package/cjs/axis/util.js.map +1 -1
- package/cjs/brush/brush.d.ts +1 -1
- package/cjs/brush/brush.js +3 -4
- package/cjs/brush/brush.js.map +1 -1
- package/cjs/brush/type.d.ts +1 -1
- package/cjs/brush/type.js.map +1 -1
- package/cjs/checkbox/checkbox.d.ts +1 -1
- package/cjs/checkbox/checkbox.js +6 -8
- package/cjs/checkbox/checkbox.js.map +1 -1
- package/cjs/checkbox/index.js +1 -2
- 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 +1 -3
- package/cjs/crosshair/circle.js.map +1 -1
- package/cjs/crosshair/line.d.ts +2 -2
- package/cjs/crosshair/line.js +1 -3
- package/cjs/crosshair/line.js.map +1 -1
- package/cjs/crosshair/polygon.d.ts +2 -2
- package/cjs/crosshair/polygon.js +3 -4
- package/cjs/crosshair/polygon.js.map +1 -1
- package/cjs/crosshair/rect.d.ts +2 -2
- package/cjs/crosshair/rect.js +1 -3
- package/cjs/crosshair/rect.js.map +1 -1
- package/cjs/crosshair/sector.d.ts +2 -2
- package/cjs/crosshair/sector.js +1 -3
- 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/data-zoom.d.ts +1 -1
- package/cjs/data-zoom/data-zoom.js +4 -6
- package/cjs/data-zoom/data-zoom.js.map +1 -1
- 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 +1 -2
- package/cjs/indicator/indicator.js +1 -3
- package/cjs/indicator/indicator.js.map +1 -1
- 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 +2 -1
- package/cjs/label/arc.js +3 -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 +8 -10
- package/cjs/label/base.js.map +1 -1
- package/cjs/label/dataLabel.js.map +1 -1
- package/cjs/label/index.js +2 -1
- 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/type.d.ts +1 -1
- package/cjs/label/type.js +1 -2
- 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 +1 -3
- package/cjs/legend/color/color.js.map +1 -1
- package/cjs/legend/constant.js +1 -1
- package/cjs/legend/discrete/discrete.js +13 -13
- 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/size/size.js +4 -5
- 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/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 +3 -4
- 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 +1 -3
- package/cjs/marker/line.js.map +1 -1
- package/cjs/marker/point.d.ts +1 -1
- package/cjs/marker/point.js +5 -5
- package/cjs/marker/point.js.map +1 -1
- 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 +8 -9
- package/cjs/pager/pager.js.map +1 -1
- 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 +6 -8
- 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 +5 -7
- package/cjs/player/discrete-player.js.map +1 -1
- 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 +1 -1
- package/cjs/poptip/index.js +2 -16
- 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 +1 -3
- package/cjs/poptip/poptip.js.map +1 -1
- package/cjs/poptip/register.d.ts +1 -2
- package/cjs/poptip/register.js +9 -14
- 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 +1 -0
- package/cjs/scrollbar/index.js +2 -1
- package/cjs/scrollbar/index.js.map +1 -1
- package/cjs/scrollbar/register.d.ts +1 -2
- package/cjs/scrollbar/register.js +6 -10
- 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 +6 -8
- 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/segment.d.ts +1 -1
- package/cjs/segment/segment.js +4 -6
- 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/slider.d.ts +3 -3
- package/cjs/slider/slider.js +21 -22
- 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/tag.js +1 -3
- 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/title.js +1 -3
- 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/tooltip.js +4 -6
- 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 +3 -3
- package/cjs/util/text.js +3 -3
- package/cjs/util/text.js.map +1 -1
- package/dist/index.js +3315 -2447
- 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 +11 -11
- package/es/axis/base.js.map +1 -1
- package/es/axis/circle.d.ts +1 -1
- package/es/axis/circle.js +2 -6
- package/es/axis/circle.js.map +1 -1
- package/es/axis/grid/base.d.ts +1 -1
- package/es/axis/grid/base.js +5 -5
- package/es/axis/grid/base.js.map +1 -1
- package/es/axis/grid/circle.js +0 -4
- package/es/axis/grid/circle.js.map +1 -1
- package/es/axis/grid/line.js +0 -4
- 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 +2 -1
- package/es/axis/line.js +3 -7
- 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/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 +3 -2
- package/es/axis/util.js.map +1 -1
- package/es/brush/brush.d.ts +1 -1
- package/es/brush/brush.js +2 -6
- package/es/brush/brush.js.map +1 -1
- package/es/brush/type.d.ts +1 -1
- package/es/brush/type.js.map +1 -1
- package/es/checkbox/checkbox.d.ts +1 -1
- package/es/checkbox/checkbox.js +1 -5
- package/es/checkbox/checkbox.js.map +1 -1
- package/es/checkbox/index.js +1 -2
- 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 +0 -4
- package/es/crosshair/circle.js.map +1 -1
- package/es/crosshair/line.d.ts +2 -2
- package/es/crosshair/line.js +0 -4
- package/es/crosshair/line.js.map +1 -1
- package/es/crosshair/polygon.d.ts +2 -2
- package/es/crosshair/polygon.js +2 -5
- package/es/crosshair/polygon.js.map +1 -1
- package/es/crosshair/rect.d.ts +2 -2
- package/es/crosshair/rect.js +0 -4
- package/es/crosshair/rect.js.map +1 -1
- package/es/crosshair/sector.d.ts +2 -2
- package/es/crosshair/sector.js +0 -4
- 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/data-zoom.d.ts +1 -1
- package/es/data-zoom/data-zoom.js +1 -5
- package/es/data-zoom/data-zoom.js.map +1 -1
- 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 +1 -2
- package/es/indicator/indicator.js +0 -4
- package/es/indicator/indicator.js.map +1 -1
- 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 +2 -1
- package/es/label/arc.js +2 -2
- 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 +4 -8
- package/es/label/base.js.map +1 -1
- package/es/label/dataLabel.js.map +1 -1
- package/es/label/index.js +2 -1
- 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/type.d.ts +1 -1
- package/es/label/type.js +1 -2
- 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 +3 -3
- package/es/legend/base.js.map +1 -1
- package/es/legend/color/color.js +0 -4
- package/es/legend/color/color.js.map +1 -1
- package/es/legend/constant.js +1 -1
- package/es/legend/discrete/discrete.js +10 -14
- 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/size/size.js +3 -7
- 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 +0 -4
- package/es/link-path/link-path.js.map +1 -1
- 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 +2 -6
- package/es/marker/area.js.map +1 -1
- package/es/marker/base.d.ts +1 -1
- package/es/marker/base.js +4 -4
- 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 +0 -4
- package/es/marker/line.js.map +1 -1
- package/es/marker/point.d.ts +1 -1
- package/es/marker/point.js +3 -7
- package/es/marker/point.js.map +1 -1
- 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 -9
- package/es/pager/pager.js.map +1 -1
- 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 +1 -5
- 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 +1 -5
- package/es/player/discrete-player.js.map +1 -1
- 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 +1 -1
- package/es/poptip/index.js +1 -1
- 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 +0 -4
- package/es/poptip/poptip.js.map +1 -1
- package/es/poptip/register.d.ts +1 -2
- package/es/poptip/register.js +1 -7
- 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 +1 -0
- package/es/scrollbar/index.js +2 -0
- package/es/scrollbar/index.js.map +1 -1
- package/es/scrollbar/register.d.ts +1 -2
- package/es/scrollbar/register.js +1 -7
- 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 +1 -5
- 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/segment.d.ts +1 -1
- package/es/segment/segment.js +4 -8
- 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/slider.d.ts +3 -3
- package/es/slider/slider.js +11 -15
- 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/tag.js +0 -4
- 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/title.js +0 -4
- 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/tooltip.js +1 -5
- 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 +3 -3
- package/es/util/text.js +1 -1
- package/es/util/text.js.map +1 -1
- package/package.json +6 -6
- package/cjs/axis/register.d.ts +0 -4
- package/cjs/axis/register.js +0 -32
- package/cjs/axis/register.js.map +0 -1
- package/cjs/brush/register.d.ts +0 -1
- package/cjs/brush/register.js +0 -14
- package/cjs/brush/register.js.map +0 -1
- package/cjs/checkbox/register.d.ts +0 -1
- package/cjs/checkbox/register.js +0 -15
- package/cjs/checkbox/register.js.map +0 -1
- package/cjs/crosshair/register.d.ts +0 -5
- package/cjs/crosshair/register.js +0 -32
- package/cjs/crosshair/register.js.map +0 -1
- package/cjs/data-zoom/register.d.ts +0 -1
- package/cjs/data-zoom/register.js +0 -15
- package/cjs/data-zoom/register.js.map +0 -1
- package/cjs/indicator/register.d.ts +0 -1
- package/cjs/indicator/register.js +0 -14
- package/cjs/indicator/register.js.map +0 -1
- package/cjs/label/register.d.ts +0 -1
- package/cjs/label/register.js +0 -15
- package/cjs/label/register.js.map +0 -1
- package/cjs/legend/register.d.ts +0 -3
- package/cjs/legend/register.js +0 -27
- package/cjs/legend/register.js.map +0 -1
- package/cjs/link-path/register.d.ts +0 -1
- package/cjs/link-path/register.js +0 -14
- package/cjs/link-path/register.js.map +0 -1
- package/cjs/marker/register.d.ts +0 -3
- package/cjs/marker/register.js +0 -28
- package/cjs/marker/register.js.map +0 -1
- package/cjs/pager/register.d.ts +0 -1
- package/cjs/pager/register.js +0 -14
- package/cjs/pager/register.js.map +0 -1
- package/cjs/player/register.d.ts +0 -2
- package/cjs/player/register.js +0 -22
- package/cjs/player/register.js.map +0 -1
- package/cjs/segment/register.d.ts +0 -1
- package/cjs/segment/register.js +0 -15
- package/cjs/segment/register.js.map +0 -1
- package/cjs/slider/register.d.ts +0 -1
- package/cjs/slider/register.js +0 -15
- package/cjs/slider/register.js.map +0 -1
- package/cjs/tag/register.d.ts +0 -1
- package/cjs/tag/register.js +0 -15
- package/cjs/tag/register.js.map +0 -1
- package/cjs/title/register.d.ts +0 -1
- package/cjs/title/register.js +0 -14
- package/cjs/title/register.js.map +0 -1
- package/cjs/tooltip/register.d.ts +0 -1
- package/cjs/tooltip/register.js +0 -15
- package/cjs/tooltip/register.js.map +0 -1
- package/es/axis/register.d.ts +0 -4
- package/es/axis/register.js +0 -22
- package/es/axis/register.js.map +0 -1
- package/es/brush/register.d.ts +0 -1
- package/es/brush/register.js +0 -6
- package/es/brush/register.js.map +0 -1
- package/es/checkbox/register.d.ts +0 -1
- package/es/checkbox/register.js +0 -6
- package/es/checkbox/register.js.map +0 -1
- package/es/crosshair/register.d.ts +0 -5
- package/es/crosshair/register.js +0 -22
- package/es/crosshair/register.js.map +0 -1
- package/es/data-zoom/register.d.ts +0 -1
- package/es/data-zoom/register.js +0 -8
- package/es/data-zoom/register.js.map +0 -1
- package/es/indicator/register.d.ts +0 -1
- package/es/indicator/register.js +0 -6
- package/es/indicator/register.js.map +0 -1
- package/es/label/register.d.ts +0 -1
- package/es/label/register.js +0 -6
- package/es/label/register.js.map +0 -1
- package/es/legend/register.d.ts +0 -3
- package/es/legend/register.js +0 -24
- package/es/legend/register.js.map +0 -1
- package/es/link-path/register.d.ts +0 -1
- package/es/link-path/register.js +0 -6
- package/es/link-path/register.js.map +0 -1
- package/es/marker/register.d.ts +0 -3
- package/es/marker/register.js +0 -22
- package/es/marker/register.js.map +0 -1
- package/es/pager/register.d.ts +0 -1
- package/es/pager/register.js +0 -6
- package/es/pager/register.js.map +0 -1
- package/es/player/register.d.ts +0 -2
- package/es/player/register.js +0 -16
- package/es/player/register.js.map +0 -1
- package/es/segment/register.d.ts +0 -1
- package/es/segment/register.js +0 -6
- package/es/segment/register.js.map +0 -1
- package/es/slider/register.d.ts +0 -1
- package/es/slider/register.js +0 -6
- package/es/slider/register.js.map +0 -1
- package/es/tag/register.d.ts +0 -1
- package/es/tag/register.js +0 -6
- package/es/tag/register.js.map +0 -1
- package/es/title/register.d.ts +0 -1
- package/es/title/register.js +0 -6
- package/es/title/register.js.map +0 -1
- package/es/tooltip/register.d.ts +0 -1
- package/es/tooltip/register.js +0 -6
- package/es/tooltip/register.js.map +0 -1
package/es/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/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"]}
|
|
1
|
+
{"version":3,"sources":["../src/tag/tag.ts"],"names":[],"mappings":";;;;;;;;;;;AAcA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzG,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,MAAM,OAAO,GAAI,SAAQ,iBAA0C;IAmBjE,YAAY,UAAyB,EAAE,OAA0B;QAC/D,KAAK,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC,CAAC;QAnB1F,SAAI,GAAG,KAAK,CAAC;IAoBb,CAAC;IAES,MAAM;;QACd,MAAM,EACJ,IAAI,GAAG,EAAE,EACT,SAAS,GAAG,EAAuD,EACnE,KAAK,GAAG,EAAwB,EAChC,KAAK,GAAG,EAA0B,EAClC,KAAK,GAAG,CAAC,EACT,QAAQ,EACR,QAAQ,EACR,OAAO,GAAG,CAAC,EACX,OAAO,EACP,KAAK,EACL,IAAI,EACL,GAAG,IAAI,CAAC,SAA0B,CAAC;QACpC,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAEhD,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,OAAO,CAAW,CAAC;QAEpG,IAAI,MAAM,CAAC;QACX,IAAI,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACnD,IAAI,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,MAAM,EAAE,OAAO,EAAE,YAAY,KAAoB,KAAK,EAApB,UAAU,UAAK,KAAK,EAAhD,WAAwC,CAAQ,CAAC;QACvD,IAAI,SAAS,CAAC,YAAY,CAAC,EAAE;YAC3B,MAAM,IAAI,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,KAAI,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAEnE,MAAM,GAAG,KAAK,CAAC,mBAAmB,CAChC,WAAW,gCAET,UAAU,EAAE,QAAQ,EACpB,IAAI,EACJ,kBAAkB,EAAE,CAAC,IAClB,UAAU,KACb,OAAO,EAAE,YAAY,EACrB,CAAC,EAAE,OAAO,GAAG,CAAC,EACd,CAAC,EAAE,OAAO,GAAG,CAAC,KAEhB,QAAQ,CACE,CAAC;YACb,IAAI,CAAC,OAAO,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,EAAE;gBAC1B,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;aAC7B;YAED,IAAI,YAAY,EAAE;gBAChB,gBAAgB,GAAG,OAAO,GAAG,KAAK,CAAC;aACpC;SACF;QAED,QAAQ,IAAI,gBAAgB,CAAC;QAC7B,KAAK,IAAI,gBAAgB,CAAC;QAE1B,IAAI,SAAS,CAAC;QACd,IAAI,IAAI,KAAK,MAAM,EAAE;YACnB,MAAM,aAAa,iCACjB,UAAU,EAAE,IAA4B,EACxC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,KAAK,KAAK,IACvC,SAAuC,KAC3C,CAAC,EAAE,KAAK,EACR,CAAC,EAAE,CAAC,EACJ,KAAK,EAAE,MAAC,SAAuC,CAAC,KAAK,mCAAI,CAAC,EAC1D,MAAM,EAAE,MAAC,SAAuC,CAAC,MAAM,mCAAI,CAAC,GAC7D,CAAC;YACF,SAAS,GAAG,KAAK,CAAC,mBAAmB,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,CAAc,CAAC;YAG1F,MAAM,EAAE,OAAO,EAAE,SAAS,KAAyB,KAAK,EAAzB,eAAe,UAAK,KAAK,EAAlD,WAA0C,CAAQ,CAAC;YACzD,IAAI,OAAO,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE;gBACnC,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CACrC,WAAW,kCAEN,eAAe,KAClB,OAAO,EAAE,SAAS,IAAI,CAAC,CAAC,IAAI,EAC5B,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,EAC1B,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,EAC1B,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,EACnC,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,KAEvC,MAAM,CACE,CAAC;gBACX,IAAI,CAAC,OAAO,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,EAAE;oBAC1B,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;iBAC7B;aACF;SACF;aAAM,IAAI,IAAI,KAAK,MAAM,EAAE;YAC1B,MAAM,aAAa,iCACjB,UAAU,EAAE,EAA0B,EACtC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,KAAK,KAAK,EAC3C,IAAI,gCACF,GAAG,EAAE,IAAc,IAChB,sBAAsB,GACtB,SAAS,KAEV,SAAuC,KAC3C,CAAC,EAAE,KAAK,EACR,CAAC,EAAE,CAAC,GACL,CAAC;YACF,SAAS,GAAG,KAAK,CAAC,mBAAmB,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,CAAc,CAAC;YAG1F,MAAM,EAAE,OAAO,EAAE,SAAS,KAAyB,KAAK,EAAzB,eAAe,UAAK,KAAK,EAAlD,WAA0C,CAAQ,CAAC;YACzD,IAAI,OAAO,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE;gBACnC,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CACrC,WAAW,kCAEN,eAAe,KAClB,OAAO,EAAE,SAAS,IAAI,CAAC,CAAC,IAAI,EAC5B,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,EAC1B,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,EAC1B,KAAK,EAAE,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,EACnC,MAAM,EAAE,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,KAEvC,MAAM,CACE,CAAC;gBACX,IAAI,CAAC,OAAO,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,EAAE;oBAC1B,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;iBAC7B;aACF;SACF;aAAM;YACL,MAAM,SAAS,iCACb,IAAI,EAAE,IAA6C,EACnD,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,KAAK,KAAK,EAC3C,UAAU,EAAG,SAAmC,aAAnC,SAAS,uBAAT,SAAS,CAA4B,QAAQ,IACtD,SAAmC,KACvC,CAAC,EAAE,KAAK,EACR,CAAC,EAAE,CAAC,GACL,CAAC;YACF,IAAI,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;gBAC/B,SAAS,CAAC,UAAU,GAAI,SAAmC,CAAC,QAAQ,CAAC;aACtE;YACD,SAAS,GAAG,KAAK,CAAC,mBAAmB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAU,CAAC;YAC9E,IAAI,CAAC,OAAO,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAC,EAAE;gBACzB,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC;aAC/B;YAGD,MAAM,UAAU,GAAG,eAAe,CAAC,SAAS,CAAC,IAAc,EAAE,SAAS,CAAC,CAAC;YACxE,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC;YACnC,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;YACrC,QAAQ,IAAI,SAAS,CAAC;YACtB,MAAM,IAAI,GAAG,MAAA,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACnE,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEhE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,SAA2B,CAAC;YAEhE,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAC1C,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,QAAQ,EAAE;oBAC5C,QAAQ,GAAG,QAAQ,CAAC;iBACrB;gBACD,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,GAAG,QAAQ,EAAE;oBAC5C,QAAQ,GAAG,QAAQ,CAAC;oBACpB,SAAS,CAAC,YAAY,CAAC,cAAc,EAAE,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;iBACxF;aACF;YAED,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,IAAI,CAAC,GAAG,CAAC,CAAC;YACV,IAAI,SAAS,KAAK,QAAQ,EAAE;gBAC1B,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC;gBAClB,IAAI,MAAM,EAAE;oBACV,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC;iBACrE;gBAED,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;aAChD;iBAAM,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,KAAK,EAAE;gBACvD,CAAC,IAAI,QAAQ,CAAC;gBACd,IAAI,MAAM,EAAE;oBACV,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;iBACjE;gBAED,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC;aAC/D;iBAAM,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,OAAO,EAAE;gBACxD,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3C;YACD,IAAI,YAAY,KAAK,QAAQ,EAAE;gBAC7B,CAAC,IAAI,SAAS,GAAG,CAAC,CAAC;gBACnB,IAAI,MAAM,EAAE;oBACV,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;iBAC7B;aACF;iBAAM,IAAI,YAAY,KAAK,QAAQ,EAAE;gBACpC,CAAC,IAAI,SAAS,CAAC;gBACf,IAAI,MAAM,EAAE;oBACV,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;iBAC3C;gBAED,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5C;iBAAM,IAAI,YAAY,KAAK,KAAK,EAAE;gBACjC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1C,IAAI,MAAM,EAAE;oBACV,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;iBAC1C;aACF;YAGD,MAAM,EAAE,OAAO,EAAE,SAAS,KAAyB,KAAK,EAAzB,eAAe,UAAK,KAAK,EAAlD,WAA0C,CAAQ,CAAC;YACzD,IAAI,OAAO,IAAI,SAAS,CAAC,SAAS,CAAC,EAAE;gBACnC,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CACrC,WAAW,kCAEN,eAAe,KAClB,OAAO,EAAE,SAAS,IAAI,CAAC,CAAC,IAAI,EAC5B,CAAC;oBACD,CAAC,EACD,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,SAAS,KAEnB,MAAM,CACE,CAAC;gBACX,IAAI,CAAC,OAAO,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,EAAE;oBAC1B,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;iBAC7B;aACF;SACF;IACH,CAAC;;AA3OM,qBAAiB,GAA2B;IACjD,OAAO,EAAE,IAAI;IACb,SAAS,EAAE;QACT,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,MAAM;QACjB,YAAY,EAAE,KAAK;KACpB;IACD,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;IAEV,KAAK,EAAE;QACL,IAAI,EAAE,MAAM;KACb;CACF,CAAC","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"]}
|
package/es/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-core';
|
|
2
2
|
import type { Padding, State, TextContent } from '../core/type';
|
|
3
3
|
import type { BackgroundAttributes } from '../interface';
|
|
4
4
|
type StateStyle = {
|
package/es/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-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"]}
|
package/es/title/title.js
CHANGED
|
@@ -4,10 +4,6 @@ import { AbstractComponent } from "../core/base";
|
|
|
4
4
|
|
|
5
5
|
import { DEFAULT_HTML_TEXT_SPEC } from "../constant";
|
|
6
6
|
|
|
7
|
-
import { loadTitleComponent } from "./register";
|
|
8
|
-
|
|
9
|
-
loadTitleComponent();
|
|
10
|
-
|
|
11
7
|
export class Title extends AbstractComponent {
|
|
12
8
|
constructor(attributes, options) {
|
|
13
9
|
super((null == options ? void 0 : options.skipDefault) ? attributes : merge({}, Title.defaultAttributes, attributes)),
|
package/es/title/title.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/title/title.ts"],"names":[],"mappings":"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","file":"title.js","sourcesContent":["/**\n * @description 标题组件\n */\nimport type { IGroup, IText, IRichText, IRichTextCharacter } from '@visactor/vrender/es/core';\nimport { merge, isValid, normalizePadding } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport type { TitleAttrs } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { DEFAULT_HTML_TEXT_SPEC } from '../constant';\nimport { loadTitleComponent } from './register';\n\nloadTitleComponent();\nexport class Title extends AbstractComponent<Required<TitleAttrs>> {\n name = 'title';\n\n private _mainTitle?: IText | IRichText;\n private _subTitle?: IText | IRichText;\n\n static defaultAttributes: Partial<TitleAttrs> = {\n textStyle: {\n ellipsis: '...',\n fill: '#333',\n fontSize: 20,\n fontWeight: 'bold',\n textAlign: 'left',\n textBaseline: 'top'\n },\n subtextStyle: {\n ellipsis: '...',\n fill: '#6F6F6F',\n fontSize: 16,\n fontWeight: 'normal',\n textAlign: 'left',\n textBaseline: 'top'\n }\n };\n\n constructor(attributes: TitleAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Title.defaultAttributes, attributes));\n }\n\n protected render() {\n const {\n textType,\n text,\n subtextType,\n textStyle,\n subtext,\n subtextStyle,\n width,\n height,\n minWidth,\n maxWidth,\n minHeight,\n maxHeight,\n align,\n verticalAlign,\n padding = 0\n } = this.attribute as TitleAttrs;\n\n const parsedPadding = normalizePadding(padding);\n\n const group = this.createOrUpdateChild(\n 'title-container',\n { x: parsedPadding[3], y: parsedPadding[0], zIndex: 1 },\n 'group'\n ) as IGroup;\n\n if (this.attribute?.visible !== false && textStyle?.visible !== false) {\n if (textType === 'rich' || isValid(textStyle.character)) {\n const attr = {\n x: textStyle.x ?? 0,\n y: textStyle.y ?? 0,\n width: textStyle.width ?? width ?? 0,\n height: textStyle.height ?? height ?? 0,\n ellipsis: textStyle.ellipsis ?? true,\n wordBreak: textStyle.wordBreak ?? 'break-word',\n maxHeight: textStyle.maxHeight,\n maxWidth: textStyle.maxWidth,\n // 兼容旧版富文本配置,如果未设置textType === 'rich',text内容为string 易报错\n textConfig: textStyle.character ?? (text as IRichTextCharacter[]),\n ...textStyle\n };\n this._mainTitle = group.createOrUpdateChild('mainTitle', attr, 'richtext') as IRichText;\n } else if (textType === 'html') {\n const attr = {\n html: {\n dom: text as string,\n ...DEFAULT_HTML_TEXT_SPEC,\n ...textStyle\n },\n x: textStyle.x ?? 0,\n y: textStyle.y ?? 0,\n width: textStyle.width ?? width ?? 0,\n height: textStyle.height ?? height ?? 0,\n ellipsis: textStyle.ellipsis ?? true,\n wordBreak: textStyle.wordBreak ?? 'break-word',\n maxHeight: textStyle.maxHeight,\n maxWidth: textStyle.maxWidth,\n textConfig: [] as any[],\n ...textStyle\n };\n this._mainTitle = group.createOrUpdateChild('mainTitle', attr, 'richtext') as IRichText;\n } else if (isValid(text)) {\n this._mainTitle = group.createOrUpdateChild(\n 'mainTitle',\n {\n text: [text as string],\n ...textStyle,\n maxLineWidth: textStyle?.maxLineWidth ?? width,\n heightLimit: textStyle?.heightLimit,\n lineClamp: textStyle?.lineClamp,\n ellipsis: textStyle?.ellipsis ?? true,\n x: 0,\n y: 0\n },\n 'wrapText'\n ) as IText;\n }\n }\n\n const maintextHeight = this._mainTitle ? this._mainTitle?.AABBBounds.height() : 0;\n const maintextWidth = this._mainTitle ? this._mainTitle?.AABBBounds.width() : 0;\n\n if (this.attribute?.visible !== false && subtextStyle?.visible !== false) {\n if (subtextType === 'rich' || isValid(subtextStyle.character)) {\n const attr: any = {\n x: subtextStyle.x ?? 0,\n y: subtextStyle.y ?? 0,\n width: subtextStyle.width ?? width ?? 0,\n height: subtextStyle.height ?? height ?? 0,\n ellipsis: subtextStyle.ellipsis ?? true,\n wordBreak: subtextStyle.wordBreak ?? 'break-word',\n maxHeight: subtextStyle.maxHeight,\n maxWidth: subtextStyle.maxWidth,\n // 兼容旧版富文本配置,如果未设置textType === 'rich',text内容为string 易报错\n textConfig: subtextStyle.character ?? (subtext as IRichTextCharacter[]),\n ...subtextStyle\n };\n this._subTitle = group.createOrUpdateChild('subTitle', attr, 'richtext') as IRichText;\n } else if (subtextType === 'html') {\n const attr: any = {\n html: {\n dom: subtext as string,\n ...DEFAULT_HTML_TEXT_SPEC,\n ...subtextStyle\n },\n x: subtextStyle.x ?? 0,\n y: subtextStyle.y ?? 0,\n width: subtextStyle.width ?? width ?? 0,\n height: subtextStyle.height ?? height ?? 0,\n ellipsis: subtextStyle.ellipsis ?? true,\n wordBreak: subtextStyle.wordBreak ?? 'break-word',\n maxHeight: subtextStyle.maxHeight,\n maxWidth: subtextStyle.maxWidth,\n textConfig: [] as any[],\n ...subtextStyle\n };\n this._subTitle = group.createOrUpdateChild('subTitle', attr, 'richtext') as IRichText;\n } else if (isValid(subtext)) {\n this._subTitle = group.createOrUpdateChild(\n 'subTitle',\n {\n text: [subtext as string],\n ...subtextStyle,\n maxLineWidth: subtextStyle?.maxLineWidth ?? width,\n heightLimit: subtextStyle?.heightLimit,\n lineClamp: subtextStyle?.lineClamp,\n ellipsis: subtextStyle?.ellipsis ?? true,\n x: 0,\n y: maintextHeight\n },\n 'wrapText'\n ) as IText;\n }\n }\n\n const subtextHeight = this._subTitle ? this._subTitle?.AABBBounds.height() : 0;\n const subtextWidth = this._subTitle ? this._subTitle?.AABBBounds.width() : 0;\n\n // 设置宽高\n let titleWidth = Math.max(maintextWidth, subtextWidth);\n let titleHeight = maintextHeight + (subtextStyle?.height ?? subtextHeight);\n\n if (isValid(width)) {\n titleWidth = width;\n this._mainTitle?.setAttribute('maxLineWidth', width);\n this._subTitle?.setAttribute('maxLineWidth', width);\n }\n\n if (isValid(height)) {\n titleHeight = height;\n }\n\n if (isValid(minWidth) && titleWidth < minWidth) {\n titleWidth = minWidth;\n }\n if (isValid(maxWidth)) {\n this._mainTitle?.setAttribute('maxLineWidth', maxWidth);\n this._subTitle?.setAttribute('maxLineWidth', maxWidth);\n this._mainTitle?.setAttribute('maxWidth', maxWidth);\n this._subTitle?.setAttribute('maxWidth', maxWidth);\n if (titleWidth > maxWidth) {\n titleWidth = maxWidth;\n }\n }\n\n if (isValid(minHeight) && titleHeight < minHeight) {\n titleHeight = minHeight;\n }\n if (isValid(maxHeight)) {\n this._mainTitle?.setAttribute('maxHeight', maxHeight);\n this._subTitle?.setAttribute('maxHeight', maxHeight - maintextHeight);\n if (titleHeight > maxHeight) {\n titleHeight = maxHeight;\n }\n }\n\n group.attribute.width = titleWidth;\n group.attribute.height = titleHeight;\n group.attribute.boundsPadding = parsedPadding;\n\n // 设置对齐\n if (isValid(align) || isValid(textStyle?.align)) {\n const mainTitleAlign = textStyle?.align ? textStyle?.align : align;\n const mainTitleWidth = textStyle?.width ?? maintextWidth;\n if (mainTitleAlign === 'left') {\n this._mainTitle?.setAttribute('x', 0);\n this._mainTitle?.setAttribute('textAlign', 'left');\n } else if (mainTitleAlign === 'center') {\n this._mainTitle?.setAttribute('x', mainTitleWidth / 2);\n this._mainTitle?.setAttribute('textAlign', 'center');\n } else if (mainTitleAlign === 'right') {\n this._mainTitle?.setAttribute('x', mainTitleWidth);\n this._mainTitle?.setAttribute('textAlign', 'right');\n }\n }\n\n if (isValid(verticalAlign) || isValid(textStyle?.verticalAlign)) {\n const mainTitleVerticalAlign = textStyle?.verticalAlign ? textStyle?.verticalAlign : verticalAlign;\n const mainTitleHeight = textStyle?.height ? textStyle?.height : titleHeight;\n if (mainTitleVerticalAlign === 'top') {\n this._mainTitle?.setAttribute('y', 0);\n this._mainTitle?.setAttribute('textBaseline', 'top');\n } else if (mainTitleVerticalAlign === 'middle') {\n this._mainTitle?.setAttribute('y', mainTitleHeight / 2);\n this._mainTitle?.setAttribute('textBaseline', 'middle');\n } else if (mainTitleVerticalAlign === 'bottom') {\n this._mainTitle?.setAttribute('y', mainTitleHeight);\n this._mainTitle?.setAttribute('textBaseline', 'bottom');\n }\n }\n\n if (isValid(align) || isValid(subtextStyle?.align)) {\n const subTitleAlign = subtextStyle?.align ? subtextStyle?.align : align;\n const subTitleWidth = subtextStyle?.width ?? subtextWidth;\n if (subTitleAlign === 'left') {\n this._subTitle?.setAttribute('x', 0);\n this._subTitle?.setAttribute('textAlign', 'left');\n } else if (subTitleAlign === 'center') {\n this._subTitle?.setAttribute('x', subTitleWidth / 2);\n this._subTitle?.setAttribute('textAlign', 'center');\n } else if (subTitleAlign === 'right') {\n this._subTitle?.setAttribute('x', subTitleWidth);\n this._subTitle?.setAttribute('textAlign', 'right');\n }\n }\n\n if (isValid(verticalAlign) || isValid(textStyle?.verticalAlign)) {\n const subTitleVerticalAlign = subtextStyle?.verticalAlign ? subtextStyle?.verticalAlign : verticalAlign;\n const subTitleYStart = maintextHeight;\n const subTitleHeight = subtextStyle?.height ?? 0;\n if (subTitleVerticalAlign === 'top') {\n this._subTitle?.setAttribute('y', subTitleYStart);\n this._subTitle?.setAttribute('textBaseline', 'top');\n } else if (subTitleVerticalAlign === 'middle') {\n this._subTitle?.setAttribute('y', subTitleYStart + subTitleHeight / 2);\n this._subTitle?.setAttribute('textBaseline', 'middle');\n } else if (subTitleVerticalAlign === 'bottom') {\n this._subTitle?.setAttribute('y', subTitleYStart + subTitleHeight);\n this._subTitle?.setAttribute('textBaseline', 'bottom');\n }\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/title/title.ts"],"names":[],"mappings":"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","file":"title.js","sourcesContent":["/**\n * @description 标题组件\n */\nimport type { IGroup, IText, IRichText, IRichTextCharacter } from '@visactor/vrender-core';\nimport { merge, isValid, normalizePadding } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport type { TitleAttrs } from './type';\nimport type { ComponentOptions } from '../interface';\nimport { DEFAULT_HTML_TEXT_SPEC } from '../constant';\n\nexport class Title extends AbstractComponent<Required<TitleAttrs>> {\n name = 'title';\n\n private _mainTitle?: IText | IRichText;\n private _subTitle?: IText | IRichText;\n\n static defaultAttributes: Partial<TitleAttrs> = {\n textStyle: {\n ellipsis: '...',\n fill: '#333',\n fontSize: 20,\n fontWeight: 'bold',\n textAlign: 'left',\n textBaseline: 'top'\n },\n subtextStyle: {\n ellipsis: '...',\n fill: '#6F6F6F',\n fontSize: 16,\n fontWeight: 'normal',\n textAlign: 'left',\n textBaseline: 'top'\n }\n };\n\n constructor(attributes: TitleAttrs, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Title.defaultAttributes, attributes));\n }\n\n protected render() {\n const {\n textType,\n text,\n subtextType,\n textStyle,\n subtext,\n subtextStyle,\n width,\n height,\n minWidth,\n maxWidth,\n minHeight,\n maxHeight,\n align,\n verticalAlign,\n padding = 0\n } = this.attribute as TitleAttrs;\n\n const parsedPadding = normalizePadding(padding);\n\n const group = this.createOrUpdateChild(\n 'title-container',\n { x: parsedPadding[3], y: parsedPadding[0], zIndex: 1 },\n 'group'\n ) as IGroup;\n\n if (this.attribute?.visible !== false && textStyle?.visible !== false) {\n if (textType === 'rich' || isValid(textStyle.character)) {\n const attr = {\n x: textStyle.x ?? 0,\n y: textStyle.y ?? 0,\n width: textStyle.width ?? width ?? 0,\n height: textStyle.height ?? height ?? 0,\n ellipsis: textStyle.ellipsis ?? true,\n wordBreak: textStyle.wordBreak ?? 'break-word',\n maxHeight: textStyle.maxHeight,\n maxWidth: textStyle.maxWidth,\n // 兼容旧版富文本配置,如果未设置textType === 'rich',text内容为string 易报错\n textConfig: textStyle.character ?? (text as IRichTextCharacter[]),\n ...textStyle\n };\n this._mainTitle = group.createOrUpdateChild('mainTitle', attr, 'richtext') as IRichText;\n } else if (textType === 'html') {\n const attr = {\n html: {\n dom: text as string,\n ...DEFAULT_HTML_TEXT_SPEC,\n ...textStyle\n },\n x: textStyle.x ?? 0,\n y: textStyle.y ?? 0,\n width: textStyle.width ?? width ?? 0,\n height: textStyle.height ?? height ?? 0,\n ellipsis: textStyle.ellipsis ?? true,\n wordBreak: textStyle.wordBreak ?? 'break-word',\n maxHeight: textStyle.maxHeight,\n maxWidth: textStyle.maxWidth,\n textConfig: [] as any[],\n ...textStyle\n };\n this._mainTitle = group.createOrUpdateChild('mainTitle', attr, 'richtext') as IRichText;\n } else if (isValid(text)) {\n this._mainTitle = group.createOrUpdateChild(\n 'mainTitle',\n {\n text: [text as string],\n ...textStyle,\n maxLineWidth: textStyle?.maxLineWidth ?? width,\n heightLimit: textStyle?.heightLimit,\n lineClamp: textStyle?.lineClamp,\n ellipsis: textStyle?.ellipsis ?? true,\n x: 0,\n y: 0\n },\n 'wrapText'\n ) as IText;\n }\n }\n\n const maintextHeight = this._mainTitle ? this._mainTitle?.AABBBounds.height() : 0;\n const maintextWidth = this._mainTitle ? this._mainTitle?.AABBBounds.width() : 0;\n\n if (this.attribute?.visible !== false && subtextStyle?.visible !== false) {\n if (subtextType === 'rich' || isValid(subtextStyle.character)) {\n const attr: any = {\n x: subtextStyle.x ?? 0,\n y: subtextStyle.y ?? 0,\n width: subtextStyle.width ?? width ?? 0,\n height: subtextStyle.height ?? height ?? 0,\n ellipsis: subtextStyle.ellipsis ?? true,\n wordBreak: subtextStyle.wordBreak ?? 'break-word',\n maxHeight: subtextStyle.maxHeight,\n maxWidth: subtextStyle.maxWidth,\n // 兼容旧版富文本配置,如果未设置textType === 'rich',text内容为string 易报错\n textConfig: subtextStyle.character ?? (subtext as IRichTextCharacter[]),\n ...subtextStyle\n };\n this._subTitle = group.createOrUpdateChild('subTitle', attr, 'richtext') as IRichText;\n } else if (subtextType === 'html') {\n const attr: any = {\n html: {\n dom: subtext as string,\n ...DEFAULT_HTML_TEXT_SPEC,\n ...subtextStyle\n },\n x: subtextStyle.x ?? 0,\n y: subtextStyle.y ?? 0,\n width: subtextStyle.width ?? width ?? 0,\n height: subtextStyle.height ?? height ?? 0,\n ellipsis: subtextStyle.ellipsis ?? true,\n wordBreak: subtextStyle.wordBreak ?? 'break-word',\n maxHeight: subtextStyle.maxHeight,\n maxWidth: subtextStyle.maxWidth,\n textConfig: [] as any[],\n ...subtextStyle\n };\n this._subTitle = group.createOrUpdateChild('subTitle', attr, 'richtext') as IRichText;\n } else if (isValid(subtext)) {\n this._subTitle = group.createOrUpdateChild(\n 'subTitle',\n {\n text: [subtext as string],\n ...subtextStyle,\n maxLineWidth: subtextStyle?.maxLineWidth ?? width,\n heightLimit: subtextStyle?.heightLimit,\n lineClamp: subtextStyle?.lineClamp,\n ellipsis: subtextStyle?.ellipsis ?? true,\n x: 0,\n y: maintextHeight\n },\n 'wrapText'\n ) as IText;\n }\n }\n\n const subtextHeight = this._subTitle ? this._subTitle?.AABBBounds.height() : 0;\n const subtextWidth = this._subTitle ? this._subTitle?.AABBBounds.width() : 0;\n\n // 设置宽高\n let titleWidth = Math.max(maintextWidth, subtextWidth);\n let titleHeight = maintextHeight + (subtextStyle?.height ?? subtextHeight);\n\n if (isValid(width)) {\n titleWidth = width;\n this._mainTitle?.setAttribute('maxLineWidth', width);\n this._subTitle?.setAttribute('maxLineWidth', width);\n }\n\n if (isValid(height)) {\n titleHeight = height;\n }\n\n if (isValid(minWidth) && titleWidth < minWidth) {\n titleWidth = minWidth;\n }\n if (isValid(maxWidth)) {\n this._mainTitle?.setAttribute('maxLineWidth', maxWidth);\n this._subTitle?.setAttribute('maxLineWidth', maxWidth);\n this._mainTitle?.setAttribute('maxWidth', maxWidth);\n this._subTitle?.setAttribute('maxWidth', maxWidth);\n if (titleWidth > maxWidth) {\n titleWidth = maxWidth;\n }\n }\n\n if (isValid(minHeight) && titleHeight < minHeight) {\n titleHeight = minHeight;\n }\n if (isValid(maxHeight)) {\n this._mainTitle?.setAttribute('maxHeight', maxHeight);\n this._subTitle?.setAttribute('maxHeight', maxHeight - maintextHeight);\n if (titleHeight > maxHeight) {\n titleHeight = maxHeight;\n }\n }\n\n group.attribute.width = titleWidth;\n group.attribute.height = titleHeight;\n group.attribute.boundsPadding = parsedPadding;\n\n // 设置对齐\n if (isValid(align) || isValid(textStyle?.align)) {\n const mainTitleAlign = textStyle?.align ? textStyle?.align : align;\n const mainTitleWidth = textStyle?.width ?? maintextWidth;\n if (mainTitleAlign === 'left') {\n this._mainTitle?.setAttribute('x', 0);\n this._mainTitle?.setAttribute('textAlign', 'left');\n } else if (mainTitleAlign === 'center') {\n this._mainTitle?.setAttribute('x', mainTitleWidth / 2);\n this._mainTitle?.setAttribute('textAlign', 'center');\n } else if (mainTitleAlign === 'right') {\n this._mainTitle?.setAttribute('x', mainTitleWidth);\n this._mainTitle?.setAttribute('textAlign', 'right');\n }\n }\n\n if (isValid(verticalAlign) || isValid(textStyle?.verticalAlign)) {\n const mainTitleVerticalAlign = textStyle?.verticalAlign ? textStyle?.verticalAlign : verticalAlign;\n const mainTitleHeight = textStyle?.height ? textStyle?.height : titleHeight;\n if (mainTitleVerticalAlign === 'top') {\n this._mainTitle?.setAttribute('y', 0);\n this._mainTitle?.setAttribute('textBaseline', 'top');\n } else if (mainTitleVerticalAlign === 'middle') {\n this._mainTitle?.setAttribute('y', mainTitleHeight / 2);\n this._mainTitle?.setAttribute('textBaseline', 'middle');\n } else if (mainTitleVerticalAlign === 'bottom') {\n this._mainTitle?.setAttribute('y', mainTitleHeight);\n this._mainTitle?.setAttribute('textBaseline', 'bottom');\n }\n }\n\n if (isValid(align) || isValid(subtextStyle?.align)) {\n const subTitleAlign = subtextStyle?.align ? subtextStyle?.align : align;\n const subTitleWidth = subtextStyle?.width ?? subtextWidth;\n if (subTitleAlign === 'left') {\n this._subTitle?.setAttribute('x', 0);\n this._subTitle?.setAttribute('textAlign', 'left');\n } else if (subTitleAlign === 'center') {\n this._subTitle?.setAttribute('x', subTitleWidth / 2);\n this._subTitle?.setAttribute('textAlign', 'center');\n } else if (subTitleAlign === 'right') {\n this._subTitle?.setAttribute('x', subTitleWidth);\n this._subTitle?.setAttribute('textAlign', 'right');\n }\n }\n\n if (isValid(verticalAlign) || isValid(textStyle?.verticalAlign)) {\n const subTitleVerticalAlign = subtextStyle?.verticalAlign ? subtextStyle?.verticalAlign : verticalAlign;\n const subTitleYStart = maintextHeight;\n const subTitleHeight = subtextStyle?.height ?? 0;\n if (subTitleVerticalAlign === 'top') {\n this._subTitle?.setAttribute('y', subTitleYStart);\n this._subTitle?.setAttribute('textBaseline', 'top');\n } else if (subTitleVerticalAlign === 'middle') {\n this._subTitle?.setAttribute('y', subTitleYStart + subTitleHeight / 2);\n this._subTitle?.setAttribute('textBaseline', 'middle');\n } else if (subTitleVerticalAlign === 'bottom') {\n this._subTitle?.setAttribute('y', subTitleYStart + subTitleHeight);\n this._subTitle?.setAttribute('textBaseline', 'bottom');\n }\n }\n }\n}\n"]}
|
package/es/title/type.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IGroupGraphicAttribute, ITextGraphicAttribute, IRichTextGraphicAttribute, IRichTextCharacter, RichTextWordBreak } from '@visactor/vrender
|
|
1
|
+
import type { IGroupGraphicAttribute, ITextGraphicAttribute, IRichTextGraphicAttribute, IRichTextCharacter, RichTextWordBreak } from '@visactor/vrender-core';
|
|
2
2
|
import type { Padding } from '../core/type';
|
|
3
3
|
export interface TitleAttrs extends IGroupGraphicAttribute {
|
|
4
4
|
text?: string | number | string[] | number[] | IRichTextCharacter[];
|
package/es/title/type.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/title/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type {\n IGroupGraphicAttribute,\n ITextGraphicAttribute,\n IRichTextGraphicAttribute,\n IRichTextCharacter,\n RichTextWordBreak\n} from '@visactor/vrender
|
|
1
|
+
{"version":3,"sources":["../src/title/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type {\n IGroupGraphicAttribute,\n ITextGraphicAttribute,\n IRichTextGraphicAttribute,\n IRichTextCharacter,\n RichTextWordBreak\n} from '@visactor/vrender-core';\nimport type { Padding } from '../core/type';\n\nexport interface TitleAttrs extends IGroupGraphicAttribute {\n /**\n * 主标题文本内容\n * - 支持富文本配置\n */\n text?: string | number | string[] | number[] | IRichTextCharacter[];\n /**\n * 主标题文本类型(默认类型为text)\n * text, rich, html\n */\n textType?: string;\n /**\n * 副标题文本内容\n * - 支持富文本配置\n */\n subtext?: string | number | string[] | number[] | IRichTextCharacter[];\n /**\n * 副标题文本类型(默认类型为text)\n * text, rich, html\n */\n subtextType?: string;\n /**\n * 指定宽度,像素值\n */\n width?: number;\n /**\n * 指定高度,像素值\n */\n height?: number;\n /**\n * 最小宽度,像素值\n */\n minWidth?: number;\n /**\n * 最大宽度,像素值。当文字超过最大宽度时,会自动省略。\n */\n maxWidth?: number;\n /**\n * 最小高度,像素值\n */\n minHeight?: number;\n /**\n * 最大高度,像素值\n */\n maxHeight?: number;\n /**\n * 内部边距\n */\n padding?: Padding;\n /**\n * x方向偏移量\n */\n x?: number;\n /**\n * y方向偏移量\n */\n y?: number;\n /**\n * 整体(包括 text 和 subtext)的水平对齐\n * 'left' | 'center' | 'right'\n */\n align?: string;\n /**\n * 整体(包括 text 和 subtext)的垂直对齐\n * 'top' | 'middle' | 'bottom'\n */\n verticalAlign?: string;\n /**\n * 主标题样式\n */\n textStyle?: {\n /** 指定宽度 */\n width?: number;\n /** 指定高度 */\n height?: number;\n /** 最大宽度 */\n maxWidth?: number;\n /** 最大高度 */\n maxHeight?: number;\n /**\n * 文字水平对齐方式\n * 'left' | 'center' | 'right'\n */\n align?: string;\n /**\n * 文字垂直对齐方式\n * 'top' | 'middle' | 'bottom'\n */\n verticalAlign?: string;\n /**\n * 折行方式\n * 'break-word' | 'break-all'\n */\n wordBreak?: RichTextWordBreak;\n /**\n * 按照宽度限制自动折行或显示省略号(maxLineWidth)\n * 默认设置为title宽度\n */\n maxLineWidth?: number;\n /**\n * 高度限制控制显示内容及省略号(heightLimit)\n */\n heightLimit?: number;\n /**\n * 按照行数限制显示内容及省略号(lineClamp)\n */\n lineClamp?: number;\n /**\n * 富文本配置(暂时保留旧设置)\n */\n character?: IRichTextCharacter[];\n /**\n * text兼容IText和IRichtext\n */\n text?: string | number | string[] | number[] | IRichTextCharacter[];\n } & Partial<ITextGraphicAttribute> &\n Partial<IRichTextGraphicAttribute>;\n /**\n * 副标题样式\n */\n subtextStyle?: {\n /** 指定宽度 */\n width?: number;\n /** 指定高度 */\n height?: number;\n /** 最大宽度 */\n maxWidth?: number;\n /** 最大高度 */\n maxHeight?: number;\n /**\n * 文字水平对齐方式\n * 'left' | 'center' | 'right'\n */\n align?: string;\n /**\n * 文字垂直对齐方式\n * 'top' | 'middle' | 'bottom'\n */\n verticalAlign?: string;\n /**\n * 折行方式\n * 'break-word' | 'break-all'\n */\n wordBreak?: RichTextWordBreak;\n /**\n * 按照宽度限制自动折行或显示省略号(maxLineWidth)\n * 默认设置为title宽度\n */\n maxLineWidth?: number;\n /**\n * 高度限制控制显示内容及省略号(heightLimit)\n */\n heightLimit?: number;\n /**\n * 按照行数限制显示内容及省略号(lineClamp)\n */\n lineClamp?: number;\n /**\n * 富文本配置(暂时保留旧设置)\n */\n character?: IRichTextCharacter[];\n } & Partial<ITextGraphicAttribute> &\n Partial<IRichTextGraphicAttribute>;\n}\n"]}
|
package/es/tooltip/tooltip.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { builtinSymbolsMap, calculateLineHeight } from "@visactor/vrender
|
|
1
|
+
import { builtinSymbolsMap, calculateLineHeight } from "@visactor/vrender-core";
|
|
2
2
|
|
|
3
3
|
import { merge, isValid, normalizePadding, isNil } from "@visactor/vutils";
|
|
4
4
|
|
|
@@ -14,12 +14,8 @@ import { defaultAttributes, TOOLTIP_POSITION_ATTRIBUTES } from "./config";
|
|
|
14
14
|
|
|
15
15
|
import { DEFAULT_HTML_TEXT_SPEC } from "../constant";
|
|
16
16
|
|
|
17
|
-
import { loadTooltipComponent } from "./register";
|
|
18
|
-
|
|
19
17
|
const TOOLTIP_BACKGROUND_NAME = "tooltip-background", TOOLTIP_TITLE_NAME = "tooltip-title", TOOLTIP_CONTENT_NAME = "tooltip-content", TOOLTIP_SHAPE_NAME_SUFFIX = "shape", TOOLTIP_KEY_NAME_SUFFIX = "key", TOOLTIP_VALUE_NAME_SUFFIX = "value";
|
|
20
18
|
|
|
21
|
-
loadTooltipComponent();
|
|
22
|
-
|
|
23
19
|
export class Tooltip extends AbstractComponent {
|
|
24
20
|
constructor(attributes, options) {
|
|
25
21
|
super((null == options ? void 0 : options.skipDefault) ? attributes : merge({}, Tooltip.defaultAttributes, attributes), options),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tooltip/tooltip.ts"],"names":[],"mappings":"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","file":"tooltip.js","sourcesContent":["/**\n * @description 标题组件\n */\nimport type { IGroup, IText, IRichText, IRect, ISymbol, ITextGraphicAttribute } from '@visactor/vrender/es/core';\nimport { builtinSymbolsMap, calculateLineHeight } from '@visactor/vrender/es/core';\nimport { merge, isValid, normalizePadding, isNil } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport { initTextMeasure } from '../util/text';\nimport { isVisible } from '../util';\nimport type { TooltipAttributes, TooltipRowAttrs, TooltipRowStyleAttrs, TooltipRichTextAttrs } from './type';\nimport { getRichTextAttribute, mergeRowAttrs } from './util';\nimport { defaultAttributes, TOOLTIP_POSITION_ATTRIBUTES } from './config';\nimport type { ComponentOptions } from '../interface';\nimport type { TextMeasureInput } from '@visactor/vutils';\nimport { DEFAULT_HTML_TEXT_SPEC } from '../constant';\nimport { loadTooltipComponent } from './register';\n\nconst TOOLTIP_BACKGROUND_NAME = 'tooltip-background';\nconst TOOLTIP_TITLE_NAME = 'tooltip-title';\nconst TOOLTIP_CONTENT_NAME = 'tooltip-content';\n\nconst TOOLTIP_SHAPE_NAME_SUFFIX = 'shape';\nconst TOOLTIP_KEY_NAME_SUFFIX = 'key';\nconst TOOLTIP_VALUE_NAME_SUFFIX = 'value';\n\nloadTooltipComponent();\nexport class Tooltip extends AbstractComponent<Required<TooltipAttributes>> {\n name = 'tooltip';\n\n // tooltip 背景\n private _tooltipPanel!: IRect;\n // tooltip title 容器\n private _tooltipTitleContainer!: IGroup;\n // tooltip title shape\n private _tooltipTitleSymbol!: ISymbol;\n // tooltip title 文本\n private _tooltipTitle!: IText | IRichText;\n // tooltip 内容项容器\n private _tooltipContent!: IGroup;\n\n static defaultAttributes: Partial<TooltipAttributes> = defaultAttributes;\n\n constructor(attributes: TooltipAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Tooltip.defaultAttributes, attributes), options);\n }\n\n protected render() {\n const { visible, content, panel, keyWidth, valueWidth, hasContentShape, autoCalculatePosition, autoMeasure } =\n this.attribute;\n\n if (!visible) {\n this.hideAll();\n return;\n }\n\n if (autoMeasure) {\n Tooltip.measureTooltip(this.attribute);\n }\n if (autoCalculatePosition) {\n Tooltip.calculateTooltipPosition(this.attribute);\n }\n\n const padding = normalizePadding(this.attribute.padding);\n\n // 创建背景层\n this._tooltipPanel = this.createOrUpdateChild(\n TOOLTIP_BACKGROUND_NAME,\n {\n visible: true,\n ...panel\n },\n 'rect'\n ) as IRect;\n\n // 创建标题层\n this._tooltipTitleContainer = this.createOrUpdateChild(\n TOOLTIP_TITLE_NAME,\n { visible: true, x: padding[3], y: padding[0] },\n 'group'\n ) as IGroup;\n\n // 合并样式\n const titleAttr = Tooltip.getTitleAttr(this.attribute);\n\n // 创建标题 shape\n // 创建 symbol\n this._tooltipTitleSymbol = this._tooltipTitleContainer.createOrUpdateChild(\n `${TOOLTIP_TITLE_NAME}-${TOOLTIP_SHAPE_NAME_SUFFIX}`,\n merge({ symbolType: 'circle' }, titleAttr.shape, {\n visible: isVisible(titleAttr) && isVisible(titleAttr.shape)\n }),\n 'symbol'\n ) as ISymbol;\n\n // 文本\n if (\n typeof titleAttr.value.text === 'object' &&\n titleAttr.value.text !== null &&\n ((titleAttr.value.text as TooltipRichTextAttrs).type === 'rich' ||\n (titleAttr.value.text as TooltipRichTextAttrs).type === 'html')\n ) {\n if ((titleAttr.value.text as TooltipRichTextAttrs).type === 'rich') {\n this._tooltipTitle = this._tooltipTitleContainer.createOrUpdateChild(\n `${TOOLTIP_TITLE_NAME}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: isVisible(titleAttr) && isVisible(titleAttr.value),\n ...getRichTextAttribute(titleAttr.value)\n },\n 'richtext'\n ) as IRichText;\n } else if ((titleAttr.value.text as TooltipRichTextAttrs).type === 'html') {\n this._tooltipTitle = this._tooltipTitleContainer.createOrUpdateChild(\n `${TOOLTIP_TITLE_NAME}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n html: {\n dom: (titleAttr.value.text as TooltipRichTextAttrs).text as string,\n ...DEFAULT_HTML_TEXT_SPEC,\n ...titleAttr.value\n },\n visible: isVisible(titleAttr) && isVisible(titleAttr.value),\n width: titleAttr.value.width,\n height: titleAttr.value.height,\n wordBreak: titleAttr.value.wordBreak as any,\n textAlign: titleAttr.value.textAlign as any,\n textBaseline: titleAttr.value.textBaseline as any,\n singleLine: false,\n textConfig: [],\n ...titleAttr.value\n },\n 'richtext'\n ) as IRichText;\n }\n } else if (titleAttr.value.multiLine) {\n this._tooltipTitle = this._tooltipTitleContainer.createOrUpdateChild(\n `${TOOLTIP_TITLE_NAME}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: isVisible(titleAttr) && isVisible(titleAttr.value),\n ...getRichTextAttribute(titleAttr.value)\n },\n 'richtext'\n ) as IRichText;\n } else {\n this._tooltipTitle = this._tooltipTitleContainer.createOrUpdateChild(\n `${TOOLTIP_TITLE_NAME}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n text: (titleAttr.value.text ?? '') as any,\n visible: isVisible(titleAttr) && isVisible(titleAttr.value),\n ...titleAttr.value\n },\n 'text'\n ) as IText;\n }\n\n // 调整标题的位置\n const titlePaddingLeft = isVisible(titleAttr.shape) ? titleAttr.shape.size + titleAttr.shape.spacing : 0;\n const { textAlign, textBaseline } = titleAttr.value;\n const contentWidth = panel.width - padding[3] - padding[0] - titlePaddingLeft;\n if (textAlign === 'center') {\n this._tooltipTitle.setAttribute('x', titlePaddingLeft + contentWidth / 2);\n } else if (textAlign === 'right' || textAlign === 'end') {\n // 右对齐\n this._tooltipTitle.setAttribute('x', titlePaddingLeft + contentWidth);\n } else {\n // 默认左对齐\n this._tooltipTitle.setAttribute('x', titlePaddingLeft);\n }\n if (textBaseline === 'bottom') {\n this._tooltipTitle.setAttribute('y', titleAttr.height);\n } else if (textBaseline === 'middle') {\n this._tooltipTitle.setAttribute('y', titleAttr.height / 2);\n } else {\n this._tooltipTitle.setAttribute('y', 0);\n }\n const titleHeight = isVisible(titleAttr) ? titleAttr.height + titleAttr.spaceRow : 0;\n\n // 创建内容层\n this._tooltipContent = this.createOrUpdateChild(TOOLTIP_CONTENT_NAME, { visible: true }, 'group') as IGroup;\n this._tooltipContent.removeAllChild(); // 清空内容区\n\n if (content?.length) {\n this._tooltipContent.setAttribute('x', padding[3]);\n this._tooltipContent.setAttribute('y', padding[0] + titleHeight);\n\n let lastYPos = 0;\n content.forEach((item, i) => {\n // 合并样式\n const itemAttr = Tooltip.getContentAttr(this.attribute, i);\n\n if (!isVisible(itemAttr)) {\n return;\n }\n\n const itemGroupName = `${TOOLTIP_CONTENT_NAME}-${i}`;\n const itemGroup = this._tooltipContent.createOrUpdateChild(\n itemGroupName,\n { visible: true, x: 0, y: lastYPos },\n 'group'\n ) as IGroup;\n\n let x = 0;\n if (isVisible(itemAttr.shape)) {\n // 存在 symbol\n itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_SHAPE_NAME_SUFFIX}`,\n {\n visible: true,\n x: itemAttr.shape.size / 2,\n y:\n itemAttr.shape.size / 2 +\n ((calculateLineHeight(itemAttr.key.lineHeight, itemAttr.key.fontSize) ?? itemAttr.key.fontSize) -\n itemAttr.shape.size) /\n 2,\n ...itemAttr.shape\n },\n 'symbol'\n ) as ISymbol;\n }\n if (hasContentShape) {\n x += itemAttr.shape.size + itemAttr.shape.spacing;\n }\n\n if (isVisible(itemAttr.key)) {\n let element: IRichText | IText;\n if (itemAttr.key.multiLine) {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_KEY_NAME_SUFFIX}`,\n {\n visible: true,\n ...getRichTextAttribute(itemAttr.key),\n textBaseline: 'top'\n },\n 'richtext'\n ) as IRichText;\n } else if (\n typeof itemAttr.key.text === 'object' &&\n itemAttr.key.text !== null &&\n ((itemAttr.key.text as TooltipRichTextAttrs).type === 'rich' ||\n (itemAttr.key.text as TooltipRichTextAttrs).type === 'html')\n ) {\n if ((itemAttr.key.text as TooltipRichTextAttrs).type === 'rich') {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: true,\n ...getRichTextAttribute(itemAttr.key),\n textBaseline: 'top'\n },\n 'richtext'\n ) as IRichText;\n } else {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n html: {\n dom: (itemAttr.key.text as TooltipRichTextAttrs).text as string,\n ...DEFAULT_HTML_TEXT_SPEC,\n ...itemAttr.key\n }\n },\n 'richtext'\n ) as IRichText;\n }\n } else {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_KEY_NAME_SUFFIX}`,\n {\n visible: true,\n text: (itemAttr.key.text ?? '') as any,\n ...itemAttr.key,\n textBaseline: 'top'\n },\n 'text'\n ) as IText;\n }\n\n const { textAlign } = itemAttr.key;\n if (textAlign === 'center') {\n element.setAttribute('x', x + keyWidth / 2);\n } else if (textAlign === 'right' || textAlign === 'end') {\n // 右对齐\n element.setAttribute('x', x + keyWidth);\n } else {\n // 默认左对齐\n element.setAttribute('x', x);\n }\n\n element.setAttribute('y', 0);\n x += keyWidth + itemAttr.key.spacing;\n }\n\n if (isVisible(itemAttr.value)) {\n let element: IRichText | IText;\n if (itemAttr.value.multiLine) {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: true,\n ...getRichTextAttribute(itemAttr.value),\n textBaseline: 'top'\n },\n 'richtext'\n ) as IRichText;\n } else if (\n typeof itemAttr.value.text === 'object' &&\n itemAttr.value.text !== null &&\n ((itemAttr.value.text as TooltipRichTextAttrs).type === 'rich' ||\n (itemAttr.value.text as TooltipRichTextAttrs).type === 'html')\n ) {\n if ((itemAttr.value.text as TooltipRichTextAttrs).type === 'rich') {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: true,\n ...getRichTextAttribute(itemAttr.value),\n textBaseline: 'top'\n },\n 'richtext'\n ) as IRichText;\n } else {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n html: {\n dom: (itemAttr.value.text as TooltipRichTextAttrs).text as string,\n container: '',\n width: 30,\n height: 30,\n style: {},\n ...itemAttr.value\n }\n },\n 'richtext'\n ) as IRichText;\n }\n } else {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: true,\n text: (itemAttr.value.text ?? '') as any,\n ...itemAttr.value,\n textBaseline: 'top'\n },\n 'text'\n ) as IText;\n }\n\n let textAlign = 'right';\n if (isValid(itemAttr.value.textAlign)) {\n textAlign = itemAttr.value.textAlign;\n } else if (!isVisible(itemAttr.key)) {\n textAlign = 'left';\n }\n element.setAttribute('textAlign', textAlign);\n\n if (textAlign === 'center') {\n element.setAttribute('x', x + valueWidth / 2);\n } else if (textAlign === 'right' || textAlign === 'end') {\n // 右对齐\n element.setAttribute('x', x + valueWidth);\n } else {\n // 默认左对齐\n element.setAttribute('x', x);\n }\n x += valueWidth;\n\n element.setAttribute('y', 0);\n\n itemGroup.add(element);\n }\n\n lastYPos += itemAttr.height + itemAttr.spaceRow;\n });\n }\n }\n\n setAttributes(params: Partial<Required<TooltipAttributes>>, forceUpdateTag?: boolean | undefined): void {\n const keys = Object.keys(params) as (keyof TooltipAttributes)[];\n // 优化:只更改 tooltip 位置\n if (this.attribute.autoCalculatePosition && keys.every(key => TOOLTIP_POSITION_ATTRIBUTES.includes(key))) {\n this._mergeAttributes(params, keys);\n // 计算 x y\n if (isNil(this.attribute.panel.width) && this.attribute.autoMeasure) {\n Tooltip.measureTooltip(this.attribute);\n }\n Tooltip.calculateTooltipPosition(this.attribute);\n // 应用 x y\n super.setAttributes(\n {\n x: this.attribute.x,\n y: this.attribute.y\n },\n forceUpdateTag\n );\n } else {\n super.setAttributes(params, forceUpdateTag);\n }\n }\n\n static calculateTooltipPosition(attribute: Partial<TooltipAttributes>): Partial<TooltipAttributes> {\n const { width: tooltipBoxWidth = 0, height: tooltipBoxHeight = 0 } = attribute.panel;\n\n const { offsetX, offsetY, pointerX, pointerY, positionX, positionY, parentBounds } = attribute;\n\n let x = pointerX;\n let y = pointerY;\n if (positionX === 'left') {\n x -= tooltipBoxWidth + offsetX;\n } else if (positionX === 'center') {\n x -= tooltipBoxWidth / 2;\n } else {\n x += offsetX;\n }\n if (positionY === 'top') {\n y -= tooltipBoxHeight + offsetY;\n } else if (positionY === 'middle') {\n y -= tooltipBoxHeight / 2;\n } else {\n y += offsetY;\n }\n\n /* 确保tooltip在视区内 */\n if (x + tooltipBoxWidth > parentBounds.x2) {\n // 位置不超出视区右界\n x -= tooltipBoxWidth + offsetX;\n }\n if (y + tooltipBoxHeight > parentBounds.y2) {\n // 位置不超出视区下界\n y -= tooltipBoxHeight + offsetY;\n }\n if (x < parentBounds.x1) {\n // 位置不超出视区左界\n x = parentBounds.x1;\n }\n if (y < parentBounds.y1) {\n // 位置不超出视区上界\n y = parentBounds.y1;\n }\n\n attribute.x = x;\n attribute.y = y;\n\n return attribute;\n }\n\n static measureTooltip(attribute: Partial<TooltipAttributes>): Partial<TooltipAttributes> {\n const { content, contentStyle } = attribute;\n const padding = normalizePadding(attribute.padding);\n // 合并样式\n const titleAttr = Tooltip.getTitleAttr(attribute);\n\n let maxWidth = 0;\n let containerHeight = padding[0] + padding[2];\n\n // calculate title\n let titleMaxHeight = 0;\n const { value: titleValue, shape: titleShape } = titleAttr;\n const { visible: titleHasShape = false, symbolType: titleShapeType = '' } = titleShape ?? {};\n\n if (isValid(titleValue) && typeof titleAttr.value.text !== 'object') {\n const { width, height } = initTextMeasure(titleValue as Partial<ITextGraphicAttribute>).quickMeasure(\n titleValue.text as TextMeasureInput\n );\n maxWidth = width;\n titleMaxHeight = height;\n }\n if (titleHasShape && builtinSymbolsMap[titleShapeType]) {\n maxWidth += titleShape.size + titleShape.spacing;\n titleMaxHeight = Math.max(titleShape.size, titleMaxHeight);\n }\n\n if (attribute.title) {\n attribute.title.width = maxWidth;\n attribute.title.height = titleMaxHeight;\n }\n\n if (isVisible(titleAttr)) {\n containerHeight += titleMaxHeight + titleAttr.spaceRow;\n }\n\n // calculate content\n if (content?.length) {\n // filter content\n const filteredContent: [TooltipRowAttrs, TooltipRowAttrs][] = [];\n content.forEach((item, i) => {\n // 合并样式\n const itemAttr = Tooltip.getContentAttr(attribute, i);\n if ((item.key || item.value) && isVisible(itemAttr)) {\n filteredContent.push([item, itemAttr]);\n }\n });\n\n if (filteredContent.length) {\n let hasContentShape = false;\n const shapeWidths: number[] = [];\n const keyWidths: number[] = [];\n const valueWidths: number[] = [];\n\n filteredContent.forEach(([item, itemAttr], i) => {\n const { key, value, shape, spaceRow } = itemAttr;\n const itemHasShape = isVisible(shape);\n const itemShapeType = shape?.symbolType ?? '';\n\n const keyTextMeasure = initTextMeasure(key as Partial<ITextGraphicAttribute>);\n const valueTextMeasure = initTextMeasure(value as Partial<ITextGraphicAttribute>);\n\n let itemHeight = 0;\n if (isVisible(key)) {\n const { width, height } = keyTextMeasure.quickMeasure(key.text as TextMeasureInput);\n keyWidths.push(width);\n itemHeight = Math.max(itemHeight, height);\n }\n if (isVisible(value)) {\n const { width, height } = valueTextMeasure.quickMeasure(value.text as TextMeasureInput);\n valueWidths.push(width);\n itemHeight = Math.max(itemHeight, height);\n }\n if (itemHasShape && builtinSymbolsMap[itemShapeType]) {\n hasContentShape = true;\n shapeWidths.push(shape.size);\n itemHeight = Math.max(shape.size, itemHeight);\n }\n\n item.height = itemHeight;\n containerHeight += itemHeight;\n if (i < filteredContent.length - 1) {\n containerHeight += spaceRow ?? contentStyle.spaceRow;\n }\n });\n\n const maxShapeWidth = shapeWidths.length ? Math.max(...shapeWidths) : 0; // shape 需要对齐\n const maxKeyWidth = keyWidths.length ? Math.max(...keyWidths) : 0; // name 需要对齐\n const maxValueWidth = valueWidths.length ? Math.max(...valueWidths) : 0; // value 需要对齐\n maxWidth = Math.max(\n maxKeyWidth +\n maxValueWidth +\n contentStyle.key.spacing +\n contentStyle.value.spacing +\n (hasContentShape ? maxShapeWidth + contentStyle.shape.spacing : 0),\n maxWidth\n );\n content.forEach(item => {\n item.width = maxWidth;\n });\n attribute.hasContentShape = hasContentShape;\n attribute.keyWidth = maxKeyWidth;\n attribute.valueWidth = maxValueWidth;\n }\n }\n\n attribute.panel.width = maxWidth + padding[1] + padding[3];\n attribute.panel.height = containerHeight;\n\n return attribute;\n }\n\n static getTitleAttr(attribute: Partial<TooltipAttributes>): TooltipRowAttrs & TooltipRowStyleAttrs {\n return mergeRowAttrs(\n {},\n Tooltip.defaultAttributes.titleStyle,\n Tooltip.defaultAttributes.title,\n attribute.titleStyle,\n attribute.title\n );\n }\n\n static getContentAttr(attribute: Partial<TooltipAttributes>, index: number): TooltipRowAttrs & TooltipRowStyleAttrs {\n return mergeRowAttrs({}, Tooltip.defaultAttributes.contentStyle, attribute.contentStyle, attribute.content[index]);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/tooltip/tooltip.ts"],"names":[],"mappings":"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","file":"tooltip.js","sourcesContent":["/**\n * @description 标题组件\n */\nimport type {\n IGroup,\n IText,\n IRichText,\n IRect,\n ISymbol,\n IRichTextCharacter,\n ITextGraphicAttribute\n} from '@visactor/vrender-core';\nimport { builtinSymbolsMap, calculateLineHeight } from '@visactor/vrender-core';\nimport { merge, isValid, normalizePadding, isNil } from '@visactor/vutils';\nimport { AbstractComponent } from '../core/base';\nimport { initTextMeasure } from '../util/text';\nimport { isVisible } from '../util';\nimport type { TooltipAttributes, TooltipRowAttrs, TooltipRowStyleAttrs, TooltipRichTextAttrs } from './type';\nimport { getRichTextAttribute, mergeRowAttrs } from './util';\nimport { defaultAttributes, TOOLTIP_POSITION_ATTRIBUTES } from './config';\nimport type { ComponentOptions } from '../interface';\nimport type { TextMeasureInput } from '@visactor/vutils';\nimport { DEFAULT_HTML_TEXT_SPEC } from '../constant';\n\nconst TOOLTIP_BACKGROUND_NAME = 'tooltip-background';\nconst TOOLTIP_TITLE_NAME = 'tooltip-title';\nconst TOOLTIP_CONTENT_NAME = 'tooltip-content';\n\nconst TOOLTIP_SHAPE_NAME_SUFFIX = 'shape';\nconst TOOLTIP_KEY_NAME_SUFFIX = 'key';\nconst TOOLTIP_VALUE_NAME_SUFFIX = 'value';\n\nexport class Tooltip extends AbstractComponent<Required<TooltipAttributes>> {\n name = 'tooltip';\n\n // tooltip 背景\n private _tooltipPanel!: IRect;\n // tooltip title 容器\n private _tooltipTitleContainer!: IGroup;\n // tooltip title shape\n private _tooltipTitleSymbol!: ISymbol;\n // tooltip title 文本\n private _tooltipTitle!: IText | IRichText;\n // tooltip 内容项容器\n private _tooltipContent!: IGroup;\n\n static defaultAttributes: Partial<TooltipAttributes> = defaultAttributes;\n\n constructor(attributes: TooltipAttributes, options?: ComponentOptions) {\n super(options?.skipDefault ? attributes : merge({}, Tooltip.defaultAttributes, attributes), options);\n }\n\n protected render() {\n const { visible, content, panel, keyWidth, valueWidth, hasContentShape, autoCalculatePosition, autoMeasure } =\n this.attribute;\n\n if (!visible) {\n this.hideAll();\n return;\n }\n\n if (autoMeasure) {\n Tooltip.measureTooltip(this.attribute);\n }\n if (autoCalculatePosition) {\n Tooltip.calculateTooltipPosition(this.attribute);\n }\n\n const padding = normalizePadding(this.attribute.padding);\n\n // 创建背景层\n this._tooltipPanel = this.createOrUpdateChild(\n TOOLTIP_BACKGROUND_NAME,\n {\n visible: true,\n ...panel\n },\n 'rect'\n ) as IRect;\n\n // 创建标题层\n this._tooltipTitleContainer = this.createOrUpdateChild(\n TOOLTIP_TITLE_NAME,\n { visible: true, x: padding[3], y: padding[0] },\n 'group'\n ) as IGroup;\n\n // 合并样式\n const titleAttr = Tooltip.getTitleAttr(this.attribute);\n\n // 创建标题 shape\n // 创建 symbol\n this._tooltipTitleSymbol = this._tooltipTitleContainer.createOrUpdateChild(\n `${TOOLTIP_TITLE_NAME}-${TOOLTIP_SHAPE_NAME_SUFFIX}`,\n merge({ symbolType: 'circle' }, titleAttr.shape, {\n visible: isVisible(titleAttr) && isVisible(titleAttr.shape)\n }),\n 'symbol'\n ) as ISymbol;\n\n // 文本\n if (\n typeof titleAttr.value.text === 'object' &&\n titleAttr.value.text !== null &&\n ((titleAttr.value.text as TooltipRichTextAttrs).type === 'rich' ||\n (titleAttr.value.text as TooltipRichTextAttrs).type === 'html')\n ) {\n if ((titleAttr.value.text as TooltipRichTextAttrs).type === 'rich') {\n this._tooltipTitle = this._tooltipTitleContainer.createOrUpdateChild(\n `${TOOLTIP_TITLE_NAME}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: isVisible(titleAttr) && isVisible(titleAttr.value),\n ...getRichTextAttribute(titleAttr.value)\n },\n 'richtext'\n ) as IRichText;\n } else if ((titleAttr.value.text as TooltipRichTextAttrs).type === 'html') {\n this._tooltipTitle = this._tooltipTitleContainer.createOrUpdateChild(\n `${TOOLTIP_TITLE_NAME}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n html: {\n dom: (titleAttr.value.text as TooltipRichTextAttrs).text as string,\n ...DEFAULT_HTML_TEXT_SPEC,\n ...titleAttr.value\n },\n visible: isVisible(titleAttr) && isVisible(titleAttr.value),\n width: titleAttr.value.width,\n height: titleAttr.value.height,\n wordBreak: titleAttr.value.wordBreak as any,\n textAlign: titleAttr.value.textAlign as any,\n textBaseline: titleAttr.value.textBaseline as any,\n singleLine: false,\n textConfig: [],\n ...titleAttr.value\n },\n 'richtext'\n ) as IRichText;\n }\n } else if (titleAttr.value.multiLine) {\n this._tooltipTitle = this._tooltipTitleContainer.createOrUpdateChild(\n `${TOOLTIP_TITLE_NAME}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: isVisible(titleAttr) && isVisible(titleAttr.value),\n ...getRichTextAttribute(titleAttr.value)\n },\n 'richtext'\n ) as IRichText;\n } else {\n this._tooltipTitle = this._tooltipTitleContainer.createOrUpdateChild(\n `${TOOLTIP_TITLE_NAME}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n text: (titleAttr.value.text ?? '') as any,\n visible: isVisible(titleAttr) && isVisible(titleAttr.value),\n ...titleAttr.value\n },\n 'text'\n ) as IText;\n }\n\n // 调整标题的位置\n const titlePaddingLeft = isVisible(titleAttr.shape) ? titleAttr.shape.size + titleAttr.shape.spacing : 0;\n const { textAlign, textBaseline } = titleAttr.value;\n const contentWidth = panel.width - padding[3] - padding[0] - titlePaddingLeft;\n if (textAlign === 'center') {\n this._tooltipTitle.setAttribute('x', titlePaddingLeft + contentWidth / 2);\n } else if (textAlign === 'right' || textAlign === 'end') {\n // 右对齐\n this._tooltipTitle.setAttribute('x', titlePaddingLeft + contentWidth);\n } else {\n // 默认左对齐\n this._tooltipTitle.setAttribute('x', titlePaddingLeft);\n }\n if (textBaseline === 'bottom') {\n this._tooltipTitle.setAttribute('y', titleAttr.height);\n } else if (textBaseline === 'middle') {\n this._tooltipTitle.setAttribute('y', titleAttr.height / 2);\n } else {\n this._tooltipTitle.setAttribute('y', 0);\n }\n const titleHeight = isVisible(titleAttr) ? titleAttr.height + titleAttr.spaceRow : 0;\n\n // 创建内容层\n this._tooltipContent = this.createOrUpdateChild(TOOLTIP_CONTENT_NAME, { visible: true }, 'group') as IGroup;\n this._tooltipContent.removeAllChild(); // 清空内容区\n\n if (content?.length) {\n this._tooltipContent.setAttribute('x', padding[3]);\n this._tooltipContent.setAttribute('y', padding[0] + titleHeight);\n\n let lastYPos = 0;\n content.forEach((item, i) => {\n // 合并样式\n const itemAttr = Tooltip.getContentAttr(this.attribute, i);\n\n if (!isVisible(itemAttr)) {\n return;\n }\n\n const itemGroupName = `${TOOLTIP_CONTENT_NAME}-${i}`;\n const itemGroup = this._tooltipContent.createOrUpdateChild(\n itemGroupName,\n { visible: true, x: 0, y: lastYPos },\n 'group'\n ) as IGroup;\n\n let x = 0;\n if (isVisible(itemAttr.shape)) {\n // 存在 symbol\n itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_SHAPE_NAME_SUFFIX}`,\n {\n visible: true,\n x: itemAttr.shape.size / 2,\n y:\n itemAttr.shape.size / 2 +\n ((calculateLineHeight(itemAttr.key.lineHeight, itemAttr.key.fontSize) ?? itemAttr.key.fontSize) -\n itemAttr.shape.size) /\n 2,\n ...itemAttr.shape\n },\n 'symbol'\n ) as ISymbol;\n }\n if (hasContentShape) {\n x += itemAttr.shape.size + itemAttr.shape.spacing;\n }\n\n if (isVisible(itemAttr.key)) {\n let element: IRichText | IText;\n if (itemAttr.key.multiLine) {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_KEY_NAME_SUFFIX}`,\n {\n visible: true,\n ...getRichTextAttribute(itemAttr.key),\n textBaseline: 'top'\n },\n 'richtext'\n ) as IRichText;\n } else if (\n typeof itemAttr.key.text === 'object' &&\n itemAttr.key.text !== null &&\n ((itemAttr.key.text as TooltipRichTextAttrs).type === 'rich' ||\n (itemAttr.key.text as TooltipRichTextAttrs).type === 'html')\n ) {\n if ((itemAttr.key.text as TooltipRichTextAttrs).type === 'rich') {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: true,\n ...getRichTextAttribute(itemAttr.key),\n textBaseline: 'top'\n },\n 'richtext'\n ) as IRichText;\n } else {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n html: {\n dom: (itemAttr.key.text as TooltipRichTextAttrs).text as string,\n ...DEFAULT_HTML_TEXT_SPEC,\n ...itemAttr.key\n }\n },\n 'richtext'\n ) as IRichText;\n }\n } else {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_KEY_NAME_SUFFIX}`,\n {\n visible: true,\n text: (itemAttr.key.text ?? '') as any,\n ...itemAttr.key,\n textBaseline: 'top'\n },\n 'text'\n ) as IText;\n }\n\n const { textAlign } = itemAttr.key;\n if (textAlign === 'center') {\n element.setAttribute('x', x + keyWidth / 2);\n } else if (textAlign === 'right' || textAlign === 'end') {\n // 右对齐\n element.setAttribute('x', x + keyWidth);\n } else {\n // 默认左对齐\n element.setAttribute('x', x);\n }\n\n element.setAttribute('y', 0);\n x += keyWidth + itemAttr.key.spacing;\n }\n\n if (isVisible(itemAttr.value)) {\n let element: IRichText | IText;\n if (itemAttr.value.multiLine) {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: true,\n ...getRichTextAttribute(itemAttr.value),\n textBaseline: 'top'\n },\n 'richtext'\n ) as IRichText;\n } else if (\n typeof itemAttr.value.text === 'object' &&\n itemAttr.value.text !== null &&\n ((itemAttr.value.text as TooltipRichTextAttrs).type === 'rich' ||\n (itemAttr.value.text as TooltipRichTextAttrs).type === 'html')\n ) {\n if ((itemAttr.value.text as TooltipRichTextAttrs).type === 'rich') {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: true,\n ...getRichTextAttribute(itemAttr.value),\n textBaseline: 'top'\n },\n 'richtext'\n ) as IRichText;\n } else {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n html: {\n dom: (itemAttr.value.text as TooltipRichTextAttrs).text as string,\n container: '',\n width: 30,\n height: 30,\n style: {},\n ...itemAttr.value\n }\n },\n 'richtext'\n ) as IRichText;\n }\n } else {\n element = itemGroup.createOrUpdateChild(\n `${itemGroupName}-${TOOLTIP_VALUE_NAME_SUFFIX}`,\n {\n visible: true,\n text: (itemAttr.value.text ?? '') as any,\n ...itemAttr.value,\n textBaseline: 'top'\n },\n 'text'\n ) as IText;\n }\n\n let textAlign = 'right';\n if (isValid(itemAttr.value.textAlign)) {\n textAlign = itemAttr.value.textAlign;\n } else if (!isVisible(itemAttr.key)) {\n textAlign = 'left';\n }\n element.setAttribute('textAlign', textAlign);\n\n if (textAlign === 'center') {\n element.setAttribute('x', x + valueWidth / 2);\n } else if (textAlign === 'right' || textAlign === 'end') {\n // 右对齐\n element.setAttribute('x', x + valueWidth);\n } else {\n // 默认左对齐\n element.setAttribute('x', x);\n }\n x += valueWidth;\n\n element.setAttribute('y', 0);\n\n itemGroup.add(element);\n }\n\n lastYPos += itemAttr.height + itemAttr.spaceRow;\n });\n }\n }\n\n setAttributes(params: Partial<Required<TooltipAttributes>>, forceUpdateTag?: boolean | undefined): void {\n const keys = Object.keys(params) as (keyof TooltipAttributes)[];\n // 优化:只更改 tooltip 位置\n if (this.attribute.autoCalculatePosition && keys.every(key => TOOLTIP_POSITION_ATTRIBUTES.includes(key))) {\n this._mergeAttributes(params, keys);\n // 计算 x y\n if (isNil(this.attribute.panel.width) && this.attribute.autoMeasure) {\n Tooltip.measureTooltip(this.attribute);\n }\n Tooltip.calculateTooltipPosition(this.attribute);\n // 应用 x y\n super.setAttributes(\n {\n x: this.attribute.x,\n y: this.attribute.y\n },\n forceUpdateTag\n );\n } else {\n super.setAttributes(params, forceUpdateTag);\n }\n }\n\n static calculateTooltipPosition(attribute: Partial<TooltipAttributes>): Partial<TooltipAttributes> {\n const { width: tooltipBoxWidth = 0, height: tooltipBoxHeight = 0 } = attribute.panel;\n\n const { offsetX, offsetY, pointerX, pointerY, positionX, positionY, parentBounds } = attribute;\n\n let x = pointerX;\n let y = pointerY;\n if (positionX === 'left') {\n x -= tooltipBoxWidth + offsetX;\n } else if (positionX === 'center') {\n x -= tooltipBoxWidth / 2;\n } else {\n x += offsetX;\n }\n if (positionY === 'top') {\n y -= tooltipBoxHeight + offsetY;\n } else if (positionY === 'middle') {\n y -= tooltipBoxHeight / 2;\n } else {\n y += offsetY;\n }\n\n /* 确保tooltip在视区内 */\n if (x + tooltipBoxWidth > parentBounds.x2) {\n // 位置不超出视区右界\n x -= tooltipBoxWidth + offsetX;\n }\n if (y + tooltipBoxHeight > parentBounds.y2) {\n // 位置不超出视区下界\n y -= tooltipBoxHeight + offsetY;\n }\n if (x < parentBounds.x1) {\n // 位置不超出视区左界\n x = parentBounds.x1;\n }\n if (y < parentBounds.y1) {\n // 位置不超出视区上界\n y = parentBounds.y1;\n }\n\n attribute.x = x;\n attribute.y = y;\n\n return attribute;\n }\n\n static measureTooltip(attribute: Partial<TooltipAttributes>): Partial<TooltipAttributes> {\n const { content, contentStyle } = attribute;\n const padding = normalizePadding(attribute.padding);\n // 合并样式\n const titleAttr = Tooltip.getTitleAttr(attribute);\n\n let maxWidth = 0;\n let containerHeight = padding[0] + padding[2];\n\n // calculate title\n let titleMaxHeight = 0;\n const { value: titleValue, shape: titleShape } = titleAttr;\n const { visible: titleHasShape = false, symbolType: titleShapeType = '' } = titleShape ?? {};\n\n if (isValid(titleValue) && typeof titleAttr.value.text !== 'object') {\n const { width, height } = initTextMeasure(titleValue as Partial<ITextGraphicAttribute>).quickMeasure(\n titleValue.text as TextMeasureInput\n );\n maxWidth = width;\n titleMaxHeight = height;\n }\n if (titleHasShape && builtinSymbolsMap[titleShapeType]) {\n maxWidth += titleShape.size + titleShape.spacing;\n titleMaxHeight = Math.max(titleShape.size, titleMaxHeight);\n }\n\n if (attribute.title) {\n attribute.title.width = maxWidth;\n attribute.title.height = titleMaxHeight;\n }\n\n if (isVisible(titleAttr)) {\n containerHeight += titleMaxHeight + titleAttr.spaceRow;\n }\n\n // calculate content\n if (content?.length) {\n // filter content\n const filteredContent: [TooltipRowAttrs, TooltipRowAttrs][] = [];\n content.forEach((item, i) => {\n // 合并样式\n const itemAttr = Tooltip.getContentAttr(attribute, i);\n if ((item.key || item.value) && isVisible(itemAttr)) {\n filteredContent.push([item, itemAttr]);\n }\n });\n\n if (filteredContent.length) {\n let hasContentShape = false;\n const shapeWidths: number[] = [];\n const keyWidths: number[] = [];\n const valueWidths: number[] = [];\n\n filteredContent.forEach(([item, itemAttr], i) => {\n const { key, value, shape, spaceRow } = itemAttr;\n const itemHasShape = isVisible(shape);\n const itemShapeType = shape?.symbolType ?? '';\n\n const keyTextMeasure = initTextMeasure(key as Partial<ITextGraphicAttribute>);\n const valueTextMeasure = initTextMeasure(value as Partial<ITextGraphicAttribute>);\n\n let itemHeight = 0;\n if (isVisible(key)) {\n const { width, height } = keyTextMeasure.quickMeasure(key.text as TextMeasureInput);\n keyWidths.push(width);\n itemHeight = Math.max(itemHeight, height);\n }\n if (isVisible(value)) {\n const { width, height } = valueTextMeasure.quickMeasure(value.text as TextMeasureInput);\n valueWidths.push(width);\n itemHeight = Math.max(itemHeight, height);\n }\n if (itemHasShape && builtinSymbolsMap[itemShapeType]) {\n hasContentShape = true;\n shapeWidths.push(shape.size);\n itemHeight = Math.max(shape.size, itemHeight);\n }\n\n item.height = itemHeight;\n containerHeight += itemHeight;\n if (i < filteredContent.length - 1) {\n containerHeight += spaceRow ?? contentStyle.spaceRow;\n }\n });\n\n const maxShapeWidth = shapeWidths.length ? Math.max(...shapeWidths) : 0; // shape 需要对齐\n const maxKeyWidth = keyWidths.length ? Math.max(...keyWidths) : 0; // name 需要对齐\n const maxValueWidth = valueWidths.length ? Math.max(...valueWidths) : 0; // value 需要对齐\n maxWidth = Math.max(\n maxKeyWidth +\n maxValueWidth +\n contentStyle.key.spacing +\n contentStyle.value.spacing +\n (hasContentShape ? maxShapeWidth + contentStyle.shape.spacing : 0),\n maxWidth\n );\n content.forEach(item => {\n item.width = maxWidth;\n });\n attribute.hasContentShape = hasContentShape;\n attribute.keyWidth = maxKeyWidth;\n attribute.valueWidth = maxValueWidth;\n }\n }\n\n attribute.panel.width = maxWidth + padding[1] + padding[3];\n attribute.panel.height = containerHeight;\n\n return attribute;\n }\n\n static getTitleAttr(attribute: Partial<TooltipAttributes>): TooltipRowAttrs & TooltipRowStyleAttrs {\n return mergeRowAttrs(\n {},\n Tooltip.defaultAttributes.titleStyle,\n Tooltip.defaultAttributes.title,\n attribute.titleStyle,\n attribute.title\n );\n }\n\n static getContentAttr(attribute: Partial<TooltipAttributes>, index: number): TooltipRowAttrs & TooltipRowStyleAttrs {\n return mergeRowAttrs({}, Tooltip.defaultAttributes.contentStyle, attribute.contentStyle, attribute.content[index]);\n }\n}\n"]}
|
package/es/tooltip/type.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IGraphicAttribute, IGroupGraphicAttribute, IRectGraphicAttribute, ITextAttribute, IRichTextCharacter } from '@visactor/vrender
|
|
1
|
+
import type { IGraphicAttribute, IGroupGraphicAttribute, IRectGraphicAttribute, ITextAttribute, IRichTextCharacter } from '@visactor/vrender-core';
|
|
2
2
|
import type { IBounds, IPadding } from '@visactor/vutils';
|
|
3
3
|
export interface IContainerSize {
|
|
4
4
|
width?: number;
|
package/es/tooltip/type.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tooltip/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type {\n IGraphicAttribute,\n IGroupGraphicAttribute,\n IRectGraphicAttribute,\n ITextAttribute,\n IRichTextCharacter\n} from '@visactor/vrender
|
|
1
|
+
{"version":3,"sources":["../src/tooltip/type.ts"],"names":[],"mappings":"","file":"type.js","sourcesContent":["import type {\n IGraphicAttribute,\n IGroupGraphicAttribute,\n IRectGraphicAttribute,\n ITextAttribute,\n IRichTextCharacter\n} from '@visactor/vrender-core';\nimport type { IBounds, IPadding } from '@visactor/vutils';\n\nexport interface IContainerSize {\n width?: number;\n height?: number;\n}\n\nexport type TooltipAttributes = IGroupGraphicAttribute & TooltipComponentAttrs;\n\nexport type TooltipComponentAttrs = TooltipPositionAttrs & {\n /** tooltip 背景 */\n panel?: TooltipPanelAttrs;\n\n /** tooltip 标题 */\n title?: TooltipRowAttrs;\n /** tooltip 内容 */\n content?: TooltipRowAttrs[];\n\n /** 标题样式 */\n titleStyle?: TooltipRowStyleAttrs;\n /** 内容样式 */\n contentStyle?: TooltipRowStyleAttrs;\n\n /** 是否自动计算 tooltip 大小 */\n autoMeasure?: boolean;\n\n /** 是否自动计算 tooltip 位置 */\n autoCalculatePosition?: boolean;\n\n /** 整体边距 */\n padding?: number | number[] | IPadding;\n\n /** 最小宽度 */\n minWidth?: number;\n /** 最大宽度 */\n maxWidth?: number;\n\n /** 是否可交互 */\n enterable?: boolean;\n\n /** 缓动 duration */\n transitionDuration?: number;\n\n // 以下为组件自动计算的属性\n /** 内容项是否有 shape */\n hasContentShape?: boolean;\n /** 内容项 key 的最大宽度,用于布局,因为 key 需要按照列对齐 */\n keyWidth?: number;\n /** 内容项 value 的最大宽度,用于布局,因为 value 需要按照列对齐 */\n valueWidth?: number;\n};\n\n/** tooltip 文本样式 */\nexport type TooltipTextAttrs = Omit<Partial<ITextAttribute & IGraphicAttribute & IContainerSize>, 'text'> & {\n /**\n * 文本内容\n * - 支持富文本配置\n */\n text?: string | number | string[] | number[] | TooltipRichTextAttrs;\n /** 文本是否支持多行显示 */\n multiLine?: boolean;\n /** 文本换行模式 */\n wordBreak?: string;\n};\n\nexport type TooltipRichTextAttrs = {\n /**\n * 文本类型(默认类型为text)\n * text, rich, html\n */\n type?: string;\n text?: IRichTextCharacter[] | string;\n};\n\n/** tooltip symbol 样式 */\nexport type TooltipSymbolAttrs = Partial<IGraphicAttribute> & {\n /** 图形 path */\n path?: string;\n size?: number;\n symbolType?: string;\n /** 其他图形样式,暂时这么处理 */\n [key: string]: any;\n};\n\n/** tooltip 背景样式 */\nexport type TooltipPanelAttrs = Partial<IRectGraphicAttribute> & {\n shadow?: boolean;\n shadowSpread?: number;\n};\n\n/** tooltip 内容行配置 */\nexport type TooltipRowAttrs = IContainerSize & {\n visible?: boolean;\n /** key 对应图形样式(title 没有这个属性) */\n key?: TooltipTextAttrs;\n /** value 对应图形样式 */\n value?: TooltipTextAttrs;\n /** shape 对应图形样式 */\n shape?: TooltipSymbolAttrs;\n /** 行间距 */\n spaceRow?: number;\n};\n\n/** tooltip 内容行样式 */\nexport type TooltipRowStyleAttrs = {\n /** key 对应图形样式(title 没有这个属性) */\n key?: Omit<TooltipTextAttrs, 'text'> & TooltipColumnStyleAttrs;\n /** value 对应图形样式 */\n value?: Omit<TooltipTextAttrs, 'text'> & TooltipColumnStyleAttrs;\n /** shape 对应图形样式 */\n shape?: TooltipSymbolAttrs & TooltipColumnStyleAttrs;\n /** 行间距 */\n spaceRow?: number;\n};\n\nexport type TooltipColumnStyleAttrs = {\n /** 右边距 */\n spacing?: number;\n};\n\nexport type TooltipPositionAttrs = {\n /** 光标位置 x */\n pointerX?: number;\n /** 光标位置 y */\n pointerY?: number;\n\n /** tooltip 偏移 x */\n offsetX?: number;\n /** tooltip 偏移 y */\n offsetY?: number;\n\n /** tooltip 相对 pointer 位置(x 轴) */\n positionX?: 'left' | 'right' | 'center';\n /** tooltip 相对 pointer 位置(y 轴) */\n positionY?: 'top' | 'bottom' | 'middle';\n\n /** 父级 bounds */\n parentBounds?: IBounds;\n};\n"]}
|
package/es/tooltip/util.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IRichTextGraphicAttribute } from '@visactor/vrender
|
|
1
|
+
import type { IRichTextGraphicAttribute } from '@visactor/vrender-core';
|
|
2
2
|
import type { TooltipRowAttrs, TooltipRowStyleAttrs, TooltipTextAttrs } from './type';
|
|
3
3
|
export declare const mergeRowAttrs: (target: TooltipRowAttrs | TooltipRowStyleAttrs, ...sources: (TooltipRowAttrs | TooltipRowStyleAttrs)[]) => TooltipRowAttrs | TooltipRowStyleAttrs;
|
|
4
4
|
export declare const getRichTextAttribute: (attr: TooltipTextAttrs) => IRichTextGraphicAttribute;
|
package/es/tooltip/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tooltip/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAKvD,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAA8C,EAC9C,GAAG,OAAmD,EACd,EAAE;IAC1C,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,CAAC,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,CAAC,CAAC,CAAC;IAEhE,OAAO,KAAK,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE;QAC/B,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC;QACnE,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC;QAC7D,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC;KACpE,CAA2C,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAsB,EAA6B,EAAE;IACxF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,GAAG,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACxF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACvB,OAAO;YACL,KAAK;YACL,MAAM;YACN,SAAS,EAAE,SAAgB;YAC3B,SAAS,EAAE,SAAgB;YAC3B,YAAY,EAAE,YAAmB;YACjC,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,KAAK,CAAC,IAAgB,CAAC,CAAC,GAAG,CACrC,IAAI,CAAC,EAAE,CACL,CAAC,gCACI,IAAI,KACP,IAAI,GACG,CAAA,CACZ;SACF,CAAC;KACH;IACD,OAAO;QACL,KAAK;QACL,MAAM;QACN,SAAS,EAAE,SAAgB;QAC3B,SAAS,EAAE,SAAgB;QAC3B,YAAY,EAAE,YAAmB;QACjC,UAAU,EAAE,KAAK;QACjB,UAAU,EAAG,IAA6B,CAAC,IAA4B;KACxE,CAAC;AACJ,CAAC,CAAC","file":"util.js","sourcesContent":["import { array, isNil, merge } from '@visactor/vutils';\nimport type { IRichTextGraphicAttribute } from '@visactor/vrender
|
|
1
|
+
{"version":3,"sources":["../src/tooltip/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAKvD,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAA8C,EAC9C,GAAG,OAAmD,EACd,EAAE;IAC1C,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,CAAC,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,CAAC,CAAC,CAAC;IAEhE,OAAO,KAAK,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE;QAC/B,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC;QACnE,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC;QAC7D,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC;KACpE,CAA2C,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAsB,EAA6B,EAAE;IACxF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,GAAG,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACxF,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QACvB,OAAO;YACL,KAAK;YACL,MAAM;YACN,SAAS,EAAE,SAAgB;YAC3B,SAAS,EAAE,SAAgB;YAC3B,YAAY,EAAE,YAAmB;YACjC,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,KAAK,CAAC,IAAgB,CAAC,CAAC,GAAG,CACrC,IAAI,CAAC,EAAE,CACL,CAAC,gCACI,IAAI,KACP,IAAI,GACG,CAAA,CACZ;SACF,CAAC;KACH;IACD,OAAO;QACL,KAAK;QACL,MAAM;QACN,SAAS,EAAE,SAAgB;QAC3B,SAAS,EAAE,SAAgB;QAC3B,YAAY,EAAE,YAAmB;QACjC,UAAU,EAAE,KAAK;QACjB,UAAU,EAAG,IAA6B,CAAC,IAA4B;KACxE,CAAC;AACJ,CAAC,CAAC","file":"util.js","sourcesContent":["import { array, isNil, merge } from '@visactor/vutils';\nimport type { IRichTextGraphicAttribute } from '@visactor/vrender-core';\nimport type { TooltipRowAttrs, TooltipRowStyleAttrs, TooltipTextAttrs, TooltipRichTextAttrs } from './type';\nimport type { IRichTextCharacter } from '@visactor/vrender-core';\n\nexport const mergeRowAttrs = (\n target: TooltipRowAttrs | TooltipRowStyleAttrs,\n ...sources: (TooltipRowAttrs | TooltipRowStyleAttrs)[]\n): TooltipRowAttrs | TooltipRowStyleAttrs => {\n const shapeList = [target.shape, ...sources.map(s => s?.shape)];\n const keyList = [target.key, ...sources.map(s => s?.key)];\n const valueList = [target.value, ...sources.map(s => s?.value)];\n\n return merge(target, ...sources, {\n shape: shapeList.every(isNil) ? undefined : merge({}, ...shapeList),\n key: keyList.every(isNil) ? undefined : merge({}, ...keyList),\n value: valueList.every(isNil) ? undefined : merge({}, ...valueList)\n }) as TooltipRowAttrs | TooltipRowStyleAttrs;\n};\n\nexport const getRichTextAttribute = (attr: TooltipTextAttrs): IRichTextGraphicAttribute => {\n const { width, height, wordBreak = 'break-word', textAlign, textBaseline, text } = attr;\n if (Array.isArray(text)) {\n return {\n width,\n height,\n wordBreak: wordBreak as any,\n textAlign: textAlign as any,\n textBaseline: textBaseline as any,\n singleLine: false,\n textConfig: array(text as string[]).map(\n text =>\n ({\n ...attr,\n text\n } as any)\n )\n };\n }\n return {\n width,\n height,\n wordBreak: wordBreak as any,\n textAlign: textAlign as any,\n textBaseline: textBaseline as any,\n singleLine: false,\n textConfig: (text as TooltipRichTextAttrs).text as IRichTextCharacter[]\n };\n};\n"]}
|
package/es/util/align.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { IText } from '@visactor/vrender
|
|
1
|
+
import type { IText } from '@visactor/vrender-core';
|
|
2
2
|
export declare function alignAxisLabels(labels: IText[], start: number, containerSize: number, orient: string, align: string): void;
|
package/es/util/align.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/util/align.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,MAAe,EAAE,KAAa,EAAE,aAAqB,EAAE,MAAc,EAAE,KAAa;IAClH,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,MAAM,EAAE;QAC3C,IAAI,KAAK,KAAK,MAAM,EAAE;YACpB,MAAM,IAAI,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,KAAK,CAAC,aAAa,CAAC;oBAClB,CAAC,EAAE,KAAK,GAAG,aAAa,GAAG,IAAI;oBAC/B,SAAS,EAAE,MAAM;iBAClB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,KAAK,KAAK,OAAO,EAAE;YAC5B,MAAM,IAAI,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,KAAK,CAAC,aAAa,CAAC;oBAClB,CAAC,EAAE,KAAK,GAAG,aAAa,GAAG,IAAI;oBAC/B,SAAS,EAAE,OAAO;iBACnB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,KAAK,KAAK,QAAQ,EAAE;YAC7B,MAAM,IAAI,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,KAAK,CAAC,aAAa,CAAC;oBAClB,CAAC,EAAE,KAAK,GAAG,aAAa,GAAG,GAAG,GAAG,IAAI;oBACrC,SAAS,EAAE,QAAQ;iBACpB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;KACF;SAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,KAAK,EAAE;QAClD,IAAI,KAAK,KAAK,KAAK,EAAE;YACnB,MAAM,IAAI,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,KAAK,CAAC,aAAa,CAAC;oBAClB,CAAC,EAAE,KAAK,GAAG,aAAa,GAAG,IAAI;oBAC/B,YAAY,EAAE,KAAK;iBACpB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,KAAK,KAAK,QAAQ,EAAE;YAC7B,MAAM,IAAI,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,KAAK,CAAC,aAAa,CAAC;oBAClB,CAAC,EAAE,KAAK,GAAG,aAAa,GAAG,IAAI;oBAC/B,YAAY,EAAE,QAAQ;iBACvB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,KAAK,KAAK,QAAQ,EAAE;YAC7B,MAAM,IAAI,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,KAAK,CAAC,aAAa,CAAC;oBAClB,CAAC,EAAE,KAAK,GAAG,aAAa,GAAG,GAAG,GAAG,IAAI;oBACrC,YAAY,EAAE,QAAQ;iBACvB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;KACF;AACH,CAAC","file":"align.js","sourcesContent":["import type { IText } from '@visactor/vrender
|
|
1
|
+
{"version":3,"sources":["../src/util/align.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,MAAe,EAAE,KAAa,EAAE,aAAqB,EAAE,MAAc,EAAE,KAAa;IAClH,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,MAAM,EAAE;QAC3C,IAAI,KAAK,KAAK,MAAM,EAAE;YACpB,MAAM,IAAI,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,KAAK,CAAC,aAAa,CAAC;oBAClB,CAAC,EAAE,KAAK,GAAG,aAAa,GAAG,IAAI;oBAC/B,SAAS,EAAE,MAAM;iBAClB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,KAAK,KAAK,OAAO,EAAE;YAC5B,MAAM,IAAI,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,KAAK,CAAC,aAAa,CAAC;oBAClB,CAAC,EAAE,KAAK,GAAG,aAAa,GAAG,IAAI;oBAC/B,SAAS,EAAE,OAAO;iBACnB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,KAAK,KAAK,QAAQ,EAAE;YAC7B,MAAM,IAAI,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,KAAK,CAAC,aAAa,CAAC;oBAClB,CAAC,EAAE,KAAK,GAAG,aAAa,GAAG,GAAG,GAAG,IAAI;oBACrC,SAAS,EAAE,QAAQ;iBACpB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;KACF;SAAM,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,KAAK,EAAE;QAClD,IAAI,KAAK,KAAK,KAAK,EAAE;YACnB,MAAM,IAAI,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,KAAK,CAAC,aAAa,CAAC;oBAClB,CAAC,EAAE,KAAK,GAAG,aAAa,GAAG,IAAI;oBAC/B,YAAY,EAAE,KAAK;iBACpB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,KAAK,KAAK,QAAQ,EAAE;YAC7B,MAAM,IAAI,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,KAAK,CAAC,aAAa,CAAC;oBAClB,CAAC,EAAE,KAAK,GAAG,aAAa,GAAG,IAAI;oBAC/B,YAAY,EAAE,QAAQ;iBACvB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;aAAM,IAAI,KAAK,KAAK,QAAQ,EAAE;YAC7B,MAAM,IAAI,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACrB,KAAK,CAAC,aAAa,CAAC;oBAClB,CAAC,EAAE,KAAK,GAAG,aAAa,GAAG,GAAG,GAAG,IAAI;oBACrC,YAAY,EAAE,QAAQ;iBACvB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;SACJ;KACF;AACH,CAAC","file":"align.js","sourcesContent":["import type { IText } from '@visactor/vrender-core';\n\nexport function alignAxisLabels(labels: IText[], start: number, containerSize: number, orient: string, align: string) {\n if (orient === 'right' || orient === 'left') {\n if (align === 'left') {\n const flag = orient === 'right' ? 0 : -1;\n labels.forEach(label => {\n label.setAttributes({\n x: start + containerSize * flag,\n textAlign: 'left'\n });\n });\n } else if (align === 'right') {\n const flag = orient === 'right' ? 1 : 0;\n labels.forEach(label => {\n label.setAttributes({\n x: start + containerSize * flag,\n textAlign: 'right'\n });\n });\n } else if (align === 'center') {\n const flag = orient === 'right' ? 1 : -1;\n labels.forEach(label => {\n label.setAttributes({\n x: start + containerSize * 0.5 * flag,\n textAlign: 'center'\n });\n });\n }\n } else if (orient === 'bottom' || orient === 'top') {\n if (align === 'top') {\n const flag = orient === 'bottom' ? 0 : -1;\n labels.forEach(label => {\n label.setAttributes({\n y: start + containerSize * flag,\n textBaseline: 'top'\n });\n });\n } else if (align === 'bottom') {\n const flag = orient === 'bottom' ? 1 : 0;\n labels.forEach(label => {\n label.setAttributes({\n y: start + containerSize * flag,\n textBaseline: 'bottom'\n });\n });\n } else if (align === 'middle') {\n const flag = orient === 'bottom' ? 1 : -1;\n labels.forEach(label => {\n label.setAttributes({\n y: start + containerSize * 0.5 * flag,\n textBaseline: 'middle'\n });\n });\n }\n }\n}\n"]}
|
package/es/util/common.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IGraphicAttribute, IGraphic, IGroup } from '@visactor/vrender
|
|
1
|
+
import type { IGraphicAttribute, IGraphic, IGroup } from '@visactor/vrender-core';
|
|
2
2
|
export declare function traverseGroup(group: IGraphic, cb: (node: IGraphic) => boolean | void): void;
|
|
3
3
|
export declare const isVisible: (obj?: Partial<IGraphicAttribute>) => boolean;
|
|
4
4
|
export declare function getMarksByName(root: IGroup, name: string): IGraphic<Partial<IGraphicAttribute>>[];
|
package/es/util/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/util/common.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,MAAM,UAAU,aAAa,CAAC,KAAe,EAAE,EAAsC;IACnF,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;QAC3B,MAAM,OAAO,GAAG,EAAE,CAAC,IAAgB,CAAC,CAAC;QACrC,IAAK,IAAe,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE;YAC5C,aAAa,CAAC,IAAgB,EAAE,EAAE,CAAC,CAAC;SACrC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAgC,EAAW,EAAE;IACrE,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;QACd,OAAO,KAAK,CAAC;KACd;IACD,OAAO,GAAG,CAAC,OAAO,KAAK,KAAK,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,IAAY;IACvD,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,EAAE,CAAC;KACX;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,IAAI,CAAW,CAAC;IACpE,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,EAAE,CAAC;KACX;IACD,OAAO,KAAK,CAAC,WAAW,EAAgB,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAE,IAAY;IAChE,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,EAAE,CAAC;KACX;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,IAAI,CAAW,CAAC;IACpE,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,EAAE,CAAC;KACX;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,IAAI,CAA0B,CAAC;AACrF,CAAC","file":"common.js","sourcesContent":["/**\n * @description 存放工具函数\n */\nimport type { IGraphicAttribute, IGraphic, IGroup } from '@visactor/vrender
|
|
1
|
+
{"version":3,"sources":["../src/util/common.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,MAAM,UAAU,aAAa,CAAC,KAAe,EAAE,EAAsC;IACnF,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;QAC3B,MAAM,OAAO,GAAG,EAAE,CAAC,IAAgB,CAAC,CAAC;QACrC,IAAK,IAAe,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE;YAC5C,aAAa,CAAC,IAAgB,EAAE,EAAE,CAAC,CAAC;SACrC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAgC,EAAW,EAAE;IACrE,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;QACd,OAAO,KAAK,CAAC;KACd;IACD,OAAO,GAAG,CAAC,OAAO,KAAK,KAAK,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,IAAY;IACvD,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,EAAE,CAAC;KACX;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,IAAI,CAAW,CAAC;IACpE,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,EAAE,CAAC;KACX;IACD,OAAO,KAAK,CAAC,WAAW,EAAgB,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAE,IAAY;IAChE,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,EAAE,CAAC;KACX;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,IAAI,CAAW,CAAC;IACpE,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,EAAE,CAAC;KACX;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,IAAI,CAA0B,CAAC;AACrF,CAAC","file":"common.js","sourcesContent":["/**\n * @description 存放工具函数\n */\nimport type { IGraphicAttribute, IGraphic, IGroup } from '@visactor/vrender-core';\nimport { isNil } from '@visactor/vutils';\n\nexport function traverseGroup(group: IGraphic, cb: (node: IGraphic) => boolean | void) {\n group.forEachChildren(node => {\n const stopped = cb(node as IGraphic);\n if ((node as IGroup).isContainer && !stopped) {\n traverseGroup(node as IGraphic, cb);\n }\n });\n}\n\nexport const isVisible = (obj?: Partial<IGraphicAttribute>): boolean => {\n if (isNil(obj)) {\n return false;\n }\n return obj.visible !== false;\n};\n\nexport function getMarksByName(root: IGroup, name: string) {\n if (!name) {\n return [];\n }\n const group = root.find(node => node.name === name, true) as IGroup;\n if (!group) {\n return [];\n }\n return group.getChildren() as IGraphic[];\n}\n\nexport function getNoneGroupMarksByName(root: IGroup, name: string) {\n if (!name) {\n return [];\n }\n const group = root.find(node => node.name === name, true) as IGroup;\n if (!group) {\n return [];\n }\n return group.findAll(node => node.type !== 'group', true) as unknown as IGraphic[];\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IColor } from '@visactor/vrender
|
|
1
|
+
import type { IColor } from '@visactor/vrender-core';
|
|
2
2
|
export declare function labelSmartInvert(foregroundColorOrigin: IColor | undefined, backgroundColorOrogin: IColor | undefined, textType?: string | undefined, contrastRatiosThreshold?: number, alternativeColors?: string | string[], mode?: string): IColor | undefined;
|
|
3
3
|
export declare function contrastAccessibilityChecker(foregroundColor: IColor | undefined, backgroundColor: IColor | undefined, textType?: IColor | undefined, contrastRatiosThreshold?: number, mode?: string): boolean;
|
|
4
4
|
export declare function smartInvertStrategy(fillStrategy: string, baseColor: IColor, invertColor: IColor, similarColor: IColor): IColor;
|