@visactor/vrender-core 1.0.47-alpha.0 → 1.1.0-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/application.d.ts +14 -5
- package/cjs/application.js +1 -8
- package/cjs/application.js.map +1 -1
- package/cjs/canvas/empty-context.js +4 -14
- package/cjs/canvas/empty-context.js.map +1 -1
- package/cjs/canvas/util.d.ts +2 -3
- package/cjs/canvas/util.js +17 -3
- package/cjs/canvas/util.js.map +1 -1
- package/cjs/color-string/index.js +2 -1
- package/cjs/common/contribution-provider.d.ts +16 -9
- package/cjs/common/contribution-provider.js +9 -4
- package/cjs/common/contribution-provider.js.map +1 -1
- package/cjs/common/diff.js +1 -2
- package/cjs/common/enums.d.ts +2 -0
- package/cjs/common/enums.js +1 -0
- package/cjs/common/enums.js.map +1 -1
- package/cjs/common/event-transformer.js +43 -6
- package/cjs/common/event-transformer.js.map +1 -1
- package/cjs/common/explicit-binding.d.ts +5 -0
- package/cjs/common/explicit-binding.js +16 -0
- package/cjs/common/explicit-binding.js.map +1 -0
- package/cjs/common/performance-raf.d.ts +1 -0
- package/cjs/common/performance-raf.js +5 -0
- package/cjs/common/performance-raf.js.map +1 -1
- package/cjs/common/render-area.js +1 -1
- package/cjs/common/render-command-list.js +1 -1
- package/cjs/common/render-curve.js +1 -1
- package/cjs/common/render-utils.js +1 -1
- package/cjs/common/seg-context.js +1 -2
- package/cjs/common/simplify.js +1 -1
- package/cjs/common/sort.js +1 -1
- package/cjs/common/split-path.js +1 -1
- package/cjs/common/store.js +1 -1
- package/cjs/common/text.js +1 -1
- package/cjs/common/utils.js +1 -1
- package/cjs/core/application.js +1 -1
- package/cjs/core/camera.js +1 -1
- package/cjs/core/constants.js +1 -1
- package/cjs/core/contributions/env/base-contribution.js +4 -9
- package/cjs/core/contributions/env/base-contribution.js.map +1 -1
- package/cjs/core/contributions/env/modules.d.ts +4 -3
- package/cjs/core/contributions/env/modules.js +6 -4
- package/cjs/core/contributions/env/modules.js.map +1 -1
- package/cjs/core/contributions/layerHandler/canvas2d-contribution.js +3 -12
- package/cjs/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
- package/cjs/core/contributions/layerHandler/empty-contribution.js +3 -12
- package/cjs/core/contributions/layerHandler/empty-contribution.js.map +1 -1
- package/cjs/core/contributions/layerHandler/modules.d.ts +4 -3
- package/cjs/core/contributions/layerHandler/modules.js +6 -4
- package/cjs/core/contributions/layerHandler/modules.js.map +1 -1
- package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js +3 -12
- package/cjs/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
- package/cjs/core/contributions/modules.d.ts +2 -2
- package/cjs/core/contributions/modules.js +7 -1
- package/cjs/core/contributions/modules.js.map +1 -1
- package/cjs/core/contributions/textMeasure/AtextMeasure.js +3 -10
- package/cjs/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
- package/cjs/core/contributions/textMeasure/modules.d.ts +4 -3
- package/cjs/core/contributions/textMeasure/modules.js +6 -4
- package/cjs/core/contributions/textMeasure/modules.js.map +1 -1
- package/cjs/core/contributions/textMeasure/textMeasure-contribution.js +3 -10
- package/cjs/core/contributions/textMeasure/textMeasure-contribution.js.map +1 -1
- package/cjs/core/contributions/window/base-contribution.js +3 -12
- package/cjs/core/contributions/window/base-contribution.js.map +1 -1
- package/cjs/core/core-modules.d.ts +4 -3
- package/cjs/core/core-modules.js +11 -7
- package/cjs/core/core-modules.js.map +1 -1
- package/cjs/core/global-module.js +2 -0
- package/cjs/core/global-module.js.map +1 -1
- package/cjs/core/global.d.ts +2 -0
- package/cjs/core/global.js +9 -18
- package/cjs/core/global.js.map +1 -1
- package/cjs/core/graphic-utils.d.ts +1 -2
- package/cjs/core/graphic-utils.js +8 -23
- package/cjs/core/graphic-utils.js.map +1 -1
- package/cjs/core/index.js +1 -1
- package/cjs/core/layer-service.d.ts +7 -2
- package/cjs/core/layer-service.js +29 -27
- package/cjs/core/layer-service.js.map +1 -1
- package/cjs/core/layer.js +1 -1
- package/cjs/core/layer.js.map +1 -1
- package/cjs/core/light.js +1 -1
- package/cjs/core/stage.d.ts +19 -7
- package/cjs/core/stage.js +50 -39
- package/cjs/core/stage.js.map +1 -1
- package/cjs/core/window.d.ts +7 -5
- package/cjs/core/window.js +14 -18
- package/cjs/core/window.js.map +1 -1
- package/cjs/create.d.ts +1 -2
- package/cjs/create.js +2 -2
- package/cjs/create.js.map +1 -1
- package/cjs/entries/app-context.d.ts +30 -0
- package/cjs/entries/app-context.js +84 -0
- package/cjs/entries/app-context.js.map +1 -0
- package/cjs/entries/browser.d.ts +25 -0
- package/cjs/entries/browser.js +44 -0
- package/cjs/entries/browser.js.map +1 -0
- package/cjs/entries/index.d.ts +7 -0
- package/cjs/entries/index.js +32 -0
- package/cjs/entries/index.js.map +1 -0
- package/cjs/entries/miniapp.d.ts +6 -0
- package/cjs/entries/miniapp.js +20 -0
- package/cjs/entries/miniapp.js.map +1 -0
- package/cjs/entries/node.d.ts +6 -0
- package/cjs/entries/node.js +20 -0
- package/cjs/entries/node.js.map +1 -0
- package/cjs/entries/runtime-installer.d.ts +11 -0
- package/cjs/entries/runtime-installer.js +111 -0
- package/cjs/entries/runtime-installer.js.map +1 -0
- package/cjs/entries/types.d.ts +29 -0
- package/cjs/{common/inversify-lite/interfaces/interfaces.js → entries/types.js} +1 -1
- package/cjs/entries/types.js.map +1 -0
- package/cjs/event/util.d.ts +1 -1
- package/cjs/factory/graphic-factory.d.ts +7 -0
- package/cjs/factory/graphic-factory.js +23 -0
- package/cjs/factory/graphic-factory.js.map +1 -0
- package/cjs/factory/index.d.ts +4 -0
- package/cjs/{common/inversify-lite → factory}/index.js +2 -1
- package/cjs/factory/index.js.map +1 -0
- package/cjs/factory/layer-factory.d.ts +7 -0
- package/cjs/factory/layer-factory.js +19 -0
- package/cjs/factory/layer-factory.js.map +1 -0
- package/cjs/factory/stage-factory.d.ts +8 -0
- package/cjs/factory/stage-factory.js +20 -0
- package/cjs/factory/stage-factory.js.map +1 -0
- package/cjs/factory/types.d.ts +34 -0
- package/cjs/{common/inversify/interfaces.js → factory/types.js} +1 -1
- package/cjs/factory/types.js.map +1 -0
- package/cjs/factory.d.ts +1 -0
- package/cjs/factory.js +16 -1
- package/cjs/factory.js.map +1 -1
- package/cjs/global.d.ts +2 -0
- package/cjs/global.js +11 -0
- package/cjs/global.js.map +1 -0
- package/cjs/graphic/area.js +1 -1
- package/cjs/graphic/area.js.map +1 -1
- package/cjs/graphic/bounds.js +3 -3
- package/cjs/graphic/bounds.js.map +1 -1
- package/cjs/graphic/config.js +0 -1
- package/cjs/graphic/config.js.map +1 -1
- package/cjs/graphic/glyph.js +9 -3
- package/cjs/graphic/glyph.js.map +1 -1
- package/cjs/graphic/graphic-creator.d.ts +9 -4
- package/cjs/graphic/graphic-creator.js +35 -7
- package/cjs/graphic/graphic-creator.js.map +1 -1
- package/cjs/graphic/graphic-service/graphic-module.d.ts +4 -3
- package/cjs/graphic/graphic-service/graphic-module.js +6 -4
- package/cjs/graphic/graphic-service/graphic-module.js.map +1 -1
- package/cjs/graphic/graphic-service/graphic-service.d.ts +2 -3
- package/cjs/graphic/graphic-service/graphic-service.js +5 -20
- package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
- package/cjs/graphic/graphic.d.ts +80 -11
- package/cjs/graphic/graphic.js +474 -152
- package/cjs/graphic/graphic.js.map +1 -1
- package/cjs/graphic/group.d.ts +11 -1
- package/cjs/graphic/group.js +46 -11
- package/cjs/graphic/group.js.map +1 -1
- package/cjs/graphic/index.d.ts +3 -0
- package/cjs/graphic/index.js +34 -15
- package/cjs/graphic/index.js.map +1 -1
- package/cjs/graphic/line.js +1 -1
- package/cjs/graphic/line.js.map +1 -1
- package/cjs/graphic/state/attribute-update-classifier.d.ts +13 -0
- package/cjs/graphic/state/attribute-update-classifier.js +67 -0
- package/cjs/graphic/state/attribute-update-classifier.js.map +1 -0
- package/cjs/graphic/state/shared-state-refresh.d.ts +6 -0
- package/cjs/graphic/state/shared-state-refresh.js +55 -0
- package/cjs/graphic/state/shared-state-refresh.js.map +1 -0
- package/cjs/graphic/state/shared-state-scope.d.ts +25 -0
- package/cjs/graphic/state/shared-state-scope.js +98 -0
- package/cjs/graphic/state/shared-state-scope.js.map +1 -0
- package/cjs/graphic/state/state-batch-scheduler.d.ts +42 -0
- package/cjs/graphic/state/state-batch-scheduler.js +285 -0
- package/cjs/graphic/state/state-batch-scheduler.js.map +1 -0
- package/cjs/graphic/state/state-definition-compiler.d.ts +6 -0
- package/cjs/graphic/state/state-definition-compiler.js +91 -0
- package/cjs/graphic/state/state-definition-compiler.js.map +1 -0
- package/cjs/graphic/state/state-definition.d.ts +44 -0
- package/cjs/graphic/state/state-definition.js +6 -0
- package/cjs/graphic/state/state-definition.js.map +1 -0
- package/cjs/graphic/state/state-engine.d.ts +38 -0
- package/cjs/graphic/state/state-engine.js +220 -0
- package/cjs/graphic/state/state-engine.js.map +1 -0
- package/cjs/graphic/state/state-model.d.ts +43 -0
- package/cjs/graphic/state/state-model.js +143 -0
- package/cjs/graphic/state/state-model.js.map +1 -0
- package/cjs/graphic/state/state-perf-monitor.d.ts +119 -0
- package/cjs/graphic/state/state-perf-monitor.js +217 -0
- package/cjs/graphic/state/state-perf-monitor.js.map +1 -0
- package/cjs/graphic/state/state-style-resolver.d.ts +22 -0
- package/cjs/graphic/state/state-style-resolver.js +73 -0
- package/cjs/graphic/state/state-style-resolver.js.map +1 -0
- package/cjs/graphic/state/state-transition-orchestrator.d.ts +41 -0
- package/cjs/graphic/state/state-transition-orchestrator.js +74 -0
- package/cjs/graphic/state/state-transition-orchestrator.js.map +1 -0
- package/cjs/graphic/text.d.ts +3 -2
- package/cjs/graphic/text.js +22 -14
- package/cjs/graphic/text.js.map +1 -1
- package/cjs/graphic/theme.d.ts +5 -0
- package/cjs/graphic/theme.js +7 -0
- package/cjs/graphic/theme.js.map +1 -1
- package/cjs/graphic/wrap-text.d.ts +1 -1
- package/cjs/graphic/wrap-text.js +17 -14
- package/cjs/graphic/wrap-text.js.map +1 -1
- package/cjs/index.d.ts +7 -4
- package/cjs/index.js +95 -25
- package/cjs/index.js.map +1 -1
- package/cjs/interface/global.d.ts +2 -0
- package/cjs/interface/global.js.map +1 -1
- package/cjs/interface/graphic/group.d.ts +6 -0
- package/cjs/interface/graphic/group.js.map +1 -1
- package/cjs/interface/graphic/theme.d.ts +3 -0
- package/cjs/interface/graphic/theme.js.map +1 -1
- package/cjs/interface/graphic.d.ts +24 -26
- package/cjs/interface/graphic.js.map +1 -1
- package/cjs/interface/plugin.d.ts +2 -0
- package/cjs/interface/plugin.js.map +1 -1
- package/cjs/interface/stage.d.ts +11 -3
- package/cjs/interface/stage.js.map +1 -1
- package/cjs/interface/theme-service.js.map +1 -1
- package/cjs/legacy/binding-context.d.ts +24 -0
- package/cjs/legacy/binding-context.js +98 -0
- package/cjs/legacy/binding-context.js.map +1 -0
- package/cjs/legacy/bootstrap.d.ts +10 -0
- package/cjs/legacy/bootstrap.js +72 -0
- package/cjs/legacy/bootstrap.js.map +1 -0
- package/cjs/legacy/module-types.d.ts +2 -0
- package/cjs/legacy/module-types.js +6 -0
- package/cjs/legacy/module-types.js.map +1 -0
- package/cjs/modules.d.ts +5 -6
- package/cjs/modules.js +54 -20
- package/cjs/modules.js.map +1 -1
- package/cjs/picker/global-picker-service.js +3 -12
- package/cjs/picker/global-picker-service.js.map +1 -1
- package/cjs/picker/pick-interceptor.js +9 -19
- package/cjs/picker/pick-interceptor.js.map +1 -1
- package/cjs/picker/pick-modules.d.ts +5 -3
- package/cjs/picker/pick-modules.js +6 -4
- package/cjs/picker/pick-modules.js.map +1 -1
- package/cjs/picker/picker-service.d.ts +13 -4
- package/cjs/picker/picker-service.js +16 -22
- package/cjs/picker/picker-service.js.map +1 -1
- package/cjs/plugins/base-plugin.d.ts +8 -0
- package/cjs/plugins/base-plugin.js +15 -0
- package/cjs/plugins/base-plugin.js.map +1 -0
- package/cjs/plugins/browser-env-plugin.d.ts +8 -0
- package/cjs/plugins/browser-env-plugin.js +24 -0
- package/cjs/plugins/browser-env-plugin.js.map +1 -0
- package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.d.ts +4 -1
- package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js +25 -4
- package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
- package/cjs/plugins/builtin-plugin/richtext-edit-plugin.js +3 -1
- package/cjs/plugins/builtin-plugin/richtext-edit-plugin.js.map +1 -1
- package/cjs/plugins/index.d.ts +5 -0
- package/cjs/plugins/index.js +23 -0
- package/cjs/plugins/index.js.map +1 -0
- package/cjs/plugins/picker-plugin.d.ts +7 -0
- package/cjs/plugins/picker-plugin.js +19 -0
- package/cjs/plugins/picker-plugin.js.map +1 -0
- package/cjs/plugins/plugin-modules.d.ts +4 -3
- package/cjs/plugins/plugin-modules.js +6 -4
- package/cjs/plugins/plugin-modules.js.map +1 -1
- package/cjs/plugins/plugin-service.d.ts +16 -2
- package/cjs/plugins/plugin-service.js +24 -26
- package/cjs/plugins/plugin-service.js.map +1 -1
- package/cjs/plugins/renderer-plugin.d.ts +7 -0
- package/cjs/plugins/renderer-plugin.js +19 -0
- package/cjs/plugins/renderer-plugin.js.map +1 -0
- package/cjs/plugins/types.d.ts +28 -0
- package/cjs/plugins/types.js +6 -0
- package/cjs/plugins/types.js.map +1 -0
- package/cjs/register/register-arc.js +1 -1
- package/cjs/register/register-arc.js.map +1 -1
- package/cjs/register/register-arc3d.js +1 -1
- package/cjs/register/register-arc3d.js.map +1 -1
- package/cjs/register/register-area.js +1 -1
- package/cjs/register/register-area.js.map +1 -1
- package/cjs/register/register-circle.js +1 -1
- package/cjs/register/register-circle.js.map +1 -1
- package/cjs/register/register-glyph.js +1 -1
- package/cjs/register/register-glyph.js.map +1 -1
- package/cjs/register/register-group.js +1 -1
- package/cjs/register/register-group.js.map +1 -1
- package/cjs/register/register-image.js +1 -1
- package/cjs/register/register-image.js.map +1 -1
- package/cjs/register/register-line.js +1 -1
- package/cjs/register/register-line.js.map +1 -1
- package/cjs/register/register-path.js +1 -1
- package/cjs/register/register-path.js.map +1 -1
- package/cjs/register/register-polygon.js +1 -1
- package/cjs/register/register-polygon.js.map +1 -1
- package/cjs/register/register-pyramid3d.js +1 -1
- package/cjs/register/register-pyramid3d.js.map +1 -1
- package/cjs/register/register-rect.js +1 -1
- package/cjs/register/register-rect.js.map +1 -1
- package/cjs/register/register-rect3d.js +1 -1
- package/cjs/register/register-rect3d.js.map +1 -1
- package/cjs/register/register-richtext.js +1 -1
- package/cjs/register/register-richtext.js.map +1 -1
- package/cjs/register/register-shadowRoot.js +1 -1
- package/cjs/register/register-shadowRoot.js.map +1 -1
- package/cjs/register/register-star.js +1 -1
- package/cjs/register/register-star.js.map +1 -1
- package/cjs/register/register-symbol.js +1 -1
- package/cjs/register/register-symbol.js.map +1 -1
- package/cjs/register/register-text.js +1 -1
- package/cjs/register/register-text.js.map +1 -1
- package/cjs/register/register-wraptext.js +1 -1
- package/cjs/register/register-wraptext.js.map +1 -1
- package/cjs/registry/contribution-registry.d.ts +9 -0
- package/cjs/registry/contribution-registry.js +33 -0
- package/cjs/registry/contribution-registry.js.map +1 -0
- package/cjs/registry/index.d.ts +5 -0
- package/cjs/registry/index.js +23 -0
- package/cjs/registry/index.js.map +1 -0
- package/cjs/registry/picker-registry.d.ts +10 -0
- package/cjs/registry/picker-registry.js +29 -0
- package/cjs/registry/picker-registry.js.map +1 -0
- package/cjs/registry/plugin-registry.d.ts +10 -0
- package/cjs/registry/plugin-registry.js +29 -0
- package/cjs/registry/plugin-registry.js.map +1 -0
- package/cjs/registry/renderer-registry.d.ts +11 -0
- package/cjs/registry/renderer-registry.js +37 -0
- package/cjs/registry/renderer-registry.js.map +1 -0
- package/cjs/registry/types.d.ts +34 -0
- package/cjs/registry/types.js +6 -0
- package/cjs/registry/types.js.map +1 -0
- package/cjs/render/contributions/modules.d.ts +2 -2
- package/cjs/render/contributions/modules.js +3 -1
- package/cjs/render/contributions/modules.js.map +1 -1
- package/cjs/render/contributions/render/arc-module.d.ts +4 -2
- package/cjs/render/contributions/render/arc-module.js +6 -4
- package/cjs/render/contributions/render/arc-module.js.map +1 -1
- package/cjs/render/contributions/render/arc-render.js +4 -19
- package/cjs/render/contributions/render/arc-render.js.map +1 -1
- package/cjs/render/contributions/render/arc3d-module.d.ts +4 -2
- package/cjs/render/contributions/render/arc3d-module.js +6 -4
- package/cjs/render/contributions/render/arc3d-module.js.map +1 -1
- package/cjs/render/contributions/render/arc3d-render.js +3 -10
- package/cjs/render/contributions/render/arc3d-render.js.map +1 -1
- package/cjs/render/contributions/render/area-module.d.ts +4 -2
- package/cjs/render/contributions/render/area-module.js +6 -4
- package/cjs/render/contributions/render/area-module.js.map +1 -1
- package/cjs/render/contributions/render/area-render.js +4 -19
- package/cjs/render/contributions/render/area-render.js.map +1 -1
- package/cjs/render/contributions/render/base-render.js +9 -5
- package/cjs/render/contributions/render/base-render.js.map +1 -1
- package/cjs/render/contributions/render/circle-module.d.ts +4 -2
- package/cjs/render/contributions/render/circle-module.js +6 -4
- package/cjs/render/contributions/render/circle-module.js.map +1 -1
- package/cjs/render/contributions/render/circle-render.js +3 -18
- package/cjs/render/contributions/render/circle-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/base-contribution-render.js +3 -18
- package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/rect-contribution-render.js +5 -13
- package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/draw-contribution.d.ts +13 -4
- package/cjs/render/contributions/render/draw-contribution.js +22 -22
- package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
- package/cjs/render/contributions/render/draw-interceptor.js +5 -15
- package/cjs/render/contributions/render/draw-interceptor.js.map +1 -1
- package/cjs/render/contributions/render/glyph-module.d.ts +4 -2
- package/cjs/render/contributions/render/glyph-module.js +6 -4
- package/cjs/render/contributions/render/glyph-module.js.map +1 -1
- package/cjs/render/contributions/render/glyph-render.js +3 -10
- package/cjs/render/contributions/render/glyph-render.js.map +1 -1
- package/cjs/render/contributions/render/graphic-render.js +1 -10
- package/cjs/render/contributions/render/graphic-render.js.map +1 -1
- package/cjs/render/contributions/render/group-render.js +4 -19
- package/cjs/render/contributions/render/group-render.js.map +1 -1
- package/cjs/render/contributions/render/image-module.d.ts +4 -2
- package/cjs/render/contributions/render/image-module.js +6 -4
- package/cjs/render/contributions/render/image-module.js.map +1 -1
- package/cjs/render/contributions/render/image-render.d.ts +2 -2
- package/cjs/render/contributions/render/image-render.js +14 -30
- package/cjs/render/contributions/render/image-render.js.map +1 -1
- package/cjs/render/contributions/render/incremental-area-render.js +3 -10
- package/cjs/render/contributions/render/incremental-area-render.js.map +1 -1
- package/cjs/render/contributions/render/incremental-draw-contribution.d.ts +2 -2
- package/cjs/render/contributions/render/incremental-draw-contribution.js +4 -19
- package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
- package/cjs/render/contributions/render/incremental-line-render.js +3 -10
- package/cjs/render/contributions/render/incremental-line-render.js.map +1 -1
- package/cjs/render/contributions/render/line-module.d.ts +4 -2
- package/cjs/render/contributions/render/line-module.js +6 -4
- package/cjs/render/contributions/render/line-module.js.map +1 -1
- package/cjs/render/contributions/render/line-render.js +3 -10
- package/cjs/render/contributions/render/line-render.js.map +1 -1
- package/cjs/render/contributions/render/module.d.ts +4 -3
- package/cjs/render/contributions/render/module.js +10 -6
- package/cjs/render/contributions/render/module.js.map +1 -1
- package/cjs/render/contributions/render/path-module.d.ts +4 -2
- package/cjs/render/contributions/render/path-module.js +6 -4
- package/cjs/render/contributions/render/path-module.js.map +1 -1
- package/cjs/render/contributions/render/path-render.js +3 -18
- package/cjs/render/contributions/render/path-render.js.map +1 -1
- package/cjs/render/contributions/render/polygon-module.d.ts +4 -2
- package/cjs/render/contributions/render/polygon-module.js +6 -4
- package/cjs/render/contributions/render/polygon-module.js.map +1 -1
- package/cjs/render/contributions/render/polygon-render.js +3 -18
- package/cjs/render/contributions/render/polygon-render.js.map +1 -1
- package/cjs/render/contributions/render/pyramid3d-module.d.ts +4 -2
- package/cjs/render/contributions/render/pyramid3d-module.js +6 -4
- package/cjs/render/contributions/render/pyramid3d-module.js.map +1 -1
- package/cjs/render/contributions/render/pyramid3d-render.js +3 -10
- package/cjs/render/contributions/render/pyramid3d-render.js.map +1 -1
- package/cjs/render/contributions/render/rect-module.d.ts +4 -2
- package/cjs/render/contributions/render/rect-module.js +11 -8
- package/cjs/render/contributions/render/rect-module.js.map +1 -1
- package/cjs/render/contributions/render/rect-render.js +3 -18
- package/cjs/render/contributions/render/rect-render.js.map +1 -1
- package/cjs/render/contributions/render/rect3d-module.d.ts +4 -2
- package/cjs/render/contributions/render/rect3d-module.js +6 -4
- package/cjs/render/contributions/render/rect3d-module.js.map +1 -1
- package/cjs/render/contributions/render/rect3d-render.js +3 -10
- package/cjs/render/contributions/render/rect3d-render.js.map +1 -1
- package/cjs/render/contributions/render/render-slector.js.map +1 -1
- package/cjs/render/contributions/render/richtext-module.d.ts +4 -2
- package/cjs/render/contributions/render/richtext-module.js +6 -4
- package/cjs/render/contributions/render/richtext-module.js.map +1 -1
- package/cjs/render/contributions/render/richtext-render.js +3 -12
- package/cjs/render/contributions/render/richtext-render.js.map +1 -1
- package/cjs/render/contributions/render/star-module.d.ts +4 -2
- package/cjs/render/contributions/render/star-module.js +9 -6
- package/cjs/render/contributions/render/star-module.js.map +1 -1
- package/cjs/render/contributions/render/star-render.js +3 -18
- package/cjs/render/contributions/render/star-render.js.map +1 -1
- package/cjs/render/contributions/render/symbol-module.d.ts +4 -2
- package/cjs/render/contributions/render/symbol-module.js +6 -4
- package/cjs/render/contributions/render/symbol-module.js.map +1 -1
- package/cjs/render/contributions/render/symbol-render.js +3 -18
- package/cjs/render/contributions/render/symbol-render.js.map +1 -1
- package/cjs/render/contributions/render/text-module.d.ts +4 -2
- package/cjs/render/contributions/render/text-module.js +6 -4
- package/cjs/render/contributions/render/text-module.js.map +1 -1
- package/cjs/render/contributions/render/text-render.js +3 -18
- package/cjs/render/contributions/render/text-render.js.map +1 -1
- package/cjs/render/render-modules.d.ts +4 -3
- package/cjs/render/render-modules.js +6 -4
- package/cjs/render/render-modules.js.map +1 -1
- package/cjs/render/render-service.d.ts +1 -1
- package/cjs/render/render-service.js +4 -18
- package/cjs/render/render-service.js.map +1 -1
- package/dist/index.es.js +22505 -20114
- package/es/application.d.ts +14 -5
- package/es/application.js +1 -10
- package/es/application.js.map +1 -1
- package/es/canvas/empty-context.js +2 -17
- package/es/canvas/empty-context.js.map +1 -1
- package/es/canvas/util.d.ts +2 -3
- package/es/canvas/util.js +15 -5
- package/es/canvas/util.js.map +1 -1
- package/es/color-string/index.js +2 -1
- package/es/common/contribution-provider.d.ts +16 -9
- package/es/common/contribution-provider.js +6 -2
- package/es/common/contribution-provider.js.map +1 -1
- package/es/common/diff.js +1 -2
- package/es/common/enums.d.ts +2 -0
- package/es/common/enums.js +1 -0
- package/es/common/enums.js.map +1 -1
- package/es/common/event-transformer.js +43 -6
- package/es/common/event-transformer.js.map +1 -1
- package/es/common/explicit-binding.d.ts +5 -0
- package/es/common/explicit-binding.js +10 -0
- package/es/common/explicit-binding.js.map +1 -0
- package/es/common/performance-raf.d.ts +1 -0
- package/es/common/performance-raf.js +5 -0
- package/es/common/performance-raf.js.map +1 -1
- package/es/common/render-area.js +1 -1
- package/es/common/render-command-list.js +1 -1
- package/es/common/render-curve.js +1 -1
- package/es/common/render-utils.js +1 -1
- package/es/common/seg-context.js +1 -2
- package/es/common/simplify.js +1 -1
- package/es/common/sort.js +1 -1
- package/es/common/split-path.js +1 -1
- package/es/common/store.js +1 -1
- package/es/common/text.js +1 -1
- package/es/common/utils.js +1 -1
- package/es/core/application.js +1 -1
- package/es/core/camera.js +1 -1
- package/es/core/constants.js +1 -1
- package/es/core/contributions/env/base-contribution.js +3 -13
- package/es/core/contributions/env/base-contribution.js.map +1 -1
- package/es/core/contributions/env/modules.d.ts +4 -3
- package/es/core/contributions/env/modules.js +4 -4
- package/es/core/contributions/env/modules.js.map +1 -1
- package/es/core/contributions/layerHandler/canvas2d-contribution.js +2 -16
- package/es/core/contributions/layerHandler/canvas2d-contribution.js.map +1 -1
- package/es/core/contributions/layerHandler/empty-contribution.js +2 -16
- package/es/core/contributions/layerHandler/empty-contribution.js.map +1 -1
- package/es/core/contributions/layerHandler/modules.d.ts +4 -3
- package/es/core/contributions/layerHandler/modules.js +4 -4
- package/es/core/contributions/layerHandler/modules.js.map +1 -1
- package/es/core/contributions/layerHandler/offscreen2d-contribution.js +2 -16
- package/es/core/contributions/layerHandler/offscreen2d-contribution.js.map +1 -1
- package/es/core/contributions/modules.d.ts +2 -2
- package/es/core/contributions/modules.js +7 -1
- package/es/core/contributions/modules.js.map +1 -1
- package/es/core/contributions/textMeasure/AtextMeasure.js +2 -14
- package/es/core/contributions/textMeasure/AtextMeasure.js.map +1 -1
- package/es/core/contributions/textMeasure/modules.d.ts +4 -3
- package/es/core/contributions/textMeasure/modules.js +4 -4
- package/es/core/contributions/textMeasure/modules.js.map +1 -1
- package/es/core/contributions/textMeasure/textMeasure-contribution.js +2 -14
- package/es/core/contributions/textMeasure/textMeasure-contribution.js.map +1 -1
- package/es/core/contributions/window/base-contribution.js +2 -16
- package/es/core/contributions/window/base-contribution.js.map +1 -1
- package/es/core/core-modules.d.ts +4 -3
- package/es/core/core-modules.js +13 -9
- package/es/core/core-modules.js.map +1 -1
- package/es/core/global-module.js +2 -0
- package/es/core/global-module.js.map +1 -1
- package/es/core/global.d.ts +2 -0
- package/es/core/global.js +8 -24
- package/es/core/global.js.map +1 -1
- package/es/core/graphic-utils.d.ts +1 -2
- package/es/core/graphic-utils.js +8 -35
- package/es/core/graphic-utils.js.map +1 -1
- package/es/core/index.js +1 -1
- package/es/core/layer-service.d.ts +7 -2
- package/es/core/layer-service.js +28 -34
- package/es/core/layer-service.js.map +1 -1
- package/es/core/layer.js +1 -1
- package/es/core/layer.js.map +1 -1
- package/es/core/light.js +1 -1
- package/es/core/stage.d.ts +19 -7
- package/es/core/stage.js +64 -48
- package/es/core/stage.js.map +1 -1
- package/es/core/window.d.ts +7 -5
- package/es/core/window.js +13 -25
- package/es/core/window.js.map +1 -1
- package/es/create.d.ts +1 -2
- package/es/create.js +4 -2
- package/es/create.js.map +1 -1
- package/es/entries/app-context.d.ts +30 -0
- package/es/entries/app-context.js +86 -0
- package/es/entries/app-context.js.map +1 -0
- package/es/entries/browser.d.ts +25 -0
- package/es/entries/browser.js +36 -0
- package/es/entries/browser.js.map +1 -0
- package/es/entries/index.d.ts +7 -0
- package/es/entries/index.js +14 -0
- package/es/entries/index.js.map +1 -0
- package/es/entries/miniapp.d.ts +6 -0
- package/es/entries/miniapp.js +12 -0
- package/es/entries/miniapp.js.map +1 -0
- package/es/entries/node.d.ts +6 -0
- package/es/entries/node.js +12 -0
- package/es/entries/node.js.map +1 -0
- package/es/entries/runtime-installer.d.ts +11 -0
- package/es/entries/runtime-installer.js +130 -0
- package/es/entries/runtime-installer.js.map +1 -0
- package/es/entries/types.d.ts +29 -0
- package/es/entries/types.js +2 -0
- package/es/entries/types.js.map +1 -0
- package/es/event/util.d.ts +1 -1
- package/es/factory/graphic-factory.d.ts +7 -0
- package/es/factory/graphic-factory.js +15 -0
- package/es/factory/graphic-factory.js.map +1 -0
- package/es/factory/index.d.ts +4 -0
- package/es/factory/index.js +8 -0
- package/es/factory/index.js.map +1 -0
- package/es/factory/layer-factory.d.ts +7 -0
- package/es/factory/layer-factory.js +11 -0
- package/es/factory/layer-factory.js.map +1 -0
- package/es/factory/stage-factory.d.ts +8 -0
- package/es/factory/stage-factory.js +12 -0
- package/es/factory/stage-factory.js.map +1 -0
- package/es/factory/types.d.ts +34 -0
- package/es/factory/types.js +2 -0
- package/es/factory/types.js.map +1 -0
- package/es/factory.d.ts +1 -0
- package/es/factory.js +2 -0
- package/es/factory.js.map +1 -1
- package/es/global.d.ts +2 -0
- package/es/global.js +10 -0
- package/es/global.js.map +1 -0
- package/es/graphic/area.js +1 -1
- package/es/graphic/area.js.map +1 -1
- package/es/graphic/bounds.js +3 -3
- package/es/graphic/bounds.js.map +1 -1
- package/es/graphic/config.js +0 -1
- package/es/graphic/config.js.map +1 -1
- package/es/graphic/glyph.js +9 -3
- package/es/graphic/glyph.js.map +1 -1
- package/es/graphic/graphic-creator.d.ts +9 -4
- package/es/graphic/graphic-creator.js +32 -5
- package/es/graphic/graphic-creator.js.map +1 -1
- package/es/graphic/graphic-service/graphic-module.d.ts +4 -3
- package/es/graphic/graphic-service/graphic-module.js +4 -4
- package/es/graphic/graphic-service/graphic-module.js.map +1 -1
- package/es/graphic/graphic-service/graphic-service.d.ts +2 -3
- package/es/graphic/graphic-service/graphic-service.js +6 -25
- package/es/graphic/graphic-service/graphic-service.js.map +1 -1
- package/es/graphic/graphic.d.ts +80 -11
- package/es/graphic/graphic.js +473 -139
- package/es/graphic/graphic.js.map +1 -1
- package/es/graphic/group.d.ts +11 -1
- package/es/graphic/group.js +46 -10
- package/es/graphic/group.js.map +1 -1
- package/es/graphic/index.d.ts +3 -0
- package/es/graphic/index.js +4 -0
- package/es/graphic/index.js.map +1 -1
- package/es/graphic/line.js +1 -1
- package/es/graphic/line.js.map +1 -1
- package/es/graphic/state/attribute-update-classifier.d.ts +13 -0
- package/es/graphic/state/attribute-update-classifier.js +61 -0
- package/es/graphic/state/attribute-update-classifier.js.map +1 -0
- package/es/graphic/state/shared-state-refresh.d.ts +6 -0
- package/es/graphic/state/shared-state-refresh.js +46 -0
- package/es/graphic/state/shared-state-refresh.js.map +1 -0
- package/es/graphic/state/shared-state-scope.d.ts +25 -0
- package/es/graphic/state/shared-state-scope.js +90 -0
- package/es/graphic/state/shared-state-scope.js.map +1 -0
- package/es/graphic/state/state-batch-scheduler.d.ts +42 -0
- package/es/graphic/state/state-batch-scheduler.js +278 -0
- package/es/graphic/state/state-batch-scheduler.js.map +1 -0
- package/es/graphic/state/state-definition-compiler.d.ts +6 -0
- package/es/graphic/state/state-definition-compiler.js +83 -0
- package/es/graphic/state/state-definition-compiler.js.map +1 -0
- package/es/graphic/state/state-definition.d.ts +44 -0
- package/es/graphic/state/state-definition.js +2 -0
- package/es/graphic/state/state-definition.js.map +1 -0
- package/es/graphic/state/state-engine.d.ts +38 -0
- package/es/graphic/state/state-engine.js +212 -0
- package/es/graphic/state/state-engine.js.map +1 -0
- package/es/graphic/state/state-model.d.ts +43 -0
- package/es/graphic/state/state-model.js +135 -0
- package/es/graphic/state/state-model.js.map +1 -0
- package/es/graphic/state/state-perf-monitor.d.ts +119 -0
- package/es/graphic/state/state-perf-monitor.js +207 -0
- package/es/graphic/state/state-perf-monitor.js.map +1 -0
- package/es/graphic/state/state-style-resolver.d.ts +22 -0
- package/es/graphic/state/state-style-resolver.js +65 -0
- package/es/graphic/state/state-style-resolver.js.map +1 -0
- package/es/graphic/state/state-transition-orchestrator.d.ts +41 -0
- package/es/graphic/state/state-transition-orchestrator.js +68 -0
- package/es/graphic/state/state-transition-orchestrator.js.map +1 -0
- package/es/graphic/text.d.ts +3 -2
- package/es/graphic/text.js +22 -13
- package/es/graphic/text.js.map +1 -1
- package/es/graphic/theme.d.ts +5 -0
- package/es/graphic/theme.js +7 -0
- package/es/graphic/theme.js.map +1 -1
- package/es/graphic/wrap-text.d.ts +1 -1
- package/es/graphic/wrap-text.js +18 -13
- package/es/graphic/wrap-text.js.map +1 -1
- package/es/index.d.ts +7 -4
- package/es/index.js +12 -6
- package/es/index.js.map +1 -1
- package/es/interface/global.d.ts +2 -0
- package/es/interface/global.js.map +1 -1
- package/es/interface/graphic/group.d.ts +6 -0
- package/es/interface/graphic/group.js.map +1 -1
- package/es/interface/graphic/theme.d.ts +3 -0
- package/es/interface/graphic/theme.js.map +1 -1
- package/es/interface/graphic.d.ts +24 -26
- package/es/interface/graphic.js.map +1 -1
- package/es/interface/plugin.d.ts +2 -0
- package/es/interface/plugin.js.map +1 -1
- package/es/interface/stage.d.ts +11 -3
- package/es/interface/stage.js.map +1 -1
- package/es/interface/theme-service.js.map +1 -1
- package/es/legacy/binding-context.d.ts +24 -0
- package/es/legacy/binding-context.js +90 -0
- package/es/legacy/binding-context.js.map +1 -0
- package/es/legacy/bootstrap.d.ts +10 -0
- package/es/legacy/bootstrap.js +73 -0
- package/es/legacy/bootstrap.js.map +1 -0
- package/es/legacy/module-types.d.ts +2 -0
- package/es/legacy/module-types.js +2 -0
- package/es/legacy/module-types.js.map +1 -0
- package/es/modules.d.ts +5 -6
- package/es/modules.js +37 -33
- package/es/modules.js.map +1 -1
- package/es/picker/global-picker-service.js +2 -16
- package/es/picker/global-picker-service.js.map +1 -1
- package/es/picker/pick-interceptor.js +8 -32
- package/es/picker/pick-interceptor.js.map +1 -1
- package/es/picker/pick-modules.d.ts +5 -3
- package/es/picker/pick-modules.js +4 -4
- package/es/picker/pick-modules.js.map +1 -1
- package/es/picker/picker-service.d.ts +13 -4
- package/es/picker/picker-service.js +16 -26
- package/es/picker/picker-service.js.map +1 -1
- package/es/plugins/base-plugin.d.ts +8 -0
- package/es/plugins/base-plugin.js +7 -0
- package/es/plugins/base-plugin.js.map +1 -0
- package/es/plugins/browser-env-plugin.d.ts +8 -0
- package/es/plugins/browser-env-plugin.js +16 -0
- package/es/plugins/browser-env-plugin.js.map +1 -0
- package/es/plugins/builtin-plugin/dirty-bounds-plugin.d.ts +4 -1
- package/es/plugins/builtin-plugin/dirty-bounds-plugin.js +26 -3
- package/es/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
- package/es/plugins/builtin-plugin/richtext-edit-plugin.js +3 -1
- package/es/plugins/builtin-plugin/richtext-edit-plugin.js.map +1 -1
- package/es/plugins/index.d.ts +5 -0
- package/es/plugins/index.js +10 -0
- package/es/plugins/index.js.map +1 -0
- package/es/plugins/picker-plugin.d.ts +7 -0
- package/es/plugins/picker-plugin.js +11 -0
- package/es/plugins/picker-plugin.js.map +1 -0
- package/es/plugins/plugin-modules.d.ts +4 -3
- package/es/plugins/plugin-modules.js +4 -4
- package/es/plugins/plugin-modules.js.map +1 -1
- package/es/plugins/plugin-service.d.ts +16 -2
- package/es/plugins/plugin-service.js +25 -32
- package/es/plugins/plugin-service.js.map +1 -1
- package/es/plugins/renderer-plugin.d.ts +7 -0
- package/es/plugins/renderer-plugin.js +11 -0
- package/es/plugins/renderer-plugin.js.map +1 -0
- package/es/plugins/types.d.ts +28 -0
- package/es/plugins/types.js +2 -0
- package/es/plugins/types.js.map +1 -0
- package/es/register/register-arc.js +2 -2
- package/es/register/register-arc.js.map +1 -1
- package/es/register/register-arc3d.js +2 -2
- package/es/register/register-arc3d.js.map +1 -1
- package/es/register/register-area.js +2 -2
- package/es/register/register-area.js.map +1 -1
- package/es/register/register-circle.js +2 -2
- package/es/register/register-circle.js.map +1 -1
- package/es/register/register-glyph.js +2 -2
- package/es/register/register-glyph.js.map +1 -1
- package/es/register/register-group.js +2 -2
- package/es/register/register-group.js.map +1 -1
- package/es/register/register-image.js +2 -2
- package/es/register/register-image.js.map +1 -1
- package/es/register/register-line.js +2 -2
- package/es/register/register-line.js.map +1 -1
- package/es/register/register-path.js +2 -2
- package/es/register/register-path.js.map +1 -1
- package/es/register/register-polygon.js +2 -2
- package/es/register/register-polygon.js.map +1 -1
- package/es/register/register-pyramid3d.js +2 -2
- package/es/register/register-pyramid3d.js.map +1 -1
- package/es/register/register-rect.js +2 -2
- package/es/register/register-rect.js.map +1 -1
- package/es/register/register-rect3d.js +2 -2
- package/es/register/register-rect3d.js.map +1 -1
- package/es/register/register-richtext.js +2 -2
- package/es/register/register-richtext.js.map +1 -1
- package/es/register/register-shadowRoot.js +2 -2
- package/es/register/register-shadowRoot.js.map +1 -1
- package/es/register/register-star.js +2 -2
- package/es/register/register-star.js.map +1 -1
- package/es/register/register-symbol.js +2 -2
- package/es/register/register-symbol.js.map +1 -1
- package/es/register/register-text.js +2 -2
- package/es/register/register-text.js.map +1 -1
- package/es/register/register-wraptext.js +2 -2
- package/es/register/register-wraptext.js.map +1 -1
- package/es/registry/contribution-registry.d.ts +9 -0
- package/es/registry/contribution-registry.js +25 -0
- package/es/registry/contribution-registry.js.map +1 -0
- package/es/registry/index.d.ts +5 -0
- package/es/registry/index.js +10 -0
- package/es/registry/index.js.map +1 -0
- package/es/registry/picker-registry.d.ts +10 -0
- package/es/registry/picker-registry.js +21 -0
- package/es/registry/picker-registry.js.map +1 -0
- package/es/registry/plugin-registry.d.ts +10 -0
- package/es/registry/plugin-registry.js +21 -0
- package/es/registry/plugin-registry.js.map +1 -0
- package/es/registry/renderer-registry.d.ts +11 -0
- package/es/registry/renderer-registry.js +29 -0
- package/es/registry/renderer-registry.js.map +1 -0
- package/es/registry/types.d.ts +34 -0
- package/es/registry/types.js +2 -0
- package/es/registry/types.js.map +1 -0
- package/es/render/contributions/modules.d.ts +2 -2
- package/es/render/contributions/modules.js +3 -1
- package/es/render/contributions/modules.js.map +1 -1
- package/es/render/contributions/render/arc-module.d.ts +4 -2
- package/es/render/contributions/render/arc-module.js +4 -4
- package/es/render/contributions/render/arc-module.js.map +1 -1
- package/es/render/contributions/render/arc-render.js +2 -24
- package/es/render/contributions/render/arc-render.js.map +1 -1
- package/es/render/contributions/render/arc3d-module.d.ts +4 -2
- package/es/render/contributions/render/arc3d-module.js +4 -4
- package/es/render/contributions/render/arc3d-module.js.map +1 -1
- package/es/render/contributions/render/arc3d-render.js +2 -14
- package/es/render/contributions/render/arc3d-render.js.map +1 -1
- package/es/render/contributions/render/area-module.d.ts +4 -2
- package/es/render/contributions/render/area-module.js +4 -4
- package/es/render/contributions/render/area-module.js.map +1 -1
- package/es/render/contributions/render/area-render.js +2 -24
- package/es/render/contributions/render/area-render.js.map +1 -1
- package/es/render/contributions/render/base-render.js +8 -5
- package/es/render/contributions/render/base-render.js.map +1 -1
- package/es/render/contributions/render/circle-module.d.ts +4 -2
- package/es/render/contributions/render/circle-module.js +4 -4
- package/es/render/contributions/render/circle-module.js.map +1 -1
- package/es/render/contributions/render/circle-render.js +2 -24
- package/es/render/contributions/render/circle-render.js.map +1 -1
- package/es/render/contributions/render/contributions/base-contribution-render.js +2 -24
- package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/rect-contribution-render.js +4 -20
- package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
- package/es/render/contributions/render/draw-contribution.d.ts +13 -4
- package/es/render/contributions/render/draw-contribution.js +24 -34
- package/es/render/contributions/render/draw-contribution.js.map +1 -1
- package/es/render/contributions/render/draw-interceptor.js +4 -19
- package/es/render/contributions/render/draw-interceptor.js.map +1 -1
- package/es/render/contributions/render/glyph-module.d.ts +4 -2
- package/es/render/contributions/render/glyph-module.js +4 -4
- package/es/render/contributions/render/glyph-module.js.map +1 -1
- package/es/render/contributions/render/glyph-render.js +2 -14
- package/es/render/contributions/render/glyph-render.js.map +1 -1
- package/es/render/contributions/render/graphic-render.js +1 -13
- package/es/render/contributions/render/graphic-render.js.map +1 -1
- package/es/render/contributions/render/group-render.js +2 -24
- package/es/render/contributions/render/group-render.js.map +1 -1
- package/es/render/contributions/render/image-module.d.ts +4 -2
- package/es/render/contributions/render/image-module.js +4 -4
- package/es/render/contributions/render/image-module.js.map +1 -1
- package/es/render/contributions/render/image-render.d.ts +2 -2
- package/es/render/contributions/render/image-render.js +9 -31
- package/es/render/contributions/render/image-render.js.map +1 -1
- package/es/render/contributions/render/incremental-area-render.js +2 -14
- package/es/render/contributions/render/incremental-area-render.js.map +1 -1
- package/es/render/contributions/render/incremental-draw-contribution.d.ts +2 -2
- package/es/render/contributions/render/incremental-draw-contribution.js +3 -29
- package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
- package/es/render/contributions/render/incremental-line-render.js +2 -14
- package/es/render/contributions/render/incremental-line-render.js.map +1 -1
- package/es/render/contributions/render/line-module.d.ts +4 -2
- package/es/render/contributions/render/line-module.js +4 -4
- package/es/render/contributions/render/line-module.js.map +1 -1
- package/es/render/contributions/render/line-render.js +2 -14
- package/es/render/contributions/render/line-render.js.map +1 -1
- package/es/render/contributions/render/module.d.ts +4 -3
- package/es/render/contributions/render/module.js +10 -10
- package/es/render/contributions/render/module.js.map +1 -1
- package/es/render/contributions/render/path-module.d.ts +4 -2
- package/es/render/contributions/render/path-module.js +4 -4
- package/es/render/contributions/render/path-module.js.map +1 -1
- package/es/render/contributions/render/path-render.js +2 -24
- package/es/render/contributions/render/path-render.js.map +1 -1
- package/es/render/contributions/render/polygon-module.d.ts +4 -2
- package/es/render/contributions/render/polygon-module.js +4 -4
- package/es/render/contributions/render/polygon-module.js.map +1 -1
- package/es/render/contributions/render/polygon-render.js +2 -24
- package/es/render/contributions/render/polygon-render.js.map +1 -1
- package/es/render/contributions/render/pyramid3d-module.d.ts +4 -2
- package/es/render/contributions/render/pyramid3d-module.js +4 -4
- package/es/render/contributions/render/pyramid3d-module.js.map +1 -1
- package/es/render/contributions/render/pyramid3d-render.js +2 -14
- package/es/render/contributions/render/pyramid3d-render.js.map +1 -1
- package/es/render/contributions/render/rect-module.d.ts +4 -2
- package/es/render/contributions/render/rect-module.js +7 -7
- package/es/render/contributions/render/rect-module.js.map +1 -1
- package/es/render/contributions/render/rect-render.js +2 -24
- package/es/render/contributions/render/rect-render.js.map +1 -1
- package/es/render/contributions/render/rect3d-module.d.ts +4 -2
- package/es/render/contributions/render/rect3d-module.js +4 -4
- package/es/render/contributions/render/rect3d-module.js.map +1 -1
- package/es/render/contributions/render/rect3d-render.js +2 -14
- package/es/render/contributions/render/rect3d-render.js.map +1 -1
- package/es/render/contributions/render/render-slector.js.map +1 -1
- package/es/render/contributions/render/richtext-module.d.ts +4 -2
- package/es/render/contributions/render/richtext-module.js +4 -4
- package/es/render/contributions/render/richtext-module.js.map +1 -1
- package/es/render/contributions/render/richtext-render.js +2 -16
- package/es/render/contributions/render/richtext-render.js.map +1 -1
- package/es/render/contributions/render/star-module.d.ts +4 -2
- package/es/render/contributions/render/star-module.js +9 -5
- package/es/render/contributions/render/star-module.js.map +1 -1
- package/es/render/contributions/render/star-render.js +2 -24
- package/es/render/contributions/render/star-render.js.map +1 -1
- package/es/render/contributions/render/symbol-module.d.ts +4 -2
- package/es/render/contributions/render/symbol-module.js +4 -4
- package/es/render/contributions/render/symbol-module.js.map +1 -1
- package/es/render/contributions/render/symbol-render.js +2 -24
- package/es/render/contributions/render/symbol-render.js.map +1 -1
- package/es/render/contributions/render/text-module.d.ts +4 -2
- package/es/render/contributions/render/text-module.js +4 -4
- package/es/render/contributions/render/text-module.js.map +1 -1
- package/es/render/contributions/render/text-render.js +2 -24
- package/es/render/contributions/render/text-render.js.map +1 -1
- package/es/render/render-modules.d.ts +4 -3
- package/es/render/render-modules.js +4 -4
- package/es/render/render-modules.js.map +1 -1
- package/es/render/render-service.d.ts +1 -1
- package/es/render/render-service.js +4 -22
- package/es/render/render-service.js.map +1 -1
- package/package.json +8 -7
- package/cjs/common/inversify/annotation/inject.d.ts +0 -1
- package/cjs/common/inversify/annotation/inject.js +0 -10
- package/cjs/common/inversify/annotation/inject.js.map +0 -1
- package/cjs/common/inversify/annotation/inject_base.d.ts +0 -14
- package/cjs/common/inversify/annotation/inject_base.js +0 -39
- package/cjs/common/inversify/annotation/inject_base.js.map +0 -1
- package/cjs/common/inversify/annotation/injectable.d.ts +0 -1
- package/cjs/common/inversify/annotation/injectable.js +0 -46
- package/cjs/common/inversify/annotation/injectable.js.map +0 -1
- package/cjs/common/inversify/annotation/multi_inject.d.ts +0 -1
- package/cjs/common/inversify/annotation/multi_inject.js +0 -10
- package/cjs/common/inversify/annotation/multi_inject.js.map +0 -1
- package/cjs/common/inversify/annotation/named.d.ts +0 -1
- package/cjs/common/inversify/annotation/named.js +0 -14
- package/cjs/common/inversify/annotation/named.js.map +0 -1
- package/cjs/common/inversify/annotation/optional.d.ts +0 -2
- package/cjs/common/inversify/annotation/optional.js +0 -14
- package/cjs/common/inversify/annotation/optional.js.map +0 -1
- package/cjs/common/inversify/binding.d.ts +0 -18
- package/cjs/common/inversify/binding.js +0 -26
- package/cjs/common/inversify/binding.js.map +0 -1
- package/cjs/common/inversify/container.d.ts +0 -28
- package/cjs/common/inversify/container.js +0 -158
- package/cjs/common/inversify/container.js.map +0 -1
- package/cjs/common/inversify/cotainer-module.d.ts +0 -6
- package/cjs/common/inversify/cotainer-module.js +0 -16
- package/cjs/common/inversify/cotainer-module.js.map +0 -1
- package/cjs/common/inversify/index.d.ts +0 -7
- package/cjs/common/inversify/index.js +0 -75
- package/cjs/common/inversify/index.js.map +0 -1
- package/cjs/common/inversify/interfaces.d.ts +0 -218
- package/cjs/common/inversify/interfaces.js.map +0 -1
- package/cjs/common/inversify/literal_types.d.ts +0 -5
- package/cjs/common/inversify/literal_types.js +0 -34
- package/cjs/common/inversify/literal_types.js.map +0 -1
- package/cjs/common/inversify/meta-data.d.ts +0 -6
- package/cjs/common/inversify/meta-data.js +0 -19
- package/cjs/common/inversify/meta-data.js.map +0 -1
- package/cjs/common/inversify/metadata_keys.d.ts +0 -12
- package/cjs/common/inversify/metadata_keys.js +0 -15
- package/cjs/common/inversify/metadata_keys.js.map +0 -1
- package/cjs/common/inversify/metadata_reader.d.ts +0 -6
- package/cjs/common/inversify/metadata_reader.js +0 -28
- package/cjs/common/inversify/metadata_reader.js.map +0 -1
- package/cjs/common/inversify/syntax/binding_in_syntax.d.ts +0 -10
- package/cjs/common/inversify/syntax/binding_in_syntax.js +0 -29
- package/cjs/common/inversify/syntax/binding_in_syntax.js.map +0 -1
- package/cjs/common/inversify/syntax/binding_to_syntax.d.ts +0 -12
- package/cjs/common/inversify/syntax/binding_to_syntax.js +0 -40
- package/cjs/common/inversify/syntax/binding_to_syntax.js.map +0 -1
- package/cjs/common/inversify/syntax/constraint_helpers.d.ts +0 -2
- package/cjs/common/inversify/syntax/constraint_helpers.js +0 -20
- package/cjs/common/inversify/syntax/constraint_helpers.js.map +0 -1
- package/cjs/common/inversify-lite/annotation/decorator_utils.d.ts +0 -16
- package/cjs/common/inversify-lite/annotation/decorator_utils.js +0 -97
- package/cjs/common/inversify-lite/annotation/decorator_utils.js.map +0 -1
- package/cjs/common/inversify-lite/annotation/inject.d.ts +0 -2
- package/cjs/common/inversify-lite/annotation/inject.js +0 -36
- package/cjs/common/inversify-lite/annotation/inject.js.map +0 -1
- package/cjs/common/inversify-lite/annotation/inject_base.d.ts +0 -3
- package/cjs/common/inversify-lite/annotation/inject_base.js +0 -20
- package/cjs/common/inversify-lite/annotation/inject_base.js.map +0 -1
- package/cjs/common/inversify-lite/annotation/injectable.d.ts +0 -2
- package/cjs/common/inversify-lite/annotation/injectable.js +0 -48
- package/cjs/common/inversify-lite/annotation/injectable.js.map +0 -1
- package/cjs/common/inversify-lite/annotation/lazy_service_identifier.d.ts +0 -7
- package/cjs/common/inversify-lite/annotation/lazy_service_identifier.js +0 -17
- package/cjs/common/inversify-lite/annotation/lazy_service_identifier.js.map +0 -1
- package/cjs/common/inversify-lite/annotation/multi_inject.d.ts +0 -2
- package/cjs/common/inversify-lite/annotation/multi_inject.js +0 -36
- package/cjs/common/inversify-lite/annotation/multi_inject.js.map +0 -1
- package/cjs/common/inversify-lite/annotation/named.d.ts +0 -2
- package/cjs/common/inversify-lite/annotation/named.js +0 -39
- package/cjs/common/inversify-lite/annotation/named.js.map +0 -1
- package/cjs/common/inversify-lite/annotation/property_event_decorator.d.ts +0 -4
- package/cjs/common/inversify-lite/annotation/property_event_decorator.js +0 -24
- package/cjs/common/inversify-lite/annotation/property_event_decorator.js.map +0 -1
- package/cjs/common/inversify-lite/bindings/binding.d.ts +0 -20
- package/cjs/common/inversify-lite/bindings/binding.js +0 -27
- package/cjs/common/inversify-lite/bindings/binding.js.map +0 -1
- package/cjs/common/inversify-lite/bindings/binding_count.d.ts +0 -5
- package/cjs/common/inversify-lite/bindings/binding_count.js +0 -10
- package/cjs/common/inversify-lite/bindings/binding_count.js.map +0 -1
- package/cjs/common/inversify-lite/constants/error_msgs.d.ts +0 -32
- package/cjs/common/inversify-lite/constants/error_msgs.js +0 -50
- package/cjs/common/inversify-lite/constants/error_msgs.js.map +0 -1
- package/cjs/common/inversify-lite/constants/literal_types.d.ts +0 -5
- package/cjs/common/inversify-lite/constants/literal_types.js +0 -35
- package/cjs/common/inversify-lite/constants/literal_types.js.map +0 -1
- package/cjs/common/inversify-lite/constants/metadata_keys.d.ts +0 -13
- package/cjs/common/inversify-lite/constants/metadata_keys.js +0 -16
- package/cjs/common/inversify-lite/constants/metadata_keys.js.map +0 -1
- package/cjs/common/inversify-lite/container/container.d.ts +0 -46
- package/cjs/common/inversify-lite/container/container.js +0 -290
- package/cjs/common/inversify-lite/container/container.js.map +0 -1
- package/cjs/common/inversify-lite/container/container_module.d.ts +0 -11
- package/cjs/common/inversify-lite/container/container_module.js +0 -24
- package/cjs/common/inversify-lite/container/container_module.js.map +0 -1
- package/cjs/common/inversify-lite/container/lookup.d.ts +0 -16
- package/cjs/common/inversify-lite/container/lookup.js +0 -97
- package/cjs/common/inversify-lite/container/lookup.js.map +0 -1
- package/cjs/common/inversify-lite/index.d.ts +0 -1
- package/cjs/common/inversify-lite/index.js.map +0 -1
- package/cjs/common/inversify-lite/interfaces/interfaces.d.ts +0 -237
- package/cjs/common/inversify-lite/interfaces/interfaces.js.map +0 -1
- package/cjs/common/inversify-lite/planning/context.d.ts +0 -11
- package/cjs/common/inversify-lite/planning/context.js +0 -22
- package/cjs/common/inversify-lite/planning/context.js.map +0 -1
- package/cjs/common/inversify-lite/planning/metadata.d.ts +0 -8
- package/cjs/common/inversify-lite/planning/metadata.js +0 -44
- package/cjs/common/inversify-lite/planning/metadata.js.map +0 -1
- package/cjs/common/inversify-lite/planning/metadata_reader.d.ts +0 -6
- package/cjs/common/inversify-lite/planning/metadata_reader.js +0 -51
- package/cjs/common/inversify-lite/planning/metadata_reader.js.map +0 -1
- package/cjs/common/inversify-lite/planning/plan.d.ts +0 -7
- package/cjs/common/inversify-lite/planning/plan.js +0 -14
- package/cjs/common/inversify-lite/planning/plan.js.map +0 -1
- package/cjs/common/inversify-lite/planning/planner.d.ts +0 -5
- package/cjs/common/inversify-lite/planning/planner.js +0 -132
- package/cjs/common/inversify-lite/planning/planner.js.map +0 -1
- package/cjs/common/inversify-lite/planning/queryable_string.d.ts +0 -9
- package/cjs/common/inversify-lite/planning/queryable_string.js +0 -23
- package/cjs/common/inversify-lite/planning/queryable_string.js.map +0 -1
- package/cjs/common/inversify-lite/planning/reflection_utils.d.ts +0 -5
- package/cjs/common/inversify-lite/planning/reflection_utils.js +0 -129
- package/cjs/common/inversify-lite/planning/reflection_utils.js.map +0 -1
- package/cjs/common/inversify-lite/planning/request.d.ts +0 -14
- package/cjs/common/inversify-lite/planning/request.js +0 -22
- package/cjs/common/inversify-lite/planning/request.js.map +0 -1
- package/cjs/common/inversify-lite/planning/target.d.ts +0 -23
- package/cjs/common/inversify-lite/planning/target.js +0 -81
- package/cjs/common/inversify-lite/planning/target.js.map +0 -1
- package/cjs/common/inversify-lite/resolution/instantiation.d.ts +0 -3
- package/cjs/common/inversify-lite/resolution/instantiation.js +0 -143
- package/cjs/common/inversify-lite/resolution/instantiation.js.map +0 -1
- package/cjs/common/inversify-lite/resolution/resolver.d.ts +0 -3
- package/cjs/common/inversify-lite/resolution/resolver.js +0 -74
- package/cjs/common/inversify-lite/resolution/resolver.js.map +0 -1
- package/cjs/common/inversify-lite/scope/scope.d.ts +0 -3
- package/cjs/common/inversify-lite/scope/scope.js +0 -56
- package/cjs/common/inversify-lite/scope/scope.js.map +0 -1
- package/cjs/common/inversify-lite/syntax/binding_in_syntax.d.ts +0 -9
- package/cjs/common/inversify-lite/syntax/binding_in_syntax.js +0 -25
- package/cjs/common/inversify-lite/syntax/binding_in_syntax.js.map +0 -1
- package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.d.ts +0 -12
- package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.js +0 -29
- package/cjs/common/inversify-lite/syntax/binding_in_when_on_syntax.js.map +0 -1
- package/cjs/common/inversify-lite/syntax/binding_on_syntax.d.ts +0 -6
- package/cjs/common/inversify-lite/syntax/binding_on_syntax.js +0 -14
- package/cjs/common/inversify-lite/syntax/binding_on_syntax.js.map +0 -1
- package/cjs/common/inversify-lite/syntax/binding_to_syntax.d.ts +0 -18
- package/cjs/common/inversify-lite/syntax/binding_to_syntax.js +0 -88
- package/cjs/common/inversify-lite/syntax/binding_to_syntax.js.map +0 -1
- package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.d.ts +0 -8
- package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.js +0 -19
- package/cjs/common/inversify-lite/syntax/binding_when_on_syntax.js.map +0 -1
- package/cjs/common/inversify-lite/syntax/binding_when_syntax.d.ts +0 -7
- package/cjs/common/inversify-lite/syntax/binding_when_syntax.js +0 -20
- package/cjs/common/inversify-lite/syntax/binding_when_syntax.js.map +0 -1
- package/cjs/common/inversify-lite/syntax/constraint_helpers.d.ts +0 -3
- package/cjs/common/inversify-lite/syntax/constraint_helpers.js +0 -38
- package/cjs/common/inversify-lite/syntax/constraint_helpers.js.map +0 -1
- package/cjs/common/inversify-lite/utils/async.d.ts +0 -3
- package/cjs/common/inversify-lite/utils/async.js +0 -15
- package/cjs/common/inversify-lite/utils/async.js.map +0 -1
- package/cjs/common/inversify-lite/utils/binding_utils.d.ts +0 -4
- package/cjs/common/inversify-lite/utils/binding_utils.js +0 -94
- package/cjs/common/inversify-lite/utils/binding_utils.js.map +0 -1
- package/cjs/common/inversify-lite/utils/clonable.d.ts +0 -3
- package/cjs/common/inversify-lite/utils/clonable.js +0 -10
- package/cjs/common/inversify-lite/utils/clonable.js.map +0 -1
- package/cjs/common/inversify-lite/utils/exceptions.d.ts +0 -2
- package/cjs/common/inversify-lite/utils/exceptions.js +0 -43
- package/cjs/common/inversify-lite/utils/exceptions.js.map +0 -1
- package/cjs/common/inversify-lite/utils/factory_type.d.ts +0 -5
- package/cjs/common/inversify-lite/utils/factory_type.js +0 -11
- package/cjs/common/inversify-lite/utils/factory_type.js.map +0 -1
- package/cjs/common/inversify-lite/utils/id.d.ts +0 -2
- package/cjs/common/inversify-lite/utils/id.js +0 -14
- package/cjs/common/inversify-lite/utils/id.js.map +0 -1
- package/cjs/common/inversify-lite/utils/js.d.ts +0 -1
- package/cjs/common/inversify-lite/utils/js.js +0 -14
- package/cjs/common/inversify-lite/utils/js.js.map +0 -1
- package/cjs/common/inversify-lite/utils/serialization.d.ts +0 -10
- package/cjs/common/inversify-lite/utils/serialization.js +0 -99
- package/cjs/common/inversify-lite/utils/serialization.js.map +0 -1
- package/cjs/container.d.ts +0 -2
- package/cjs/container.js +0 -10
- package/cjs/container.js.map +0 -1
- package/es/common/inversify/annotation/inject.d.ts +0 -1
- package/es/common/inversify/annotation/inject.js +0 -6
- package/es/common/inversify/annotation/inject.js.map +0 -1
- package/es/common/inversify/annotation/inject_base.d.ts +0 -14
- package/es/common/inversify/annotation/inject_base.js +0 -29
- package/es/common/inversify/annotation/inject_base.js.map +0 -1
- package/es/common/inversify/annotation/injectable.d.ts +0 -1
- package/es/common/inversify/annotation/injectable.js +0 -10
- package/es/common/inversify/annotation/injectable.js.map +0 -1
- package/es/common/inversify/annotation/multi_inject.d.ts +0 -1
- package/es/common/inversify/annotation/multi_inject.js +0 -6
- package/es/common/inversify/annotation/multi_inject.js.map +0 -1
- package/es/common/inversify/annotation/named.d.ts +0 -1
- package/es/common/inversify/annotation/named.js +0 -10
- package/es/common/inversify/annotation/named.js.map +0 -1
- package/es/common/inversify/annotation/optional.d.ts +0 -2
- package/es/common/inversify/annotation/optional.js +0 -12
- package/es/common/inversify/annotation/optional.js.map +0 -1
- package/es/common/inversify/binding.d.ts +0 -18
- package/es/common/inversify/binding.js +0 -22
- package/es/common/inversify/binding.js.map +0 -1
- package/es/common/inversify/container.d.ts +0 -28
- package/es/common/inversify/container.js +0 -158
- package/es/common/inversify/container.js.map +0 -1
- package/es/common/inversify/cotainer-module.d.ts +0 -6
- package/es/common/inversify/cotainer-module.js +0 -8
- package/es/common/inversify/cotainer-module.js.map +0 -1
- package/es/common/inversify/index.d.ts +0 -7
- package/es/common/inversify/index.js +0 -14
- package/es/common/inversify/index.js.map +0 -1
- package/es/common/inversify/interfaces.d.ts +0 -218
- package/es/common/inversify/interfaces.js +0 -2
- package/es/common/inversify/interfaces.js.map +0 -1
- package/es/common/inversify/literal_types.d.ts +0 -5
- package/es/common/inversify/literal_types.js +0 -20
- package/es/common/inversify/literal_types.js.map +0 -1
- package/es/common/inversify/meta-data.d.ts +0 -6
- package/es/common/inversify/meta-data.js +0 -11
- package/es/common/inversify/meta-data.js.map +0 -1
- package/es/common/inversify/metadata_keys.d.ts +0 -12
- package/es/common/inversify/metadata_keys.js +0 -28
- package/es/common/inversify/metadata_keys.js.map +0 -1
- package/es/common/inversify/metadata_reader.d.ts +0 -6
- package/es/common/inversify/metadata_reader.js +0 -18
- package/es/common/inversify/metadata_reader.js.map +0 -1
- package/es/common/inversify/syntax/binding_in_syntax.d.ts +0 -10
- package/es/common/inversify/syntax/binding_in_syntax.js +0 -24
- package/es/common/inversify/syntax/binding_in_syntax.js.map +0 -1
- package/es/common/inversify/syntax/binding_to_syntax.d.ts +0 -12
- package/es/common/inversify/syntax/binding_to_syntax.js +0 -36
- package/es/common/inversify/syntax/binding_to_syntax.js.map +0 -1
- package/es/common/inversify/syntax/constraint_helpers.d.ts +0 -2
- package/es/common/inversify/syntax/constraint_helpers.js +0 -18
- package/es/common/inversify/syntax/constraint_helpers.js.map +0 -1
- package/es/common/inversify-lite/annotation/decorator_utils.d.ts +0 -16
- package/es/common/inversify-lite/annotation/decorator_utils.js +0 -67
- package/es/common/inversify-lite/annotation/decorator_utils.js.map +0 -1
- package/es/common/inversify-lite/annotation/inject.d.ts +0 -2
- package/es/common/inversify-lite/annotation/inject.js +0 -8
- package/es/common/inversify-lite/annotation/inject.js.map +0 -1
- package/es/common/inversify-lite/annotation/inject_base.d.ts +0 -3
- package/es/common/inversify-lite/annotation/inject_base.js +0 -16
- package/es/common/inversify-lite/annotation/inject_base.js.map +0 -1
- package/es/common/inversify-lite/annotation/injectable.d.ts +0 -2
- package/es/common/inversify-lite/annotation/injectable.js +0 -16
- package/es/common/inversify-lite/annotation/injectable.js.map +0 -1
- package/es/common/inversify-lite/annotation/lazy_service_identifier.d.ts +0 -7
- package/es/common/inversify-lite/annotation/lazy_service_identifier.js +0 -9
- package/es/common/inversify-lite/annotation/lazy_service_identifier.js.map +0 -1
- package/es/common/inversify-lite/annotation/multi_inject.d.ts +0 -2
- package/es/common/inversify-lite/annotation/multi_inject.js +0 -8
- package/es/common/inversify-lite/annotation/multi_inject.js.map +0 -1
- package/es/common/inversify-lite/annotation/named.d.ts +0 -2
- package/es/common/inversify-lite/annotation/named.js +0 -12
- package/es/common/inversify-lite/annotation/named.js.map +0 -1
- package/es/common/inversify-lite/annotation/property_event_decorator.d.ts +0 -4
- package/es/common/inversify-lite/annotation/property_event_decorator.js +0 -14
- package/es/common/inversify-lite/annotation/property_event_decorator.js.map +0 -1
- package/es/common/inversify-lite/bindings/binding.d.ts +0 -20
- package/es/common/inversify-lite/bindings/binding.js +0 -23
- package/es/common/inversify-lite/bindings/binding.js.map +0 -1
- package/es/common/inversify-lite/bindings/binding_count.d.ts +0 -5
- package/es/common/inversify-lite/bindings/binding_count.js +0 -6
- package/es/common/inversify-lite/bindings/binding_count.js.map +0 -1
- package/es/common/inversify-lite/constants/error_msgs.d.ts +0 -32
- package/es/common/inversify-lite/constants/error_msgs.js +0 -64
- package/es/common/inversify-lite/constants/error_msgs.js.map +0 -1
- package/es/common/inversify-lite/constants/literal_types.d.ts +0 -5
- package/es/common/inversify-lite/constants/literal_types.js +0 -21
- package/es/common/inversify-lite/constants/literal_types.js.map +0 -1
- package/es/common/inversify-lite/constants/metadata_keys.d.ts +0 -13
- package/es/common/inversify-lite/constants/metadata_keys.js +0 -30
- package/es/common/inversify-lite/constants/metadata_keys.js.map +0 -1
- package/es/common/inversify-lite/container/container.d.ts +0 -46
- package/es/common/inversify-lite/container/container.js +0 -279
- package/es/common/inversify-lite/container/container.js.map +0 -1
- package/es/common/inversify-lite/container/container_module.d.ts +0 -11
- package/es/common/inversify-lite/container/container_module.js +0 -14
- package/es/common/inversify-lite/container/container_module.js.map +0 -1
- package/es/common/inversify-lite/container/lookup.d.ts +0 -16
- package/es/common/inversify-lite/container/lookup.js +0 -68
- package/es/common/inversify-lite/container/lookup.js.map +0 -1
- package/es/common/inversify-lite/index.d.ts +0 -1
- package/es/common/inversify-lite/index.js +0 -2
- package/es/common/inversify-lite/index.js.map +0 -1
- package/es/common/inversify-lite/interfaces/interfaces.d.ts +0 -237
- package/es/common/inversify-lite/interfaces/interfaces.js +0 -2
- package/es/common/inversify-lite/interfaces/interfaces.js.map +0 -1
- package/es/common/inversify-lite/planning/context.d.ts +0 -11
- package/es/common/inversify-lite/planning/context.js +0 -16
- package/es/common/inversify-lite/planning/context.js.map +0 -1
- package/es/common/inversify-lite/planning/metadata.d.ts +0 -8
- package/es/common/inversify-lite/planning/metadata.js +0 -13
- package/es/common/inversify-lite/planning/metadata.js.map +0 -1
- package/es/common/inversify-lite/planning/metadata_reader.d.ts +0 -6
- package/es/common/inversify-lite/planning/metadata_reader.js +0 -18
- package/es/common/inversify-lite/planning/metadata_reader.js.map +0 -1
- package/es/common/inversify-lite/planning/plan.d.ts +0 -7
- package/es/common/inversify-lite/planning/plan.js +0 -8
- package/es/common/inversify-lite/planning/plan.js.map +0 -1
- package/es/common/inversify-lite/planning/planner.d.ts +0 -5
- package/es/common/inversify-lite/planning/planner.js +0 -120
- package/es/common/inversify-lite/planning/planner.js.map +0 -1
- package/es/common/inversify-lite/planning/queryable_string.d.ts +0 -9
- package/es/common/inversify-lite/planning/queryable_string.js +0 -17
- package/es/common/inversify-lite/planning/queryable_string.js.map +0 -1
- package/es/common/inversify-lite/planning/reflection_utils.d.ts +0 -5
- package/es/common/inversify-lite/planning/reflection_utils.js +0 -99
- package/es/common/inversify-lite/planning/reflection_utils.js.map +0 -1
- package/es/common/inversify-lite/planning/request.d.ts +0 -14
- package/es/common/inversify-lite/planning/request.js +0 -16
- package/es/common/inversify-lite/planning/request.js.map +0 -1
- package/es/common/inversify-lite/planning/target.d.ts +0 -23
- package/es/common/inversify-lite/planning/target.js +0 -58
- package/es/common/inversify-lite/planning/target.js.map +0 -1
- package/es/common/inversify-lite/resolution/instantiation.d.ts +0 -3
- package/es/common/inversify-lite/resolution/instantiation.js +0 -117
- package/es/common/inversify-lite/resolution/instantiation.js.map +0 -1
- package/es/common/inversify-lite/resolution/resolver.d.ts +0 -3
- package/es/common/inversify-lite/resolution/resolver.js +0 -55
- package/es/common/inversify-lite/resolution/resolver.js.map +0 -1
- package/es/common/inversify-lite/scope/scope.d.ts +0 -3
- package/es/common/inversify-lite/scope/scope.js +0 -50
- package/es/common/inversify-lite/scope/scope.js.map +0 -1
- package/es/common/inversify-lite/syntax/binding_in_syntax.d.ts +0 -9
- package/es/common/inversify-lite/syntax/binding_in_syntax.js +0 -21
- package/es/common/inversify-lite/syntax/binding_in_syntax.js.map +0 -1
- package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.d.ts +0 -12
- package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.js +0 -25
- package/es/common/inversify-lite/syntax/binding_in_when_on_syntax.js.map +0 -1
- package/es/common/inversify-lite/syntax/binding_on_syntax.d.ts +0 -6
- package/es/common/inversify-lite/syntax/binding_on_syntax.js +0 -8
- package/es/common/inversify-lite/syntax/binding_on_syntax.js.map +0 -1
- package/es/common/inversify-lite/syntax/binding_to_syntax.d.ts +0 -18
- package/es/common/inversify-lite/syntax/binding_to_syntax.js +0 -63
- package/es/common/inversify-lite/syntax/binding_to_syntax.js.map +0 -1
- package/es/common/inversify-lite/syntax/binding_when_on_syntax.d.ts +0 -8
- package/es/common/inversify-lite/syntax/binding_when_on_syntax.js +0 -13
- package/es/common/inversify-lite/syntax/binding_when_on_syntax.js.map +0 -1
- package/es/common/inversify-lite/syntax/binding_when_syntax.d.ts +0 -7
- package/es/common/inversify-lite/syntax/binding_when_syntax.js +0 -15
- package/es/common/inversify-lite/syntax/binding_when_syntax.js.map +0 -1
- package/es/common/inversify-lite/syntax/constraint_helpers.d.ts +0 -3
- package/es/common/inversify-lite/syntax/constraint_helpers.js +0 -11
- package/es/common/inversify-lite/syntax/constraint_helpers.js.map +0 -1
- package/es/common/inversify-lite/utils/async.d.ts +0 -3
- package/es/common/inversify-lite/utils/async.js +0 -10
- package/es/common/inversify-lite/utils/async.js.map +0 -1
- package/es/common/inversify-lite/utils/binding_utils.d.ts +0 -4
- package/es/common/inversify-lite/utils/binding_utils.js +0 -65
- package/es/common/inversify-lite/utils/binding_utils.js.map +0 -1
- package/es/common/inversify-lite/utils/clonable.d.ts +0 -3
- package/es/common/inversify-lite/utils/clonable.js +0 -6
- package/es/common/inversify-lite/utils/clonable.js.map +0 -1
- package/es/common/inversify-lite/utils/exceptions.d.ts +0 -2
- package/es/common/inversify-lite/utils/exceptions.js +0 -8
- package/es/common/inversify-lite/utils/exceptions.js.map +0 -1
- package/es/common/inversify-lite/utils/factory_type.d.ts +0 -5
- package/es/common/inversify-lite/utils/factory_type.js +0 -7
- package/es/common/inversify-lite/utils/factory_type.js.map +0 -1
- package/es/common/inversify-lite/utils/id.d.ts +0 -2
- package/es/common/inversify-lite/utils/id.js +0 -8
- package/es/common/inversify-lite/utils/id.js.map +0 -1
- package/es/common/inversify-lite/utils/js.d.ts +0 -1
- package/es/common/inversify-lite/utils/js.js +0 -8
- package/es/common/inversify-lite/utils/js.js.map +0 -1
- package/es/common/inversify-lite/utils/serialization.d.ts +0 -10
- package/es/common/inversify-lite/utils/serialization.js +0 -66
- package/es/common/inversify-lite/utils/serialization.js.map +0 -1
- package/es/container.d.ts +0 -2
- package/es/container.js +0 -4
- package/es/container.js.map +0 -1
|
@@ -1,31 +1,13 @@
|
|
|
1
|
-
var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
|
|
2
|
-
var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
|
|
3
|
-
if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
|
|
4
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
5
|
-
}, __metadata = this && this.__metadata || function(k, v) {
|
|
6
|
-
if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
|
|
7
|
-
}, __param = this && this.__param || function(paramIndex, decorator) {
|
|
8
|
-
return function(target, key) {
|
|
9
|
-
decorator(target, key, paramIndex);
|
|
10
|
-
};
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
import { inject, injectable, named } from "../../../common/inversify-lite";
|
|
14
|
-
|
|
15
1
|
import { getTheme } from "../../../graphic/theme";
|
|
16
2
|
|
|
17
3
|
import { getModelMatrix } from "../../../graphic/graphic-service/graphic-service";
|
|
18
4
|
|
|
19
5
|
import { isArray } from "@visactor/vutils";
|
|
20
6
|
|
|
21
|
-
import { ContributionProvider } from "../../../common/contribution-provider";
|
|
22
|
-
|
|
23
7
|
import { createRectPath } from "../../../common/shape/rect";
|
|
24
8
|
|
|
25
9
|
import { rectFillVisible, rectStrokeVisible, runFill, runStroke } from "./utils";
|
|
26
10
|
|
|
27
|
-
import { GroupRenderContribution } from "./contributions/constants";
|
|
28
|
-
|
|
29
11
|
import { mat4Allocate } from "../../../allocator/matrix-allocate";
|
|
30
12
|
|
|
31
13
|
import { GROUP_NUMBER_TYPE } from "../../../graphic/constants";
|
|
@@ -38,7 +20,7 @@ import { multiplyMat4Mat4 } from "../../../common/matrix";
|
|
|
38
20
|
|
|
39
21
|
import { application } from "../../../application";
|
|
40
22
|
|
|
41
|
-
|
|
23
|
+
export class DefaultCanvasGroupRender {
|
|
42
24
|
constructor(groupRenderContribitions) {
|
|
43
25
|
this.groupRenderContribitions = groupRenderContribitions, this.numberType = GROUP_NUMBER_TYPE;
|
|
44
26
|
}
|
|
@@ -130,9 +112,5 @@ let DefaultCanvasGroupRender = class {
|
|
|
130
112
|
clip ? context.restore() : context.highPerformanceRestore();
|
|
131
113
|
})) : clip ? context.restore() : context.highPerformanceRestore();
|
|
132
114
|
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
DefaultCanvasGroupRender = __decorate([ injectable(), __param(0, inject(ContributionProvider)), __param(0, named(GroupRenderContribution)), __metadata("design:paramtypes", [ Object ]) ], DefaultCanvasGroupRender);
|
|
136
|
-
|
|
137
|
-
export { DefaultCanvasGroupRender };
|
|
115
|
+
}
|
|
138
116
|
//# sourceMappingURL=group-render.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/render/contributions/render/group-render.ts"],"names":[],"mappings":"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","file":"group-render.js","sourcesContent":["import { inject, injectable, named } from '../../../common/inversify-lite';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IGroup,\n IMarkAttribute,\n IThemeAttribute,\n IGroupRenderContribution,\n IDrawContext,\n IRenderService,\n IGraphicRender,\n IGraphicRenderDrawParams,\n IContributionProvider,\n IGroupGraphicAttribute\n} from '../../../interface';\nimport { getTheme } from '../../../graphic/theme';\nimport { getModelMatrix } from '../../../graphic/graphic-service/graphic-service';\nimport { isArray } from '@visactor/vutils';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../../../common/contribution-provider';\nimport { createRectPath } from '../../../common/shape/rect';\nimport { rectFillVisible, rectStrokeVisible, runFill, runStroke } from './utils';\nimport { GroupRenderContribution } from './contributions/constants';\nimport { mat4Allocate } from '../../../allocator/matrix-allocate';\nimport { GROUP_NUMBER_TYPE } from '../../../graphic/constants';\nimport { BaseRenderContributionTime } from '../../../common/enums';\nimport { defaultGroupBackgroundRenderContribution } from './contributions';\nimport { multiplyMat4Mat4 } from '../../../common/matrix';\nimport { application } from '../../../application';\n\n@injectable()\nexport class DefaultCanvasGroupRender implements IGraphicRender {\n type: 'group';\n numberType: number = GROUP_NUMBER_TYPE;\n\n _groupRenderContribitions: IGroupRenderContribution[];\n\n constructor(\n @inject(ContributionProvider)\n @named(GroupRenderContribution)\n protected readonly groupRenderContribitions: IContributionProvider<IGroupRenderContribution>\n ) {}\n\n reInit() {\n this._groupRenderContribitions = this.groupRenderContribitions.getContributions() || [];\n this._groupRenderContribitions.push(defaultGroupBackgroundRenderContribution);\n }\n\n drawShape(\n group: IGroup,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n groupAttribute?: Required<IGroupGraphicAttribute>\n ) {\n // 提前判定,否则每次都要获取一堆属性\n const { clip, fill, stroke, background } = group.attribute;\n\n if (!(clip || fill || stroke || background)) {\n return;\n }\n\n groupAttribute = groupAttribute ?? getTheme(group, params?.theme).group;\n\n const {\n opacity = groupAttribute.opacity,\n width = groupAttribute.width,\n height = groupAttribute.height,\n fillOpacity = groupAttribute.fillOpacity,\n strokeOpacity = groupAttribute.strokeOpacity,\n cornerRadius = groupAttribute.cornerRadius,\n path = groupAttribute.path,\n lineWidth = groupAttribute.lineWidth,\n visible = groupAttribute.visible,\n fillStrokeOrder = groupAttribute.fillStrokeOrder,\n cornerType = groupAttribute.cornerType,\n x: originX = groupAttribute.x,\n y: originY = groupAttribute.y\n } = group.attribute;\n\n // 不绘制或者透明\n const fVisible = rectFillVisible(opacity, fillOpacity, width, height, fill);\n const sVisible = rectStrokeVisible(opacity, strokeOpacity, width, height);\n const doFill = runFill(fill, background);\n const doStroke = runStroke(stroke, lineWidth);\n\n if (!(group.valid && visible)) {\n return;\n }\n\n if (!clip) {\n if (!(doFill || doStroke)) {\n return;\n }\n\n // 如果存在fillCb和strokeCb,那就不直接跳过\n if (!(fVisible || sVisible || fillCb || strokeCb || background)) {\n return;\n }\n }\n\n if (path && path.length && drawContext.drawContribution) {\n // 禁用fill和stroke\n const disableFill = context.disableFill;\n const disableStroke = context.disableStroke;\n const disableBeginPath = context.disableBeginPath;\n context.disableFill = true;\n context.disableStroke = true;\n context.disableBeginPath = true;\n path.forEach(g => {\n const rc = drawContext.drawContribution.getRenderContribution(g);\n rc.draw(g, drawContext.renderService, drawContext, params);\n });\n context.disableFill = disableFill;\n context.disableStroke = disableStroke;\n context.disableBeginPath = disableBeginPath;\n } else if (cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0))) {\n // 不需要处理圆角\n context.beginPath();\n context.rect(x, y, width, height);\n } else {\n context.beginPath();\n // 测试后,cache对于重绘性能提升不大,但是在首屏有一定性能损耗,因此rect不再使用cache\n createRectPath(context, x, y, width, height, cornerRadius, cornerType !== 'bevel');\n }\n\n if (!this._groupRenderContribitions) {\n this._groupRenderContribitions = this.groupRenderContribitions.getContributions() || [];\n this._groupRenderContribitions.push(defaultGroupBackgroundRenderContribution);\n }\n\n const doFillOrStroke = {\n doFill,\n doStroke\n };\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(group, group.attribute, groupAttribute);\n\n this._groupRenderContribitions.forEach(c => {\n if (c.time === BaseRenderContributionTime.beforeFillStroke) {\n // c.useStyle && context.setCommonStyle(group, group.attribute, x, y, groupAttribute);\n c.drawShape(\n group,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n groupAttribute,\n drawContext,\n fillCb,\n strokeCb,\n doFillOrStroke\n );\n }\n });\n\n // beforeFillStroke contribition可以操作clip范围\n if (clip) {\n context.clip();\n }\n\n const _runFill = () => {\n if ((doFillOrStroke as any).doFill) {\n if (fillCb) {\n fillCb(context, group.attribute, groupAttribute);\n } else if (fVisible) {\n context.setCommonStyle(group, group.attribute, originX - x, originY - y, groupAttribute);\n context.fill();\n }\n }\n };\n\n const _runStroke = () => {\n if ((doFillOrStroke as any).doStroke) {\n if (strokeCb) {\n strokeCb(context, group.attribute, groupAttribute);\n } else if (sVisible) {\n context.setStrokeStyle(group, group.attribute, originX - x, originY - y, groupAttribute);\n context.stroke();\n }\n }\n };\n\n if (!fillStrokeOrder) {\n _runFill();\n _runStroke();\n } else {\n _runStroke();\n _runFill();\n }\n\n this._groupRenderContribitions.forEach(c => {\n if (c.time === BaseRenderContributionTime.afterFillStroke) {\n // c.useStyle && context.setCommonStyle(group, group.attribute, x, y, groupAttribute);\n c.drawShape(\n group,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n groupAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n }\n });\n }\n\n draw(group: IGroup, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n const { context } = drawContext;\n if (!context) {\n return;\n }\n\n const { clip, baseOpacity = 1, drawMode } = group.attribute;\n const lastNativeContext = context.nativeContext;\n const lastNativeCanvas = context.canvas.nativeCanvas;\n\n if (drawMode > 0) {\n const { x, y, width, height } = group.attribute;\n // 绘制到新的Canvas上,然后再绘制回来\n const canvas = context.canvas;\n const newCanvas = application.global.createCanvas({ width: canvas.width, height: canvas.height, dpr: 1 });\n const newContext = newCanvas.getContext('2d');\n const transform = context.nativeContext.getTransform();\n // 首先应用transform\n newContext.setTransform(transform.a, transform.b, transform.c, transform.d, transform.e, transform.f);\n // 然后将背景绘制到新的canvas上,只绘制group的Bounds区域\n // 如果drawMode === 1,则需要背景\n // 如果drawMode === 2,则不需要背景,只需要group即可\n if (drawMode === 1) {\n newContext.save();\n newContext.clearRect(0, 0, canvas.width, canvas.height);\n newContext.beginPath();\n\n newContext.rect(x, y, width, height);\n newContext.clip();\n newContext.drawImage(\n canvas.nativeCanvas,\n 0,\n 0,\n canvas.width,\n canvas.height,\n 0,\n 0,\n canvas.displayWidth,\n canvas.displayHeight\n );\n newContext.restore();\n }\n // 狸猫换太子,把新的context赋值给context\n context.nativeContext = newContext;\n canvas.nativeCanvas = newCanvas;\n }\n if (clip) {\n context.save();\n } else {\n context.highPerformanceSave();\n }\n const baseGlobalAlpha = context.baseGlobalAlpha;\n context.baseGlobalAlpha *= baseOpacity;\n\n // const lastMatrix = context.modelMatrix;\n // if (context.camera) {\n // const m = group.transMatrix;\n // const matrix = createMat4();\n // mat3Tomat4(matrix, m);\n // const lastModelMatrix = context.modelMatrix;\n // if (lastModelMatrix) {\n // if (matrix) {\n // const m = createMat4();\n // context.modelMatrix = multiplyMat4Mat4(m, lastModelMatrix, matrix);\n // }\n // } else {\n // context.modelMatrix = matrix;\n // }\n // } else {\n // // group直接transform\n // context.transformFromMatrix(group.transMatrix, true);\n // }\n const lastModelMatrix = context.modelMatrix;\n const camera = context.camera;\n if (camera) {\n const groupAttribute = getTheme(group, params?.theme).group;\n const nextModelMatrix = mat4Allocate.allocate();\n // 计算模型矩阵\n const modelMatrix = mat4Allocate.allocate();\n getModelMatrix(modelMatrix, group, groupAttribute);\n if (lastModelMatrix) {\n multiplyMat4Mat4(nextModelMatrix, lastModelMatrix, modelMatrix);\n } else {\n multiplyMat4Mat4(nextModelMatrix, nextModelMatrix, modelMatrix);\n }\n context.modelMatrix = nextModelMatrix;\n mat4Allocate.free(modelMatrix);\n context.setTransform(1, 0, 0, 1, 0, 0, true);\n } else {\n // group直接transform\n context.transformFromMatrix(group.transMatrix, true);\n }\n\n context.beginPath();\n // 如果跳过绘制,那就不绘制\n if (params.skipDraw) {\n this.drawShape(\n group,\n context,\n 0,\n 0,\n drawContext,\n params,\n () => false,\n () => false\n );\n } else {\n this.drawShape(group, context, 0, 0, drawContext, null, null, null);\n }\n\n // 绘制子元素的时候要添加scroll\n const { scrollX, scrollY } = group.attribute;\n if (scrollX || scrollY) {\n context.translate(scrollX, scrollY);\n }\n let p: any;\n if (params && params.renderInGroup) {\n p = params.renderInGroup(\n params.renderInGroupParams?.skipSort,\n group,\n drawContext,\n params.renderInGroupParams?.nextM\n );\n }\n\n if (context.modelMatrix !== lastModelMatrix) {\n mat4Allocate.free(context.modelMatrix);\n }\n context.modelMatrix = lastModelMatrix;\n\n context.baseGlobalAlpha = baseGlobalAlpha;\n\n if (drawMode > 0) {\n const { x, y, width, height } = group.attribute;\n // 将原始的context和canvas恢复,另外将newCanvas上的内容绘制到lastCanvas上\n const newContext = context.nativeContext;\n const newCanvas = context.canvas.nativeCanvas;\n lastNativeContext.save();\n lastNativeContext.setTransform(context.dpr, 0, 0, context.dpr, 0, 0, true);\n // 如果drawMode === 1,则需要清一下之前的背景,否则背景就重复绘制了一次\n if (drawMode === 1) {\n newContext.rect(x, y, width, height);\n }\n lastNativeContext.drawImage(\n newCanvas,\n 0,\n 0,\n newCanvas.width,\n newCanvas.height,\n 0,\n 0,\n context.canvas.displayWidth,\n context.canvas.displayHeight\n );\n const transform = newContext.getTransform();\n lastNativeContext.setTransform(transform.a, transform.b, transform.c, transform.d, transform.e, transform.f);\n context.nativeContext = lastNativeContext;\n context.canvas.nativeCanvas = lastNativeCanvas;\n lastNativeContext.restore();\n }\n\n if (p && p.then) {\n p.then(() => {\n if (clip) {\n context.restore();\n } else {\n context.highPerformanceRestore();\n }\n });\n } else {\n if (clip) {\n context.restore();\n } else {\n context.highPerformanceRestore();\n }\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/render/contributions/render/group-render.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAC;AAClF,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEjF,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAE,wCAAwC,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,MAAM,OAAO,wBAAwB;IAMnC,YAA+B,wBAAyE;QAAzE,6BAAwB,GAAxB,wBAAwB,CAAiD;QAJxG,eAAU,GAAW,iBAAiB,CAAC;IAIoE,CAAC;IAE5G,MAAM;QACJ,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;QACxF,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IAChF,CAAC;IAED,SAAS,CACP,KAAa,EACb,OAAmB,EACnB,CAAS,EACT,CAAS,EACT,WAAyB,EACzB,MAAiC,EACjC,MAIY,EACZ,QAIY,EACZ,cAAiD;QAGjD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;QAE3D,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,MAAM,IAAI,UAAU,CAAC,EAAE;YAC3C,OAAO;SACR;QAED,cAAc,GAAG,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,QAAQ,CAAC,KAAK,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,CAAC,KAAK,CAAC;QAExE,MAAM,EACJ,OAAO,GAAG,cAAc,CAAC,OAAO,EAChC,KAAK,GAAG,cAAc,CAAC,KAAK,EAC5B,MAAM,GAAG,cAAc,CAAC,MAAM,EAC9B,WAAW,GAAG,cAAc,CAAC,WAAW,EACxC,aAAa,GAAG,cAAc,CAAC,aAAa,EAC5C,YAAY,GAAG,cAAc,CAAC,YAAY,EAC1C,IAAI,GAAG,cAAc,CAAC,IAAI,EAC1B,SAAS,GAAG,cAAc,CAAC,SAAS,EACpC,OAAO,GAAG,cAAc,CAAC,OAAO,EAChC,eAAe,GAAG,cAAc,CAAC,eAAe,EAChD,UAAU,GAAG,cAAc,CAAC,UAAU,EACtC,CAAC,EAAE,OAAO,GAAG,cAAc,CAAC,CAAC,EAC7B,CAAC,EAAE,OAAO,GAAG,cAAc,CAAC,CAAC,EAC9B,GAAG,KAAK,CAAC,SAAS,CAAC;QAGpB,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAE9C,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,EAAE;YAC7B,OAAO;SACR;QAED,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,EAAE;gBACzB,OAAO;aACR;YAGD,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ,IAAI,MAAM,IAAI,QAAQ,IAAI,UAAU,CAAC,EAAE;gBAC/D,OAAO;aACR;SACF;QAED,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,gBAAgB,EAAE;YAEvD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;YACxC,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;YAC5C,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAClD,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;YAC3B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;YAC7B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;gBACf,MAAM,EAAE,GAAG,WAAW,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBACjE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,CAAC,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,WAAW,GAAG,WAAW,CAAC;YAClC,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;YACtC,OAAO,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;SAC7C;aAAM,IAAI,YAAY,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAe,YAAa,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE;YAE5G,OAAO,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;SACnC;aAAM;YACL,OAAO,CAAC,SAAS,EAAE,CAAC;YAEpB,cAAc,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC;SACpF;QAED,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;YACnC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,wBAAwB,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC;YACxF,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;SAC/E;QAED,MAAM,cAAc,GAAG;YACrB,MAAM;YACN,QAAQ;SACT,CAAC;QAGF,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAEnG,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACzC,IAAI,CAAC,CAAC,IAAI,KAAK,0BAA0B,CAAC,gBAAgB,EAAE;gBAE1D,CAAC,CAAC,SAAS,CACT,KAAK,EACL,OAAO,EACP,CAAC,EACD,CAAC,EACD,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,WAAW,EACX,MAAM,EACN,QAAQ,EACR,cAAc,CACf,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QAGH,IAAI,IAAI,EAAE;YACR,OAAO,CAAC,IAAI,EAAE,CAAC;SAChB;QAED,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,IAAK,cAAsB,CAAC,MAAM,EAAE;gBAClC,IAAI,MAAM,EAAE;oBACV,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;iBAClD;qBAAM,IAAI,QAAQ,EAAE;oBACnB,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;oBACzF,OAAO,CAAC,IAAI,EAAE,CAAC;iBAChB;aACF;QACH,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,GAAG,EAAE;YACtB,IAAK,cAAsB,CAAC,QAAQ,EAAE;gBACpC,IAAI,QAAQ,EAAE;oBACZ,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;iBACpD;qBAAM,IAAI,QAAQ,EAAE;oBACnB,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;oBACzF,OAAO,CAAC,MAAM,EAAE,CAAC;iBAClB;aACF;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,eAAe,EAAE;YACpB,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,CAAC;SACd;aAAM;YACL,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,CAAC;SACZ;QAED,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACzC,IAAI,CAAC,CAAC,IAAI,KAAK,0BAA0B,CAAC,eAAe,EAAE;gBAEzD,CAAC,CAAC,SAAS,CACT,KAAK,EACL,OAAO,EACP,CAAC,EACD,CAAC,EACD,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,WAAW,EACX,MAAM,EACN,QAAQ,CACT,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,aAA6B,EAAE,WAAyB,EAAE,MAAiC;;QAC7G,MAAM,EAAE,OAAO,EAAE,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QAED,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;QAC5D,MAAM,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC;QAChD,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;QAErD,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;YAEhD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC9B,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1G,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;YAEvD,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;YAItG,IAAI,QAAQ,KAAK,CAAC,EAAE;gBAClB,UAAU,CAAC,IAAI,EAAE,CAAC;gBAClB,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;gBACxD,UAAU,CAAC,SAAS,EAAE,CAAC;gBAEvB,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBACrC,UAAU,CAAC,IAAI,EAAE,CAAC;gBAClB,UAAU,CAAC,SAAS,CAClB,MAAM,CAAC,YAAY,EACnB,CAAC,EACD,CAAC,EACD,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,MAAM,EACb,CAAC,EACD,CAAC,EACD,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,aAAa,CACrB,CAAC;gBACF,UAAU,CAAC,OAAO,EAAE,CAAC;aACtB;YAED,OAAO,CAAC,aAAa,GAAG,UAAU,CAAC;YACnC,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC;SACjC;QACD,IAAI,IAAI,EAAE;YACR,OAAO,CAAC,IAAI,EAAE,CAAC;SAChB;aAAM;YACL,OAAO,CAAC,mBAAmB,EAAE,CAAC;SAC/B;QACD,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAChD,OAAO,CAAC,eAAe,IAAI,WAAW,CAAC;QAoBvC,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;QAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,MAAM,EAAE;YACV,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAC,CAAC,KAAK,CAAC;YAC5D,MAAM,eAAe,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;YAEhD,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC5C,cAAc,CAAC,WAAW,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;YACnD,IAAI,eAAe,EAAE;gBACnB,gBAAgB,CAAC,eAAe,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;aACjE;iBAAM;gBACL,gBAAgB,CAAC,eAAe,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;aACjE;YACD,OAAO,CAAC,WAAW,GAAG,eAAe,CAAC;YACtC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/B,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;SAC9C;aAAM;YAEL,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SACtD;QAED,OAAO,CAAC,SAAS,EAAE,CAAC;QAEpB,IAAI,MAAM,CAAC,QAAQ,EAAE;YACnB,IAAI,CAAC,SAAS,CACZ,KAAK,EACL,OAAO,EACP,CAAC,EACD,CAAC,EACD,WAAW,EACX,MAAM,EACN,GAAG,EAAE,CAAC,KAAK,EACX,GAAG,EAAE,CAAC,KAAK,CACZ,CAAC;SACH;aAAM;YACL,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SACrE;QAGD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;QAC7C,IAAI,OAAO,IAAI,OAAO,EAAE;YACtB,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACrC;QACD,IAAI,CAAM,CAAC;QACX,IAAI,MAAM,IAAI,MAAM,CAAC,aAAa,EAAE;YAClC,CAAC,GAAG,MAAM,CAAC,aAAa,CACtB,MAAA,MAAM,CAAC,mBAAmB,0CAAE,QAAQ,EACpC,KAAK,EACL,WAAW,EACX,MAAA,MAAM,CAAC,mBAAmB,0CAAE,KAAK,CAClC,CAAC;SACH;QAED,IAAI,OAAO,CAAC,WAAW,KAAK,eAAe,EAAE;YAC3C,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SACxC;QACD,OAAO,CAAC,WAAW,GAAG,eAAe,CAAC;QAEtC,OAAO,CAAC,eAAe,GAAG,eAAe,CAAC;QAE1C,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC;YAEhD,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC;YACzC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;YAC9C,iBAAiB,CAAC,IAAI,EAAE,CAAC;YACzB,iBAAiB,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YAE3E,IAAI,QAAQ,KAAK,CAAC,EAAE;gBAClB,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;aACtC;YACD,iBAAiB,CAAC,SAAS,CACzB,SAAS,EACT,CAAC,EACD,CAAC,EACD,SAAS,CAAC,KAAK,EACf,SAAS,CAAC,MAAM,EAChB,CAAC,EACD,CAAC,EACD,OAAO,CAAC,MAAM,CAAC,YAAY,EAC3B,OAAO,CAAC,MAAM,CAAC,aAAa,CAC7B,CAAC;YACF,MAAM,SAAS,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC;YAC5C,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;YAC7G,OAAO,CAAC,aAAa,GAAG,iBAAiB,CAAC;YAC1C,OAAO,CAAC,MAAM,CAAC,YAAY,GAAG,gBAAgB,CAAC;YAC/C,iBAAiB,CAAC,OAAO,EAAE,CAAC;SAC7B;QAED,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;YACf,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACV,IAAI,IAAI,EAAE;oBACR,OAAO,CAAC,OAAO,EAAE,CAAC;iBACnB;qBAAM;oBACL,OAAO,CAAC,sBAAsB,EAAE,CAAC;iBAClC;YACH,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,IAAI,EAAE;gBACR,OAAO,CAAC,OAAO,EAAE,CAAC;aACnB;iBAAM;gBACL,OAAO,CAAC,sBAAsB,EAAE,CAAC;aAClC;SACF;IACH,CAAC;CACF","file":"group-render.js","sourcesContent":["import type {\n IGraphicAttribute,\n IContext2d,\n IGroup,\n IMarkAttribute,\n IThemeAttribute,\n IGroupRenderContribution,\n IDrawContext,\n IRenderService,\n IGraphicRender,\n IGraphicRenderDrawParams,\n IContributionProvider,\n IGroupGraphicAttribute\n} from '../../../interface';\nimport { getTheme } from '../../../graphic/theme';\nimport { getModelMatrix } from '../../../graphic/graphic-service/graphic-service';\nimport { isArray } from '@visactor/vutils';\nimport { createRectPath } from '../../../common/shape/rect';\nimport { rectFillVisible, rectStrokeVisible, runFill, runStroke } from './utils';\nimport { GroupRenderContribution } from './contributions/constants';\nimport { mat4Allocate } from '../../../allocator/matrix-allocate';\nimport { GROUP_NUMBER_TYPE } from '../../../graphic/constants';\nimport { BaseRenderContributionTime } from '../../../common/enums';\nimport { defaultGroupBackgroundRenderContribution } from './contributions';\nimport { multiplyMat4Mat4 } from '../../../common/matrix';\nimport { application } from '../../../application';\n\nexport class DefaultCanvasGroupRender implements IGraphicRender {\n type: 'group';\n numberType: number = GROUP_NUMBER_TYPE;\n\n _groupRenderContribitions: IGroupRenderContribution[];\n\n constructor(protected readonly groupRenderContribitions: IContributionProvider<IGroupRenderContribution>) {}\n\n reInit() {\n this._groupRenderContribitions = this.groupRenderContribitions.getContributions() || [];\n this._groupRenderContribitions.push(defaultGroupBackgroundRenderContribution);\n }\n\n drawShape(\n group: IGroup,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n groupAttribute?: Required<IGroupGraphicAttribute>\n ) {\n // 提前判定,否则每次都要获取一堆属性\n const { clip, fill, stroke, background } = group.attribute;\n\n if (!(clip || fill || stroke || background)) {\n return;\n }\n\n groupAttribute = groupAttribute ?? getTheme(group, params?.theme).group;\n\n const {\n opacity = groupAttribute.opacity,\n width = groupAttribute.width,\n height = groupAttribute.height,\n fillOpacity = groupAttribute.fillOpacity,\n strokeOpacity = groupAttribute.strokeOpacity,\n cornerRadius = groupAttribute.cornerRadius,\n path = groupAttribute.path,\n lineWidth = groupAttribute.lineWidth,\n visible = groupAttribute.visible,\n fillStrokeOrder = groupAttribute.fillStrokeOrder,\n cornerType = groupAttribute.cornerType,\n x: originX = groupAttribute.x,\n y: originY = groupAttribute.y\n } = group.attribute;\n\n // 不绘制或者透明\n const fVisible = rectFillVisible(opacity, fillOpacity, width, height, fill);\n const sVisible = rectStrokeVisible(opacity, strokeOpacity, width, height);\n const doFill = runFill(fill, background);\n const doStroke = runStroke(stroke, lineWidth);\n\n if (!(group.valid && visible)) {\n return;\n }\n\n if (!clip) {\n if (!(doFill || doStroke)) {\n return;\n }\n\n // 如果存在fillCb和strokeCb,那就不直接跳过\n if (!(fVisible || sVisible || fillCb || strokeCb || background)) {\n return;\n }\n }\n\n if (path && path.length && drawContext.drawContribution) {\n // 禁用fill和stroke\n const disableFill = context.disableFill;\n const disableStroke = context.disableStroke;\n const disableBeginPath = context.disableBeginPath;\n context.disableFill = true;\n context.disableStroke = true;\n context.disableBeginPath = true;\n path.forEach(g => {\n const rc = drawContext.drawContribution.getRenderContribution(g);\n rc.draw(g, drawContext.renderService, drawContext, params);\n });\n context.disableFill = disableFill;\n context.disableStroke = disableStroke;\n context.disableBeginPath = disableBeginPath;\n } else if (cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0))) {\n // 不需要处理圆角\n context.beginPath();\n context.rect(x, y, width, height);\n } else {\n context.beginPath();\n // 测试后,cache对于重绘性能提升不大,但是在首屏有一定性能损耗,因此rect不再使用cache\n createRectPath(context, x, y, width, height, cornerRadius, cornerType !== 'bevel');\n }\n\n if (!this._groupRenderContribitions) {\n this._groupRenderContribitions = this.groupRenderContribitions.getContributions() || [];\n this._groupRenderContribitions.push(defaultGroupBackgroundRenderContribution);\n }\n\n const doFillOrStroke = {\n doFill,\n doStroke\n };\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(group, group.attribute, groupAttribute);\n\n this._groupRenderContribitions.forEach(c => {\n if (c.time === BaseRenderContributionTime.beforeFillStroke) {\n // c.useStyle && context.setCommonStyle(group, group.attribute, x, y, groupAttribute);\n c.drawShape(\n group,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n groupAttribute,\n drawContext,\n fillCb,\n strokeCb,\n doFillOrStroke\n );\n }\n });\n\n // beforeFillStroke contribition可以操作clip范围\n if (clip) {\n context.clip();\n }\n\n const _runFill = () => {\n if ((doFillOrStroke as any).doFill) {\n if (fillCb) {\n fillCb(context, group.attribute, groupAttribute);\n } else if (fVisible) {\n context.setCommonStyle(group, group.attribute, originX - x, originY - y, groupAttribute);\n context.fill();\n }\n }\n };\n\n const _runStroke = () => {\n if ((doFillOrStroke as any).doStroke) {\n if (strokeCb) {\n strokeCb(context, group.attribute, groupAttribute);\n } else if (sVisible) {\n context.setStrokeStyle(group, group.attribute, originX - x, originY - y, groupAttribute);\n context.stroke();\n }\n }\n };\n\n if (!fillStrokeOrder) {\n _runFill();\n _runStroke();\n } else {\n _runStroke();\n _runFill();\n }\n\n this._groupRenderContribitions.forEach(c => {\n if (c.time === BaseRenderContributionTime.afterFillStroke) {\n // c.useStyle && context.setCommonStyle(group, group.attribute, x, y, groupAttribute);\n c.drawShape(\n group,\n context,\n x,\n y,\n doFill,\n doStroke,\n fVisible,\n sVisible,\n groupAttribute,\n drawContext,\n fillCb,\n strokeCb\n );\n }\n });\n }\n\n draw(group: IGroup, renderService: IRenderService, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) {\n const { context } = drawContext;\n if (!context) {\n return;\n }\n\n const { clip, baseOpacity = 1, drawMode } = group.attribute;\n const lastNativeContext = context.nativeContext;\n const lastNativeCanvas = context.canvas.nativeCanvas;\n\n if (drawMode > 0) {\n const { x, y, width, height } = group.attribute;\n // 绘制到新的Canvas上,然后再绘制回来\n const canvas = context.canvas;\n const newCanvas = application.global.createCanvas({ width: canvas.width, height: canvas.height, dpr: 1 });\n const newContext = newCanvas.getContext('2d');\n const transform = context.nativeContext.getTransform();\n // 首先应用transform\n newContext.setTransform(transform.a, transform.b, transform.c, transform.d, transform.e, transform.f);\n // 然后将背景绘制到新的canvas上,只绘制group的Bounds区域\n // 如果drawMode === 1,则需要背景\n // 如果drawMode === 2,则不需要背景,只需要group即可\n if (drawMode === 1) {\n newContext.save();\n newContext.clearRect(0, 0, canvas.width, canvas.height);\n newContext.beginPath();\n\n newContext.rect(x, y, width, height);\n newContext.clip();\n newContext.drawImage(\n canvas.nativeCanvas,\n 0,\n 0,\n canvas.width,\n canvas.height,\n 0,\n 0,\n canvas.displayWidth,\n canvas.displayHeight\n );\n newContext.restore();\n }\n // 狸猫换太子,把新的context赋值给context\n context.nativeContext = newContext;\n canvas.nativeCanvas = newCanvas;\n }\n if (clip) {\n context.save();\n } else {\n context.highPerformanceSave();\n }\n const baseGlobalAlpha = context.baseGlobalAlpha;\n context.baseGlobalAlpha *= baseOpacity;\n\n // const lastMatrix = context.modelMatrix;\n // if (context.camera) {\n // const m = group.transMatrix;\n // const matrix = createMat4();\n // mat3Tomat4(matrix, m);\n // const lastModelMatrix = context.modelMatrix;\n // if (lastModelMatrix) {\n // if (matrix) {\n // const m = createMat4();\n // context.modelMatrix = multiplyMat4Mat4(m, lastModelMatrix, matrix);\n // }\n // } else {\n // context.modelMatrix = matrix;\n // }\n // } else {\n // // group直接transform\n // context.transformFromMatrix(group.transMatrix, true);\n // }\n const lastModelMatrix = context.modelMatrix;\n const camera = context.camera;\n if (camera) {\n const groupAttribute = getTheme(group, params?.theme).group;\n const nextModelMatrix = mat4Allocate.allocate();\n // 计算模型矩阵\n const modelMatrix = mat4Allocate.allocate();\n getModelMatrix(modelMatrix, group, groupAttribute);\n if (lastModelMatrix) {\n multiplyMat4Mat4(nextModelMatrix, lastModelMatrix, modelMatrix);\n } else {\n multiplyMat4Mat4(nextModelMatrix, nextModelMatrix, modelMatrix);\n }\n context.modelMatrix = nextModelMatrix;\n mat4Allocate.free(modelMatrix);\n context.setTransform(1, 0, 0, 1, 0, 0, true);\n } else {\n // group直接transform\n context.transformFromMatrix(group.transMatrix, true);\n }\n\n context.beginPath();\n // 如果跳过绘制,那就不绘制\n if (params.skipDraw) {\n this.drawShape(\n group,\n context,\n 0,\n 0,\n drawContext,\n params,\n () => false,\n () => false\n );\n } else {\n this.drawShape(group, context, 0, 0, drawContext, null, null, null);\n }\n\n // 绘制子元素的时候要添加scroll\n const { scrollX, scrollY } = group.attribute;\n if (scrollX || scrollY) {\n context.translate(scrollX, scrollY);\n }\n let p: any;\n if (params && params.renderInGroup) {\n p = params.renderInGroup(\n params.renderInGroupParams?.skipSort,\n group,\n drawContext,\n params.renderInGroupParams?.nextM\n );\n }\n\n if (context.modelMatrix !== lastModelMatrix) {\n mat4Allocate.free(context.modelMatrix);\n }\n context.modelMatrix = lastModelMatrix;\n\n context.baseGlobalAlpha = baseGlobalAlpha;\n\n if (drawMode > 0) {\n const { x, y, width, height } = group.attribute;\n // 将原始的context和canvas恢复,另外将newCanvas上的内容绘制到lastCanvas上\n const newContext = context.nativeContext;\n const newCanvas = context.canvas.nativeCanvas;\n lastNativeContext.save();\n lastNativeContext.setTransform(context.dpr, 0, 0, context.dpr, 0, 0, true);\n // 如果drawMode === 1,则需要清一下之前的背景,否则背景就重复绘制了一次\n if (drawMode === 1) {\n newContext.rect(x, y, width, height);\n }\n lastNativeContext.drawImage(\n newCanvas,\n 0,\n 0,\n newCanvas.width,\n newCanvas.height,\n 0,\n 0,\n context.canvas.displayWidth,\n context.canvas.displayHeight\n );\n const transform = newContext.getTransform();\n lastNativeContext.setTransform(transform.a, transform.b, transform.c, transform.d, transform.e, transform.f);\n context.nativeContext = lastNativeContext;\n context.canvas.nativeCanvas = lastNativeCanvas;\n lastNativeContext.restore();\n }\n\n if (p && p.then) {\n p.then(() => {\n if (clip) {\n context.restore();\n } else {\n context.highPerformanceRestore();\n }\n });\n } else {\n if (clip) {\n context.restore();\n } else {\n context.highPerformanceRestore();\n }\n }\n }\n}\n"]}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { bindContributionProvider } from "../../../common/contribution-provider";
|
|
2
2
|
|
|
3
|
-
import { ContainerModule } from "../../../common/inversify";
|
|
4
|
-
|
|
5
3
|
import { DefaultBaseInteractiveRenderContribution } from "./contributions";
|
|
6
4
|
|
|
7
5
|
import { ImageRenderContribution } from "./contributions/constants";
|
|
@@ -12,9 +10,11 @@ import { GraphicRender, ImageRender } from "./symbol";
|
|
|
12
10
|
|
|
13
11
|
let loadImageModule = !1;
|
|
14
12
|
|
|
15
|
-
export
|
|
13
|
+
export function bindImageRenderModule({bind: bind}) {
|
|
16
14
|
loadImageModule || (loadImageModule = !0, bind(ImageRender).to(DefaultCanvasImageRender).inSingletonScope(),
|
|
17
15
|
bind(GraphicRender).toService(ImageRender), bind(ImageRenderContribution).toService(DefaultBaseInteractiveRenderContribution),
|
|
18
16
|
bindContributionProvider(bind, ImageRenderContribution));
|
|
19
|
-
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export const imageModule = bindImageRenderModule;
|
|
20
20
|
//# sourceMappingURL=image-module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/render/contributions/render/image-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"sources":["../src/render/contributions/render/image-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,EAAE,wCAAwC,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEtD,IAAI,eAAe,GAAG,KAAK,CAAC;AAC5B,MAAM,UAAU,qBAAqB,CAAC,EAAE,IAAI,EAAiB;IAC3D,IAAI,eAAe,EAAE;QACnB,OAAO;KACR;IACD,eAAe,GAAG,IAAI,CAAC;IAEvB,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,wBAAwB,CAAC,CAAC,gBAAgB,EAAE,CAAC;IAClE,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,CAAC,uBAAuB,CAAC,CAAC,SAAS,CAAC,wCAAwC,CAAC,CAAC;IAElF,wBAAwB,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,qBAAqB,CAAC","file":"image-module.js","sourcesContent":["import { bindContributionProvider } from '../../../common/contribution-provider';\nimport { DefaultBaseInteractiveRenderContribution } from './contributions';\nimport { ImageRenderContribution } from './contributions/constants';\nimport { DefaultCanvasImageRender } from './image-render';\nimport { GraphicRender, ImageRender } from './symbol';\n\nlet loadImageModule = false;\nexport function bindImageRenderModule({ bind }: { bind: any }) {\n if (loadImageModule) {\n return;\n }\n loadImageModule = true;\n // image渲染器\n bind(ImageRender).to(DefaultCanvasImageRender).inSingletonScope();\n bind(GraphicRender).toService(ImageRender);\n bind(ImageRenderContribution).toService(DefaultBaseInteractiveRenderContribution);\n // image 渲染器注入contributions\n bindContributionProvider(bind, ImageRenderContribution);\n}\n\nexport const imageModule = bindImageRenderModule;\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { IGraphicAttribute, IContext2d, IMarkAttribute, BackgroundSizing, BackgroundMode, IImage, IImageGraphicAttribute, IThemeAttribute, IGraphicRender, IImageRenderContribution, IContributionProvider, IDrawContext, IGraphicRenderDrawParams, IRenderService } from '../../../interface';
|
|
2
2
|
import { BaseRender } from './base-render';
|
|
3
3
|
export type IImageLayoutDrawParams = Pick<IImageGraphicAttribute, 'repeatX' | 'repeatY' | 'imageMode' | 'imageScale' | 'imageOffsetX' | 'imageOffsetY' | 'imagePosition'>;
|
|
4
|
+
export declare function resolveImageRepeatMode(repeatX: IImageGraphicAttribute['repeatX'], repeatY: IImageGraphicAttribute['repeatY']): 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat';
|
|
4
5
|
export declare function resolveImageMode({ repeatX, repeatY, imageMode }: Pick<IImageLayoutDrawParams, 'repeatX' | 'repeatY' | 'imageMode'>): {
|
|
5
6
|
repeatMode: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat';
|
|
6
7
|
sizingMode: BackgroundSizing;
|
|
@@ -10,8 +11,7 @@ export declare function resolveBackgroundParamsByImageSizing(sizingMode: Backgro
|
|
|
10
11
|
backgroundFit: boolean;
|
|
11
12
|
backgroundKeepAspectRatio: boolean;
|
|
12
13
|
};
|
|
13
|
-
export declare function
|
|
14
|
-
export declare function shouldClipImageByLayout({ repeatX, repeatY, imageMode, imageScale, imageOffsetX, imageOffsetY, imagePosition }: IImageLayoutDrawParams): boolean;
|
|
14
|
+
export declare function shouldClipImageByLayout({ repeatX, repeatY, imageMode, imageScale, imageOffsetX, imageOffsetY }: IImageLayoutDrawParams): boolean;
|
|
15
15
|
export declare function drawImageWithLayout(context: IContext2d, data: any, x: number, y: number, width: number, height: number, { repeatX, repeatY, imageMode, imageScale, imageOffsetX, imageOffsetY, imagePosition }: IImageLayoutDrawParams): void;
|
|
16
16
|
export declare class DefaultCanvasImageRender extends BaseRender<IImage> implements IGraphicRender {
|
|
17
17
|
protected readonly graphicRenderContributions: IContributionProvider<IImageRenderContribution>;
|
|
@@ -1,23 +1,5 @@
|
|
|
1
|
-
var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
|
|
2
|
-
var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
|
|
3
|
-
if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
|
|
4
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
5
|
-
}, __metadata = this && this.__metadata || function(k, v) {
|
|
6
|
-
if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
|
|
7
|
-
}, __param = this && this.__param || function(paramIndex, decorator) {
|
|
8
|
-
return function(target, key) {
|
|
9
|
-
decorator(target, key, paramIndex);
|
|
10
|
-
};
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
import { inject, injectable, named } from "../../../common/inversify-lite";
|
|
14
|
-
|
|
15
|
-
import { ContributionProvider } from "../../../common/contribution-provider";
|
|
16
|
-
|
|
17
1
|
import { getTheme } from "../../../graphic/theme";
|
|
18
2
|
|
|
19
|
-
import { ImageRenderContribution } from "./contributions/constants";
|
|
20
|
-
|
|
21
3
|
import { IMAGE_NUMBER_TYPE } from "../../../graphic/constants";
|
|
22
4
|
|
|
23
5
|
import { isArray, isString } from "@visactor/vutils";
|
|
@@ -34,6 +16,12 @@ import { drawBackgroundImage } from "./contributions/base-contribution-render";
|
|
|
34
16
|
|
|
35
17
|
const repeatStr = [ "", "repeat-x", "repeat-y", "repeat" ];
|
|
36
18
|
|
|
19
|
+
export function resolveImageRepeatMode(repeatX, repeatY) {
|
|
20
|
+
let repeat = 0;
|
|
21
|
+
return "repeat" === repeatX && (repeat |= 1), "repeat" === repeatY && (repeat |= 2),
|
|
22
|
+
repeat ? repeatStr[repeat] : "no-repeat";
|
|
23
|
+
}
|
|
24
|
+
|
|
37
25
|
export function resolveImageMode({repeatX: repeatX = "no-repeat", repeatY: repeatY = "no-repeat", imageMode: imageMode}) {
|
|
38
26
|
const repeatMode = resolveImageRepeatMode(repeatX, repeatY);
|
|
39
27
|
return {
|
|
@@ -57,13 +45,7 @@ export function resolveBackgroundParamsByImageSizing(sizingMode) {
|
|
|
57
45
|
};
|
|
58
46
|
}
|
|
59
47
|
|
|
60
|
-
export function
|
|
61
|
-
let repeat = 0;
|
|
62
|
-
return "repeat" === repeatX && (repeat |= 1), "repeat" === repeatY && (repeat |= 2),
|
|
63
|
-
repeat ? repeatStr[repeat] : "no-repeat";
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export function shouldClipImageByLayout({repeatX: repeatX = "no-repeat", repeatY: repeatY = "no-repeat", imageMode: imageMode, imageScale: imageScale = 1, imageOffsetX: imageOffsetX = 0, imageOffsetY: imageOffsetY = 0, imagePosition: imagePosition = "top-left"}) {
|
|
48
|
+
export function shouldClipImageByLayout({repeatX: repeatX = "no-repeat", repeatY: repeatY = "no-repeat", imageMode: imageMode, imageScale: imageScale = 1, imageOffsetX: imageOffsetX = 0, imageOffsetY: imageOffsetY = 0}) {
|
|
67
49
|
const {repeatMode: repeatMode, sizingMode: sizingMode} = resolveImageMode({
|
|
68
50
|
repeatX: repeatX,
|
|
69
51
|
repeatY: repeatY,
|
|
@@ -100,7 +82,7 @@ export function drawImageWithLayout(context, data, x, y, width, height, {repeatX
|
|
|
100
82
|
});
|
|
101
83
|
}
|
|
102
84
|
|
|
103
|
-
|
|
85
|
+
export class DefaultCanvasImageRender extends BaseRender {
|
|
104
86
|
constructor(graphicRenderContributions) {
|
|
105
87
|
super(), this.graphicRenderContributions = graphicRenderContributions, this.numberType = IMAGE_NUMBER_TYPE,
|
|
106
88
|
this.builtinContributions = [ defaultImageRenderContribution, defaultImageBackgroundRenderContribution ],
|
|
@@ -157,9 +139,5 @@ let DefaultCanvasImageRender = class extends BaseRender {
|
|
|
157
139
|
const imageAttribute = getTheme(image).image;
|
|
158
140
|
this._draw(image, imageAttribute, !1, drawContext);
|
|
159
141
|
}
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
DefaultCanvasImageRender = __decorate([ injectable(), __param(0, inject(ContributionProvider)), __param(0, named(ImageRenderContribution)), __metadata("design:paramtypes", [ Object ]) ], DefaultCanvasImageRender);
|
|
163
|
-
|
|
164
|
-
export { DefaultCanvasImageRender };
|
|
142
|
+
}
|
|
165
143
|
//# sourceMappingURL=image-render.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/render/contributions/render/image-render.ts"],"names":[],"mappings":"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","file":"image-render.js","sourcesContent":["import { inject, injectable, named } from '../../../common/inversify-lite';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../../../common/contribution-provider';\nimport { getTheme } from '../../../graphic/theme';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IMarkAttribute,\n BackgroundSizing,\n BackgroundMode,\n IImage,\n IImageGraphicAttribute,\n IThemeAttribute,\n IGraphicRender,\n IImageRenderContribution,\n IContributionProvider,\n IDrawContext,\n IGraphicRenderDrawParams,\n IRenderService\n} from '../../../interface';\nimport { ImageRenderContribution } from './contributions/constants';\nimport { IMAGE_NUMBER_TYPE } from '../../../graphic/constants';\nimport { isArray, isString } from '@visactor/vutils';\nimport { createRectPath } from '../../../common/shape/rect';\nimport { BaseRender } from './base-render';\nimport { defaultImageBackgroundRenderContribution, defaultImageRenderContribution } from './contributions';\nimport { ResourceLoader } from '../../../resource-loader/loader';\nimport { drawBackgroundImage } from './contributions/base-contribution-render';\n\nconst repeatStr = ['', 'repeat-x', 'repeat-y', 'repeat'];\n\nexport type IImageLayoutDrawParams = Pick<\n IImageGraphicAttribute,\n 'repeatX' | 'repeatY' | 'imageMode' | 'imageScale' | 'imageOffsetX' | 'imageOffsetY' | 'imagePosition'\n>;\n\nexport function resolveImageMode({\n repeatX = 'no-repeat',\n repeatY = 'no-repeat',\n imageMode\n}: Pick<IImageLayoutDrawParams, 'repeatX' | 'repeatY' | 'imageMode'>): {\n repeatMode: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat';\n sizingMode: BackgroundSizing;\n} {\n const repeatMode = resolveImageRepeatMode(repeatX, repeatY);\n\n return {\n repeatMode,\n sizingMode: repeatMode === 'no-repeat' ? imageMode ?? 'fill' : 'fill'\n };\n}\n\nconst IMAGE_MODE_TO_BACKGROUND_MODE: Record<BackgroundSizing, BackgroundMode> = {\n cover: 'no-repeat-cover',\n contain: 'no-repeat-contain',\n fill: 'no-repeat-fill',\n auto: 'no-repeat-auto'\n};\n\nexport function resolveBackgroundParamsByImageSizing(sizingMode: BackgroundSizing): {\n backgroundMode: BackgroundMode;\n backgroundFit: boolean;\n backgroundKeepAspectRatio: boolean;\n} {\n return {\n backgroundMode: IMAGE_MODE_TO_BACKGROUND_MODE[sizingMode],\n backgroundFit: false,\n backgroundKeepAspectRatio: false\n };\n}\n\nexport function resolveImageRepeatMode(\n repeatX: IImageGraphicAttribute['repeatX'],\n repeatY: IImageGraphicAttribute['repeatY']\n): 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat' {\n let repeat = 0;\n if (repeatX === 'repeat') {\n repeat |= 0b0001;\n }\n if (repeatY === 'repeat') {\n repeat |= 0b0010;\n }\n return repeat ? (repeatStr[repeat] as 'repeat' | 'repeat-x' | 'repeat-y') : 'no-repeat';\n}\n\nexport function shouldClipImageByLayout({\n repeatX = 'no-repeat',\n repeatY = 'no-repeat',\n imageMode,\n imageScale = 1,\n imageOffsetX = 0,\n imageOffsetY = 0,\n imagePosition = 'top-left'\n}: IImageLayoutDrawParams): boolean {\n const { repeatMode, sizingMode } = resolveImageMode({\n repeatX,\n repeatY,\n imageMode\n });\n return (\n repeatMode === 'no-repeat' &&\n (sizingMode === 'cover' || sizingMode === 'auto' || imageScale !== 1 || imageOffsetX !== 0 || imageOffsetY !== 0)\n );\n}\n\nexport function drawImageWithLayout(\n context: IContext2d,\n data: any,\n x: number,\n y: number,\n width: number,\n height: number,\n {\n repeatX = 'no-repeat',\n repeatY = 'no-repeat',\n imageMode,\n imageScale = 1,\n imageOffsetX = 0,\n imageOffsetY = 0,\n imagePosition = 'top-left'\n }: IImageLayoutDrawParams\n) {\n const { repeatMode, sizingMode } = resolveImageMode({\n repeatX,\n repeatY,\n imageMode\n });\n const imageBackgroundParams =\n repeatMode === 'no-repeat'\n ? resolveBackgroundParamsByImageSizing(sizingMode)\n : {\n backgroundMode: repeatMode,\n backgroundFit: false,\n backgroundKeepAspectRatio: false\n };\n drawBackgroundImage(\n context,\n data,\n {\n x1: x,\n y1: y,\n x2: x + width,\n y2: y + height,\n width: () => width,\n height: () => height\n } as any,\n {\n backgroundMode: imageBackgroundParams.backgroundMode,\n backgroundFit: imageBackgroundParams.backgroundFit,\n backgroundKeepAspectRatio: imageBackgroundParams.backgroundKeepAspectRatio,\n backgroundScale: imageScale,\n backgroundOffsetX: imageOffsetX,\n backgroundOffsetY: imageOffsetY,\n backgroundPosition: imagePosition\n }\n );\n}\n\n@injectable()\nexport class DefaultCanvasImageRender extends BaseRender<IImage> implements IGraphicRender {\n type: 'image';\n numberType: number = IMAGE_NUMBER_TYPE;\n\n constructor(\n @inject(ContributionProvider)\n @named(ImageRenderContribution)\n protected readonly graphicRenderContributions: IContributionProvider<IImageRenderContribution>\n ) {\n super();\n this.builtinContributions = [defaultImageRenderContribution, defaultImageBackgroundRenderContribution];\n this.init(graphicRenderContributions);\n }\n\n drawShape(\n image: IImage,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n // const imageAttribute = graphicService.themeService.getCurrentTheme().imageAttribute;\n const imageAttribute = getTheme(image).image;\n const {\n repeatX = imageAttribute.repeatX,\n repeatY = imageAttribute.repeatY,\n x: originX = imageAttribute.x,\n y: originY = imageAttribute.y,\n cornerRadius = imageAttribute.cornerRadius,\n fillStrokeOrder = imageAttribute.fillStrokeOrder,\n cornerType = imageAttribute.cornerType,\n imageMode = imageAttribute.imageMode,\n imageScale = imageAttribute.imageScale,\n imageOffsetX = imageAttribute.imageOffsetX,\n imageOffsetY = imageAttribute.imageOffsetY,\n imagePosition = imageAttribute.imagePosition,\n image: url\n } = image.attribute;\n\n const data = this.valid(image, imageAttribute, fillCb);\n if (!data) {\n return;\n }\n const { fVisible, sVisible, doFill, doStroke } = data;\n\n if (!url || !image.resources) {\n return;\n }\n const res = image.resources.get(url);\n if (res.state !== 'success') {\n return;\n }\n\n const width = image.width;\n const height = image.height;\n context.beginPath();\n\n // deal with cornerRadius\n let needCornerClip = false;\n if (cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0))) {\n // 不需要处理圆角\n context.rect(x, y, width, height);\n } else {\n // context.beginPath();\n createRectPath(context, x, y, width, height, cornerRadius, cornerType !== 'bevel');\n needCornerClip = true;\n }\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(image, image.attribute, imageAttribute);\n // context.beginPath();\n // context.image(x, y, width, height);\n\n const _runFill = () => {\n if (doFill) {\n if (fillCb) {\n fillCb(context, image.attribute, imageAttribute);\n } else if (fVisible) {\n context.setCommonStyle(image, image.attribute, x, y, imageAttribute);\n drawImageWithLayout(context, res.data, x, y, width, height, {\n repeatX,\n repeatY,\n imageMode,\n imageScale,\n imageOffsetX,\n imageOffsetY,\n imagePosition\n });\n }\n }\n };\n\n const _runStroke = () => {\n if (doStroke) {\n if (strokeCb) {\n strokeCb(context, image.attribute, imageAttribute);\n } else if (sVisible) {\n context.setStrokeStyle(image, image.attribute, originX - x, originY - y, imageAttribute);\n context.stroke();\n }\n }\n };\n\n const needLayoutClip = shouldClipImageByLayout({\n repeatX,\n repeatY,\n imageMode,\n imageScale,\n imageOffsetX,\n imageOffsetY,\n imagePosition\n });\n const needClip = needCornerClip || needLayoutClip;\n\n if (!fillStrokeOrder) {\n if (needClip) {\n context.save();\n context.clip();\n }\n this.beforeRenderStep(image, context, x, y, doFill, false, fVisible, false, imageAttribute, drawContext, fillCb);\n _runFill();\n if (needClip) {\n context.restore();\n }\n _runStroke();\n } else {\n _runStroke();\n if (needClip) {\n context.save();\n context.clip();\n }\n this.beforeRenderStep(image, context, x, y, doFill, false, fVisible, false, imageAttribute, drawContext, fillCb);\n _runFill();\n if (needClip) {\n context.restore();\n }\n }\n\n this.afterRenderStep(image, context, x, y, doFill, false, fVisible, false, imageAttribute, drawContext, fillCb);\n }\n\n draw(image: IImage, renderService: IRenderService, drawContext: IDrawContext) {\n const { image: url } = image.attribute;\n\n if (!url || !image.resources) {\n return;\n }\n const res = image.resources.get(url);\n // if (res.state !== 'success') {\n // return;\n // }\n if (res.state === 'loading' && isString(url)) {\n ResourceLoader.improveImageLoading(url);\n return;\n } else if (res.state !== 'success') {\n return;\n }\n\n const { context } = renderService.drawParams;\n if (!context) {\n return;\n }\n const imageAttribute = getTheme(image).image;\n this._draw(image, imageAttribute, false, drawContext);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/render/contributions/render/image-render.ts"],"names":[],"mappings":"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","file":"image-render.js","sourcesContent":["import { getTheme } from '../../../graphic/theme';\nimport type {\n IGraphicAttribute,\n IContext2d,\n IMarkAttribute,\n BackgroundSizing,\n BackgroundMode,\n IImage,\n IImageGraphicAttribute,\n IThemeAttribute,\n IGraphicRender,\n IImageRenderContribution,\n IContributionProvider,\n IDrawContext,\n IGraphicRenderDrawParams,\n IRenderService\n} from '../../../interface';\nimport { ImageRenderContribution } from './contributions/constants';\nimport { fillVisible, runFill } from './utils';\nimport { IMAGE_NUMBER_TYPE } from '../../../graphic/constants';\nimport { BaseRenderContributionTime } from '../../../common/enums';\nimport { isArray, isString } from '@visactor/vutils';\nimport { createRectPath } from '../../../common/shape/rect';\nimport { BaseRender } from './base-render';\nimport { defaultImageBackgroundRenderContribution, defaultImageRenderContribution } from './contributions';\nimport { ResourceLoader } from '../../../resource-loader/loader';\nimport { drawBackgroundImage } from './contributions/base-contribution-render';\n\nconst repeatStr = ['', 'repeat-x', 'repeat-y', 'repeat'];\n\nexport type IImageLayoutDrawParams = Pick<\n IImageGraphicAttribute,\n 'repeatX' | 'repeatY' | 'imageMode' | 'imageScale' | 'imageOffsetX' | 'imageOffsetY' | 'imagePosition'\n>;\n\nexport function resolveImageRepeatMode(\n repeatX: IImageGraphicAttribute['repeatX'],\n repeatY: IImageGraphicAttribute['repeatY']\n): 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat' {\n let repeat = 0;\n if (repeatX === 'repeat') {\n repeat |= 0b0001;\n }\n if (repeatY === 'repeat') {\n repeat |= 0b0010;\n }\n return repeat ? (repeatStr[repeat] as 'repeat' | 'repeat-x' | 'repeat-y') : 'no-repeat';\n}\n\nexport function resolveImageMode({\n repeatX = 'no-repeat',\n repeatY = 'no-repeat',\n imageMode\n}: Pick<IImageLayoutDrawParams, 'repeatX' | 'repeatY' | 'imageMode'>): {\n repeatMode: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat';\n sizingMode: BackgroundSizing;\n} {\n const repeatMode = resolveImageRepeatMode(repeatX, repeatY);\n return {\n repeatMode,\n sizingMode: repeatMode === 'no-repeat' ? imageMode ?? 'fill' : 'fill'\n };\n}\n\nconst IMAGE_MODE_TO_BACKGROUND_MODE: Record<BackgroundSizing, BackgroundMode> = {\n cover: 'no-repeat-cover',\n contain: 'no-repeat-contain',\n fill: 'no-repeat-fill',\n auto: 'no-repeat-auto'\n};\n\nexport function resolveBackgroundParamsByImageSizing(sizingMode: BackgroundSizing): {\n backgroundMode: BackgroundMode;\n backgroundFit: boolean;\n backgroundKeepAspectRatio: boolean;\n} {\n return {\n backgroundMode: IMAGE_MODE_TO_BACKGROUND_MODE[sizingMode],\n backgroundFit: false,\n backgroundKeepAspectRatio: false\n };\n}\n\nexport function shouldClipImageByLayout({\n repeatX = 'no-repeat',\n repeatY = 'no-repeat',\n imageMode,\n imageScale = 1,\n imageOffsetX = 0,\n imageOffsetY = 0\n}: IImageLayoutDrawParams): boolean {\n const { repeatMode, sizingMode } = resolveImageMode({\n repeatX,\n repeatY,\n imageMode\n });\n return (\n repeatMode === 'no-repeat' &&\n (sizingMode === 'cover' || sizingMode === 'auto' || imageScale !== 1 || imageOffsetX !== 0 || imageOffsetY !== 0)\n );\n}\n\nexport function drawImageWithLayout(\n context: IContext2d,\n data: any,\n x: number,\n y: number,\n width: number,\n height: number,\n {\n repeatX = 'no-repeat',\n repeatY = 'no-repeat',\n imageMode,\n imageScale = 1,\n imageOffsetX = 0,\n imageOffsetY = 0,\n imagePosition = 'top-left'\n }: IImageLayoutDrawParams\n) {\n const { repeatMode, sizingMode } = resolveImageMode({\n repeatX,\n repeatY,\n imageMode\n });\n const imageBackgroundParams =\n repeatMode === 'no-repeat'\n ? resolveBackgroundParamsByImageSizing(sizingMode)\n : {\n backgroundMode: repeatMode,\n backgroundFit: false,\n backgroundKeepAspectRatio: false\n };\n\n drawBackgroundImage(\n context,\n data,\n {\n x1: x,\n y1: y,\n x2: x + width,\n y2: y + height,\n width: () => width,\n height: () => height\n } as any,\n {\n backgroundMode: imageBackgroundParams.backgroundMode,\n backgroundFit: imageBackgroundParams.backgroundFit,\n backgroundKeepAspectRatio: imageBackgroundParams.backgroundKeepAspectRatio,\n backgroundScale: imageScale,\n backgroundOffsetX: imageOffsetX,\n backgroundOffsetY: imageOffsetY,\n backgroundPosition: imagePosition\n }\n );\n}\n\nexport class DefaultCanvasImageRender extends BaseRender<IImage> implements IGraphicRender {\n type: 'image';\n numberType: number = IMAGE_NUMBER_TYPE;\n\n constructor(protected readonly graphicRenderContributions: IContributionProvider<IImageRenderContribution>) {\n super();\n this.builtinContributions = [defaultImageRenderContribution, defaultImageBackgroundRenderContribution];\n this.init(graphicRenderContributions);\n }\n\n drawShape(\n image: IImage,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n // const imageAttribute = graphicService.themeService.getCurrentTheme().imageAttribute;\n const imageAttribute = getTheme(image).image;\n const {\n repeatX = imageAttribute.repeatX,\n repeatY = imageAttribute.repeatY,\n x: originX = imageAttribute.x,\n y: originY = imageAttribute.y,\n cornerRadius = imageAttribute.cornerRadius,\n fillStrokeOrder = imageAttribute.fillStrokeOrder,\n cornerType = imageAttribute.cornerType,\n imageMode = imageAttribute.imageMode,\n imageScale = imageAttribute.imageScale,\n imageOffsetX = imageAttribute.imageOffsetX,\n imageOffsetY = imageAttribute.imageOffsetY,\n imagePosition = imageAttribute.imagePosition,\n image: url\n } = image.attribute;\n\n const data = this.valid(image, imageAttribute, fillCb);\n if (!data) {\n return;\n }\n const { fVisible, sVisible, doFill, doStroke } = data;\n\n if (!url || !image.resources) {\n return;\n }\n const res = image.resources.get(url);\n if (res.state !== 'success') {\n return;\n }\n\n const width = image.width;\n const height = image.height;\n context.beginPath();\n\n // deal with cornerRadius\n let needCornerClip = false;\n if (cornerRadius === 0 || (isArray(cornerRadius) && (<number[]>cornerRadius).every(num => num === 0))) {\n // 不需要处理圆角\n context.rect(x, y, width, height);\n } else {\n // context.beginPath();\n createRectPath(context, x, y, width, height, cornerRadius, cornerType !== 'bevel');\n needCornerClip = true;\n }\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(image, image.attribute, imageAttribute);\n // context.beginPath();\n // context.image(x, y, width, height);\n\n const _runFill = () => {\n if (doFill) {\n if (fillCb) {\n fillCb(context, image.attribute, imageAttribute);\n } else if (fVisible) {\n context.setCommonStyle(image, image.attribute, x, y, imageAttribute);\n drawImageWithLayout(context, res.data, x, y, width, height, {\n repeatX,\n repeatY,\n imageMode,\n imageScale,\n imageOffsetX,\n imageOffsetY,\n imagePosition\n });\n }\n }\n };\n\n const _runStroke = () => {\n if (doStroke) {\n if (strokeCb) {\n strokeCb(context, image.attribute, imageAttribute);\n } else if (sVisible) {\n context.setStrokeStyle(image, image.attribute, originX - x, originY - y, imageAttribute);\n context.stroke();\n }\n }\n };\n\n const needLayoutClip = shouldClipImageByLayout({\n repeatX,\n repeatY,\n imageMode,\n imageScale,\n imageOffsetX,\n imageOffsetY,\n imagePosition\n });\n const needClip = needCornerClip || needLayoutClip;\n\n if (!fillStrokeOrder) {\n if (needClip) {\n context.save();\n context.clip();\n }\n this.beforeRenderStep(image, context, x, y, doFill, false, fVisible, false, imageAttribute, drawContext, fillCb);\n _runFill();\n if (needClip) {\n context.restore();\n }\n _runStroke();\n } else {\n _runStroke();\n if (needClip) {\n context.save();\n context.clip();\n }\n this.beforeRenderStep(image, context, x, y, doFill, false, fVisible, false, imageAttribute, drawContext, fillCb);\n _runFill();\n if (needClip) {\n context.restore();\n }\n }\n\n this.afterRenderStep(image, context, x, y, doFill, false, fVisible, false, imageAttribute, drawContext, fillCb);\n }\n\n draw(image: IImage, renderService: IRenderService, drawContext: IDrawContext) {\n const { image: url } = image.attribute;\n\n if (!url || !image.resources) {\n return;\n }\n const res = image.resources.get(url);\n // if (res.state !== 'success') {\n // return;\n // }\n if (res.state === 'loading' && isString(url)) {\n ResourceLoader.improveImageLoading(url);\n return;\n } else if (res.state !== 'success') {\n return;\n }\n\n const { context } = renderService.drawParams;\n if (!context) {\n return;\n }\n const imageAttribute = getTheme(image).image;\n this._draw(image, imageAttribute, false, drawContext);\n }\n}\n"]}
|
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
var __decorate = this && this.__decorate || function(decorators, target, key, desc) {
|
|
2
|
-
var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
|
|
3
|
-
if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
|
|
4
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
import { injectable } from "../../../common/inversify-lite";
|
|
8
|
-
|
|
9
1
|
import { AREA_NUMBER_TYPE } from "../../../graphic/constants";
|
|
10
2
|
|
|
11
3
|
import { getTheme } from "../../../graphic/theme";
|
|
@@ -16,7 +8,7 @@ import { DefaultCanvasAreaRender } from "./area-render";
|
|
|
16
8
|
|
|
17
9
|
import { drawIncrementalAreaSegments } from "../../../common/render-curve";
|
|
18
10
|
|
|
19
|
-
|
|
11
|
+
export class DefaultIncrementalCanvasAreaRender extends DefaultCanvasAreaRender {
|
|
20
12
|
constructor() {
|
|
21
13
|
super(...arguments), this.numberType = AREA_NUMBER_TYPE;
|
|
22
14
|
}
|
|
@@ -38,9 +30,5 @@ let DefaultIncrementalCanvasAreaRender = class extends DefaultCanvasAreaRender {
|
|
|
38
30
|
}), context.setShadowBlendStyle && context.setShadowBlendStyle(area, attribute, defaultAttribute),
|
|
39
31
|
context.setCommonStyle(area, attribute, offsetX, offsetY, defaultAttribute), context.fill());
|
|
40
32
|
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
DefaultIncrementalCanvasAreaRender = __decorate([ injectable() ], DefaultIncrementalCanvasAreaRender);
|
|
44
|
-
|
|
45
|
-
export { DefaultIncrementalCanvasAreaRender };
|
|
33
|
+
}
|
|
46
34
|
//# sourceMappingURL=incremental-area-render.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/render/contributions/render/incremental-area-render.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/render/contributions/render/incremental-area-render.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAM3E,MAAM,OAAO,kCAAmC,SAAQ,uBAAuB;IAA/E;;QAEE,eAAU,GAAW,gBAAgB,CAAC;IAwFxC,CAAC;IAtFC,SAAS,CACP,IAAW,EACX,OAAmB,EACnB,CAAS,EACT,CAAS,EACT,WAAyB,EACzB,MAAiC,EACjC,MAIY;QAEZ,IAAI,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,mBAAmB,EAAE;YACvD,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,mBAAmB,CAAC;YAC/D,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;YACzC,IAAI,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE;gBAChC,OAAO;aACR;YACD,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;YAC1C,MAAM,EACJ,IAAI,GAAG,aAAa,CAAC,IAAI,EACzB,WAAW,GAAG,aAAa,CAAC,WAAW,EACvC,OAAO,GAAG,aAAa,CAAC,OAAO,EAC/B,OAAO,GAAG,aAAa,CAAC,OAAO,EAChC,GAAG,IAAI,CAAC,SAAS,CAAC;YAEnB,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAE7B,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,CAAC,EAAE;gBAC5B,OAAO;aACR;YAED,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO;aACR;YAGD,IAAI,CAAC,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE;gBACzB,OAAO;aACR;YAGD,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,UAAU,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;gBACrD,IAAI,CAAC,mBAAmB,CACtB,IAAI,EACJ,OAAO,EACP,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EACf,QAAQ,CAAC,CAAC,CAAC,EACX,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAC1B,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,EAC/B,CAAC,EACD,CAAC,CACF,CAAC;aACH;SACF;aAAM;YACL,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;SACnE;IACH,CAAC;IAED,mBAAmB,CACjB,IAAW,EACX,OAAmB,EACnB,OAAqB,EACrB,GAAiB,EACjB,SAAyC,EACzC,gBAAoF,EACpF,OAAe,EACf,OAAe;QAEf,IAAI,CAAC,GAAG,EAAE;YACR,OAAO;SACR;QAED,OAAO,CAAC,SAAS,EAAE,CAAC;QACpB,2BAA2B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE;YAC1F,OAAO;YACP,OAAO;SACR,CAAC,CAAC;QAGH,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAC9F,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,EAAE,CAAC;IACjB,CAAC;CACF","file":"incremental-area-render.js","sourcesContent":["import type {\n IArea,\n IAreaGraphicAttribute,\n IAreaSegment,\n IGraphicAttribute,\n IContext2d,\n IMarkAttribute,\n IThemeAttribute,\n IGraphicRender,\n IGraphicRenderDrawParams,\n IDrawContext\n} from '../../../interface';\nimport { AREA_NUMBER_TYPE } from '../../../graphic/constants';\nimport { getTheme } from '../../../graphic/theme';\nimport { fillVisible, runFill } from './utils';\nimport { DefaultCanvasAreaRender } from './area-render';\nimport { drawIncrementalAreaSegments } from '../../../common/render-curve';\n\n/**\n * 默认的基于canvas的line渲染器\n * 单例\n */\nexport class DefaultIncrementalCanvasAreaRender extends DefaultCanvasAreaRender implements IGraphicRender {\n declare type: 'area';\n numberType: number = AREA_NUMBER_TYPE;\n\n drawShape(\n area: IArea,\n context: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n lineAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) {\n if (area.incremental && drawContext.multiGraphicOptions) {\n const { startAtIdx, length } = drawContext.multiGraphicOptions;\n const { segments = [] } = area.attribute;\n if (startAtIdx > segments.length) {\n return;\n }\n const areaAttribute = getTheme(area).area;\n const {\n fill = areaAttribute.fill,\n fillOpacity = areaAttribute.fillOpacity,\n opacity = areaAttribute.opacity,\n visible = areaAttribute.visible\n } = area.attribute;\n // 不绘制或者透明\n const fVisible = fillVisible(opacity, fillOpacity, fill);\n const doFill = runFill(fill);\n\n if (!(area.valid && visible)) {\n return;\n }\n\n if (!doFill) {\n return;\n }\n\n // 如果存在fillCb和strokeCb,那就不直接跳过\n if (!(fVisible || fillCb)) {\n return;\n }\n\n // 不支持clipRange,不支持pick,仅支持最基础的线段绘制\n for (let i = startAtIdx; i < startAtIdx + length; i++) {\n this.drawIncreaseSegment(\n area,\n context,\n segments[i - 1],\n segments[i],\n area.attribute.segments[i],\n [areaAttribute, area.attribute],\n x,\n y\n );\n }\n } else {\n super.drawShape(area, context, x, y, drawContext, params, fillCb);\n }\n }\n\n drawIncreaseSegment(\n area: IArea,\n context: IContext2d,\n lastSeg: IAreaSegment,\n seg: IAreaSegment,\n attribute: Partial<IAreaGraphicAttribute>,\n defaultAttribute: Required<IAreaGraphicAttribute> | Partial<IAreaGraphicAttribute>[],\n offsetX: number,\n offsetY: number\n ) {\n if (!seg) {\n return;\n }\n\n context.beginPath();\n drawIncrementalAreaSegments(context.camera ? context : context.nativeContext, lastSeg, seg, {\n offsetX,\n offsetY\n });\n\n // shadow\n context.setShadowBlendStyle && context.setShadowBlendStyle(area, attribute, defaultAttribute);\n context.setCommonStyle(area, attribute, offsetX, offsetY, defaultAttribute);\n context.fill();\n }\n}\n"]}
|
|
@@ -6,10 +6,10 @@ declare enum STATUS {
|
|
|
6
6
|
STOP = 1
|
|
7
7
|
}
|
|
8
8
|
export declare class DefaultIncrementalDrawContribution extends DefaultDrawContribution implements IDrawContribution {
|
|
9
|
-
protected
|
|
9
|
+
protected contributions: IGraphicRender[];
|
|
10
10
|
protected readonly lineRender: IGraphicRender;
|
|
11
11
|
protected readonly areaRender: IGraphicRender;
|
|
12
|
-
protected
|
|
12
|
+
protected drawItemInterceptorContributions: IContributionProvider<IDrawItemInterceptorContribution>;
|
|
13
13
|
rendering: boolean;
|
|
14
14
|
protected currFrameStartAt: number;
|
|
15
15
|
protected currentIdx: number;
|
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
var STATUS,
|
|
2
|
-
var d, c = arguments.length, r = c < 3 ? target : null === desc ? desc = Object.getOwnPropertyDescriptor(target, key) : desc;
|
|
3
|
-
if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) (d = decorators[i]) && (r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r);
|
|
4
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
5
|
-
}, __metadata = this && this.__metadata || function(k, v) {
|
|
6
|
-
if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(k, v);
|
|
7
|
-
}, __param = this && this.__param || function(paramIndex, decorator) {
|
|
8
|
-
return function(target, key) {
|
|
9
|
-
decorator(target, key, paramIndex);
|
|
10
|
-
};
|
|
11
|
-
}, __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
|
|
1
|
+
var STATUS, __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
|
|
12
2
|
return new (P || (P = Promise))((function(resolve, reject) {
|
|
13
3
|
function fulfilled(value) {
|
|
14
4
|
try {
|
|
@@ -34,31 +24,19 @@ var STATUS, __decorate = this && this.__decorate || function(decorators, target,
|
|
|
34
24
|
}));
|
|
35
25
|
};
|
|
36
26
|
|
|
37
|
-
import { injectable, inject, named, multiInject } from "../../../common/inversify-lite";
|
|
38
|
-
|
|
39
27
|
import { DefaultAttribute } from "../../../graphic/config";
|
|
40
28
|
|
|
41
29
|
import { DefaultDrawContribution } from "./draw-contribution";
|
|
42
30
|
|
|
43
31
|
import { SyncHook } from "../../../tapable";
|
|
44
32
|
|
|
45
|
-
import { GraphicRender } from "./symbol";
|
|
46
|
-
|
|
47
|
-
import { DefaultIncrementalCanvasLineRender } from "./incremental-line-render";
|
|
48
|
-
|
|
49
|
-
import { DefaultIncrementalCanvasAreaRender } from "./incremental-area-render";
|
|
50
|
-
|
|
51
|
-
import { DrawItemInterceptor } from "./draw-interceptor";
|
|
52
|
-
|
|
53
|
-
import { ContributionProvider } from "../../../common/contribution-provider";
|
|
54
|
-
|
|
55
33
|
import { foreachAsync } from "../../../common/sort";
|
|
56
34
|
|
|
57
35
|
!function(STATUS) {
|
|
58
36
|
STATUS[STATUS.NORMAL = 0] = "NORMAL", STATUS[STATUS.STOP = 1] = "STOP";
|
|
59
37
|
}(STATUS || (STATUS = {}));
|
|
60
38
|
|
|
61
|
-
|
|
39
|
+
export class DefaultIncrementalDrawContribution extends DefaultDrawContribution {
|
|
62
40
|
constructor(contributions, lineRender, areaRender, drawItemInterceptorContributions) {
|
|
63
41
|
super(contributions, drawItemInterceptorContributions), this.contributions = contributions,
|
|
64
42
|
this.lineRender = lineRender, this.areaRender = areaRender, this.drawItemInterceptorContributions = drawItemInterceptorContributions,
|
|
@@ -161,9 +139,5 @@ let DefaultIncrementalDrawContribution = class extends DefaultDrawContribution {
|
|
|
161
139
|
})));
|
|
162
140
|
}));
|
|
163
141
|
}
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
DefaultIncrementalDrawContribution = __decorate([ injectable(), __param(0, multiInject(GraphicRender)), __param(1, inject(DefaultIncrementalCanvasLineRender)), __param(2, inject(DefaultIncrementalCanvasAreaRender)), __param(3, inject(ContributionProvider)), __param(3, named(DrawItemInterceptor)), __metadata("design:paramtypes", [ Array, Object, Object, Object ]) ], DefaultIncrementalDrawContribution);
|
|
167
|
-
|
|
168
|
-
export { DefaultIncrementalDrawContribution };
|
|
142
|
+
}
|
|
169
143
|
//# sourceMappingURL=incremental-draw-contribution.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/render/contributions/render/incremental-draw-contribution.ts"],"names":[],"mappings":"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","file":"incremental-draw-contribution.js","sourcesContent":["import { injectable, inject, named, multiInject } from '../../../common/inversify-lite';\nimport type {\n IGraphic,\n IGroup,\n IRenderService,\n IDrawContext,\n IDrawContribution,\n IGraphicRender,\n IDrawItemInterceptorContribution,\n IContributionProvider\n} from '../../../interface';\nimport { DefaultAttribute } from '../../../graphic/config';\nimport { DefaultDrawContribution } from './draw-contribution';\nimport { SyncHook } from '../../../tapable';\nimport { GraphicRender } from './symbol';\nimport { DefaultIncrementalCanvasLineRender } from './incremental-line-render';\nimport { DefaultIncrementalCanvasAreaRender } from './incremental-area-render';\nimport { DrawItemInterceptor } from './draw-interceptor';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { ContributionProvider } from '../../../common/contribution-provider';\nimport { foreachAsync } from '../../../common/sort';\n\nenum STATUS {\n NORMAL = 0,\n STOP = 1\n}\n\n/**\n * 增量渲染的contribution,基于树状结构针对图元的渲染\n * 不是单例模式\n */\n@injectable()\nexport class DefaultIncrementalDrawContribution extends DefaultDrawContribution implements IDrawContribution {\n rendering: boolean = false;\n protected currFrameStartAt: number = 0;\n protected currentIdx: number = 0;\n protected status: STATUS = STATUS.NORMAL;\n protected checkingForDrawPromise: Promise<any> | null = null;\n hooks = {\n completeDraw: new SyncHook<[]>([])\n };\n protected lastRenderService: IRenderService;\n protected lastDrawContext: IDrawContext;\n protected count: number;\n\n constructor(\n // @inject(ContributionProvider)\n // @named(GraphicRender)\n // protected readonly contributions: ContributionProvider<IGraphicRender>,\n @multiInject(GraphicRender) protected readonly contributions: IGraphicRender[],\n // @inject(RenderSelector) protected readonly renderSelector: IRenderSelector, // 根据图元类型选择对应的renderItem进行渲染\n @inject(DefaultIncrementalCanvasLineRender) protected readonly lineRender: IGraphicRender, // 默认的lineRender\n @inject(DefaultIncrementalCanvasAreaRender) protected readonly areaRender: IGraphicRender, // 默认的lineRender\n // 拦截器\n @inject(ContributionProvider)\n @named(DrawItemInterceptor)\n protected readonly drawItemInterceptorContributions: IContributionProvider<IDrawItemInterceptorContribution>\n ) {\n super(contributions, drawItemInterceptorContributions);\n this.defaultRenderMap.set(this.lineRender.numberType, this.lineRender);\n this.defaultRenderMap.set(this.areaRender.numberType, this.areaRender);\n }\n\n /**\n *\n * @param renderService\n * @param drawContext restartIncremental为true表示重新执行增量渲染,为false表示不执行增量渲染\n * @returns\n */\n async draw(renderService: IRenderService, drawContext: IDrawContext): Promise<void> {\n // 入口检查是否需要重新绘制\n if (this.checkingForDrawPromise) {\n return;\n }\n this.lastRenderService = renderService;\n this.lastDrawContext = drawContext;\n\n this.checkingForDrawPromise = this.checkForDraw(drawContext);\n const skipDraw = await this.checkingForDrawPromise;\n this.checkingForDrawPromise = null;\n if (skipDraw) {\n return;\n }\n\n this.currentRenderService = renderService;\n const { context, viewBox } = drawContext;\n\n if (!context) {\n return;\n }\n // 增量渲染不需要dirtyBounds\n // const dirtyBounds: IBounds | undefined = this.dirtyBounds.setValue(x, y, x + width, y + height);\n // if (stage.dirtyBounds) {\n // const b = getRectIntersect(dirtyBounds, stage.dirtyBounds, false);\n // dirtyBounds.x1 = Math.floor(b.x1);\n // dirtyBounds.y1 = Math.floor(b.y1);\n // dirtyBounds.x2 = Math.ceil(b.x2);\n // dirtyBounds.y2 = Math.ceil(b.y2);\n // }\n context.inuse = true;\n // 初始化context\n context.clearMatrix();\n context.setTransformForCurrent(true);\n\n // const drawInArea =\n // dirtyBounds.width() * context.dpr !== context.canvas.width ||\n // dirtyBounds.height() * context.dpr !== context.canvas.height;\n context.save();\n\n // if (drawInArea) {\n // context.beginPath();\n // context.rect(dirtyBounds.x1, dirtyBounds.y1, dirtyBounds.width(), dirtyBounds.height());\n // context.clip();\n // }\n\n // this.clearScreen(renderService, context, drawContext);\n\n // 绘制之前需要清空画布\n drawContext.restartIncremental && this.clearScreen(this.currentRenderService, context, drawContext);\n // 设置translate\n context.translate(viewBox.x1, viewBox.y1, true);\n\n context.save();\n renderService.renderTreeRoots\n .sort((a, b) => {\n return (a.attribute.zIndex ?? DefaultAttribute.zIndex) - (b.attribute.zIndex ?? DefaultAttribute.zIndex);\n })\n .forEach(group => {\n this.renderGroup(group as IGroup, drawContext);\n });\n\n this.hooks.completeDraw.tap('top-draw', () => {\n context.restore();\n context.restore();\n context.draw();\n context.inuse = false;\n this.rendering = false;\n });\n }\n\n protected async _increaseRender(group: IGroup, drawContext: IDrawContext) {\n this.rendering = true;\n await this._renderIncrementalGroup(group, drawContext);\n return;\n }\n\n // 默认group后只有一层节点,也就是group是叶子结点的父节点\n protected async _renderIncrementalGroup(group: IGroup, drawContext: IDrawContext) {\n this.count = group.count;\n await new Promise(resolve => {\n this.renderItem(group, drawContext, {\n drawingCb: async () => {\n // 增量图元只支持一个,线段和面积图\n if (group.count === 2) {\n const graphic = group.getChildAt(0) as IGraphic;\n if (graphic.incremental && (graphic.attribute as any).segments) {\n if (!graphic.incrementalAt) {\n graphic.incrementalAt = 0;\n }\n while (graphic.incrementalAt < (graphic.attribute as any).segments.length) {\n drawContext.multiGraphicOptions = {\n startAtIdx: graphic.incrementalAt,\n length: graphic.incremental\n };\n this.renderItem(graphic, drawContext);\n graphic.incrementalAt += graphic.incremental;\n await this.waitToNextFrame();\n }\n } else {\n this.renderItem(graphic, drawContext);\n }\n resolve(false);\n return;\n }\n await foreachAsync(group, DefaultAttribute.zIndex, (item: IGraphic, i: number) => {\n if (this.status === STATUS.STOP) {\n return true;\n }\n if (item.isContainer) {\n // 增量渲染group下不应该有其他的group节点\n return false;\n }\n // 如果小于currentIdx,说明还没到当前的位置,那就直接跳过\n if (i < this.currentIdx) {\n return false;\n }\n const frameTail = this.currFrameStartAt + group.incremental;\n // 绘制 currentIdx到this.lastFrameIdx + group.incremental的内容\n if (i < frameTail) {\n this.currentIdx = i + 1;\n this.renderItem(item, drawContext);\n }\n // 下一帧\n if (i === frameTail - 1) {\n this.currFrameStartAt = this.currentIdx;\n // this.lastFrameIdx = this.currentIdx;\n return this.waitToNextFrame();\n }\n\n return false;\n });\n resolve(false);\n }\n });\n });\n this.hooks.completeDraw.call();\n }\n\n protected async waitToNextFrame(): Promise<boolean> {\n return new Promise(resolve => {\n this.global.getRequestAnimationFrame()(() => {\n resolve(false);\n });\n });\n }\n\n /**\n * 检查这次绘制是否跳过,以及执行一些准备\n * 增量渲染有自己的绘制逻辑流程,外部每次触发draw,该图层不一定会执行\n * @returns 返回true代表跳过绘制,false代表进行绘制\n */\n protected async checkForDraw(drawContext: IDrawContext): Promise<boolean> {\n let skip = this.rendering;\n if (drawContext.restartIncremental) {\n skip = false;\n await this.forceStop();\n this.resetToInit();\n }\n return skip;\n }\n\n protected async forceStop() {\n if (this.rendering) {\n this.status = STATUS.STOP;\n await new Promise(resolve => {\n this.hooks.completeDraw.tap('stopCb', () => {\n this.status = STATUS.NORMAL;\n this.hooks.completeDraw.taps = this.hooks.completeDraw.taps.filter(item => {\n return item.name !== 'stopCb';\n });\n resolve(false);\n });\n });\n }\n }\n\n protected resetToInit() {\n this.currFrameStartAt = 0;\n this.currentIdx = 0;\n }\n\n async renderGroup(group: IGroup, drawContext: IDrawContext) {\n if (drawContext.break || group.attribute.visibleAll === false) {\n return;\n }\n if (group.incremental && drawContext.startAtId === group._uid) {\n await this._increaseRender(group, drawContext);\n drawContext.break = true;\n return;\n }\n\n await new Promise(resolve => {\n this.renderItem(group, drawContext, {\n drawingCb: async () => {\n await foreachAsync(group, DefaultAttribute.zIndex, async (item: IGraphic) => {\n if (drawContext.break) {\n return;\n }\n if (item.isContainer) {\n await this.renderGroup(item as IGroup, drawContext);\n } else {\n // 增量渲染不管非_increaseRender的内容\n return;\n }\n });\n resolve(false);\n }\n });\n });\n }\n\n // /**\n // * 一个每一帧都执行的脚本,用于检查和触发执行draw\n // */\n // protected autoRunner() {\n\n // }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/render/contributions/render/incremental-draw-contribution.ts"],"names":[],"mappings":"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","file":"incremental-draw-contribution.js","sourcesContent":["import type {\n IGraphic,\n IGroup,\n IRenderService,\n IDrawContext,\n IDrawContribution,\n IGraphicRender,\n IDrawItemInterceptorContribution,\n IContributionProvider\n} from '../../../interface';\nimport { DefaultAttribute } from '../../../graphic/config';\nimport { DefaultDrawContribution } from './draw-contribution';\nimport { SyncHook } from '../../../tapable';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport { foreachAsync } from '../../../common/sort';\n\nenum STATUS {\n NORMAL = 0,\n STOP = 1\n}\n\n/**\n * 增量渲染的contribution,基于树状结构针对图元的渲染\n * 不是单例模式\n */\nexport class DefaultIncrementalDrawContribution extends DefaultDrawContribution implements IDrawContribution {\n rendering: boolean = false;\n protected currFrameStartAt: number = 0;\n protected currentIdx: number = 0;\n protected status: STATUS = STATUS.NORMAL;\n protected checkingForDrawPromise: Promise<any> | null = null;\n hooks = {\n completeDraw: new SyncHook<[]>([])\n };\n protected lastRenderService: IRenderService;\n protected lastDrawContext: IDrawContext;\n protected count: number;\n\n constructor(\n protected contributions: IGraphicRender[],\n // protected readonly renderSelector: IRenderSelector, // 根据图元类型选择对应的renderItem进行渲染\n protected readonly lineRender: IGraphicRender, // 默认的lineRender\n protected readonly areaRender: IGraphicRender, // 默认的lineRender\n // 拦截器\n protected drawItemInterceptorContributions: IContributionProvider<IDrawItemInterceptorContribution>\n ) {\n super(contributions, drawItemInterceptorContributions);\n this.defaultRenderMap.set(this.lineRender.numberType, this.lineRender);\n this.defaultRenderMap.set(this.areaRender.numberType, this.areaRender);\n }\n\n /**\n *\n * @param renderService\n * @param drawContext restartIncremental为true表示重新执行增量渲染,为false表示不执行增量渲染\n * @returns\n */\n async draw(renderService: IRenderService, drawContext: IDrawContext): Promise<void> {\n // 入口检查是否需要重新绘制\n if (this.checkingForDrawPromise) {\n return;\n }\n this.lastRenderService = renderService;\n this.lastDrawContext = drawContext;\n\n this.checkingForDrawPromise = this.checkForDraw(drawContext);\n const skipDraw = await this.checkingForDrawPromise;\n this.checkingForDrawPromise = null;\n if (skipDraw) {\n return;\n }\n\n this.currentRenderService = renderService;\n const { context, viewBox } = drawContext;\n\n if (!context) {\n return;\n }\n // 增量渲染不需要dirtyBounds\n // const dirtyBounds: IBounds | undefined = this.dirtyBounds.setValue(x, y, x + width, y + height);\n // if (stage.dirtyBounds) {\n // const b = getRectIntersect(dirtyBounds, stage.dirtyBounds, false);\n // dirtyBounds.x1 = Math.floor(b.x1);\n // dirtyBounds.y1 = Math.floor(b.y1);\n // dirtyBounds.x2 = Math.ceil(b.x2);\n // dirtyBounds.y2 = Math.ceil(b.y2);\n // }\n context.inuse = true;\n // 初始化context\n context.clearMatrix();\n context.setTransformForCurrent(true);\n\n // const drawInArea =\n // dirtyBounds.width() * context.dpr !== context.canvas.width ||\n // dirtyBounds.height() * context.dpr !== context.canvas.height;\n context.save();\n\n // if (drawInArea) {\n // context.beginPath();\n // context.rect(dirtyBounds.x1, dirtyBounds.y1, dirtyBounds.width(), dirtyBounds.height());\n // context.clip();\n // }\n\n // this.clearScreen(renderService, context, drawContext);\n\n // 绘制之前需要清空画布\n drawContext.restartIncremental && this.clearScreen(this.currentRenderService, context, drawContext);\n // 设置translate\n context.translate(viewBox.x1, viewBox.y1, true);\n\n context.save();\n renderService.renderTreeRoots\n .sort((a, b) => {\n return (a.attribute.zIndex ?? DefaultAttribute.zIndex) - (b.attribute.zIndex ?? DefaultAttribute.zIndex);\n })\n .forEach(group => {\n this.renderGroup(group as IGroup, drawContext);\n });\n\n this.hooks.completeDraw.tap('top-draw', () => {\n context.restore();\n context.restore();\n context.draw();\n context.inuse = false;\n this.rendering = false;\n });\n }\n\n protected async _increaseRender(group: IGroup, drawContext: IDrawContext) {\n this.rendering = true;\n await this._renderIncrementalGroup(group, drawContext);\n return;\n }\n\n // 默认group后只有一层节点,也就是group是叶子结点的父节点\n protected async _renderIncrementalGroup(group: IGroup, drawContext: IDrawContext) {\n this.count = group.count;\n await new Promise(resolve => {\n this.renderItem(group, drawContext, {\n drawingCb: async () => {\n // 增量图元只支持一个,线段和面积图\n if (group.count === 2) {\n const graphic = group.getChildAt(0) as IGraphic;\n if (graphic.incremental && (graphic.attribute as any).segments) {\n if (!graphic.incrementalAt) {\n graphic.incrementalAt = 0;\n }\n while (graphic.incrementalAt < (graphic.attribute as any).segments.length) {\n drawContext.multiGraphicOptions = {\n startAtIdx: graphic.incrementalAt,\n length: graphic.incremental\n };\n this.renderItem(graphic, drawContext);\n graphic.incrementalAt += graphic.incremental;\n await this.waitToNextFrame();\n }\n } else {\n this.renderItem(graphic, drawContext);\n }\n resolve(false);\n return;\n }\n await foreachAsync(group, DefaultAttribute.zIndex, (item: IGraphic, i: number) => {\n if (this.status === STATUS.STOP) {\n return true;\n }\n if (item.isContainer) {\n // 增量渲染group下不应该有其他的group节点\n return false;\n }\n // 如果小于currentIdx,说明还没到当前的位置,那就直接跳过\n if (i < this.currentIdx) {\n return false;\n }\n const frameTail = this.currFrameStartAt + group.incremental;\n // 绘制 currentIdx到this.lastFrameIdx + group.incremental的内容\n if (i < frameTail) {\n this.currentIdx = i + 1;\n this.renderItem(item, drawContext);\n }\n // 下一帧\n if (i === frameTail - 1) {\n this.currFrameStartAt = this.currentIdx;\n // this.lastFrameIdx = this.currentIdx;\n return this.waitToNextFrame();\n }\n\n return false;\n });\n resolve(false);\n }\n });\n });\n this.hooks.completeDraw.call();\n }\n\n protected async waitToNextFrame(): Promise<boolean> {\n return new Promise(resolve => {\n this.global.getRequestAnimationFrame()(() => {\n resolve(false);\n });\n });\n }\n\n /**\n * 检查这次绘制是否跳过,以及执行一些准备\n * 增量渲染有自己的绘制逻辑流程,外部每次触发draw,该图层不一定会执行\n * @returns 返回true代表跳过绘制,false代表进行绘制\n */\n protected async checkForDraw(drawContext: IDrawContext): Promise<boolean> {\n let skip = this.rendering;\n if (drawContext.restartIncremental) {\n skip = false;\n await this.forceStop();\n this.resetToInit();\n }\n return skip;\n }\n\n protected async forceStop() {\n if (this.rendering) {\n this.status = STATUS.STOP;\n await new Promise(resolve => {\n this.hooks.completeDraw.tap('stopCb', () => {\n this.status = STATUS.NORMAL;\n this.hooks.completeDraw.taps = this.hooks.completeDraw.taps.filter(item => {\n return item.name !== 'stopCb';\n });\n resolve(false);\n });\n });\n }\n }\n\n protected resetToInit() {\n this.currFrameStartAt = 0;\n this.currentIdx = 0;\n }\n\n async renderGroup(group: IGroup, drawContext: IDrawContext) {\n if (drawContext.break || group.attribute.visibleAll === false) {\n return;\n }\n if (group.incremental && drawContext.startAtId === group._uid) {\n await this._increaseRender(group, drawContext);\n drawContext.break = true;\n return;\n }\n\n await new Promise(resolve => {\n this.renderItem(group, drawContext, {\n drawingCb: async () => {\n await foreachAsync(group, DefaultAttribute.zIndex, async (item: IGraphic) => {\n if (drawContext.break) {\n return;\n }\n if (item.isContainer) {\n await this.renderGroup(item as IGroup, drawContext);\n } else {\n // 增量渲染不管非_increaseRender的内容\n return;\n }\n });\n resolve(false);\n }\n });\n });\n }\n\n // /**\n // * 一个每一帧都执行的脚本,用于检查和触发执行draw\n // */\n // protected autoRunner() {\n\n // }\n}\n"]}
|