@visactor/vrender 0.15.0-alpha.2 → 0.15.0-alpha.21
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/allocator/allocator-modules.js.map +1 -1
- package/cjs/allocator/canvas-allocate.js.map +1 -1
- package/cjs/allocator/constants.js.map +1 -1
- package/cjs/allocator/graphic-allocate.js.map +1 -1
- package/cjs/allocator/matrix-allocate.js.map +1 -1
- package/cjs/allocator/point-allocate.js.map +1 -1
- package/cjs/animate/Ticker/default-ticker.js.map +1 -1
- package/cjs/animate/Ticker/index.js.map +1 -1
- package/cjs/animate/animate.d.ts +1 -0
- package/cjs/animate/animate.js +3 -0
- package/cjs/animate/animate.js.map +1 -1
- package/cjs/animate/config.js.map +1 -1
- package/cjs/animate/custom-animate.js.map +1 -1
- package/cjs/animate/default-ticker.js +1 -1
- package/cjs/animate/default-ticker.js.map +1 -1
- package/cjs/animate/easing.js.map +1 -1
- package/cjs/animate/index.js.map +1 -1
- package/cjs/animate/morphing.js.map +1 -1
- package/cjs/animate/timeline.d.ts +1 -1
- package/cjs/animate/timeline.js +2 -2
- package/cjs/animate/timeline.js.map +1 -1
- package/cjs/application.js.map +1 -1
- package/cjs/canvas/constants.js.map +1 -1
- package/cjs/canvas/contributions/browser/canvas.js +1 -1
- package/cjs/canvas/contributions/browser/canvas.js.map +1 -1
- package/cjs/canvas/contributions/browser/conical-gradient.js.map +1 -1
- package/cjs/canvas/contributions/browser/context.d.ts +1 -0
- package/cjs/canvas/contributions/browser/context.js.map +1 -1
- package/cjs/canvas/contributions/browser/index.js.map +1 -1
- package/cjs/canvas/contributions/browser/modules.js.map +1 -1
- package/cjs/canvas/contributions/feishu/canvas.js.map +1 -1
- package/cjs/canvas/contributions/feishu/context.js.map +1 -1
- package/cjs/canvas/contributions/feishu/index.js.map +1 -1
- package/cjs/canvas/contributions/feishu/modules.js.map +1 -1
- package/cjs/canvas/contributions/lynx/canvas.js.map +1 -1
- package/cjs/canvas/contributions/lynx/context.js.map +1 -1
- package/cjs/canvas/contributions/lynx/index.js.map +1 -1
- package/cjs/canvas/contributions/lynx/modules.js.map +1 -1
- package/cjs/canvas/contributions/modules.js.map +1 -1
- package/cjs/canvas/contributions/node/canvas.js.map +1 -1
- package/cjs/canvas/contributions/node/context.js.map +1 -1
- package/cjs/canvas/contributions/node/index.js.map +1 -1
- package/cjs/canvas/contributions/node/modules.js.map +1 -1
- package/cjs/canvas/contributions/taro/canvas.js.map +1 -1
- package/cjs/canvas/contributions/taro/context.js.map +1 -1
- package/cjs/canvas/contributions/taro/index.js.map +1 -1
- package/cjs/canvas/contributions/taro/modules.js.map +1 -1
- package/cjs/canvas/contributions/tt/canvas.js.map +1 -1
- package/cjs/canvas/contributions/tt/context.js.map +1 -1
- package/cjs/canvas/contributions/tt/index.js.map +1 -1
- package/cjs/canvas/contributions/tt/modules.js.map +1 -1
- package/cjs/canvas/contributions/wx/canvas.js.map +1 -1
- package/cjs/canvas/contributions/wx/context.js.map +1 -1
- package/cjs/canvas/contributions/wx/index.js.map +1 -1
- package/cjs/canvas/contributions/wx/modules.js.map +1 -1
- package/cjs/canvas/empty-context.js.map +1 -1
- package/cjs/canvas/index.js.map +1 -1
- package/cjs/canvas/util.js.map +1 -1
- package/cjs/color-string/colorName.js.map +1 -1
- package/cjs/color-string/index.js.map +1 -1
- package/cjs/color-string/interpolate.js.map +1 -1
- package/cjs/common/bezier-utils.js.map +1 -1
- package/cjs/common/bounds-context.js.map +1 -1
- package/cjs/common/canvas-utils.js.map +1 -1
- package/cjs/common/contribution-provider.d.ts +1 -0
- package/cjs/common/contribution-provider.js +7 -2
- package/cjs/common/contribution-provider.js.map +1 -1
- package/cjs/common/custom-path2d.js.map +1 -1
- package/cjs/common/enums.d.ts +4 -2
- package/cjs/common/enums.js +3 -2
- package/cjs/common/enums.js.map +1 -1
- package/cjs/common/generator.js.map +1 -1
- package/cjs/common/matrix.js.map +1 -1
- package/cjs/common/morphing-utils.js.map +1 -1
- package/cjs/common/path-svg.js.map +1 -1
- package/cjs/common/polygon.js.map +1 -1
- package/cjs/common/render-area.js.map +1 -1
- package/cjs/common/render-command-list.js.map +1 -1
- package/cjs/common/render-curve.js.map +1 -1
- package/cjs/common/seg-context.js.map +1 -1
- package/cjs/common/segment/basis.js.map +1 -1
- package/cjs/common/segment/common.js.map +1 -1
- package/cjs/common/segment/curve/arc.js.map +1 -1
- package/cjs/common/segment/curve/base.js.map +1 -1
- package/cjs/common/segment/curve/cubic-bezier.js.map +1 -1
- package/cjs/common/segment/curve/curve-context.js.map +1 -1
- package/cjs/common/segment/curve/ellipse.js.map +1 -1
- package/cjs/common/segment/curve/line.js.map +1 -1
- package/cjs/common/segment/curve/move.js.map +1 -1
- package/cjs/common/segment/curve/path.js.map +1 -1
- package/cjs/common/segment/curve/quadratic-bezier.js.map +1 -1
- package/cjs/common/segment/index.js.map +1 -1
- package/cjs/common/segment/linear-closed.js.map +1 -1
- package/cjs/common/segment/linear.js.map +1 -1
- package/cjs/common/segment/monotone.js.map +1 -1
- package/cjs/common/segment/step.js.map +1 -1
- package/cjs/common/shape/arc.js.map +1 -1
- package/cjs/common/shape/rect.js.map +1 -1
- package/cjs/common/sort.js.map +1 -1
- package/cjs/common/split-path.js.map +1 -1
- package/cjs/common/store.js.map +1 -1
- package/cjs/common/text.js.map +1 -1
- package/cjs/common/utils.js.map +1 -1
- package/cjs/constants.js.map +1 -1
- package/cjs/container.js.map +1 -1
- package/cjs/core/application.js.map +1 -1
- package/cjs/core/camera.js.map +1 -1
- package/cjs/core/constants.js.map +1 -1
- package/cjs/core/contributions/env/base-contribution.d.ts +6 -0
- package/cjs/core/contributions/env/base-contribution.js +12 -0
- package/cjs/core/contributions/env/base-contribution.js.map +1 -1
- package/cjs/core/contributions/env/browser-contribution.d.ts +6 -0
- package/cjs/core/contributions/env/browser-contribution.js +19 -0
- package/cjs/core/contributions/env/browser-contribution.js.map +1 -1
- package/cjs/core/contributions/env/feishu-contribution.js.map +1 -1
- package/cjs/core/contributions/env/lynx-contribution.js.map +1 -1
- package/cjs/core/contributions/env/modules.js.map +1 -1
- package/cjs/core/contributions/env/node-contribution.js.map +1 -1
- package/cjs/core/contributions/env/taro-contribution.js.map +1 -1
- package/cjs/core/contributions/env/wx-contribution.d.ts +1 -0
- package/cjs/core/contributions/env/wx-contribution.js +5 -3
- package/cjs/core/contributions/env/wx-contribution.js.map +1 -1
- package/cjs/core/contributions/index.js.map +1 -1
- package/cjs/core/contributions/layerHandler/canvas2d-contribution.d.ts +1 -0
- package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +3 -0
- package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
- package/cjs/core/contributions/layerHandler/modules.js.map +1 -1
- package/cjs/core/contributions/layerHandler/offscreen2d-contribution.d.ts +1 -0
- package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js +3 -0
- package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
- package/cjs/core/contributions/modules.js.map +1 -1
- package/cjs/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
- package/cjs/core/contributions/textMeasure/layout.js +1 -1
- package/cjs/core/contributions/textMeasure/layout.js.map +1 -1
- package/cjs/core/contributions/textMeasure/modules.js.map +1 -1
- package/cjs/core/contributions/textMeasure/textMeasure-contribution.js.map +1 -1
- package/cjs/core/contributions/window/base-contribution.d.ts +11 -5
- package/cjs/core/contributions/window/base-contribution.js +10 -0
- package/cjs/core/contributions/window/base-contribution.js.map +1 -1
- package/cjs/core/contributions/window/browser-contribution.d.ts +11 -0
- package/cjs/core/contributions/window/browser-contribution.js +33 -2
- package/cjs/core/contributions/window/browser-contribution.js.map +1 -1
- package/cjs/core/contributions/window/feishu-contribution.js.map +1 -1
- package/cjs/core/contributions/window/lynx-contribution.js.map +1 -1
- package/cjs/core/contributions/window/modules.js.map +1 -1
- package/cjs/core/contributions/window/native-contribution.js.map +1 -1
- package/cjs/core/contributions/window/node-contribution.js.map +1 -1
- package/cjs/core/contributions/window/taro-contribution.js.map +1 -1
- package/cjs/core/contributions/window/wx-contribution.js.map +1 -1
- package/cjs/core/core-modules.js.map +1 -1
- package/cjs/core/global-module.js.map +1 -1
- package/cjs/core/global.d.ts +6 -0
- package/cjs/core/global.js +9 -0
- package/cjs/core/global.js.map +1 -1
- package/cjs/core/graphic-utils.d.ts +2 -0
- package/cjs/core/graphic-utils.js +13 -0
- package/cjs/core/graphic-utils.js.map +1 -1
- package/cjs/core/index.js.map +1 -1
- package/cjs/core/layer-service.js.map +1 -1
- package/cjs/core/layer.js +1 -1
- package/cjs/core/layer.js.map +1 -1
- package/cjs/core/light.js.map +1 -1
- package/cjs/core/stage.d.ts +7 -2
- package/cjs/core/stage.js +27 -12
- package/cjs/core/stage.js.map +1 -1
- package/cjs/core/window.d.ts +6 -0
- package/cjs/core/window.js +10 -1
- package/cjs/core/window.js.map +1 -1
- package/cjs/create.js.map +1 -1
- package/cjs/event/constant.js.map +1 -1
- package/cjs/event/event-manager.js +13 -11
- package/cjs/event/event-manager.js.map +1 -1
- package/cjs/event/event-system.js.map +1 -1
- package/cjs/event/event-target.js.map +1 -1
- package/cjs/event/extension/drag.js.map +1 -1
- package/cjs/event/extension/gesture.js.map +1 -1
- package/cjs/event/extension/index.js.map +1 -1
- package/cjs/event/federated-event/base-event.js.map +1 -1
- package/cjs/event/federated-event/custom-event.js.map +1 -1
- package/cjs/event/federated-event/index.js.map +1 -1
- package/cjs/event/federated-event/mouse-event.js.map +1 -1
- package/cjs/event/federated-event/pointer-event.d.ts +1 -0
- package/cjs/event/federated-event/pointer-event.js.map +1 -1
- package/cjs/event/federated-event/wheel-event.js.map +1 -1
- package/cjs/event/index.js.map +1 -1
- package/cjs/event/util.js.map +1 -1
- package/cjs/export.js.map +1 -1
- package/cjs/graphic/arc.d.ts +7 -0
- package/cjs/graphic/arc.js +3 -1
- package/cjs/graphic/arc.js.map +1 -1
- package/cjs/graphic/arc3d.js.map +1 -1
- package/cjs/graphic/area.js.map +1 -1
- package/cjs/graphic/bounds.js.map +1 -1
- package/cjs/graphic/builtin-symbol/arrow.js.map +1 -1
- package/cjs/graphic/builtin-symbol/arrow2-down.js.map +1 -1
- package/cjs/graphic/builtin-symbol/arrow2-left.js.map +1 -1
- package/cjs/graphic/builtin-symbol/arrow2-right.js.map +1 -1
- package/cjs/graphic/builtin-symbol/arrow2-up.js.map +1 -1
- package/cjs/graphic/builtin-symbol/circle.js.map +1 -1
- package/cjs/graphic/builtin-symbol/close.js.map +1 -1
- package/cjs/graphic/builtin-symbol/cross.js.map +1 -1
- package/cjs/graphic/builtin-symbol/diamond.js.map +1 -1
- package/cjs/graphic/builtin-symbol/index.js.map +1 -1
- package/cjs/graphic/builtin-symbol/line-h.js.map +1 -1
- package/cjs/graphic/builtin-symbol/line-v.js.map +1 -1
- package/cjs/graphic/builtin-symbol/rect.js.map +1 -1
- package/cjs/graphic/builtin-symbol/square.js.map +1 -1
- package/cjs/graphic/builtin-symbol/star.js.map +1 -1
- package/cjs/graphic/builtin-symbol/stroke.js.map +1 -1
- package/cjs/graphic/builtin-symbol/thin-triangle.js.map +1 -1
- package/cjs/graphic/builtin-symbol/triangle-down.js.map +1 -1
- package/cjs/graphic/builtin-symbol/triangle-left.js.map +1 -1
- package/cjs/graphic/builtin-symbol/triangle-right.js.map +1 -1
- package/cjs/graphic/builtin-symbol/triangle-up.js.map +1 -1
- package/cjs/graphic/builtin-symbol/triangle.js.map +1 -1
- package/cjs/graphic/builtin-symbol/utils.js.map +1 -1
- package/cjs/graphic/builtin-symbol/wedge.js.map +1 -1
- package/cjs/graphic/builtin-symbol/wye.js.map +1 -1
- package/cjs/graphic/circle.js.map +1 -1
- package/cjs/graphic/config.js +9 -4
- package/cjs/graphic/config.js.map +1 -1
- package/cjs/graphic/constants.js.map +1 -1
- package/cjs/graphic/glyph.js.map +1 -1
- package/cjs/graphic/graphic-creator.js.map +1 -1
- package/cjs/graphic/graphic-service/arc-contribution.js.map +1 -1
- package/cjs/graphic/graphic-service/area-contribution.js.map +1 -1
- package/cjs/graphic/graphic-service/circle-contribution.js.map +1 -1
- package/cjs/graphic/graphic-service/common-contribution.js.map +1 -1
- package/cjs/graphic/graphic-service/default-theme.js.map +1 -1
- package/cjs/graphic/graphic-service/graphic-module.js.map +1 -1
- package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
- package/cjs/graphic/graphic-service/path-contribution.js.map +1 -1
- package/cjs/graphic/graphic-service/rect-contribution.js.map +1 -1
- package/cjs/graphic/graphic-service/symbol-contribution.js.map +1 -1
- package/cjs/graphic/graphic.d.ts +4 -1
- package/cjs/graphic/graphic.js +58 -23
- package/cjs/graphic/graphic.js.map +1 -1
- package/cjs/graphic/group.js +1 -1
- package/cjs/graphic/group.js.map +1 -1
- package/cjs/graphic/image.js.map +1 -1
- package/cjs/graphic/index.js.map +1 -1
- package/cjs/graphic/line.js.map +1 -1
- package/cjs/graphic/node-tree.js.map +1 -1
- package/cjs/graphic/path.js.map +1 -1
- package/cjs/graphic/polygon.js.map +1 -1
- package/cjs/graphic/pyramid3d.js.map +1 -1
- package/cjs/graphic/rect.js.map +1 -1
- package/cjs/graphic/rect3d.js.map +1 -1
- package/cjs/graphic/richtext/frame.js.map +1 -1
- package/cjs/graphic/richtext/icon.js.map +1 -1
- package/cjs/graphic/richtext/line.js.map +1 -1
- package/cjs/graphic/richtext/paragraph.js.map +1 -1
- package/cjs/graphic/richtext/utils.js.map +1 -1
- package/cjs/graphic/richtext/wrapper.js.map +1 -1
- package/cjs/graphic/richtext.js.map +1 -1
- package/cjs/graphic/shadow-root.js.map +1 -1
- package/cjs/graphic/symbol.js.map +1 -1
- package/cjs/graphic/text.js +35 -25
- package/cjs/graphic/text.js.map +1 -1
- package/cjs/graphic/theme.js.map +1 -1
- package/cjs/graphic/tools.js.map +1 -1
- package/cjs/graphic/wrap-text.js +16 -10
- package/cjs/graphic/wrap-text.js.map +1 -1
- package/cjs/index.d.ts +2 -1
- package/cjs/index.js +2 -2
- package/cjs/index.js.map +1 -1
- package/cjs/interface/allocator.js.map +1 -1
- package/cjs/interface/animate.d.ts +3 -1
- package/cjs/interface/animate.js.map +1 -1
- package/cjs/interface/camera.js.map +1 -1
- package/cjs/interface/canvas.js.map +1 -1
- package/cjs/interface/color.js.map +1 -1
- package/cjs/interface/common.js.map +1 -1
- package/cjs/interface/context.js.map +1 -1
- package/cjs/interface/contribution.js.map +1 -1
- package/cjs/interface/core.d.ts +1 -0
- package/cjs/interface/core.js.map +1 -1
- package/cjs/interface/creator.js.map +1 -1
- package/cjs/interface/curve.js.map +1 -1
- package/cjs/interface/event.js.map +1 -1
- package/cjs/interface/global.d.ts +12 -0
- package/cjs/interface/global.js.map +1 -1
- package/cjs/interface/graphic/arc.d.ts +2 -0
- package/cjs/interface/graphic/arc.js.map +1 -1
- package/cjs/interface/graphic/arc3d.js.map +1 -1
- package/cjs/interface/graphic/area.js.map +1 -1
- package/cjs/interface/graphic/bounds.js.map +1 -1
- package/cjs/interface/graphic/circle.js.map +1 -1
- package/cjs/interface/graphic/creator.js.map +1 -1
- package/cjs/interface/graphic/dynamic-path.js.map +1 -1
- package/cjs/interface/graphic/ellipse.js.map +1 -1
- package/cjs/interface/graphic/face3d.js.map +1 -1
- package/cjs/interface/graphic/glyph.js.map +1 -1
- package/cjs/interface/graphic/group.js.map +1 -1
- package/cjs/interface/graphic/image.d.ts +1 -0
- package/cjs/interface/graphic/image.js.map +1 -1
- package/cjs/interface/graphic/index.js.map +1 -1
- package/cjs/interface/graphic/isogon.js.map +1 -1
- package/cjs/interface/graphic/line.d.ts +1 -0
- package/cjs/interface/graphic/line.js.map +1 -1
- package/cjs/interface/graphic/path.js.map +1 -1
- package/cjs/interface/graphic/polygon.js.map +1 -1
- package/cjs/interface/graphic/polyline.js.map +1 -1
- package/cjs/interface/graphic/pyramid3d.js.map +1 -1
- package/cjs/interface/graphic/rect.js.map +1 -1
- package/cjs/interface/graphic/rect3d.js.map +1 -1
- package/cjs/interface/graphic/richText.js.map +1 -1
- package/cjs/interface/graphic/shadow-root.js.map +1 -1
- package/cjs/interface/graphic/svg.js.map +1 -1
- package/cjs/interface/graphic/symbol.js.map +1 -1
- package/cjs/interface/graphic/text.d.ts +1 -0
- package/cjs/interface/graphic/text.js.map +1 -1
- package/cjs/interface/graphic/theme.js.map +1 -1
- package/cjs/interface/graphic/util.js.map +1 -1
- package/cjs/interface/graphic-service.js.map +1 -1
- package/cjs/interface/graphic-utils.js.map +1 -1
- package/cjs/interface/graphic.d.ts +15 -3
- package/cjs/interface/graphic.js.map +1 -1
- package/cjs/interface/index.js.map +1 -1
- package/cjs/interface/layer.d.ts +1 -0
- package/cjs/interface/layer.js.map +1 -1
- package/cjs/interface/light.js.map +1 -1
- package/cjs/interface/loader.js.map +1 -1
- package/cjs/interface/matrix.js.map +1 -1
- package/cjs/interface/node-tree.js.map +1 -1
- package/cjs/interface/path.js.map +1 -1
- package/cjs/interface/picker.d.ts +9 -1
- package/cjs/interface/picker.js.map +1 -1
- package/cjs/interface/plugin.js.map +1 -1
- package/cjs/interface/render.js.map +1 -1
- package/cjs/interface/stage.d.ts +7 -2
- package/cjs/interface/stage.js.map +1 -1
- package/cjs/interface/sync-hook.js.map +1 -1
- package/cjs/interface/text.js.map +1 -1
- package/cjs/interface/theme-service.js.map +1 -1
- package/cjs/interface/util.js.map +1 -1
- package/cjs/interface/window.d.ts +12 -0
- package/cjs/interface/window.js.map +1 -1
- package/cjs/jsx/graphicType.d.ts +96 -60
- package/cjs/jsx/graphicType.js.map +1 -1
- package/cjs/jsx/index.js.map +1 -1
- package/cjs/jsx/jsx-classic.d.ts +2 -4
- package/cjs/jsx/jsx-classic.js +7 -18
- package/cjs/jsx/jsx-classic.js.map +1 -1
- package/cjs/kits/env.js.map +1 -1
- package/cjs/kits/index.js.map +1 -1
- package/cjs/modules.js.map +1 -1
- package/cjs/picker/canvas-picker-service.d.ts +2 -2
- package/cjs/picker/canvas-picker-service.js +20 -3
- package/cjs/picker/canvas-picker-service.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/arc-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/arc3d-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/area-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/base-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/circle-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/glyph-picker.js +1 -1
- package/cjs/picker/contributions/canvas-picker/glyph-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/group-picker.d.ts +7 -0
- package/cjs/picker/contributions/canvas-picker/group-picker.js +26 -0
- package/cjs/picker/contributions/canvas-picker/group-picker.js.map +1 -0
- package/cjs/picker/contributions/canvas-picker/image-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/line-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/module.js +3 -1
- package/cjs/picker/contributions/canvas-picker/module.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/path-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/polygon-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/pyramid3d-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/rect-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/rect3d-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/richtext-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/symbol-picker.js.map +1 -1
- package/cjs/picker/contributions/canvas-picker/text-picker.js.map +1 -1
- package/cjs/picker/contributions/constants.d.ts +1 -0
- package/cjs/picker/contributions/constants.js +9 -8
- package/cjs/picker/contributions/constants.js.map +1 -1
- package/cjs/picker/contributions/math-picker/arc-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/area-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/circle-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/glyph-picker.js +1 -1
- package/cjs/picker/contributions/math-picker/glyph-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/line-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/module.js.map +1 -1
- package/cjs/picker/contributions/math-picker/path-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/polygon-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/rect-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/symbol-picker.js.map +1 -1
- package/cjs/picker/contributions/math-picker/text-picker.js.map +1 -1
- package/cjs/picker/contributions/modules.js.map +1 -1
- package/cjs/picker/contributions/old/circle-picker.js.map +1 -1
- package/cjs/picker/contributions/old/rect-picker.js.map +1 -1
- package/cjs/picker/global-picker-service.d.ts +1 -1
- package/cjs/picker/global-picker-service.js +12 -5
- package/cjs/picker/global-picker-service.js.map +1 -1
- package/cjs/picker/index.js.map +1 -1
- package/cjs/picker/math-picker-service.d.ts +2 -2
- package/cjs/picker/math-picker-service.js +1 -1
- package/cjs/picker/math-picker-service.js.map +1 -1
- package/cjs/picker/pick-interceptor.d.ts +12 -0
- package/cjs/picker/pick-interceptor.js +30 -2
- package/cjs/picker/pick-interceptor.js.map +1 -1
- package/cjs/picker/pick-modules.js +2 -0
- package/cjs/picker/pick-modules.js.map +1 -1
- package/cjs/picker/picker-service.d.ts +1 -1
- package/cjs/picker/picker-service.js +15 -6
- package/cjs/picker/picker-service.js.map +1 -1
- package/cjs/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
- package/cjs/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
- package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
- package/cjs/plugins/builtin-plugin/flex-layout-plugin.d.ts +2 -0
- package/cjs/plugins/builtin-plugin/flex-layout-plugin.js +42 -21
- package/cjs/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
- package/cjs/plugins/builtin-plugin/html-attribute-plugin.js +8 -4
- package/cjs/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
- package/cjs/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
- package/cjs/plugins/builtin-plugin/poptip-plugin.js.map +1 -1
- package/cjs/plugins/constants.js.map +1 -1
- package/cjs/plugins/plugin-modules.js +1 -1
- package/cjs/plugins/plugin-modules.js.map +1 -1
- package/cjs/plugins/plugin-service.js.map +1 -1
- package/cjs/render/contributions/modules.js.map +1 -1
- package/cjs/render/contributions/render/arc-render.js +9 -2
- package/cjs/render/contributions/render/arc-render.js.map +1 -1
- package/cjs/render/contributions/render/arc3d-render.js.map +1 -1
- package/cjs/render/contributions/render/area-render.js +32 -22
- package/cjs/render/contributions/render/area-render.js.map +1 -1
- package/cjs/render/contributions/render/base-render.js.map +1 -1
- package/cjs/render/contributions/render/circle-render.js.map +1 -1
- package/cjs/render/contributions/render/clear-screen.js.map +1 -1
- package/cjs/render/contributions/render/contributions/arc-contribution-render.js +9 -7
- package/cjs/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/circle-contribution-render.js +9 -7
- package/cjs/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/constants.js.map +1 -1
- package/cjs/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/image-contribution-render.js +23 -1
- package/cjs/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/index.js.map +1 -1
- package/cjs/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/rect-contribution-render.js +9 -7
- package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/symbol-contribution-render.js +24 -22
- package/cjs/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
- package/cjs/render/contributions/render/draw-interceptor.d.ts +2 -0
- package/cjs/render/contributions/render/draw-interceptor.js +8 -0
- package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
- package/cjs/render/contributions/render/glyph-render.js.map +1 -1
- package/cjs/render/contributions/render/graphic-render.js.map +1 -1
- package/cjs/render/contributions/render/group-render.js.map +1 -1
- package/cjs/render/contributions/render/image-render.js +7 -3
- package/cjs/render/contributions/render/image-render.js.map +1 -1
- package/cjs/render/contributions/render/incremental-area-render.js.map +1 -1
- package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
- package/cjs/render/contributions/render/incremental-line-render.js.map +1 -1
- package/cjs/render/contributions/render/index.js.map +1 -1
- package/cjs/render/contributions/render/line-render.js +50 -23
- package/cjs/render/contributions/render/line-render.js.map +1 -1
- package/cjs/render/contributions/render/module.js.map +1 -1
- package/cjs/render/contributions/render/path-render.js.map +1 -1
- package/cjs/render/contributions/render/polygon-render.js.map +1 -1
- package/cjs/render/contributions/render/pyramid3d-render.js.map +1 -1
- package/cjs/render/contributions/render/rect-render.js.map +1 -1
- package/cjs/render/contributions/render/rect3d-render.js.map +1 -1
- package/cjs/render/contributions/render/render-slector.js.map +1 -1
- package/cjs/render/contributions/render/richtext-render.js.map +1 -1
- package/cjs/render/contributions/render/symbol-render.js.map +1 -1
- package/cjs/render/contributions/render/symbol.js.map +1 -1
- package/cjs/render/contributions/render/text-render.js.map +1 -1
- package/cjs/render/contributions/render/utils.d.ts +2 -2
- package/cjs/render/contributions/render/utils.js.map +1 -1
- package/cjs/render/index.js.map +1 -1
- package/cjs/render/render-modules.js.map +1 -1
- package/cjs/render/render-service.js.map +1 -1
- package/cjs/resource-loader/loader.js.map +1 -1
- package/cjs/tapable/Hook.js.map +1 -1
- package/cjs/tapable/SyncHook.js.map +1 -1
- package/cjs/tapable/index.js.map +1 -1
- package/dist/index.js +1373 -933
- package/dist/index.min.js +1 -1
- package/es/allocator/allocator-modules.js.map +1 -1
- package/es/allocator/canvas-allocate.js.map +1 -1
- package/es/allocator/constants.js.map +1 -1
- package/es/allocator/graphic-allocate.js.map +1 -1
- package/es/allocator/matrix-allocate.js.map +1 -1
- package/es/allocator/point-allocate.js.map +1 -1
- package/es/animate/Ticker/default-ticker.js.map +1 -1
- package/es/animate/Ticker/index.js.map +1 -1
- package/es/animate/animate.d.ts +1 -0
- package/es/animate/animate.js +3 -0
- package/es/animate/animate.js.map +1 -1
- package/es/animate/config.js.map +1 -1
- package/es/animate/custom-animate.js.map +1 -1
- package/es/animate/default-ticker.js +1 -1
- package/es/animate/default-ticker.js.map +1 -1
- package/es/animate/easing.js.map +1 -1
- package/es/animate/index.js.map +1 -1
- package/es/animate/morphing.js.map +1 -1
- package/es/animate/timeline.d.ts +1 -1
- package/es/animate/timeline.js +2 -2
- package/es/animate/timeline.js.map +1 -1
- package/es/application.js.map +1 -1
- package/es/canvas/constants.js.map +1 -1
- package/es/canvas/contributions/browser/canvas.js +1 -1
- package/es/canvas/contributions/browser/canvas.js.map +1 -1
- package/es/canvas/contributions/browser/conical-gradient.js.map +1 -1
- package/es/canvas/contributions/browser/context.d.ts +1 -0
- package/es/canvas/contributions/browser/context.js.map +1 -1
- package/es/canvas/contributions/browser/index.js.map +1 -1
- package/es/canvas/contributions/browser/modules.js.map +1 -1
- package/es/canvas/contributions/feishu/canvas.js.map +1 -1
- package/es/canvas/contributions/feishu/context.js.map +1 -1
- package/es/canvas/contributions/feishu/index.js.map +1 -1
- package/es/canvas/contributions/feishu/modules.js.map +1 -1
- package/es/canvas/contributions/lynx/canvas.js.map +1 -1
- package/es/canvas/contributions/lynx/context.js.map +1 -1
- package/es/canvas/contributions/lynx/index.js.map +1 -1
- package/es/canvas/contributions/lynx/modules.js.map +1 -1
- package/es/canvas/contributions/modules.js.map +1 -1
- package/es/canvas/contributions/node/canvas.js.map +1 -1
- package/es/canvas/contributions/node/context.js.map +1 -1
- package/es/canvas/contributions/node/index.js.map +1 -1
- package/es/canvas/contributions/node/modules.js.map +1 -1
- package/es/canvas/contributions/taro/canvas.js.map +1 -1
- package/es/canvas/contributions/taro/context.js.map +1 -1
- package/es/canvas/contributions/taro/index.js.map +1 -1
- package/es/canvas/contributions/taro/modules.js.map +1 -1
- package/es/canvas/contributions/tt/canvas.js.map +1 -1
- package/es/canvas/contributions/tt/context.js.map +1 -1
- package/es/canvas/contributions/tt/index.js.map +1 -1
- package/es/canvas/contributions/tt/modules.js.map +1 -1
- package/es/canvas/contributions/wx/canvas.js.map +1 -1
- package/es/canvas/contributions/wx/context.js.map +1 -1
- package/es/canvas/contributions/wx/index.js.map +1 -1
- package/es/canvas/contributions/wx/modules.js.map +1 -1
- package/es/canvas/empty-context.js.map +1 -1
- package/es/canvas/index.js.map +1 -1
- package/es/canvas/util.js.map +1 -1
- package/es/color-string/colorName.js.map +1 -1
- package/es/color-string/index.js.map +1 -1
- package/es/color-string/interpolate.js.map +1 -1
- package/es/common/bezier-utils.js.map +1 -1
- package/es/common/bounds-context.js.map +1 -1
- package/es/common/canvas-utils.js.map +1 -1
- package/es/common/contribution-provider.d.ts +1 -0
- package/es/common/contribution-provider.js +4 -0
- package/es/common/contribution-provider.js.map +1 -1
- package/es/common/custom-path2d.js.map +1 -1
- package/es/common/enums.d.ts +4 -2
- package/es/common/enums.js +3 -2
- package/es/common/enums.js.map +1 -1
- package/es/common/generator.js.map +1 -1
- package/es/common/matrix.js.map +1 -1
- package/es/common/morphing-utils.js.map +1 -1
- package/es/common/path-svg.js.map +1 -1
- package/es/common/polygon.js.map +1 -1
- package/es/common/render-area.js.map +1 -1
- package/es/common/render-command-list.js.map +1 -1
- package/es/common/render-curve.js.map +1 -1
- package/es/common/seg-context.js.map +1 -1
- package/es/common/segment/basis.js.map +1 -1
- package/es/common/segment/common.js.map +1 -1
- package/es/common/segment/curve/arc.js.map +1 -1
- package/es/common/segment/curve/base.js.map +1 -1
- package/es/common/segment/curve/cubic-bezier.js.map +1 -1
- package/es/common/segment/curve/curve-context.js.map +1 -1
- package/es/common/segment/curve/ellipse.js.map +1 -1
- package/es/common/segment/curve/line.js.map +1 -1
- package/es/common/segment/curve/move.js.map +1 -1
- package/es/common/segment/curve/path.js.map +1 -1
- package/es/common/segment/curve/quadratic-bezier.js.map +1 -1
- package/es/common/segment/index.js.map +1 -1
- package/es/common/segment/linear-closed.js.map +1 -1
- package/es/common/segment/linear.js.map +1 -1
- package/es/common/segment/monotone.js.map +1 -1
- package/es/common/segment/step.js.map +1 -1
- package/es/common/shape/arc.js.map +1 -1
- package/es/common/shape/rect.js.map +1 -1
- package/es/common/sort.js.map +1 -1
- package/es/common/split-path.js.map +1 -1
- package/es/common/store.js.map +1 -1
- package/es/common/text.js.map +1 -1
- package/es/common/utils.js.map +1 -1
- package/es/constants.js.map +1 -1
- package/es/container.js.map +1 -1
- package/es/core/application.js.map +1 -1
- package/es/core/camera.js.map +1 -1
- package/es/core/constants.js.map +1 -1
- package/es/core/contributions/env/base-contribution.d.ts +6 -0
- package/es/core/contributions/env/base-contribution.js +12 -0
- package/es/core/contributions/env/base-contribution.js.map +1 -1
- package/es/core/contributions/env/browser-contribution.d.ts +6 -0
- package/es/core/contributions/env/browser-contribution.js +19 -0
- package/es/core/contributions/env/browser-contribution.js.map +1 -1
- package/es/core/contributions/env/feishu-contribution.js.map +1 -1
- package/es/core/contributions/env/lynx-contribution.js.map +1 -1
- package/es/core/contributions/env/modules.js.map +1 -1
- package/es/core/contributions/env/node-contribution.js.map +1 -1
- package/es/core/contributions/env/taro-contribution.js.map +1 -1
- package/es/core/contributions/env/wx-contribution.d.ts +1 -0
- package/es/core/contributions/env/wx-contribution.js +5 -3
- package/es/core/contributions/env/wx-contribution.js.map +1 -1
- package/es/core/contributions/index.js.map +1 -1
- package/es/core/contributions/layerHandler/canvas2d-contribution.d.ts +1 -0
- package/es/core/contributions/layerHandler/canvas2d-contribution.js +3 -0
- package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
- package/es/core/contributions/layerHandler/modules.js.map +1 -1
- package/es/core/contributions/layerHandler/offscreen2d-contribution.d.ts +1 -0
- package/es/core/contributions/layerHandler/offscreen2d-contribution.js +3 -0
- package/es/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
- package/es/core/contributions/modules.js.map +1 -1
- package/es/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
- package/es/core/contributions/textMeasure/layout.js +1 -1
- package/es/core/contributions/textMeasure/layout.js.map +1 -1
- package/es/core/contributions/textMeasure/modules.js.map +1 -1
- package/es/core/contributions/textMeasure/textMeasure-contribution.js.map +1 -1
- package/es/core/contributions/window/base-contribution.d.ts +11 -5
- package/es/core/contributions/window/base-contribution.js +10 -0
- package/es/core/contributions/window/base-contribution.js.map +1 -1
- package/es/core/contributions/window/browser-contribution.d.ts +11 -0
- package/es/core/contributions/window/browser-contribution.js +33 -2
- package/es/core/contributions/window/browser-contribution.js.map +1 -1
- package/es/core/contributions/window/feishu-contribution.js.map +1 -1
- package/es/core/contributions/window/lynx-contribution.js.map +1 -1
- package/es/core/contributions/window/modules.js.map +1 -1
- package/es/core/contributions/window/native-contribution.js.map +1 -1
- package/es/core/contributions/window/node-contribution.js.map +1 -1
- package/es/core/contributions/window/taro-contribution.js.map +1 -1
- package/es/core/contributions/window/wx-contribution.js.map +1 -1
- package/es/core/core-modules.js.map +1 -1
- package/es/core/global-module.js.map +1 -1
- package/es/core/global.d.ts +6 -0
- package/es/core/global.js +9 -0
- package/es/core/global.js.map +1 -1
- package/es/core/graphic-utils.d.ts +2 -0
- package/es/core/graphic-utils.js +13 -0
- package/es/core/graphic-utils.js.map +1 -1
- package/es/core/index.js.map +1 -1
- package/es/core/layer-service.js.map +1 -1
- package/es/core/layer.js +1 -1
- package/es/core/layer.js.map +1 -1
- package/es/core/light.js.map +1 -1
- package/es/core/stage.d.ts +7 -2
- package/es/core/stage.js +28 -11
- package/es/core/stage.js.map +1 -1
- package/es/core/window.d.ts +6 -0
- package/es/core/window.js +10 -1
- package/es/core/window.js.map +1 -1
- package/es/create.js.map +1 -1
- package/es/event/constant.js.map +1 -1
- package/es/event/event-manager.js +13 -11
- package/es/event/event-manager.js.map +1 -1
- package/es/event/event-system.js.map +1 -1
- package/es/event/event-target.js.map +1 -1
- package/es/event/extension/drag.js.map +1 -1
- package/es/event/extension/gesture.js.map +1 -1
- package/es/event/extension/index.js.map +1 -1
- package/es/event/federated-event/base-event.js.map +1 -1
- package/es/event/federated-event/custom-event.js.map +1 -1
- package/es/event/federated-event/index.js.map +1 -1
- package/es/event/federated-event/mouse-event.js.map +1 -1
- package/es/event/federated-event/pointer-event.d.ts +1 -0
- package/es/event/federated-event/pointer-event.js.map +1 -1
- package/es/event/federated-event/wheel-event.js.map +1 -1
- package/es/event/index.js.map +1 -1
- package/es/event/util.js.map +1 -1
- package/es/export.js.map +1 -1
- package/es/graphic/arc.d.ts +7 -0
- package/es/graphic/arc.js +3 -1
- package/es/graphic/arc.js.map +1 -1
- package/es/graphic/arc3d.js.map +1 -1
- package/es/graphic/area.js.map +1 -1
- package/es/graphic/bounds.js.map +1 -1
- package/es/graphic/builtin-symbol/arrow.js.map +1 -1
- package/es/graphic/builtin-symbol/arrow2-down.js.map +1 -1
- package/es/graphic/builtin-symbol/arrow2-left.js.map +1 -1
- package/es/graphic/builtin-symbol/arrow2-right.js.map +1 -1
- package/es/graphic/builtin-symbol/arrow2-up.js.map +1 -1
- package/es/graphic/builtin-symbol/circle.js.map +1 -1
- package/es/graphic/builtin-symbol/close.js.map +1 -1
- package/es/graphic/builtin-symbol/cross.js.map +1 -1
- package/es/graphic/builtin-symbol/diamond.js.map +1 -1
- package/es/graphic/builtin-symbol/index.js.map +1 -1
- package/es/graphic/builtin-symbol/line-h.js.map +1 -1
- package/es/graphic/builtin-symbol/line-v.js.map +1 -1
- package/es/graphic/builtin-symbol/rect.js.map +1 -1
- package/es/graphic/builtin-symbol/square.js.map +1 -1
- package/es/graphic/builtin-symbol/star.js.map +1 -1
- package/es/graphic/builtin-symbol/stroke.js.map +1 -1
- package/es/graphic/builtin-symbol/thin-triangle.js.map +1 -1
- package/es/graphic/builtin-symbol/triangle-down.js.map +1 -1
- package/es/graphic/builtin-symbol/triangle-left.js.map +1 -1
- package/es/graphic/builtin-symbol/triangle-right.js.map +1 -1
- package/es/graphic/builtin-symbol/triangle-up.js.map +1 -1
- package/es/graphic/builtin-symbol/triangle.js.map +1 -1
- package/es/graphic/builtin-symbol/utils.js.map +1 -1
- package/es/graphic/builtin-symbol/wedge.js.map +1 -1
- package/es/graphic/builtin-symbol/wye.js.map +1 -1
- package/es/graphic/circle.js.map +1 -1
- package/es/graphic/config.js +9 -4
- package/es/graphic/config.js.map +1 -1
- package/es/graphic/constants.js.map +1 -1
- package/es/graphic/glyph.js.map +1 -1
- package/es/graphic/graphic-creator.js.map +1 -1
- package/es/graphic/graphic-service/arc-contribution.js.map +1 -1
- package/es/graphic/graphic-service/area-contribution.js.map +1 -1
- package/es/graphic/graphic-service/circle-contribution.js.map +1 -1
- package/es/graphic/graphic-service/common-contribution.js.map +1 -1
- package/es/graphic/graphic-service/default-theme.js.map +1 -1
- package/es/graphic/graphic-service/graphic-module.js.map +1 -1
- package/es/graphic/graphic-service/graphic-service.js.map +1 -1
- package/es/graphic/graphic-service/path-contribution.js.map +1 -1
- package/es/graphic/graphic-service/rect-contribution.js.map +1 -1
- package/es/graphic/graphic-service/symbol-contribution.js.map +1 -1
- package/es/graphic/graphic.d.ts +4 -1
- package/es/graphic/graphic.js +57 -23
- package/es/graphic/graphic.js.map +1 -1
- package/es/graphic/group.js +1 -1
- package/es/graphic/group.js.map +1 -1
- package/es/graphic/image.js.map +1 -1
- package/es/graphic/index.js.map +1 -1
- package/es/graphic/line.js.map +1 -1
- package/es/graphic/node-tree.js.map +1 -1
- package/es/graphic/path.js.map +1 -1
- package/es/graphic/polygon.js.map +1 -1
- package/es/graphic/pyramid3d.js.map +1 -1
- package/es/graphic/rect.js.map +1 -1
- package/es/graphic/rect3d.js.map +1 -1
- package/es/graphic/richtext/frame.js.map +1 -1
- package/es/graphic/richtext/icon.js.map +1 -1
- package/es/graphic/richtext/line.js.map +1 -1
- package/es/graphic/richtext/paragraph.js.map +1 -1
- package/es/graphic/richtext/utils.js.map +1 -1
- package/es/graphic/richtext/wrapper.js.map +1 -1
- package/es/graphic/richtext.js.map +1 -1
- package/es/graphic/shadow-root.js.map +1 -1
- package/es/graphic/symbol.js.map +1 -1
- package/es/graphic/text.js +34 -26
- package/es/graphic/text.js.map +1 -1
- package/es/graphic/theme.js.map +1 -1
- package/es/graphic/tools.js.map +1 -1
- package/es/graphic/wrap-text.js +16 -10
- package/es/graphic/wrap-text.js.map +1 -1
- package/es/index.d.ts +2 -1
- package/es/index.js +3 -1
- package/es/index.js.map +1 -1
- package/es/interface/allocator.js.map +1 -1
- package/es/interface/animate.d.ts +3 -1
- package/es/interface/animate.js.map +1 -1
- package/es/interface/camera.js.map +1 -1
- package/es/interface/canvas.js.map +1 -1
- package/es/interface/color.js.map +1 -1
- package/es/interface/common.js.map +1 -1
- package/es/interface/context.js.map +1 -1
- package/es/interface/contribution.js.map +1 -1
- package/es/interface/core.d.ts +1 -0
- package/es/interface/core.js.map +1 -1
- package/es/interface/creator.js.map +1 -1
- package/es/interface/curve.js.map +1 -1
- package/es/interface/event.js.map +1 -1
- package/es/interface/global.d.ts +12 -0
- package/es/interface/global.js.map +1 -1
- package/es/interface/graphic/arc.d.ts +2 -0
- package/es/interface/graphic/arc.js.map +1 -1
- package/es/interface/graphic/arc3d.js.map +1 -1
- package/es/interface/graphic/area.js.map +1 -1
- package/es/interface/graphic/bounds.js.map +1 -1
- package/es/interface/graphic/circle.js.map +1 -1
- package/es/interface/graphic/creator.js.map +1 -1
- package/es/interface/graphic/dynamic-path.js.map +1 -1
- package/es/interface/graphic/ellipse.js.map +1 -1
- package/es/interface/graphic/face3d.js.map +1 -1
- package/es/interface/graphic/glyph.js.map +1 -1
- package/es/interface/graphic/group.js.map +1 -1
- package/es/interface/graphic/image.d.ts +1 -0
- package/es/interface/graphic/image.js.map +1 -1
- package/es/interface/graphic/index.js.map +1 -1
- package/es/interface/graphic/isogon.js.map +1 -1
- package/es/interface/graphic/line.d.ts +1 -0
- package/es/interface/graphic/line.js.map +1 -1
- package/es/interface/graphic/path.js.map +1 -1
- package/es/interface/graphic/polygon.js.map +1 -1
- package/es/interface/graphic/polyline.js.map +1 -1
- package/es/interface/graphic/pyramid3d.js.map +1 -1
- package/es/interface/graphic/rect.js.map +1 -1
- package/es/interface/graphic/rect3d.js.map +1 -1
- package/es/interface/graphic/richText.js.map +1 -1
- package/es/interface/graphic/shadow-root.js.map +1 -1
- package/es/interface/graphic/svg.js.map +1 -1
- package/es/interface/graphic/symbol.js.map +1 -1
- package/es/interface/graphic/text.d.ts +1 -0
- package/es/interface/graphic/text.js.map +1 -1
- package/es/interface/graphic/theme.js.map +1 -1
- package/es/interface/graphic/util.js.map +1 -1
- package/es/interface/graphic-service.js.map +1 -1
- package/es/interface/graphic-utils.js.map +1 -1
- package/es/interface/graphic.d.ts +15 -3
- package/es/interface/graphic.js.map +1 -1
- package/es/interface/index.js.map +1 -1
- package/es/interface/layer.d.ts +1 -0
- package/es/interface/layer.js.map +1 -1
- package/es/interface/light.js.map +1 -1
- package/es/interface/loader.js.map +1 -1
- package/es/interface/matrix.js.map +1 -1
- package/es/interface/node-tree.js.map +1 -1
- package/es/interface/path.js.map +1 -1
- package/es/interface/picker.d.ts +9 -1
- package/es/interface/picker.js.map +1 -1
- package/es/interface/plugin.js.map +1 -1
- package/es/interface/render.js.map +1 -1
- package/es/interface/stage.d.ts +7 -2
- package/es/interface/stage.js.map +1 -1
- package/es/interface/sync-hook.js.map +1 -1
- package/es/interface/text.js.map +1 -1
- package/es/interface/theme-service.js.map +1 -1
- package/es/interface/util.js.map +1 -1
- package/es/interface/window.d.ts +12 -0
- package/es/interface/window.js.map +1 -1
- package/es/jsx/graphicType.d.ts +96 -60
- package/es/jsx/graphicType.js.map +1 -1
- package/es/jsx/index.js.map +1 -1
- package/es/jsx/jsx-classic.d.ts +2 -4
- package/es/jsx/jsx-classic.js +8 -15
- package/es/jsx/jsx-classic.js.map +1 -1
- package/es/kits/env.js.map +1 -1
- package/es/kits/index.js.map +1 -1
- package/es/modules.js.map +1 -1
- package/es/picker/canvas-picker-service.d.ts +2 -2
- package/es/picker/canvas-picker-service.js +20 -3
- package/es/picker/canvas-picker-service.js.map +1 -1
- package/es/picker/contributions/canvas-picker/arc-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/arc3d-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/area-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/base-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/circle-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/glyph-picker.js +1 -1
- package/es/picker/contributions/canvas-picker/glyph-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/group-picker.d.ts +7 -0
- package/es/picker/contributions/canvas-picker/group-picker.js +23 -0
- package/es/picker/contributions/canvas-picker/group-picker.js.map +1 -0
- package/es/picker/contributions/canvas-picker/image-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/line-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/module.js +6 -2
- package/es/picker/contributions/canvas-picker/module.js.map +1 -1
- package/es/picker/contributions/canvas-picker/path-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/polygon-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/pyramid3d-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/rect-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/rect3d-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/richtext-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/symbol-picker.js.map +1 -1
- package/es/picker/contributions/canvas-picker/text-picker.js.map +1 -1
- package/es/picker/contributions/constants.d.ts +1 -0
- package/es/picker/contributions/constants.js +2 -0
- package/es/picker/contributions/constants.js.map +1 -1
- package/es/picker/contributions/math-picker/arc-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/area-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/circle-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/glyph-picker.js +1 -1
- package/es/picker/contributions/math-picker/glyph-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/line-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/module.js.map +1 -1
- package/es/picker/contributions/math-picker/path-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/polygon-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/rect-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/symbol-picker.js.map +1 -1
- package/es/picker/contributions/math-picker/text-picker.js.map +1 -1
- package/es/picker/contributions/modules.js.map +1 -1
- package/es/picker/contributions/old/circle-picker.js.map +1 -1
- package/es/picker/contributions/old/rect-picker.js.map +1 -1
- package/es/picker/global-picker-service.d.ts +1 -1
- package/es/picker/global-picker-service.js +12 -5
- package/es/picker/global-picker-service.js.map +1 -1
- package/es/picker/index.js.map +1 -1
- package/es/picker/math-picker-service.d.ts +2 -2
- package/es/picker/math-picker-service.js +1 -1
- package/es/picker/math-picker-service.js.map +1 -1
- package/es/picker/pick-interceptor.d.ts +12 -0
- package/es/picker/pick-interceptor.js +32 -1
- package/es/picker/pick-interceptor.js.map +1 -1
- package/es/picker/pick-modules.js +4 -2
- package/es/picker/pick-modules.js.map +1 -1
- package/es/picker/picker-service.d.ts +1 -1
- package/es/picker/picker-service.js +15 -6
- package/es/picker/picker-service.js.map +1 -1
- package/es/plugins/builtin-plugin/3dview-transform-plugin.js.map +1 -1
- package/es/plugins/builtin-plugin/auto-render-plugin.js.map +1 -1
- package/es/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
- package/es/plugins/builtin-plugin/flex-layout-plugin.d.ts +2 -0
- package/es/plugins/builtin-plugin/flex-layout-plugin.js +47 -20
- package/es/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
- package/es/plugins/builtin-plugin/html-attribute-plugin.js +8 -4
- package/es/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
- package/es/plugins/builtin-plugin/incremental-auto-render-plugin.js.map +1 -1
- package/es/plugins/builtin-plugin/poptip-plugin.js.map +1 -1
- package/es/plugins/constants.js.map +1 -1
- package/es/plugins/plugin-modules.js +2 -2
- package/es/plugins/plugin-modules.js.map +1 -1
- package/es/plugins/plugin-service.js.map +1 -1
- package/es/render/contributions/modules.js.map +1 -1
- package/es/render/contributions/render/arc-render.js +10 -3
- package/es/render/contributions/render/arc-render.js.map +1 -1
- package/es/render/contributions/render/arc3d-render.js.map +1 -1
- package/es/render/contributions/render/area-render.js +31 -21
- package/es/render/contributions/render/area-render.js.map +1 -1
- package/es/render/contributions/render/base-render.js.map +1 -1
- package/es/render/contributions/render/circle-render.js.map +1 -1
- package/es/render/contributions/render/clear-screen.js.map +1 -1
- package/es/render/contributions/render/contributions/arc-contribution-render.js +9 -7
- package/es/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/circle-contribution-render.js +9 -7
- package/es/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/constants.js.map +1 -1
- package/es/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/image-contribution-render.js +27 -0
- package/es/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/index.js.map +1 -1
- package/es/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/rect-contribution-render.js +9 -7
- package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/symbol-contribution-render.js +22 -20
- package/es/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
- package/es/render/contributions/render/draw-contribution.js.map +1 -1
- package/es/render/contributions/render/draw-interceptor.d.ts +2 -0
- package/es/render/contributions/render/draw-interceptor.js +8 -0
- package/es/render/contributions/render/draw-interceptor.js.map +1 -1
- package/es/render/contributions/render/glyph-render.js.map +1 -1
- package/es/render/contributions/render/graphic-render.js.map +1 -1
- package/es/render/contributions/render/group-render.js.map +1 -1
- package/es/render/contributions/render/image-render.js +10 -2
- package/es/render/contributions/render/image-render.js.map +1 -1
- package/es/render/contributions/render/incremental-area-render.js.map +1 -1
- package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
- package/es/render/contributions/render/incremental-line-render.js.map +1 -1
- package/es/render/contributions/render/index.js.map +1 -1
- package/es/render/contributions/render/line-render.js +49 -22
- package/es/render/contributions/render/line-render.js.map +1 -1
- package/es/render/contributions/render/module.js.map +1 -1
- package/es/render/contributions/render/path-render.js.map +1 -1
- package/es/render/contributions/render/polygon-render.js.map +1 -1
- package/es/render/contributions/render/pyramid3d-render.js.map +1 -1
- package/es/render/contributions/render/rect-render.js.map +1 -1
- package/es/render/contributions/render/rect3d-render.js.map +1 -1
- package/es/render/contributions/render/render-slector.js.map +1 -1
- package/es/render/contributions/render/richtext-render.js.map +1 -1
- package/es/render/contributions/render/symbol-render.js.map +1 -1
- package/es/render/contributions/render/symbol.js.map +1 -1
- package/es/render/contributions/render/text-render.js.map +1 -1
- package/es/render/contributions/render/utils.d.ts +2 -2
- package/es/render/contributions/render/utils.js.map +1 -1
- package/es/render/index.js.map +1 -1
- package/es/render/render-modules.js.map +1 -1
- package/es/render/render-service.js.map +1 -1
- package/es/resource-loader/loader.js.map +1 -1
- package/es/tapable/Hook.js.map +1 -1
- package/es/tapable/SyncHook.js.map +1 -1
- package/es/tapable/index.js.map +1 -1
- package/package.json +7 -7
- package/es/tsconfig.tsbuildinfo +0 -1
package/cjs/graphic/tools.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/graphic/tools.ts"],"names":[],"mappings":"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","file":"tools.js","sourcesContent":["import { application } from '../application';\nimport type { IGraphic, IGroup, ILayer, IRichTextCharacter, IRichTextImageCharacter, IStage } from '../interface';\nimport { isArray, type IAABBBounds } from '@visactor/vutils';\nimport { XMLValidator, XMLParser } from 'fast-xml-parser';\n\n// 不触发外部的render\nexport function incrementalAddTo(group: IGroup, graphic: IGraphic) {\n group.incrementalAppendChild(graphic);\n // if (group.layer && group.layer.subLayers) {\n // // const subLayer = group.layer.subLayers.get(group._uid);\n // }\n}\n\nexport async function waitForAllSubLayers(stage: IStage) {\n const promiseList: Promise<any>[] = [];\n const layers = stage.getChildren() as ILayer[];\n await new Promise(resolve => {\n application.global.getRequestAnimationFrame()(() => {\n resolve(null);\n });\n });\n layers.forEach(l => {\n if (l.subLayers.size) {\n l.subLayers.forEach(sl => {\n if (sl.drawContribution && sl.drawContribution.hooks && sl.drawContribution.rendering) {\n promiseList.push(\n new Promise(resolve => {\n sl.drawContribution!.hooks!.completeDraw.tap('outWait', () => {\n sl.drawContribution!.hooks!.completeDraw.taps = sl.drawContribution!.hooks!.completeDraw.taps.filter(\n i => {\n return i.name !== 'outWait';\n }\n );\n resolve(null);\n });\n })\n );\n }\n });\n }\n });\n await Promise.all(promiseList);\n}\n\nexport function boundStroke(bounds: IAABBBounds, halfW: number, miter: boolean, pad = 0) {\n bounds.expand(halfW + (pad / 2 + (miter ? miterAdjustment(miter, halfW) : 0)));\n return bounds;\n}\n\nfunction miterAdjustment(miter: boolean, strokeWidth: number) {\n return miter ? strokeWidth : 0;\n}\n\n// function attachShadow(graphic: Graphic) {\n// graphic.shadowRoot = createShadowRoot(graphic);\n// graphic.addUpdateBoundTag();\n// return graphic.shadowRoot;\n// }\n\n// function detachShadow(graphic: Graphic) {\n// if (graphic.shadowRoot) {\n// graphic.addUpdateBoundTag();\n// graphic.shadowRoot = null;\n// }\n// }\n\nlet NUMBER_TYPE: number = 0;\nexport function genNumberType() {\n return NUMBER_TYPE++;\n}\n\nexport enum TextDirection {\n HORIZONTAL = 0,\n VERTICAL = 1\n}\nexport function verticalLayout(text: string) {\n const nextCharacter: { text: string; direction: TextDirection }[] = [];\n let flag = 0; // 0: 竖排,1: 旋转\n let currStr = '';\n for (let i = 0; i < text.length; i++) {\n if (rotateText(text[i])) {\n if (flag) {\n currStr += text[i];\n } else {\n flag = 1;\n currStr = text[i];\n }\n } else {\n if (flag) {\n nextCharacter.push({\n text: currStr,\n direction: TextDirection.VERTICAL\n });\n currStr = '';\n flag = 0;\n }\n nextCharacter.push({\n text: text[i],\n direction: TextDirection.HORIZONTAL\n });\n }\n }\n\n if (currStr) {\n nextCharacter.push({\n text: currStr,\n direction: TextDirection.VERTICAL\n });\n }\n return nextCharacter;\n}\n\n// ——, ……, (, )\nconst rotateCharList = ['…', '(', ')', '—', '【', '】', '「', '」', '《', '》'];\nconst rotateCharMap = new Map();\nrotateCharList.forEach(c => rotateCharMap.set(c, true));\nconst noRotateCharList = [''];\nconst noRotateCharMap = new Map();\nnoRotateCharList.forEach(c => noRotateCharMap.set(c, true));\n\nfunction rotateText(c: string) {\n if (rotateCharMap.has(c)) {\n return true;\n }\n if (noRotateCharMap.has(c)) {\n return false;\n }\n const cp = c.codePointAt(0);\n let rotate = false;\n // 默认ascii码就旋转\n if (cp < 256) {\n rotate = true;\n }\n return rotate;\n}\n\nexport function xul(str: string | string[]): IRichTextCharacter[] {\n const xmlStr = isArray(str) ? str[0] : str;\n const config: IRichTextCharacter[] = [];\n if (!xmlStr) {\n return config;\n }\n const isXML = XMLValidator.validate(xmlStr, {\n allowBooleanAttributes: true\n });\n if (isXML === true) {\n const parser = new XMLParser({ ignoreAttributes: false });\n const data = parser.parse(xmlStr);\n data.tc &&\n Object.keys(data.tc).forEach(k => {\n if (k === 'text') {\n config.push(parseRTTextXML(data.tc[k]));\n } else {\n config.push(parseRTImageXML(data.tc[k]));\n }\n });\n }\n return config;\n}\n\nfunction parseRTTextXML(str: string): IRichTextCharacter {\n const output: IRichTextCharacter = { text: '' };\n parseCommonXML(str, output);\n const inlineText = str['#text'];\n if (inlineText) {\n output.text = inlineText;\n }\n\n return output;\n}\n\nfunction parseCommonXML(str: string, output: IRichTextCharacter) {\n const attr = str['@_attribute'];\n if (attr) {\n const attrList = attr.split(';');\n attrList.forEach((attrItem: string) => {\n if (!attrItem) {\n return;\n }\n const kv = attrItem.split(':');\n\n if (kv.length === 2) {\n const val = parseFloat(kv[1]);\n output[kv[0].trim()] = isFinite(val) ? val : kv[1].trim();\n } else {\n let val = '';\n for (let i = 1; i < kv.length; i++) {\n if (i > 1) {\n val += ':';\n }\n val += kv[i].trim();\n }\n output[kv[0].trim()] = val;\n }\n });\n }\n}\n\nfunction parseRTImageXML(str: string): IRichTextCharacter {\n const output: IRichTextImageCharacter = { image: '', width: 0, height: 0 };\n parseCommonXML(str, output);\n const image = output.image as string;\n if (image) {\n output.image = (image as any).replaceAll('"', '\"').replaceAll('<', '<').replaceAll('>', '>');\n }\n return output;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/graphic/tools.ts"],"names":[],"mappings":"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","file":"tools.js","sourcesContent":["import { application } from '../application';\nimport type { IGraphic, IGroup, ILayer, IRichTextCharacter, IRichTextImageCharacter, IStage } from '../interface';\nimport { isArray, type IAABBBounds } from '@visactor/vutils';\nimport { XMLValidator, XMLParser } from 'fast-xml-parser';\n\n// 不触发外部的render\nexport function incrementalAddTo(group: IGroup, graphic: IGraphic) {\n group.incrementalAppendChild(graphic);\n // if (group.layer && group.layer.subLayers) {\n // // const subLayer = group.layer.subLayers.get(group._uid);\n // }\n}\n\nexport async function waitForAllSubLayers(stage: IStage) {\n const promiseList: Promise<any>[] = [];\n const layers = stage.getChildren() as ILayer[];\n await new Promise(resolve => {\n application.global.getRequestAnimationFrame()(() => {\n resolve(null);\n });\n });\n layers.forEach(l => {\n if (l.subLayers.size) {\n l.subLayers.forEach(sl => {\n if (sl.drawContribution && sl.drawContribution.hooks && sl.drawContribution.rendering) {\n promiseList.push(\n new Promise(resolve => {\n sl.drawContribution!.hooks!.completeDraw.tap('outWait', () => {\n sl.drawContribution!.hooks!.completeDraw.taps = sl.drawContribution!.hooks!.completeDraw.taps.filter(\n i => {\n return i.name !== 'outWait';\n }\n );\n resolve(null);\n });\n })\n );\n }\n });\n }\n });\n await Promise.all(promiseList);\n}\n\nexport function boundStroke(bounds: IAABBBounds, halfW: number, miter: boolean, pad = 0) {\n bounds.expand(halfW + (pad / 2 + (miter ? miterAdjustment(miter, halfW) : 0)));\n return bounds;\n}\n\nfunction miterAdjustment(miter: boolean, strokeWidth: number) {\n return miter ? strokeWidth : 0;\n}\n\n// function attachShadow(graphic: Graphic) {\n// graphic.shadowRoot = createShadowRoot(graphic);\n// graphic.addUpdateBoundTag();\n// return graphic.shadowRoot;\n// }\n\n// function detachShadow(graphic: Graphic) {\n// if (graphic.shadowRoot) {\n// graphic.addUpdateBoundTag();\n// graphic.shadowRoot = null;\n// }\n// }\n\nlet NUMBER_TYPE: number = 0;\nexport function genNumberType() {\n return NUMBER_TYPE++;\n}\n\nexport enum TextDirection {\n HORIZONTAL = 0,\n VERTICAL = 1\n}\nexport function verticalLayout(text: string) {\n const nextCharacter: { text: string; direction: TextDirection }[] = [];\n let flag = 0; // 0: 竖排,1: 旋转\n let currStr = '';\n for (let i = 0; i < text.length; i++) {\n if (rotateText(text[i])) {\n if (flag) {\n currStr += text[i];\n } else {\n flag = 1;\n currStr = text[i];\n }\n } else {\n if (flag) {\n nextCharacter.push({\n text: currStr,\n direction: TextDirection.VERTICAL\n });\n currStr = '';\n flag = 0;\n }\n nextCharacter.push({\n text: text[i],\n direction: TextDirection.HORIZONTAL\n });\n }\n }\n\n if (currStr) {\n nextCharacter.push({\n text: currStr,\n direction: TextDirection.VERTICAL\n });\n }\n return nextCharacter;\n}\n\n// ——, ……, (, )\nconst rotateCharList = ['…', '(', ')', '—', '【', '】', '「', '」', '《', '》'];\nconst rotateCharMap = new Map();\nrotateCharList.forEach(c => rotateCharMap.set(c, true));\nconst noRotateCharList = [''];\nconst noRotateCharMap = new Map();\nnoRotateCharList.forEach(c => noRotateCharMap.set(c, true));\n\nfunction rotateText(c: string) {\n if (rotateCharMap.has(c)) {\n return true;\n }\n if (noRotateCharMap.has(c)) {\n return false;\n }\n const cp = c.codePointAt(0);\n let rotate = false;\n // 默认ascii码就旋转\n if (cp < 256) {\n rotate = true;\n }\n return rotate;\n}\n\nexport function xul(str: string | string[]): IRichTextCharacter[] {\n const xmlStr = isArray(str) ? str[0] : str;\n const config: IRichTextCharacter[] = [];\n if (!xmlStr) {\n return config;\n }\n const isXML = XMLValidator.validate(xmlStr, {\n allowBooleanAttributes: true\n });\n if (isXML === true) {\n const parser = new XMLParser({ ignoreAttributes: false });\n const data = parser.parse(xmlStr);\n data.tc &&\n Object.keys(data.tc).forEach(k => {\n if (k === 'text') {\n config.push(parseRTTextXML(data.tc[k]));\n } else {\n config.push(parseRTImageXML(data.tc[k]));\n }\n });\n }\n return config;\n}\n\nfunction parseRTTextXML(str: string): IRichTextCharacter {\n const output: IRichTextCharacter = { text: '' };\n parseCommonXML(str, output);\n const inlineText = str['#text'];\n if (inlineText) {\n output.text = inlineText;\n }\n\n return output;\n}\n\nfunction parseCommonXML(str: string, output: IRichTextCharacter) {\n const attr = str['@_attribute'];\n if (attr) {\n const attrList = attr.split(';');\n attrList.forEach((attrItem: string) => {\n if (!attrItem) {\n return;\n }\n const kv = attrItem.split(':');\n\n if (kv.length === 2) {\n const val = parseFloat(kv[1]);\n output[kv[0].trim()] = isFinite(val) ? val : kv[1].trim();\n } else {\n let val = '';\n for (let i = 1; i < kv.length; i++) {\n if (i > 1) {\n val += ':';\n }\n val += kv[i].trim();\n }\n output[kv[0].trim()] = val;\n }\n });\n }\n}\n\nfunction parseRTImageXML(str: string): IRichTextCharacter {\n const output: IRichTextImageCharacter = { image: '', width: 0, height: 0 };\n parseCommonXML(str, output);\n const image = output.image as string;\n if (image) {\n output.image = (image as any).replaceAll('"', '\"').replaceAll('<', '<').replaceAll('>', '>');\n }\n return output;\n}\n"]}
|
package/cjs/graphic/wrap-text.js
CHANGED
|
@@ -13,22 +13,25 @@ class WrapText extends text_1.Text {
|
|
|
13
13
|
}
|
|
14
14
|
updateMultilineAABBBounds(text) {
|
|
15
15
|
var _a, _b, _c;
|
|
16
|
-
const textTheme = (0, theme_1.getTheme)(this).text, {fontFamily: fontFamily = textTheme.fontFamily, textAlign: textAlign = textTheme.textAlign, textBaseline: textBaseline = textTheme.textBaseline, fontSize: fontSize = textTheme.fontSize, lineHeight: lineHeight = this.attribute.lineHeight || this.attribute.fontSize || textTheme.fontSize, ellipsis: ellipsis = textTheme.ellipsis, maxLineWidth: maxLineWidth, stroke: stroke = textTheme.stroke, lineWidth: lineWidth = textTheme.lineWidth, wordBreak: wordBreak = textTheme.wordBreak, heightLimit: heightLimit = 0, lineClamp: lineClamp} = this.attribute;
|
|
16
|
+
const textTheme = (0, theme_1.getTheme)(this).text, {fontFamily: fontFamily = textTheme.fontFamily, textAlign: textAlign = textTheme.textAlign, textBaseline: textBaseline = textTheme.textBaseline, fontSize: fontSize = textTheme.fontSize, lineHeight: lineHeight = this.attribute.lineHeight || this.attribute.fontSize || textTheme.fontSize, ellipsis: ellipsis = textTheme.ellipsis, maxLineWidth: maxLineWidth, stroke: stroke = textTheme.stroke, lineWidth: lineWidth = textTheme.lineWidth, wordBreak: wordBreak = textTheme.wordBreak, fontWeight: fontWeight = textTheme.fontWeight, ignoreBuf: ignoreBuf = textTheme.ignoreBuf, heightLimit: heightLimit = 0, lineClamp: lineClamp} = this.attribute, buf = ignoreBuf ? 0 : 2;
|
|
17
17
|
if (!this.shouldUpdateShape() && (null === (_a = this.cache) || void 0 === _a ? void 0 : _a.layoutData)) {
|
|
18
18
|
const bbox = this.cache.layoutData.bbox;
|
|
19
19
|
return this._AABBBounds.set(bbox.xOffset, bbox.yOffset, bbox.xOffset + bbox.width, bbox.yOffset + bbox.height),
|
|
20
20
|
stroke && this._AABBBounds.expand(lineWidth / 2), this._AABBBounds;
|
|
21
21
|
}
|
|
22
22
|
const textMeasure = application_1.application.graphicUtil.textMeasure, layoutObj = new layout_1.CanvasTextLayout(fontFamily, {
|
|
23
|
-
fontSize: fontSize
|
|
23
|
+
fontSize: fontSize,
|
|
24
|
+
fontWeight: fontWeight,
|
|
25
|
+
fontFamily: fontFamily
|
|
24
26
|
}, textMeasure), lines = text.map((l => l.toString())), linesLayout = [], bboxWH = [ 0, 0 ];
|
|
25
27
|
let lineCountLimit = 1 / 0;
|
|
26
28
|
if (heightLimit > 0 && (lineCountLimit = Math.max(Math.floor(heightLimit / lineHeight), 1)),
|
|
27
29
|
lineClamp && (lineCountLimit = Math.min(lineCountLimit, lineClamp)), "number" == typeof maxLineWidth && maxLineWidth !== 1 / 0) {
|
|
28
30
|
if (maxLineWidth > 0) for (let i = 0; i < lines.length; i++) {
|
|
29
31
|
const str = lines[i];
|
|
32
|
+
let needCut = !0;
|
|
30
33
|
if (i === lineCountLimit - 1) {
|
|
31
|
-
const clip = layoutObj.textMeasure.clipTextWithSuffix(str, layoutObj.textOptions, maxLineWidth, ellipsis,
|
|
34
|
+
const clip = layoutObj.textMeasure.clipTextWithSuffix(str, layoutObj.textOptions, maxLineWidth, ellipsis, !1);
|
|
32
35
|
linesLayout.push({
|
|
33
36
|
str: clip.str,
|
|
34
37
|
width: clip.width
|
|
@@ -36,14 +39,17 @@ class WrapText extends text_1.Text {
|
|
|
36
39
|
break;
|
|
37
40
|
}
|
|
38
41
|
const clip = layoutObj.textMeasure.clipText(str, layoutObj.textOptions, maxLineWidth, "break-word" === wordBreak);
|
|
39
|
-
if ("" !== str && "" === clip.str)
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
if ("" !== str && "" === clip.str) {
|
|
43
|
+
if (ellipsis) {
|
|
44
|
+
const clipEllipsis = layoutObj.textMeasure.clipTextWithSuffix(str, layoutObj.textOptions, maxLineWidth, ellipsis, !1);
|
|
45
|
+
clip.str = null !== (_b = clipEllipsis.str) && void 0 !== _b ? _b : "", clip.width = null !== (_c = clipEllipsis.width) && void 0 !== _c ? _c : 0;
|
|
46
|
+
} else clip.str = "", clip.width = 0;
|
|
47
|
+
needCut = !1;
|
|
48
|
+
}
|
|
43
49
|
if (linesLayout.push({
|
|
44
50
|
str: clip.str,
|
|
45
51
|
width: clip.width
|
|
46
|
-
}), clip.str.length === str.length) ; else {
|
|
52
|
+
}), clip.str.length === str.length) ; else if (needCut) {
|
|
47
53
|
const newStr = str.substring(clip.str.length);
|
|
48
54
|
lines.splice(i + 1, 0, newStr);
|
|
49
55
|
}
|
|
@@ -56,7 +62,7 @@ class WrapText extends text_1.Text {
|
|
|
56
62
|
let width, text, lineWidth = 0;
|
|
57
63
|
for (let i = 0, len = lines.length; i < len; i++) {
|
|
58
64
|
if (i === lineCountLimit - 1) {
|
|
59
|
-
const clip = layoutObj.textMeasure.clipTextWithSuffix(lines[i], layoutObj.textOptions, maxLineWidth, ellipsis,
|
|
65
|
+
const clip = layoutObj.textMeasure.clipTextWithSuffix(lines[i], layoutObj.textOptions, maxLineWidth, ellipsis, !1);
|
|
60
66
|
linesLayout.push({
|
|
61
67
|
str: clip.str,
|
|
62
68
|
width: clip.width
|
|
@@ -71,7 +77,7 @@ class WrapText extends text_1.Text {
|
|
|
71
77
|
}
|
|
72
78
|
bboxWH[0] = lineWidth;
|
|
73
79
|
}
|
|
74
|
-
bboxWH[1] = linesLayout.length * (lineHeight +
|
|
80
|
+
bboxWH[1] = linesLayout.length * (lineHeight + buf);
|
|
75
81
|
const bbox = {
|
|
76
82
|
xOffset: 0,
|
|
77
83
|
yOffset: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/graphic/wrap-text.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAC3C,qEAA4E;AAE5E,gDAA6C;AAC7C,iCAA8B;AAC9B,mCAAmC;AAEnC,MAAM,wBAAwB,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AAO9D,MAAa,QAAS,SAAQ,WAAI;IAGtB,QAAQ;QAChB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,EAAE;YACjB,OAAO,CAAE,IAAc,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAClE;QACD,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;IACrC,CAAC;IAOD,yBAAyB,CAAC,IAAyB;;QACjD,MAAM,SAAS,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QACtC,MAAM,EACJ,UAAU,GAAG,SAAS,CAAC,UAAU,EACjC,SAAS,GAAG,SAAS,CAAC,SAAS,EAC/B,YAAY,GAAG,SAAS,CAAC,YAAY,EACrC,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAC7B,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,EACvF,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAC7B,YAAY,EACZ,MAAM,GAAG,SAAS,CAAC,MAAM,EACzB,SAAS,GAAG,SAAS,CAAC,SAAS,EAC/B,SAAS,GAAG,SAAS,CAAC,SAAS,EAE/B,WAAW,GAAG,CAAC,EACf,SAAS,EACV,GAAG,IAAI,CAAC,SAAS,CAAC;QACnB,MAAM,GAAG,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,UAAU,CAAA,EAAE;YACvD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;YACxC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YACxG,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;aACxC;YACD,OAAO,IAAI,CAAC,WAAW,CAAC;SACzB;QAED,MAAM,WAAW,GAAG,yBAAW,CAAC,WAAW,CAAC,WAAW,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,yBAAgB,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,WAAkB,CAAQ,CAAC;QAG5F,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAa,CAAC;QACtD,MAAM,WAAW,GAAqB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAExC,IAAI,cAAc,GAAG,QAAQ,CAAC;QAC9B,IAAI,WAAW,GAAG,CAAC,EAAE;YACnB,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;SACpE;QACD,IAAI,SAAS,EAAE;YAEb,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;SACtD;QAED,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,QAAQ,EAAE;YAEjE,IAAI,YAAY,GAAG,CAAC,EAAE;gBACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACrC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAW,CAAC;oBAQ/B,IAAI,CAAC,KAAK,cAAc,GAAG,CAAC,EAAE;wBAE5B,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,kBAAkB,CACnD,GAAG,EACH,SAAS,CAAC,WAAW,EACrB,YAAY,EACZ,QAAQ,EACR,SAAS,KAAK,YAAY,CAC3B,CAAC;wBACF,WAAW,CAAC,IAAI,CAAC;4BACf,GAAG,EAAE,IAAI,CAAC,GAAG;4BACb,KAAK,EAAE,IAAI,CAAC,KAAK;yBAClB,CAAC,CAAC;wBACH,MAAM;qBACP;oBAGD,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,QAAQ,CACzC,GAAG,EACH,SAAS,CAAC,WAAW,EACrB,YAAY,EACZ,SAAS,KAAK,YAAY,CAC3B,CAAC;oBACF,IAAI,GAAG,KAAK,EAAE,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE,EAAE;wBACjC,IAAI,QAAQ,EAAE;4BACZ,MAAM,YAAY,GAAG,SAAS,CAAC,WAAW,CAAC,kBAAkB,CAC3D,GAAG,EACH,SAAS,CAAC,WAAW,EACrB,YAAY,EACZ,QAAQ,EACR,SAAS,KAAK,YAAY,CAC3B,CAAC;4BACF,IAAI,CAAC,GAAG,GAAG,MAAA,YAAY,CAAC,GAAG,mCAAI,EAAE,CAAC;4BAClC,IAAI,CAAC,KAAK,GAAG,MAAA,YAAY,CAAC,KAAK,mCAAI,CAAC,CAAC;yBACtC;6BAAM;4BAEL,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;4BACd,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;yBAChB;qBACF;oBAED,WAAW,CAAC,IAAI,CAAC;wBACf,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,KAAK,EAAE,IAAI,CAAC,KAAK;qBAClB,CAAC,CAAC;oBACH,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;qBAEnC;yBAAM;wBACL,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAC9C,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;qBAChC;iBACF;aACF;YAED,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC3B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;SACtB;aAAM;YAEL,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,IAAI,KAAa,CAAC;YAClB,IAAI,IAAY,CAAC;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBAEhD,IAAI,CAAC,KAAK,cAAc,GAAG,CAAC,EAAE;oBAE5B,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,kBAAkB,CACnD,KAAK,CAAC,CAAC,CAAC,EACR,SAAS,CAAC,WAAW,EACrB,YAAY,EACZ,QAAQ,EACR,SAAS,KAAK,YAAY,CAC3B,CAAC;oBACF,WAAW,CAAC,IAAI,CAAC;wBACf,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,KAAK,EAAE,IAAI,CAAC,KAAK;qBAClB,CAAC,CAAC;oBACH,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC5C,MAAM;iBACP;gBAED,IAAI,GAAG,KAAK,CAAC,CAAC,CAAW,CAAC;gBAC1B,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,SAAS,KAAK,YAAY,CAAC,CAAC;gBACxG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBACvC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;aACxC;YACD,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;SACvB;QACD,MAAM,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;QAEpD,MAAM,IAAI,GAAG;YACX,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;SAClB,CAAC;QAEF,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,YAAmB,CAAC,CAAC;QAE3D,MAAM,UAAU,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,YAAmB,EAAE,UAAU,CAAC,CAAC;QAW3G,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QACnC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAExG,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;SACxC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,cAAc,CAAC,IAAc;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxD,MAAM,OAAO,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;gBAChC,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,aAAa,CAAC,GAAW;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxD,MAAM,OAAO,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,GAAG,KAAK,OAAO,EAAE;gBACnB,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;CACF;AAtND,4BAsNC","file":"wrap-text.js","sourcesContent":["import { isArray } from '@visactor/vutils';\nimport { CanvasTextLayout } from '../core/contributions/textMeasure/layout';\nimport type { IWrapTextGraphicAttribute, LayoutItemType } from '../interface';\nimport { application } from '../application';\nimport { Text } from './text';\nimport { getTheme } from './theme';\n\nconst WRAP_TEXT_UPDATE_TAG_KEY = ['heightLimit', 'lineClamp'];\n\n/* WrapText功能\n * 1. 按照宽度限制自动折行或显示省略号(maxLineWidth)\n * 2. 高度限制控制显示内容及省略号(heightLimit)\n * 3. 按照行数限制显示内容及省略号(lineClamp)\n */\nexport class WrapText extends Text {\n declare attribute: IWrapTextGraphicAttribute;\n\n protected _isValid(): boolean {\n const { text } = this.attribute;\n if (isArray(text)) {\n return !(text as any[]).every((t: any) => t == null || t === '');\n }\n return text != null && text !== '';\n }\n\n /**\n * 计算多行文字的bounds,缓存每行文字的布局位置\n * 自动折行params.text是数组,因此只重新updateMultilineAABBBounds\n * @param text\n */\n updateMultilineAABBBounds(text: (number | string)[]) {\n const textTheme = getTheme(this).text;\n const {\n fontFamily = textTheme.fontFamily,\n textAlign = textTheme.textAlign,\n textBaseline = textTheme.textBaseline,\n fontSize = textTheme.fontSize,\n lineHeight = this.attribute.lineHeight || this.attribute.fontSize || textTheme.fontSize,\n ellipsis = textTheme.ellipsis,\n maxLineWidth,\n stroke = textTheme.stroke,\n lineWidth = textTheme.lineWidth,\n wordBreak = textTheme.wordBreak,\n // widthLimit,\n heightLimit = 0,\n lineClamp\n } = this.attribute;\n const buf = 2;\n if (!this.shouldUpdateShape() && this.cache?.layoutData) {\n const bbox = this.cache.layoutData.bbox;\n this._AABBBounds.set(bbox.xOffset, bbox.yOffset, bbox.xOffset + bbox.width, bbox.yOffset + bbox.height);\n if (stroke) {\n this._AABBBounds.expand(lineWidth / 2);\n }\n return this._AABBBounds;\n }\n\n const textMeasure = application.graphicUtil.textMeasure;\n const layoutObj = new CanvasTextLayout(fontFamily, { fontSize }, textMeasure as any) as any;\n\n // layoutObj内逻辑\n const lines = text.map(l => l.toString()) as string[];\n const linesLayout: LayoutItemType[] = [];\n const bboxWH: [number, number] = [0, 0];\n\n let lineCountLimit = Infinity;\n if (heightLimit > 0) {\n lineCountLimit = Math.max(Math.floor(heightLimit / lineHeight), 1);\n }\n if (lineClamp) {\n // 处理行数限制\n lineCountLimit = Math.min(lineCountLimit, lineClamp);\n }\n\n if (typeof maxLineWidth === 'number' && maxLineWidth !== Infinity) {\n // widthLimit > 0\n if (maxLineWidth > 0) {\n for (let i = 0; i < lines.length; i++) {\n const str = lines[i] as string;\n // // 测量当前行宽度\n // width = Math.min(\n // layoutObj.textMeasure.measureTextWidth(str, layoutObj.textOptions),\n // maxLineWidth\n // );\n\n // 判断是否超过高度限制\n if (i === lineCountLimit - 1) {\n // 当前行为最后一行\n const clip = layoutObj.textMeasure.clipTextWithSuffix(\n str,\n layoutObj.textOptions,\n maxLineWidth,\n ellipsis,\n wordBreak === 'break-word'\n );\n linesLayout.push({\n str: clip.str,\n width: clip.width\n });\n break; // 不处理后续行\n }\n\n // 测量截断位置\n const clip = layoutObj.textMeasure.clipText(\n str,\n layoutObj.textOptions,\n maxLineWidth,\n wordBreak === 'break-word'\n );\n if (str !== '' && clip.str === '') {\n if (ellipsis) {\n const clipEllipsis = layoutObj.textMeasure.clipTextWithSuffix(\n str,\n layoutObj.textOptions,\n maxLineWidth,\n ellipsis,\n wordBreak === 'break-word'\n );\n clip.str = clipEllipsis.str ?? '';\n clip.width = clipEllipsis.width ?? 0;\n } else {\n // 宽度限制不足一个字符,不显示\n clip.str = '';\n clip.width = 0;\n }\n }\n\n linesLayout.push({\n str: clip.str,\n width: clip.width\n });\n if (clip.str.length === str.length) {\n // 不需要截断\n } else {\n const newStr = str.substring(clip.str.length);\n lines.splice(i + 1, 0, newStr);\n }\n }\n }\n // bboxWH[0] = maxLineWidth;\n let maxWidth = 0;\n linesLayout.forEach(layout => {\n maxWidth = Math.max(maxWidth, layout.width);\n });\n bboxWH[0] = maxWidth;\n } else {\n // 使用所有行中最长的作为lineWidth\n let lineWidth = 0;\n let width: number;\n let text: string;\n for (let i = 0, len = lines.length; i < len; i++) {\n // 判断是否超过高度限制\n if (i === lineCountLimit - 1) {\n // 当前行为最后一行\n const clip = layoutObj.textMeasure.clipTextWithSuffix(\n lines[i],\n layoutObj.textOptions,\n maxLineWidth,\n ellipsis,\n wordBreak === 'break-word'\n );\n linesLayout.push({\n str: clip.str,\n width: clip.width\n });\n lineWidth = Math.max(lineWidth, clip.width);\n break; // 不处理后续行\n }\n\n text = lines[i] as string;\n width = layoutObj.textMeasure.measureTextWidth(text, layoutObj.textOptions, wordBreak === 'break-word');\n lineWidth = Math.max(lineWidth, width);\n linesLayout.push({ str: text, width });\n }\n bboxWH[0] = lineWidth;\n }\n bboxWH[1] = linesLayout.length * (lineHeight + buf);\n\n const bbox = {\n xOffset: 0,\n yOffset: 0,\n width: bboxWH[0],\n height: bboxWH[1]\n };\n\n layoutObj.LayoutBBox(bbox, textAlign, textBaseline as any);\n\n const layoutData = layoutObj.layoutWithBBox(bbox, linesLayout, textAlign, textBaseline as any, lineHeight);\n\n // const layoutData = layoutObj.GetLayoutByLines(\n // text,\n // textAlign,\n // textBaseline as any,\n // lineHeight,\n // ellipsis === true ? (DefaultTextAttribute.ellipsis as string) : ellipsis || undefined,\n // maxLineWidth\n // );\n // const { bbox } = layoutData;\n this.cache.layoutData = layoutData;\n this.clearUpdateShapeTag();\n this._AABBBounds.set(bbox.xOffset, bbox.yOffset, bbox.xOffset + bbox.width, bbox.yOffset + bbox.height);\n\n if (stroke) {\n this._AABBBounds.expand(lineWidth / 2);\n }\n\n return this._AABBBounds;\n }\n\n needUpdateTags(keys: string[]): boolean {\n for (let i = 0; i < WRAP_TEXT_UPDATE_TAG_KEY.length; i++) {\n const attrKey = WRAP_TEXT_UPDATE_TAG_KEY[i];\n if (keys.indexOf(attrKey) !== -1) {\n return true;\n }\n }\n return super.needUpdateTags(keys);\n }\n\n needUpdateTag(key: string): boolean {\n for (let i = 0; i < WRAP_TEXT_UPDATE_TAG_KEY.length; i++) {\n const attrKey = WRAP_TEXT_UPDATE_TAG_KEY[i];\n if (key === attrKey) {\n return true;\n }\n }\n return super.needUpdateTag(key);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/graphic/wrap-text.ts"],"names":[],"mappings":";;;AAAA,6CAA2C;AAC3C,qEAA4E;AAE5E,gDAA6C;AAC7C,iCAA8B;AAC9B,mCAAmC;AAEnC,MAAM,wBAAwB,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;AAO9D,MAAa,QAAS,SAAQ,WAAI;IAGtB,QAAQ;QAChB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,IAAA,gBAAO,EAAC,IAAI,CAAC,EAAE;YACjB,OAAO,CAAE,IAAc,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SAClE;QACD,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;IACrC,CAAC;IAOD,yBAAyB,CAAC,IAAyB;;QACjD,MAAM,SAAS,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QACtC,MAAM,EACJ,UAAU,GAAG,SAAS,CAAC,UAAU,EACjC,SAAS,GAAG,SAAS,CAAC,SAAS,EAC/B,YAAY,GAAG,SAAS,CAAC,YAAY,EACrC,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAC7B,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,EACvF,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAC7B,YAAY,EACZ,MAAM,GAAG,SAAS,CAAC,MAAM,EACzB,SAAS,GAAG,SAAS,CAAC,SAAS,EAC/B,SAAS,GAAG,SAAS,CAAC,SAAS,EAC/B,UAAU,GAAG,SAAS,CAAC,UAAU,EAEjC,SAAS,GAAG,SAAS,CAAC,SAAS,EAC/B,WAAW,GAAG,CAAC,EACf,SAAS,EACV,GAAG,IAAI,CAAC,SAAS,CAAC;QACnB,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAI,MAAA,IAAI,CAAC,KAAK,0CAAE,UAAU,CAAA,EAAE;YACvD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;YACxC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YACxG,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;aACxC;YACD,OAAO,IAAI,CAAC,WAAW,CAAC;SACzB;QAED,MAAM,WAAW,GAAG,yBAAW,CAAC,WAAW,CAAC,WAAW,CAAC;QACxD,MAAM,SAAS,GAAG,IAAI,yBAAgB,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,WAAkB,CAAQ,CAAC;QAGpH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAa,CAAC;QACtD,MAAM,WAAW,GAAqB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAExC,IAAI,cAAc,GAAG,QAAQ,CAAC;QAC9B,IAAI,WAAW,GAAG,CAAC,EAAE;YACnB,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;SACpE;QACD,IAAI,SAAS,EAAE;YAEb,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;SACtD;QAED,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,QAAQ,EAAE;YAEjE,IAAI,YAAY,GAAG,CAAC,EAAE;gBACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACrC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAW,CAAC;oBAC/B,IAAI,OAAO,GAAG,IAAI,CAAC;oBAQnB,IAAI,CAAC,KAAK,cAAc,GAAG,CAAC,EAAE;wBAE5B,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,kBAAkB,CACnD,GAAG,EACH,SAAS,CAAC,WAAW,EACrB,YAAY,EACZ,QAAQ,EACR,KAAK,CACN,CAAC;wBACF,WAAW,CAAC,IAAI,CAAC;4BACf,GAAG,EAAE,IAAI,CAAC,GAAG;4BACb,KAAK,EAAE,IAAI,CAAC,KAAK;yBAClB,CAAC,CAAC;wBACH,MAAM;qBACP;oBAGD,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,QAAQ,CACzC,GAAG,EACH,SAAS,CAAC,WAAW,EACrB,YAAY,EACZ,SAAS,KAAK,YAAY,CAC3B,CAAC;oBACF,IAAI,GAAG,KAAK,EAAE,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE,EAAE;wBACjC,IAAI,QAAQ,EAAE;4BACZ,MAAM,YAAY,GAAG,SAAS,CAAC,WAAW,CAAC,kBAAkB,CAC3D,GAAG,EACH,SAAS,CAAC,WAAW,EACrB,YAAY,EACZ,QAAQ,EACR,KAAK,CACN,CAAC;4BACF,IAAI,CAAC,GAAG,GAAG,MAAA,YAAY,CAAC,GAAG,mCAAI,EAAE,CAAC;4BAClC,IAAI,CAAC,KAAK,GAAG,MAAA,YAAY,CAAC,KAAK,mCAAI,CAAC,CAAC;yBACtC;6BAAM;4BAEL,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;4BACd,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;yBAChB;wBACD,OAAO,GAAG,KAAK,CAAC;qBACjB;oBAED,WAAW,CAAC,IAAI,CAAC;wBACf,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,KAAK,EAAE,IAAI,CAAC,KAAK;qBAClB,CAAC,CAAC;oBACH,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;qBAEnC;yBAAM,IAAI,OAAO,EAAE;wBAClB,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAC9C,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;qBAChC;iBACF;aACF;YAED,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAC3B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;SACtB;aAAM;YAEL,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,IAAI,KAAa,CAAC;YAClB,IAAI,IAAY,CAAC;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;gBAEhD,IAAI,CAAC,KAAK,cAAc,GAAG,CAAC,EAAE;oBAE5B,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,kBAAkB,CACnD,KAAK,CAAC,CAAC,CAAC,EACR,SAAS,CAAC,WAAW,EACrB,YAAY,EACZ,QAAQ,EACR,KAAK,CACN,CAAC;oBACF,WAAW,CAAC,IAAI,CAAC;wBACf,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,KAAK,EAAE,IAAI,CAAC,KAAK;qBAClB,CAAC,CAAC;oBACH,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC5C,MAAM;iBACP;gBAED,IAAI,GAAG,KAAK,CAAC,CAAC,CAAW,CAAC;gBAC1B,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,WAAW,EAAE,SAAS,KAAK,YAAY,CAAC,CAAC;gBACxG,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBACvC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;aACxC;YACD,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;SACvB;QACD,MAAM,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC;QAEpD,MAAM,IAAI,GAAG;YACX,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YAChB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;SAClB,CAAC;QAEF,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,YAAmB,CAAC,CAAC;QAE3D,MAAM,UAAU,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,YAAmB,EAAE,UAAU,CAAC,CAAC;QAW3G,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QACnC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAExG,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;SACxC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,cAAc,CAAC,IAAc;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxD,MAAM,OAAO,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;gBAChC,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,aAAa,CAAC,GAAW;QACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,wBAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxD,MAAM,OAAO,GAAG,wBAAwB,CAAC,CAAC,CAAC,CAAC;YAC5C,IAAI,GAAG,KAAK,OAAO,EAAE;gBACnB,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;CACF;AA1ND,4BA0NC","file":"wrap-text.js","sourcesContent":["import { isArray } from '@visactor/vutils';\nimport { CanvasTextLayout } from '../core/contributions/textMeasure/layout';\nimport type { IWrapTextGraphicAttribute, LayoutItemType } from '../interface';\nimport { application } from '../application';\nimport { Text } from './text';\nimport { getTheme } from './theme';\n\nconst WRAP_TEXT_UPDATE_TAG_KEY = ['heightLimit', 'lineClamp'];\n\n/* WrapText功能\n * 1. 按照宽度限制自动折行或显示省略号(maxLineWidth)\n * 2. 高度限制控制显示内容及省略号(heightLimit)\n * 3. 按照行数限制显示内容及省略号(lineClamp)\n */\nexport class WrapText extends Text {\n declare attribute: IWrapTextGraphicAttribute;\n\n protected _isValid(): boolean {\n const { text } = this.attribute;\n if (isArray(text)) {\n return !(text as any[]).every((t: any) => t == null || t === '');\n }\n return text != null && text !== '';\n }\n\n /**\n * 计算多行文字的bounds,缓存每行文字的布局位置\n * 自动折行params.text是数组,因此只重新updateMultilineAABBBounds\n * @param text\n */\n updateMultilineAABBBounds(text: (number | string)[]) {\n const textTheme = getTheme(this).text;\n const {\n fontFamily = textTheme.fontFamily,\n textAlign = textTheme.textAlign,\n textBaseline = textTheme.textBaseline,\n fontSize = textTheme.fontSize,\n lineHeight = this.attribute.lineHeight || this.attribute.fontSize || textTheme.fontSize,\n ellipsis = textTheme.ellipsis,\n maxLineWidth,\n stroke = textTheme.stroke,\n lineWidth = textTheme.lineWidth,\n wordBreak = textTheme.wordBreak,\n fontWeight = textTheme.fontWeight,\n // widthLimit,\n ignoreBuf = textTheme.ignoreBuf,\n heightLimit = 0,\n lineClamp\n } = this.attribute;\n const buf = ignoreBuf ? 0 : 2;\n if (!this.shouldUpdateShape() && this.cache?.layoutData) {\n const bbox = this.cache.layoutData.bbox;\n this._AABBBounds.set(bbox.xOffset, bbox.yOffset, bbox.xOffset + bbox.width, bbox.yOffset + bbox.height);\n if (stroke) {\n this._AABBBounds.expand(lineWidth / 2);\n }\n return this._AABBBounds;\n }\n\n const textMeasure = application.graphicUtil.textMeasure;\n const layoutObj = new CanvasTextLayout(fontFamily, { fontSize, fontWeight, fontFamily }, textMeasure as any) as any;\n\n // layoutObj内逻辑\n const lines = text.map(l => l.toString()) as string[];\n const linesLayout: LayoutItemType[] = [];\n const bboxWH: [number, number] = [0, 0];\n\n let lineCountLimit = Infinity;\n if (heightLimit > 0) {\n lineCountLimit = Math.max(Math.floor(heightLimit / lineHeight), 1);\n }\n if (lineClamp) {\n // 处理行数限制\n lineCountLimit = Math.min(lineCountLimit, lineClamp);\n }\n\n if (typeof maxLineWidth === 'number' && maxLineWidth !== Infinity) {\n // widthLimit > 0\n if (maxLineWidth > 0) {\n for (let i = 0; i < lines.length; i++) {\n const str = lines[i] as string;\n let needCut = true;\n // // 测量当前行宽度\n // width = Math.min(\n // layoutObj.textMeasure.measureTextWidth(str, layoutObj.textOptions),\n // maxLineWidth\n // );\n\n // 判断是否超过高度限制\n if (i === lineCountLimit - 1) {\n // 当前行为最后一行\n const clip = layoutObj.textMeasure.clipTextWithSuffix(\n str,\n layoutObj.textOptions,\n maxLineWidth,\n ellipsis,\n false\n );\n linesLayout.push({\n str: clip.str,\n width: clip.width\n });\n break; // 不处理后续行\n }\n\n // 测量截断位置\n const clip = layoutObj.textMeasure.clipText(\n str,\n layoutObj.textOptions,\n maxLineWidth,\n wordBreak === 'break-word'\n );\n if (str !== '' && clip.str === '') {\n if (ellipsis) {\n const clipEllipsis = layoutObj.textMeasure.clipTextWithSuffix(\n str,\n layoutObj.textOptions,\n maxLineWidth,\n ellipsis,\n false\n );\n clip.str = clipEllipsis.str ?? '';\n clip.width = clipEllipsis.width ?? 0;\n } else {\n // 宽度限制不足一个字符,不显示\n clip.str = '';\n clip.width = 0;\n }\n needCut = false;\n }\n\n linesLayout.push({\n str: clip.str,\n width: clip.width\n });\n if (clip.str.length === str.length) {\n // 不需要截断\n } else if (needCut) {\n const newStr = str.substring(clip.str.length);\n lines.splice(i + 1, 0, newStr);\n }\n }\n }\n // bboxWH[0] = maxLineWidth;\n let maxWidth = 0;\n linesLayout.forEach(layout => {\n maxWidth = Math.max(maxWidth, layout.width);\n });\n bboxWH[0] = maxWidth;\n } else {\n // 使用所有行中最长的作为lineWidth\n let lineWidth = 0;\n let width: number;\n let text: string;\n for (let i = 0, len = lines.length; i < len; i++) {\n // 判断是否超过高度限制\n if (i === lineCountLimit - 1) {\n // 当前行为最后一行\n const clip = layoutObj.textMeasure.clipTextWithSuffix(\n lines[i],\n layoutObj.textOptions,\n maxLineWidth,\n ellipsis,\n false\n );\n linesLayout.push({\n str: clip.str,\n width: clip.width\n });\n lineWidth = Math.max(lineWidth, clip.width);\n break; // 不处理后续行\n }\n\n text = lines[i] as string;\n width = layoutObj.textMeasure.measureTextWidth(text, layoutObj.textOptions, wordBreak === 'break-word');\n lineWidth = Math.max(lineWidth, width);\n linesLayout.push({ str: text, width });\n }\n bboxWH[0] = lineWidth;\n }\n bboxWH[1] = linesLayout.length * (lineHeight + buf);\n\n const bbox = {\n xOffset: 0,\n yOffset: 0,\n width: bboxWH[0],\n height: bboxWH[1]\n };\n\n layoutObj.LayoutBBox(bbox, textAlign, textBaseline as any);\n\n const layoutData = layoutObj.layoutWithBBox(bbox, linesLayout, textAlign, textBaseline as any, lineHeight);\n\n // const layoutData = layoutObj.GetLayoutByLines(\n // text,\n // textAlign,\n // textBaseline as any,\n // lineHeight,\n // ellipsis === true ? (DefaultTextAttribute.ellipsis as string) : ellipsis || undefined,\n // maxLineWidth\n // );\n // const { bbox } = layoutData;\n this.cache.layoutData = layoutData;\n this.clearUpdateShapeTag();\n this._AABBBounds.set(bbox.xOffset, bbox.yOffset, bbox.xOffset + bbox.width, bbox.yOffset + bbox.height);\n\n if (stroke) {\n this._AABBBounds.expand(lineWidth / 2);\n }\n\n return this._AABBBounds;\n }\n\n needUpdateTags(keys: string[]): boolean {\n for (let i = 0; i < WRAP_TEXT_UPDATE_TAG_KEY.length; i++) {\n const attrKey = WRAP_TEXT_UPDATE_TAG_KEY[i];\n if (keys.indexOf(attrKey) !== -1) {\n return true;\n }\n }\n return super.needUpdateTags(keys);\n }\n\n needUpdateTag(key: string): boolean {\n for (let i = 0; i < WRAP_TEXT_UPDATE_TAG_KEY.length; i++) {\n const attrKey = WRAP_TEXT_UPDATE_TAG_KEY[i];\n if (key === attrKey) {\n return true;\n }\n }\n return super.needUpdateTag(key);\n }\n}\n"]}
|
package/cjs/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import 'core-js/proposals/reflect-metadata';
|
|
2
2
|
import './modules';
|
|
3
|
-
export declare const version = "0.15.0-alpha.
|
|
3
|
+
export declare const version = "0.15.0-alpha.21";
|
|
4
4
|
export * from './container';
|
|
5
5
|
export * from './core/global';
|
|
6
6
|
export * from './graphic';
|
|
@@ -38,6 +38,7 @@ export * from './common/split-path';
|
|
|
38
38
|
export * from './common/enums';
|
|
39
39
|
export * from './common/generator';
|
|
40
40
|
export * from './plugins/constants';
|
|
41
|
+
export * from './allocator/matrix-allocate';
|
|
41
42
|
export * from './animate/default-ticker';
|
|
42
43
|
export { wrapCanvas, wrapContext } from './canvas/util';
|
|
43
44
|
export * from './jsx';
|
package/cjs/index.js
CHANGED
|
@@ -18,7 +18,7 @@ var __createBinding = this && this.__createBinding || (Object.create ? function(
|
|
|
18
18
|
Object.defineProperty(exports, "__esModule", {
|
|
19
19
|
value: !0
|
|
20
20
|
}), exports.wrapContext = exports.wrapCanvas = exports.version = void 0, require("core-js/proposals/reflect-metadata"),
|
|
21
|
-
require("./modules"), exports.version = "0.15.0-alpha.
|
|
21
|
+
require("./modules"), exports.version = "0.15.0-alpha.21", __exportStar(require("./container"), exports),
|
|
22
22
|
__exportStar(require("./core/global"), exports), __exportStar(require("./graphic"), exports),
|
|
23
23
|
__exportStar(require("./modules"), exports), __exportStar(require("./create"), exports),
|
|
24
24
|
__exportStar(require("./event"), exports), __exportStar(require("./interface"), exports),
|
|
@@ -37,7 +37,7 @@ __exportStar(require("./common/render-area"), exports), __exportStar(require("./
|
|
|
37
37
|
__exportStar(require("./common/sort"), exports), __exportStar(require("./common/morphing-utils"), exports),
|
|
38
38
|
__exportStar(require("./common/split-path"), exports), __exportStar(require("./common/enums"), exports),
|
|
39
39
|
__exportStar(require("./common/generator"), exports), __exportStar(require("./plugins/constants"), exports),
|
|
40
|
-
__exportStar(require("./animate/default-ticker"), exports);
|
|
40
|
+
__exportStar(require("./allocator/matrix-allocate"), exports), __exportStar(require("./animate/default-ticker"), exports);
|
|
41
41
|
|
|
42
42
|
var util_1 = require("./canvas/util");
|
|
43
43
|
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8CAA4C;AAC5C,qBAAmB;AAGN,QAAA,OAAO,GAAG,iBAAiB,CAAC;AAEzC,8CAA4B;AAC5B,gDAA8B;AAC9B,4CAA0B;AAC1B,4CAA0B;AAC1B,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,2CAAyB;AACzB,4EAA0D;AAC1D,2CAAyB;AACzB,yCAAuB;AACvB,2CAAyB;AACzB,yCAAuB;AACvB,4CAA0B;AAC1B,2DAAyC;AAGzC,gDAA8B;AAC9B,wDAAsC;AACtC,0DAAwC;AACxC,uDAAqC;AACrC,yDAAuC;AACvC,mDAAiC;AACjC,wDAAsC;AACtC,iEAA+C;AAC/C,qDAAmC;AACnC,iDAA+B;AAC/B,qDAAmC;AACnC,sDAAoC;AAEpC,oDAAkC;AAClC,wDAAsC;AACtC,uDAAqC;AACrC,+DAA6C;AAC7C,gDAA8B;AAC9B,0DAAwC;AACxC,sDAAoC;AACpC,iDAA+B;AAC/B,qDAAmC;AACnC,sDAAoC;AACpC,8DAA4C;AAE5C,2DAAyC;AACzC,sCAAwD;AAA/C,kGAAA,UAAU,OAAA;AAAE,mGAAA,WAAW,OAAA;AAChC,wCAAsB","file":"index.js","sourcesContent":["import 'core-js/proposals/reflect-metadata';\nimport './modules';\n\n// 导出版本号\nexport const version = \"0.15.0-alpha.21\";\n\nexport * from './container';\nexport * from './core/global';\nexport * from './graphic';\nexport * from './modules';\nexport * from './create';\nexport * from './event';\nexport * from './interface';\nexport * from './render';\nexport * from './render/contributions/render/base-render';\nexport * from './canvas';\nexport * from './core';\nexport * from './picker';\nexport * from './kits';\nexport * from './animate';\nexport * from './resource-loader/loader';\n\n/* export common */\nexport * from './common/text';\nexport * from './common/bezier-utils';\nexport * from './common/bounds-context';\nexport * from './common/seg-context';\nexport * from './common/custom-path2d';\nexport * from './common/segment';\nexport * from './common/canvas-utils';\nexport * from './common/contribution-provider';\nexport * from './common/generator';\nexport * from './common/utils';\nexport * from './common/shape/arc';\nexport * from './common/shape/rect';\n\nexport * from './common/path-svg';\nexport * from './common/render-curve';\nexport * from './common/render-area';\nexport * from './common/render-command-list';\nexport * from './common/sort';\nexport * from './common/morphing-utils';\nexport * from './common/split-path';\nexport * from './common/enums';\nexport * from './common/generator';\nexport * from './plugins/constants';\nexport * from './allocator/matrix-allocate';\n\nexport * from './animate/default-ticker';\nexport { wrapCanvas, wrapContext } from './canvas/util';\nexport * from './jsx';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../src/interface/allocator.ts"],"names":[],"mappings":"","file":"allocator.js","sourcesContent":["import type { IMatrix, mat4 } from '@visactor/vutils';\nimport type { ICanvas } from './canvas';\nimport type { IRect } from './graphic/rect';\nimport type { IArc } from './graphic/arc';\nimport type { IArea } from './graphic/area';\nimport type { ICircle } from './graphic/circle';\nimport type { ILine } from './graphic/line';\nimport type { IPath } from './graphic/path';\nimport type { ISymbol } from './graphic/symbol';\nimport type { IText } from './graphic/text';\n\nexport interface IAllocate<T> {\n allocate: (...d: any) => T;\n allocateByObj: (obj: T) => T;\n free: (d: T) => void;\n length: number;\n}\n\nexport type ICanvasAllocate = IAllocate<ICanvas>;\nexport type IRectAllocate = IAllocate<IRect>;\nexport type IArcAllocate = IAllocate<IArc>;\nexport type IAreaAllocate = IAllocate<IArea>;\nexport type ICircleAllocate = IAllocate<ICircle>;\nexport type ILineAllocate = IAllocate<ILine>;\nexport type IPathAllocate = IAllocate<IPath>;\nexport type ISymbolAllocate = IAllocate<ISymbol>;\nexport type ITextAllocate = IAllocate<IText>;\n\nexport type IMatrixAllocate = IAllocate<IMatrix>;\nexport type IMat4Allocate = IAllocate<mat4>;\n"]}
|
|
@@ -101,6 +101,7 @@ export interface IAnimate {
|
|
|
101
101
|
_onRemove?: (() => void)[];
|
|
102
102
|
getStartProps: () => Record<string, any>;
|
|
103
103
|
getEndProps: () => Record<string, any>;
|
|
104
|
+
setTimeline: (timeline: ITimeline) => void;
|
|
104
105
|
bind: (target: IAnimateTarget) => this;
|
|
105
106
|
to: (props: Record<string, any>, duration: number, easing: EasingType, params?: IStepConfig) => this;
|
|
106
107
|
from: (props: Record<string, any>, duration: number, easing: EasingType, params?: IStepConfig) => this;
|
|
@@ -157,7 +158,7 @@ export interface ITimeline {
|
|
|
157
158
|
id: number;
|
|
158
159
|
animateCount: number;
|
|
159
160
|
addAnimate: (animate: IAnimate) => void;
|
|
160
|
-
removeAnimate: (animate: IAnimate) => void;
|
|
161
|
+
removeAnimate: (animate: IAnimate, release?: boolean) => void;
|
|
161
162
|
tick: (delta: number) => void;
|
|
162
163
|
clear: () => void;
|
|
163
164
|
pause: () => void;
|
|
@@ -186,4 +187,5 @@ export interface ITicker {
|
|
|
186
187
|
resume: () => boolean;
|
|
187
188
|
start: (force?: boolean) => boolean;
|
|
188
189
|
stop: () => void;
|
|
190
|
+
addTimeline: (timeline: ITimeline) => void;
|
|
189
191
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/interface/animate.ts"],"names":[],"mappings":"","file":"animate.js","sourcesContent":["import type { AnimateMode, AnimateStatus, AnimateStepType } from '../common/enums';\nimport type { Releaseable } from './common';\nimport type { IGraphic } from './graphic';\n\n// export type EasingType = (...args: any) => any;\n\nexport declare class Easing {\n static linear(t: number): number;\n static none(): typeof Easing.linear;\n /**\n * 获取缓动函数,amount指示这个缓动函数的插值方式\n * @param amount\n * @returns\n */\n static get(amount: number): (t: number) => number;\n static getPowIn(pow: number): (t: number) => number;\n static getPowOut(pow: number): (t: number) => number;\n static getPowInOut(pow: number): (t: number) => number;\n static quadIn: (t: number) => number;\n static quadOut: (t: number) => number;\n static quadInOut: (t: number) => number;\n static cubicIn: (t: number) => number;\n static cubicOut: (t: number) => number;\n static cubicInOut: (t: number) => number;\n static quartIn: (t: number) => number;\n static quartOut: (t: number) => number;\n static quartInOut: (t: number) => number;\n static quintIn: (t: number) => number;\n static quintOut: (t: number) => number;\n static quintInOut: (t: number) => number;\n static getBackIn(amount: number): (t: number) => number;\n static getBackOut(amount: number): (t: number) => number;\n static getBackInOut(amount: number): (t: number) => number;\n static backIn: (t: number) => number;\n static backOut: (t: number) => number;\n static backInOut: (t: number) => number;\n static circIn(t: number): number;\n static circOut(t: number): number;\n static circInOut(t: number): number;\n static bounceOut(t: number): number;\n static bounceIn(t: number): number;\n static bounceInOut(t: number): number;\n static getElasticIn(amplitude: number, period: number): (t: number) => number;\n static getElasticOut(amplitude: number, period: number): (t: number) => number;\n static getElasticInOut(amplitude: number, period: number): (t: number) => number;\n static elasticIn: (t: number) => number;\n static elasticOut: (t: number) => number;\n static elasticInOut: (t: number) => number;\n}\n\n// timeline管理一堆的animate,多个timeline互不影响\n// timeline主要作用是基于layer层面的整体管理\n// 每个layer默认带有一个timeline\nexport interface Timeline {\n AnimateList: IAnimate[];\n}\n\ntype IStopType = 'end' | 'start' | 'current';\n\n// TODO: 提供options配置可序列化\ninterface AnimateSpecItem {\n type: 'to' | 'delay' | 'stop' | 'any';\n params: any[];\n}\n\nexport type EasingTypeStr =\n | 'linear'\n | 'quadIn'\n | 'quadOut'\n | 'quadInOut'\n | 'quadInOut'\n | 'cubicIn'\n | 'cubicOut'\n | 'cubicInOut'\n | 'quartIn'\n | 'quartOut'\n | 'quartInOut'\n | 'quintIn'\n | 'quintOut'\n | 'quintInOut'\n | 'backIn'\n | 'backOut'\n | 'backInOut'\n | 'circIn'\n | 'circOut'\n | 'circInOut'\n | 'bounceOut'\n | 'bounceIn'\n | 'bounceInOut'\n | 'elasticIn'\n | 'elasticOut'\n | 'elasticInOut'\n | 'sineIn'\n | 'sineOut'\n | 'sineInOut'\n | 'expoIn'\n | 'expoOut'\n | 'expoInOut'\n | '';\nexport type EasingTypeFunc = (t: number) => number;\n\nexport type EasingType = EasingTypeStr | EasingTypeFunc;\n\nexport type IAnimateStepType = keyof typeof AnimateStepType;\n\nexport interface IStep {\n type: IAnimateStepType;\n prev?: IStep;\n // 持续时间\n duration: number;\n // 在animate中的位置\n position: number;\n next?: IStep;\n props?: any;\n parsedProps?: any;\n propKeys?: string[];\n easing?: EasingTypeFunc;\n customAnimate?: ICustomAnimate;\n\n append: (step: IStep) => void;\n getLastProps: () => any;\n}\n\nexport interface IStepConfig {\n tempProps?: boolean; // props为临时props,可以直接使用不用拷贝\n noPreventAttrs?: boolean;\n}\n\nexport interface IAnimateTarget {\n onAnimateBind?: (animte: IAnimate | ISubAnimate) => void;\n // 添加动画step的时候调用\n onAddStep?: (step: IStep) => void;\n // step时调用\n onStep: (subAnimate: ISubAnimate, animate: IAnimate, step: IStep, ratio: number, end: boolean) => void;\n // 插值函数\n stepInterpolate: (\n subAnimate: ISubAnimate,\n animate: IAnimate,\n nextAttributes: Record<string, any>,\n step: IStep,\n ratio: number,\n end: boolean,\n nextProps: Record<string, any>,\n lastProps?: Record<string, any>,\n nextParsedProps?: any,\n propKeys?: string[]\n ) => void;\n // 获取属性\n getComputedAttribute: (name: string) => any;\n // 获取默认属性\n getDefaultAttribute: (name: string) => any;\n onStop: (props?: Record<string, any>) => void;\n animates: Map<string | number, IAnimate>;\n [key: string]: any;\n}\n\nexport interface ICustomAnimate {\n duration: number;\n easing: EasingType;\n step?: IStep;\n mode?: AnimateMode;\n\n bind: (target: IAnimateTarget, subAni: ISubAnimate) => void;\n // 在第一次调用的时候触发\n onBind: () => void;\n // 第一次执行的时候调用\n onFirstRun: () => void;\n // 开始执行的时候调用(如果有循环,那每个周期都会调用)\n onStart: () => void;\n // 结束执行的时候调用(如果有循环,那每个周期都会调用)\n onEnd: () => void;\n onUpdate: (end: boolean, ratio: number, out: Record<string, any>) => void;\n update: (end: boolean, ratio: number, out: Record<string, any>) => void;\n getEndProps: () => Record<string, any> | void;\n getFromProps: () => Record<string, any> | void;\n getMergedEndProps: () => Record<string, any> | void;\n}\n\n// 每一个animate绑定一个graphic,用于描述这个graphic的动画内容\n// 在timeline层面,animate相当于是一段timeslice\nexport interface IAnimate {\n readonly id: string | number;\n status: AnimateStatus;\n\n interpolateFunc: (key: string, ratio: number, from: any, to: any, nextAttributes: any) => boolean;\n\n _onStart?: (() => void)[];\n _onFrame?: ((step: IStep, ratio: number) => void)[];\n _onEnd?: (() => void)[];\n _onRemove?: (() => void)[];\n\n getStartProps: () => Record<string, any>;\n getEndProps: () => Record<string, any>;\n\n bind: (target: IAnimateTarget) => this;\n to: (props: Record<string, any>, duration: number, easing: EasingType, params?: IStepConfig) => this;\n from: (props: Record<string, any>, duration: number, easing: EasingType, params?: IStepConfig) => this;\n pause: () => void;\n resume: () => void;\n onStart: (cb: () => void) => void;\n onEnd: (cb: () => void) => void;\n onFrame: (cb: (step: IStep, ratio: number) => void) => void;\n // 屏蔽属性\n preventAttr: (key: string) => void;\n // 屏蔽属性\n preventAttrs: (key: string[]) => void;\n // 属性是否合法\n validAttr: (key: string) => boolean;\n\n runCb: (cb: (a: IAnimate, step: IStep) => void) => IAnimate;\n\n // 自定义插值,返回false表示没有匹配上\n customInterpolate: (\n key: string,\n ratio: number,\n from: any,\n to: any,\n target: IAnimateTarget,\n ret: Record<string, any>\n ) => boolean;\n //\n play: (customAnimate: ICustomAnimate) => this;\n\n // 获取该属性的上一个值\n // getLastPropByName: (name: string, step: IStep) => any;\n // delay: (duration: number) => IAnimate;\n stop: (type?: 'start' | 'end' | Record<string, any>) => void;\n /** 打上END标志,下一帧被删除 */\n release: () => void;\n // 获取持续的时长\n getDuration: () => number;\n // 获取动画开始时间(注意并不是子动画的startAt)\n getStartTime: () => number;\n // done: (cb: (_: any) => any) => IAnimate;\n // pause: () => IAnimate;\n // spec: (spec: AnimateSpecItem[]) => IAnimate;\n // start: () => void; // 有start方法,避免动画提前开始(VGrammar需要时间处理数据)\n wait: (delay: number) => this;\n\n // // 编排\n afterAll: (list: IAnimate[]) => this;\n after: (animate: IAnimate) => this;\n parallel: (animate: IAnimate) => this;\n\n // // timislice (getter)\n // startTime: number;\n // endTime: number;\n // startTimes: number[];\n // endTimes: number[];\n\n // // 高级参数,frame到frameEnd之间可以进行reverse,loop,bounce效果\n // frame: () => IAnimate;\n // frameEnd: () => IAnimate;\n reversed: (r: boolean) => IAnimate;\n loop: (n: number) => IAnimate;\n bounce: (b: boolean) => IAnimate;\n\n nextAnimate?: IAnimate;\n prevAnimate?: IAnimate;\n\n advance: (delta: number) => void;\n\n startAt: (t: number) => IAnimate;\n\n // // 语法糖\n // create: (duration: number) => IAnimate;\n // fadeIn: (duration: number) => IAnimate;\n}\n\nexport interface ISubAnimate {\n getLastStep: () => IStep;\n animate: IAnimate;\n // 获取该属性的上一个值\n getLastPropByName: (name: string, step: IStep) => any;\n}\n\n// rect.animate().abc().to({}, 1000).delay(1000).frame().to().delay().to().frameEnd().loop().bounce()\n\nexport interface BaseAnimateConfig {\n id?: number | string;\n interpolate?: (key: string, ratio: number, from: any, to: any, nextAttributes: any) => boolean;\n onStart?: () => void;\n onFrame?: (step: IStep, ratio: number) => void;\n onEnd?: () => void;\n onRemove?: () => void;\n}\n\n// VGrammar和 vrender命名不一致,好尴尬\nexport interface MorphingAnimateConfig extends Omit<BaseAnimateConfig, 'interpolate'> {\n duration?: number;\n easing?: EasingType; // 统一到easing\n delay?: number;\n}\n\nexport interface MultiMorphingAnimateConfig extends MorphingAnimateConfig {\n splitPath?: 'clone' | ((graphic: IGraphic, count: number, needAppend?: boolean) => IGraphic[]);\n individualDelay?: (index: number, count: number, fromGraphic: IGraphic, toGraphic: IGraphic) => number;\n}\n\nexport interface ITimeline {\n id: number;\n animateCount: number;\n addAnimate: (animate: IAnimate) => void;\n removeAnimate: (animate: IAnimate) => void;\n tick: (delta: number) => void;\n clear: () => void;\n pause: () => void;\n resume: () => void;\n}\n\nexport interface ITickHandler extends Releaseable {\n avaliable: () => boolean;\n /**\n * 开始执行tick\n * @param interval 延时 ms\n * @param cb 执行的回调\n */\n tick: (interval: number, cb: (handler: ITickHandler) => void) => void; // 开始\n tickTo?: (t: number, cb: (handler: ITickHandler, params?: { once: boolean }) => void) => void;\n getTime: () => number; // 获取时间\n}\n\nexport interface ITickerHandlerStatic {\n Avaliable: () => boolean;\n new (): ITickHandler;\n}\n\nexport interface ITicker {\n setFPS?: (fps: number) => void;\n setInterval?: (interval: number) => void;\n getFPS?: () => number;\n getInterval?: () => number;\n tick: (interval: number) => void;\n tickAt?: (time: number) => void;\n pause: () => boolean;\n resume: () => boolean;\n /**\n * 开启tick,force为true强制开启,否则如果timeline为空则不开启\n */\n start: (force?: boolean) => boolean;\n stop: () => void;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/interface/animate.ts"],"names":[],"mappings":"","file":"animate.js","sourcesContent":["import type { AnimateMode, AnimateStatus, AnimateStepType } from '../common/enums';\nimport type { Releaseable } from './common';\nimport type { IGraphic } from './graphic';\n\n// export type EasingType = (...args: any) => any;\n\nexport declare class Easing {\n static linear(t: number): number;\n static none(): typeof Easing.linear;\n /**\n * 获取缓动函数,amount指示这个缓动函数的插值方式\n * @param amount\n * @returns\n */\n static get(amount: number): (t: number) => number;\n static getPowIn(pow: number): (t: number) => number;\n static getPowOut(pow: number): (t: number) => number;\n static getPowInOut(pow: number): (t: number) => number;\n static quadIn: (t: number) => number;\n static quadOut: (t: number) => number;\n static quadInOut: (t: number) => number;\n static cubicIn: (t: number) => number;\n static cubicOut: (t: number) => number;\n static cubicInOut: (t: number) => number;\n static quartIn: (t: number) => number;\n static quartOut: (t: number) => number;\n static quartInOut: (t: number) => number;\n static quintIn: (t: number) => number;\n static quintOut: (t: number) => number;\n static quintInOut: (t: number) => number;\n static getBackIn(amount: number): (t: number) => number;\n static getBackOut(amount: number): (t: number) => number;\n static getBackInOut(amount: number): (t: number) => number;\n static backIn: (t: number) => number;\n static backOut: (t: number) => number;\n static backInOut: (t: number) => number;\n static circIn(t: number): number;\n static circOut(t: number): number;\n static circInOut(t: number): number;\n static bounceOut(t: number): number;\n static bounceIn(t: number): number;\n static bounceInOut(t: number): number;\n static getElasticIn(amplitude: number, period: number): (t: number) => number;\n static getElasticOut(amplitude: number, period: number): (t: number) => number;\n static getElasticInOut(amplitude: number, period: number): (t: number) => number;\n static elasticIn: (t: number) => number;\n static elasticOut: (t: number) => number;\n static elasticInOut: (t: number) => number;\n}\n\n// timeline管理一堆的animate,多个timeline互不影响\n// timeline主要作用是基于layer层面的整体管理\n// 每个layer默认带有一个timeline\nexport interface Timeline {\n AnimateList: IAnimate[];\n}\n\ntype IStopType = 'end' | 'start' | 'current';\n\n// TODO: 提供options配置可序列化\ninterface AnimateSpecItem {\n type: 'to' | 'delay' | 'stop' | 'any';\n params: any[];\n}\n\nexport type EasingTypeStr =\n | 'linear'\n | 'quadIn'\n | 'quadOut'\n | 'quadInOut'\n | 'quadInOut'\n | 'cubicIn'\n | 'cubicOut'\n | 'cubicInOut'\n | 'quartIn'\n | 'quartOut'\n | 'quartInOut'\n | 'quintIn'\n | 'quintOut'\n | 'quintInOut'\n | 'backIn'\n | 'backOut'\n | 'backInOut'\n | 'circIn'\n | 'circOut'\n | 'circInOut'\n | 'bounceOut'\n | 'bounceIn'\n | 'bounceInOut'\n | 'elasticIn'\n | 'elasticOut'\n | 'elasticInOut'\n | 'sineIn'\n | 'sineOut'\n | 'sineInOut'\n | 'expoIn'\n | 'expoOut'\n | 'expoInOut'\n | '';\nexport type EasingTypeFunc = (t: number) => number;\n\nexport type EasingType = EasingTypeStr | EasingTypeFunc;\n\nexport type IAnimateStepType = keyof typeof AnimateStepType;\n\nexport interface IStep {\n type: IAnimateStepType;\n prev?: IStep;\n // 持续时间\n duration: number;\n // 在animate中的位置\n position: number;\n next?: IStep;\n props?: any;\n parsedProps?: any;\n propKeys?: string[];\n easing?: EasingTypeFunc;\n customAnimate?: ICustomAnimate;\n\n append: (step: IStep) => void;\n getLastProps: () => any;\n}\n\nexport interface IStepConfig {\n tempProps?: boolean; // props为临时props,可以直接使用不用拷贝\n noPreventAttrs?: boolean;\n}\n\nexport interface IAnimateTarget {\n onAnimateBind?: (animte: IAnimate | ISubAnimate) => void;\n // 添加动画step的时候调用\n onAddStep?: (step: IStep) => void;\n // step时调用\n onStep: (subAnimate: ISubAnimate, animate: IAnimate, step: IStep, ratio: number, end: boolean) => void;\n // 插值函数\n stepInterpolate: (\n subAnimate: ISubAnimate,\n animate: IAnimate,\n nextAttributes: Record<string, any>,\n step: IStep,\n ratio: number,\n end: boolean,\n nextProps: Record<string, any>,\n lastProps?: Record<string, any>,\n nextParsedProps?: any,\n propKeys?: string[]\n ) => void;\n // 获取属性\n getComputedAttribute: (name: string) => any;\n // 获取默认属性\n getDefaultAttribute: (name: string) => any;\n onStop: (props?: Record<string, any>) => void;\n animates: Map<string | number, IAnimate>;\n [key: string]: any;\n}\n\nexport interface ICustomAnimate {\n duration: number;\n easing: EasingType;\n step?: IStep;\n mode?: AnimateMode;\n\n bind: (target: IAnimateTarget, subAni: ISubAnimate) => void;\n // 在第一次调用的时候触发\n onBind: () => void;\n // 第一次执行的时候调用\n onFirstRun: () => void;\n // 开始执行的时候调用(如果有循环,那每个周期都会调用)\n onStart: () => void;\n // 结束执行的时候调用(如果有循环,那每个周期都会调用)\n onEnd: () => void;\n onUpdate: (end: boolean, ratio: number, out: Record<string, any>) => void;\n update: (end: boolean, ratio: number, out: Record<string, any>) => void;\n getEndProps: () => Record<string, any> | void;\n getFromProps: () => Record<string, any> | void;\n getMergedEndProps: () => Record<string, any> | void;\n}\n\n// 每一个animate绑定一个graphic,用于描述这个graphic的动画内容\n// 在timeline层面,animate相当于是一段timeslice\nexport interface IAnimate {\n readonly id: string | number;\n status: AnimateStatus;\n\n interpolateFunc: (key: string, ratio: number, from: any, to: any, nextAttributes: any) => boolean;\n\n _onStart?: (() => void)[];\n _onFrame?: ((step: IStep, ratio: number) => void)[];\n _onEnd?: (() => void)[];\n _onRemove?: (() => void)[];\n\n getStartProps: () => Record<string, any>;\n getEndProps: () => Record<string, any>;\n\n setTimeline: (timeline: ITimeline) => void;\n\n bind: (target: IAnimateTarget) => this;\n to: (props: Record<string, any>, duration: number, easing: EasingType, params?: IStepConfig) => this;\n from: (props: Record<string, any>, duration: number, easing: EasingType, params?: IStepConfig) => this;\n pause: () => void;\n resume: () => void;\n onStart: (cb: () => void) => void;\n onEnd: (cb: () => void) => void;\n onFrame: (cb: (step: IStep, ratio: number) => void) => void;\n // 屏蔽属性\n preventAttr: (key: string) => void;\n // 屏蔽属性\n preventAttrs: (key: string[]) => void;\n // 属性是否合法\n validAttr: (key: string) => boolean;\n\n runCb: (cb: (a: IAnimate, step: IStep) => void) => IAnimate;\n\n // 自定义插值,返回false表示没有匹配上\n customInterpolate: (\n key: string,\n ratio: number,\n from: any,\n to: any,\n target: IAnimateTarget,\n ret: Record<string, any>\n ) => boolean;\n //\n play: (customAnimate: ICustomAnimate) => this;\n\n // 获取该属性的上一个值\n // getLastPropByName: (name: string, step: IStep) => any;\n // delay: (duration: number) => IAnimate;\n stop: (type?: 'start' | 'end' | Record<string, any>) => void;\n /** 打上END标志,下一帧被删除 */\n release: () => void;\n // 获取持续的时长\n getDuration: () => number;\n // 获取动画开始时间(注意并不是子动画的startAt)\n getStartTime: () => number;\n // done: (cb: (_: any) => any) => IAnimate;\n // pause: () => IAnimate;\n // spec: (spec: AnimateSpecItem[]) => IAnimate;\n // start: () => void; // 有start方法,避免动画提前开始(VGrammar需要时间处理数据)\n wait: (delay: number) => this;\n\n // // 编排\n afterAll: (list: IAnimate[]) => this;\n after: (animate: IAnimate) => this;\n parallel: (animate: IAnimate) => this;\n\n // // timislice (getter)\n // startTime: number;\n // endTime: number;\n // startTimes: number[];\n // endTimes: number[];\n\n // // 高级参数,frame到frameEnd之间可以进行reverse,loop,bounce效果\n // frame: () => IAnimate;\n // frameEnd: () => IAnimate;\n reversed: (r: boolean) => IAnimate;\n loop: (n: number) => IAnimate;\n bounce: (b: boolean) => IAnimate;\n\n nextAnimate?: IAnimate;\n prevAnimate?: IAnimate;\n\n advance: (delta: number) => void;\n\n startAt: (t: number) => IAnimate;\n\n // // 语法糖\n // create: (duration: number) => IAnimate;\n // fadeIn: (duration: number) => IAnimate;\n}\n\nexport interface ISubAnimate {\n getLastStep: () => IStep;\n animate: IAnimate;\n // 获取该属性的上一个值\n getLastPropByName: (name: string, step: IStep) => any;\n}\n\n// rect.animate().abc().to({}, 1000).delay(1000).frame().to().delay().to().frameEnd().loop().bounce()\n\nexport interface BaseAnimateConfig {\n id?: number | string;\n interpolate?: (key: string, ratio: number, from: any, to: any, nextAttributes: any) => boolean;\n onStart?: () => void;\n onFrame?: (step: IStep, ratio: number) => void;\n onEnd?: () => void;\n onRemove?: () => void;\n}\n\n// VGrammar和 vrender命名不一致,好尴尬\nexport interface MorphingAnimateConfig extends Omit<BaseAnimateConfig, 'interpolate'> {\n duration?: number;\n easing?: EasingType; // 统一到easing\n delay?: number;\n}\n\nexport interface MultiMorphingAnimateConfig extends MorphingAnimateConfig {\n splitPath?: 'clone' | ((graphic: IGraphic, count: number, needAppend?: boolean) => IGraphic[]);\n individualDelay?: (index: number, count: number, fromGraphic: IGraphic, toGraphic: IGraphic) => number;\n}\n\nexport interface ITimeline {\n id: number;\n animateCount: number;\n addAnimate: (animate: IAnimate) => void;\n removeAnimate: (animate: IAnimate, release?: boolean) => void;\n tick: (delta: number) => void;\n clear: () => void;\n pause: () => void;\n resume: () => void;\n}\n\nexport interface ITickHandler extends Releaseable {\n avaliable: () => boolean;\n /**\n * 开始执行tick\n * @param interval 延时 ms\n * @param cb 执行的回调\n */\n tick: (interval: number, cb: (handler: ITickHandler) => void) => void; // 开始\n tickTo?: (t: number, cb: (handler: ITickHandler, params?: { once: boolean }) => void) => void;\n getTime: () => number; // 获取时间\n}\n\nexport interface ITickerHandlerStatic {\n Avaliable: () => boolean;\n new (): ITickHandler;\n}\n\nexport interface ITicker {\n setFPS?: (fps: number) => void;\n setInterval?: (interval: number) => void;\n getFPS?: () => number;\n getInterval?: () => number;\n tick: (interval: number) => void;\n tickAt?: (time: number) => void;\n pause: () => boolean;\n resume: () => boolean;\n /**\n * 开启tick,force为true强制开启,否则如果timeline为空则不开启\n */\n start: (force?: boolean) => boolean;\n stop: () => void;\n addTimeline: (timeline: ITimeline) => void;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../src/interface/camera.ts"],"names":[],"mappings":"","file":"camera.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\nimport type { mat4, vec3 } from './matrix';\n\nexport type ViewParameters = {\n pos: vec3;\n center: vec3;\n up: vec3;\n};\n\nexport type OrthoParameters = {\n left: number;\n right: number;\n top: number;\n bottom: number;\n fieldRatio: number;\n viewParams: ViewParameters;\n fieldDepth?: number;\n};\n\nexport interface ICamera {\n params: OrthoParameters;\n getViewMatrix: () => mat4;\n getProjectionMatrix: () => mat4;\n\n vp: (x: number, y: number, z: number) => IPointLike;\n view: (x: number, y: number, z: number) => [number, number, number];\n\n getProjectionScale: (z: number) => number;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../src/interface/canvas.ts"],"names":[],"mappings":"","file":"canvas.js","sourcesContent":["/**\n * 提供ICanvas和ICanvasLike封装\n */\nimport type { Releaseable } from './common';\nimport type { IContextLike, IContext2d } from './context';\n\nexport type CanvasConfigType = {\n width?: number;\n height?: number;\n dpr?: number;\n x?: number;\n y?: number;\n container?: HTMLElement | string;\n visiable?: boolean;\n nativeCanvas: HTMLCanvasElement | any;\n canvasControled?: boolean;\n id?: string;\n};\n\nexport interface ICanvas extends Releaseable {\n width: number;\n height: number;\n id: number | string;\n x: number;\n y: number;\n visiable: boolean;\n nativeCanvas: HTMLCanvasElement | any;\n displayWidth: number;\n displayHeight: number;\n dpr: number;\n\n getContext: (contextId?: '2d', contextAttributes?: CanvasRenderingContext2DSettings) => IContext2d | null;\n\n getNativeCanvas: () => HTMLCanvasElement | any;\n\n // getContext(\n // contextId: 'bitmaprenderer',\n // contextAttributes?: WebGLContextAttributes,\n // ): ImageBitmapRenderingContext | null;\n\n // getContext(contextId: 'webgl', contextAttributes?: WebGLContextAttributes): WebGLRenderingContext | null;\n\n // getContext(contextId: 'webgl2', contextAttributes?: WebGLContextAttributes): WebGL2RenderingContext | null;\n\n convertToBlob: (options?: { type?: string | undefined; quality?: number | undefined }) => Promise<Blob>;\n\n transferToImageBitmap: () => ImageBitmap;\n\n resetStyle: (params: Partial<CanvasConfigType>) => void;\n applyPosition: () => void;\n\n hide: () => void;\n show: () => void;\n\n resize: (width: number, height: number) => void;\n\n toDataURL: (() => string) &\n ((mimeType: 'image/png') => string) &\n ((mimeType: 'image/jpeg', quality: number) => string);\n\n readPixels: (x: number, y: number, w: number, h: number) => ImageData | Promise<ImageData>;\n\n release: () => void;\n}\n\nexport interface ICanvasLike {\n width: number;\n height: number;\n\n /** _Non standard._ The type of the canvas. */\n readonly type?: 'image' | 'pdf' | 'svg';\n\n /** _Non standard._ Getter. The stride used by the canvas. */\n readonly stride?: number;\n\n /** Constant used in PNG encoding methods. */\n readonly PNG_NO_FILTERS?: number;\n /** Constant used in PNG encoding methods. */\n readonly PNG_ALL_FILTERS?: number;\n /** Constant used in PNG encoding methods. */\n readonly PNG_FILTER_NONE?: number;\n /** Constant used in PNG encoding methods. */\n readonly PNG_FILTER_SUB?: number;\n /** Constant used in PNG encoding methods. */\n readonly PNG_FILTER_UP?: number;\n /** Constant used in PNG encoding methods. */\n readonly PNG_FILTER_AVG?: number;\n /** Constant used in PNG encoding methods. */\n readonly PNG_FILTER_PAETH?: number;\n\n getContext: (contextId: string) => IContextLike;\n}\n\nexport interface ICanvasFactory extends Function {\n (...params: any): ICanvas;\n}\n\nexport interface IContext2dFactory extends Function {\n (...params: any): IContext2d;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../src/interface/color.ts"],"names":[],"mappings":"","file":"color.js","sourcesContent":["interface IGradientStop {\n offset: number;\n color: string;\n}\n\nexport type IGradientColor = ILinearGradient | IRadialGradient | IConicalGradient;\n\nexport interface ILinearGradient {\n gradient: 'linear';\n x0?: number;\n y0?: number;\n x1?: number;\n y1?: number;\n stops: IGradientStop[];\n}\n\nexport interface IRadialGradient {\n gradient: 'radial';\n x0?: number;\n y0?: number;\n x1?: number;\n y1?: number;\n r0?: number;\n r1?: number;\n stops: IGradientStop[];\n}\n\nexport interface IConicalGradient {\n gradient: 'conical';\n startAngle?: number;\n endAngle?: number;\n x?: number;\n y?: number;\n stops: IGradientStop[];\n}\n\nexport interface IColorStop {\n offset: number;\n color: string;\n}\n\nexport type IColor = string | ILinearGradient | IRadialGradient | IConicalGradient;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../src/interface/common.ts"],"names":[],"mappings":"","file":"common.js","sourcesContent":["export type ICurveType =\n | 'basis'\n | 'basisClosed'\n | 'basisOpen'\n | 'bundle'\n | 'cardinal'\n | 'cardinalClosed'\n | 'cardinalOpen'\n | 'stepBefore'\n | 'stepAfter'\n | 'catmullRom'\n | 'catmullRomClosed'\n | 'catmullRomOpen'\n | 'linear'\n | 'linearClosed'\n | 'monotoneX'\n | 'monotoneY'\n | 'natural'\n | 'radial'\n | 'step';\n\nexport type MaybePromise<T> = T | PromiseLike<T>;\n\n// 所有的接口都应当继承这个,避免内存没有释放\nexport interface Releaseable {\n release: (...params: any) => void;\n}\n\nexport interface IEventElement {\n // event接口\n addEventListener: (<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n ) => void) &\n ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);\n on: (<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n ) => void) &\n ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);\n once: (<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n ) => void) &\n ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);\n removeEventListener: (<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n ) => void) &\n ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);\n off: (<K extends keyof DocumentEventMap>(\n type: K,\n listener: (this: Document, ev: DocumentEventMap[K]) => any,\n options?: boolean | AddEventListenerOptions\n ) => void) &\n ((type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void);\n removeAllListeners: (<K extends keyof DocumentEventMap>(type: K) => void) & ((type: string) => void);\n dispatchEvent: (event: any) => boolean;\n emit: (event: any, ...args: any) => boolean;\n}\n\nexport interface IDomRectLike {\n bottom: number;\n left: number;\n right: number;\n top: number;\n height: number;\n width: number;\n x: number;\n y: number;\n}\n\nexport type IDirection = 1 | 2;\n\nexport type AsArray<T> = T extends any[] ? T : [T];\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/interface/context.ts"],"names":[],"mappings":"","file":"context.js","sourcesContent":["import type { Matrix, IMatrix, IBoundsLike, IPointLike } from '@visactor/vutils';\nimport type { ICamera } from './camera';\nimport type { ICanvas } from './canvas';\nimport type { Releaseable } from './common';\nimport type { mat4, vec3 } from './matrix';\nimport type { IFillType, IStrokeType, ITransform } from './graphic';\n\nexport interface IConicalGradientData {\n addColorStop: (pos: number, color: string) => void;\n readonly stops: [number, string][];\n GetPattern: (minW: number, minH: number, deltaAngle?: number) => CanvasPattern | null;\n}\n\n// 用于commonStyle函数的参数\nexport interface ICommonStyleParams {\n fill?: IFillType;\n fillOpacity?: number;\n shadowBlur?: number;\n shadowColor?: string;\n shadowOffsetX?: number;\n shadowOffsetY?: number;\n opacity?: number;\n blur?: number;\n}\n\nexport interface IStrokeStyleParams {\n stroke?: IStrokeType | IStrokeType[];\n strokeOpacity?: number;\n lineDash?: number[];\n lineDashOffset?: number;\n lineWidth?: number;\n lineCap?: CanvasLineCap;\n lineJoin?: CanvasLineJoin;\n miterLimit?: number;\n opacity?: number;\n}\nexport interface ITextStyleParams {\n font?: string;\n fontSize: number;\n fontFamily?: string;\n fontWeight?: string | number;\n textAlign?: CanvasTextAlign;\n textBaseline?: CanvasTextBaseline;\n scaleIn3d?: boolean;\n}\n\nexport interface ISetCommonStyleParams {\n attribute: Partial<ICommonStyleParams & ITransform>;\n AABBBounds: IBoundsLike;\n}\n\nexport interface ISetStrokeStyleParams {\n attribute: Partial<IStrokeStyleParams & ITransform>;\n AABBBounds: IBoundsLike;\n}\nexport interface IContext2d extends Releaseable {\n stack: IMatrix[];\n inuse?: boolean;\n camera?: ICamera;\n modelMatrix?: mat4;\n drawPromise?: Promise<any>;\n // 属性代理\n fillStyle: string | CanvasGradient | CanvasPattern;\n disableFill?: boolean;\n disableStroke?: boolean;\n disableBeginPath?: boolean;\n /**\n * @deprecated font方法不建议使用,请使用setTextStyle\n */\n font: string;\n globalAlpha: number;\n lineCap: string;\n lineDashOffset: number;\n lineJoin: string;\n lineWidth: number;\n miterLimit: number;\n shadowBlur: number;\n shadowColor: string;\n shadowOffsetX: number;\n shadowOffsetY: number;\n strokeStyle: string | CanvasGradient | CanvasPattern;\n dpr: number;\n /**\n * @deprecated textAlign方法不建议使用,请使用setTextStyle\n */\n textAlign: string;\n /**\n * @deprecated textBaseline方法不建议使用,请使用setTextStyle\n */\n textBaseline: string;\n nativeContext: CanvasRenderingContext2D | any;\n canvas: ICanvas;\n [key: string]: any; //类型没有索引签名\n\n getCanvas: () => ICanvas;\n\n getContext: () => any;\n\n /**\n * 设置当前ctx 的transform信息\n */\n setTransformForCurrent: (force?: boolean) => void;\n /**\n * 获取当前矩阵信息\n */\n currentMatrix: IMatrix;\n\n /**\n * 清空画布\n */\n clear: () => void;\n\n restore: () => void;\n highPerformanceRestore: () => void;\n\n /**\n *\n * @param angle 弧度数\n */\n rotate: (angle: number, setTransform?: boolean) => void;\n\n save: () => void;\n highPerformanceSave: () => void;\n\n project?: (x: number, y: number, z?: number) => IPointLike;\n view?: (x: number, y: number, z?: number) => vec3;\n\n scale: (x: number, y: number, setTransform?: boolean) => void;\n\n scalePoint: (sx: number, sy: number, px: number, py: number, setTransform?: boolean) => void;\n transform: (\n m11: number,\n m12: number,\n m21: number,\n m22: number,\n dx: number,\n dy: number,\n setTransform?: boolean\n ) => void;\n transformFromMatrix: (matrix: Matrix, setTransform?: boolean) => void;\n setTransform: (\n m11: number,\n m12: number,\n m21: number,\n m22: number,\n dx: number,\n dy: number,\n setTransform?: boolean,\n dpr?: number\n ) => void;\n setTransformFromMatrix: (matrix: Matrix, setTransform?: boolean, dpr?: number) => void;\n\n resetTransform: (setTransform?: boolean, dpr?: number) => void;\n\n translate: (x: number, y: number, setTransform?: boolean) => void;\n /**\n * 旋转角度,自动转换为弧度\n * @param deg 角度数\n */\n rotateDegrees: (deg: number, setTransform?: boolean) => void;\n\n /**\n * 绕点旋转\n * @param rad 弧度\n * @param x 旋转中心点x\n * @param y 旋转中心点y\n */\n rotateAbout: (rad: number, x: number, y: number, setTransform?: boolean) => void;\n\n /**\n * 绕点旋转\n * @param deg 旋转角度\n * @param x 旋转中心点x\n * @param y 旋转中心点y\n */\n rotateDegreesAbout: (deg: number, x: number, y: number, setTransform?: boolean) => void;\n\n beginPath: () => void;\n\n clip: ((fillRule?: CanvasFillRule) => void) & ((path: Path2D, fillRule?: CanvasFillRule) => void);\n\n arc: (\n x: number,\n y: number,\n radius: number,\n startAngle: number,\n endAngle: number,\n anticlockwise?: boolean,\n z?: number\n ) => void;\n\n arcTo: (x1: number, y1: number, x2: number, y2: number, radius: number) => void;\n\n bezierCurveTo: (cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number) => void;\n\n closePath: () => void;\n\n ellipse: (\n x: number,\n y: number,\n radiusX: number,\n radiusY: number,\n rotation: number,\n startAngle: number,\n endAngle: number,\n anticlockwise?: boolean\n ) => void;\n\n lineTo: (x: number, y: number, z?: number) => void;\n\n moveTo: (x: number, y: number, z?: number) => void;\n\n quadraticCurveTo: (cpx: number, cpy: number, x: number, y: number, z?: number) => void;\n\n rect: (x: number, y: number, w: number, h: number, z?: number) => void;\n\n createImageData: (imageDataOrSw: number | ImageData, sh?: number) => ImageData;\n\n createLinearGradient: (x0: number, y0: number, x1: number, y1: number) => CanvasGradient;\n\n createPattern: (\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ICanvas | any,\n repetition: string\n ) => CanvasPattern | null;\n\n createRadialGradient: (x0: number, y0: number, r0: number, x1: number, y1: number, r1: number) => CanvasGradient;\n\n createConicGradient: (x: number, y: number, startAngle: number, endAngle: number) => IConicalGradientData | null;\n\n // createConicGradient: (x: number, y: number, startAngle: number, endAngle: number) => IConicalGradient | null;\n\n // fill(fillRule?: CanvasFillRule): void;\n fill: (path?: Path2D, fillRule?: CanvasFillRule) => void;\n\n fillRect: (x: number, y: number, w: number, h: number) => void;\n\n clearRect: (x: number, y: number, w: number, h: number) => void;\n\n fillText: (text: string, x: number, y: number, z?: number) => void;\n\n getImageData: (sx: number, sy: number, sw: number, sh: number) => ImageData;\n\n getLineDash: () => number[];\n\n isPointInPath: (x: number, y: number) => boolean;\n isPointInStroke: (x: number, y: number) => boolean;\n\n measureText: (text: string, method?: 'native' | 'simple' | 'quick') => { width: number };\n\n putImageData: (imagedata: ImageData, dx: number, dy: number) => void;\n\n setLineDash: (segments: number[]) => void;\n\n stroke: (path?: Path2D) => void;\n\n strokeRect: (x: number, y: number, w: number, h: number) => void;\n\n strokeText: (text: string, x: number, y: number, z?: number) => void;\n\n drawImage: ((\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap | ICanvas | any,\n dstX: number,\n dstY: number\n ) => void) &\n ((\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap | ICanvas | any,\n dstX: number,\n dstY: number,\n dstW: number,\n dstH: number\n ) => void) &\n ((\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap | ICanvas | any,\n srcX: number,\n srcY: number,\n srcW: number,\n srcH: number,\n dstX: number,\n dstY: number,\n dstW: number,\n dstH: number\n ) => void);\n\n setCommonStyle: (\n params: ISetCommonStyleParams,\n attribute: ICommonStyleParams,\n // 用于渐变色\n offsetX: number,\n offsetY: number,\n defultParams?: ICommonStyleParams | Partial<ICommonStyleParams>[]\n ) => void;\n\n setShadowStyle?: (\n params: ISetCommonStyleParams,\n attribute: ICommonStyleParams,\n defultParams?: ICommonStyleParams | Partial<ICommonStyleParams>[]\n ) => void;\n\n setStrokeStyle: (\n params: ISetStrokeStyleParams,\n attribute: IStrokeStyleParams,\n // 用于渐变色\n offsetX: number,\n offsetY: number,\n defultParams?: Required<IStrokeStyleParams> | Partial<IStrokeStyleParams>[]\n ) => void;\n\n setTextStyle: (params: Partial<ITextStyleParams>, defaultParams?: ITextStyleParams, z?: number) => void;\n setTextStyleWithoutAlignBaseline: (\n params: Partial<ITextStyleParams>,\n defaultParams?: ITextStyleParams,\n z?: number\n ) => void;\n\n draw: (...params: any) => void;\n\n clearMatrix: (setTransform?: boolean, dpr?: number) => void;\n onlyTranslate: (dpr?: number) => boolean;\n}\n\nexport interface IContextLike {\n // 属性代理\n fillStyle: string | CanvasGradient | CanvasPattern;\n /**\n * @deprecated font方法不建议使用,请使用setTextStyle\n */\n font: string;\n globalAlpha: number;\n lineCap: string;\n lineDashOffset: number;\n lineJoin: string;\n lineWidth: number;\n miterLimit: number;\n shadowBlur: number;\n shadowColor: string;\n shadowOffsetX: number;\n shadowOffsetY: number;\n strokeStyle: string | CanvasGradient | CanvasPattern;\n dpr: number;\n /**\n * @deprecated textAlign方法不建议使用,请使用setTextStyle\n */\n textAlign: string;\n /**\n * @deprecated textBaseline方法不建议使用,请使用setTextStyle\n */\n textBaseline: string;\n nativeContext: CanvasRenderingContext2D | any;\n [key: string]: any; //类型没有索引签名\n\n /**\n * 清空画布\n */\n clear: () => void;\n\n restore: () => void;\n\n save: () => void;\n\n // transform(m11: number, m12: number, m21: number, m22: number, dx: number, dy: number): void;\n\n translate: (x: number, y: number) => void;\n\n beginPath: () => void;\n\n clip: ((fillRule?: CanvasFillRule) => void) & ((path: Path2D, fillRule?: CanvasFillRule) => void);\n\n arc: (x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean) => void;\n\n arcTo: ((x1: number, y1: number, x2: number, y2: number, radius: number) => void) &\n ((x1: number, y1: number, x2: number, y2: number, radiusX: number, radiusY: number, rotation: number) => void);\n\n bezierCurveTo: (cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number) => void;\n\n closePath: () => void;\n\n ellipse: (\n x: number,\n y: number,\n radiusX: number,\n radiusY: number,\n rotation: number,\n startAngle: number,\n endAngle: number,\n anticlockwise?: boolean\n ) => void;\n\n lineTo: (x: number, y: number) => void;\n\n moveTo: (x: number, y: number) => void;\n\n quadraticCurveTo: (cpx: number, cpy: number, x: number, y: number) => void;\n\n rect: (x: number, y: number, w: number, h: number) => void;\n\n fill: (path?: Path2D, fillRule?: CanvasFillRule) => void;\n\n fillRect: (x: number, y: number, w: number, h: number) => void;\n\n clearRect: (x: number, y: number, w: number, h: number) => void;\n\n fillText: (text: string, x: number, y: number, maxWidth?: number) => void;\n\n getImageData: (sx: number, sy: number, sw: number, sh: number) => ImageData;\n\n getLineDash: () => number[];\n\n isPointInPath: (x: number, y: number) => boolean;\n isPointInStroke: (x: number, y: number) => boolean;\n\n measureText: (text: string, method?: 'native' | 'simple' | 'quick') => { width: number };\n\n putImageData: (\n imagedata: ImageData,\n dx: number,\n dy: number,\n dirtyX?: number,\n dirtyY?: number,\n dirtyWidth?: number,\n dirtyHeight?: number\n ) => void;\n\n setLineDash: (segments: number[]) => void;\n\n stroke: (path?: Path2D) => void;\n\n strokeRect: (x: number, y: number, w: number, h: number) => void;\n\n strokeText: (text: string, x: number, y: number, maxWidth?: number) => void;\n\n drawImage: ((\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap | any,\n dstX: number,\n dstY: number\n ) => void) &\n ((\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap | any,\n dstX: number,\n dstY: number,\n dstW: number,\n dstH: number\n ) => void) &\n ((\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap | any,\n srcX: number,\n srcY: number,\n srcW: number,\n srcH: number,\n dstX: number,\n dstY: number,\n dstW: number,\n dstH: number\n ) => void);\n\n clearMatrix: () => void;\n onlyTranslate: () => boolean;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/interface/context.ts"],"names":[],"mappings":"","file":"context.js","sourcesContent":["import type { Matrix, IMatrix, IBoundsLike, IPointLike } from '@visactor/vutils';\nimport type { ICamera } from './camera';\nimport type { ICanvas } from './canvas';\nimport type { Releaseable } from './common';\nimport type { mat4, vec3 } from './matrix';\nimport type { IFillType, IStrokeType, ITransform } from './graphic';\n\nexport interface IConicalGradientData {\n addColorStop: (pos: number, color: string) => void;\n readonly stops: [number, string][];\n GetPattern: (minW: number, minH: number, deltaAngle?: number) => CanvasPattern | null;\n}\n\n// 用于commonStyle函数的参数\nexport interface ICommonStyleParams {\n fill?: IFillType;\n fillOpacity?: number;\n shadowBlur?: number;\n shadowColor?: string;\n shadowOffsetX?: number;\n shadowOffsetY?: number;\n opacity?: number;\n blur?: number;\n}\n\nexport interface IStrokeStyleParams {\n stroke?: IStrokeType | IStrokeType[];\n strokeOpacity?: number;\n lineDash?: number[];\n lineDashOffset?: number;\n lineWidth?: number;\n lineCap?: CanvasLineCap;\n lineJoin?: CanvasLineJoin;\n miterLimit?: number;\n opacity?: number;\n}\nexport interface ITextStyleParams {\n font?: string;\n fontSize: number;\n fontFamily?: string;\n fontWeight?: string | number;\n textAlign?: CanvasTextAlign;\n textBaseline?: CanvasTextBaseline;\n scaleIn3d?: boolean;\n}\n\nexport interface ISetCommonStyleParams {\n attribute: Partial<ICommonStyleParams & ITransform>;\n AABBBounds: IBoundsLike;\n}\n\nexport interface ISetStrokeStyleParams {\n attribute: Partial<IStrokeStyleParams & ITransform>;\n AABBBounds: IBoundsLike;\n}\nexport interface IContext2d extends Releaseable {\n stack: IMatrix[];\n inuse?: boolean;\n camera?: ICamera;\n modelMatrix?: mat4;\n drawPromise?: Promise<any>;\n // 属性代理\n fillStyle: string | CanvasGradient | CanvasPattern;\n disableFill?: boolean;\n disableStroke?: boolean;\n disableBeginPath?: boolean;\n /**\n * @deprecated font方法不建议使用,请使用setTextStyle\n */\n font: string;\n globalAlpha: number;\n lineCap: string;\n lineDashOffset: number;\n lineJoin: string;\n lineWidth: number;\n miterLimit: number;\n shadowBlur: number;\n shadowColor: string;\n shadowOffsetX: number;\n shadowOffsetY: number;\n strokeStyle: string | CanvasGradient | CanvasPattern;\n dpr: number;\n /**\n * @deprecated textAlign方法不建议使用,请使用setTextStyle\n */\n textAlign: string;\n /**\n * @deprecated textBaseline方法不建议使用,请使用setTextStyle\n */\n textBaseline: string;\n nativeContext: CanvasRenderingContext2D | any;\n canvas: ICanvas;\n [key: string]: any; //类型没有索引签名\n\n getCanvas: () => ICanvas;\n\n getContext: () => any;\n\n /**\n * 设置当前ctx 的transform信息\n */\n setTransformForCurrent: (force?: boolean) => void;\n /**\n * 获取当前矩阵信息\n */\n currentMatrix: IMatrix;\n\n /**\n * 清空画布\n */\n clear: () => void;\n\n restore: () => void;\n highPerformanceRestore: () => void;\n\n /**\n *\n * @param angle 弧度数\n */\n rotate: (angle: number, setTransform?: boolean) => void;\n\n save: () => void;\n highPerformanceSave: () => void;\n\n project?: (x: number, y: number, z?: number) => IPointLike;\n view?: (x: number, y: number, z?: number) => vec3;\n\n scale: (x: number, y: number, setTransform?: boolean) => void;\n\n scalePoint: (sx: number, sy: number, px: number, py: number, setTransform?: boolean) => void;\n transform: (\n m11: number,\n m12: number,\n m21: number,\n m22: number,\n dx: number,\n dy: number,\n setTransform?: boolean\n ) => void;\n transformFromMatrix: (matrix: Matrix, setTransform?: boolean) => void;\n setTransform: (\n m11: number,\n m12: number,\n m21: number,\n m22: number,\n dx: number,\n dy: number,\n setTransform?: boolean,\n dpr?: number\n ) => void;\n setTransformFromMatrix: (matrix: Matrix, setTransform?: boolean, dpr?: number) => void;\n\n resetTransform: (setTransform?: boolean, dpr?: number) => void;\n\n translate: (x: number, y: number, setTransform?: boolean) => void;\n /**\n * 旋转角度,自动转换为弧度\n * @param deg 角度数\n */\n rotateDegrees: (deg: number, setTransform?: boolean) => void;\n\n /**\n * 绕点旋转\n * @param rad 弧度\n * @param x 旋转中心点x\n * @param y 旋转中心点y\n */\n rotateAbout: (rad: number, x: number, y: number, setTransform?: boolean) => void;\n\n /**\n * 绕点旋转\n * @param deg 旋转角度\n * @param x 旋转中心点x\n * @param y 旋转中心点y\n */\n rotateDegreesAbout: (deg: number, x: number, y: number, setTransform?: boolean) => void;\n\n beginPath: () => void;\n\n clip: ((fillRule?: CanvasFillRule) => void) & ((path: Path2D, fillRule?: CanvasFillRule) => void);\n\n arc: (\n x: number,\n y: number,\n radius: number,\n startAngle: number,\n endAngle: number,\n anticlockwise?: boolean,\n z?: number\n ) => void;\n\n arcTo: (x1: number, y1: number, x2: number, y2: number, radius: number) => void;\n\n bezierCurveTo: (cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number) => void;\n\n closePath: () => void;\n\n ellipse: (\n x: number,\n y: number,\n radiusX: number,\n radiusY: number,\n rotation: number,\n startAngle: number,\n endAngle: number,\n anticlockwise?: boolean\n ) => void;\n\n lineTo: (x: number, y: number, z?: number) => void;\n\n moveTo: (x: number, y: number, z?: number) => void;\n\n quadraticCurveTo: (cpx: number, cpy: number, x: number, y: number, z?: number) => void;\n\n rect: (x: number, y: number, w: number, h: number, z?: number) => void;\n\n createImageData: (imageDataOrSw: number | ImageData, sh?: number) => ImageData;\n\n createLinearGradient: (x0: number, y0: number, x1: number, y1: number) => CanvasGradient;\n\n createPattern: (\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ICanvas | any,\n repetition: string\n ) => CanvasPattern | null;\n\n createRadialGradient: (x0: number, y0: number, r0: number, x1: number, y1: number, r1: number) => CanvasGradient;\n\n createConicGradient: (x: number, y: number, startAngle: number, endAngle: number) => IConicalGradientData | null;\n\n // createConicGradient: (x: number, y: number, startAngle: number, endAngle: number) => IConicalGradient | null;\n\n // fill(fillRule?: CanvasFillRule): void;\n fill: (path?: Path2D, fillRule?: CanvasFillRule) => void;\n\n fillRect: (x: number, y: number, w: number, h: number) => void;\n\n clearRect: (x: number, y: number, w: number, h: number) => void;\n\n fillText: (text: string, x: number, y: number, z?: number) => void;\n\n getImageData: (sx: number, sy: number, sw: number, sh: number) => ImageData;\n\n getLineDash: () => number[];\n\n isPointInPath: (x: number, y: number) => boolean;\n isPointInStroke: (x: number, y: number) => boolean;\n\n measureText: (text: string, method?: 'native' | 'simple' | 'quick') => { width: number };\n\n putImageData: (imagedata: ImageData, dx: number, dy: number) => void;\n\n setLineDash: (segments: number[]) => void;\n\n stroke: (path?: Path2D) => void;\n\n strokeRect: (x: number, y: number, w: number, h: number) => void;\n\n strokeText: (text: string, x: number, y: number, z?: number) => void;\n\n drawImage: ((\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap | ICanvas | any,\n dstX: number,\n dstY: number\n ) => void) &\n ((\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap | ICanvas | any,\n dstX: number,\n dstY: number,\n dstW: number,\n dstH: number\n ) => void) &\n ((\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap | ICanvas | any,\n srcX: number,\n srcY: number,\n srcW: number,\n srcH: number,\n dstX: number,\n dstY: number,\n dstW: number,\n dstH: number\n ) => void);\n\n setCommonStyle: (\n params: ISetCommonStyleParams,\n attribute: ICommonStyleParams,\n // 用于渐变色\n offsetX: number,\n offsetY: number,\n defultParams?: ICommonStyleParams | Partial<ICommonStyleParams>[]\n ) => void;\n\n setShadowStyle?: (\n params: ISetCommonStyleParams,\n attribute: ICommonStyleParams,\n defultParams?: ICommonStyleParams | Partial<ICommonStyleParams>[]\n ) => void;\n\n setStrokeStyle: (\n params: ISetStrokeStyleParams,\n attribute: IStrokeStyleParams,\n // 用于渐变色\n offsetX: number,\n offsetY: number,\n defultParams?: Required<IStrokeStyleParams> | Partial<IStrokeStyleParams>[]\n ) => void;\n\n setTextStyle: (params: Partial<ITextStyleParams>, defaultParams?: ITextStyleParams, z?: number) => void;\n setTextStyleWithoutAlignBaseline: (\n params: Partial<ITextStyleParams>,\n defaultParams?: ITextStyleParams,\n z?: number\n ) => void;\n\n draw: (...params: any) => void;\n\n clearMatrix: (setTransform?: boolean, dpr?: number) => void;\n onlyTranslate: (dpr?: number) => boolean;\n}\n\nexport interface IContextLike {\n // 属性代理\n fillStyle: string | CanvasGradient | CanvasPattern;\n /**\n * @deprecated font方法不建议使用,请使用setTextStyle\n */\n font: string;\n globalAlpha: number;\n lineCap: string;\n lineDashOffset: number;\n lineJoin: string;\n lineWidth: number;\n miterLimit: number;\n shadowBlur: number;\n shadowColor: string;\n shadowOffsetX: number;\n shadowOffsetY: number;\n strokeStyle: string | CanvasGradient | CanvasPattern;\n dpr: number;\n /**\n * @deprecated textAlign方法不建议使用,请使用setTextStyle\n */\n textAlign: string;\n /**\n * @deprecated textBaseline方法不建议使用,请使用setTextStyle\n */\n textBaseline: string;\n nativeContext: CanvasRenderingContext2D | any;\n [key: string]: any; //类型没有索引签名\n\n /**\n * 清空画布\n */\n clear: () => void;\n\n restore: () => void;\n\n save: () => void;\n\n // transform(m11: number, m12: number, m21: number, m22: number, dx: number, dy: number): void;\n\n translate: (x: number, y: number) => void;\n\n beginPath: () => void;\n\n clip: ((fillRule?: CanvasFillRule) => void) & ((path: Path2D, fillRule?: CanvasFillRule) => void);\n\n arc: (x: number, y: number, radius: number, startAngle: number, endAngle: number, anticlockwise?: boolean) => void;\n\n arcTo: ((x1: number, y1: number, x2: number, y2: number, radius: number) => void) &\n ((x1: number, y1: number, x2: number, y2: number, radiusX: number, radiusY: number, rotation: number) => void);\n\n bezierCurveTo: (cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number) => void;\n\n closePath: () => void;\n\n ellipse: (\n x: number,\n y: number,\n radiusX: number,\n radiusY: number,\n rotation: number,\n startAngle: number,\n endAngle: number,\n anticlockwise?: boolean\n ) => void;\n\n lineTo: (x: number, y: number) => void;\n\n moveTo: (x: number, y: number) => void;\n\n quadraticCurveTo: (cpx: number, cpy: number, x: number, y: number) => void;\n\n rect: (x: number, y: number, w: number, h: number) => void;\n\n fill: (path?: Path2D, fillRule?: CanvasFillRule) => void;\n\n fillRect: (x: number, y: number, w: number, h: number) => void;\n\n clearRect: (x: number, y: number, w: number, h: number) => void;\n\n fillText: (text: string, x: number, y: number, maxWidth?: number) => void;\n\n getImageData: (sx: number, sy: number, sw: number, sh: number) => ImageData;\n\n getLineDash: () => number[];\n\n isPointInPath: (x: number, y: number) => boolean;\n isPointInStroke: (x: number, y: number) => boolean;\n\n measureText: (text: string, method?: 'native' | 'simple' | 'quick') => { width: number };\n\n putImageData: (\n imagedata: ImageData,\n dx: number,\n dy: number,\n dirtyX?: number,\n dirtyY?: number,\n dirtyWidth?: number,\n dirtyHeight?: number\n ) => void;\n\n setLineDash: (segments: number[]) => void;\n\n stroke: (path?: Path2D) => void;\n\n strokeRect: (x: number, y: number, w: number, h: number) => void;\n\n strokeText: (text: string, x: number, y: number, maxWidth?: number) => void;\n\n drawImage: ((\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap | any,\n dstX: number,\n dstY: number\n ) => void) &\n ((\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap | any,\n dstX: number,\n dstY: number,\n dstW: number,\n dstH: number\n ) => void) &\n ((\n image: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | ImageBitmap | any,\n srcX: number,\n srcY: number,\n srcW: number,\n srcH: number,\n dstX: number,\n dstY: number,\n dstW: number,\n dstH: number\n ) => void);\n\n clearMatrix: () => void;\n onlyTranslate: () => boolean;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../src/interface/contribution.ts"],"names":[],"mappings":"","file":"contribution.js","sourcesContent":["import type { MaybePromise, Releaseable } from './common';\nimport type { IContext2d } from './context';\nimport type { IThemeAttribute, IMarkAttribute } from './graphic/creator';\nimport type { IGraphicAttribute } from './graphic';\nimport type { ISymbol, ISymbolGraphicAttribute } from './graphic/symbol';\nimport type { BaseRenderContributionTime } from '../common/enums';\nimport type { IArc, IArcGraphicAttribute } from './graphic/arc';\nimport type { IArea, IAreaGraphicAttribute } from './graphic/area';\nimport type { IText, ITextGraphicAttribute } from './graphic/text';\nimport type { ICircle, ICircleGraphicAttribute } from './graphic/circle';\nimport type { IGroup, IGroupGraphicAttribute } from './graphic/group';\nimport type { IImage, IImageGraphicAttribute } from './graphic/image';\nimport type { IPath, IPathGraphicAttribute } from './graphic/path';\nimport type { IPolygon, IPolygonGraphicAttribute } from './graphic/polygon';\nimport type { IRect, IRectGraphicAttribute } from './graphic/rect';\nimport type { IStage } from './stage';\nimport type { ICanvasLike } from './canvas';\nimport type { IDrawContext } from './render';\n\nexport interface IContribution<T> extends Releaseable {\n configure: (service: T, ...data: any) => void;\n}\n\nexport interface IBaseRenderContribution<GraphicType, AttributeType> {\n time: BaseRenderContributionTime;\n useStyle: boolean;\n order: number;\n\n drawShape: (\n graphic: GraphicType,\n context: IContext2d,\n x: number,\n y: number,\n doFill: boolean,\n doStroke: boolean,\n fVisible: boolean,\n sVisible: boolean,\n graphicAttribute: Required<AttributeType>,\n drawContext: IDrawContext,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n params?: any\n ) => void;\n}\n\nexport type ISymbolRenderContribution = IBaseRenderContribution<ISymbol, ISymbolGraphicAttribute>;\n\nexport type IArcRenderContribution = IBaseRenderContribution<IArc, IArcGraphicAttribute>;\n\nexport type ITextRenderContribution = IBaseRenderContribution<IText, ITextGraphicAttribute>;\n\nexport type IAreaRenderContribution = IBaseRenderContribution<IArea, IAreaGraphicAttribute>;\n\nexport type ICircleRenderContribution = IBaseRenderContribution<ICircle, ICircleGraphicAttribute>;\n\nexport type IGroupRenderContribution = IBaseRenderContribution<IGroup, IGroupGraphicAttribute>;\n\nexport type IImageRenderContribution = IBaseRenderContribution<IImage, IImageGraphicAttribute>;\n\nexport type IPathRenderContribution = IBaseRenderContribution<IPath, IPathGraphicAttribute>;\n\nexport type IPolygonRenderContribution = IBaseRenderContribution<IPolygon, IPolygonGraphicAttribute>;\n\nexport type IRectRenderContribution = IBaseRenderContribution<IRect, IRectGraphicAttribute>;\n\nexport interface IContributionProvider<T> {\n getContributions: () => T[];\n}\n\nexport interface IApplicationContribution {\n // 调用初始化函数\n initialize?: () => void;\n\n configure?: (stage: IStage) => MaybePromise<void>;\n\n onDestroy?: (stage: IStage) => MaybePromise<void>;\n}\n\nexport interface ITTCanvas extends ICanvasLike {\n width: number;\n height: number;\n offsetWidth: number;\n offsetHeight: number;\n getContext: () => any;\n // 构造 getBoundingClientRect 方法\n getBoundingClientRect: () => { width: number; height: number };\n id: string;\n}\n\nexport interface ILynxCanvas extends ICanvasLike {\n width: number;\n height: number;\n offsetWidth: number;\n offsetHeight: number;\n getContext: () => any;\n // 构造 getBoundingClientRect 方法\n getBoundingClientRect: () => { width: number; height: number };\n id: string;\n}\n\nexport interface IDomRef {\n id: string;\n width: number;\n height: number;\n left: number;\n top: number;\n right: number;\n bottom: number;\n x: number;\n y: number;\n\n requestAnimationFrame?: any;\n cancelAnimationFrame?: any;\n getBoundingClientRect?: () => { height: number; width: number };\n}\n"]}
|
package/cjs/interface/core.d.ts
CHANGED
|
@@ -24,6 +24,7 @@ export interface ITransformUtil {
|
|
|
24
24
|
init: (origin: TransformType) => ITransformUtil;
|
|
25
25
|
fromMatrix: (source: IMatrix, target: IMatrix) => ITransformUtil;
|
|
26
26
|
scale: (sx: number, sy: number, center?: IPointLike) => ITransformUtil;
|
|
27
|
+
rotate: (angle: number, center?: IPointLike) => ITransformUtil;
|
|
27
28
|
translate: (dx: number, dy: number) => ITransformUtil;
|
|
28
29
|
}
|
|
29
30
|
export interface ILayerService {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../src/interface/core.ts"],"names":[],"mappings":"","file":"core.js","sourcesContent":["import type { ICanvas } from './canvas';\nimport type { IContext2d } from './context';\nimport type { IGraphicAttribute } from './graphic';\nimport type { ITextAttribute } from './graphic/text';\nimport type { ILayer, ILayerParams } from './layer';\nimport type { IStage } from './stage';\nimport type { ITextMeasure, TextOptionsType } from './text';\nimport type { IMatrix, IPointLike, ITextMeasureOption, TextMeasure } from '@visactor/vutils';\n\nexport interface IGraphicUtil {\n canvas?: ICanvas;\n context?: IContext2d | null;\n textMeasure: ITextMeasure;\n measureText: (text: string, tc: TextOptionsType) => { width: number; height: number };\n bindTextMeasure: (tm: ITextMeasure) => void;\n createTextMeasureInstance: (\n textSpec?: Partial<ITextAttribute>,\n option?: Partial<ITextMeasureOption>,\n getCanvasForMeasure?: () => any\n ) => TextMeasure<ITextAttribute>;\n}\n\nexport type TransformType = Pick<IGraphicAttribute, 'x' | 'y' | 'scaleX' | 'scaleY' | 'angle' | 'dx' | 'dy'> & {\n anchor?: IGraphicAttribute['anchor'];\n};\nexport interface ITransformUtil {\n init: (origin: TransformType) => ITransformUtil;\n fromMatrix: (source: IMatrix, target: IMatrix) => ITransformUtil;\n scale: (sx: number, sy: number, center?: IPointLike) => ITransformUtil;\n rotate: (angle: number, center?: IPointLike) => ITransformUtil;\n translate: (dx: number, dy: number) => ITransformUtil;\n}\n\nexport interface ILayerService {\n createLayer: (stage: IStage, options?: ILayerParams) => ILayer;\n releaseLayer: (stage: IStage, layer: ILayer) => void;\n restLayerCount: (stage: IStage) => number;\n getStageLayer: (stage: IStage) => ILayer[];\n layerCount: (stage: IStage) => number;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../src/interface/creator.ts"],"names":[],"mappings":"","file":"creator.js","sourcesContent":["import type { ILayer } from './layer';\nimport type { IStage } from './stage';\n\nexport declare function createLayer(canvasId?: string): ILayer;\nexport declare function createStage(w: number, h: number): IStage;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../src/interface/curve.ts"],"names":[],"mappings":"","file":"curve.js","sourcesContent":["import type { IPoint, IPointLike } from '@visactor/vutils';\nimport type { ICurvePath } from './path';\nimport type { ICurveType, IDirection } from './common';\n\n/**\n * 用于segment的path2d接口,参数比普通的path多,部分path的方法不支持。\n */\nexport interface ISegPath2D extends ICurvePath<IPoint> {\n direction: IDirection;\n curveType: ICurveType;\n\n endX: number;\n endY: number;\n\n tryUpdateLength: (direction?: IDirection) => number;\n bezierCurveTo: (\n cp1x: number,\n cp1y: number,\n cp2x: number,\n cp2y: number,\n x: number,\n y: number,\n defined: boolean,\n p?: IPointLike // 保存原始点\n ) => void;\n closePath: () => void;\n ellipse: (\n x: number,\n y: number,\n radiusX: number,\n radiusY: number,\n rotation: number,\n startAngle: number,\n endAngle: number,\n counterclockwise?: boolean\n ) => void;\n lineTo: (x: number, y: number, defined: boolean, p?: IPointLike) => void;\n moveTo: (x: number, y: number, p?: IPointLike) => void;\n quadraticCurveTo: (cpx: number, cpy: number, x: number, y: number) => void;\n}\n\nexport interface IGenSegmentParams {\n direction?: IDirection;\n startPoint?: IPointLike;\n}\n\nexport interface IBaseSegment {\n context: ISegPath2D;\n lineStart: () => void;\n lineEnd: () => void;\n areaStart: () => void;\n areaEnd: () => void;\n _x: number;\n _y: number;\n _x0: number;\n _x1: number;\n _y0: number;\n _y1: number;\n _line: number;\n _point: number;\n}\n\nexport interface ILinearSegment extends IBaseSegment {\n point: (point: IPointLike) => void;\n tryUpdateLength: () => number;\n}\n\nexport interface ICurvedSegment extends IBaseSegment {\n point: (point: IPointLike) => void;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../src/interface/event.ts"],"names":[],"mappings":"","file":"event.js","sourcesContent":["import type { INode } from './node-tree';\nimport type { Dict, IBounds, IPointLike } from '@visactor/vutils';\nimport type { Cursor, IGraphicAttribute } from './graphic';\nimport type { IDomRectLike, IEventElement } from './common';\nimport type { ICanvas } from './canvas';\nimport type { IGlobal } from './global';\n\nexport interface IEventManager {\n rootTarget: IEventTarget;\n dispatch: any;\n cursor: Cursor | string;\n addEventMapping: (type: string, fn: (e: IFederatedEvent, target: IEventTarget) => void) => void;\n dispatchEvent: (e: IFederatedEvent, type?: string) => void;\n mapEvent: (e: IFederatedEvent) => void;\n propagate: (e: IFederatedEvent, type?: string) => void;\n propagationPath: (target: IEventTarget) => IEventTarget[];\n copyWheelData: (from: IFederatedWheelEvent, to: IFederatedWheelEvent) => void;\n copyPointerData: (from: IFederatedEvent, to: IFederatedEvent) => void;\n copyMouseData: (from: IFederatedEvent, to: IFederatedEvent) => void;\n copyData: (from: IFederatedEvent, to: IFederatedEvent) => void;\n}\n\nexport interface IFederatedEvent<N = Event> {\n bubbles: boolean;\n cancelBubble: boolean;\n cancelable: boolean;\n composed: boolean;\n currentTarget: IEventTarget | null;\n defaultPrevented: boolean;\n eventPhase: number;\n isTrusted: boolean;\n returnValue: boolean;\n srcElement: IEventTarget;\n target: IEventTarget | null;\n timeStamp: number;\n type: string;\n nativeEvent: N;\n originalEvent: IFederatedEvent<N> | null;\n propagationStopped: boolean;\n propagationImmediatelyStopped: boolean;\n path: IEventTarget[];\n manager?: IEventManager;\n detail: any;\n view: any;\n layer: IPointLike;\n get layerX(): number;\n get layerY(): number;\n page: IPointLike;\n get pageX(): number;\n get pageY(): number;\n canvas: IPointLike;\n get x(): number;\n get y(): number;\n get canvasX(): number;\n get canvasY(): number;\n viewport: IPointLike;\n get viewX(): number;\n get viewY(): number;\n composedPath: () => IEventTarget[];\n preventDefault: () => void;\n stopImmediatePropagation: () => void;\n stopPropagation: () => void;\n initEvent: () => void;\n initUIEvent: () => void;\n clone: () => void;\n which: number;\n}\n\nexport interface IFederatedMouseEvent extends IFederatedEvent {\n altKey: boolean;\n button: number;\n buttons: number;\n ctrlKey: boolean;\n metaKey: boolean;\n relatedTarget: EventTarget | null;\n shiftKey: boolean;\n client: IPointLike;\n get clientX(): number;\n get clientY(): number;\n detail: number;\n movement: IPointLike;\n get movementX(): number;\n get movementY(): number;\n offset: IPointLike;\n get offsetX(): number;\n get offsetY(): number;\n global: IPointLike;\n get globalX(): number;\n get globalY(): number;\n screen: IPointLike;\n get screenX(): number;\n get screenY(): number;\n getModifierState: (key: string) => boolean;\n initMouseEvent: (\n _typeArg: string,\n _canBubbleArg: boolean,\n _cancelableArg: boolean,\n _viewArg: Window,\n _detailArg: number,\n _screenXArg: number,\n _screenYArg: number,\n _clientXArg: number,\n _clientYArg: number,\n _ctrlKeyArg: boolean,\n _altKeyArg: boolean,\n _shiftKeyArg: boolean,\n _metaKeyArg: boolean,\n _buttonArg: number,\n _relatedTargetArg: EventTarget\n ) => void;\n}\n\nexport interface IFederatedWheelEvent extends IFederatedMouseEvent {\n deltaMode: number;\n deltaX: number;\n deltaY: number;\n deltaZ: number;\n clone: () => IFederatedWheelEvent;\n}\n\nexport interface IFederatedPointerEvent extends IFederatedMouseEvent {\n pointerId: number;\n width: number;\n height: number;\n isPrimary: boolean;\n pointerType: string;\n pressure: number;\n tangentialPressure: number;\n tiltX: number;\n tiltY: number;\n twist: number;\n detail: number;\n getCoalescedEvents: () => PointerEvent[];\n getPredictedEvents: () => PointerEvent[];\n clone: () => IFederatedPointerEvent;\n}\n\n/**\n * 代码参考自 https://github.com/pixijs/pixijs\n * The MIT License\n\n Copyright (c) 2013-2023 Mathew Groves, Chad Engler\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n */\n\nexport interface IEventTarget extends INode {\n /** Whether this event target should fire UI events. */\n pickable: boolean;\n /** The parent of this event target. */\n parent: IEventTarget | null;\n /** Whether this event target should be visible. */\n visible: boolean;\n\n /** The children of this event target. */\n children?: IEventTarget[];\n\n /** Whether this event target has any children that need UI events. This can be used optimize event propagation. */\n childrenPickable?: boolean;\n\n attribute?: Partial<IGraphicAttribute>;\n\n emit: (eventName: any, data: Dict<any>) => boolean;\n\n getCursor: () => string;\n setCursor: (c?: string) => void;\n}\n\nexport interface IRender {\n visualCanvas: {\n getCanvas: () => HTMLElement;\n };\n pickEvent: (position: [number, number], children: IEventTarget[], geoPick?: boolean) => IEventTarget | null;\n [key: string]: any;\n}\n\n// 事件系统扩展接口\nexport interface IEventExtension {\n /**\n * bind events\n */\n initEvents: () => void;\n /**\n * unbind events\n */\n removeEvents: () => void;\n /**\n * release\n */\n release: () => void;\n}\n\nexport type GestureDirection = 'none' | 'left' | 'right' | 'down' | 'up';\n\nexport interface GestureEvent extends IFederatedPointerEvent {\n points: IPointLike[];\n direction: GestureDirection;\n deltaX: number;\n deltaY: number;\n scale: number;\n center: IPointLike;\n velocity: number;\n}\n\nexport interface GestureConfig {\n press?: {\n /**\n * @default 251\n * Minimal press time in ms.\n * @see http://hammerjs.github.io/recognizer-press/\n */\n time?: number;\n /**\n * @default 10\n * Minimal movement that is allowed while pressing.\n * @see http://hammerjs.github.io/recognizer-press/\n */\n threshold?: number;\n };\n swipe?: {\n /**\n * Minimal distance required before recognizing.\n * @default 10\n * @see https://hammerjs.github.io/recognizer-swipe/\n */\n threshold?: number;\n /**\n * Minimal velocity required before recognizing, unit is in px per ms.\n * @default 0.3\n * @see http://hammerjs.github.io/recognizer-swipe/\n */\n velocity?: number;\n };\n}\n\nexport interface DefaultGestureConfig {\n press: {\n time: number;\n threshold: number;\n };\n swipe: {\n threshold: number;\n velocity: number;\n };\n}\n\nexport interface EmitEventObject {\n type: string;\n ev: GestureEvent;\n}\n\nexport type LooseFunction = (...args: any[]) => any;\n\nexport type IElementLike = Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> & {\n style: CSSStyleDeclaration | Record<string, any>;\n getNativeHandler?: () => ICanvas;\n getBoundingClientRect: () => IDomRectLike;\n};\n\nexport type RenderConfig = {\n /**\n * 事件绑定的 canvas 元素\n */\n targetElement: IElementLike;\n /**\n * 环境分辨率\n */\n resolution: number;\n /**\n * 场景树根节点\n */\n rootNode: IEventTarget;\n global: IGlobal;\n /** 是否自动阻止事件 */\n autoPreventDefault?: boolean;\n /** 绘图视口 */\n viewport: {\n x: number;\n y: number;\n width: number;\n height: number;\n viewBox?: IBounds;\n };\n};\n\nexport type NativeEvent = MouseEvent | PointerEvent | TouchEvent;\n"]}
|