@visactor/vrender-core 0.18.0-alpha.0 → 0.18.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/common/canvas-utils.js +2 -2
- package/cjs/common/canvas-utils.js.map +1 -1
- package/cjs/common/color-utils.d.ts +9 -0
- package/cjs/common/color-utils.js +231 -0
- package/cjs/common/color-utils.js.map +1 -0
- package/cjs/common/rect-utils.d.ts +7 -0
- package/cjs/common/rect-utils.js +27 -0
- package/cjs/common/rect-utils.js.map +1 -0
- package/cjs/common/render-area.js +3 -15
- package/cjs/common/render-area.js.map +1 -1
- package/cjs/common/render-curve.js +4 -16
- package/cjs/common/render-curve.js.map +1 -1
- package/cjs/common/render-utils.d.ts +10 -0
- package/cjs/common/render-utils.js +22 -0
- package/cjs/common/render-utils.js.map +1 -0
- package/cjs/common/segment/basis.js +2 -3
- package/cjs/common/segment/basis.js.map +1 -1
- package/cjs/common/segment/common.d.ts +4 -1
- package/cjs/common/segment/common.js +13 -3
- package/cjs/common/segment/common.js.map +1 -1
- package/cjs/common/segment/linear-closed.d.ts +2 -16
- package/cjs/common/segment/linear-closed.js +3 -34
- package/cjs/common/segment/linear-closed.js.map +1 -1
- package/cjs/common/segment/linear.d.ts +1 -1
- package/cjs/common/segment/linear.js +2 -3
- package/cjs/common/segment/linear.js.map +1 -1
- package/cjs/common/segment/monotone.d.ts +2 -2
- package/cjs/common/segment/monotone.js +10 -12
- package/cjs/common/segment/monotone.js.map +1 -1
- package/cjs/common/sort.js +2 -1
- package/cjs/common/split-path.js +2 -2
- package/cjs/common/split-path.js.map +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/stage.d.ts +2 -1
- package/cjs/core/stage.js +12 -5
- package/cjs/core/stage.js.map +1 -1
- package/cjs/env-check.js +17 -17
- package/cjs/env-check.js.map +1 -1
- package/cjs/event/event-system.js +3 -3
- package/cjs/event/event-system.js.map +1 -1
- package/cjs/graphic/arc.js +1 -1
- package/cjs/graphic/arc.js.map +1 -1
- package/cjs/graphic/arc3d.js +1 -1
- package/cjs/graphic/arc3d.js.map +1 -1
- package/cjs/graphic/area.js +1 -1
- package/cjs/graphic/area.js.map +1 -1
- package/cjs/graphic/bounds.d.ts +2 -2
- package/cjs/graphic/bounds.js +1 -1
- package/cjs/graphic/bounds.js.map +1 -1
- package/cjs/graphic/circle.js +1 -1
- package/cjs/graphic/circle.js.map +1 -1
- package/cjs/graphic/config.js +5 -1
- package/cjs/graphic/config.js.map +1 -1
- package/cjs/graphic/glyph.js +1 -1
- package/cjs/graphic/glyph.js.map +1 -1
- package/cjs/graphic/graphic-service/graphic-service.js +13 -11
- package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
- package/cjs/graphic/graphic.d.ts +1 -0
- package/cjs/graphic/graphic.js +8 -6
- package/cjs/graphic/graphic.js.map +1 -1
- package/cjs/graphic/group.d.ts +1 -1
- package/cjs/graphic/group.js +3 -3
- package/cjs/graphic/group.js.map +1 -1
- package/cjs/graphic/image.d.ts +3 -1
- package/cjs/graphic/image.js +7 -1
- package/cjs/graphic/image.js.map +1 -1
- package/cjs/graphic/line.js +1 -1
- package/cjs/graphic/line.js.map +1 -1
- package/cjs/graphic/node-tree.d.ts +1 -1
- package/cjs/graphic/node-tree.js +6 -2
- package/cjs/graphic/node-tree.js.map +1 -1
- package/cjs/graphic/path.js +1 -1
- package/cjs/graphic/path.js.map +1 -1
- package/cjs/graphic/polygon.js +1 -1
- package/cjs/graphic/polygon.js.map +1 -1
- package/cjs/graphic/pyramid3d.js +1 -1
- package/cjs/graphic/pyramid3d.js.map +1 -1
- package/cjs/graphic/rect.js +4 -7
- package/cjs/graphic/rect.js.map +1 -1
- package/cjs/graphic/richtext/frame.d.ts +2 -2
- package/cjs/graphic/richtext/frame.js +1 -12
- package/cjs/graphic/richtext/frame.js.map +1 -1
- package/cjs/graphic/richtext/line.js +1 -12
- package/cjs/graphic/richtext/line.js.map +1 -1
- package/cjs/graphic/richtext/paragraph.js +2 -2
- package/cjs/graphic/richtext/paragraph.js.map +1 -1
- package/cjs/graphic/richtext.d.ts +45 -2
- package/cjs/graphic/richtext.js +22 -7
- package/cjs/graphic/richtext.js.map +1 -1
- package/cjs/graphic/symbol.js +1 -1
- package/cjs/graphic/symbol.js.map +1 -1
- package/cjs/graphic/text.js +4 -4
- package/cjs/graphic/text.js.map +1 -1
- package/cjs/graphic/theme.js +1 -1
- package/cjs/graphic/theme.js.map +1 -1
- package/cjs/interface/event.d.ts +2 -0
- package/cjs/interface/event.js.map +1 -1
- package/cjs/interface/graphic/richText.d.ts +2 -2
- package/cjs/interface/graphic/richText.js.map +1 -1
- package/cjs/interface/graphic/symbol.d.ts +1 -1
- package/cjs/interface/graphic/symbol.js.map +1 -1
- package/cjs/interface/graphic.d.ts +17 -3
- package/cjs/interface/graphic.js.map +1 -1
- package/cjs/interface/node-tree.d.ts +1 -1
- package/cjs/interface/node-tree.js.map +1 -1
- package/cjs/interface/picker.d.ts +1 -0
- package/cjs/interface/picker.js.map +1 -1
- package/cjs/interface/render.d.ts +1 -0
- package/cjs/interface/render.js.map +1 -1
- package/cjs/interface/stage.d.ts +7 -1
- package/cjs/interface/stage.js.map +1 -1
- package/cjs/modules.d.ts +3 -0
- package/cjs/modules.js +9 -10
- package/cjs/modules.js.map +1 -1
- package/cjs/picker/picker-service.js +8 -3
- package/cjs/picker/picker-service.js.map +1 -1
- package/cjs/plugins/builtin-plugin/flex-layout-plugin.d.ts +14 -3
- package/cjs/plugins/builtin-plugin/flex-layout-plugin.js +126 -65
- package/cjs/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
- package/cjs/plugins/builtin-plugin/html-attribute-plugin.js +28 -25
- package/cjs/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
- package/cjs/render/contributions/render/area-render.js +9 -7
- package/cjs/render/contributions/render/area-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/arc-contribution-render.d.ts +1 -1
- package/cjs/render/contributions/render/contributions/arc-contribution-render.js +2 -2
- package/cjs/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/area-contribution-render.d.ts +1 -9
- package/cjs/render/contributions/render/contributions/area-contribution-render.js +3 -55
- package/cjs/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/area-texture-contribution-render.d.ts +9 -0
- package/cjs/render/contributions/render/contributions/area-texture-contribution-render.js +26 -0
- package/cjs/render/contributions/render/contributions/area-texture-contribution-render.js.map +1 -0
- package/cjs/render/contributions/render/contributions/base-contribution-render.d.ts +2 -20
- package/cjs/render/contributions/render/contributions/base-contribution-render.js +25 -125
- package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/base-texture-contribution-render.d.ts +21 -0
- package/cjs/render/contributions/render/contributions/base-texture-contribution-render.js +128 -0
- package/cjs/render/contributions/render/contributions/base-texture-contribution-render.js.map +1 -0
- package/cjs/render/contributions/render/contributions/circle-contribution-render.d.ts +1 -1
- package/cjs/render/contributions/render/contributions/circle-contribution-render.js +2 -2
- package/cjs/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/group-contribution-render.js +2 -2
- package/cjs/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/image-contribution-render.js +3 -2
- package/cjs/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/index.d.ts +2 -0
- package/cjs/render/contributions/render/contributions/index.js +2 -1
- package/cjs/render/contributions/render/contributions/index.js.map +1 -1
- package/cjs/render/contributions/render/contributions/path-contribution-render.d.ts +1 -1
- package/cjs/render/contributions/render/contributions/path-contribution-render.js +2 -2
- package/cjs/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/polygon-contribution-render.d.ts +1 -1
- package/cjs/render/contributions/render/contributions/polygon-contribution-render.js +2 -2
- package/cjs/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/rect-contribution-render.d.ts +1 -1
- package/cjs/render/contributions/render/contributions/rect-contribution-render.js +2 -2
- package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/symbol-contribution-render.d.ts +1 -1
- package/cjs/render/contributions/render/contributions/symbol-contribution-render.js +2 -2
- package/cjs/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/text-contribution-render.js +23 -8
- package/cjs/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/draw-contribution.js +11 -5
- package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
- package/cjs/render/contributions/render/image-render.js +4 -2
- package/cjs/render/contributions/render/image-render.js.map +1 -1
- package/cjs/render/contributions/render/incremental-draw-contribution.d.ts +0 -1
- package/cjs/render/contributions/render/incremental-draw-contribution.js +19 -15
- package/cjs/render/contributions/render/incremental-draw-contribution.js.map +1 -1
- package/cjs/render/contributions/render/index.d.ts +1 -0
- package/cjs/render/contributions/render/index.js +2 -1
- package/cjs/render/contributions/render/index.js.map +1 -1
- package/cjs/render/contributions/render/utils.d.ts +1 -1
- package/cjs/render/contributions/render/utils.js.map +1 -1
- package/cjs/resource-loader/loader.d.ts +5 -0
- package/cjs/resource-loader/loader.js +56 -15
- package/cjs/resource-loader/loader.js.map +1 -1
- package/es/common/canvas-utils.js +3 -1
- package/es/common/canvas-utils.js.map +1 -1
- package/es/common/color-utils.d.ts +9 -0
- package/es/common/color-utils.js +224 -0
- package/es/common/color-utils.js.map +1 -0
- package/es/common/rect-utils.d.ts +7 -0
- package/es/common/rect-utils.js +20 -0
- package/es/common/rect-utils.js.map +1 -0
- package/es/common/render-area.js +2 -12
- package/es/common/render-area.js.map +1 -1
- package/es/common/render-curve.js +2 -15
- package/es/common/render-curve.js.map +1 -1
- package/es/common/render-utils.d.ts +10 -0
- package/es/common/render-utils.js +14 -0
- package/es/common/render-utils.js.map +1 -0
- package/es/common/segment/basis.js +2 -8
- package/es/common/segment/basis.js.map +1 -1
- package/es/common/segment/common.d.ts +4 -1
- package/es/common/segment/common.js +11 -0
- package/es/common/segment/common.js.map +1 -1
- package/es/common/segment/linear-closed.d.ts +2 -16
- package/es/common/segment/linear-closed.js +4 -38
- package/es/common/segment/linear-closed.js.map +1 -1
- package/es/common/segment/linear.d.ts +1 -1
- package/es/common/segment/linear.js +2 -8
- package/es/common/segment/linear.js.map +1 -1
- package/es/common/segment/monotone.d.ts +2 -2
- package/es/common/segment/monotone.js +7 -13
- package/es/common/segment/monotone.js.map +1 -1
- package/es/common/sort.js +2 -1
- package/es/common/split-path.js +3 -1
- package/es/common/split-path.js.map +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/stage.d.ts +2 -1
- package/es/core/stage.js +12 -5
- package/es/core/stage.js.map +1 -1
- package/es/env-check.js +12 -13
- package/es/env-check.js.map +1 -1
- package/es/event/event-system.js +3 -3
- package/es/event/event-system.js.map +1 -1
- package/es/graphic/arc.js +1 -1
- package/es/graphic/arc.js.map +1 -1
- package/es/graphic/arc3d.js +1 -1
- package/es/graphic/arc3d.js.map +1 -1
- package/es/graphic/area.js +1 -1
- package/es/graphic/area.js.map +1 -1
- package/es/graphic/bounds.d.ts +2 -2
- package/es/graphic/bounds.js +1 -1
- package/es/graphic/bounds.js.map +1 -1
- package/es/graphic/circle.js +1 -1
- package/es/graphic/circle.js.map +1 -1
- package/es/graphic/config.js +5 -1
- package/es/graphic/config.js.map +1 -1
- package/es/graphic/glyph.js +1 -1
- package/es/graphic/glyph.js.map +1 -1
- package/es/graphic/graphic-service/graphic-service.js +13 -11
- package/es/graphic/graphic-service/graphic-service.js.map +1 -1
- package/es/graphic/graphic.d.ts +1 -0
- package/es/graphic/graphic.js +9 -7
- package/es/graphic/graphic.js.map +1 -1
- package/es/graphic/group.d.ts +1 -1
- package/es/graphic/group.js +3 -3
- package/es/graphic/group.js.map +1 -1
- package/es/graphic/image.d.ts +3 -1
- package/es/graphic/image.js +7 -1
- package/es/graphic/image.js.map +1 -1
- package/es/graphic/line.js +1 -1
- package/es/graphic/line.js.map +1 -1
- package/es/graphic/node-tree.d.ts +1 -1
- package/es/graphic/node-tree.js +6 -2
- package/es/graphic/node-tree.js.map +1 -1
- package/es/graphic/path.js +1 -1
- package/es/graphic/path.js.map +1 -1
- package/es/graphic/polygon.js +1 -1
- package/es/graphic/polygon.js.map +1 -1
- package/es/graphic/pyramid3d.js +1 -1
- package/es/graphic/pyramid3d.js.map +1 -1
- package/es/graphic/rect.js +4 -7
- package/es/graphic/rect.js.map +1 -1
- package/es/graphic/richtext/frame.d.ts +2 -2
- package/es/graphic/richtext/frame.js +1 -12
- package/es/graphic/richtext/frame.js.map +1 -1
- package/es/graphic/richtext/line.js +1 -12
- package/es/graphic/richtext/line.js.map +1 -1
- package/es/graphic/richtext/paragraph.js +2 -2
- package/es/graphic/richtext/paragraph.js.map +1 -1
- package/es/graphic/richtext.d.ts +45 -2
- package/es/graphic/richtext.js +23 -6
- package/es/graphic/richtext.js.map +1 -1
- package/es/graphic/symbol.js +1 -1
- package/es/graphic/symbol.js.map +1 -1
- package/es/graphic/text.js +4 -4
- package/es/graphic/text.js.map +1 -1
- package/es/graphic/theme.js +1 -1
- package/es/graphic/theme.js.map +1 -1
- package/es/interface/event.d.ts +2 -0
- package/es/interface/event.js.map +1 -1
- package/es/interface/graphic/richText.d.ts +2 -2
- package/es/interface/graphic/richText.js.map +1 -1
- package/es/interface/graphic/symbol.d.ts +1 -1
- package/es/interface/graphic/symbol.js.map +1 -1
- package/es/interface/graphic.d.ts +17 -3
- package/es/interface/graphic.js.map +1 -1
- package/es/interface/node-tree.d.ts +1 -1
- package/es/interface/node-tree.js.map +1 -1
- package/es/interface/picker.d.ts +1 -0
- package/es/interface/picker.js.map +1 -1
- package/es/interface/render.d.ts +1 -0
- package/es/interface/render.js.map +1 -1
- package/es/interface/stage.d.ts +7 -1
- package/es/interface/stage.js.map +1 -1
- package/es/modules.d.ts +3 -0
- package/es/modules.js +4 -6
- package/es/modules.js.map +1 -1
- package/es/picker/picker-service.js +8 -3
- package/es/picker/picker-service.js.map +1 -1
- package/es/plugins/builtin-plugin/flex-layout-plugin.d.ts +14 -3
- package/es/plugins/builtin-plugin/flex-layout-plugin.js +126 -69
- package/es/plugins/builtin-plugin/flex-layout-plugin.js.map +1 -1
- package/es/plugins/builtin-plugin/html-attribute-plugin.js +28 -25
- package/es/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -1
- package/es/render/contributions/render/area-render.js +9 -7
- package/es/render/contributions/render/area-render.js.map +1 -1
- package/es/render/contributions/render/contributions/arc-contribution-render.d.ts +1 -1
- package/es/render/contributions/render/contributions/arc-contribution-render.js +3 -1
- package/es/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/area-contribution-render.d.ts +1 -9
- package/es/render/contributions/render/contributions/area-contribution-render.js +2 -51
- package/es/render/contributions/render/contributions/area-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/area-texture-contribution-render.d.ts +9 -0
- package/es/render/contributions/render/contributions/area-texture-contribution-render.js +18 -0
- package/es/render/contributions/render/contributions/area-texture-contribution-render.js.map +1 -0
- package/es/render/contributions/render/contributions/base-contribution-render.d.ts +2 -20
- package/es/render/contributions/render/contributions/base-contribution-render.js +23 -123
- package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/base-texture-contribution-render.d.ts +21 -0
- package/es/render/contributions/render/contributions/base-texture-contribution-render.js +124 -0
- package/es/render/contributions/render/contributions/base-texture-contribution-render.js.map +1 -0
- package/es/render/contributions/render/contributions/circle-contribution-render.d.ts +1 -1
- package/es/render/contributions/render/contributions/circle-contribution-render.js +3 -1
- package/es/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/group-contribution-render.js +2 -2
- package/es/render/contributions/render/contributions/group-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/image-contribution-render.js +3 -2
- package/es/render/contributions/render/contributions/image-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/index.d.ts +2 -0
- package/es/render/contributions/render/contributions/index.js +4 -0
- package/es/render/contributions/render/contributions/index.js.map +1 -1
- package/es/render/contributions/render/contributions/path-contribution-render.d.ts +1 -1
- package/es/render/contributions/render/contributions/path-contribution-render.js +3 -1
- package/es/render/contributions/render/contributions/path-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/polygon-contribution-render.d.ts +1 -1
- package/es/render/contributions/render/contributions/polygon-contribution-render.js +3 -1
- package/es/render/contributions/render/contributions/polygon-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/rect-contribution-render.d.ts +1 -1
- package/es/render/contributions/render/contributions/rect-contribution-render.js +3 -1
- package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/symbol-contribution-render.d.ts +1 -1
- package/es/render/contributions/render/contributions/symbol-contribution-render.js +3 -1
- package/es/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/text-contribution-render.js +28 -7
- package/es/render/contributions/render/contributions/text-contribution-render.js.map +1 -1
- package/es/render/contributions/render/draw-contribution.js +11 -5
- package/es/render/contributions/render/draw-contribution.js.map +1 -1
- package/es/render/contributions/render/image-render.js +6 -2
- package/es/render/contributions/render/image-render.js.map +1 -1
- package/es/render/contributions/render/incremental-draw-contribution.d.ts +0 -1
- package/es/render/contributions/render/incremental-draw-contribution.js +19 -15
- package/es/render/contributions/render/incremental-draw-contribution.js.map +1 -1
- package/es/render/contributions/render/index.d.ts +1 -0
- package/es/render/contributions/render/index.js +2 -0
- package/es/render/contributions/render/index.js.map +1 -1
- package/es/render/contributions/render/utils.d.ts +1 -1
- package/es/render/contributions/render/utils.js.map +1 -1
- package/es/resource-loader/loader.d.ts +5 -0
- package/es/resource-loader/loader.js +56 -14
- package/es/resource-loader/loader.js.map +1 -1
- package/package.json +6 -4
- package/dist/index.js +0 -27707
- package/dist/index.min.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/event/event-system.ts"],"names":[],"mappings":"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","file":"event-system.js","sourcesContent":["import { isUndefined, has, isString } from '@visactor/vutils';\nimport type { IGlobal } from '../interface';\nimport { EventManager } from './event-manager';\nimport { FederatedPointerEvent, FederatedWheelEvent } from './federated-event';\nimport type { FederatedMouseEvent } from './federated-event/mouse-event';\nimport type { EventPoint, IElementLike, IEventTarget, NativeEvent, RenderConfig } from '../interface/event';\nimport { clock } from './util';\n\nconst MOUSE_POINTER_ID = 1;\nconst TOUCH_TO_POINTER: Record<string, string> = {\n touchstart: 'pointerdown',\n touchend: 'pointerup',\n touchendoutside: 'pointerupoutside',\n touchmove: 'pointermove',\n touchcancel: 'pointercancel'\n};\n\n/**\n * 代码参考自 https://github.com/pixijs/pixijs\n * The MIT License\n\n Copyright (c) 2013-2023 Mathew Groves, Chad Engler\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n */\n\n/**\n * The system for handling UI events.\n */\nexport class EventSystem {\n private readonly globalObj: IGlobal;\n readonly manager: EventManager;\n\n /** Does the device support touch events https://www.w3.org/TR/touch-events/ */\n // readonly supportsTouchEvents = 'ontouchstart' in this.globalObj;\n readonly supportsTouchEvents: boolean;\n\n /** Does the device support pointer events https://www.w3.org/Submission/pointer-events/ */\n // readonly supportsPointerEvents = !!this.globalObj.PointerEvent;\n readonly supportsPointerEvents: boolean;\n\n readonly supportsMouseEvents: boolean;\n\n readonly applyStyles: boolean;\n\n readonly viewport: RenderConfig['viewport'];\n\n /**\n * Should default browser actions automatically be prevented.\n * Does not apply to pointer events for backwards compatibility\n * preventDefault on pointer events stops mouse events from firing\n * Thus, for every pointer event, there will always be either a mouse of touch event alongside it.\n * @default false\n */\n autoPreventDefault: boolean;\n\n /**\n * Dictionary of how different cursor modes are handled. Strings are handled as CSS cursor\n * values, objects are handled as dictionaries of CSS values for domElement,\n * and functions are called instead of changing the CSS.\n * Default CSS cursor values are provided for 'default' and 'pointer' modes.\n * @member {Object<string, string | ((mode: string) => void) | CSSStyleDeclaration>}\n */\n cursorStyles: Record<string, string | ((mode: string) => void) | CSSStyleDeclaration>;\n\n /**\n * The DOM element to which the root event listeners are bound. This is automatically set to\n */\n domElement: IElementLike | null;\n\n /** The resolution used to convert between the DOM client space into world space. */\n resolution = 1;\n\n private currentCursor: string;\n private rootPointerEvent: FederatedPointerEvent;\n private rootWheelEvent: FederatedWheelEvent;\n private eventsAdded: boolean;\n\n constructor(params: RenderConfig) {\n const { targetElement, resolution, rootNode, global, viewport, autoPreventDefault = false, clickInterval } = params;\n this.manager = new EventManager(rootNode, {\n clickInterval\n });\n\n this.globalObj = global;\n this.supportsPointerEvents = global.supportsPointerEvents;\n this.supportsTouchEvents = global.supportsTouchEvents;\n this.supportsMouseEvents = global.supportsMouseEvents;\n this.applyStyles = global.applyStyles;\n\n this.autoPreventDefault = autoPreventDefault;\n this.eventsAdded = false;\n this.viewport = viewport;\n\n this.rootPointerEvent = new FederatedPointerEvent();\n this.rootWheelEvent = new FederatedWheelEvent();\n\n this.cursorStyles = {\n default: 'inherit',\n pointer: 'pointer'\n };\n\n this.resolution = resolution;\n this.setTargetElement(targetElement);\n }\n\n release(): void {\n this.setTargetElement(null);\n }\n\n setCursor(mode: string, target: IEventTarget | null | 'ignore'): void {\n if (!target && !(this.manager.rootTarget as any).window._handler.canvas.controled) {\n return;\n }\n\n if (!mode) {\n mode = 'default';\n }\n const { applyStyles, domElement } = this;\n\n if (this.currentCursor === mode) {\n return;\n }\n this.currentCursor = mode;\n const style = this.cursorStyles[mode];\n if (style) {\n if (typeof style === 'string' && applyStyles) {\n domElement.style.cursor = style;\n } else if (typeof style === 'function') {\n style(mode);\n } else if (typeof style === 'object' && applyStyles) {\n Object.assign(domElement.style, style);\n }\n } else if (applyStyles && isString(mode) && !has(this.cursorStyles, mode)) {\n domElement.style.cursor = mode;\n }\n }\n\n private onPointerDown = (nativeEvent: NativeEvent): void => {\n if (this.supportsTouchEvents && (nativeEvent as PointerEvent).pointerType === 'touch') {\n return;\n }\n\n const events = this.normalizeToPointerData(nativeEvent);\n\n if (this.autoPreventDefault && (events[0] as any).isNormalized) {\n const cancelable = nativeEvent.cancelable || !('cancelable' in nativeEvent);\n\n if (cancelable) {\n nativeEvent.preventDefault();\n }\n }\n\n for (let i = 0, j = events.length; i < j; i++) {\n const nativeEvent = events[i];\n const federatedEvent = this.bootstrapEvent(this.rootPointerEvent, nativeEvent);\n\n this.manager.mapEvent(federatedEvent);\n }\n\n this.setCursor(this.manager.cursor, this.manager.cursorTarget);\n };\n\n private onPointerMove = (nativeEvent: NativeEvent): void => {\n if (this.supportsTouchEvents && (nativeEvent as PointerEvent).pointerType === 'touch') {\n return;\n }\n\n if (this.isEventOutsideOfTargetElement(nativeEvent)) {\n return;\n }\n\n const normalizedEvents = this.normalizeToPointerData(nativeEvent);\n for (let i = 0, j = normalizedEvents.length; i < j; i++) {\n const event = this.bootstrapEvent(this.rootPointerEvent, normalizedEvents[i]);\n\n this.manager.mapEvent(event);\n }\n\n this.setCursor(this.manager.cursor, this.manager.cursorTarget);\n };\n\n private onPointerUp = (nativeEvent: NativeEvent): void => {\n if (this.supportsTouchEvents && (nativeEvent as PointerEvent).pointerType === 'touch') {\n return;\n }\n\n const outside = this.isEventOutsideOfTargetElement(nativeEvent) ? 'outside' : '';\n const normalizedEvents = this.normalizeToPointerData(nativeEvent);\n\n for (let i = 0, j = normalizedEvents.length; i < j; i++) {\n const event = this.bootstrapEvent(this.rootPointerEvent, normalizedEvents[i]);\n\n event.type += outside;\n\n this.manager.mapEvent(event);\n }\n\n this.setCursor(this.manager.cursor, this.manager.cursorTarget);\n };\n\n private onPointerOverOut = (nativeEvent: NativeEvent): void => {\n if (this.supportsTouchEvents && (nativeEvent as PointerEvent).pointerType === 'touch') {\n return;\n }\n\n const normalizedEvents = this.normalizeToPointerData(nativeEvent);\n\n for (let i = 0, j = normalizedEvents.length; i < j; i++) {\n const event = this.bootstrapEvent(this.rootPointerEvent, normalizedEvents[i]);\n\n this.manager.mapEvent(event);\n }\n\n this.setCursor(this.manager.cursor, this.manager.cursorTarget);\n };\n\n protected onWheel = (nativeEvent: WheelEvent): void => {\n const wheelEvent = this.normalizeWheelEvent(nativeEvent);\n\n this.manager.mapEvent(wheelEvent);\n };\n\n setTargetElement(element: IElementLike | null): void {\n this.removeEvents();\n this.domElement = element;\n this.addEvents();\n }\n\n private addEvents(): void {\n if (this.eventsAdded || !this.domElement) {\n return;\n }\n const { globalObj, domElement } = this;\n\n if (this.supportsPointerEvents) {\n if (globalObj.getDocument()) {\n globalObj.getDocument().addEventListener('pointermove', this.onPointerMove, true);\n globalObj.getDocument().addEventListener('pointerup', this.onPointerUp, true);\n } else {\n domElement.addEventListener('pointermove', this.onPointerMove, true);\n domElement.addEventListener('pointerup', this.onPointerUp, true);\n }\n domElement.addEventListener('pointerdown', this.onPointerDown, true);\n domElement.addEventListener('pointerleave', this.onPointerOverOut, true);\n domElement.addEventListener('pointerover', this.onPointerOverOut, true);\n } else {\n if (globalObj.getDocument()) {\n globalObj.getDocument().addEventListener('mousemove', this.onPointerMove, true);\n globalObj.getDocument().addEventListener('mouseup', this.onPointerUp, true);\n } else {\n domElement.addEventListener('mousemove', this.onPointerMove, true);\n domElement.addEventListener('mouseup', this.onPointerUp, true);\n }\n domElement.addEventListener('mousedown', this.onPointerDown, true);\n domElement.addEventListener('mouseout', this.onPointerOverOut, true);\n domElement.addEventListener('mouseover', this.onPointerOverOut, true);\n }\n\n if (this.supportsTouchEvents) {\n domElement.addEventListener('touchstart', this.onPointerDown, true);\n domElement.addEventListener('touchend', this.onPointerUp, true);\n domElement.addEventListener('touchmove', this.onPointerMove, true);\n }\n\n domElement.addEventListener('wheel', this.onWheel, {\n capture: true\n });\n\n this.eventsAdded = true;\n }\n\n private removeEvents(): void {\n if (!this.eventsAdded || !this.domElement) {\n return;\n }\n const { globalObj, domElement } = this;\n\n if (this.supportsPointerEvents) {\n if (globalObj.getDocument()) {\n globalObj.getDocument().removeEventListener('pointermove', this.onPointerMove, true);\n globalObj.getDocument().removeEventListener('pointerup', this.onPointerUp, true);\n } else {\n domElement.removeEventListener('pointermove', this.onPointerMove, true);\n domElement.removeEventListener('pointerup', this.onPointerUp, true);\n }\n domElement.removeEventListener('pointerdown', this.onPointerDown, true);\n domElement.removeEventListener('pointerleave', this.onPointerOverOut, true);\n domElement.removeEventListener('pointerover', this.onPointerOverOut, true);\n } else {\n if (globalObj.getDocument()) {\n globalObj.getDocument().removeEventListener('mousemove', this.onPointerMove, true);\n globalObj.getDocument().removeEventListener('mouseup', this.onPointerUp, true);\n } else {\n domElement.removeEventListener('mousemove', this.onPointerMove, true);\n domElement.removeEventListener('mouseup', this.onPointerUp, true);\n }\n domElement.removeEventListener('mousedown', this.onPointerDown, true);\n domElement.removeEventListener('mouseout', this.onPointerOverOut, true);\n domElement.removeEventListener('mouseover', this.onPointerOverOut, true);\n }\n\n if (this.supportsTouchEvents) {\n domElement.removeEventListener('touchstart', this.onPointerDown, true);\n domElement.removeEventListener('touchend', this.onPointerUp, true);\n domElement.removeEventListener('touchmove', this.onPointerMove, true);\n }\n\n domElement.removeEventListener('wheel', this.onWheel, true);\n\n this.domElement = null;\n this.eventsAdded = false;\n }\n\n private mapToViewportPoint(event: FederatedMouseEvent): EventPoint {\n const viewport = this.viewport;\n const { x, y } = event;\n return {\n x: x - viewport.x,\n y: y - viewport.y\n };\n }\n\n private mapToCanvasPoint(nativeEvent: PointerEvent | WheelEvent): EventPoint {\n const point = this.globalObj?.mapToCanvasPoint(nativeEvent, this.domElement);\n\n if (point) {\n return point;\n }\n\n const { clientX: x, clientY: y } = nativeEvent;\n const rect = this.domElement.getBoundingClientRect();\n return {\n x: x - rect.left,\n y: y - rect.top\n };\n }\n\n private normalizeToPointerData(event: TouchEvent | MouseEvent | PointerEvent): PointerEvent[] {\n const normalizedEvents = [];\n\n if (\n this.supportsTouchEvents &&\n (event as TouchEvent).changedTouches &&\n (event as TouchEvent).changedTouches.length\n ) {\n for (let i = 0, li = (event as TouchEvent).changedTouches.length; i < li; i++) {\n const touch = (event as TouchEvent).changedTouches[i] as VRenderTouch;\n\n if (isUndefined(touch.button)) {\n touch.button = 0;\n }\n if (isUndefined(touch.buttons)) {\n touch.buttons = 1;\n }\n if (isUndefined(touch.isPrimary)) {\n touch.isPrimary = (event as TouchEvent).touches.length === 1 && event.type === 'touchstart';\n }\n if (isUndefined(touch.width)) {\n touch.width = touch.radiusX || 1;\n }\n if (isUndefined(touch.height)) {\n touch.height = touch.radiusY || 1;\n }\n if (isUndefined(touch.tiltX)) {\n touch.tiltX = 0;\n }\n if (isUndefined(touch.tiltY)) {\n touch.tiltY = 0;\n }\n if (isUndefined(touch.pointerType)) {\n touch.pointerType = 'touch';\n }\n if (isUndefined(touch.pointerId)) {\n touch.pointerId = touch.identifier || 0;\n }\n if (isUndefined(touch.pressure)) {\n touch.pressure = touch.force || 0.5;\n }\n if (isUndefined(touch.twist)) {\n touch.twist = 0;\n }\n if (isUndefined(touch.tangentialPressure)) {\n touch.tangentialPressure = 0;\n }\n if (isUndefined(touch.layerX)) {\n touch.layerX = touch.offsetX = touch.clientX;\n }\n if (isUndefined(touch.layerY)) {\n touch.layerY = touch.offsetY = touch.clientY;\n }\n\n touch.isNormalized = true;\n touch.type = event.type;\n\n normalizedEvents.push(touch);\n }\n } else if (\n !this.globalObj.supportsMouseEvents ||\n (event instanceof MouseEvent && (!this.supportsPointerEvents || !(event instanceof PointerEvent)))\n ) {\n const tempEvent = event as VRenderPointerEvent;\n\n if (isUndefined(tempEvent.isPrimary)) {\n tempEvent.isPrimary = true;\n }\n if (isUndefined(tempEvent.width)) {\n tempEvent.width = 1;\n }\n if (isUndefined(tempEvent.height)) {\n tempEvent.height = 1;\n }\n if (isUndefined(tempEvent.tiltX)) {\n tempEvent.tiltX = 0;\n }\n if (isUndefined(tempEvent.tiltY)) {\n tempEvent.tiltY = 0;\n }\n if (isUndefined(tempEvent.pointerType)) {\n tempEvent.pointerType = 'mouse';\n }\n if (isUndefined(tempEvent.pointerId)) {\n tempEvent.pointerId = MOUSE_POINTER_ID;\n }\n if (isUndefined(tempEvent.pressure)) {\n tempEvent.pressure = 0.5;\n }\n if (isUndefined(tempEvent.twist)) {\n tempEvent.twist = 0;\n }\n if (isUndefined(tempEvent.tangentialPressure)) {\n tempEvent.tangentialPressure = 0;\n }\n\n tempEvent.isNormalized = true;\n\n normalizedEvents.push(tempEvent);\n } else {\n normalizedEvents.push(event);\n }\n\n return normalizedEvents as PointerEvent[];\n }\n\n protected normalizeWheelEvent(nativeEvent: WheelEvent): FederatedWheelEvent {\n const event = this.rootWheelEvent;\n\n this.transferMouseData(event, nativeEvent);\n\n event.deltaMode = nativeEvent.deltaMode;\n event.deltaX = nativeEvent.deltaX;\n event.deltaY = nativeEvent.deltaY;\n event.deltaZ = nativeEvent.deltaZ;\n\n // 获取相对画布坐标\n const { x: canvasX, y: canvasY } = this.mapToCanvasPoint(nativeEvent);\n event.canvas.x = canvasX;\n event.canvas.y = canvasY;\n\n event.global.x = canvasX;\n event.global.y = canvasY;\n\n event.offset.x = canvasX;\n event.offset.y = canvasY;\n\n // 获取相对绘图区域(viewport)坐标\n const { x: viewX, y: viewY } = this.mapToViewportPoint(event);\n event.viewport.x = viewX;\n event.viewport.y = viewY;\n\n event.nativeEvent = nativeEvent;\n event.type = nativeEvent.type;\n\n return event;\n }\n\n /**\n * Normalizes the {@code nativeEvent} into a federateed {@code FederatedPointerEvent}.\n * @param event\n * @param nativeEvent\n */\n private bootstrapEvent(event: FederatedPointerEvent, nativeEvent: PointerEvent): FederatedPointerEvent {\n event.originalEvent = null;\n event.nativeEvent = nativeEvent;\n\n event.pointerId = nativeEvent.pointerId;\n event.width = nativeEvent.width;\n event.height = nativeEvent.height;\n event.isPrimary = nativeEvent.isPrimary;\n event.pointerType = nativeEvent.pointerType;\n event.pressure = nativeEvent.pressure;\n event.tangentialPressure = nativeEvent.tangentialPressure;\n event.tiltX = nativeEvent.tiltX;\n event.tiltY = nativeEvent.tiltY;\n event.twist = nativeEvent.twist;\n this.transferMouseData(event, nativeEvent);\n\n const { x: canvasX, y: canvasY } = this.mapToCanvasPoint(nativeEvent);\n event.canvas.x = canvasX;\n event.canvas.y = canvasY;\n\n event.global.x = canvasX;\n event.global.y = canvasY;\n\n event.offset.x = canvasX;\n event.offset.y = canvasY;\n\n // 获取相对绘图区域(viewport)坐标\n const { x: viewX, y: viewY } = this.mapToViewportPoint(event);\n event.viewport.x = viewX;\n event.viewport.y = viewY;\n\n event.isTrusted = nativeEvent.isTrusted;\n if (event.type === 'pointerleave') {\n event.type = 'pointerout';\n }\n if (event.type.startsWith('mouse')) {\n event.type = event.type.replace('mouse', 'pointer');\n }\n if (event.type.startsWith('touch')) {\n event.type = TOUCH_TO_POINTER[event.type] || event.type;\n }\n\n return event;\n }\n\n /**\n * Transfers base & mouse event data from the {@code nativeEvent} to the federated event.\n * @param event\n * @param nativeEvent\n */\n private transferMouseData(event: FederatedMouseEvent, nativeEvent: MouseEvent): void {\n event.isTrusted = nativeEvent.isTrusted;\n event.srcElement = nativeEvent.srcElement as IEventTarget;\n event.timeStamp = clock.now();\n event.type = nativeEvent.type;\n\n event.altKey = nativeEvent.altKey;\n event.button = nativeEvent.button;\n event.buttons = nativeEvent.buttons;\n event.client.x = nativeEvent.clientX;\n event.client.y = nativeEvent.clientY;\n event.ctrlKey = nativeEvent.ctrlKey;\n event.shiftKey = nativeEvent.shiftKey;\n event.metaKey = nativeEvent.metaKey;\n event.movement.x = nativeEvent.movementX;\n event.movement.y = nativeEvent.movementY;\n event.page.x = nativeEvent.pageX;\n event.page.y = nativeEvent.pageY;\n event.relatedTarget = null;\n }\n\n private isEventOutsideOfTargetElement(nativeEvent: NativeEvent) {\n let target = nativeEvent.target;\n\n if (nativeEvent.composedPath && nativeEvent.composedPath().length > 0) {\n target = nativeEvent.composedPath()[0];\n }\n\n const nativeElement = this.domElement.getNativeHandler\n ? this.domElement.getNativeHandler().nativeCanvas\n : this.domElement;\n\n return target !== nativeElement;\n }\n}\n\ninterface VRenderPointerEvent extends PointerEvent {\n isPrimary: boolean;\n width: number;\n height: number;\n tiltX: number;\n tiltY: number;\n pointerType: string;\n pointerId: number;\n pressure: number;\n twist: number;\n tangentialPressure: number;\n isNormalized: boolean;\n type: string;\n}\n\ninterface VRenderTouch extends Touch {\n button: number;\n buttons: number;\n isPrimary: boolean;\n width: number;\n height: number;\n tiltX: number;\n tiltY: number;\n pointerType: string;\n pointerId: number;\n pressure: number;\n twist: number;\n tangentialPressure: number;\n layerX: number;\n layerY: number;\n offsetX: number;\n offsetY: number;\n isNormalized: boolean;\n type: string;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/event/event-system.ts"],"names":[],"mappings":";;;AAAA,6CAA8D;AAE9D,mDAA+C;AAC/C,uDAA+E;AAG/E,iCAA+B;AAE/B,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,gBAAgB,GAA2B;IAC/C,UAAU,EAAE,aAAa;IACzB,QAAQ,EAAE,WAAW;IACrB,eAAe,EAAE,kBAAkB;IACnC,SAAS,EAAE,aAAa;IACxB,WAAW,EAAE,eAAe;CAC7B,CAAC;AA8BF,MAAa,WAAW;IAiDtB,YAAY,MAAoB;QAPhC,eAAU,GAAG,CAAC,CAAC;QA6EP,kBAAa,GAAG,CAAC,WAAwB,EAAQ,EAAE;YACzD,IAAI,IAAI,CAAC,mBAAmB,IAAK,WAA4B,CAAC,WAAW,KAAK,OAAO,EAAE;gBACrF,OAAO;aACR;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;YAExD,IAAI,IAAI,CAAC,kBAAkB,IAAK,MAAM,CAAC,CAAC,CAAS,CAAC,YAAY,EAAE;gBAC9D,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,IAAI,CAAC,CAAC,YAAY,IAAI,WAAW,CAAC,CAAC;gBAE5E,IAAI,UAAU,EAAE;oBACd,WAAW,CAAC,cAAc,EAAE,CAAC;iBAC9B;aACF;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC7C,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBAC9B,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;gBAE/E,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;aACvC;YAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACjE,CAAC,CAAC;QAEM,kBAAa,GAAG,CAAC,WAAwB,EAAQ,EAAE;YACzD,IAAI,IAAI,CAAC,mBAAmB,IAAK,WAA4B,CAAC,WAAW,KAAK,OAAO,EAAE;gBACrF,OAAO;aACR;YAED,IAAI,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,EAAE;gBACnD,OAAO;aACR;YAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;YAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACvD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE9E,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAC9B;YAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACjE,CAAC,CAAC;QAEM,gBAAW,GAAG,CAAC,WAAwB,EAAQ,EAAE;YACvD,IAAI,IAAI,CAAC,mBAAmB,IAAK,WAA4B,CAAC,WAAW,KAAK,OAAO,EAAE;gBACrF,OAAO;aACR;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;YAElE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACvD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE9E,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC;gBAEtB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAC9B;YAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACjE,CAAC,CAAC;QAEM,qBAAgB,GAAG,CAAC,WAAwB,EAAQ,EAAE;YAC5D,IAAI,IAAI,CAAC,mBAAmB,IAAK,WAA4B,CAAC,WAAW,KAAK,OAAO,EAAE;gBACrF,OAAO;aACR;YAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;YAElE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACvD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE9E,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aAC9B;YAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACjE,CAAC,CAAC;QAEQ,YAAO,GAAG,CAAC,WAAuB,EAAQ,EAAE;YACpD,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;YAEzD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC,CAAC;QAxJA,MAAM,EACJ,aAAa,EACb,UAAU,EACV,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,kBAAkB,GAAG,KAAK,EAC1B,aAAa,EACb,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,EAChD,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,EACrD,GAAG,MAAM,CAAC;QACX,IAAI,CAAC,OAAO,GAAG,IAAI,4BAAY,CAAC,QAAQ,EAAE;YACxC,aAAa;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QACxB,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;QACnD,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;QAC/C,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAEtC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,IAAI,CAAC,gBAAgB,GAAG,IAAI,uCAAqB,EAAE,CAAC;QACpD,IAAI,CAAC,cAAc,GAAG,IAAI,qCAAmB,EAAE,CAAC;QAEhD,IAAI,CAAC,YAAY,GAAG;YAClB,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,SAAS;SACnB,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,CAAC,IAAY,EAAE,MAAsC;QAC5D,IAAI,CAAC,MAAM,IAAI,CAAE,IAAI,CAAC,OAAO,CAAC,UAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE;YACjF,OAAO;SACR;QAED,IAAI,CAAC,IAAI,EAAE;YACT,IAAI,GAAG,SAAS,CAAC;SAClB;QACD,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAEzC,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE;YAC/B,OAAO;SACR;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,KAAK,EAAE;YACT,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,WAAW,EAAE;gBAC5C,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;aACjC;iBAAM,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;gBACtC,KAAK,CAAC,IAAI,CAAC,CAAC;aACb;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,WAAW,EAAE;gBACnD,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;aACxC;SACF;aAAM,IAAI,WAAW,IAAI,IAAA,iBAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,IAAA,YAAG,EAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE;YACzE,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;SAChC;IACH,CAAC;IAuFD,gBAAgB,CAAC,OAA4B;QAC3C,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;QAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAEO,SAAS;QACf,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACxC,OAAO;SACR;QACD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAEvC,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE;gBAC3B,SAAS,CAAC,WAAW,EAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBAClF,SAAS,CAAC,WAAW,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;aAC/E;iBAAM;gBACL,UAAU,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBACrE,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;aAClE;YACD,UAAU,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YACrE,UAAU,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YACzE,UAAU,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;SACzE;aAAM;YACL,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE;gBAC3B,SAAS,CAAC,WAAW,EAAE,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBAChF,SAAS,CAAC,WAAW,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;aAC7E;iBAAM;gBACL,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBACnE,UAAU,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;aAChE;YACD,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YACnE,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YACrE,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;SACvE;QAED,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,UAAU,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YACpE,UAAU,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAChE,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;SACpE;QAED,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;YACjD,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAEO,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACzC,OAAO;SACR;QACD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAEvC,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE;gBAC3B,SAAS,CAAC,WAAW,EAAE,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBACrF,SAAS,CAAC,WAAW,EAAE,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;aAClF;iBAAM;gBACL,UAAU,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBACxE,UAAU,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;aACrE;YACD,UAAU,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YACxE,UAAU,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YAC5E,UAAU,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;SAC5E;aAAM;YACL,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE;gBAC3B,SAAS,CAAC,WAAW,EAAE,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBACnF,SAAS,CAAC,WAAW,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;aAChF;iBAAM;gBACL,UAAU,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;gBACtE,UAAU,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;aACnE;YACD,UAAU,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YACtE,UAAU,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YACxE,UAAU,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;SAC1E;QAED,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,UAAU,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YACvE,UAAU,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACnE,UAAU,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;SACvE;QAED,UAAU,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAE5D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAEO,kBAAkB,CAAC,KAA0B;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC;QACvB,OAAO;YACL,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;YACjB,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC;SAClB,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,WAAsC;;QAC7D,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,SAAS,0CAAE,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAE7E,IAAI,KAAK,EAAE;YACT,OAAO,KAAK,CAAC;SACd;QAED,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,WAAW,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC;QACrD,OAAO;YACL,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI;YAChB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG;SAChB,CAAC;IACJ,CAAC;IAEO,sBAAsB,CAAC,KAA6C;QAC1E,MAAM,gBAAgB,GAAG,EAAE,CAAC;QAE5B,IACE,IAAI,CAAC,mBAAmB;YACvB,KAAoB,CAAC,cAAc;YACnC,KAAoB,CAAC,cAAc,CAAC,MAAM,EAC3C;YACA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAI,KAAoB,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;gBAC7E,MAAM,KAAK,GAAI,KAAoB,CAAC,cAAc,CAAC,CAAC,CAAiB,CAAC;gBAEtE,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,MAAM,CAAC,EAAE;oBAC7B,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;iBAClB;gBACD,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,OAAO,CAAC,EAAE;oBAC9B,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;iBACnB;gBACD,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,SAAS,CAAC,EAAE;oBAChC,KAAK,CAAC,SAAS,GAAI,KAAoB,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC;iBAC7F;gBACD,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,KAAK,CAAC,EAAE;oBAC5B,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;iBAClC;gBACD,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,MAAM,CAAC,EAAE;oBAC7B,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;iBACnC;gBACD,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,KAAK,CAAC,EAAE;oBAC5B,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;iBACjB;gBACD,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,KAAK,CAAC,EAAE;oBAC5B,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;iBACjB;gBACD,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,WAAW,CAAC,EAAE;oBAClC,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC;iBAC7B;gBACD,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,SAAS,CAAC,EAAE;oBAChC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;iBACzC;gBACD,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;oBAC/B,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC;iBACrC;gBACD,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,KAAK,CAAC,EAAE;oBAC5B,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;iBACjB;gBACD,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE;oBACzC,KAAK,CAAC,kBAAkB,GAAG,CAAC,CAAC;iBAC9B;gBACD,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,MAAM,CAAC,EAAE;oBAC7B,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;iBAC9C;gBACD,IAAI,IAAA,oBAAW,EAAC,KAAK,CAAC,MAAM,CAAC,EAAE;oBAC7B,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;iBAC9C;gBAED,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC1B,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;gBAExB,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC9B;SACF;aAAM,IACL,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB;YACnC,CAAC,KAAK,YAAY,UAAU,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,CAAC,KAAK,YAAY,YAAY,CAAC,CAAC,CAAC,EAClG;YACA,MAAM,SAAS,GAAG,KAA4B,CAAC;YAE/C,IAAI,IAAA,oBAAW,EAAC,SAAS,CAAC,SAAS,CAAC,EAAE;gBACpC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;aAC5B;YACD,IAAI,IAAA,oBAAW,EAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBAChC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;aACrB;YACD,IAAI,IAAA,oBAAW,EAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBACjC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;aACtB;YACD,IAAI,IAAA,oBAAW,EAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBAChC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;aACrB;YACD,IAAI,IAAA,oBAAW,EAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBAChC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;aACrB;YACD,IAAI,IAAA,oBAAW,EAAC,SAAS,CAAC,WAAW,CAAC,EAAE;gBACtC,SAAS,CAAC,WAAW,GAAG,OAAO,CAAC;aACjC;YACD,IAAI,IAAA,oBAAW,EAAC,SAAS,CAAC,SAAS,CAAC,EAAE;gBACpC,SAAS,CAAC,SAAS,GAAG,gBAAgB,CAAC;aACxC;YACD,IAAI,IAAA,oBAAW,EAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;gBACnC,SAAS,CAAC,QAAQ,GAAG,GAAG,CAAC;aAC1B;YACD,IAAI,IAAA,oBAAW,EAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBAChC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC;aACrB;YACD,IAAI,IAAA,oBAAW,EAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE;gBAC7C,SAAS,CAAC,kBAAkB,GAAG,CAAC,CAAC;aAClC;YAED,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;YAE9B,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAClC;aAAM;YACL,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;QAED,OAAO,gBAAkC,CAAC;IAC5C,CAAC;IAES,mBAAmB,CAAC,WAAuB;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC;QAElC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAE3C,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;QACxC,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;QAClC,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;QAClC,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;QAGlC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACtE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;QACzB,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;QAEzB,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;QACzB,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;QAEzB,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;QACzB,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;QAGzB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9D,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC;QACzB,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC;QAEzB,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;QAChC,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;QAE9B,OAAO,KAAK,CAAC;IACf,CAAC;IAOO,cAAc,CAAC,KAA4B,EAAE,WAAyB;QAC5E,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;QAC3B,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;QAEhC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;QACxC,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QAChC,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;QAClC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;QACxC,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;QAC5C,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;QACtC,KAAK,CAAC,kBAAkB,GAAG,WAAW,CAAC,kBAAkB,CAAC;QAC1D,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QAChC,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QAChC,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAE3C,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACtE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;QACzB,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;QAEzB,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;QACzB,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;QAEzB,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;QACzB,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC;QAGzB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9D,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC;QACzB,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,CAAC;QAEzB,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;QACxC,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE;YACjC,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC;SAC3B;QACD,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAClC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;SACrD;QACD,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAClC,KAAK,CAAC,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;SACzD;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAOO,iBAAiB,CAAC,KAA0B,EAAE,WAAuB;QAC3E,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;QACxC,KAAK,CAAC,UAAU,GAAG,WAAW,CAAC,UAA0B,CAAC;QAC1D,KAAK,CAAC,SAAS,GAAG,YAAK,CAAC,GAAG,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;QAE9B,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;QAClC,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;QAClC,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;QACpC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC;QACrC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC;QACrC,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;QACpC,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;QACtC,KAAK,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;QACpC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC;QACzC,KAAK,CAAC,QAAQ,CAAC,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC;QACjC,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;IAC7B,CAAC;IAEO,6BAA6B,CAAC,WAAwB;QAC5D,IAAI,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;QAEhC,IAAI,WAAW,CAAC,YAAY,IAAI,WAAW,CAAC,YAAY,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;YACrE,MAAM,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;SACxC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB;YACpD,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,YAAY;YACjD,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QAEpB,OAAO,MAAM,KAAK,aAAa,CAAC;IAClC,CAAC;CACF;AAliBD,kCAkiBC","file":"event-system.js","sourcesContent":["import { isUndefined, has, isString } from '@visactor/vutils';\nimport type { IGlobal } from '../interface';\nimport { EventManager } from './event-manager';\nimport { FederatedPointerEvent, FederatedWheelEvent } from './federated-event';\nimport type { FederatedMouseEvent } from './federated-event/mouse-event';\nimport type { EventPoint, IElementLike, IEventTarget, NativeEvent, RenderConfig } from '../interface/event';\nimport { clock } from './util';\n\nconst MOUSE_POINTER_ID = 1;\nconst TOUCH_TO_POINTER: Record<string, string> = {\n touchstart: 'pointerdown',\n touchend: 'pointerup',\n touchendoutside: 'pointerupoutside',\n touchmove: 'pointermove',\n touchcancel: 'pointercancel'\n};\n\n/**\n * 代码参考自 https://github.com/pixijs/pixijs\n * The MIT License\n\n Copyright (c) 2013-2023 Mathew Groves, Chad Engler\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n */\n\n/**\n * The system for handling UI events.\n */\nexport class EventSystem {\n private readonly globalObj: IGlobal;\n readonly manager: EventManager;\n\n /** Does the device support touch events https://www.w3.org/TR/touch-events/ */\n // readonly supportsTouchEvents = 'ontouchstart' in this.globalObj;\n readonly supportsTouchEvents: boolean;\n\n /** Does the device support pointer events https://www.w3.org/Submission/pointer-events/ */\n // readonly supportsPointerEvents = !!this.globalObj.PointerEvent;\n readonly supportsPointerEvents: boolean;\n\n readonly supportsMouseEvents: boolean;\n\n readonly applyStyles: boolean;\n\n readonly viewport: RenderConfig['viewport'];\n\n /**\n * Should default browser actions automatically be prevented.\n * Does not apply to pointer events for backwards compatibility\n * preventDefault on pointer events stops mouse events from firing\n * Thus, for every pointer event, there will always be either a mouse of touch event alongside it.\n * @default false\n */\n autoPreventDefault: boolean;\n\n /**\n * Dictionary of how different cursor modes are handled. Strings are handled as CSS cursor\n * values, objects are handled as dictionaries of CSS values for domElement,\n * and functions are called instead of changing the CSS.\n * Default CSS cursor values are provided for 'default' and 'pointer' modes.\n * @member {Object<string, string | ((mode: string) => void) | CSSStyleDeclaration>}\n */\n cursorStyles: Record<string, string | ((mode: string) => void) | CSSStyleDeclaration>;\n\n /**\n * The DOM element to which the root event listeners are bound. This is automatically set to\n */\n domElement: IElementLike | null;\n\n /** The resolution used to convert between the DOM client space into world space. */\n resolution = 1;\n\n private currentCursor: string;\n private rootPointerEvent: FederatedPointerEvent;\n private rootWheelEvent: FederatedWheelEvent;\n private eventsAdded: boolean;\n\n constructor(params: RenderConfig) {\n const {\n targetElement,\n resolution,\n rootNode,\n global,\n viewport,\n autoPreventDefault = false,\n clickInterval,\n supportsTouchEvents = global.supportsTouchEvents,\n supportsPointerEvents = global.supportsPointerEvents\n } = params;\n this.manager = new EventManager(rootNode, {\n clickInterval\n });\n\n this.globalObj = global;\n this.supportsPointerEvents = supportsPointerEvents;\n this.supportsTouchEvents = supportsTouchEvents;\n this.supportsMouseEvents = global.supportsMouseEvents;\n this.applyStyles = global.applyStyles;\n\n this.autoPreventDefault = autoPreventDefault;\n this.eventsAdded = false;\n this.viewport = viewport;\n\n this.rootPointerEvent = new FederatedPointerEvent();\n this.rootWheelEvent = new FederatedWheelEvent();\n\n this.cursorStyles = {\n default: 'inherit',\n pointer: 'pointer'\n };\n\n this.resolution = resolution;\n this.setTargetElement(targetElement);\n }\n\n release(): void {\n this.setTargetElement(null);\n }\n\n setCursor(mode: string, target: IEventTarget | null | 'ignore'): void {\n if (!target && !(this.manager.rootTarget as any).window._handler.canvas.controled) {\n return;\n }\n\n if (!mode) {\n mode = 'default';\n }\n const { applyStyles, domElement } = this;\n\n if (this.currentCursor === mode) {\n return;\n }\n this.currentCursor = mode;\n const style = this.cursorStyles[mode];\n if (style) {\n if (typeof style === 'string' && applyStyles) {\n domElement.style.cursor = style;\n } else if (typeof style === 'function') {\n style(mode);\n } else if (typeof style === 'object' && applyStyles) {\n Object.assign(domElement.style, style);\n }\n } else if (applyStyles && isString(mode) && !has(this.cursorStyles, mode)) {\n domElement.style.cursor = mode;\n }\n }\n\n private onPointerDown = (nativeEvent: NativeEvent): void => {\n if (this.supportsTouchEvents && (nativeEvent as PointerEvent).pointerType === 'touch') {\n return;\n }\n\n const events = this.normalizeToPointerData(nativeEvent);\n\n if (this.autoPreventDefault && (events[0] as any).isNormalized) {\n const cancelable = nativeEvent.cancelable || !('cancelable' in nativeEvent);\n\n if (cancelable) {\n nativeEvent.preventDefault();\n }\n }\n\n for (let i = 0, j = events.length; i < j; i++) {\n const nativeEvent = events[i];\n const federatedEvent = this.bootstrapEvent(this.rootPointerEvent, nativeEvent);\n\n this.manager.mapEvent(federatedEvent);\n }\n\n this.setCursor(this.manager.cursor, this.manager.cursorTarget);\n };\n\n private onPointerMove = (nativeEvent: NativeEvent): void => {\n if (this.supportsTouchEvents && (nativeEvent as PointerEvent).pointerType === 'touch') {\n return;\n }\n\n if (this.isEventOutsideOfTargetElement(nativeEvent)) {\n return;\n }\n\n const normalizedEvents = this.normalizeToPointerData(nativeEvent);\n for (let i = 0, j = normalizedEvents.length; i < j; i++) {\n const event = this.bootstrapEvent(this.rootPointerEvent, normalizedEvents[i]);\n\n this.manager.mapEvent(event);\n }\n\n this.setCursor(this.manager.cursor, this.manager.cursorTarget);\n };\n\n private onPointerUp = (nativeEvent: NativeEvent): void => {\n if (this.supportsTouchEvents && (nativeEvent as PointerEvent).pointerType === 'touch') {\n return;\n }\n\n const outside = this.isEventOutsideOfTargetElement(nativeEvent) ? 'outside' : '';\n const normalizedEvents = this.normalizeToPointerData(nativeEvent);\n\n for (let i = 0, j = normalizedEvents.length; i < j; i++) {\n const event = this.bootstrapEvent(this.rootPointerEvent, normalizedEvents[i]);\n\n event.type += outside;\n\n this.manager.mapEvent(event);\n }\n\n this.setCursor(this.manager.cursor, this.manager.cursorTarget);\n };\n\n private onPointerOverOut = (nativeEvent: NativeEvent): void => {\n if (this.supportsTouchEvents && (nativeEvent as PointerEvent).pointerType === 'touch') {\n return;\n }\n\n const normalizedEvents = this.normalizeToPointerData(nativeEvent);\n\n for (let i = 0, j = normalizedEvents.length; i < j; i++) {\n const event = this.bootstrapEvent(this.rootPointerEvent, normalizedEvents[i]);\n\n this.manager.mapEvent(event);\n }\n\n this.setCursor(this.manager.cursor, this.manager.cursorTarget);\n };\n\n protected onWheel = (nativeEvent: WheelEvent): void => {\n const wheelEvent = this.normalizeWheelEvent(nativeEvent);\n\n this.manager.mapEvent(wheelEvent);\n };\n\n setTargetElement(element: IElementLike | null): void {\n this.removeEvents();\n this.domElement = element;\n this.addEvents();\n }\n\n private addEvents(): void {\n if (this.eventsAdded || !this.domElement) {\n return;\n }\n const { globalObj, domElement } = this;\n\n if (this.supportsPointerEvents) {\n if (globalObj.getDocument()) {\n globalObj.getDocument().addEventListener('pointermove', this.onPointerMove, true);\n globalObj.getDocument().addEventListener('pointerup', this.onPointerUp, true);\n } else {\n domElement.addEventListener('pointermove', this.onPointerMove, true);\n domElement.addEventListener('pointerup', this.onPointerUp, true);\n }\n domElement.addEventListener('pointerdown', this.onPointerDown, true);\n domElement.addEventListener('pointerleave', this.onPointerOverOut, true);\n domElement.addEventListener('pointerover', this.onPointerOverOut, true);\n } else {\n if (globalObj.getDocument()) {\n globalObj.getDocument().addEventListener('mousemove', this.onPointerMove, true);\n globalObj.getDocument().addEventListener('mouseup', this.onPointerUp, true);\n } else {\n domElement.addEventListener('mousemove', this.onPointerMove, true);\n domElement.addEventListener('mouseup', this.onPointerUp, true);\n }\n domElement.addEventListener('mousedown', this.onPointerDown, true);\n domElement.addEventListener('mouseout', this.onPointerOverOut, true);\n domElement.addEventListener('mouseover', this.onPointerOverOut, true);\n }\n\n if (this.supportsTouchEvents) {\n domElement.addEventListener('touchstart', this.onPointerDown, true);\n domElement.addEventListener('touchend', this.onPointerUp, true);\n domElement.addEventListener('touchmove', this.onPointerMove, true);\n }\n\n domElement.addEventListener('wheel', this.onWheel, {\n capture: true\n });\n\n this.eventsAdded = true;\n }\n\n private removeEvents(): void {\n if (!this.eventsAdded || !this.domElement) {\n return;\n }\n const { globalObj, domElement } = this;\n\n if (this.supportsPointerEvents) {\n if (globalObj.getDocument()) {\n globalObj.getDocument().removeEventListener('pointermove', this.onPointerMove, true);\n globalObj.getDocument().removeEventListener('pointerup', this.onPointerUp, true);\n } else {\n domElement.removeEventListener('pointermove', this.onPointerMove, true);\n domElement.removeEventListener('pointerup', this.onPointerUp, true);\n }\n domElement.removeEventListener('pointerdown', this.onPointerDown, true);\n domElement.removeEventListener('pointerleave', this.onPointerOverOut, true);\n domElement.removeEventListener('pointerover', this.onPointerOverOut, true);\n } else {\n if (globalObj.getDocument()) {\n globalObj.getDocument().removeEventListener('mousemove', this.onPointerMove, true);\n globalObj.getDocument().removeEventListener('mouseup', this.onPointerUp, true);\n } else {\n domElement.removeEventListener('mousemove', this.onPointerMove, true);\n domElement.removeEventListener('mouseup', this.onPointerUp, true);\n }\n domElement.removeEventListener('mousedown', this.onPointerDown, true);\n domElement.removeEventListener('mouseout', this.onPointerOverOut, true);\n domElement.removeEventListener('mouseover', this.onPointerOverOut, true);\n }\n\n if (this.supportsTouchEvents) {\n domElement.removeEventListener('touchstart', this.onPointerDown, true);\n domElement.removeEventListener('touchend', this.onPointerUp, true);\n domElement.removeEventListener('touchmove', this.onPointerMove, true);\n }\n\n domElement.removeEventListener('wheel', this.onWheel, true);\n\n this.domElement = null;\n this.eventsAdded = false;\n }\n\n private mapToViewportPoint(event: FederatedMouseEvent): EventPoint {\n const viewport = this.viewport;\n const { x, y } = event;\n return {\n x: x - viewport.x,\n y: y - viewport.y\n };\n }\n\n private mapToCanvasPoint(nativeEvent: PointerEvent | WheelEvent): EventPoint {\n const point = this.globalObj?.mapToCanvasPoint(nativeEvent, this.domElement);\n\n if (point) {\n return point;\n }\n\n const { clientX: x, clientY: y } = nativeEvent;\n const rect = this.domElement.getBoundingClientRect();\n return {\n x: x - rect.left,\n y: y - rect.top\n };\n }\n\n private normalizeToPointerData(event: TouchEvent | MouseEvent | PointerEvent): PointerEvent[] {\n const normalizedEvents = [];\n\n if (\n this.supportsTouchEvents &&\n (event as TouchEvent).changedTouches &&\n (event as TouchEvent).changedTouches.length\n ) {\n for (let i = 0, li = (event as TouchEvent).changedTouches.length; i < li; i++) {\n const touch = (event as TouchEvent).changedTouches[i] as VRenderTouch;\n\n if (isUndefined(touch.button)) {\n touch.button = 0;\n }\n if (isUndefined(touch.buttons)) {\n touch.buttons = 1;\n }\n if (isUndefined(touch.isPrimary)) {\n touch.isPrimary = (event as TouchEvent).touches.length === 1 && event.type === 'touchstart';\n }\n if (isUndefined(touch.width)) {\n touch.width = touch.radiusX || 1;\n }\n if (isUndefined(touch.height)) {\n touch.height = touch.radiusY || 1;\n }\n if (isUndefined(touch.tiltX)) {\n touch.tiltX = 0;\n }\n if (isUndefined(touch.tiltY)) {\n touch.tiltY = 0;\n }\n if (isUndefined(touch.pointerType)) {\n touch.pointerType = 'touch';\n }\n if (isUndefined(touch.pointerId)) {\n touch.pointerId = touch.identifier || 0;\n }\n if (isUndefined(touch.pressure)) {\n touch.pressure = touch.force || 0.5;\n }\n if (isUndefined(touch.twist)) {\n touch.twist = 0;\n }\n if (isUndefined(touch.tangentialPressure)) {\n touch.tangentialPressure = 0;\n }\n if (isUndefined(touch.layerX)) {\n touch.layerX = touch.offsetX = touch.clientX;\n }\n if (isUndefined(touch.layerY)) {\n touch.layerY = touch.offsetY = touch.clientY;\n }\n\n touch.isNormalized = true;\n touch.type = event.type;\n\n normalizedEvents.push(touch);\n }\n } else if (\n !this.globalObj.supportsMouseEvents ||\n (event instanceof MouseEvent && (!this.supportsPointerEvents || !(event instanceof PointerEvent)))\n ) {\n const tempEvent = event as VRenderPointerEvent;\n\n if (isUndefined(tempEvent.isPrimary)) {\n tempEvent.isPrimary = true;\n }\n if (isUndefined(tempEvent.width)) {\n tempEvent.width = 1;\n }\n if (isUndefined(tempEvent.height)) {\n tempEvent.height = 1;\n }\n if (isUndefined(tempEvent.tiltX)) {\n tempEvent.tiltX = 0;\n }\n if (isUndefined(tempEvent.tiltY)) {\n tempEvent.tiltY = 0;\n }\n if (isUndefined(tempEvent.pointerType)) {\n tempEvent.pointerType = 'mouse';\n }\n if (isUndefined(tempEvent.pointerId)) {\n tempEvent.pointerId = MOUSE_POINTER_ID;\n }\n if (isUndefined(tempEvent.pressure)) {\n tempEvent.pressure = 0.5;\n }\n if (isUndefined(tempEvent.twist)) {\n tempEvent.twist = 0;\n }\n if (isUndefined(tempEvent.tangentialPressure)) {\n tempEvent.tangentialPressure = 0;\n }\n\n tempEvent.isNormalized = true;\n\n normalizedEvents.push(tempEvent);\n } else {\n normalizedEvents.push(event);\n }\n\n return normalizedEvents as PointerEvent[];\n }\n\n protected normalizeWheelEvent(nativeEvent: WheelEvent): FederatedWheelEvent {\n const event = this.rootWheelEvent;\n\n this.transferMouseData(event, nativeEvent);\n\n event.deltaMode = nativeEvent.deltaMode;\n event.deltaX = nativeEvent.deltaX;\n event.deltaY = nativeEvent.deltaY;\n event.deltaZ = nativeEvent.deltaZ;\n\n // 获取相对画布坐标\n const { x: canvasX, y: canvasY } = this.mapToCanvasPoint(nativeEvent);\n event.canvas.x = canvasX;\n event.canvas.y = canvasY;\n\n event.global.x = canvasX;\n event.global.y = canvasY;\n\n event.offset.x = canvasX;\n event.offset.y = canvasY;\n\n // 获取相对绘图区域(viewport)坐标\n const { x: viewX, y: viewY } = this.mapToViewportPoint(event);\n event.viewport.x = viewX;\n event.viewport.y = viewY;\n\n event.nativeEvent = nativeEvent;\n event.type = nativeEvent.type;\n\n return event;\n }\n\n /**\n * Normalizes the {@code nativeEvent} into a federateed {@code FederatedPointerEvent}.\n * @param event\n * @param nativeEvent\n */\n private bootstrapEvent(event: FederatedPointerEvent, nativeEvent: PointerEvent): FederatedPointerEvent {\n event.originalEvent = null;\n event.nativeEvent = nativeEvent;\n\n event.pointerId = nativeEvent.pointerId;\n event.width = nativeEvent.width;\n event.height = nativeEvent.height;\n event.isPrimary = nativeEvent.isPrimary;\n event.pointerType = nativeEvent.pointerType;\n event.pressure = nativeEvent.pressure;\n event.tangentialPressure = nativeEvent.tangentialPressure;\n event.tiltX = nativeEvent.tiltX;\n event.tiltY = nativeEvent.tiltY;\n event.twist = nativeEvent.twist;\n this.transferMouseData(event, nativeEvent);\n\n const { x: canvasX, y: canvasY } = this.mapToCanvasPoint(nativeEvent);\n event.canvas.x = canvasX;\n event.canvas.y = canvasY;\n\n event.global.x = canvasX;\n event.global.y = canvasY;\n\n event.offset.x = canvasX;\n event.offset.y = canvasY;\n\n // 获取相对绘图区域(viewport)坐标\n const { x: viewX, y: viewY } = this.mapToViewportPoint(event);\n event.viewport.x = viewX;\n event.viewport.y = viewY;\n\n event.isTrusted = nativeEvent.isTrusted;\n if (event.type === 'pointerleave') {\n event.type = 'pointerout';\n }\n if (event.type.startsWith('mouse')) {\n event.type = event.type.replace('mouse', 'pointer');\n }\n if (event.type.startsWith('touch')) {\n event.type = TOUCH_TO_POINTER[event.type] || event.type;\n }\n\n return event;\n }\n\n /**\n * Transfers base & mouse event data from the {@code nativeEvent} to the federated event.\n * @param event\n * @param nativeEvent\n */\n private transferMouseData(event: FederatedMouseEvent, nativeEvent: MouseEvent): void {\n event.isTrusted = nativeEvent.isTrusted;\n event.srcElement = nativeEvent.srcElement as IEventTarget;\n event.timeStamp = clock.now();\n event.type = nativeEvent.type;\n\n event.altKey = nativeEvent.altKey;\n event.button = nativeEvent.button;\n event.buttons = nativeEvent.buttons;\n event.client.x = nativeEvent.clientX;\n event.client.y = nativeEvent.clientY;\n event.ctrlKey = nativeEvent.ctrlKey;\n event.shiftKey = nativeEvent.shiftKey;\n event.metaKey = nativeEvent.metaKey;\n event.movement.x = nativeEvent.movementX;\n event.movement.y = nativeEvent.movementY;\n event.page.x = nativeEvent.pageX;\n event.page.y = nativeEvent.pageY;\n event.relatedTarget = null;\n }\n\n private isEventOutsideOfTargetElement(nativeEvent: NativeEvent) {\n let target = nativeEvent.target;\n\n if (nativeEvent.composedPath && nativeEvent.composedPath().length > 0) {\n target = nativeEvent.composedPath()[0];\n }\n\n const nativeElement = this.domElement.getNativeHandler\n ? this.domElement.getNativeHandler().nativeCanvas\n : this.domElement;\n\n return target !== nativeElement;\n }\n}\n\ninterface VRenderPointerEvent extends PointerEvent {\n isPrimary: boolean;\n width: number;\n height: number;\n tiltX: number;\n tiltY: number;\n pointerType: string;\n pointerId: number;\n pressure: number;\n twist: number;\n tangentialPressure: number;\n isNormalized: boolean;\n type: string;\n}\n\ninterface VRenderTouch extends Touch {\n button: number;\n buttons: number;\n isPrimary: boolean;\n width: number;\n height: number;\n tiltX: number;\n tiltY: number;\n pointerType: string;\n pointerId: number;\n pressure: number;\n twist: number;\n tangentialPressure: number;\n layerX: number;\n layerY: number;\n offsetX: number;\n offsetY: number;\n isNormalized: boolean;\n type: string;\n}\n"]}
|
package/cjs/graphic/arc.js
CHANGED
|
@@ -79,7 +79,7 @@ class Arc extends graphic_1.Graphic {
|
|
|
79
79
|
}
|
|
80
80
|
doUpdateAABBBounds(full) {
|
|
81
81
|
const arcTheme = (0, theme_1.getTheme)(this).arc;
|
|
82
|
-
this._AABBBounds.
|
|
82
|
+
this._AABBBounds.clear();
|
|
83
83
|
const attribute = this.attribute, bounds = application_1.application.graphicService.updateArcAABBBounds(attribute, (0,
|
|
84
84
|
theme_1.getTheme)(this).arc, this._AABBBounds, full, this), {boundsPadding: boundsPadding = arcTheme.boundsPadding} = attribute, paddingArray = (0,
|
|
85
85
|
utils_1.parsePadding)(boundsPadding);
|
package/cjs/graphic/arc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graphic/arc.ts"],"names":[],"mappings":"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","file":"arc.js","sourcesContent":["import type { AABBBounds, OBBBounds } from '@visactor/vutils';\nimport { pi2, sin, epsilon, abs, asin, clampAngleByRadian, isNumber, cos, sqrt } from '@visactor/vutils';\nimport type { IArc, IArcGraphicAttribute } from '../interface/graphic/arc';\nimport { Graphic, GRAPHIC_UPDATE_TAG_KEY, NOWORK_ANIMATE_ATTR } from './graphic';\nimport { CustomPath2D } from '../common/custom-path2d';\nimport { parsePadding } from '../common/utils';\nimport { getTheme } from './theme';\nimport { application } from '../application';\nimport type { GraphicType } from '../interface';\nimport { ARC_NUMBER_TYPE } from './constants';\n\n/**\n * 部分代码参考 https://github.com/d3/d3-shape/\n * Copyright 2010-2022 Mike Bostock\n\n Permission to use, copy, modify, and/or distribute this software for any purpose\n with or without fee is hereby granted, provided that the above copyright notice\n and this permission notice appear in all copies.\n\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\n OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\n THIS SOFTWARE.\n */\n\nconst ARC_UPDATE_TAG_KEY = [\n 'innerRadius',\n 'outerRadius',\n 'startAngle',\n 'endAngle',\n 'cornerRadius',\n 'padAngle',\n 'padRadius',\n 'cap',\n ...GRAPHIC_UPDATE_TAG_KEY\n];\n\n/**\n * 圆形图元\n * 默认顺时针绘制\n */\nexport class Arc extends Graphic<IArcGraphicAttribute> implements IArc {\n type: GraphicType = 'arc';\n\n static NOWORK_ANIMATE_ATTR = {\n cap: 1,\n ...NOWORK_ANIMATE_ATTR\n };\n\n // static parseCornerRadius(r: IArcGraphicAttribute['cornerRadius']) {\n // if (isArray(r)) {\n // if ((r as any[]).length === 1) {\n // const value = r[0];\n // return [value, value, value, value];\n // }\n\n // if ((r as any[]).length === 2) {\n // return [r[0], r[0], r[1], r[1]];\n // }\n\n // if ((r as any[]).length === 3) {\n // return [r[0], r[1], r[2], 0];\n // }\n\n // return (r as any[]).slice(0, 4);\n // }\n\n // return [r as string | number, r as string | number, r as string | number, r as string | number];\n // }\n\n // static isCornerRadiusEqual(oldR: IArcGraphicAttribute['cornerRadius'], newR: IArcGraphicAttribute['cornerRadius']) {\n // throw new Error('暂不支持');\n // if (oldR === newR) {\n // return true;\n // }\n\n // if (isArray(oldR) && !isArray(newR)) {\n // return (oldR as (string | number)[]).every(r => r === newR);\n // }\n\n // if (!isArray(oldR) && isArray(newR)) {\n // return (newR as (string | number)[]).every(r => r === oldR);\n // }\n\n // return arrayEqual(oldR as (string | number)[], newR as (string | number)[]);\n // }\n\n constructor(params: IArcGraphicAttribute) {\n super(params);\n this.numberType = ARC_NUMBER_TYPE;\n }\n\n isValid(): boolean {\n return super.isValid() && this._isValid();\n }\n private _isValid(): boolean {\n const { startAngle, endAngle, outerRadius, innerRadius } = this.attribute;\n return (\n this._validNumber(startAngle) &&\n this._validNumber(endAngle) &&\n this._validNumber(outerRadius) &&\n this._validNumber(innerRadius)\n );\n }\n\n getParsedCornerRadius() {\n const arcTheme = getTheme(this).arc;\n const {\n cornerRadius = arcTheme.cornerRadius,\n outerRadius = arcTheme.outerRadius,\n innerRadius = arcTheme.innerRadius\n } = this.attribute;\n if (cornerRadius === 0 || cornerRadius === '0%') {\n return 0;\n }\n const deltaRadius = Math.abs(outerRadius - innerRadius);\n return Math.min(\n isNumber(cornerRadius, true)\n ? (cornerRadius as number)\n : (deltaRadius * parseFloat(cornerRadius as string)) / 100,\n deltaRadius / 2\n );\n }\n\n getParsedAngle() {\n const arcTheme = getTheme(this).arc;\n let { startAngle = arcTheme.startAngle, endAngle = arcTheme.endAngle } = this.attribute;\n const { cap = arcTheme.cap } = this.attribute;\n\n const sign = endAngle - startAngle >= 0 ? 1 : -1;\n const deltaAngle = endAngle - startAngle;\n\n startAngle = clampAngleByRadian(startAngle);\n endAngle = startAngle + deltaAngle;\n\n if (cap && abs(deltaAngle) < pi2 - epsilon) {\n let startCap = 1;\n let endCap = 1;\n if ((cap as boolean[]).length) {\n startCap = Number(cap[0]);\n endCap = Number(cap[1]);\n }\n const { outerRadius = arcTheme.outerRadius, innerRadius = arcTheme.innerRadius } = this.attribute;\n const capWidth = Math.abs(outerRadius - innerRadius) / 2;\n // 以外边界长度为准\n const capAngle = capWidth / outerRadius;\n\n if (capWidth > epsilon && outerRadius > epsilon) {\n return {\n startAngle: startAngle - sign * capAngle * startCap,\n endAngle: endAngle + sign * capAngle * endCap,\n sc: sign * capAngle * startCap,\n ec: sign * capAngle * endCap\n };\n }\n }\n\n return {\n startAngle: startAngle,\n endAngle: endAngle\n };\n }\n\n // 参考 https://github.com/d3/d3-shape/blob/main/src/arc.js\n getParsePadAngle(startAngle: number, endAngle: number) {\n const arcTheme = getTheme(this).arc;\n const {\n outerRadius = arcTheme.outerRadius,\n innerRadius = arcTheme.innerRadius,\n padAngle = arcTheme.padAngle\n } = this.attribute;\n\n const { padRadius = sqrt(outerRadius * outerRadius + innerRadius * innerRadius) } = this.attribute;\n const deltaAngle = abs(endAngle - startAngle);\n\n // Or is it a circular or annular sector?\n let outerStartAngle = startAngle;\n let outerEndAngle = endAngle;\n let innerStartAngle = startAngle;\n let innerEndAngle = endAngle;\n const halfPadAngle = padAngle / 2;\n let innerDeltaAngle = deltaAngle;\n let outerDeltaAngle = deltaAngle;\n\n // Apply padding? Note that since r1 ≥ r0, outerDeltaAngle ≥ innerDeltaAngle.\n if (halfPadAngle > epsilon && padRadius > epsilon) {\n const sign = endAngle > startAngle ? 1 : -1;\n\n let p0 = asin((Number(padRadius) / innerRadius) * sin(halfPadAngle));\n let p1 = asin((Number(padRadius) / outerRadius) * sin(halfPadAngle));\n if ((innerDeltaAngle -= p0 * 2) > epsilon) {\n p0 *= sign;\n innerStartAngle += p0;\n innerEndAngle -= p0;\n } else {\n innerDeltaAngle = 0;\n innerStartAngle = innerEndAngle = (startAngle + endAngle) / 2;\n }\n if ((outerDeltaAngle -= p1 * 2) > epsilon) {\n p1 *= sign;\n outerStartAngle += p1;\n outerEndAngle -= p1;\n } else {\n outerDeltaAngle = 0;\n outerStartAngle = outerEndAngle = (startAngle + endAngle) / 2;\n }\n\n return {\n outerStartAngle,\n outerEndAngle,\n innerStartAngle,\n innerEndAngle,\n innerDeltaAngle,\n outerDeltaAngle\n };\n }\n\n return {\n outerStartAngle,\n outerEndAngle,\n innerStartAngle,\n innerEndAngle,\n innerDeltaAngle,\n outerDeltaAngle\n };\n }\n\n protected doUpdateAABBBounds(full?: boolean): AABBBounds {\n const arcTheme = getTheme(this).arc;\n this._AABBBounds.setValue(Infinity, Infinity, -Infinity, -Infinity);\n const attribute = this.attribute;\n const bounds = application.graphicService.updateArcAABBBounds(\n attribute,\n getTheme(this).arc,\n this._AABBBounds,\n full,\n this\n ) as AABBBounds;\n\n const { boundsPadding = arcTheme.boundsPadding } = attribute;\n const paddingArray = parsePadding(boundsPadding);\n if (paddingArray) {\n bounds.expand(paddingArray);\n }\n this.clearUpdateBoundTag();\n return bounds;\n }\n\n protected tryUpdateOBBBounds(): OBBBounds {\n throw new Error('暂不支持');\n }\n\n protected needUpdateTags(keys: string[]): boolean {\n return super.needUpdateTags(keys, ARC_UPDATE_TAG_KEY);\n }\n protected needUpdateTag(key: string): boolean {\n return super.needUpdateTag(key, ARC_UPDATE_TAG_KEY);\n }\n\n getDefaultAttribute(name: string) {\n const arcTheme = getTheme(this).arc;\n return arcTheme[name];\n }\n\n toCustomPath() {\n const x = 0;\n const y = 0;\n\n const attribute = this.attribute;\n const { startAngle, endAngle } = this.getParsedAngle();\n let innerRadius = attribute.innerRadius;\n let outerRadius = attribute.outerRadius;\n const deltaAngle = abs(endAngle - startAngle);\n const clockwise: boolean = endAngle > startAngle;\n\n if (outerRadius < innerRadius) {\n const temp = outerRadius;\n outerRadius = innerRadius;\n innerRadius = temp;\n }\n\n const path = new CustomPath2D();\n\n if (outerRadius <= epsilon) {\n path.moveTo(x, y);\n } else if (deltaAngle >= pi2 - epsilon) {\n // 是个完整的圆环\n // Or is it a circle or annulus?\n path.moveTo(x + outerRadius * cos(startAngle), y + outerRadius * sin(startAngle));\n path.arc(x, y, outerRadius, startAngle, endAngle, !clockwise);\n if (innerRadius > epsilon) {\n path.moveTo(x + innerRadius * cos(endAngle), y + innerRadius * sin(endAngle));\n path.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n }\n } else {\n const xors = outerRadius * cos(startAngle);\n const yors = outerRadius * sin(startAngle);\n const xire = innerRadius * cos(endAngle);\n const yire = innerRadius * sin(endAngle);\n\n path.moveTo(x + xors, y + yors);\n path.arc(x, y, outerRadius, startAngle, endAngle, !clockwise);\n path.lineTo(x + xire, y + yire);\n path.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n path.closePath();\n }\n\n return path;\n }\n\n clone() {\n return new Arc({ ...this.attribute });\n }\n\n getNoWorkAnimateAttr(): Record<string, number> {\n return Arc.NOWORK_ANIMATE_ATTR;\n }\n}\n\nexport function createArc(attributes: IArcGraphicAttribute): IArc {\n return new Arc(attributes);\n}\n\n// addAttributeToPrototype(DefaultCircleStyle, Circle, PURE_STYLE_KEY);\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/graphic/arc.ts"],"names":[],"mappings":"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","file":"arc.js","sourcesContent":["import type { AABBBounds, OBBBounds } from '@visactor/vutils';\nimport { pi2, sin, epsilon, abs, asin, clampAngleByRadian, isNumber, cos, sqrt } from '@visactor/vutils';\nimport type { IArc, IArcGraphicAttribute } from '../interface/graphic/arc';\nimport { Graphic, GRAPHIC_UPDATE_TAG_KEY, NOWORK_ANIMATE_ATTR } from './graphic';\nimport { CustomPath2D } from '../common/custom-path2d';\nimport { parsePadding } from '../common/utils';\nimport { getTheme } from './theme';\nimport { application } from '../application';\nimport type { GraphicType } from '../interface';\nimport { ARC_NUMBER_TYPE } from './constants';\n\n/**\n * 部分代码参考 https://github.com/d3/d3-shape/\n * Copyright 2010-2022 Mike Bostock\n\n Permission to use, copy, modify, and/or distribute this software for any purpose\n with or without fee is hereby granted, provided that the above copyright notice\n and this permission notice appear in all copies.\n\n THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\n FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\n OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\n THIS SOFTWARE.\n */\n\nconst ARC_UPDATE_TAG_KEY = [\n 'innerRadius',\n 'outerRadius',\n 'startAngle',\n 'endAngle',\n 'cornerRadius',\n 'padAngle',\n 'padRadius',\n 'cap',\n ...GRAPHIC_UPDATE_TAG_KEY\n];\n\n/**\n * 圆形图元\n * 默认顺时针绘制\n */\nexport class Arc extends Graphic<IArcGraphicAttribute> implements IArc {\n type: GraphicType = 'arc';\n\n static NOWORK_ANIMATE_ATTR = {\n cap: 1,\n ...NOWORK_ANIMATE_ATTR\n };\n\n // static parseCornerRadius(r: IArcGraphicAttribute['cornerRadius']) {\n // if (isArray(r)) {\n // if ((r as any[]).length === 1) {\n // const value = r[0];\n // return [value, value, value, value];\n // }\n\n // if ((r as any[]).length === 2) {\n // return [r[0], r[0], r[1], r[1]];\n // }\n\n // if ((r as any[]).length === 3) {\n // return [r[0], r[1], r[2], 0];\n // }\n\n // return (r as any[]).slice(0, 4);\n // }\n\n // return [r as string | number, r as string | number, r as string | number, r as string | number];\n // }\n\n // static isCornerRadiusEqual(oldR: IArcGraphicAttribute['cornerRadius'], newR: IArcGraphicAttribute['cornerRadius']) {\n // throw new Error('暂不支持');\n // if (oldR === newR) {\n // return true;\n // }\n\n // if (isArray(oldR) && !isArray(newR)) {\n // return (oldR as (string | number)[]).every(r => r === newR);\n // }\n\n // if (!isArray(oldR) && isArray(newR)) {\n // return (newR as (string | number)[]).every(r => r === oldR);\n // }\n\n // return arrayEqual(oldR as (string | number)[], newR as (string | number)[]);\n // }\n\n constructor(params: IArcGraphicAttribute) {\n super(params);\n this.numberType = ARC_NUMBER_TYPE;\n }\n\n isValid(): boolean {\n return super.isValid() && this._isValid();\n }\n private _isValid(): boolean {\n const { startAngle, endAngle, outerRadius, innerRadius } = this.attribute;\n return (\n this._validNumber(startAngle) &&\n this._validNumber(endAngle) &&\n this._validNumber(outerRadius) &&\n this._validNumber(innerRadius)\n );\n }\n\n getParsedCornerRadius() {\n const arcTheme = getTheme(this).arc;\n const {\n cornerRadius = arcTheme.cornerRadius,\n outerRadius = arcTheme.outerRadius,\n innerRadius = arcTheme.innerRadius\n } = this.attribute;\n if (cornerRadius === 0 || cornerRadius === '0%') {\n return 0;\n }\n const deltaRadius = Math.abs(outerRadius - innerRadius);\n return Math.min(\n isNumber(cornerRadius, true)\n ? (cornerRadius as number)\n : (deltaRadius * parseFloat(cornerRadius as string)) / 100,\n deltaRadius / 2\n );\n }\n\n getParsedAngle() {\n const arcTheme = getTheme(this).arc;\n let { startAngle = arcTheme.startAngle, endAngle = arcTheme.endAngle } = this.attribute;\n const { cap = arcTheme.cap } = this.attribute;\n\n const sign = endAngle - startAngle >= 0 ? 1 : -1;\n const deltaAngle = endAngle - startAngle;\n\n startAngle = clampAngleByRadian(startAngle);\n endAngle = startAngle + deltaAngle;\n\n if (cap && abs(deltaAngle) < pi2 - epsilon) {\n let startCap = 1;\n let endCap = 1;\n if ((cap as boolean[]).length) {\n startCap = Number(cap[0]);\n endCap = Number(cap[1]);\n }\n const { outerRadius = arcTheme.outerRadius, innerRadius = arcTheme.innerRadius } = this.attribute;\n const capWidth = Math.abs(outerRadius - innerRadius) / 2;\n // 以外边界长度为准\n const capAngle = capWidth / outerRadius;\n\n if (capWidth > epsilon && outerRadius > epsilon) {\n return {\n startAngle: startAngle - sign * capAngle * startCap,\n endAngle: endAngle + sign * capAngle * endCap,\n sc: sign * capAngle * startCap,\n ec: sign * capAngle * endCap\n };\n }\n }\n\n return {\n startAngle: startAngle,\n endAngle: endAngle\n };\n }\n\n // 参考 https://github.com/d3/d3-shape/blob/main/src/arc.js\n getParsePadAngle(startAngle: number, endAngle: number) {\n const arcTheme = getTheme(this).arc;\n const {\n outerRadius = arcTheme.outerRadius,\n innerRadius = arcTheme.innerRadius,\n padAngle = arcTheme.padAngle\n } = this.attribute;\n\n const { padRadius = sqrt(outerRadius * outerRadius + innerRadius * innerRadius) } = this.attribute;\n const deltaAngle = abs(endAngle - startAngle);\n\n // Or is it a circular or annular sector?\n let outerStartAngle = startAngle;\n let outerEndAngle = endAngle;\n let innerStartAngle = startAngle;\n let innerEndAngle = endAngle;\n const halfPadAngle = padAngle / 2;\n let innerDeltaAngle = deltaAngle;\n let outerDeltaAngle = deltaAngle;\n\n // Apply padding? Note that since r1 ≥ r0, outerDeltaAngle ≥ innerDeltaAngle.\n if (halfPadAngle > epsilon && padRadius > epsilon) {\n const sign = endAngle > startAngle ? 1 : -1;\n\n let p0 = asin((Number(padRadius) / innerRadius) * sin(halfPadAngle));\n let p1 = asin((Number(padRadius) / outerRadius) * sin(halfPadAngle));\n if ((innerDeltaAngle -= p0 * 2) > epsilon) {\n p0 *= sign;\n innerStartAngle += p0;\n innerEndAngle -= p0;\n } else {\n innerDeltaAngle = 0;\n innerStartAngle = innerEndAngle = (startAngle + endAngle) / 2;\n }\n if ((outerDeltaAngle -= p1 * 2) > epsilon) {\n p1 *= sign;\n outerStartAngle += p1;\n outerEndAngle -= p1;\n } else {\n outerDeltaAngle = 0;\n outerStartAngle = outerEndAngle = (startAngle + endAngle) / 2;\n }\n\n return {\n outerStartAngle,\n outerEndAngle,\n innerStartAngle,\n innerEndAngle,\n innerDeltaAngle,\n outerDeltaAngle\n };\n }\n\n return {\n outerStartAngle,\n outerEndAngle,\n innerStartAngle,\n innerEndAngle,\n innerDeltaAngle,\n outerDeltaAngle\n };\n }\n\n protected doUpdateAABBBounds(full?: boolean): AABBBounds {\n const arcTheme = getTheme(this).arc;\n this._AABBBounds.clear();\n const attribute = this.attribute;\n const bounds = application.graphicService.updateArcAABBBounds(\n attribute,\n getTheme(this).arc,\n this._AABBBounds,\n full,\n this\n ) as AABBBounds;\n\n const { boundsPadding = arcTheme.boundsPadding } = attribute;\n const paddingArray = parsePadding(boundsPadding);\n if (paddingArray) {\n bounds.expand(paddingArray);\n }\n this.clearUpdateBoundTag();\n return bounds;\n }\n\n protected tryUpdateOBBBounds(): OBBBounds {\n throw new Error('暂不支持');\n }\n\n protected needUpdateTags(keys: string[]): boolean {\n return super.needUpdateTags(keys, ARC_UPDATE_TAG_KEY);\n }\n protected needUpdateTag(key: string): boolean {\n return super.needUpdateTag(key, ARC_UPDATE_TAG_KEY);\n }\n\n getDefaultAttribute(name: string) {\n const arcTheme = getTheme(this).arc;\n return arcTheme[name];\n }\n\n toCustomPath() {\n const x = 0;\n const y = 0;\n\n const attribute = this.attribute;\n const { startAngle, endAngle } = this.getParsedAngle();\n let innerRadius = attribute.innerRadius;\n let outerRadius = attribute.outerRadius;\n const deltaAngle = abs(endAngle - startAngle);\n const clockwise: boolean = endAngle > startAngle;\n\n if (outerRadius < innerRadius) {\n const temp = outerRadius;\n outerRadius = innerRadius;\n innerRadius = temp;\n }\n\n const path = new CustomPath2D();\n\n if (outerRadius <= epsilon) {\n path.moveTo(x, y);\n } else if (deltaAngle >= pi2 - epsilon) {\n // 是个完整的圆环\n // Or is it a circle or annulus?\n path.moveTo(x + outerRadius * cos(startAngle), y + outerRadius * sin(startAngle));\n path.arc(x, y, outerRadius, startAngle, endAngle, !clockwise);\n if (innerRadius > epsilon) {\n path.moveTo(x + innerRadius * cos(endAngle), y + innerRadius * sin(endAngle));\n path.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n }\n } else {\n const xors = outerRadius * cos(startAngle);\n const yors = outerRadius * sin(startAngle);\n const xire = innerRadius * cos(endAngle);\n const yire = innerRadius * sin(endAngle);\n\n path.moveTo(x + xors, y + yors);\n path.arc(x, y, outerRadius, startAngle, endAngle, !clockwise);\n path.lineTo(x + xire, y + yire);\n path.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n path.closePath();\n }\n\n return path;\n }\n\n clone() {\n return new Arc({ ...this.attribute });\n }\n\n getNoWorkAnimateAttr(): Record<string, number> {\n return Arc.NOWORK_ANIMATE_ATTR;\n }\n}\n\nexport function createArc(attributes: IArcGraphicAttribute): IArc {\n return new Arc(attributes);\n}\n\n// addAttributeToPrototype(DefaultCircleStyle, Circle, PURE_STYLE_KEY);\n"]}
|
package/cjs/graphic/arc3d.js
CHANGED
|
@@ -12,7 +12,7 @@ class Arc3d extends arc_1.Arc {
|
|
|
12
12
|
}
|
|
13
13
|
doUpdateAABBBounds() {
|
|
14
14
|
const polygonTheme = (0, theme_1.getTheme)(this).arc;
|
|
15
|
-
this._AABBBounds.
|
|
15
|
+
this._AABBBounds.clear();
|
|
16
16
|
const attribute = this.attribute, bounds = application_1.application.graphicService.updateArc3dAABBBounds(attribute, (0,
|
|
17
17
|
theme_1.getTheme)(this).polygon, this._AABBBounds, this), {boundsPadding: boundsPadding = polygonTheme.boundsPadding} = attribute, paddingArray = (0,
|
|
18
18
|
utils_1.parsePadding)(boundsPadding);
|
package/cjs/graphic/arc3d.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graphic/arc3d.ts"],"names":[],"mappings":";;;AAEA,+BAA4B;AAC5B,mCAAmC;AACnC,gDAA6C;AAC7C,2CAA+C;AAC/C,2CAAgD;AAChD,uCAAgD;AAEhD,MAAa,KAAM,SAAQ,SAAG;IAS5B,YAAY,MAA8B;QACxC,KAAK,CAAC,MAAM,CAAC,CAAC;QAThB,SAAI,GAAgB,OAAO,CAAC;QAU1B,IAAI,CAAC,UAAU,GAAG,6BAAiB,CAAC;IACtC,CAAC;IAES,kBAAkB;QAC1B,MAAM,YAAY,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC,GAAG,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"sources":["../src/graphic/arc3d.ts"],"names":[],"mappings":";;;AAEA,+BAA4B;AAC5B,mCAAmC;AACnC,gDAA6C;AAC7C,2CAA+C;AAC/C,2CAAgD;AAChD,uCAAgD;AAEhD,MAAa,KAAM,SAAQ,SAAG;IAS5B,YAAY,MAA8B;QACxC,KAAK,CAAC,MAAM,CAAC,CAAC;QAThB,SAAI,GAAgB,OAAO,CAAC;QAU1B,IAAI,CAAC,UAAU,GAAG,6BAAiB,CAAC;IACtC,CAAC;IAES,kBAAkB;QAC1B,MAAM,YAAY,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC,GAAG,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAEzB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,MAAM,MAAM,GAAG,yBAAW,CAAC,cAAc,CAAC,qBAAqB,CAC7D,SAAS,EACT,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC,OAAc,EAC7B,IAAI,CAAC,WAAW,EAChB,IAAI,CACS,CAAC;QAEhB,MAAM,EAAE,aAAa,GAAG,YAAY,CAAC,aAAa,EAAE,GAAG,SAAS,CAAC;QACjE,MAAM,YAAY,GAAG,IAAA,oBAAY,EAAC,aAAa,CAAC,CAAC;QACjD,IAAI,YAAY,EAAE;YAChB,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;SAC7B;QAED,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE3B,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,oBAAoB;QAClB,OAAO,KAAK,CAAC,mBAAmB,CAAC;IACnC,CAAC;;AAvCH,sBAwCC;AApCQ,yBAAmB,mBACxB,GAAG,EAAE,CAAC,IACH,6BAAmB,EACtB;AAmCJ,SAAgB,WAAW,CAAC,UAAkC;IAC5D,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;AAC/B,CAAC;AAFD,kCAEC","file":"arc3d.js","sourcesContent":["import type { AABBBounds } from '@visactor/vutils';\nimport type { GraphicType, IArc3d, IArc3dGraphicAttribute } from '../interface';\nimport { Arc } from './arc';\nimport { getTheme } from './theme';\nimport { application } from '../application';\nimport { parsePadding } from '../common/utils';\nimport { ARC3D_NUMBER_TYPE } from './constants';\nimport { NOWORK_ANIMATE_ATTR } from './graphic';\n\nexport class Arc3d extends Arc implements IArc3d {\n type: GraphicType = 'arc3d';\n declare attribute: IArc3dGraphicAttribute;\n\n static NOWORK_ANIMATE_ATTR = {\n cap: 1,\n ...NOWORK_ANIMATE_ATTR\n };\n\n constructor(params: IArc3dGraphicAttribute) {\n super(params);\n this.numberType = ARC3D_NUMBER_TYPE;\n }\n\n protected doUpdateAABBBounds(): AABBBounds {\n const polygonTheme = getTheme(this).arc;\n this._AABBBounds.clear();\n\n const attribute = this.attribute;\n const bounds = application.graphicService.updateArc3dAABBBounds(\n attribute,\n getTheme(this).polygon as any,\n this._AABBBounds,\n this\n ) as AABBBounds;\n\n const { boundsPadding = polygonTheme.boundsPadding } = attribute;\n const paddingArray = parsePadding(boundsPadding);\n if (paddingArray) {\n bounds.expand(paddingArray);\n }\n\n this.clearUpdateBoundTag();\n\n return this._AABBBounds;\n }\n\n getNoWorkAnimateAttr(): Record<string, number> {\n return Arc3d.NOWORK_ANIMATE_ATTR;\n }\n}\n\nexport function createArc3d(attributes: IArc3dGraphicAttribute): IArc3d {\n return new Arc3d(attributes);\n}\n"]}
|
package/cjs/graphic/area.js
CHANGED
|
@@ -20,7 +20,7 @@ class Area extends graphic_1.Graphic {
|
|
|
20
20
|
}
|
|
21
21
|
doUpdateAABBBounds() {
|
|
22
22
|
const areaTheme = (0, theme_1.getTheme)(this).area;
|
|
23
|
-
this._AABBBounds.
|
|
23
|
+
this._AABBBounds.clear();
|
|
24
24
|
const attribute = this.attribute, bounds = application_1.application.graphicService.updateAreaAABBBounds(attribute, (0,
|
|
25
25
|
theme_1.getTheme)(this).area, this._AABBBounds, this), {boundsPadding: boundsPadding = areaTheme.boundsPadding} = attribute, paddingArray = (0,
|
|
26
26
|
utils_1.parsePadding)(boundsPadding);
|
package/cjs/graphic/area.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graphic/area.ts"],"names":[],"mappings":";;;AAEA,uCAAiF;AACjF,2DAAuD;AACvD,2CAAoE;AACpE,mCAAmC;AACnC,gDAA6C;AAC7C,2CAA+C;AAE/C,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,gCAAsB,CAAC,CAAC;AAE3F,MAAa,IAAK,SAAQ,iBAA8B;IAWtD,YAAY,MAA6B;QACvC,KAAK,CAAC,MAAM,CAAC,CAAC;QAXhB,SAAI,GAAW,MAAM,CAAC;QAYpB,IAAI,CAAC,UAAU,GAAG,4BAAgB,CAAC;IACrC,CAAC;IAED,OAAO;QACL,OAAO,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC5C,CAAC;IACO,QAAQ;QACd,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,OAAO,IAAI,CAAC;SACb;QACD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QAC5C,IAAI,QAAQ,EAAE;YACZ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzB,OAAO,KAAK,CAAC;aACd;YACD,OAAO,IAAI,CAAC;SACb;aAAM,IAAI,MAAM,EAAE;YACjB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;gBACvB,OAAO,KAAK,CAAC;aACd;YACD,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAES,kBAAkB;QAC1B,MAAM,SAAS,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QACtC,IAAI,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"sources":["../src/graphic/area.ts"],"names":[],"mappings":"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","file":"area.js","sourcesContent":["import type { AABBBounds, OBBBounds, IPointLike } from '@visactor/vutils';\nimport type { IArea, IAreaCacheItem, IAreaGraphicAttribute } from '../interface';\nimport { Graphic, GRAPHIC_UPDATE_TAG_KEY, NOWORK_ANIMATE_ATTR } from './graphic';\nimport { CustomPath2D } from '../common/custom-path2d';\nimport { parsePadding, pointsInterpolation } from '../common/utils';\nimport { getTheme } from './theme';\nimport { application } from '../application';\nimport { AREA_NUMBER_TYPE } from './constants';\n\nconst AREA_UPDATE_TAG_KEY = ['segments', 'points', 'curveType', ...GRAPHIC_UPDATE_TAG_KEY];\n\nexport class Area extends Graphic<IAreaGraphicAttribute> implements IArea {\n type: 'area' = 'area';\n\n static NOWORK_ANIMATE_ATTR = {\n segments: 1,\n curveType: 1,\n ...NOWORK_ANIMATE_ATTR\n };\n\n cache?: IAreaCacheItem;\n\n constructor(params: IAreaGraphicAttribute) {\n super(params);\n this.numberType = AREA_NUMBER_TYPE;\n }\n\n isValid(): boolean {\n return super.isValid() && this._isValid();\n }\n private _isValid(): boolean {\n if (this.pathProxy) {\n return true;\n }\n const { points, segments } = this.attribute;\n if (segments) {\n if (segments.length === 0) {\n return false;\n }\n return true;\n } else if (points) {\n if (points.length === 0) {\n return false;\n }\n return true;\n }\n return false;\n }\n\n protected doUpdateAABBBounds(): AABBBounds {\n const areaTheme = getTheme(this).area;\n this._AABBBounds.clear();\n\n const attribute = this.attribute;\n const bounds = application.graphicService.updateAreaAABBBounds(\n attribute,\n getTheme(this).area,\n this._AABBBounds,\n this\n ) as AABBBounds;\n\n const { boundsPadding = areaTheme.boundsPadding } = attribute;\n const paddingArray = parsePadding(boundsPadding);\n if (paddingArray) {\n bounds.expand(paddingArray);\n }\n\n this.clearUpdateBoundTag();\n return bounds;\n }\n // private tryUpdateAABBBoundsByPoints(): AABBBounds {\n // const areaTheme = getTheme(this).area;\n // const { points = areaTheme.points } = this.attribute;\n // const b = this._AABBBounds;\n // points.forEach(p => {\n // b.add(p.x, p.y);\n // b.add(p.x1 ?? p.x, p.y1 ?? p.y); //面积图特殊性:由三个值构成,横向面积图,x1会省略;纵向面积图,y1会省略\n // });\n // const {\n // x = areaTheme.x,\n // y = areaTheme.y,\n // dx = areaTheme.dx,\n // dy = areaTheme.dy,\n // scaleX = areaTheme.scaleX,\n // scaleY = areaTheme.scaleY,\n // angle = areaTheme.angle\n // } = this.attribute;\n // // 合并shadowRoot的bounds\n // this.combindShadowAABBBounds(this._AABBBounds);\n // // TODO 加上锚点\n // transformBounds(b, x, y, scaleX, scaleY, angle);\n // this._AABBBounds.translate(dx, dy);\n // return b;\n // }\n // private tryUpdateAABBBoundsBySegments(): AABBBounds {\n // const areaTheme = getTheme(this).area;\n // const { segments = areaTheme.segments } = this.attribute;\n // const b = this._AABBBounds;\n // segments.forEach(s => {\n // s.points.forEach(p => {\n // b.add(p.x, p.y);\n // b.add(p.x1 ?? p.x, p.y1 ?? p.y); //面积图特殊性:由三个值构成,横向面积图,x1会省略;纵向面积图,y1会省略\n // });\n // });\n // const {\n // x = areaTheme.x,\n // y = areaTheme.y,\n // dx = areaTheme.dx,\n // dy = areaTheme.dy,\n // scaleX = areaTheme.scaleX,\n // scaleY = areaTheme.scaleY,\n // angle = areaTheme.angle\n // } = this.attribute;\n // // 合并shadowRoot的bounds\n // this.combindShadowAABBBounds(this._AABBBounds);\n // // TODO 加上锚点\n // transformBounds(b, x, y, scaleX, scaleY, angle);\n // this._AABBBounds.translate(dx, dy);\n // return b;\n // }\n\n protected tryUpdateOBBBounds(): OBBBounds {\n throw new Error('暂不支持');\n }\n\n protected _interpolate(key: string, ratio: number, lastStepVal: any, nextStepVal: any, nextAttributes: any): void {\n if (key === 'points') {\n (nextAttributes as any).points = pointsInterpolation(lastStepVal, nextStepVal, ratio);\n }\n }\n\n getDefaultAttribute(name: string) {\n const areaTheme = getTheme(this).area;\n return areaTheme[name];\n }\n\n protected needUpdateTags(keys: string[]): boolean {\n return super.needUpdateTags(keys, AREA_UPDATE_TAG_KEY);\n }\n protected needUpdateTag(key: string): boolean {\n return super.needUpdateTag(key, AREA_UPDATE_TAG_KEY);\n }\n\n toCustomPath() {\n const path = new CustomPath2D();\n const attribute = this.attribute;\n const segments = attribute.segments;\n\n const parsePoints = (points: IPointLike[]) => {\n if (points && points.length) {\n let isFirst = true;\n const basePoints: IPointLike[] = [];\n points.forEach(point => {\n if (point.defined === false) {\n return;\n }\n if (isFirst) {\n path.moveTo(point.x, point.y);\n } else {\n path.lineTo(point.x, point.y);\n }\n basePoints.push({ x: point.x1 ?? point.x, y: point.y1 ?? point.y });\n\n isFirst = false;\n });\n\n if (basePoints.length) {\n for (let i = basePoints.length - 1; i >= 0; i--) {\n path.lineTo(basePoints[i].x, basePoints[i].y);\n }\n\n path.closePath();\n }\n }\n };\n\n if (attribute.points) {\n parsePoints(attribute.points);\n } else if (segments && segments.length) {\n segments.forEach(seg => {\n parsePoints(seg.points);\n });\n }\n\n return path;\n }\n\n clone() {\n return new Area({ ...this.attribute });\n }\n\n getNoWorkAnimateAttr(): Record<string, number> {\n return Area.NOWORK_ANIMATE_ATTR;\n }\n}\n\nexport function createArea(attributes: IAreaGraphicAttribute): IArea {\n return new Area(attributes);\n}\n"]}
|
package/cjs/graphic/bounds.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { IRichTextAttribute,
|
|
2
|
-
type ITextBoundsParams = Partial<
|
|
1
|
+
import type { IRichTextAttribute, ITextGraphicAttribute } from '../interface';
|
|
2
|
+
type ITextBoundsParams = Partial<ITextGraphicAttribute>;
|
|
3
3
|
export declare function getTextBounds(params: ITextBoundsParams): any;
|
|
4
4
|
type IRichTextBoundsParams = Partial<IRichTextAttribute>;
|
|
5
5
|
export declare function getRichTextBounds(params: IRichTextBoundsParams): any;
|
package/cjs/graphic/bounds.js
CHANGED
|
@@ -10,7 +10,7 @@ let text, richText;
|
|
|
10
10
|
|
|
11
11
|
function getTextBounds(params) {
|
|
12
12
|
return text || (text = graphic_creator_1.graphicCreator.CreateGraphic("text", {})),
|
|
13
|
-
text.
|
|
13
|
+
text.initAttributes(params), text.AABBBounds;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
function getRichTextBounds(params) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graphic/bounds.ts"],"names":[],"mappings":";;;AACA,uDAAmD;AAInD,IAAI,IAAS,CAAC;AACd,SAAgB,aAAa,CAAC,MAAyB;IACrD,IAAI,CAAC,IAAI,EAAE;QACT,IAAI,GAAG,gCAAc,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;KACjD;IACD,IAAI,CAAC,
|
|
1
|
+
{"version":3,"sources":["../src/graphic/bounds.ts"],"names":[],"mappings":";;;AACA,uDAAmD;AAInD,IAAI,IAAS,CAAC;AACd,SAAgB,aAAa,CAAC,MAAyB;IACrD,IAAI,CAAC,IAAI,EAAE;QACT,IAAI,GAAG,gCAAc,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;KACjD;IACD,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO,IAAI,CAAC,UAAU,CAAC;AACzB,CAAC;AAND,sCAMC;AAGD,IAAI,QAAa,CAAC;AAClB,SAAgB,iBAAiB,CAAC,MAA6B;IAC7D,IAAI,CAAC,QAAQ,EAAE;QACb,QAAQ,GAAG,gCAAc,CAAC,aAAa,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;KACzD;IACD,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,QAAQ,CAAC,UAAU,CAAC;AAC7B,CAAC;AAND,8CAMC","file":"bounds.js","sourcesContent":["import type { IRichTextAttribute, ITextGraphicAttribute } from '../interface';\nimport { graphicCreator } from './graphic-creator';\n// import { createRichText, createText } from './graphic-creator';\n\ntype ITextBoundsParams = Partial<ITextGraphicAttribute>;\nlet text: any;\nexport function getTextBounds(params: ITextBoundsParams) {\n if (!text) {\n text = graphicCreator.CreateGraphic('text', {});\n }\n text.initAttributes(params);\n return text.AABBBounds;\n}\n\ntype IRichTextBoundsParams = Partial<IRichTextAttribute>;\nlet richText: any;\nexport function getRichTextBounds(params: IRichTextBoundsParams) {\n if (!richText) {\n richText = graphicCreator.CreateGraphic('richtext', {});\n }\n richText.setAttributes(params);\n return richText.AABBBounds;\n}\n"]}
|
package/cjs/graphic/circle.js
CHANGED
|
@@ -21,7 +21,7 @@ class Circle extends graphic_1.Graphic {
|
|
|
21
21
|
}
|
|
22
22
|
doUpdateAABBBounds(full) {
|
|
23
23
|
const circleTheme = (0, theme_1.getTheme)(this).circle;
|
|
24
|
-
this._AABBBounds.
|
|
24
|
+
this._AABBBounds.clear();
|
|
25
25
|
const attribute = this.attribute, bounds = application_1.application.graphicService.updateCircleAABBBounds(attribute, (0,
|
|
26
26
|
theme_1.getTheme)(this).circle, this._AABBBounds, full, this), {boundsPadding: boundsPadding = circleTheme.boundsPadding} = attribute, paddingArray = (0,
|
|
27
27
|
utils_1.parsePadding)(boundsPadding);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graphic/circle.ts"],"names":[],"mappings":";;;AAGA,uCAAiF;AACjF,2DAAuD;AACvD,2CAA+C;AAC/C,mCAAmC;AACnC,gDAA6C;AAC7C,2CAAiD;AAEjD,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,gCAAsB,CAAC,CAAC;AAM9F,MAAa,MAAO,SAAQ,iBAAgC;IAK1D,YAAY,SAAkC,EAAE,MAAM,EAAE,CAAC,EAAE;QACzD,KAAK,CAAC,MAAM,CAAC,CAAC;QALhB,SAAI,GAAa,QAAQ,CAAC;QAMxB,IAAI,CAAC,UAAU,GAAG,8BAAkB,CAAC;IACvC,CAAC;IAED,OAAO;QACL,OAAO,KAAK,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC5C,CAAC;IACO,QAAQ;QACd,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;QACxD,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACnG,CAAC;IAES,kBAAkB,CAAC,IAAc;QACzC,MAAM,WAAW,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"sources":["../src/graphic/circle.ts"],"names":[],"mappings":"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","file":"circle.js","sourcesContent":["import type { AABBBounds, OBBBounds } from '@visactor/vutils';\nimport { transformBounds } from '@visactor/vutils';\nimport type { ICircle, ICircleGraphicAttribute } from '../interface/graphic/circle';\nimport { Graphic, GRAPHIC_UPDATE_TAG_KEY, NOWORK_ANIMATE_ATTR } from './graphic';\nimport { CustomPath2D } from '../common/custom-path2d';\nimport { parsePadding } from '../common/utils';\nimport { getTheme } from './theme';\nimport { application } from '../application';\nimport { CIRCLE_NUMBER_TYPE } from './constants';\n\nconst CIRCLE_UPDATE_TAG_KEY = ['radius', 'startAngle', 'endAngle', ...GRAPHIC_UPDATE_TAG_KEY];\n\n/**\n * 圆形图元\n * 默认顺时针绘制\n */\nexport class Circle extends Graphic<ICircleGraphicAttribute> implements ICircle {\n type: 'circle' = 'circle';\n\n static NOWORK_ANIMATE_ATTR = NOWORK_ANIMATE_ATTR;\n\n constructor(params: ICircleGraphicAttribute = { radius: 1 }) {\n super(params);\n this.numberType = CIRCLE_NUMBER_TYPE;\n }\n\n isValid(): boolean {\n return super.isValid() && this._isValid();\n }\n private _isValid(): boolean {\n const { startAngle, endAngle, radius } = this.attribute;\n return this._validNumber(startAngle) && this._validNumber(endAngle) && this._validNumber(radius);\n }\n\n protected doUpdateAABBBounds(full?: boolean): AABBBounds {\n const circleTheme = getTheme(this).circle;\n this._AABBBounds.clear();\n const attribute = this.attribute;\n const bounds = application.graphicService.updateCircleAABBBounds(\n attribute,\n getTheme(this).circle,\n this._AABBBounds,\n full,\n this\n );\n\n const { boundsPadding = circleTheme.boundsPadding } = attribute;\n const paddingArray = parsePadding(boundsPadding);\n if (paddingArray) {\n (bounds as AABBBounds).expand(paddingArray);\n }\n\n this.clearUpdateBoundTag();\n return bounds as AABBBounds;\n }\n\n protected tryUpdateOBBBounds(): OBBBounds {\n throw new Error('暂不支持');\n }\n\n getDefaultAttribute(name: string) {\n const circleTheme = getTheme(this).circle;\n return circleTheme[name];\n }\n\n protected needUpdateTags(keys: string[]): boolean {\n return super.needUpdateTags(keys, CIRCLE_UPDATE_TAG_KEY);\n }\n protected needUpdateTag(key: string): boolean {\n return super.needUpdateTag(key, CIRCLE_UPDATE_TAG_KEY);\n }\n\n toCustomPath() {\n const x = 0;\n const y = 0;\n\n const attribute = this.attribute;\n const radius = attribute.radius ?? this.getDefaultAttribute('radius');\n const startAngle = attribute.startAngle ?? this.getDefaultAttribute('startAngle');\n const endAngle = attribute.endAngle ?? this.getDefaultAttribute('endAngle');\n\n const path = new CustomPath2D();\n\n path.arc(x, y, radius, startAngle, endAngle);\n\n return path;\n }\n\n clone() {\n return new Circle({ ...this.attribute });\n }\n\n getNoWorkAnimateAttr(): Record<string, number> {\n return Circle.NOWORK_ANIMATE_ATTR;\n }\n}\n\nexport function createCircle(attributes: ICircleGraphicAttribute): ICircle {\n return new Circle(attributes);\n}\n\n// addAttributeToPrototype(DefaultCircleStyle, Circle, PURE_STYLE_KEY);\n"]}
|
package/cjs/graphic/config.js
CHANGED
|
@@ -95,11 +95,13 @@ exports.DefaultStrokeStyle = Object.assign({
|
|
|
95
95
|
}, exports.DefaultStyle = Object.assign(Object.assign(Object.assign(Object.assign({
|
|
96
96
|
opacity: 1,
|
|
97
97
|
background: null,
|
|
98
|
+
backgroundCornerRadius: 0,
|
|
98
99
|
texture: null,
|
|
99
100
|
textureColor: "black",
|
|
100
101
|
textureSize: 10,
|
|
101
102
|
texturePadding: 2,
|
|
102
103
|
backgroundMode: "no-repeat",
|
|
104
|
+
backgroundFit: !0,
|
|
103
105
|
blur: 0,
|
|
104
106
|
cursor: null,
|
|
105
107
|
html: null
|
|
@@ -115,6 +117,8 @@ exports.DefaultConnectAttribute = {
|
|
|
115
117
|
strokeSeg: null,
|
|
116
118
|
pickable: !0,
|
|
117
119
|
childrenPickable: !0,
|
|
120
|
+
fillPickable: !0,
|
|
121
|
+
strokePickable: !0,
|
|
118
122
|
visible: !0,
|
|
119
123
|
zIndex: 0,
|
|
120
124
|
layout: null,
|
|
@@ -205,7 +209,7 @@ exports.DefaultArcAttribute = Object.assign(Object.assign({}, exports.DefaultAtt
|
|
|
205
209
|
}), exports.DefaultTextAttribute = Object.assign(Object.assign(Object.assign({}, exports.DefaultAttribute), exports.DefaultTextStyle), {
|
|
206
210
|
strokeBoundsBuffer: 0,
|
|
207
211
|
keepDirIn3d: !0
|
|
208
|
-
}), exports.DefaultRichTextAttribute = Object.assign(Object.assign({}, exports.DefaultAttribute), {
|
|
212
|
+
}), exports.DefaultRichTextAttribute = Object.assign(Object.assign(Object.assign({}, exports.DefaultAttribute), exports.DefaultTextStyle), {
|
|
209
213
|
width: 300,
|
|
210
214
|
height: 300,
|
|
211
215
|
ellipsis: !0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graphic/config.ts"],"names":[],"mappings":"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","file":"config.js","sourcesContent":["// 存放公共属性\nimport { Logger, Matrix, pi2 } from '@visactor/vutils';\nimport { CustomPath2D } from '../common/custom-path2d';\nimport type {\n IArcGraphicAttribute,\n IAreaGraphicAttribute,\n IGraphicAttribute,\n ICircleGraphicAttribute,\n IFillStyle,\n IGlyphGraphicAttribute,\n IGroupGraphicAttribute,\n IImageGraphicAttribute,\n ILineGraphicAttribute,\n IPathGraphicAttribute,\n IPolygonGraphicAttribute,\n IRect3dGraphicAttribute,\n IRectGraphicAttribute,\n IStrokeStyle,\n IGraphicStyle,\n ISymbolGraphicAttribute,\n ITextAttribute,\n ITextGraphicAttribute,\n IRichTextGraphicAttribute,\n ITransform,\n RichTextWordBreak,\n RichTextVerticalDirection,\n RichTextGlobalAlignType,\n RichTextGlobalBaselineType,\n IRichTextIconGraphicAttribute,\n IConnectedStyle,\n ILayout,\n IDebugType,\n IPickStyle\n} from '../interface';\n\nexport const DefaultLayout: ILayout = {\n alignSelf: 'auto'\n};\n\nexport const DefaultTransform: ITransform = {\n x: 0,\n y: 0,\n z: 0,\n dx: 0,\n dy: 0,\n dz: 0,\n scrollX: 0,\n scrollY: 0,\n scaleX: 1,\n scaleY: 1,\n scaleZ: 1,\n angle: 0,\n alpha: 0,\n beta: 0,\n scaleCenter: [0, 0],\n anchor: [0, 0],\n anchor3d: [0, 0],\n postMatrix: new Matrix()\n};\n\nexport const DefaultFillStyle: IFillStyle = {\n fillOpacity: 1,\n fill: false,\n shadowBlur: 0,\n shadowColor: 'black',\n shadowOffsetX: 0,\n shadowOffsetY: 0\n};\n\nconst commonStroke: Omit<IStrokeStyle, 'outerBorder' | 'innerBorder'> = {\n strokeOpacity: 1,\n lineDash: [],\n lineDashOffset: 0,\n lineWidth: 1,\n lineCap: 'butt',\n lineJoin: 'miter',\n miterLimit: 10,\n strokeBoundsBuffer: 2,\n stroke: false\n};\n\nexport const DefaultStrokeStyle: IStrokeStyle = {\n outerBorder: { ...commonStroke, distance: 0 },\n innerBorder: { ...commonStroke, distance: 0 },\n ...commonStroke\n};\n\nexport const DefaultTextStyle: Required<ITextAttribute> = {\n text: '',\n maxLineWidth: Infinity,\n textAlign: 'left',\n textBaseline: 'alphabetic',\n fontSize: 16,\n // @ts-ignore\n fontFamily: `PingFang SC,Microsoft Yahei,system-ui,-apple-system,segoe ui,\n Roboto,Helvetica,Arial,sans-serif, apple color emoji,segoe ui emoji,segoe ui symbol`,\n fontWeight: '',\n ellipsis: '…',\n fontVariant: '',\n fontStyle: '',\n lineHeight: undefined,\n underline: 0,\n lineThrough: 0,\n scaleIn3d: false,\n direction: 'horizontal',\n wordBreak: 'break-all',\n ignoreBuf: false,\n verticalMode: 0,\n wrap: false,\n whiteSpace: 'no-wrap',\n heightLimit: Infinity,\n lineClamp: Infinity,\n suffixPosition: 'end',\n disableAutoClipedPoptip: undefined\n};\n\nexport const DefaultPickStyle: IPickStyle = {\n pickStrokeBuffer: 0\n};\n\nexport const DefaultStyle: IGraphicStyle = {\n opacity: 1,\n background: null,\n texture: null,\n textureColor: 'black',\n textureSize: 10,\n texturePadding: 2,\n backgroundMode: 'no-repeat',\n blur: 0,\n cursor: null,\n html: null,\n ...DefaultFillStyle,\n ...DefaultStrokeStyle,\n ...DefaultLayout,\n ...DefaultPickStyle\n};\n\nexport const DefaultConnectAttribute: Required<IConnectedStyle> = {\n connectedType: 'none',\n // connectedStyle: {\n // stroke: DefaultStrokeStyle.stroke,\n // strokeOpacity: DefaultStrokeStyle.strokeOpacity,\n // lineDash: DefaultStrokeStyle.lineDash,\n // lineDashOffset: DefaultStrokeStyle.lineDashOffset,\n // lineCap: DefaultStrokeStyle.lineCap,\n // lineJoin: DefaultStrokeStyle.lineJoin,\n // lineWidth: DefaultStrokeStyle.lineWidth,\n // fill: DefaultFillStyle.fill,\n // fillOpacity: DefaultFillStyle.fillOpacity\n // },\n connectedStyle: {}, // 默认全都继承父属性\n connectedX: NaN,\n connectedY: NaN\n} as IConnectedStyle;\n\nexport const DefaultDebugAttribute: Required<IDebugType> = {\n _debug_bounds: false\n};\n\nexport const DefaultAttribute: Required<IGraphicAttribute> = {\n strokeSeg: null,\n pickable: true,\n childrenPickable: true,\n visible: true,\n zIndex: 0,\n layout: null,\n boundsPadding: 0,\n pickMode: 'accurate',\n customPickShape: null,\n boundsMode: 'accurate',\n keepDirIn3d: true,\n shadowRootIdx: 1,\n globalZIndex: 1,\n globalCompositeOperation: '',\n overflow: 'hidden',\n ...DefaultDebugAttribute,\n ...DefaultStyle,\n ...DefaultTransform\n};\n\nexport function addAttributeToPrototype(obj: Record<string, any>, c: any, keys: string[]) {\n keys.forEach(key => {\n c.prototype[key] = obj[key];\n });\n}\nexport function rewriteProto(obj: Record<string, any>, c: Record<string, any>) {\n Object.setPrototypeOf(obj, c);\n}\n\nexport const DefaultArcAttribute: Required<IArcGraphicAttribute> = {\n ...DefaultAttribute,\n startAngle: 0,\n endAngle: pi2,\n innerRadius: 0,\n outerRadius: 1,\n cornerRadius: 0,\n padRadius: 0,\n padAngle: 0,\n cap: false,\n forceShowCap: false\n};\n\nexport const DefaultAreaAttribute: Required<IAreaGraphicAttribute> = {\n ...DefaultAttribute,\n ...DefaultConnectAttribute,\n points: [],\n segments: [],\n curveType: 'linear',\n clipRange: 1,\n closePath: false\n};\n\nexport const DefaultCircleAttribute: Required<ICircleGraphicAttribute> = {\n ...DefaultAttribute,\n radius: 1,\n startAngle: 0,\n endAngle: pi2\n};\n\nexport const DefaultGroupAttribute: Required<IGroupGraphicAttribute> = {\n ...DefaultAttribute,\n width: 0,\n height: 0,\n cornerRadius: 0,\n path: [],\n clip: false,\n visibleAll: true,\n display: 'relative',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'flex-start',\n alignItems: 'flex-start',\n alignContent: 'flex-start'\n};\n\nexport const DefaultGlyphAttribute: Required<IGlyphGraphicAttribute> = {\n ...DefaultAttribute,\n path: '',\n width: 0,\n height: 0,\n cornerRadius: 0,\n clip: false\n};\n\nexport const DefaultLineAttribute: Required<ILineGraphicAttribute> = {\n ...DefaultAttribute,\n ...DefaultConnectAttribute,\n points: [],\n segments: [],\n curveType: 'linear',\n clipRange: 1,\n clipRangeByDimension: 'default',\n closePath: false\n};\n\nexport const DefaultPathAttribute: Required<IPathGraphicAttribute> = {\n ...DefaultAttribute,\n path: new CustomPath2D(),\n customPath: () => {\n Logger.getInstance().warn('空函数');\n }\n};\n\nexport const DefaultPolygonAttribute: Required<IPolygonGraphicAttribute> = {\n ...DefaultAttribute,\n points: [],\n cornerRadius: 0,\n closePath: true\n};\n\nexport const DefaultRectAttribute: Required<IRectGraphicAttribute> = {\n ...DefaultAttribute,\n width: 0,\n height: 0,\n x1: 0,\n y1: 0,\n strokeBoundsBuffer: 0,\n cornerRadius: 0\n};\n\nexport const DefaultRect3dAttribute: Required<IRect3dGraphicAttribute> = {\n ...DefaultAttribute,\n width: 0,\n height: 0,\n x1: 0,\n y1: 0,\n cornerRadius: 0,\n length: 0\n};\n\nexport const DefaultSymbolAttribute: Required<ISymbolGraphicAttribute> = {\n ...DefaultAttribute,\n symbolType: 'circle',\n size: 10, // 外接**正方形**的边长\n keepDirIn3d: true\n};\n\nexport const DefaultTextAttribute: Required<ITextGraphicAttribute> = {\n ...DefaultAttribute,\n ...DefaultTextStyle,\n strokeBoundsBuffer: 0,\n keepDirIn3d: true\n};\n\nexport const DefaultRichTextAttribute: Required<IRichTextGraphicAttribute> = {\n ...DefaultAttribute,\n width: 300,\n height: 300,\n ellipsis: true,\n wordBreak: 'break-word' as RichTextWordBreak,\n verticalDirection: 'top' as RichTextVerticalDirection,\n textAlign: 'left' as RichTextGlobalAlignType,\n textBaseline: 'top' as RichTextGlobalBaselineType,\n layoutDirection: 'horizontal',\n textConfig: [],\n maxHeight: undefined,\n maxWidth: undefined,\n singleLine: false\n};\n\nexport const DefaultImageAttribute: Required<IImageGraphicAttribute> = {\n repeatX: 'no-repeat',\n repeatY: 'no-repeat',\n image: '',\n width: 0,\n height: 0,\n ...DefaultAttribute,\n fill: true,\n cornerRadius: 0\n};\n\nexport const DefaultRichTextIconAttribute: Required<IRichTextIconGraphicAttribute> = {\n ...DefaultImageAttribute,\n backgroundShowMode: 'never',\n backgroundWidth: 0,\n backgroundHeight: 0,\n textAlign: 'left',\n textBaseline: 'middle',\n direction: 'horizontal',\n margin: 0,\n id: '',\n\n width: 20,\n height: 20,\n backgroundFill: 'rgba(101, 117, 168, 0.1)',\n backgroundFillOpacity: 1,\n backgroundStroke: false,\n backgroundStrokeOpacity: 1,\n backgroundRadius: 4,\n opacity: 1\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/graphic/config.ts"],"names":[],"mappings":"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","file":"config.js","sourcesContent":["// 存放公共属性\nimport { Logger, Matrix, pi2 } from '@visactor/vutils';\nimport { CustomPath2D } from '../common/custom-path2d';\nimport type {\n IArcGraphicAttribute,\n IAreaGraphicAttribute,\n IGraphicAttribute,\n ICircleGraphicAttribute,\n IFillStyle,\n IGlyphGraphicAttribute,\n IGroupGraphicAttribute,\n IImageGraphicAttribute,\n ILineGraphicAttribute,\n IPathGraphicAttribute,\n IPolygonGraphicAttribute,\n IRect3dGraphicAttribute,\n IRectGraphicAttribute,\n IStrokeStyle,\n IGraphicStyle,\n ISymbolGraphicAttribute,\n ITextAttribute,\n ITextGraphicAttribute,\n IRichTextGraphicAttribute,\n ITransform,\n RichTextWordBreak,\n RichTextVerticalDirection,\n RichTextGlobalAlignType,\n RichTextGlobalBaselineType,\n IRichTextIconGraphicAttribute,\n IConnectedStyle,\n ILayout,\n IDebugType,\n IPickStyle\n} from '../interface';\n\nexport const DefaultLayout: ILayout = {\n alignSelf: 'auto'\n};\n\nexport const DefaultTransform: ITransform = {\n x: 0,\n y: 0,\n z: 0,\n dx: 0,\n dy: 0,\n dz: 0,\n scrollX: 0,\n scrollY: 0,\n scaleX: 1,\n scaleY: 1,\n scaleZ: 1,\n angle: 0,\n alpha: 0,\n beta: 0,\n scaleCenter: [0, 0],\n anchor: [0, 0],\n anchor3d: [0, 0],\n postMatrix: new Matrix()\n};\n\nexport const DefaultFillStyle: IFillStyle = {\n fillOpacity: 1,\n fill: false,\n shadowBlur: 0,\n shadowColor: 'black',\n shadowOffsetX: 0,\n shadowOffsetY: 0\n};\n\nconst commonStroke: Omit<IStrokeStyle, 'outerBorder' | 'innerBorder'> = {\n strokeOpacity: 1,\n lineDash: [],\n lineDashOffset: 0,\n lineWidth: 1,\n lineCap: 'butt',\n lineJoin: 'miter',\n miterLimit: 10,\n strokeBoundsBuffer: 2,\n stroke: false\n};\n\nexport const DefaultStrokeStyle: IStrokeStyle = {\n outerBorder: { ...commonStroke, distance: 0 },\n innerBorder: { ...commonStroke, distance: 0 },\n ...commonStroke\n};\n\nexport const DefaultTextStyle: Required<ITextAttribute> = {\n text: '',\n maxLineWidth: Infinity,\n textAlign: 'left',\n textBaseline: 'alphabetic',\n fontSize: 16,\n // @ts-ignore\n fontFamily: `PingFang SC,Microsoft Yahei,system-ui,-apple-system,segoe ui,\n Roboto,Helvetica,Arial,sans-serif, apple color emoji,segoe ui emoji,segoe ui symbol`,\n fontWeight: '',\n ellipsis: '…',\n fontVariant: '',\n fontStyle: '',\n lineHeight: undefined,\n underline: 0,\n lineThrough: 0,\n scaleIn3d: false,\n direction: 'horizontal',\n wordBreak: 'break-all',\n ignoreBuf: false,\n verticalMode: 0,\n wrap: false,\n whiteSpace: 'no-wrap',\n heightLimit: Infinity,\n lineClamp: Infinity,\n suffixPosition: 'end',\n disableAutoClipedPoptip: undefined\n};\n\nexport const DefaultPickStyle: IPickStyle = {\n pickStrokeBuffer: 0\n};\n\nexport const DefaultStyle: IGraphicStyle = {\n opacity: 1,\n background: null,\n backgroundCornerRadius: 0,\n texture: null,\n textureColor: 'black',\n textureSize: 10,\n texturePadding: 2,\n backgroundMode: 'no-repeat',\n backgroundFit: true,\n blur: 0,\n cursor: null,\n html: null,\n ...DefaultFillStyle,\n ...DefaultStrokeStyle,\n ...DefaultLayout,\n ...DefaultPickStyle\n};\n\nexport const DefaultConnectAttribute: Required<IConnectedStyle> = {\n connectedType: 'none',\n // connectedStyle: {\n // stroke: DefaultStrokeStyle.stroke,\n // strokeOpacity: DefaultStrokeStyle.strokeOpacity,\n // lineDash: DefaultStrokeStyle.lineDash,\n // lineDashOffset: DefaultStrokeStyle.lineDashOffset,\n // lineCap: DefaultStrokeStyle.lineCap,\n // lineJoin: DefaultStrokeStyle.lineJoin,\n // lineWidth: DefaultStrokeStyle.lineWidth,\n // fill: DefaultFillStyle.fill,\n // fillOpacity: DefaultFillStyle.fillOpacity\n // },\n connectedStyle: {}, // 默认全都继承父属性\n connectedX: NaN,\n connectedY: NaN\n} as IConnectedStyle;\n\nexport const DefaultDebugAttribute: Required<IDebugType> = {\n _debug_bounds: false\n};\n\nexport const DefaultAttribute: Required<IGraphicAttribute> = {\n strokeSeg: null,\n pickable: true,\n childrenPickable: true,\n fillPickable: true,\n strokePickable: true,\n visible: true,\n zIndex: 0,\n layout: null,\n boundsPadding: 0,\n pickMode: 'accurate',\n customPickShape: null,\n boundsMode: 'accurate',\n keepDirIn3d: true,\n shadowRootIdx: 1,\n globalZIndex: 1,\n globalCompositeOperation: '',\n overflow: 'hidden',\n ...DefaultDebugAttribute,\n ...DefaultStyle,\n ...DefaultTransform\n};\n\nexport function addAttributeToPrototype(obj: Record<string, any>, c: any, keys: string[]) {\n keys.forEach(key => {\n c.prototype[key] = obj[key];\n });\n}\nexport function rewriteProto(obj: Record<string, any>, c: Record<string, any>) {\n Object.setPrototypeOf(obj, c);\n}\n\nexport const DefaultArcAttribute: Required<IArcGraphicAttribute> = {\n ...DefaultAttribute,\n startAngle: 0,\n endAngle: pi2,\n innerRadius: 0,\n outerRadius: 1,\n cornerRadius: 0,\n padRadius: 0,\n padAngle: 0,\n cap: false,\n forceShowCap: false\n};\n\nexport const DefaultAreaAttribute: Required<IAreaGraphicAttribute> = {\n ...DefaultAttribute,\n ...DefaultConnectAttribute,\n points: [],\n segments: [],\n curveType: 'linear',\n clipRange: 1,\n closePath: false\n};\n\nexport const DefaultCircleAttribute: Required<ICircleGraphicAttribute> = {\n ...DefaultAttribute,\n radius: 1,\n startAngle: 0,\n endAngle: pi2\n};\n\nexport const DefaultGroupAttribute: Required<IGroupGraphicAttribute> = {\n ...DefaultAttribute,\n width: 0,\n height: 0,\n cornerRadius: 0,\n path: [],\n clip: false,\n visibleAll: true,\n display: 'relative',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'flex-start',\n alignItems: 'flex-start',\n alignContent: 'flex-start'\n};\n\nexport const DefaultGlyphAttribute: Required<IGlyphGraphicAttribute> = {\n ...DefaultAttribute,\n path: '',\n width: 0,\n height: 0,\n cornerRadius: 0,\n clip: false\n};\n\nexport const DefaultLineAttribute: Required<ILineGraphicAttribute> = {\n ...DefaultAttribute,\n ...DefaultConnectAttribute,\n points: [],\n segments: [],\n curveType: 'linear',\n clipRange: 1,\n clipRangeByDimension: 'default',\n closePath: false\n};\n\nexport const DefaultPathAttribute: Required<IPathGraphicAttribute> = {\n ...DefaultAttribute,\n path: new CustomPath2D(),\n customPath: () => {\n Logger.getInstance().warn('空函数');\n }\n};\n\nexport const DefaultPolygonAttribute: Required<IPolygonGraphicAttribute> = {\n ...DefaultAttribute,\n points: [],\n cornerRadius: 0,\n closePath: true\n};\n\nexport const DefaultRectAttribute: Required<IRectGraphicAttribute> = {\n ...DefaultAttribute,\n width: 0,\n height: 0,\n x1: 0,\n y1: 0,\n strokeBoundsBuffer: 0,\n cornerRadius: 0\n};\n\nexport const DefaultRect3dAttribute: Required<IRect3dGraphicAttribute> = {\n ...DefaultAttribute,\n width: 0,\n height: 0,\n x1: 0,\n y1: 0,\n cornerRadius: 0,\n length: 0\n};\n\nexport const DefaultSymbolAttribute: Required<ISymbolGraphicAttribute> = {\n ...DefaultAttribute,\n symbolType: 'circle',\n size: 10, // 外接**正方形**的边长\n keepDirIn3d: true\n};\n\nexport const DefaultTextAttribute: Required<ITextGraphicAttribute> = {\n ...DefaultAttribute,\n ...DefaultTextStyle,\n strokeBoundsBuffer: 0,\n keepDirIn3d: true\n};\n\nexport const DefaultRichTextAttribute: Required<IRichTextGraphicAttribute> = {\n ...DefaultAttribute,\n ...DefaultTextStyle,\n width: 300,\n height: 300,\n ellipsis: true,\n wordBreak: 'break-word' as RichTextWordBreak,\n verticalDirection: 'top' as RichTextVerticalDirection,\n textAlign: 'left' as RichTextGlobalAlignType,\n textBaseline: 'top' as RichTextGlobalBaselineType,\n layoutDirection: 'horizontal',\n textConfig: [],\n maxHeight: undefined,\n maxWidth: undefined,\n singleLine: false\n};\n\nexport const DefaultImageAttribute: Required<IImageGraphicAttribute> = {\n repeatX: 'no-repeat',\n repeatY: 'no-repeat',\n image: '',\n width: 0,\n height: 0,\n ...DefaultAttribute,\n fill: true,\n cornerRadius: 0\n};\n\nexport const DefaultRichTextIconAttribute: Required<IRichTextIconGraphicAttribute> = {\n ...DefaultImageAttribute,\n backgroundShowMode: 'never',\n backgroundWidth: 0,\n backgroundHeight: 0,\n textAlign: 'left',\n textBaseline: 'middle',\n direction: 'horizontal',\n margin: 0,\n id: '',\n\n width: 20,\n height: 20,\n backgroundFill: 'rgba(101, 117, 168, 0.1)',\n backgroundFillOpacity: 1,\n backgroundStroke: false,\n backgroundStrokeOpacity: 1,\n backgroundRadius: 4,\n opacity: 1\n};\n"]}
|
package/cjs/graphic/glyph.js
CHANGED
|
@@ -74,7 +74,7 @@ class Glyph extends graphic_1.Graphic {
|
|
|
74
74
|
})), this;
|
|
75
75
|
}
|
|
76
76
|
doUpdateAABBBounds() {
|
|
77
|
-
this._AABBBounds.
|
|
77
|
+
this._AABBBounds.clear();
|
|
78
78
|
const bounds = application_1.application.graphicService.updateGlyphAABBBounds(this.attribute, (0,
|
|
79
79
|
theme_1.getTheme)(this).glyph, this._AABBBounds, this);
|
|
80
80
|
return this.clearUpdateBoundTag(), bounds;
|