@visactor/vrender-core 0.17.0-alpha.8 → 0.17.1-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/allocator/bounds-allocate.d.ts +13 -0
- package/cjs/allocator/bounds-allocate.js +38 -0
- package/cjs/allocator/bounds-allocate.js.map +1 -0
- package/cjs/allocator/canvas-allocate.d.ts +4 -0
- package/cjs/allocator/canvas-allocate.js +19 -6
- package/cjs/allocator/canvas-allocate.js.map +1 -1
- package/cjs/allocator/graphic-allocate.d.ts +56 -1
- package/cjs/allocator/graphic-allocate.js +163 -1
- package/cjs/allocator/graphic-allocate.js.map +1 -1
- package/cjs/animate/Ticker/default-ticker.js +3 -3
- package/cjs/animate/Ticker/default-ticker.js.map +1 -1
- package/cjs/animate/animate.js +2 -2
- package/cjs/animate/animate.js.map +1 -1
- package/cjs/animate/config.js +1 -2
- package/cjs/animate/custom-animate.d.ts +14 -3
- package/cjs/animate/custom-animate.js +100 -5
- package/cjs/animate/custom-animate.js.map +1 -1
- package/cjs/animate/default-ticker.js +2 -1
- package/cjs/canvas/contributions/base-canvas.js +4 -2
- package/cjs/canvas/contributions/base-canvas.js.map +1 -1
- package/cjs/common/Reflect-metadata.js +349 -359
- package/cjs/common/Reflect-metadata.js.map +1 -1
- package/cjs/common/bounds-context.js +2 -1
- package/cjs/common/inversify/annotation/inject.d.ts +1 -0
- package/cjs/common/inversify/annotation/inject.js +10 -0
- package/cjs/common/inversify/annotation/inject.js.map +1 -0
- package/cjs/common/inversify/annotation/inject_base.d.ts +14 -0
- package/cjs/common/inversify/annotation/inject_base.js +39 -0
- package/cjs/common/inversify/annotation/inject_base.js.map +1 -0
- package/cjs/common/inversify/annotation/injectable.d.ts +1 -0
- package/cjs/common/{inversify-lite/annotation/post_construct.js → inversify/annotation/injectable.js} +15 -5
- package/cjs/common/inversify/annotation/injectable.js.map +1 -0
- package/cjs/common/inversify/annotation/multi_inject.d.ts +1 -0
- package/cjs/common/inversify/annotation/multi_inject.js +10 -0
- package/cjs/common/inversify/annotation/multi_inject.js.map +1 -0
- package/cjs/common/inversify/annotation/named.d.ts +1 -0
- package/cjs/common/inversify/annotation/named.js +14 -0
- package/cjs/common/inversify/annotation/named.js.map +1 -0
- package/cjs/common/inversify/binding.d.ts +18 -0
- package/cjs/common/inversify/binding.js +26 -0
- package/cjs/common/inversify/binding.js.map +1 -0
- package/cjs/common/inversify/container.d.ts +28 -0
- package/cjs/common/inversify/container.js +155 -0
- package/cjs/common/inversify/container.js.map +1 -0
- package/cjs/common/inversify/cotainer-module.d.ts +6 -0
- package/cjs/common/inversify/cotainer-module.js +16 -0
- package/cjs/common/inversify/cotainer-module.js.map +1 -0
- package/cjs/common/inversify/index.d.ts +7 -0
- package/cjs/common/inversify/index.js +75 -0
- package/cjs/common/inversify/index.js.map +1 -0
- package/cjs/common/inversify/interfaces.d.ts +218 -0
- package/cjs/common/inversify/interfaces.js +6 -0
- package/cjs/common/inversify/interfaces.js.map +1 -0
- package/cjs/common/inversify/literal_types.d.ts +5 -0
- package/cjs/common/inversify/literal_types.js +34 -0
- package/cjs/common/inversify/literal_types.js.map +1 -0
- package/cjs/common/inversify/meta-data.d.ts +6 -0
- package/cjs/common/inversify/meta-data.js +19 -0
- package/cjs/common/inversify/meta-data.js.map +1 -0
- package/cjs/common/inversify/metadata_keys.d.ts +12 -0
- package/cjs/common/inversify/metadata_keys.js +15 -0
- package/cjs/common/inversify/metadata_keys.js.map +1 -0
- package/cjs/common/inversify/metadata_reader.d.ts +6 -0
- package/cjs/common/inversify/metadata_reader.js +28 -0
- package/cjs/common/inversify/metadata_reader.js.map +1 -0
- package/cjs/common/inversify/syntax/binding_in_syntax.d.ts +10 -0
- package/cjs/common/inversify/syntax/binding_in_syntax.js +29 -0
- package/cjs/common/inversify/syntax/binding_in_syntax.js.map +1 -0
- package/cjs/common/inversify/syntax/binding_to_syntax.d.ts +12 -0
- package/cjs/common/inversify/syntax/binding_to_syntax.js +40 -0
- package/cjs/common/inversify/syntax/binding_to_syntax.js.map +1 -0
- package/cjs/common/inversify/syntax/constraint_helpers.d.ts +2 -0
- package/cjs/common/inversify/syntax/constraint_helpers.js +20 -0
- package/cjs/common/inversify/syntax/constraint_helpers.js.map +1 -0
- package/cjs/common/inversify-lite/container/container.js +1 -3
- package/cjs/common/inversify-lite/container/container.js.map +1 -1
- package/cjs/common/inversify-lite/index.d.ts +1 -8
- package/cjs/common/inversify-lite/index.js +1 -64
- package/cjs/common/inversify-lite/index.js.map +1 -1
- package/cjs/common/inversify-lite/interfaces/interfaces.d.ts +0 -2
- package/cjs/common/inversify-lite/interfaces/interfaces.js.map +1 -1
- package/cjs/common/inversify-lite/planning/queryable_string.d.ts +0 -2
- package/cjs/common/inversify-lite/planning/queryable_string.js +0 -10
- package/cjs/common/inversify-lite/planning/queryable_string.js.map +1 -1
- package/cjs/common/inversify-lite/resolution/resolver.js.map +1 -1
- package/cjs/common/segment/monotone.js +2 -2
- package/cjs/common/segment/monotone.js.map +1 -1
- package/cjs/common/shape/rect.js +2 -1
- package/cjs/common/shape/rect.js.map +1 -1
- package/cjs/common/sort.js +1 -2
- package/cjs/common/store.js +2 -1
- package/cjs/common/utils.d.ts +1 -0
- package/cjs/common/utils.js +10 -1
- package/cjs/common/utils.js.map +1 -1
- package/cjs/common/xml/OrderedObjParser.js +2 -2
- package/cjs/common/xml/OrderedObjParser.js.map +1 -1
- package/cjs/core/contributions/layerHandler/canvas2d-contribution.d.ts +2 -2
- package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +4 -9
- package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
- package/cjs/core/contributions/layerHandler/empty-contribution.d.ts +2 -2
- package/cjs/core/contributions/layerHandler/empty-contribution.js +4 -9
- package/cjs/core/contributions/layerHandler/empty-contribution.js.map +1 -1
- package/cjs/core/contributions/layerHandler/offscreen2d-contribution.d.ts +2 -2
- package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js +4 -9
- package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
- package/cjs/core/contributions/textMeasure/AtextMeasure.d.ts +14 -2
- package/cjs/core/contributions/textMeasure/AtextMeasure.js +99 -13
- package/cjs/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
- package/cjs/core/contributions/textMeasure/layout.d.ts +2 -2
- package/cjs/core/contributions/textMeasure/layout.js +4 -4
- package/cjs/core/contributions/textMeasure/layout.js.map +1 -1
- package/cjs/core/contributions/textMeasure/modules.js +1 -2
- package/cjs/core/contributions/textMeasure/modules.js.map +1 -1
- package/cjs/core/core-modules.js +5 -6
- package/cjs/core/core-modules.js.map +1 -1
- package/cjs/core/global-module.js +2 -0
- package/cjs/core/global.d.ts +9 -0
- package/cjs/core/global.js +23 -5
- package/cjs/core/global.js.map +1 -1
- package/cjs/core/graphic-utils.d.ts +7 -4
- package/cjs/core/graphic-utils.js +18 -14
- package/cjs/core/graphic-utils.js.map +1 -1
- package/cjs/core/layer-service.d.ts +5 -2
- package/cjs/core/layer-service.js +17 -15
- package/cjs/core/layer-service.js.map +1 -1
- package/cjs/core/stage.d.ts +8 -4
- package/cjs/core/stage.js +42 -27
- package/cjs/core/stage.js.map +1 -1
- package/cjs/core/window.d.ts +2 -2
- package/cjs/core/window.js +7 -12
- package/cjs/core/window.js.map +1 -1
- package/cjs/env-check.d.ts +3 -0
- package/cjs/env-check.js +19 -0
- package/cjs/env-check.js.map +1 -0
- package/cjs/event/event-manager.d.ts +5 -1
- package/cjs/event/event-manager.js +31 -25
- package/cjs/event/event-manager.js.map +1 -1
- package/cjs/event/event-system.js +12 -11
- package/cjs/event/event-system.js.map +1 -1
- package/cjs/event/federated-event/base-event.d.ts +5 -6
- package/cjs/event/federated-event/base-event.js +15 -5
- package/cjs/event/federated-event/base-event.js.map +1 -1
- package/cjs/event/federated-event/mouse-event.d.ts +6 -6
- package/cjs/event/federated-event/mouse-event.js +17 -3
- package/cjs/event/federated-event/mouse-event.js.map +1 -1
- package/cjs/graphic/area.js +1 -0
- package/cjs/graphic/area.js.map +1 -1
- package/cjs/graphic/bounds.d.ts +2 -2
- package/cjs/graphic/bounds.js +8 -10
- package/cjs/graphic/bounds.js.map +1 -1
- package/cjs/graphic/builtin-symbol/index.d.ts +1 -0
- package/cjs/graphic/builtin-symbol/index.js +7 -2
- package/cjs/graphic/builtin-symbol/index.js.map +1 -1
- package/cjs/graphic/builtin-symbol/rect.d.ts +2 -1
- package/cjs/graphic/builtin-symbol/rect.js +11 -6
- package/cjs/graphic/builtin-symbol/rect.js.map +1 -1
- package/cjs/graphic/config.js +11 -3
- package/cjs/graphic/config.js.map +1 -1
- package/cjs/graphic/graphic-creator.d.ts +24 -36
- package/cjs/graphic/graphic-creator.js +16 -99
- package/cjs/graphic/graphic-creator.js.map +1 -1
- package/cjs/graphic/graphic-service/arc-contribution.d.ts +1 -5
- package/cjs/graphic/graphic-service/arc-contribution.js +0 -18
- package/cjs/graphic/graphic-service/arc-contribution.js.map +1 -1
- package/cjs/graphic/graphic-service/area-contribution.d.ts +1 -1
- package/cjs/graphic/graphic-service/area-contribution.js +1 -4
- package/cjs/graphic/graphic-service/area-contribution.js.map +1 -1
- package/cjs/graphic/graphic-service/circle-contribution.d.ts +1 -5
- package/cjs/graphic/graphic-service/circle-contribution.js +0 -18
- package/cjs/graphic/graphic-service/circle-contribution.js.map +1 -1
- package/cjs/graphic/graphic-service/common-contribution.js +2 -11
- package/cjs/graphic/graphic-service/common-contribution.js.map +1 -1
- package/cjs/graphic/graphic-service/graphic-module.js +2 -17
- package/cjs/graphic/graphic-service/graphic-module.js.map +1 -1
- package/cjs/graphic/graphic-service/graphic-service.d.ts +5 -9
- package/cjs/graphic/graphic-service/graphic-service.js +43 -32
- package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
- package/cjs/graphic/graphic-service/path-contribution.d.ts +1 -5
- package/cjs/graphic/graphic-service/path-contribution.js +0 -18
- package/cjs/graphic/graphic-service/path-contribution.js.map +1 -1
- package/cjs/graphic/graphic-service/rect-contribution.d.ts +1 -5
- package/cjs/graphic/graphic-service/rect-contribution.js +0 -18
- package/cjs/graphic/graphic-service/rect-contribution.js.map +1 -1
- package/cjs/graphic/graphic-service/symbol-contribution.d.ts +0 -1
- package/cjs/graphic/graphic-service/symbol-contribution.js +4 -13
- package/cjs/graphic/graphic-service/symbol-contribution.js.map +1 -1
- package/cjs/graphic/graphic.js +9 -7
- package/cjs/graphic/graphic.js.map +1 -1
- package/cjs/graphic/group.d.ts +1 -0
- package/cjs/graphic/group.js +7 -3
- package/cjs/graphic/group.js.map +1 -1
- package/cjs/graphic/index.d.ts +1 -0
- package/cjs/graphic/index.js +6 -5
- package/cjs/graphic/index.js.map +1 -1
- package/cjs/graphic/line.js +1 -0
- package/cjs/graphic/line.js.map +1 -1
- package/cjs/graphic/node-tree.js +1 -1
- package/cjs/graphic/node-tree.js.map +1 -1
- package/cjs/graphic/rect.d.ts +2 -3
- package/cjs/graphic/rect.js +3 -5
- package/cjs/graphic/rect.js.map +1 -1
- package/cjs/graphic/richtext/line.d.ts +1 -0
- package/cjs/graphic/richtext/line.js +6 -3
- package/cjs/graphic/richtext/line.js.map +1 -1
- package/cjs/graphic/richtext/paragraph.js +12 -11
- package/cjs/graphic/richtext/paragraph.js.map +1 -1
- package/cjs/graphic/richtext/utils.js +2 -1
- package/cjs/graphic/richtext/utils.js.map +1 -1
- package/cjs/graphic/richtext.d.ts +3 -3
- package/cjs/graphic/richtext.js +12 -3
- package/cjs/graphic/richtext.js.map +1 -1
- package/cjs/graphic/symbol.js +11 -9
- package/cjs/graphic/symbol.js.map +1 -1
- package/cjs/graphic/text.d.ts +1 -0
- package/cjs/graphic/text.js +97 -11
- package/cjs/graphic/text.js.map +1 -1
- package/cjs/graphic/theme.d.ts +4 -4
- package/cjs/graphic/theme.js +26 -27
- package/cjs/graphic/theme.js.map +1 -1
- package/cjs/graphic/tools.js +1 -1
- package/cjs/graphic/tools.js.map +1 -1
- package/cjs/graphic/wrap-text.js +6 -5
- package/cjs/graphic/wrap-text.js.map +1 -1
- package/cjs/index.d.ts +18 -0
- package/cjs/index.js +10 -1
- package/cjs/index.js.map +1 -1
- package/cjs/interface/allocator.d.ts +1 -0
- package/cjs/interface/allocator.js.map +1 -1
- package/cjs/interface/event.d.ts +15 -44
- package/cjs/interface/event.js.map +1 -1
- package/cjs/interface/global.d.ts +1 -0
- package/cjs/interface/global.js.map +1 -1
- package/cjs/interface/graphic/rect.d.ts +2 -0
- package/cjs/interface/graphic/rect.js.map +1 -1
- package/cjs/interface/graphic/richText.d.ts +1 -1
- package/cjs/interface/graphic/richText.js.map +1 -1
- package/cjs/interface/graphic/text.d.ts +5 -1
- package/cjs/interface/graphic/text.js.map +1 -1
- package/cjs/interface/graphic.d.ts +3 -2
- package/cjs/interface/graphic.js.map +1 -1
- package/cjs/interface/render.d.ts +2 -2
- package/cjs/interface/render.js.map +1 -1
- package/cjs/interface/stage.d.ts +8 -1
- package/cjs/interface/stage.js.map +1 -1
- package/cjs/interface/text.d.ts +2 -2
- package/cjs/interface/text.js.map +1 -1
- package/cjs/modules.d.ts +1 -2
- package/cjs/modules.js +8 -8
- package/cjs/modules.js.map +1 -1
- package/cjs/picker/global-picker-service.d.ts +2 -2
- package/cjs/picker/global-picker-service.js +4 -9
- package/cjs/picker/global-picker-service.js.map +1 -1
- package/cjs/picker/pick-interceptor.js +2 -1
- package/cjs/picker/pick-interceptor.js.map +1 -1
- package/cjs/picker/pick-modules.js +2 -4
- package/cjs/picker/pick-modules.js.map +1 -1
- package/cjs/picker/picker-service.d.ts +2 -2
- package/cjs/picker/picker-service.js +11 -7
- package/cjs/picker/picker-service.js.map +1 -1
- package/cjs/plugins/builtin-plugin/flex-layout-plugin.js +9 -5
- package/cjs/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
- package/cjs/plugins/builtin-plugin/html-attribute-plugin.js +1 -1
- package/cjs/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
- package/cjs/plugins/plugin-modules.js +1 -2
- package/cjs/plugins/plugin-modules.js.map +1 -1
- package/cjs/render/contributions/render/arc-module.d.ts +2 -0
- package/cjs/render/contributions/render/arc-module.js +17 -0
- package/cjs/render/contributions/render/arc-module.js.map +1 -0
- package/cjs/render/contributions/render/arc-render.js +2 -1
- package/cjs/render/contributions/render/arc-render.js.map +1 -1
- package/cjs/render/contributions/render/arc3d-module.d.ts +2 -0
- package/cjs/render/contributions/render/arc3d-module.js +15 -0
- package/cjs/render/contributions/render/arc3d-module.js.map +1 -0
- package/cjs/render/contributions/render/area-module.d.ts +2 -0
- package/cjs/render/contributions/render/area-module.js +18 -0
- package/cjs/render/contributions/render/area-module.js.map +1 -0
- package/cjs/render/contributions/render/area-render.d.ts +1 -0
- package/cjs/render/contributions/render/area-render.js +44 -6
- package/cjs/render/contributions/render/area-render.js.map +1 -1
- package/cjs/render/contributions/render/base-render.d.ts +1 -1
- package/cjs/render/contributions/render/base-render.js +15 -18
- package/cjs/render/contributions/render/base-render.js.map +1 -1
- package/cjs/render/contributions/render/circle-module.d.ts +2 -0
- package/cjs/render/contributions/render/circle-module.js +17 -0
- package/cjs/render/contributions/render/circle-module.js.map +1 -0
- package/cjs/render/contributions/render/circle-render.js +2 -1
- package/cjs/render/contributions/render/circle-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/arc-contribution-render.d.ts +3 -7
- package/cjs/render/contributions/render/contributions/arc-contribution-render.js +7 -30
- package/cjs/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/area-contribution-render.d.ts +3 -4
- package/cjs/render/contributions/render/contributions/area-contribution-render.js +7 -21
- package/cjs/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/base-contribution-render.d.ts +4 -0
- package/cjs/render/contributions/render/contributions/base-contribution-render.js +24 -15
- package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/circle-contribution-render.d.ts +3 -7
- package/cjs/render/contributions/render/contributions/circle-contribution-render.js +7 -30
- package/cjs/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/constants.d.ts +1 -0
- package/cjs/render/contributions/render/contributions/constants.js +2 -2
- package/cjs/render/contributions/render/contributions/constants.js.map +1 -1
- package/cjs/render/contributions/render/contributions/group-contribution-render.d.ts +1 -0
- package/cjs/render/contributions/render/contributions/group-contribution-render.js +8 -14
- package/cjs/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/image-contribution-render.d.ts +1 -0
- package/cjs/render/contributions/render/contributions/image-contribution-render.js +8 -15
- package/cjs/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/path-contribution-render.d.ts +2 -9
- package/cjs/render/contributions/render/contributions/path-contribution-render.js +4 -25
- package/cjs/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/polygon-contribution-render.d.ts +2 -9
- package/cjs/render/contributions/render/contributions/polygon-contribution-render.js +4 -25
- package/cjs/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/rect-contribution-render.d.ts +5 -7
- package/cjs/render/contributions/render/contributions/rect-contribution-render.js +17 -37
- package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/symbol-contribution-render.d.ts +3 -7
- package/cjs/render/contributions/render/contributions/symbol-contribution-render.js +6 -27
- package/cjs/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/text-contribution-render.d.ts +8 -1
- package/cjs/render/contributions/render/contributions/text-contribution-render.js +25 -1
- package/cjs/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/draw-contribution.d.ts +7 -6
- package/cjs/render/contributions/render/draw-contribution.js +44 -26
- package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
- package/cjs/render/contributions/render/draw-interceptor.d.ts +7 -1
- package/cjs/render/contributions/render/draw-interceptor.js +43 -28
- package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
- package/cjs/render/contributions/render/glyph-module.d.ts +2 -0
- package/cjs/render/contributions/render/glyph-module.js +15 -0
- package/cjs/render/contributions/render/glyph-module.js.map +1 -0
- package/cjs/render/contributions/render/glyph-render.d.ts +1 -2
- package/cjs/render/contributions/render/glyph-render.js +13 -8
- package/cjs/render/contributions/render/glyph-render.js.map +1 -1
- package/cjs/render/contributions/render/group-render.js +3 -2
- package/cjs/render/contributions/render/group-render.js.map +1 -1
- package/cjs/render/contributions/render/image-module.d.ts +2 -0
- package/cjs/render/contributions/render/image-module.js +16 -0
- package/cjs/render/contributions/render/image-module.js.map +1 -0
- package/cjs/render/contributions/render/image-render.js +4 -2
- package/cjs/render/contributions/render/image-render.js.map +1 -1
- package/cjs/render/contributions/render/incremental-draw-contribution.d.ts +2 -6
- package/cjs/render/contributions/render/incremental-draw-contribution.js +8 -11
- package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
- package/cjs/render/contributions/render/line-module.d.ts +2 -0
- package/cjs/render/contributions/render/line-module.js +17 -0
- package/cjs/render/contributions/render/line-module.js.map +1 -0
- package/cjs/render/contributions/render/line-render.d.ts +1 -0
- package/cjs/render/contributions/render/line-render.js +21 -6
- package/cjs/render/contributions/render/line-render.js.map +1 -1
- package/cjs/render/contributions/render/module.js +8 -98
- package/cjs/render/contributions/render/module.js.map +1 -1
- package/cjs/render/contributions/render/path-module.d.ts +2 -0
- package/cjs/render/contributions/render/path-module.js +17 -0
- package/cjs/render/contributions/render/path-module.js.map +1 -0
- package/cjs/render/contributions/render/path-render.d.ts +2 -1
- package/cjs/render/contributions/render/path-render.js +8 -5
- package/cjs/render/contributions/render/path-render.js.map +1 -1
- package/cjs/render/contributions/render/polygon-module.d.ts +2 -0
- package/cjs/render/contributions/render/polygon-module.js +16 -0
- package/cjs/render/contributions/render/polygon-module.js.map +1 -0
- package/cjs/render/contributions/render/polygon-render.js +2 -1
- package/cjs/render/contributions/render/polygon-render.js.map +1 -1
- package/cjs/render/contributions/render/pyramid3d-module.d.ts +2 -0
- package/cjs/render/contributions/render/pyramid3d-module.js +15 -0
- package/cjs/render/contributions/render/pyramid3d-module.js.map +1 -0
- package/cjs/render/contributions/render/rect-module.d.ts +2 -0
- package/cjs/render/contributions/render/rect-module.js +17 -0
- package/cjs/render/contributions/render/rect-module.js.map +1 -0
- package/cjs/render/contributions/render/rect-render.d.ts +2 -1
- package/cjs/render/contributions/render/rect-render.js +11 -5
- package/cjs/render/contributions/render/rect-render.js.map +1 -1
- package/cjs/render/contributions/render/rect3d-module.d.ts +2 -0
- package/cjs/render/contributions/render/rect3d-module.js +15 -0
- package/cjs/render/contributions/render/rect3d-module.js.map +1 -0
- package/cjs/render/contributions/render/render-slector.d.ts +1 -4
- package/cjs/render/contributions/render/render-slector.js +0 -20
- package/cjs/render/contributions/render/render-slector.js.map +1 -1
- package/cjs/render/contributions/render/richtext-module.d.ts +2 -0
- package/cjs/render/contributions/render/richtext-module.js +15 -0
- package/cjs/render/contributions/render/richtext-module.js.map +1 -0
- package/cjs/render/contributions/render/richtext-render.d.ts +1 -0
- package/cjs/render/contributions/render/richtext-render.js +12 -7
- package/cjs/render/contributions/render/richtext-render.js.map +1 -1
- package/cjs/render/contributions/render/symbol-module.d.ts +2 -0
- package/cjs/render/contributions/render/symbol-module.js +17 -0
- package/cjs/render/contributions/render/symbol-module.js.map +1 -0
- package/cjs/render/contributions/render/symbol-render.js +22 -5
- package/cjs/render/contributions/render/symbol-render.js.map +1 -1
- package/cjs/render/contributions/render/text-module.d.ts +2 -0
- package/cjs/render/contributions/render/text-module.js +16 -0
- package/cjs/render/contributions/render/text-module.js.map +1 -0
- package/cjs/render/contributions/render/text-render.js +13 -10
- package/cjs/render/contributions/render/text-render.js.map +1 -1
- package/cjs/render/contributions/render/utils.js +2 -2
- package/cjs/render/contributions/render/utils.js.map +1 -1
- package/cjs/render/render-modules.js +1 -1
- package/cjs/render/render-modules.js.map +1 -1
- package/cjs/render/render-service.js +1 -1
- package/cjs/render/render-service.js.map +1 -1
- package/cjs/resource-loader/loader.js +1 -3
- package/cjs/resource-loader/loader.js.map +1 -1
- package/dist/index.js +8931 -9097
- package/dist/index.min.js +1 -1
- package/es/allocator/bounds-allocate.d.ts +13 -0
- package/es/allocator/bounds-allocate.js +32 -0
- package/es/allocator/bounds-allocate.js.map +1 -0
- package/es/allocator/canvas-allocate.d.ts +4 -0
- package/es/allocator/canvas-allocate.js +19 -6
- package/es/allocator/canvas-allocate.js.map +1 -1
- package/es/allocator/graphic-allocate.d.ts +56 -1
- package/es/allocator/graphic-allocate.js +155 -1
- package/es/allocator/graphic-allocate.js.map +1 -1
- package/es/animate/Ticker/default-ticker.js +4 -2
- package/es/animate/Ticker/default-ticker.js.map +1 -1
- package/es/animate/animate.js +3 -3
- package/es/animate/animate.js.map +1 -1
- package/es/animate/config.js +1 -2
- package/es/animate/custom-animate.d.ts +14 -3
- package/es/animate/custom-animate.js +103 -5
- package/es/animate/custom-animate.js.map +1 -1
- package/es/animate/default-ticker.js +2 -1
- package/es/canvas/contributions/base-canvas.js +4 -2
- package/es/canvas/contributions/base-canvas.js.map +1 -1
- package/es/common/Reflect-metadata.js +349 -359
- package/es/common/Reflect-metadata.js.map +1 -1
- package/es/common/bounds-context.js +2 -1
- package/es/common/inversify/annotation/inject.d.ts +1 -0
- package/es/common/inversify/annotation/inject.js +6 -0
- package/es/common/inversify/annotation/inject.js.map +1 -0
- package/es/common/inversify/annotation/inject_base.d.ts +14 -0
- package/es/common/inversify/annotation/inject_base.js +29 -0
- package/es/common/inversify/annotation/inject_base.js.map +1 -0
- package/es/common/inversify/annotation/injectable.d.ts +1 -0
- package/es/common/inversify/annotation/injectable.js +10 -0
- package/es/common/inversify/annotation/injectable.js.map +1 -0
- package/es/common/inversify/annotation/multi_inject.d.ts +1 -0
- package/es/common/inversify/annotation/multi_inject.js +6 -0
- package/es/common/inversify/annotation/multi_inject.js.map +1 -0
- package/es/common/inversify/annotation/named.d.ts +1 -0
- package/es/common/inversify/annotation/named.js +10 -0
- package/es/common/inversify/annotation/named.js.map +1 -0
- package/es/common/inversify/binding.d.ts +18 -0
- package/es/common/inversify/binding.js +22 -0
- package/es/common/inversify/binding.js.map +1 -0
- package/es/common/inversify/container.d.ts +28 -0
- package/es/common/inversify/container.js +155 -0
- package/es/common/inversify/container.js.map +1 -0
- package/es/common/inversify/cotainer-module.d.ts +6 -0
- package/es/common/inversify/cotainer-module.js +8 -0
- package/es/common/inversify/cotainer-module.js.map +1 -0
- package/es/common/inversify/index.d.ts +7 -0
- package/es/common/inversify/index.js +14 -0
- package/es/common/inversify/index.js.map +1 -0
- package/es/common/inversify/interfaces.d.ts +218 -0
- package/es/common/inversify/interfaces.js +2 -0
- package/es/common/inversify/interfaces.js.map +1 -0
- package/es/common/inversify/literal_types.d.ts +5 -0
- package/es/common/inversify/literal_types.js +20 -0
- package/es/common/inversify/literal_types.js.map +1 -0
- package/es/common/inversify/meta-data.d.ts +6 -0
- package/es/common/inversify/meta-data.js +11 -0
- package/es/common/inversify/meta-data.js.map +1 -0
- package/es/common/inversify/metadata_keys.d.ts +12 -0
- package/es/common/inversify/metadata_keys.js +28 -0
- package/es/common/inversify/metadata_keys.js.map +1 -0
- package/es/common/inversify/metadata_reader.d.ts +6 -0
- package/es/common/inversify/metadata_reader.js +18 -0
- package/es/common/inversify/metadata_reader.js.map +1 -0
- package/es/common/inversify/syntax/binding_in_syntax.d.ts +10 -0
- package/es/common/inversify/syntax/binding_in_syntax.js +24 -0
- package/es/common/inversify/syntax/binding_in_syntax.js.map +1 -0
- package/es/common/inversify/syntax/binding_to_syntax.d.ts +12 -0
- package/es/common/inversify/syntax/binding_to_syntax.js +36 -0
- package/es/common/inversify/syntax/binding_to_syntax.js.map +1 -0
- package/es/common/inversify/syntax/constraint_helpers.d.ts +2 -0
- package/es/common/inversify/syntax/constraint_helpers.js +18 -0
- package/es/common/inversify/syntax/constraint_helpers.js.map +1 -0
- package/es/common/inversify-lite/container/container.js +2 -4
- package/es/common/inversify-lite/container/container.js.map +1 -1
- package/es/common/inversify-lite/index.d.ts +1 -8
- package/es/common/inversify-lite/index.js +1 -15
- package/es/common/inversify-lite/index.js.map +1 -1
- package/es/common/inversify-lite/interfaces/interfaces.d.ts +0 -2
- package/es/common/inversify-lite/interfaces/interfaces.js.map +1 -1
- package/es/common/inversify-lite/planning/queryable_string.d.ts +0 -2
- package/es/common/inversify-lite/planning/queryable_string.js +0 -10
- package/es/common/inversify-lite/planning/queryable_string.js.map +1 -1
- package/es/common/inversify-lite/resolution/resolver.js.map +1 -1
- package/es/common/segment/monotone.js +2 -2
- package/es/common/segment/monotone.js.map +1 -1
- package/es/common/shape/rect.js +2 -1
- package/es/common/shape/rect.js.map +1 -1
- package/es/common/sort.js +1 -2
- package/es/common/store.js +2 -1
- package/es/common/utils.d.ts +1 -0
- package/es/common/utils.js +8 -1
- package/es/common/utils.js.map +1 -1
- package/es/common/xml/OrderedObjParser.js +2 -2
- package/es/common/xml/OrderedObjParser.js.map +1 -1
- package/es/core/contributions/layerHandler/canvas2d-contribution.d.ts +2 -2
- package/es/core/contributions/layerHandler/canvas2d-contribution.js +5 -9
- package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
- package/es/core/contributions/layerHandler/empty-contribution.d.ts +2 -2
- package/es/core/contributions/layerHandler/empty-contribution.js +5 -9
- package/es/core/contributions/layerHandler/empty-contribution.js.map +1 -1
- package/es/core/contributions/layerHandler/offscreen2d-contribution.d.ts +2 -2
- package/es/core/contributions/layerHandler/offscreen2d-contribution.js +5 -9
- package/es/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
- package/es/core/contributions/textMeasure/AtextMeasure.d.ts +14 -2
- package/es/core/contributions/textMeasure/AtextMeasure.js +99 -13
- package/es/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
- package/es/core/contributions/textMeasure/layout.d.ts +2 -2
- package/es/core/contributions/textMeasure/layout.js +4 -4
- package/es/core/contributions/textMeasure/layout.js.map +1 -1
- package/es/core/contributions/textMeasure/modules.js +1 -1
- package/es/core/contributions/textMeasure/modules.js.map +1 -1
- package/es/core/core-modules.js +4 -6
- package/es/core/core-modules.js.map +1 -1
- package/es/core/global-module.js +2 -0
- package/es/core/global.d.ts +9 -0
- package/es/core/global.js +23 -4
- package/es/core/global.js.map +1 -1
- package/es/core/graphic-utils.d.ts +7 -4
- package/es/core/graphic-utils.js +20 -15
- package/es/core/graphic-utils.js.map +1 -1
- package/es/core/layer-service.d.ts +5 -2
- package/es/core/layer-service.js +18 -15
- package/es/core/layer-service.js.map +1 -1
- package/es/core/stage.d.ts +8 -4
- package/es/core/stage.js +47 -30
- package/es/core/stage.js.map +1 -1
- package/es/core/window.d.ts +2 -2
- package/es/core/window.js +8 -12
- package/es/core/window.js.map +1 -1
- package/es/env-check.d.ts +3 -0
- package/es/env-check.js +12 -0
- package/es/env-check.js.map +1 -0
- package/es/event/event-manager.d.ts +5 -1
- package/es/event/event-manager.js +32 -26
- package/es/event/event-manager.js.map +1 -1
- package/es/event/event-system.js +8 -6
- package/es/event/event-system.js.map +1 -1
- package/es/event/federated-event/base-event.d.ts +5 -6
- package/es/event/federated-event/base-event.js +15 -5
- package/es/event/federated-event/base-event.js.map +1 -1
- package/es/event/federated-event/mouse-event.d.ts +6 -6
- package/es/event/federated-event/mouse-event.js +16 -4
- package/es/event/federated-event/mouse-event.js.map +1 -1
- package/es/graphic/area.js +1 -0
- package/es/graphic/area.js.map +1 -1
- package/es/graphic/bounds.d.ts +2 -2
- package/es/graphic/bounds.js +6 -8
- package/es/graphic/bounds.js.map +1 -1
- package/es/graphic/builtin-symbol/index.d.ts +1 -0
- package/es/graphic/builtin-symbol/index.js +7 -0
- package/es/graphic/builtin-symbol/index.js.map +1 -1
- package/es/graphic/builtin-symbol/rect.d.ts +2 -1
- package/es/graphic/builtin-symbol/rect.js +9 -4
- package/es/graphic/builtin-symbol/rect.js.map +1 -1
- package/es/graphic/config.js +12 -4
- package/es/graphic/config.js.map +1 -1
- package/es/graphic/graphic-creator.d.ts +24 -36
- package/es/graphic/graphic-creator.js +14 -125
- package/es/graphic/graphic-creator.js.map +1 -1
- package/es/graphic/graphic-service/arc-contribution.d.ts +1 -5
- package/es/graphic/graphic-service/arc-contribution.js +0 -15
- package/es/graphic/graphic-service/arc-contribution.js.map +1 -1
- package/es/graphic/graphic-service/area-contribution.d.ts +1 -1
- package/es/graphic/graphic-service/area-contribution.js +2 -1
- package/es/graphic/graphic-service/area-contribution.js.map +1 -1
- package/es/graphic/graphic-service/circle-contribution.d.ts +1 -5
- package/es/graphic/graphic-service/circle-contribution.js +0 -15
- package/es/graphic/graphic-service/circle-contribution.js.map +1 -1
- package/es/graphic/graphic-service/common-contribution.js +2 -14
- package/es/graphic/graphic-service/common-contribution.js.map +1 -1
- package/es/graphic/graphic-service/graphic-module.js +1 -23
- package/es/graphic/graphic-service/graphic-module.js.map +1 -1
- package/es/graphic/graphic-service/graphic-service.d.ts +5 -9
- package/es/graphic/graphic-service/graphic-service.js +44 -34
- package/es/graphic/graphic-service/graphic-service.js.map +1 -1
- package/es/graphic/graphic-service/path-contribution.d.ts +1 -5
- package/es/graphic/graphic-service/path-contribution.js +0 -15
- package/es/graphic/graphic-service/path-contribution.js.map +1 -1
- package/es/graphic/graphic-service/rect-contribution.d.ts +1 -5
- package/es/graphic/graphic-service/rect-contribution.js +0 -15
- package/es/graphic/graphic-service/rect-contribution.js.map +1 -1
- package/es/graphic/graphic-service/symbol-contribution.d.ts +0 -1
- package/es/graphic/graphic-service/symbol-contribution.js +2 -16
- package/es/graphic/graphic-service/symbol-contribution.js.map +1 -1
- package/es/graphic/graphic.js +8 -6
- package/es/graphic/graphic.js.map +1 -1
- package/es/graphic/group.d.ts +1 -0
- package/es/graphic/group.js +8 -1
- package/es/graphic/group.js.map +1 -1
- package/es/graphic/index.d.ts +1 -0
- package/es/graphic/index.js +2 -0
- package/es/graphic/index.js.map +1 -1
- package/es/graphic/line.js +1 -0
- package/es/graphic/line.js.map +1 -1
- package/es/graphic/node-tree.js +2 -2
- package/es/graphic/node-tree.js.map +1 -1
- package/es/graphic/rect.d.ts +2 -3
- package/es/graphic/rect.js +3 -7
- package/es/graphic/rect.js.map +1 -1
- package/es/graphic/richtext/line.d.ts +1 -0
- package/es/graphic/richtext/line.js +6 -4
- package/es/graphic/richtext/line.js.map +1 -1
- package/es/graphic/richtext/paragraph.js +5 -2
- package/es/graphic/richtext/paragraph.js.map +1 -1
- package/es/graphic/richtext/utils.js +2 -1
- package/es/graphic/richtext/utils.js.map +1 -1
- package/es/graphic/richtext.d.ts +3 -3
- package/es/graphic/richtext.js +12 -3
- package/es/graphic/richtext.js.map +1 -1
- package/es/graphic/symbol.js +11 -10
- package/es/graphic/symbol.js.map +1 -1
- package/es/graphic/text.d.ts +1 -0
- package/es/graphic/text.js +94 -13
- package/es/graphic/text.js.map +1 -1
- package/es/graphic/theme.d.ts +4 -4
- package/es/graphic/theme.js +27 -28
- package/es/graphic/theme.js.map +1 -1
- package/es/graphic/tools.js +1 -1
- package/es/graphic/tools.js.map +1 -1
- package/es/graphic/wrap-text.js +6 -4
- package/es/graphic/wrap-text.js.map +1 -1
- package/es/index.d.ts +18 -0
- package/es/index.js +36 -0
- package/es/index.js.map +1 -1
- package/es/interface/allocator.d.ts +1 -0
- package/es/interface/allocator.js.map +1 -1
- package/es/interface/event.d.ts +15 -44
- package/es/interface/event.js.map +1 -1
- package/es/interface/global.d.ts +1 -0
- package/es/interface/global.js.map +1 -1
- package/es/interface/graphic/rect.d.ts +2 -0
- package/es/interface/graphic/rect.js.map +1 -1
- package/es/interface/graphic/richText.d.ts +1 -1
- package/es/interface/graphic/richText.js.map +1 -1
- package/es/interface/graphic/text.d.ts +5 -1
- package/es/interface/graphic/text.js.map +1 -1
- package/es/interface/graphic.d.ts +3 -2
- package/es/interface/graphic.js.map +1 -1
- package/es/interface/render.d.ts +2 -2
- package/es/interface/render.js.map +1 -1
- package/es/interface/stage.d.ts +8 -1
- package/es/interface/stage.js.map +1 -1
- package/es/interface/text.d.ts +2 -2
- package/es/interface/text.js.map +1 -1
- package/es/modules.d.ts +1 -2
- package/es/modules.js +0 -4
- package/es/modules.js.map +1 -1
- package/es/picker/global-picker-service.d.ts +2 -2
- package/es/picker/global-picker-service.js +5 -9
- package/es/picker/global-picker-service.js.map +1 -1
- package/es/picker/pick-interceptor.js +2 -1
- package/es/picker/pick-interceptor.js.map +1 -1
- package/es/picker/pick-modules.js +1 -4
- package/es/picker/pick-modules.js.map +1 -1
- package/es/picker/picker-service.d.ts +2 -2
- package/es/picker/picker-service.js +10 -6
- package/es/picker/picker-service.js.map +1 -1
- package/es/plugins/builtin-plugin/flex-layout-plugin.js +12 -6
- package/es/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
- package/es/plugins/builtin-plugin/html-attribute-plugin.js +1 -1
- package/es/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
- package/es/plugins/plugin-modules.js +1 -2
- package/es/plugins/plugin-modules.js.map +1 -1
- package/es/render/contributions/render/arc-module.d.ts +2 -0
- package/es/render/contributions/render/arc-module.js +21 -0
- package/es/render/contributions/render/arc-module.js.map +1 -0
- package/es/render/contributions/render/arc-render.js +3 -0
- package/es/render/contributions/render/arc-render.js.map +1 -1
- package/es/render/contributions/render/arc3d-module.d.ts +2 -0
- package/es/render/contributions/render/arc3d-module.js +13 -0
- package/es/render/contributions/render/arc3d-module.js.map +1 -0
- package/es/render/contributions/render/area-module.d.ts +2 -0
- package/es/render/contributions/render/area-module.js +23 -0
- package/es/render/contributions/render/area-module.js.map +1 -0
- package/es/render/contributions/render/area-render.d.ts +1 -0
- package/es/render/contributions/render/area-render.js +45 -5
- package/es/render/contributions/render/area-render.js.map +1 -1
- package/es/render/contributions/render/base-render.d.ts +1 -1
- package/es/render/contributions/render/base-render.js +15 -22
- package/es/render/contributions/render/base-render.js.map +1 -1
- package/es/render/contributions/render/circle-module.d.ts +2 -0
- package/es/render/contributions/render/circle-module.js +21 -0
- package/es/render/contributions/render/circle-module.js.map +1 -0
- package/es/render/contributions/render/circle-render.js +3 -0
- package/es/render/contributions/render/circle-render.js.map +1 -1
- package/es/render/contributions/render/contributions/arc-contribution-render.d.ts +3 -7
- package/es/render/contributions/render/contributions/arc-contribution-render.js +6 -32
- package/es/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/area-contribution-render.d.ts +3 -4
- package/es/render/contributions/render/contributions/area-contribution-render.js +5 -23
- package/es/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/base-contribution-render.d.ts +4 -0
- package/es/render/contributions/render/contributions/base-contribution-render.js +21 -16
- package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/circle-contribution-render.d.ts +3 -7
- package/es/render/contributions/render/contributions/circle-contribution-render.js +6 -32
- package/es/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/constants.d.ts +1 -0
- package/es/render/contributions/render/contributions/constants.js +2 -0
- package/es/render/contributions/render/contributions/constants.js.map +1 -1
- package/es/render/contributions/render/contributions/group-contribution-render.d.ts +1 -0
- package/es/render/contributions/render/contributions/group-contribution-render.js +5 -15
- package/es/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/image-contribution-render.d.ts +1 -0
- package/es/render/contributions/render/contributions/image-contribution-render.js +6 -17
- package/es/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/path-contribution-render.d.ts +2 -9
- package/es/render/contributions/render/contributions/path-contribution-render.js +3 -29
- package/es/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/polygon-contribution-render.d.ts +2 -9
- package/es/render/contributions/render/contributions/polygon-contribution-render.js +3 -29
- package/es/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/rect-contribution-render.d.ts +5 -7
- package/es/render/contributions/render/contributions/rect-contribution-render.js +19 -46
- package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/symbol-contribution-render.d.ts +3 -7
- package/es/render/contributions/render/contributions/symbol-contribution-render.js +6 -24
- package/es/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/text-contribution-render.d.ts +8 -1
- package/es/render/contributions/render/contributions/text-contribution-render.js +24 -1
- package/es/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
- package/es/render/contributions/render/draw-contribution.d.ts +7 -6
- package/es/render/contributions/render/draw-contribution.js +49 -29
- package/es/render/contributions/render/draw-contribution.js.map +1 -1
- package/es/render/contributions/render/draw-interceptor.d.ts +7 -1
- package/es/render/contributions/render/draw-interceptor.js +42 -38
- package/es/render/contributions/render/draw-interceptor.js.map +1 -1
- package/es/render/contributions/render/glyph-module.d.ts +2 -0
- package/es/render/contributions/render/glyph-module.js +13 -0
- package/es/render/contributions/render/glyph-module.js.map +1 -0
- package/es/render/contributions/render/glyph-render.d.ts +1 -2
- package/es/render/contributions/render/glyph-render.js +12 -9
- package/es/render/contributions/render/glyph-render.js.map +1 -1
- package/es/render/contributions/render/group-render.js +4 -1
- package/es/render/contributions/render/group-render.js.map +1 -1
- package/es/render/contributions/render/image-module.d.ts +2 -0
- package/es/render/contributions/render/image-module.js +20 -0
- package/es/render/contributions/render/image-module.js.map +1 -0
- package/es/render/contributions/render/image-render.js +5 -2
- package/es/render/contributions/render/image-render.js.map +1 -1
- package/es/render/contributions/render/incremental-draw-contribution.d.ts +2 -6
- package/es/render/contributions/render/incremental-draw-contribution.js +5 -11
- package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
- package/es/render/contributions/render/line-module.d.ts +2 -0
- package/es/render/contributions/render/line-module.js +16 -0
- package/es/render/contributions/render/line-module.js.map +1 -0
- package/es/render/contributions/render/line-render.d.ts +1 -0
- package/es/render/contributions/render/line-render.js +21 -6
- package/es/render/contributions/render/line-render.js.map +1 -1
- package/es/render/contributions/render/module.js +8 -129
- package/es/render/contributions/render/module.js.map +1 -1
- package/es/render/contributions/render/path-module.d.ts +2 -0
- package/es/render/contributions/render/path-module.js +21 -0
- package/es/render/contributions/render/path-module.js.map +1 -0
- package/es/render/contributions/render/path-render.d.ts +2 -1
- package/es/render/contributions/render/path-render.js +8 -4
- package/es/render/contributions/render/path-render.js.map +1 -1
- package/es/render/contributions/render/polygon-module.d.ts +2 -0
- package/es/render/contributions/render/polygon-module.js +20 -0
- package/es/render/contributions/render/polygon-module.js.map +1 -0
- package/es/render/contributions/render/polygon-render.js +3 -0
- package/es/render/contributions/render/polygon-render.js.map +1 -1
- package/es/render/contributions/render/pyramid3d-module.d.ts +2 -0
- package/es/render/contributions/render/pyramid3d-module.js +13 -0
- package/es/render/contributions/render/pyramid3d-module.js.map +1 -0
- package/es/render/contributions/render/rect-module.d.ts +2 -0
- package/es/render/contributions/render/rect-module.js +21 -0
- package/es/render/contributions/render/rect-module.js.map +1 -0
- package/es/render/contributions/render/rect-render.d.ts +2 -1
- package/es/render/contributions/render/rect-render.js +11 -3
- package/es/render/contributions/render/rect-render.js.map +1 -1
- package/es/render/contributions/render/rect3d-module.d.ts +2 -0
- package/es/render/contributions/render/rect3d-module.js +13 -0
- package/es/render/contributions/render/rect3d-module.js.map +1 -0
- package/es/render/contributions/render/render-slector.d.ts +1 -4
- package/es/render/contributions/render/render-slector.js +0 -15
- package/es/render/contributions/render/render-slector.js.map +1 -1
- package/es/render/contributions/render/richtext-module.d.ts +2 -0
- package/es/render/contributions/render/richtext-module.js +13 -0
- package/es/render/contributions/render/richtext-module.js.map +1 -0
- package/es/render/contributions/render/richtext-render.d.ts +1 -0
- package/es/render/contributions/render/richtext-render.js +12 -6
- package/es/render/contributions/render/richtext-render.js.map +1 -1
- package/es/render/contributions/render/symbol-module.d.ts +2 -0
- package/es/render/contributions/render/symbol-module.js +21 -0
- package/es/render/contributions/render/symbol-module.js.map +1 -0
- package/es/render/contributions/render/symbol-render.js +23 -4
- package/es/render/contributions/render/symbol-render.js.map +1 -1
- package/es/render/contributions/render/text-module.d.ts +2 -0
- package/es/render/contributions/render/text-module.js +20 -0
- package/es/render/contributions/render/text-module.js.map +1 -0
- package/es/render/contributions/render/text-render.js +16 -10
- package/es/render/contributions/render/text-render.js.map +1 -1
- package/es/render/contributions/render/utils.js +2 -2
- package/es/render/contributions/render/utils.js.map +1 -1
- package/es/render/render-modules.js +1 -1
- package/es/render/render-modules.js.map +1 -1
- package/es/render/render-service.js +1 -1
- package/es/render/render-service.js.map +1 -1
- package/es/resource-loader/loader.js +1 -3
- package/es/resource-loader/loader.js.map +1 -1
- package/package.json +7 -3
- package/cjs/common/inversify-lite/annotation/post_construct.d.ts +0 -4
- package/cjs/common/inversify-lite/annotation/post_construct.js.map +0 -1
- package/es/common/inversify-lite/annotation/post_construct.d.ts +0 -4
- package/es/common/inversify-lite/annotation/post_construct.js +0 -10
- package/es/common/inversify-lite/annotation/post_construct.js.map +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 { isXML } from '../common/xml/parser';\nimport type { IGraphic, IGroup, ILayer, IRichTextCharacter, IRichTextImageCharacter, IStage } from '../interface';\nimport { isArray, type IAABBBounds } from '@visactor/vutils';\nimport { XMLParser } from '../common/xml';\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 valid = isXML(xmlStr);\n if (valid === true) {\n const parser = new XMLParser();\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 { isXML } from '../common/xml/parser';\nimport type { IGraphic, IGroup, ILayer, IRichTextCharacter, IRichTextImageCharacter, IStage } from '../interface';\nimport { isArray, type IAABBBounds } from '@visactor/vutils';\nimport { XMLParser } from '../common/xml';\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 valid = isXML(xmlStr);\n if (valid === true) {\n const parser = new XMLParser();\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 as any).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
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: !0
|
|
5
5
|
}), exports.WrapText = void 0;
|
|
6
6
|
|
|
7
|
-
const vutils_1 = require("@visactor/vutils"), layout_1 = require("../core/contributions/textMeasure/layout"), application_1 = require("../application"), text_1 = require("./text"), theme_1 = require("./theme"), WRAP_TEXT_UPDATE_TAG_KEY = [ "heightLimit", "lineClamp" ];
|
|
7
|
+
const vutils_1 = require("@visactor/vutils"), layout_1 = require("../core/contributions/textMeasure/layout"), application_1 = require("../application"), text_1 = require("./text"), theme_1 = require("./theme"), utils_1 = require("../common/utils"), WRAP_TEXT_UPDATE_TAG_KEY = [ "heightLimit", "lineClamp" ];
|
|
8
8
|
|
|
9
9
|
class WrapText extends text_1.Text {
|
|
10
10
|
_isValid() {
|
|
@@ -12,9 +12,10 @@ class WrapText extends text_1.Text {
|
|
|
12
12
|
return (0, vutils_1.isArray)(text) ? !text.every((t => null == t || "" === t)) : null != text && "" !== text;
|
|
13
13
|
}
|
|
14
14
|
updateMultilineAABBBounds(text) {
|
|
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,
|
|
17
|
-
|
|
15
|
+
var _a, _b, _c, _d;
|
|
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, 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, lineHeight = null !== (_a = (0,
|
|
17
|
+
utils_1.calculateLineHeight)(this.attribute.lineHeight, this.attribute.fontSize || textTheme.fontSize)) && void 0 !== _a ? _a : this.attribute.fontSize || textTheme.fontSize, buf = ignoreBuf ? 0 : 2;
|
|
18
|
+
if (!this.shouldUpdateShape() && (null === (_b = this.cache) || void 0 === _b ? void 0 : _b.layoutData)) {
|
|
18
19
|
const bbox = this.cache.layoutData.bbox;
|
|
19
20
|
return this._AABBBounds.set(bbox.xOffset, bbox.yOffset, bbox.xOffset + bbox.width, bbox.yOffset + bbox.height),
|
|
20
21
|
stroke && this._AABBBounds.expand(lineWidth / 2), this._AABBBounds;
|
|
@@ -42,7 +43,7 @@ class WrapText extends text_1.Text {
|
|
|
42
43
|
if ("" !== str && "" === clip.str) {
|
|
43
44
|
if (ellipsis) {
|
|
44
45
|
const clipEllipsis = layoutObj.textMeasure.clipTextWithSuffix(str, layoutObj.textOptions, maxLineWidth, ellipsis, !1);
|
|
45
|
-
clip.str = null !== (
|
|
46
|
+
clip.str = null !== (_c = clipEllipsis.str) && void 0 !== _c ? _c : "", clip.width = null !== (_d = clipEllipsis.width) && void 0 !== _d ? _d : 0;
|
|
46
47
|
} else clip.str = "", clip.width = 0;
|
|
47
48
|
needCut = !1;
|
|
48
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graphic/wrap-text.ts"],"names":[],"mappings":"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","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 protected 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 protected 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 getNoWorkAnimateAttr(): Record<string, number> {\n return WrapText.NOWORK_ANIMATE_ATTR;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/graphic/wrap-text.ts"],"names":[],"mappings":"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","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';\nimport { calculateLineHeight } from '../common/utils';\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 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 lineHeight =\n calculateLineHeight(this.attribute.lineHeight, this.attribute.fontSize || textTheme.fontSize) ??\n (this.attribute.fontSize || textTheme.fontSize);\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 protected 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 protected 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 getNoWorkAnimateAttr(): Record<string, number> {\n return WrapText.NOWORK_ANIMATE_ATTR;\n }\n}\n"]}
|
package/cjs/index.d.ts
CHANGED
|
@@ -38,9 +38,27 @@ export * from './common/enums';
|
|
|
38
38
|
export * from './common/generator';
|
|
39
39
|
export * from './plugins/constants';
|
|
40
40
|
export * from './allocator/matrix-allocate';
|
|
41
|
+
export * from './allocator/canvas-allocate';
|
|
42
|
+
export * from './allocator/graphic-allocate';
|
|
41
43
|
export * from './animate/default-ticker';
|
|
42
44
|
export { wrapCanvas, wrapContext } from './canvas/util';
|
|
43
45
|
export * from './common/xml';
|
|
44
46
|
export * from './common/inversify-lite';
|
|
45
47
|
export * from './constants';
|
|
46
48
|
export * from './application';
|
|
49
|
+
export * from './env-check';
|
|
50
|
+
export * from './render/contributions/render/arc-module';
|
|
51
|
+
export * from './render/contributions/render/rect-module';
|
|
52
|
+
export * from './render/contributions/render/line-module';
|
|
53
|
+
export * from './render/contributions/render/area-module';
|
|
54
|
+
export * from './render/contributions/render/symbol-module';
|
|
55
|
+
export * from './render/contributions/render/circle-module';
|
|
56
|
+
export * from './render/contributions/render/text-module';
|
|
57
|
+
export * from './render/contributions/render/path-module';
|
|
58
|
+
export * from './render/contributions/render/polygon-module';
|
|
59
|
+
export * from './render/contributions/render/glyph-module';
|
|
60
|
+
export * from './render/contributions/render/richtext-module';
|
|
61
|
+
export * from './render/contributions/render/image-module';
|
|
62
|
+
export * from './render/contributions/render/rect3d-module';
|
|
63
|
+
export * from './render/contributions/render/arc3d-module';
|
|
64
|
+
export * from './render/contributions/render/pyramid3d-module';
|
package/cjs/index.js
CHANGED
|
@@ -37,6 +37,7 @@ __exportStar(require("./common/render-command-list"), exports), __exportStar(req
|
|
|
37
37
|
__exportStar(require("./common/morphing-utils"), exports), __exportStar(require("./common/split-path"), exports),
|
|
38
38
|
__exportStar(require("./common/enums"), exports), __exportStar(require("./common/generator"), exports),
|
|
39
39
|
__exportStar(require("./plugins/constants"), exports), __exportStar(require("./allocator/matrix-allocate"), exports),
|
|
40
|
+
__exportStar(require("./allocator/canvas-allocate"), exports), __exportStar(require("./allocator/graphic-allocate"), exports),
|
|
40
41
|
__exportStar(require("./animate/default-ticker"), exports);
|
|
41
42
|
|
|
42
43
|
var util_1 = require("./canvas/util");
|
|
@@ -52,5 +53,13 @@ Object.defineProperty(exports, "wrapCanvas", {
|
|
|
52
53
|
return util_1.wrapContext;
|
|
53
54
|
}
|
|
54
55
|
}), __exportStar(require("./common/xml"), exports), __exportStar(require("./common/inversify-lite"), exports),
|
|
55
|
-
__exportStar(require("./constants"), exports), __exportStar(require("./application"), exports)
|
|
56
|
+
__exportStar(require("./constants"), exports), __exportStar(require("./application"), exports),
|
|
57
|
+
__exportStar(require("./env-check"), exports), __exportStar(require("./render/contributions/render/arc-module"), exports),
|
|
58
|
+
__exportStar(require("./render/contributions/render/rect-module"), exports), __exportStar(require("./render/contributions/render/line-module"), exports),
|
|
59
|
+
__exportStar(require("./render/contributions/render/area-module"), exports), __exportStar(require("./render/contributions/render/symbol-module"), exports),
|
|
60
|
+
__exportStar(require("./render/contributions/render/circle-module"), exports), __exportStar(require("./render/contributions/render/text-module"), exports),
|
|
61
|
+
__exportStar(require("./render/contributions/render/path-module"), exports), __exportStar(require("./render/contributions/render/polygon-module"), exports),
|
|
62
|
+
__exportStar(require("./render/contributions/render/glyph-module"), exports), __exportStar(require("./render/contributions/render/richtext-module"), exports),
|
|
63
|
+
__exportStar(require("./render/contributions/render/image-module"), exports), __exportStar(require("./render/contributions/render/rect3d-module"), exports),
|
|
64
|
+
__exportStar(require("./render/contributions/render/arc3d-module"), exports), __exportStar(require("./render/contributions/render/pyramid3d-module"), exports);
|
|
56
65
|
//# sourceMappingURL=index.js.map
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,qBAAmB;AAEnB,8CAA4B;AAC5B,gDAA8B;AAC9B,4CAA0B;AAC1B,4CAA0B;AAC1B,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,2CAAyB;AACzB,4EAA0D;AAC1D,2CAAyB;AACzB,yCAAuB;AACvB,2CAAyB;AACzB,4CAA0B;AAC1B,2DAAyC;AACzC,iDAA+B;AAG/B,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;AACpC,kDAAgC;AAEhC,oDAAkC;AAClC,wDAAsC;AACtC,uDAAqC;AACrC,+DAA6C;AAC7C,gDAA8B;AAC9B,0DAAwC;AACxC,sDAAoC;AACpC,iDAA+B;AAC/B,qDAAmC;AACnC,sDAAoC;AACpC,8DAA4C;
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,qBAAmB;AAEnB,8CAA4B;AAC5B,gDAA8B;AAC9B,4CAA0B;AAC1B,4CAA0B;AAC1B,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,2CAAyB;AACzB,4EAA0D;AAC1D,2CAAyB;AACzB,yCAAuB;AACvB,2CAAyB;AACzB,4CAA0B;AAC1B,2DAAyC;AACzC,iDAA+B;AAG/B,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;AACpC,kDAAgC;AAEhC,oDAAkC;AAClC,wDAAsC;AACtC,uDAAqC;AACrC,+DAA6C;AAC7C,gDAA8B;AAC9B,0DAAwC;AACxC,sDAAoC;AACpC,iDAA+B;AAC/B,qDAAmC;AACnC,sDAAoC;AACpC,8DAA4C;AAC5C,8DAA4C;AAC5C,+DAA6C;AAE7C,2DAAyC;AACzC,sCAAwD;AAA/C,kGAAA,UAAU,OAAA;AAAE,mGAAA,WAAW,OAAA;AAChC,+CAA6B;AAC7B,0DAAwC;AACxC,8CAA4B;AAC5B,gDAA8B;AAC9B,8CAA4B;AAE5B,2EAAyD;AACzD,4EAA0D;AAC1D,4EAA0D;AAC1D,4EAA0D;AAC1D,8EAA4D;AAC5D,8EAA4D;AAC5D,4EAA0D;AAC1D,4EAA0D;AAC1D,+EAA6D;AAC7D,6EAA2D;AAC3D,gFAA8D;AAC9D,6EAA2D;AAC3D,8EAA4D;AAC5D,6EAA2D;AAC3D,iFAA+D","file":"index.js","sourcesContent":["// import 'core-js/proposals/reflect-metadata';\nimport './modules';\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 './animate';\nexport * from './resource-loader/loader';\nexport * from './color-string';\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';\nexport * from './common/matrix';\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';\nexport * from './allocator/canvas-allocate';\nexport * from './allocator/graphic-allocate';\n\nexport * from './animate/default-ticker';\nexport { wrapCanvas, wrapContext } from './canvas/util';\nexport * from './common/xml';\nexport * from './common/inversify-lite';\nexport * from './constants';\nexport * from './application';\nexport * from './env-check';\n\nexport * from './render/contributions/render/arc-module';\nexport * from './render/contributions/render/rect-module';\nexport * from './render/contributions/render/line-module';\nexport * from './render/contributions/render/area-module';\nexport * from './render/contributions/render/symbol-module';\nexport * from './render/contributions/render/circle-module';\nexport * from './render/contributions/render/text-module';\nexport * from './render/contributions/render/path-module';\nexport * from './render/contributions/render/polygon-module';\nexport * from './render/contributions/render/glyph-module';\nexport * from './render/contributions/render/richtext-module';\nexport * from './render/contributions/render/image-module';\nexport * from './render/contributions/render/rect3d-module';\nexport * from './render/contributions/render/arc3d-module';\nexport * from './render/contributions/render/pyramid3d-module';\n"]}
|
|
@@ -10,6 +10,7 @@ import type { ISymbol } from './graphic/symbol';
|
|
|
10
10
|
import type { IText } from './graphic/text';
|
|
11
11
|
export interface IAllocate<T> {
|
|
12
12
|
allocate: (...d: any) => T;
|
|
13
|
+
getCommon?: () => T;
|
|
13
14
|
allocateByObj: (obj: T) => T;
|
|
14
15
|
free: (d: T) => void;
|
|
15
16
|
length: number;
|
|
@@ -1 +1 @@
|
|
|
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"]}
|
|
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 getCommon?: () => 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"]}
|
package/cjs/interface/event.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import type { INode } from './node-tree';
|
|
2
|
-
import type { Dict, IBounds
|
|
2
|
+
import type { Dict, IBounds } from '@visactor/vutils';
|
|
3
3
|
import type { Cursor, IGraphicAttribute } from './graphic';
|
|
4
4
|
import type { IDomRectLike, IEventElement } from './common';
|
|
5
5
|
import type { ICanvas } from './canvas';
|
|
6
6
|
import type { IGlobal } from './global';
|
|
7
|
+
export type EventPoint = {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
};
|
|
7
11
|
export interface IEventManager {
|
|
8
12
|
rootTarget: IEventTarget;
|
|
9
13
|
dispatch: any;
|
|
@@ -40,18 +44,18 @@ export interface IFederatedEvent<N = Event> {
|
|
|
40
44
|
manager?: IEventManager;
|
|
41
45
|
detail: any;
|
|
42
46
|
view: any;
|
|
43
|
-
layer:
|
|
47
|
+
layer: EventPoint;
|
|
44
48
|
get layerX(): number;
|
|
45
49
|
get layerY(): number;
|
|
46
|
-
page:
|
|
50
|
+
page: EventPoint;
|
|
47
51
|
get pageX(): number;
|
|
48
52
|
get pageY(): number;
|
|
49
|
-
canvas:
|
|
53
|
+
canvas: EventPoint;
|
|
50
54
|
get x(): number;
|
|
51
55
|
get y(): number;
|
|
52
56
|
get canvasX(): number;
|
|
53
57
|
get canvasY(): number;
|
|
54
|
-
viewport:
|
|
58
|
+
viewport: EventPoint;
|
|
55
59
|
get viewX(): number;
|
|
56
60
|
get viewY(): number;
|
|
57
61
|
composedPath: () => IEventTarget[];
|
|
@@ -71,20 +75,20 @@ export interface IFederatedMouseEvent extends IFederatedEvent {
|
|
|
71
75
|
metaKey: boolean;
|
|
72
76
|
relatedTarget: EventTarget | null;
|
|
73
77
|
shiftKey: boolean;
|
|
74
|
-
client:
|
|
78
|
+
client: EventPoint;
|
|
75
79
|
get clientX(): number;
|
|
76
80
|
get clientY(): number;
|
|
77
81
|
detail: number;
|
|
78
|
-
movement:
|
|
82
|
+
movement: EventPoint;
|
|
79
83
|
get movementX(): number;
|
|
80
84
|
get movementY(): number;
|
|
81
|
-
offset:
|
|
85
|
+
offset: EventPoint;
|
|
82
86
|
get offsetX(): number;
|
|
83
87
|
get offsetY(): number;
|
|
84
|
-
global:
|
|
88
|
+
global: EventPoint;
|
|
85
89
|
get globalX(): number;
|
|
86
90
|
get globalY(): number;
|
|
87
|
-
screen:
|
|
91
|
+
screen: EventPoint;
|
|
88
92
|
get screenX(): number;
|
|
89
93
|
get screenY(): number;
|
|
90
94
|
getModifierState: (key: string) => boolean;
|
|
@@ -136,40 +140,6 @@ export interface IEventExtension {
|
|
|
136
140
|
removeEvents: () => void;
|
|
137
141
|
release: () => void;
|
|
138
142
|
}
|
|
139
|
-
export type GestureDirection = 'none' | 'left' | 'right' | 'down' | 'up';
|
|
140
|
-
export interface GestureEvent extends IFederatedPointerEvent {
|
|
141
|
-
points: IPointLike[];
|
|
142
|
-
direction: GestureDirection;
|
|
143
|
-
deltaX: number;
|
|
144
|
-
deltaY: number;
|
|
145
|
-
scale: number;
|
|
146
|
-
center: IPointLike;
|
|
147
|
-
velocity: number;
|
|
148
|
-
}
|
|
149
|
-
export interface GestureConfig {
|
|
150
|
-
press?: {
|
|
151
|
-
time?: number;
|
|
152
|
-
threshold?: number;
|
|
153
|
-
};
|
|
154
|
-
swipe?: {
|
|
155
|
-
threshold?: number;
|
|
156
|
-
velocity?: number;
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
export interface DefaultGestureConfig {
|
|
160
|
-
press: {
|
|
161
|
-
time: number;
|
|
162
|
-
threshold: number;
|
|
163
|
-
};
|
|
164
|
-
swipe: {
|
|
165
|
-
threshold: number;
|
|
166
|
-
velocity: number;
|
|
167
|
-
};
|
|
168
|
-
}
|
|
169
|
-
export interface EmitEventObject {
|
|
170
|
-
type: string;
|
|
171
|
-
ev: GestureEvent;
|
|
172
|
-
}
|
|
173
143
|
export type LooseFunction = (...args: any[]) => any;
|
|
174
144
|
export type IElementLike = Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> & {
|
|
175
145
|
style: CSSStyleDeclaration | Record<string, any>;
|
|
@@ -189,6 +159,7 @@ export type RenderConfig = {
|
|
|
189
159
|
height: number;
|
|
190
160
|
viewBox?: IBounds;
|
|
191
161
|
};
|
|
162
|
+
clickInterval?: number;
|
|
192
163
|
};
|
|
193
164
|
export type NativeEvent = MouseEvent | PointerEvent | TouchEvent;
|
|
194
165
|
export type GraphicEventType = 'pointerdown' | 'pointerup' | 'pointerupoutside' | 'pointertap' | 'pointerover' | 'pointerenter' | 'pointerleave' | 'pointerout' | 'mousedown' | 'mouseup' | 'mouseupoutside' | 'rightdown' | 'rightup' | 'rightupoutside' | 'click' | 'dblclick' | 'mousemove' | 'mouseover' | 'mouseout' | 'mouseenter' | 'mouseleave' | 'wheel' | 'tap' | 'touchstart' | 'touchend' | 'touchendoutside' | 'touchmove' | 'touchcancel' | 'dragstart' | 'drag' | 'dragenter' | 'dragleave' | 'dragover' | 'dragend' | 'drop' | 'pan' | 'panstart' | 'panend' | 'press' | 'pressup' | 'pressend' | 'pinch' | 'pinchstart' | 'pinchend' | 'swipe';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/interface/event.ts"],"names":[],"mappings":"","file":"event.js","sourcesContent":["import type { INode } from './node-tree';\nimport type { Dict, IBounds
|
|
1
|
+
{"version":3,"sources":["../src/interface/event.ts"],"names":[],"mappings":"","file":"event.js","sourcesContent":["import type { INode } from './node-tree';\nimport type { Dict, IBounds } 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 type EventPoint = {\n x: number;\n y: number;\n};\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: EventPoint;\n get layerX(): number;\n get layerY(): number;\n page: EventPoint;\n get pageX(): number;\n get pageY(): number;\n canvas: EventPoint;\n get x(): number;\n get y(): number;\n get canvasX(): number;\n get canvasY(): number;\n viewport: EventPoint;\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: EventPoint;\n get clientX(): number;\n get clientY(): number;\n detail: number;\n movement: EventPoint;\n get movementX(): number;\n get movementY(): number;\n offset: EventPoint;\n get offsetX(): number;\n get offsetY(): number;\n global: EventPoint;\n get globalX(): number;\n get globalY(): number;\n screen: EventPoint;\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 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 * 多次点击之间的最大时间,默认为 200 ms\n * @default 200\n */\n clickInterval?: number;\n};\n\nexport type NativeEvent = MouseEvent | PointerEvent | TouchEvent;\n\nexport type GraphicEventType =\n | 'pointerdown'\n | 'pointerup'\n // 指针抬起与按下的图形不同时触发\n | 'pointerupoutside'\n | 'pointertap'\n | 'pointerover'\n | 'pointerenter'\n | 'pointerleave'\n | 'pointerout'\n | 'mousedown'\n | 'mouseup'\n | 'mouseupoutside'\n // 右键操作\n | 'rightdown'\n | 'rightup'\n | 'rightupoutside'\n | 'click'\n // 双击\n | 'dblclick'\n | 'mousemove'\n | 'mouseover'\n | 'mouseout'\n // 不会冒泡\n | 'mouseenter'\n // 不会冒泡\n | 'mouseleave'\n | 'wheel'\n | 'tap'\n | 'touchstart'\n | 'touchend'\n | 'touchendoutside'\n | 'touchmove'\n | 'touchcancel'\n // dragNdrop\n | 'dragstart'\n | 'drag'\n | 'dragenter'\n | 'dragleave'\n | 'dragover'\n | 'dragend'\n | 'drop'\n // gesture\n | 'pan'\n | 'panstart'\n | 'panend'\n | 'press'\n | 'pressup'\n | 'pressend'\n | 'pinch'\n | 'pinchstart'\n | 'pinchend'\n | 'swipe';\n"]}
|
|
@@ -102,6 +102,7 @@ export interface IGlobal extends Omit<IEventElement, 'on' | 'off' | 'once' | 'em
|
|
|
102
102
|
};
|
|
103
103
|
envParams?: any;
|
|
104
104
|
supportEvent: boolean;
|
|
105
|
+
optimizeVisible: boolean;
|
|
105
106
|
setEnv: (env: EnvType, params?: IEnvParamsMap[EnvType]) => void;
|
|
106
107
|
setActiveEnvContribution: (contribution: IEnvContribution) => void;
|
|
107
108
|
createCanvas: (params: ICreateCanvasParams) => HTMLCanvasElement | any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/interface/global.ts"],"names":[],"mappings":"","file":"global.js","sourcesContent":["import type { Dict, IAABBBoundsLike, IPointLike } from '@visactor/vutils';\nimport type { ICanvasLike } from './canvas';\nimport type { IEventElement } from './common';\nimport type { IContribution } from './contribution';\nimport type { ISyncHook } from './sync-hook';\n\nexport interface ILoader {\n loadImage: (url: string) => HTMLImageElement | ImageData;\n loadJson: (url: string) => JSON;\n}\n\n// 环境定义\nexport type EnvType = 'browser' | 'feishu' | 'tt' | 'taro' | 'node' | 'native' | 'lynx' | 'wx';\n\n// 创建canvas需要的参数\nexport interface ICreateCanvasParams {\n id?: string;\n // 像素宽\n width?: number;\n // 像素高\n height?: number;\n dpr?: number;\n}\n\nexport interface ILoader {\n loadImage: (url: string) => HTMLImageElement | ImageData;\n loadJson: (url: string) => JSON;\n}\n\nexport interface IEnvContribution\n extends IContribution<IGlobal>,\n Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> {\n // 当前代码所运行的环境\n type: EnvType;\n\n // 是否支持事件\n // node环境不需要事件\n supportEvent: boolean;\n\n // 开始配置环境,相当于init\n configure: (global: IGlobal, ...p: any) => void;\n\n // 创建销毁\n createCanvas: (params: ICreateCanvasParams) => ICanvasLike | any;\n createOffscreenCanvas: (params: ICreateCanvasParams) => ICanvasLike | any;\n releaseCanvas: (canvas: ICanvasLike | string | any) => void;\n\n getNativeAABBBounds: (dom: string | HTMLElement | any) => IAABBBoundsLike;\n removeDom: (dom: HTMLElement) => boolean;\n createDom: (params: CreateDOMParamsType) => HTMLElement | null;\n getElementTop: (dom: any, baseWindow?: boolean) => number;\n getElementLeft: (dom: any, baseWindow?: boolean) => number;\n getElementTopLeft: (dom: any, baseWindow?: boolean) => { top: number; left: number };\n\n /**\n * 获取动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount: () => number;\n\n /**\n * 获取静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount: () => number;\n\n // 设备信息\n getDevicePixelRatio: () => number;\n\n // 通用接口\n getRequestAnimationFrame: () => (callback: FrameRequestCallback) => number;\n getCancelAnimationFrame: () => (h: number) => void;\n\n // DOM接口\n getElementById?: (str: string) => HTMLElement | null;\n getRootElement?: () => HTMLElement | null;\n /**\n * get document instance\n */\n getDocument?: () => Document | null;\n /**\n * whether supports TouchEvent.\n */\n supportsTouchEvents: boolean;\n /**\n * whether supports PointerEvent.\n */\n supportsPointerEvents: boolean;\n /**\n * whether supports MouseEvent.\n */\n supportsMouseEvents: boolean;\n /**\n * Whether to allow setting the cursor style\n */\n applyStyles?: boolean;\n\n /**\n * 将窗口坐标转换为画布坐标,小程序/小组件环境需要兼容\n */\n mapToCanvasPoint?: (event: any, domElement?: any) => IPointLike | null;\n\n loadImage: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadSvg: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadJson: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Record<string, unknown> | null;\n }>;\n loadArrayBuffer: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: ArrayBuffer | null;\n }>;\n loadBlob: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Blob | null;\n }>;\n}\n\nexport type IMiniAppEnvParams = {\n /** dom 容器对象 */\n domref?: Dict<any>;\n /**\n * 强行设置env,如果env重复设置也设置\n */\n force?: boolean;\n /**\n * 可用的canvas列表\n */\n canvasIdLists?: (string | number)[];\n /**\n * 表示可以自由使用的canvas索引\n */\n freeCanvasIdx?: string | number;\n /** taro 环境使用 */\n taro?: any;\n pixelRatio?: number;\n [key: string]: any;\n};\n\nexport interface IEnvParamsMap {\n readonly taro: IMiniAppEnvParams;\n readonly feishu: IMiniAppEnvParams;\n readonly tt: IMiniAppEnvParams;\n readonly browser: any;\n readonly node: any;\n readonly native: any;\n readonly lynx: any;\n readonly wx: any;\n}\n\nexport type CreateDOMParamsType = {\n tagName?: string;\n width?: number;\n height?: number;\n style?: string | Record<string, any>;\n parent?: string | HTMLElement;\n};\nexport interface IGlobal extends Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> {\n // 当前代码所运行的环境\n env: EnvType;\n\n // 设备的dpr\n devicePixelRatio: number;\n\n // 当设置env的时候被调用\n hooks: {\n onSetEnv: ISyncHook<[EnvType | undefined, EnvType, IGlobal]>;\n };\n\n // 设置env的时候传入的参数\n // node环境需要传入整个node-canvas包\n // 小程序环境需要传入小程序要用到的参数\n envParams?: any;\n\n // 是否支持事件\n // node环境不需要事件\n supportEvent: boolean;\n\n setEnv: (env: EnvType, params?: IEnvParamsMap[EnvType]) => void;\n setActiveEnvContribution: (contribution: IEnvContribution) => void;\n createCanvas: (params: ICreateCanvasParams) => HTMLCanvasElement | any;\n createOffscreenCanvas: (params: ICreateCanvasParams) => HTMLCanvasElement | any;\n releaseCanvas: (canvas: HTMLCanvasElement | string | any) => void;\n\n /**\n * 获取环境中最大动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount: () => number;\n\n isChrome: () => boolean;\n isSafari: () => boolean;\n\n /**\n * 获取环境中最大静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount: () => number;\n\n /* 浏览器环境 - dom tree */\n getElementById: (str: string) => HTMLElement | null;\n getRootElement: () => HTMLElement | null;\n /**\n * get document instance\n */\n getDocument: () => Document | null;\n /**\n * whether supports TouchEvent.\n */\n supportsTouchEvents: boolean;\n /**\n * whether supports PointerEvent.\n */\n supportsPointerEvents: boolean;\n /**\n * whether supports MouseEvent.\n */\n supportsMouseEvents: boolean;\n /**\n * Whether to allow setting the cursor style\n */\n applyStyles?: boolean;\n /**\n * 测量文字的方法\n */\n measureTextMethod: 'native' | 'simple' | 'quick';\n\n getRequestAnimationFrame: () => null | ((callback: FrameRequestCallback) => number);\n getCancelAnimationFrame: () => null | ((h: number) => void);\n\n /**\n * 将窗口坐标转换为画布坐标,小程序/小组件环境需要兼容\n */\n mapToCanvasPoint: (nativeEvent: any, domElement?: any) => IPointLike | null;\n\n loadImage: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadSvg: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadJson: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Record<string, unknown> | null;\n }>;\n loadArrayBuffer: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: ArrayBuffer | null;\n }>;\n loadBlob: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Blob | null;\n }>;\n\n removeDom: (dom: HTMLElement) => boolean;\n createDom: (params: CreateDOMParamsType) => HTMLElement | null;\n\n getElementTop: (dom: any, baseWindow?: boolean) => number;\n getElementLeft: (dom: any, baseWindow?: boolean) => number;\n getElementTopLeft: (dom: any, baseWindow?: boolean) => { top: number; left: number };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/interface/global.ts"],"names":[],"mappings":"","file":"global.js","sourcesContent":["import type { Dict, IAABBBoundsLike, IPointLike } from '@visactor/vutils';\nimport type { ICanvasLike } from './canvas';\nimport type { IEventElement } from './common';\nimport type { IContribution } from './contribution';\nimport type { ISyncHook } from './sync-hook';\n\nexport interface ILoader {\n loadImage: (url: string) => HTMLImageElement | ImageData;\n loadJson: (url: string) => JSON;\n}\n\n// 环境定义\nexport type EnvType = 'browser' | 'feishu' | 'tt' | 'taro' | 'node' | 'native' | 'lynx' | 'wx';\n\n// 创建canvas需要的参数\nexport interface ICreateCanvasParams {\n id?: string;\n // 像素宽\n width?: number;\n // 像素高\n height?: number;\n dpr?: number;\n}\n\nexport interface ILoader {\n loadImage: (url: string) => HTMLImageElement | ImageData;\n loadJson: (url: string) => JSON;\n}\n\nexport interface IEnvContribution\n extends IContribution<IGlobal>,\n Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> {\n // 当前代码所运行的环境\n type: EnvType;\n\n // 是否支持事件\n // node环境不需要事件\n supportEvent: boolean;\n\n // 开始配置环境,相当于init\n configure: (global: IGlobal, ...p: any) => void;\n\n // 创建销毁\n createCanvas: (params: ICreateCanvasParams) => ICanvasLike | any;\n createOffscreenCanvas: (params: ICreateCanvasParams) => ICanvasLike | any;\n releaseCanvas: (canvas: ICanvasLike | string | any) => void;\n\n getNativeAABBBounds: (dom: string | HTMLElement | any) => IAABBBoundsLike;\n removeDom: (dom: HTMLElement) => boolean;\n createDom: (params: CreateDOMParamsType) => HTMLElement | null;\n getElementTop: (dom: any, baseWindow?: boolean) => number;\n getElementLeft: (dom: any, baseWindow?: boolean) => number;\n getElementTopLeft: (dom: any, baseWindow?: boolean) => { top: number; left: number };\n\n /**\n * 获取动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount: () => number;\n\n /**\n * 获取静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount: () => number;\n\n // 设备信息\n getDevicePixelRatio: () => number;\n\n // 通用接口\n getRequestAnimationFrame: () => (callback: FrameRequestCallback) => number;\n getCancelAnimationFrame: () => (h: number) => void;\n\n // DOM接口\n getElementById?: (str: string) => HTMLElement | null;\n getRootElement?: () => HTMLElement | null;\n /**\n * get document instance\n */\n getDocument?: () => Document | null;\n /**\n * whether supports TouchEvent.\n */\n supportsTouchEvents: boolean;\n /**\n * whether supports PointerEvent.\n */\n supportsPointerEvents: boolean;\n /**\n * whether supports MouseEvent.\n */\n supportsMouseEvents: boolean;\n /**\n * Whether to allow setting the cursor style\n */\n applyStyles?: boolean;\n\n /**\n * 将窗口坐标转换为画布坐标,小程序/小组件环境需要兼容\n */\n mapToCanvasPoint?: (event: any, domElement?: any) => IPointLike | null;\n\n loadImage: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadSvg: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadJson: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Record<string, unknown> | null;\n }>;\n loadArrayBuffer: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: ArrayBuffer | null;\n }>;\n loadBlob: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Blob | null;\n }>;\n}\n\nexport type IMiniAppEnvParams = {\n /** dom 容器对象 */\n domref?: Dict<any>;\n /**\n * 强行设置env,如果env重复设置也设置\n */\n force?: boolean;\n /**\n * 可用的canvas列表\n */\n canvasIdLists?: (string | number)[];\n /**\n * 表示可以自由使用的canvas索引\n */\n freeCanvasIdx?: string | number;\n /** taro 环境使用 */\n taro?: any;\n pixelRatio?: number;\n [key: string]: any;\n};\n\nexport interface IEnvParamsMap {\n readonly taro: IMiniAppEnvParams;\n readonly feishu: IMiniAppEnvParams;\n readonly tt: IMiniAppEnvParams;\n readonly browser: any;\n readonly node: any;\n readonly native: any;\n readonly lynx: any;\n readonly wx: any;\n}\n\nexport type CreateDOMParamsType = {\n tagName?: string;\n width?: number;\n height?: number;\n style?: string | Record<string, any>;\n parent?: string | HTMLElement;\n};\nexport interface IGlobal extends Omit<IEventElement, 'on' | 'off' | 'once' | 'emit' | 'removeAllListeners'> {\n // 当前代码所运行的环境\n env: EnvType;\n\n // 设备的dpr\n devicePixelRatio: number;\n\n // 当设置env的时候被调用\n hooks: {\n onSetEnv: ISyncHook<[EnvType | undefined, EnvType, IGlobal]>;\n };\n\n // 设置env的时候传入的参数\n // node环境需要传入整个node-canvas包\n // 小程序环境需要传入小程序要用到的参数\n envParams?: any;\n\n // 是否支持事件\n // node环境不需要事件\n supportEvent: boolean;\n\n // 是否在不显示canvas的时候停止绘图操作,默认false\n optimizeVisible: boolean;\n\n setEnv: (env: EnvType, params?: IEnvParamsMap[EnvType]) => void;\n setActiveEnvContribution: (contribution: IEnvContribution) => void;\n createCanvas: (params: ICreateCanvasParams) => HTMLCanvasElement | any;\n createOffscreenCanvas: (params: ICreateCanvasParams) => HTMLCanvasElement | any;\n releaseCanvas: (canvas: HTMLCanvasElement | string | any) => void;\n\n /**\n * 获取环境中最大动态canvas的数量,offscreenCanvas或者framebuffer\n */\n getDynamicCanvasCount: () => number;\n\n isChrome: () => boolean;\n isSafari: () => boolean;\n\n /**\n * 获取环境中最大静态canvas的数量,纯粹canvas\n */\n getStaticCanvasCount: () => number;\n\n /* 浏览器环境 - dom tree */\n getElementById: (str: string) => HTMLElement | null;\n getRootElement: () => HTMLElement | null;\n /**\n * get document instance\n */\n getDocument: () => Document | null;\n /**\n * whether supports TouchEvent.\n */\n supportsTouchEvents: boolean;\n /**\n * whether supports PointerEvent.\n */\n supportsPointerEvents: boolean;\n /**\n * whether supports MouseEvent.\n */\n supportsMouseEvents: boolean;\n /**\n * Whether to allow setting the cursor style\n */\n applyStyles?: boolean;\n /**\n * 测量文字的方法\n */\n measureTextMethod: 'native' | 'simple' | 'quick';\n\n getRequestAnimationFrame: () => null | ((callback: FrameRequestCallback) => number);\n getCancelAnimationFrame: () => null | ((h: number) => void);\n\n /**\n * 将窗口坐标转换为画布坐标,小程序/小组件环境需要兼容\n */\n mapToCanvasPoint: (nativeEvent: any, domElement?: any) => IPointLike | null;\n\n loadImage: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadSvg: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: HTMLImageElement | ImageData | null;\n }>;\n loadJson: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Record<string, unknown> | null;\n }>;\n loadArrayBuffer: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: ArrayBuffer | null;\n }>;\n loadBlob: (url: string) => Promise<{\n loadState: 'success' | 'fail';\n data: Blob | null;\n }>;\n\n removeDom: (dom: HTMLElement) => boolean;\n createDom: (params: CreateDOMParamsType) => HTMLElement | null;\n\n getElementTop: (dom: any, baseWindow?: boolean) => number;\n getElementLeft: (dom: any, baseWindow?: boolean) => number;\n getElementTopLeft: (dom: any, baseWindow?: boolean) => { top: number; left: number };\n}\n"]}
|
|
@@ -3,6 +3,8 @@ import type { ICustomPath2D } from '../path';
|
|
|
3
3
|
export type IRectAttribute = {
|
|
4
4
|
width: number;
|
|
5
5
|
height: number;
|
|
6
|
+
x1: number;
|
|
7
|
+
y1: number;
|
|
6
8
|
cornerRadius: number | number[];
|
|
7
9
|
};
|
|
8
10
|
export type IRectGraphicAttribute = Partial<IGraphicAttribute> & Partial<IRectAttribute>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/interface/graphic/rect.ts"],"names":[],"mappings":"","file":"rect.js","sourcesContent":["import type { IGraphicAttribute, IGraphic } from '../graphic';\nimport type { ICustomPath2D } from '../path';\n\nexport type IRectAttribute = {\n width: number;\n height: number;\n cornerRadius: number | number[];\n};\n\nexport type IRectGraphicAttribute = Partial<IGraphicAttribute> & Partial<IRectAttribute>;\n\nexport interface IRect extends IGraphic<IRectGraphicAttribute> {\n cache?: ICustomPath2D;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/interface/graphic/rect.ts"],"names":[],"mappings":"","file":"rect.js","sourcesContent":["import type { IGraphicAttribute, IGraphic } from '../graphic';\nimport type { ICustomPath2D } from '../path';\n\nexport type IRectAttribute = {\n width: number;\n height: number;\n x1: number;\n y1: number;\n cornerRadius: number | number[];\n};\n\nexport type IRectGraphicAttribute = Partial<IGraphicAttribute> & Partial<IRectAttribute>;\n\nexport interface IRect extends IGraphic<IRectGraphicAttribute> {\n cache?: ICustomPath2D;\n}\n"]}
|
|
@@ -26,7 +26,7 @@ export type RichTextFontStyle = 'normal' | 'italic' | 'oblique';
|
|
|
26
26
|
export type RichTextTextDecoration = 'none' | 'underline' | 'line-through';
|
|
27
27
|
export type RichTextScript = 'normal' | 'sub' | 'super';
|
|
28
28
|
export type IRichTextBasicCharacter = {
|
|
29
|
-
lineHeight?: number;
|
|
29
|
+
lineHeight?: number | string;
|
|
30
30
|
textAlign?: CanvasTextAlign;
|
|
31
31
|
textBaseline?: CanvasTextBaseline;
|
|
32
32
|
direction?: RichTextLayoutDirectionType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/interface/graphic/richText.ts"],"names":[],"mappings":"","file":"richText.js","sourcesContent":["import type { IColor } from '../color';\nimport type { IContext2d } from '../context';\nimport type { IGraphicAttribute, IGraphic } from '../graphic';\nimport type { IImage, IImageGraphicAttribute } from './image';\n\nexport type IRichTextAttribute = {\n width: number;\n height: number;\n ellipsis: boolean | string;\n wordBreak: RichTextWordBreak;\n verticalDirection: RichTextVerticalDirection;\n maxHeight: number;\n maxWidth: number;\n textAlign: RichTextGlobalAlignType;\n textBaseline: RichTextGlobalBaselineType;\n layoutDirection: RichTextLayoutDirectionType;\n textConfig: IRichTextCharacter[];\n singleLine: boolean;\n};\n\nexport type IRichTextGraphicAttribute = Partial<IGraphicAttribute> & Partial<IRichTextAttribute>;\n\nexport type RichTextWordBreak = 'break-word' | 'break-all';\nexport type RichTextVerticalDirection = 'top' | 'middle' | 'bottom';\nexport type RichTextGlobalAlignType = 'left' | 'right' | 'center';\nexport type RichTextGlobalBaselineType = 'top' | 'middle' | 'bottom';\nexport type RichTextLayoutDirectionType = 'horizontal' | 'vertical';\nexport type RichTextFontStyle = 'normal' | 'italic' | 'oblique';\nexport type RichTextTextDecoration = 'none' | 'underline' | 'line-through';\n// export type RichTextTextAlign = 'left' | 'right' | 'center';\nexport type RichTextScript = 'normal' | 'sub' | 'super';\n\nexport type IRichTextBasicCharacter = {\n lineHeight?: number;\n textAlign?: CanvasTextAlign; // left, right, center\n textBaseline?: CanvasTextBaseline;\n direction?: RichTextLayoutDirectionType;\n};\n\nexport type IRichTextParagraphCharacter = IRichTextBasicCharacter & {\n text: string;\n fontSize?: number;\n fontFamily?: string;\n fill?: IColor | boolean;\n stroke?: IColor | boolean;\n fontWeight?: string;\n // lineHeight?: number;\n fontStyle?: RichTextFontStyle; // normal, italic, oblique\n textDecoration?: RichTextTextDecoration; // none, underline, line-through\n // textAlign?: RichTextTextAlign; // left, right, center\n script?: RichTextScript; // normal, sub, super\n underline?: boolean;\n lineThrough?: boolean;\n // direction?: RichTextLayoutDirectionType;\n};\n\nexport type IRichTextImageCharacter = IRichTextBasicCharacter & {\n // 图片基础属性\n image: string | HTMLImageElement | HTMLCanvasElement;\n width: number;\n height: number;\n\n // hover相关属性\n // backgroundShow?: boolean; // 是否显示background\n backgroundShowMode?: 'always' | 'hover';\n backgroundFill?: boolean | IColor; // 背景矩形填充颜色\n backgroundFillOpacity?: number; // 背景矩形填充透明度\n backgroundStroke?: boolean | IColor; // 背景矩形边框颜色\n backgroundStrokeOpacity?: number; // 背景矩形边框透明度\n backgroundRadius?: number; // 背景矩形圆角\n // background size 同时控制了该icon的响应范围\n backgroundWidth?: number;\n backgroundHeight?: number;\n\n // 唯一标识符\n id?: string;\n\n // lineHeight?: number;\n // textAlign?: RichTextTextAlign; // left, right, center\n // direction?: RichTextLayoutDirectionType;\n margin?: number | number[];\n\n funcType?: string;\n hoverImage?: string | HTMLImageElement | HTMLCanvasElement;\n};\n\nexport type IRichTextCharacter = IRichTextParagraphCharacter | IRichTextImageCharacter;\n\nexport type IRichTextIconGraphicAttribute = IImageGraphicAttribute & {\n id?: string;\n backgroundShowMode?: 'always' | 'hover' | 'never';\n backgroundFill?: boolean | IColor; // 背景矩形填充颜色\n backgroundFillOpacity?: number; // 背景矩形填充透明度\n backgroundStroke?: boolean | IColor; // 背景矩形边框颜色\n backgroundStrokeOpacity?: number; // 背景矩形边框透明度\n backgroundRadius?: number; // 背景矩形圆角\n backgroundWidth?: number;\n backgroundHeight?: number;\n\n // lineHeight?: number;\n textAlign?: CanvasTextAlign; // left, right, center\n textBaseline?: CanvasTextBaseline;\n direction?: RichTextLayoutDirectionType;\n\n margin?: number | number[];\n\n // backgroundShow?: boolean;\n};\n\nexport interface IRichTextParagraph {\n text: string;\n ascent: number;\n descent: number;\n width: number;\n height: number;\n lineHeight: number;\n fontSize: number;\n length: number;\n newLine: boolean;\n character: IRichTextParagraphCharacter;\n left: number;\n top: number;\n direction?: 'horizontal' | 'vertical';\n widthOrigin?: number;\n heightOrigin?: number;\n textBaseline?: CanvasTextBaseline;\n ellipsis: 'normal' | 'add' | 'replace' | 'hide';\n ellipsisWidth: number;\n ellipsisOtherParagraphWidth: number;\n verticalEllipsis?: boolean;\n updateWidth: () => void;\n draw: (ctx: IContext2d, baseline: number, deltaLeft: number, isLineFirst: boolean, textAlign: string) => void;\n getWidthWithEllips: (direction: string) => number;\n}\n\nexport interface IRichTextLine {\n left: number;\n top: number;\n width: number;\n height: number;\n baseline: number;\n ascent: number;\n descent: number;\n paragraphs: (IRichTextParagraph | IRichTextIcon)[];\n actualWidth: number;\n blankWidth: number;\n textAlign: string;\n direction: 'horizontal' | 'vertical';\n directionKey: {\n width: string;\n height: string;\n left: string;\n x: string;\n y: string;\n };\n draw: (\n ctx: IContext2d,\n lastLine: boolean,\n x: number,\n y: number,\n drawIcon: (icon: IRichTextIcon, context: IContext2d, x: number, y: number, baseline: number) => void\n ) => void;\n getWidthWithEllips: () => number;\n}\n\nexport interface IRichTextFrame {\n left: number;\n top: number;\n bottom: number;\n right: number;\n width: number;\n height: number;\n actualHeight: number;\n ellipsis: boolean | string;\n wordBreak: 'break-word' | 'break-all';\n verticalDirection: 'top' | 'middle' | 'bottom';\n lines: IRichTextLine[];\n globalAlign: 'left' | 'center' | 'right';\n globalBaseline: 'top' | 'middle' | 'bottom';\n layoutDirection: 'horizontal' | 'vertical';\n directionKey: {\n width: string;\n height: string;\n left: string;\n top: string;\n bottom: string;\n };\n isWidthMax: boolean;\n isHeightMax: boolean;\n singleLine: boolean;\n icons: Map<string, IRichTextIcon>;\n draw: (\n ctx: IContext2d,\n drawIcon: (icon: IRichTextIcon, context: IContext2d, x: number, y: number, baseline: number) => void\n ) => boolean;\n getActualSize: () => {\n width: number;\n height: number;\n };\n getRawActualSize: () => {\n width: number;\n height: number;\n };\n getActualSizeWidthEllipsis: () => {\n width: number;\n height: number;\n };\n}\n\nexport interface IRichText extends IGraphic<IRichTextGraphicAttribute> {\n getFrameCache: () => IRichTextFrame;\n}\n\nexport interface IRichTextIcon extends IImage {\n attribute: IRichTextIconGraphicAttribute;\n richtextId?: string;\n globalX?: number;\n globalY?: number;\n\n _x: number;\n _y: number;\n _hovered: boolean;\n _marginArray: [number, number, number, number];\n\n setHoverState: (hovered: boolean) => void;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/interface/graphic/richText.ts"],"names":[],"mappings":"","file":"richText.js","sourcesContent":["import type { IColor } from '../color';\nimport type { IContext2d } from '../context';\nimport type { IGraphicAttribute, IGraphic } from '../graphic';\nimport type { IImage, IImageGraphicAttribute } from './image';\n\nexport type IRichTextAttribute = {\n width: number;\n height: number;\n ellipsis: boolean | string;\n wordBreak: RichTextWordBreak;\n verticalDirection: RichTextVerticalDirection;\n maxHeight: number;\n maxWidth: number;\n textAlign: RichTextGlobalAlignType;\n textBaseline: RichTextGlobalBaselineType;\n layoutDirection: RichTextLayoutDirectionType;\n textConfig: IRichTextCharacter[];\n singleLine: boolean;\n};\n\nexport type IRichTextGraphicAttribute = Partial<IGraphicAttribute> & Partial<IRichTextAttribute>;\n\nexport type RichTextWordBreak = 'break-word' | 'break-all';\nexport type RichTextVerticalDirection = 'top' | 'middle' | 'bottom';\nexport type RichTextGlobalAlignType = 'left' | 'right' | 'center';\nexport type RichTextGlobalBaselineType = 'top' | 'middle' | 'bottom';\nexport type RichTextLayoutDirectionType = 'horizontal' | 'vertical';\nexport type RichTextFontStyle = 'normal' | 'italic' | 'oblique';\nexport type RichTextTextDecoration = 'none' | 'underline' | 'line-through';\n// export type RichTextTextAlign = 'left' | 'right' | 'center';\nexport type RichTextScript = 'normal' | 'sub' | 'super';\n\nexport type IRichTextBasicCharacter = {\n lineHeight?: number | string;\n textAlign?: CanvasTextAlign; // left, right, center\n textBaseline?: CanvasTextBaseline;\n direction?: RichTextLayoutDirectionType;\n};\n\nexport type IRichTextParagraphCharacter = IRichTextBasicCharacter & {\n text: string;\n fontSize?: number;\n fontFamily?: string;\n fill?: IColor | boolean;\n stroke?: IColor | boolean;\n fontWeight?: string;\n // lineHeight?: number;\n fontStyle?: RichTextFontStyle; // normal, italic, oblique\n textDecoration?: RichTextTextDecoration; // none, underline, line-through\n // textAlign?: RichTextTextAlign; // left, right, center\n script?: RichTextScript; // normal, sub, super\n underline?: boolean;\n lineThrough?: boolean;\n // direction?: RichTextLayoutDirectionType;\n};\n\nexport type IRichTextImageCharacter = IRichTextBasicCharacter & {\n // 图片基础属性\n image: string | HTMLImageElement | HTMLCanvasElement;\n width: number;\n height: number;\n\n // hover相关属性\n // backgroundShow?: boolean; // 是否显示background\n backgroundShowMode?: 'always' | 'hover';\n backgroundFill?: boolean | IColor; // 背景矩形填充颜色\n backgroundFillOpacity?: number; // 背景矩形填充透明度\n backgroundStroke?: boolean | IColor; // 背景矩形边框颜色\n backgroundStrokeOpacity?: number; // 背景矩形边框透明度\n backgroundRadius?: number; // 背景矩形圆角\n // background size 同时控制了该icon的响应范围\n backgroundWidth?: number;\n backgroundHeight?: number;\n\n // 唯一标识符\n id?: string;\n\n // lineHeight?: number;\n // textAlign?: RichTextTextAlign; // left, right, center\n // direction?: RichTextLayoutDirectionType;\n margin?: number | number[];\n\n funcType?: string;\n hoverImage?: string | HTMLImageElement | HTMLCanvasElement;\n};\n\nexport type IRichTextCharacter = IRichTextParagraphCharacter | IRichTextImageCharacter;\n\nexport type IRichTextIconGraphicAttribute = IImageGraphicAttribute & {\n id?: string;\n backgroundShowMode?: 'always' | 'hover' | 'never';\n backgroundFill?: boolean | IColor; // 背景矩形填充颜色\n backgroundFillOpacity?: number; // 背景矩形填充透明度\n backgroundStroke?: boolean | IColor; // 背景矩形边框颜色\n backgroundStrokeOpacity?: number; // 背景矩形边框透明度\n backgroundRadius?: number; // 背景矩形圆角\n backgroundWidth?: number;\n backgroundHeight?: number;\n\n // lineHeight?: number;\n textAlign?: CanvasTextAlign; // left, right, center\n textBaseline?: CanvasTextBaseline;\n direction?: RichTextLayoutDirectionType;\n\n margin?: number | number[];\n\n // backgroundShow?: boolean;\n};\n\nexport interface IRichTextParagraph {\n text: string;\n ascent: number;\n descent: number;\n width: number;\n height: number;\n lineHeight: number;\n fontSize: number;\n length: number;\n newLine: boolean;\n character: IRichTextParagraphCharacter;\n left: number;\n top: number;\n direction?: 'horizontal' | 'vertical';\n widthOrigin?: number;\n heightOrigin?: number;\n textBaseline?: CanvasTextBaseline;\n ellipsis: 'normal' | 'add' | 'replace' | 'hide';\n ellipsisWidth: number;\n ellipsisOtherParagraphWidth: number;\n verticalEllipsis?: boolean;\n updateWidth: () => void;\n draw: (ctx: IContext2d, baseline: number, deltaLeft: number, isLineFirst: boolean, textAlign: string) => void;\n getWidthWithEllips: (direction: string) => number;\n}\n\nexport interface IRichTextLine {\n left: number;\n top: number;\n width: number;\n height: number;\n baseline: number;\n ascent: number;\n descent: number;\n paragraphs: (IRichTextParagraph | IRichTextIcon)[];\n actualWidth: number;\n blankWidth: number;\n textAlign: string;\n direction: 'horizontal' | 'vertical';\n directionKey: {\n width: string;\n height: string;\n left: string;\n x: string;\n y: string;\n };\n draw: (\n ctx: IContext2d,\n lastLine: boolean,\n x: number,\n y: number,\n drawIcon: (icon: IRichTextIcon, context: IContext2d, x: number, y: number, baseline: number) => void\n ) => void;\n getWidthWithEllips: () => number;\n}\n\nexport interface IRichTextFrame {\n left: number;\n top: number;\n bottom: number;\n right: number;\n width: number;\n height: number;\n actualHeight: number;\n ellipsis: boolean | string;\n wordBreak: 'break-word' | 'break-all';\n verticalDirection: 'top' | 'middle' | 'bottom';\n lines: IRichTextLine[];\n globalAlign: 'left' | 'center' | 'right';\n globalBaseline: 'top' | 'middle' | 'bottom';\n layoutDirection: 'horizontal' | 'vertical';\n directionKey: {\n width: string;\n height: string;\n left: string;\n top: string;\n bottom: string;\n };\n isWidthMax: boolean;\n isHeightMax: boolean;\n singleLine: boolean;\n icons: Map<string, IRichTextIcon>;\n draw: (\n ctx: IContext2d,\n drawIcon: (icon: IRichTextIcon, context: IContext2d, x: number, y: number, baseline: number) => void\n ) => boolean;\n getActualSize: () => {\n width: number;\n height: number;\n };\n getRawActualSize: () => {\n width: number;\n height: number;\n };\n getActualSizeWidthEllipsis: () => {\n width: number;\n height: number;\n };\n}\n\nexport interface IRichText extends IGraphic<IRichTextGraphicAttribute> {\n getFrameCache: () => IRichTextFrame;\n}\n\nexport interface IRichTextIcon extends IImage {\n attribute: IRichTextIconGraphicAttribute;\n richtextId?: string;\n globalX?: number;\n globalY?: number;\n\n _x: number;\n _y: number;\n _hovered: boolean;\n _marginArray: [number, number, number, number];\n\n setHoverState: (hovered: boolean) => void;\n}\n"]}
|
|
@@ -36,7 +36,7 @@ export type ITextAttribute = {
|
|
|
36
36
|
ellipsis: boolean | string;
|
|
37
37
|
fontVariant: string;
|
|
38
38
|
fontStyle: string;
|
|
39
|
-
lineHeight: number;
|
|
39
|
+
lineHeight: number | string;
|
|
40
40
|
underline: number;
|
|
41
41
|
lineThrough: number;
|
|
42
42
|
scaleIn3d: boolean;
|
|
@@ -44,6 +44,10 @@ export type ITextAttribute = {
|
|
|
44
44
|
verticalMode: number;
|
|
45
45
|
wordBreak: 'break-word' | 'break-all';
|
|
46
46
|
ignoreBuf: boolean;
|
|
47
|
+
whiteSpace: 'normal' | 'no-wrap';
|
|
48
|
+
heightLimit?: number;
|
|
49
|
+
lineClamp?: number;
|
|
50
|
+
suffixPosition: 'start' | 'end' | 'middle';
|
|
47
51
|
};
|
|
48
52
|
export type ITextCache = {
|
|
49
53
|
clipedText?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/interface/graphic/text.ts"],"names":[],"mappings":"","file":"text.js","sourcesContent":["import type { IAABBBounds } from '@visactor/vutils';\nimport type { IGraphicAttribute, IGraphic } from '../graphic';\n\nexport interface TextLayoutBBox {\n width: number; // 包围盒的宽度\n height: number; // 包围盒的高度\n xOffset: number;\n yOffset: number;\n}\n\nexport interface LayoutItemType {\n str: string; // 这行的字符串\n leftOffset?: number; // 该行距离左侧的偏移\n topOffset?: number; // 该行距离右侧的偏移\n width: number;\n}\n\nexport interface SimplifyLayoutType {\n lines: LayoutItemType[];\n}\n\nexport interface LayoutType {\n bbox: TextLayoutBBox;\n lines: LayoutItemType[];\n fontFamily: string;\n fontSize: number;\n fontWeight?: string | number;\n lineHeight: number;\n textAlign: TextAlignType;\n textBaseline: TextBaselineType;\n}\n\nexport type ITextAttribute = {\n text: string | number | string[] | number[];\n maxLineWidth: number;\n textAlign: TextAlignType;\n textBaseline: TextBaselineType;\n fontSize: number;\n fontFamily: string;\n fontWeight: string | number;\n ellipsis: boolean | string;\n fontVariant: string;\n fontStyle: string;\n lineHeight: number;\n underline: number;\n lineThrough: number;\n scaleIn3d: boolean;\n direction: 'horizontal' | 'vertical';\n verticalMode: number; // 垂直布局的模式,0代表默认(横向textAlign,纵向textBaseline),1代表特殊(横向textBaseline,纵向textAlign)\n wordBreak: 'break-word' | 'break-all';\n ignoreBuf: boolean;\n // textDecoration: number;\n // textDecorationWidth: number;\n // padding?: number | number[];\n};\nexport type ITextCache = {\n // 单行文本的时候缓存用\n clipedText?: string;\n clipedWidth?: number;\n // 多行文本的布局缓存\n layoutData?: LayoutType;\n verticalList?: { text: string; width?: number; direction: number }[][];\n};\n\nexport type ITextGraphicAttribute = Partial<IGraphicAttribute> & Partial<ITextAttribute>;\n\nexport type IWrapTextGraphicAttribute = ITextGraphicAttribute & {\n heightLimit?: number;\n lineClamp?: number;\n};\n\nexport interface IText extends IGraphic<ITextGraphicAttribute> {\n // 判断是否被ellipisised\n clipedText?: string;\n clipedWidth?: number;\n cliped?: boolean;\n multilineLayout?: LayoutType;\n font?: string;\n cache?: ITextCache;\n\n getBaselineMapAlign: () => Record<string, string>;\n getAlignMapBaseline: () => Record<string, string>;\n\n updateMultilineAABBBounds: (text: (number | string)[]) => IAABBBounds;\n updateSingallineAABBBounds: (text: number | string) => IAABBBounds;\n}\n\nexport type TextAlignType = 'left' | 'right' | 'center' | 'start' | 'end';\nexport type TextBaselineType = 'top' | 'middle' | 'bottom' | 'alphabetic';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/interface/graphic/text.ts"],"names":[],"mappings":"","file":"text.js","sourcesContent":["import type { IAABBBounds } from '@visactor/vutils';\nimport type { IGraphicAttribute, IGraphic } from '../graphic';\n\nexport interface TextLayoutBBox {\n width: number; // 包围盒的宽度\n height: number; // 包围盒的高度\n xOffset: number;\n yOffset: number;\n}\n\nexport interface LayoutItemType {\n str: string; // 这行的字符串\n leftOffset?: number; // 该行距离左侧的偏移\n topOffset?: number; // 该行距离右侧的偏移\n width: number;\n}\n\nexport interface SimplifyLayoutType {\n lines: LayoutItemType[];\n}\n\nexport interface LayoutType {\n bbox: TextLayoutBBox;\n lines: LayoutItemType[];\n fontFamily: string;\n fontSize: number;\n fontWeight?: string | number;\n lineHeight: number;\n textAlign: TextAlignType;\n textBaseline: TextBaselineType;\n}\n\nexport type ITextAttribute = {\n text: string | number | string[] | number[];\n maxLineWidth: number;\n textAlign: TextAlignType;\n textBaseline: TextBaselineType;\n fontSize: number;\n fontFamily: string;\n fontWeight: string | number;\n ellipsis: boolean | string;\n fontVariant: string;\n fontStyle: string;\n lineHeight: number | string;\n underline: number;\n lineThrough: number;\n scaleIn3d: boolean;\n direction: 'horizontal' | 'vertical';\n verticalMode: number; // 垂直布局的模式,0代表默认(横向textAlign,纵向textBaseline),1代表特殊(横向textBaseline,纵向textAlign)\n wordBreak: 'break-word' | 'break-all';\n ignoreBuf: boolean;\n whiteSpace: 'normal' | 'no-wrap';\n heightLimit?: number;\n lineClamp?: number;\n suffixPosition: 'start' | 'end' | 'middle';\n // textDecoration: number;\n // textDecorationWidth: number;\n // padding?: number | number[];\n};\nexport type ITextCache = {\n // 单行文本的时候缓存用\n clipedText?: string;\n clipedWidth?: number;\n // 多行文本的布局缓存\n layoutData?: LayoutType;\n verticalList?: { text: string; width?: number; direction: number }[][];\n};\n\nexport type ITextGraphicAttribute = Partial<IGraphicAttribute> & Partial<ITextAttribute>;\n\nexport type IWrapTextGraphicAttribute = ITextGraphicAttribute & {\n heightLimit?: number;\n lineClamp?: number;\n};\n\nexport interface IText extends IGraphic<ITextGraphicAttribute> {\n // 判断是否被ellipisised\n clipedText?: string;\n clipedWidth?: number;\n cliped?: boolean;\n multilineLayout?: LayoutType;\n font?: string;\n cache?: ITextCache;\n\n getBaselineMapAlign: () => Record<string, string>;\n getAlignMapBaseline: () => Record<string, string>;\n\n updateMultilineAABBBounds: (text: (number | string)[]) => IAABBBounds;\n updateSingallineAABBBounds: (text: number | string) => IAABBBounds;\n}\n\nexport type TextAlignType = 'left' | 'right' | 'center' | 'start' | 'end';\nexport type TextBaselineType = 'top' | 'middle' | 'bottom' | 'alphabetic';\n"]}
|