@visactor/vrender-core 0.18.10-alpha.0 → 0.18.11-alpha.0
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/Reflect-metadata.js +2 -1
- package/cjs/common/canvas-utils.js +0 -1
- package/cjs/common/path-svg.js +1 -1
- package/cjs/common/polygon.js +2 -2
- package/cjs/common/rect-utils.js +1 -1
- package/cjs/common/render-area.js +1 -1
- package/cjs/common/render-command-list.js +1 -1
- package/cjs/common/render-curve.js +2 -1
- package/cjs/common/render-utils.js +1 -1
- package/cjs/common/seg-context.js +1 -1
- package/cjs/common/simplify.js +1 -1
- package/cjs/common/sort.js +1 -1
- package/cjs/common/split-path.js +1 -1
- package/cjs/common/store.js +1 -1
- package/cjs/common/text.js +1 -1
- package/cjs/core/application.js +1 -1
- package/cjs/core/camera.js +1 -1
- package/cjs/core/constants.js +1 -1
- package/cjs/core/core-modules.js +1 -1
- package/cjs/core/global.js +1 -1
- package/cjs/core/graphic-utils.js +1 -1
- package/cjs/core/index.js +1 -1
- package/cjs/core/layer-service.js +1 -1
- package/cjs/core/layer.js +1 -1
- package/cjs/core/light.js +1 -1
- package/cjs/core/stage.js +1 -1
- package/cjs/core/window.js +1 -1
- package/cjs/event/event-system.js +7 -2
- package/cjs/event/event-system.js.map +1 -1
- package/cjs/graphic/config.js +1 -0
- package/cjs/graphic/config.js.map +1 -1
- package/cjs/graphic/graphic.js +1 -1
- package/cjs/graphic/graphic.js.map +1 -1
- package/cjs/interface/graphic.d.ts +1 -0
- package/cjs/interface/graphic.js.map +1 -1
- package/cjs/render/contributions/render/area-render.js +2 -1
- package/cjs/render/contributions/render/area-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/base-contribution-render.js +7 -4
- package/cjs/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/text-render.js +5 -5
- package/cjs/render/contributions/render/text-render.js.map +1 -1
- package/cjs/render/contributions/render/utils.js +3 -3
- package/cjs/render/contributions/render/utils.js.map +1 -1
- package/cjs/resource-loader/loader.d.ts +2 -0
- package/cjs/resource-loader/loader.js +7 -3
- package/cjs/resource-loader/loader.js.map +1 -1
- package/es/common/Reflect-metadata.js +2 -1
- package/es/common/canvas-utils.js +1 -2
- package/es/common/path-svg.js +1 -1
- package/es/common/polygon.js +1 -1
- package/es/common/rect-utils.js +1 -1
- package/es/common/render-area.js +1 -1
- package/es/common/render-command-list.js +1 -1
- package/es/common/render-curve.js +2 -1
- package/es/common/render-utils.js +1 -1
- package/es/common/seg-context.js +1 -1
- package/es/common/simplify.js +1 -1
- package/es/common/sort.js +1 -1
- package/es/common/split-path.js +1 -1
- package/es/common/store.js +1 -1
- package/es/common/text.js +1 -1
- package/es/core/application.js +1 -1
- package/es/core/camera.js +1 -1
- package/es/core/constants.js +1 -1
- package/es/core/core-modules.js +1 -1
- package/es/core/global.js +1 -1
- package/es/core/graphic-utils.js +1 -1
- package/es/core/index.js +1 -1
- package/es/core/layer-service.js +1 -1
- package/es/core/layer.js +1 -1
- package/es/core/light.js +1 -1
- package/es/core/stage.js +1 -1
- package/es/core/window.js +1 -1
- package/es/event/event-system.js +7 -2
- package/es/event/event-system.js.map +1 -1
- package/es/graphic/config.js +1 -0
- package/es/graphic/config.js.map +1 -1
- package/es/graphic/graphic.js +1 -1
- package/es/graphic/graphic.js.map +1 -1
- package/es/interface/graphic.d.ts +1 -0
- package/es/interface/graphic.js.map +1 -1
- package/es/render/contributions/render/area-render.js +2 -1
- package/es/render/contributions/render/area-render.js.map +1 -1
- package/es/render/contributions/render/contributions/base-contribution-render.js +7 -4
- package/es/render/contributions/render/contributions/base-contribution-render.js.map +1 -1
- package/es/render/contributions/render/text-render.js +4 -4
- package/es/render/contributions/render/text-render.js.map +1 -1
- package/es/render/contributions/render/utils.js +3 -3
- package/es/render/contributions/render/utils.js.map +1 -1
- package/es/resource-loader/loader.d.ts +2 -0
- package/es/resource-loader/loader.js +8 -3
- package/es/resource-loader/loader.js.map +1 -1
- package/package.json +1 -1
|
@@ -69,5 +69,4 @@ function createConicGradient(context, color, params, offsetX = 0, offsetY = 0) {
|
|
|
69
69
|
})), canvasGradient.GetPattern(w + x, h + y, undefined);
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
//# sourceMappingURL=canvas-utils.js.map
|
|
73
72
|
exports.getScaledStroke = getScaledStroke, exports.createColor = createColor;
|
package/cjs/common/path-svg.js
CHANGED
package/cjs/common/polygon.js
CHANGED
|
@@ -39,8 +39,8 @@ function getProportionPoint(point, segment, length, dx, dy) {
|
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
//# sourceMappingURL=polygon.js.map
|
|
43
42
|
Object.defineProperty(exports, "__esModule", {
|
|
44
43
|
value: !0
|
|
45
44
|
}), exports.drawRoundedPolygon = exports.drawPolygon = void 0, exports.drawPolygon = drawPolygon,
|
|
46
|
-
exports.drawRoundedPolygon = drawRoundedPolygon;
|
|
45
|
+
exports.drawRoundedPolygon = drawRoundedPolygon;
|
|
46
|
+
//# sourceMappingURL=polygon.js.map
|
package/cjs/common/rect-utils.js
CHANGED
|
@@ -108,4 +108,5 @@ function drawIncrementalAreaSegments(path, lastSeg, segments, params) {
|
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
exports.drawSegments = drawSegments, exports.drawIncrementalSegments = drawIncrementalSegments,
|
|
111
|
-
exports.drawIncrementalAreaSegments = drawIncrementalAreaSegments;
|
|
111
|
+
exports.drawIncrementalAreaSegments = drawIncrementalAreaSegments;
|
|
112
|
+
//# sourceMappingURL=render-curve.js.map
|
package/cjs/common/simplify.js
CHANGED
|
@@ -37,4 +37,4 @@ function flatten_simplify(points, tolerance, highestQuality) {
|
|
|
37
37
|
Object.defineProperty(exports, "__esModule", {
|
|
38
38
|
value: !0
|
|
39
39
|
}), exports.flatten_simplify = void 0, exports.flatten_simplify = flatten_simplify;
|
|
40
|
-
//# sourceMappingURL=simplify.js.map
|
|
40
|
+
//# sourceMappingURL=simplify.js.map
|
package/cjs/common/sort.js
CHANGED
|
@@ -98,4 +98,4 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
98
98
|
value: !0
|
|
99
99
|
}), exports.findNextGraphic = exports.foreachAsync = exports.foreach = void 0, exports.foreach = foreach,
|
|
100
100
|
exports.foreachAsync = foreachAsync, exports.findNextGraphic = findNextGraphic;
|
|
101
|
-
//# sourceMappingURL=sort.js.map
|
|
101
|
+
//# sourceMappingURL=sort.js.map
|
package/cjs/common/split-path.js
CHANGED
package/cjs/common/store.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
class StageStore {}
|
|
2
|
-
//# sourceMappingURL=store.js.map
|
|
2
|
+
//# sourceMappingURL=store.js.map
|
package/cjs/common/text.js
CHANGED
|
@@ -24,4 +24,4 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
24
24
|
}), exports.textLayoutOffsetY = exports.textDrawOffsetX = exports.textDrawOffsetY = exports.getContextFont = void 0,
|
|
25
25
|
exports.getContextFont = getContextFont, exports.textDrawOffsetY = textDrawOffsetY,
|
|
26
26
|
exports.textDrawOffsetX = textDrawOffsetX, exports.textLayoutOffsetY = textLayoutOffsetY;
|
|
27
|
-
//# sourceMappingURL=text.js.map
|
|
27
|
+
//# sourceMappingURL=text.js.map
|
package/cjs/core/application.js
CHANGED
package/cjs/core/camera.js
CHANGED
package/cjs/core/constants.js
CHANGED
|
@@ -7,4 +7,4 @@ exports.TransformUtil = Symbol.for("TransformUtil"), exports.GraphicUtil = Symbo
|
|
|
7
7
|
exports.LayerService = Symbol.for("LayerService"), exports.StaticLayerHandlerContribution = Symbol.for("StaticLayerHandlerContribution"),
|
|
8
8
|
exports.DynamicLayerHandlerContribution = Symbol.for("DynamicLayerHandlerContribution"),
|
|
9
9
|
exports.VirtualLayerHandlerContribution = Symbol.for("VirtualLayerHandlerContribution");
|
|
10
|
-
//# sourceMappingURL=constants.js.map
|
|
10
|
+
//# sourceMappingURL=constants.js.map
|
package/cjs/core/core-modules.js
CHANGED
|
@@ -12,4 +12,4 @@ exports.default = new inversify_lite_1.ContainerModule((bind => {
|
|
|
12
12
|
bind(constants_1.TransformUtil).to(graphic_utils_1.DefaultTransformUtil).inSingletonScope(),
|
|
13
13
|
bind(constants_1.LayerService).to(layer_service_1.DefaultLayerService).inSingletonScope();
|
|
14
14
|
}));
|
|
15
|
-
//# sourceMappingURL=core-modules.js.map
|
|
15
|
+
//# sourceMappingURL=core-modules.js.map
|
package/cjs/core/global.js
CHANGED
|
@@ -176,4 +176,4 @@ DefaultGlobal = __decorate([ (0, inversify_lite_1.injectable)(), __param(0, (0,
|
|
|
176
176
|
inversify_lite_1.inject)(contribution_provider_1.ContributionProvider)), __param(0, (0,
|
|
177
177
|
inversify_lite_1.named)(constants_1.EnvContribution)), __metadata("design:paramtypes", [ Object ]) ], DefaultGlobal),
|
|
178
178
|
exports.DefaultGlobal = DefaultGlobal;
|
|
179
|
-
//# sourceMappingURL=global.js.map
|
|
179
|
+
//# sourceMappingURL=global.js.map
|
|
@@ -172,4 +172,4 @@ let DefaultTransformUtil = class {
|
|
|
172
172
|
|
|
173
173
|
DefaultTransformUtil = __decorate([ (0, inversify_lite_1.injectable)(), __metadata("design:paramtypes", []) ], DefaultTransformUtil),
|
|
174
174
|
exports.DefaultTransformUtil = DefaultTransformUtil;
|
|
175
|
-
//# sourceMappingURL=graphic-utils.js.map
|
|
175
|
+
//# sourceMappingURL=graphic-utils.js.map
|
package/cjs/core/index.js
CHANGED
|
@@ -22,4 +22,4 @@ __exportStar(require("./layer"), exports), __exportStar(require("./stage"), expo
|
|
|
22
22
|
__exportStar(require("./graphic-utils"), exports), __exportStar(require("./contributions"), exports),
|
|
23
23
|
__exportStar(require("./layer-service"), exports), __exportStar(require("./constants"), exports),
|
|
24
24
|
__exportStar(require("../interface/core"), exports);
|
|
25
|
-
//# sourceMappingURL=index.js.map
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -80,4 +80,4 @@ let DefaultLayerService = DefaultLayerService_1 = class {
|
|
|
80
80
|
DefaultLayerService.idprefix = "visactor_layer", DefaultLayerService.prefix_count = 0,
|
|
81
81
|
DefaultLayerService = DefaultLayerService_1 = __decorate([ (0, inversify_lite_1.injectable)(), __metadata("design:paramtypes", []) ], DefaultLayerService),
|
|
82
82
|
exports.DefaultLayerService = DefaultLayerService;
|
|
83
|
-
//# sourceMappingURL=layer-service.js.map
|
|
83
|
+
//# sourceMappingURL=layer-service.js.map
|
package/cjs/core/layer.js
CHANGED
package/cjs/core/light.js
CHANGED
package/cjs/core/stage.js
CHANGED
package/cjs/core/window.js
CHANGED
|
@@ -152,4 +152,4 @@ let DefaultWindow = class {
|
|
|
152
152
|
|
|
153
153
|
DefaultWindow = __decorate([ (0, inversify_lite_1.injectable)(), __metadata("design:paramtypes", []) ], DefaultWindow),
|
|
154
154
|
exports.DefaultWindow = DefaultWindow;
|
|
155
|
-
//# sourceMappingURL=window.js.map
|
|
155
|
+
//# sourceMappingURL=window.js.map
|
|
@@ -118,10 +118,15 @@ class EventSystem {
|
|
|
118
118
|
return this.domElement.pointTransform ? this.domElement.pointTransform(event.x, event.y) : event;
|
|
119
119
|
}
|
|
120
120
|
mapToCanvasPoint(nativeEvent) {
|
|
121
|
-
var _a;
|
|
121
|
+
var _a, _b;
|
|
122
122
|
const point = null === (_a = this.globalObj) || void 0 === _a ? void 0 : _a.mapToCanvasPoint(nativeEvent, this.domElement);
|
|
123
123
|
if (point) return point;
|
|
124
|
-
|
|
124
|
+
let x = 0, y = 0;
|
|
125
|
+
if (nativeEvent.changedTouches) {
|
|
126
|
+
const data = null !== (_b = nativeEvent.changedTouches[0]) && void 0 !== _b ? _b : {};
|
|
127
|
+
x = data.clientX || 0, y = data.clientY || 0;
|
|
128
|
+
} else x = nativeEvent.clientX || 0, y = nativeEvent.clientY || 0;
|
|
129
|
+
const rect = this.domElement.getBoundingClientRect();
|
|
125
130
|
return {
|
|
126
131
|
x: x - rect.left,
|
|
127
132
|
y: y - rect.top
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/event/event-system.ts"],"names":[],"mappings":"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","file":"event-system.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\nimport { isUndefined, has, isString } from '@visactor/vutils';\nimport type { IGlobal, IWindow } 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 /**\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 | IWindow | 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, // 别名,避免和浏览器window重名\n resolution,\n rootNode,\n global,\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\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.removeEvents();\n this.manager && this.manager.release();\n this.domElement = null;\n (this as any).manager = null;\n (this as any).globalObj = 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.isEventOutsideOfTargetViewPort(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: IPointLike): EventPoint {\n if ((this.domElement as IWindow).pointTransform) {\n return (this.domElement as IWindow).pointTransform(event.x, event.y);\n }\n return event;\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 isEventOutsideOfTargetViewPort(nativeEvent: NativeEvent) {\n if (this.isEventOutsideOfTargetElement(nativeEvent)) {\n return true;\n }\n\n // 判断点是否在区间内\n if ((this.domElement as IWindow).getViewBox) {\n const p = this.mapToViewportPoint(this.mapToCanvasPoint(nativeEvent as any));\n const b = (this.domElement as IWindow).getViewBox();\n const w = b.width();\n const h = b.height();\n const contain = p.x < w && p.y < h && p.x > 0 && p.y > 0;\n return !contain;\n }\n return false;\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":"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","file":"event-system.js","sourcesContent":["import type { IPointLike } from '@visactor/vutils';\nimport { isUndefined, has, isString } from '@visactor/vutils';\nimport type { IGlobal, IWindow } 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 /**\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 | IWindow | 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, // 别名,避免和浏览器window重名\n resolution,\n rootNode,\n global,\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\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.removeEvents();\n this.manager && this.manager.release();\n this.domElement = null;\n (this as any).manager = null;\n (this as any).globalObj = 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.isEventOutsideOfTargetViewPort(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: IPointLike): EventPoint {\n if ((this.domElement as IWindow).pointTransform) {\n return (this.domElement as IWindow).pointTransform(event.x, event.y);\n }\n return event;\n }\n\n private mapToCanvasPoint(nativeEvent: PointerEvent | WheelEvent | TouchEvent): EventPoint {\n const point = this.globalObj?.mapToCanvasPoint(nativeEvent, this.domElement);\n\n if (point) {\n return point;\n }\n\n let x: number = 0;\n let y: number = 0;\n if ((nativeEvent as TouchEvent).changedTouches) {\n const data = (nativeEvent as TouchEvent).changedTouches[0] ?? ({} as any);\n x = data.clientX || 0;\n y = data.clientY || 0;\n } else {\n x = (nativeEvent as PointerEvent | WheelEvent).clientX || 0;\n y = (nativeEvent as PointerEvent | WheelEvent).clientY || 0;\n }\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 isEventOutsideOfTargetViewPort(nativeEvent: NativeEvent) {\n if (this.isEventOutsideOfTargetElement(nativeEvent)) {\n return true;\n }\n\n // 判断点是否在区间内\n if ((this.domElement as IWindow).getViewBox) {\n const p = this.mapToViewportPoint(this.mapToCanvasPoint(nativeEvent as any));\n const b = (this.domElement as IWindow).getViewBox();\n const w = b.width();\n const h = b.height();\n const contain = p.x < w && p.y < h && p.x > 0 && p.y > 0;\n return !contain;\n }\n return false;\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/config.js
CHANGED
|
@@ -97,6 +97,7 @@ exports.DefaultStrokeStyle = Object.assign({
|
|
|
97
97
|
}, exports.DefaultStyle = Object.assign(Object.assign(Object.assign(Object.assign({
|
|
98
98
|
opacity: 1,
|
|
99
99
|
background: null,
|
|
100
|
+
backgroundOpacity: 1,
|
|
100
101
|
backgroundCornerRadius: 0,
|
|
101
102
|
texture: null,
|
|
102
103
|
textureColor: "black",
|
|
@@ -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 underlineDash: [],\n underlineOffset: 0,\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 react: 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 renderStyle: 'default',\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 innerPadding: 0,\n outerPadding: 0,\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"]}
|
|
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 underlineDash: [],\n underlineOffset: 0,\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 backgroundOpacity: 1,\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 react: 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 renderStyle: 'default',\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 innerPadding: 0,\n outerPadding: 0,\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/graphic.js
CHANGED
|
@@ -108,7 +108,7 @@ class Graphic extends node_tree_1.Node {
|
|
|
108
108
|
tryUpdateGlobalAABBBounds() {
|
|
109
109
|
const b = this.AABBBounds;
|
|
110
110
|
return this._globalAABBBounds ? this._globalAABBBounds.setValue(b.x1, b.y1, b.x2, b.y2) : this._globalAABBBounds = b.clone(),
|
|
111
|
-
this.parent && this._globalAABBBounds.transformWithMatrix(this.parent.globalTransMatrix),
|
|
111
|
+
this._globalAABBBounds.empty() || this.parent && this._globalAABBBounds.transformWithMatrix(this.parent.globalTransMatrix),
|
|
112
112
|
this._globalAABBBounds;
|
|
113
113
|
}
|
|
114
114
|
tryUpdateGlobalTransMatrix(clearTag = !0) {
|