@visactor/vrender-core 0.22.9-alpha.1 → 0.22.9
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/contribution-provider.d.ts +0 -16
- package/cjs/common/contribution-provider.js +2 -21
- package/cjs/common/contribution-provider.js.map +1 -1
- package/cjs/common/polygon.js +1 -0
- package/cjs/common/render-area.js +0 -1
- package/cjs/common/segment/index.js +3 -0
- package/cjs/common/segment/index.js.map +1 -1
- package/cjs/common/segment/step.d.ts +6 -0
- package/cjs/common/segment/step.js +19 -2
- package/cjs/common/segment/step.js.map +1 -1
- package/cjs/common/sort.js +1 -1
- package/cjs/common/split-path.js +1 -1
- package/cjs/core/global.d.ts +5 -7
- package/cjs/core/global.js +13 -13
- package/cjs/core/global.js.map +1 -1
- package/cjs/core/stage.d.ts +0 -1
- package/cjs/core/stage.js +0 -3
- package/cjs/core/stage.js.map +1 -1
- package/cjs/core/window.d.ts +4 -5
- package/cjs/core/window.js +13 -14
- package/cjs/core/window.js.map +1 -1
- package/cjs/event/event-system.js +10 -11
- package/cjs/event/event-system.js.map +1 -1
- package/cjs/graphic/graphic.d.ts +1 -1
- package/cjs/graphic/graphic.js +5 -12
- package/cjs/graphic/graphic.js.map +1 -1
- package/cjs/index.d.ts +0 -2
- package/cjs/index.js +2 -4
- package/cjs/index.js.map +1 -1
- package/cjs/interface/common.d.ts +1 -1
- package/cjs/interface/common.js.map +1 -1
- package/cjs/interface/global.d.ts +1 -2
- package/cjs/interface/global.js.map +1 -1
- package/cjs/interface/picker.d.ts +0 -1
- package/cjs/interface/picker.js.map +1 -1
- package/cjs/interface/render.d.ts +0 -3
- package/cjs/interface/render.js.map +1 -1
- package/cjs/interface/window.d.ts +0 -1
- package/cjs/interface/window.js.map +1 -1
- package/cjs/picker/global-picker-service.d.ts +0 -1
- package/cjs/picker/global-picker-service.js +0 -1
- package/cjs/picker/global-picker-service.js.map +1 -1
- package/cjs/picker/picker-service.d.ts +0 -1
- package/cjs/picker/picker-service.js +0 -3
- package/cjs/picker/picker-service.js.map +1 -1
- package/cjs/render/contributions/render/arc-render.d.ts +2 -2
- package/cjs/render/contributions/render/arc-render.js +3 -3
- package/cjs/render/contributions/render/arc-render.js.map +1 -1
- package/cjs/render/contributions/render/area-render.d.ts +2 -2
- package/cjs/render/contributions/render/area-render.js +3 -3
- package/cjs/render/contributions/render/area-render.js.map +1 -1
- package/cjs/render/contributions/render/base-render.d.ts +0 -2
- package/cjs/render/contributions/render/base-render.js +0 -3
- package/cjs/render/contributions/render/base-render.js.map +1 -1
- package/cjs/render/contributions/render/circle-render.d.ts +2 -2
- package/cjs/render/contributions/render/circle-render.js +3 -3
- package/cjs/render/contributions/render/circle-render.js.map +1 -1
- package/cjs/render/contributions/render/draw-contribution.d.ts +0 -1
- package/cjs/render/contributions/render/draw-contribution.js +0 -5
- package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
- package/cjs/render/contributions/render/glyph-render.d.ts +0 -1
- package/cjs/render/contributions/render/glyph-render.js +0 -1
- package/cjs/render/contributions/render/glyph-render.js.map +1 -1
- package/cjs/render/contributions/render/graphic-render.d.ts +0 -1
- package/cjs/render/contributions/render/graphic-render.js.map +1 -1
- package/cjs/render/contributions/render/group-render.d.ts +0 -1
- package/cjs/render/contributions/render/group-render.js +0 -4
- package/cjs/render/contributions/render/group-render.js.map +1 -1
- package/cjs/render/contributions/render/image-render.d.ts +2 -2
- package/cjs/render/contributions/render/image-render.js +3 -3
- package/cjs/render/contributions/render/image-render.js.map +1 -1
- package/cjs/render/contributions/render/path-render.d.ts +2 -2
- package/cjs/render/contributions/render/path-render.js +3 -3
- package/cjs/render/contributions/render/path-render.js.map +1 -1
- package/cjs/render/contributions/render/polygon-render.d.ts +2 -2
- package/cjs/render/contributions/render/polygon-render.js +3 -3
- package/cjs/render/contributions/render/polygon-render.js.map +1 -1
- package/cjs/render/contributions/render/rect-render.d.ts +2 -2
- package/cjs/render/contributions/render/rect-render.js +3 -3
- package/cjs/render/contributions/render/rect-render.js.map +1 -1
- package/cjs/render/contributions/render/symbol-render.d.ts +2 -2
- package/cjs/render/contributions/render/symbol-render.js +3 -3
- package/cjs/render/contributions/render/symbol-render.js.map +1 -1
- package/cjs/render/contributions/render/text-render.d.ts +2 -2
- package/cjs/render/contributions/render/text-render.js +3 -3
- package/cjs/render/contributions/render/text-render.js.map +1 -1
- package/cjs/render/render-service.d.ts +0 -1
- package/cjs/render/render-service.js +0 -3
- package/cjs/render/render-service.js.map +1 -1
- package/dist/index.es.js +121 -293
- package/es/common/contribution-provider.d.ts +0 -16
- package/es/common/contribution-provider.js +1 -20
- package/es/common/contribution-provider.js.map +1 -1
- package/es/common/polygon.js +2 -1
- package/es/common/render-area.js +1 -2
- package/es/common/segment/index.js +4 -1
- package/es/common/segment/index.js.map +1 -1
- package/es/common/segment/step.d.ts +6 -0
- package/es/common/segment/step.js +13 -0
- package/es/common/segment/step.js.map +1 -1
- package/es/common/sort.js +1 -1
- package/es/common/split-path.js +1 -1
- package/es/core/global.d.ts +5 -7
- package/es/core/global.js +12 -14
- package/es/core/global.js.map +1 -1
- package/es/core/stage.d.ts +0 -1
- package/es/core/stage.js +0 -3
- package/es/core/stage.js.map +1 -1
- package/es/core/window.d.ts +4 -5
- package/es/core/window.js +12 -15
- package/es/core/window.js.map +1 -1
- package/es/event/event-system.js +10 -11
- package/es/event/event-system.js.map +1 -1
- package/es/graphic/graphic.d.ts +1 -1
- package/es/graphic/graphic.js +5 -12
- package/es/graphic/graphic.js.map +1 -1
- package/es/index.d.ts +0 -2
- package/es/index.js +0 -4
- package/es/index.js.map +1 -1
- package/es/interface/common.d.ts +1 -1
- package/es/interface/common.js.map +1 -1
- package/es/interface/global.d.ts +1 -2
- package/es/interface/global.js.map +1 -1
- package/es/interface/picker.d.ts +0 -1
- package/es/interface/picker.js.map +1 -1
- package/es/interface/render.d.ts +0 -3
- package/es/interface/render.js.map +1 -1
- package/es/interface/window.d.ts +0 -1
- package/es/interface/window.js.map +1 -1
- package/es/picker/global-picker-service.d.ts +0 -1
- package/es/picker/global-picker-service.js +0 -1
- package/es/picker/global-picker-service.js.map +1 -1
- package/es/picker/picker-service.d.ts +0 -1
- package/es/picker/picker-service.js +0 -3
- package/es/picker/picker-service.js.map +1 -1
- package/es/render/contributions/render/arc-render.d.ts +2 -2
- package/es/render/contributions/render/arc-render.js +3 -3
- package/es/render/contributions/render/arc-render.js.map +1 -1
- package/es/render/contributions/render/area-render.d.ts +2 -2
- package/es/render/contributions/render/area-render.js +3 -3
- package/es/render/contributions/render/area-render.js.map +1 -1
- package/es/render/contributions/render/base-render.d.ts +0 -2
- package/es/render/contributions/render/base-render.js +0 -3
- package/es/render/contributions/render/base-render.js.map +1 -1
- package/es/render/contributions/render/circle-render.d.ts +2 -2
- package/es/render/contributions/render/circle-render.js +3 -3
- package/es/render/contributions/render/circle-render.js.map +1 -1
- package/es/render/contributions/render/draw-contribution.d.ts +0 -1
- package/es/render/contributions/render/draw-contribution.js +0 -5
- package/es/render/contributions/render/draw-contribution.js.map +1 -1
- package/es/render/contributions/render/glyph-render.d.ts +0 -1
- package/es/render/contributions/render/glyph-render.js +0 -1
- package/es/render/contributions/render/glyph-render.js.map +1 -1
- package/es/render/contributions/render/graphic-render.d.ts +0 -1
- package/es/render/contributions/render/graphic-render.js.map +1 -1
- package/es/render/contributions/render/group-render.d.ts +0 -1
- package/es/render/contributions/render/group-render.js +0 -4
- package/es/render/contributions/render/group-render.js.map +1 -1
- package/es/render/contributions/render/image-render.d.ts +2 -2
- package/es/render/contributions/render/image-render.js +3 -3
- package/es/render/contributions/render/image-render.js.map +1 -1
- package/es/render/contributions/render/path-render.d.ts +2 -2
- package/es/render/contributions/render/path-render.js +3 -3
- package/es/render/contributions/render/path-render.js.map +1 -1
- package/es/render/contributions/render/polygon-render.d.ts +2 -2
- package/es/render/contributions/render/polygon-render.js +3 -3
- package/es/render/contributions/render/polygon-render.js.map +1 -1
- package/es/render/contributions/render/rect-render.d.ts +2 -2
- package/es/render/contributions/render/rect-render.js +3 -3
- package/es/render/contributions/render/rect-render.js.map +1 -1
- package/es/render/contributions/render/symbol-render.d.ts +2 -2
- package/es/render/contributions/render/symbol-render.js +3 -3
- package/es/render/contributions/render/symbol-render.js.map +1 -1
- package/es/render/contributions/render/text-render.d.ts +2 -2
- package/es/render/contributions/render/text-render.js +3 -3
- package/es/render/contributions/render/text-render.js.map +1 -1
- package/es/render/render-service.d.ts +0 -1
- package/es/render/render-service.js +0 -3
- package/es/render/render-service.js.map +1 -1
- package/package.json +3 -3
- package/cjs/common/event-listener-manager.d.ts +0 -14
- package/cjs/common/event-listener-manager.js +0 -52
- package/cjs/common/event-listener-manager.js.map +0 -1
- package/cjs/common/event-transformer.d.ts +0 -12
- package/cjs/common/event-transformer.js +0 -73
- package/cjs/common/event-transformer.js.map +0 -1
- package/cjs/interface/event-listener-manager.d.ts +0 -7
- package/cjs/interface/event-listener-manager.js +0 -6
- package/cjs/interface/event-listener-manager.js.map +0 -1
- package/es/common/event-listener-manager.d.ts +0 -14
- package/es/common/event-listener-manager.js +0 -44
- package/es/common/event-listener-manager.js.map +0 -1
- package/es/common/event-transformer.d.ts +0 -12
- package/es/common/event-transformer.js +0 -63
- package/es/common/event-transformer.js.map +0 -1
- package/es/interface/event-listener-manager.d.ts +0 -7
- package/es/interface/event-listener-manager.js +0 -2
- package/es/interface/event-listener-manager.js.map +0 -1
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { IEventListenerManager } from '../interface/event-listener-manager';
|
|
2
|
-
export declare class EventListenerManager implements IEventListenerManager {
|
|
3
|
-
protected _listenerMap: Map<string, Map<EventListenerOrEventListenerObject, EventListener>>;
|
|
4
|
-
protected _eventListenerTransformer: (event: Event) => Event;
|
|
5
|
-
constructor();
|
|
6
|
-
setEventListenerTransformer(transformer: (event: Event) => Event): void;
|
|
7
|
-
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
8
|
-
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
9
|
-
dispatchEvent(event: Event): boolean;
|
|
10
|
-
clearAllEventListeners(): void;
|
|
11
|
-
protected _nativeAddEventListener(type: string, listener: EventListener, options?: boolean | AddEventListenerOptions): void;
|
|
12
|
-
protected _nativeRemoveEventListener(type: string, listener: EventListener, options?: boolean | EventListenerOptions): void;
|
|
13
|
-
protected _nativeDispatchEvent(event: Event): boolean;
|
|
14
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
export class EventListenerManager {
|
|
2
|
-
constructor() {
|
|
3
|
-
this._listenerMap = new Map, this._eventListenerTransformer = event => event;
|
|
4
|
-
}
|
|
5
|
-
setEventListenerTransformer(transformer) {
|
|
6
|
-
this._eventListenerTransformer = transformer || (event => event);
|
|
7
|
-
}
|
|
8
|
-
addEventListener(type, listener, options) {
|
|
9
|
-
if (!listener) return;
|
|
10
|
-
const wrappedListener = event => {
|
|
11
|
-
const transformedEvent = this._eventListenerTransformer(event);
|
|
12
|
-
"function" == typeof listener ? listener(transformedEvent) : listener.handleEvent && listener.handleEvent(transformedEvent);
|
|
13
|
-
};
|
|
14
|
-
this._listenerMap.has(type) || this._listenerMap.set(type, new Map), this._listenerMap.get(type).set(listener, wrappedListener),
|
|
15
|
-
this._nativeAddEventListener(type, wrappedListener, options);
|
|
16
|
-
}
|
|
17
|
-
removeEventListener(type, listener, options) {
|
|
18
|
-
var _a;
|
|
19
|
-
if (!listener) return;
|
|
20
|
-
const wrappedListener = null === (_a = this._listenerMap.get(type)) || void 0 === _a ? void 0 : _a.get(listener);
|
|
21
|
-
wrappedListener && (this._nativeRemoveEventListener(type, wrappedListener, options),
|
|
22
|
-
this._listenerMap.get(type).delete(listener), 0 === this._listenerMap.get(type).size && this._listenerMap.delete(type));
|
|
23
|
-
}
|
|
24
|
-
dispatchEvent(event) {
|
|
25
|
-
return this._nativeDispatchEvent(event);
|
|
26
|
-
}
|
|
27
|
-
clearAllEventListeners() {
|
|
28
|
-
this._listenerMap.forEach(((listenersMap, type) => {
|
|
29
|
-
listenersMap.forEach(((wrappedListener, originalListener) => {
|
|
30
|
-
this._nativeRemoveEventListener(type, wrappedListener, void 0);
|
|
31
|
-
}));
|
|
32
|
-
})), this._listenerMap.clear();
|
|
33
|
-
}
|
|
34
|
-
_nativeAddEventListener(type, listener, options) {
|
|
35
|
-
throw new Error("_nativeAddEventListener must be implemented by derived classes");
|
|
36
|
-
}
|
|
37
|
-
_nativeRemoveEventListener(type, listener, options) {
|
|
38
|
-
throw new Error("_nativeRemoveEventListener must be implemented by derived classes");
|
|
39
|
-
}
|
|
40
|
-
_nativeDispatchEvent(event) {
|
|
41
|
-
throw new Error("_nativeDispatchEvent must be implemented by derived classes");
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=event-listener-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/event-listener-manager.ts"],"names":[],"mappings":"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","file":"event-listener-manager.js","sourcesContent":["import type { IEventListenerManager } from '../interface/event-listener-manager';\n\n/**\n * Base class to manage event listeners with support for event transformation\n * Used by DefaultGlobal and DefaultWindow to handle the transformation of event coordinates\n */\nexport class EventListenerManager implements IEventListenerManager {\n /**\n * Map that stores the mapping from original listeners to wrapped listeners\n * Structure: Map<eventType, Map<originalListener, wrappedListener>>\n */\n protected _listenerMap: Map<string, Map<EventListenerOrEventListenerObject, EventListener>>;\n\n /**\n * Transformer function that transforms the event\n */\n protected _eventListenerTransformer: (event: Event) => Event;\n\n constructor() {\n this._listenerMap = new Map();\n this._eventListenerTransformer = event => event; // Default: no transformation\n }\n\n /**\n * Set the event transformer function\n * @param transformer Function that transforms events\n */\n setEventListenerTransformer(transformer: (event: Event) => Event): void {\n this._eventListenerTransformer = transformer || (event => event);\n }\n\n /**\n * Add an event listener with event transformation\n * @param type Event type\n * @param listener Original event listener\n * @param options Event listener options\n */\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ): void {\n if (!listener) {\n return;\n }\n\n // Create a wrapped listener that applies the transformation\n const wrappedListener = (event: Event) => {\n const transformedEvent = this._eventListenerTransformer(event);\n if (typeof listener === 'function') {\n listener(transformedEvent);\n } else if (listener.handleEvent) {\n listener.handleEvent(transformedEvent);\n }\n };\n\n // Store the mapping between original and wrapped listener\n if (!this._listenerMap.has(type)) {\n this._listenerMap.set(type, new Map());\n }\n this._listenerMap.get(type)!.set(listener, wrappedListener);\n\n // Add the wrapped listener\n this._nativeAddEventListener(type, wrappedListener, options);\n }\n\n /**\n * Remove an event listener\n * @param type Event type\n * @param listener Event listener to remove\n * @param options Event listener options\n */\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ): void {\n if (!listener) {\n return;\n }\n\n // Get the wrapped listener from our map\n const wrappedListener = this._listenerMap.get(type)?.get(listener);\n if (wrappedListener) {\n // Remove the wrapped listener\n this._nativeRemoveEventListener(type, wrappedListener, options);\n\n // Remove from our map\n this._listenerMap.get(type)!.delete(listener);\n if (this._listenerMap.get(type)!.size === 0) {\n this._listenerMap.delete(type);\n }\n }\n }\n\n /**\n * Dispatch an event\n * @param event Event to dispatch\n */\n dispatchEvent(event: Event): boolean {\n return this._nativeDispatchEvent(event);\n }\n\n /**\n * Clear all event listeners\n */\n clearAllEventListeners(): void {\n this._listenerMap.forEach((listenersMap, type) => {\n listenersMap.forEach((wrappedListener, originalListener) => {\n this._nativeRemoveEventListener(type, wrappedListener, undefined);\n });\n });\n this._listenerMap.clear();\n }\n\n /**\n * Native implementation of addEventListener\n * To be implemented by derived classes\n */\n protected _nativeAddEventListener(\n type: string,\n listener: EventListener,\n options?: boolean | AddEventListenerOptions\n ): void {\n throw new Error('_nativeAddEventListener must be implemented by derived classes');\n }\n\n /**\n * Native implementation of removeEventListener\n * To be implemented by derived classes\n */\n protected _nativeRemoveEventListener(\n type: string,\n listener: EventListener,\n options?: boolean | EventListenerOptions\n ): void {\n throw new Error('_nativeRemoveEventListener must be implemented by derived classes');\n }\n\n /**\n * Native implementation of dispatchEvent\n * To be implemented by derived classes\n */\n protected _nativeDispatchEvent(event: Event): boolean {\n throw new Error('_nativeDispatchEvent must be implemented by derived classes');\n }\n}\n"]}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { IAABBBounds } from '@visactor/vutils';
|
|
2
|
-
import type { Matrix } from '@visactor/vutils';
|
|
3
|
-
import type { IGlobal, IWindow } from '../interface';
|
|
4
|
-
export declare function createEventTransformer(containerElement: HTMLElement, getMatrix: () => Matrix, getRect: () => IAABBBounds, transformPoint: (clientX: number, clientY: number, matrix: Matrix, rect: IAABBBounds, transformedEvent: Event) => void): (event: Event) => Event;
|
|
5
|
-
export declare function createCanvasEventTransformer(canvasElement: HTMLCanvasElement, getMatrix: () => Matrix, getRect: () => IAABBBounds, transformPoint: (clientX: number, clientY: number, matrix: Matrix, rect: IAABBBounds, transformedEvent: Event) => void): (event: Event) => Event;
|
|
6
|
-
export declare function registerWindowEventTransformer(window: IWindow, container: HTMLElement, getMatrix: () => Matrix, getRect: () => IAABBBounds, transformPoint: (clientX: number, clientY: number, matrix: Matrix, rect: IAABBBounds, transformedEvent: Event) => void): void;
|
|
7
|
-
export declare function registerGlobalEventTransformer(global: IGlobal, container: HTMLElement, getMatrix: () => Matrix, getRect: () => IAABBBounds, transformPoint: (clientX: number, clientY: number, matrix: Matrix, rect: IAABBBounds, transformedEvent: Event) => void): void;
|
|
8
|
-
export declare function transformPointForCanvas(clientX: number, clientY: number, matrix: Matrix, rect: IAABBBounds, transformedEvent: Event): void;
|
|
9
|
-
export declare function mapToCanvasPointForCanvas(nativeEvent: any): {
|
|
10
|
-
x: any;
|
|
11
|
-
y: any;
|
|
12
|
-
};
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import { isNumber } from "../canvas/util";
|
|
2
|
-
|
|
3
|
-
function isIdentityMatrix(matrix) {
|
|
4
|
-
return 1 === matrix.a && 0 === matrix.b && 0 === matrix.c && 1 === matrix.d && 0 === matrix.e && 0 === matrix.f;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
export function createEventTransformer(containerElement, getMatrix, getRect, transformPoint) {
|
|
8
|
-
return event => {
|
|
9
|
-
if (!(event instanceof MouseEvent || event instanceof TouchEvent || event instanceof PointerEvent)) return event;
|
|
10
|
-
const transformMatrix = getMatrix();
|
|
11
|
-
if (isIdentityMatrix(transformMatrix)) return event;
|
|
12
|
-
const containerRect = getRect(), transformedEvent = new event.constructor(event.type, event);
|
|
13
|
-
if (Object.defineProperties(transformedEvent, {
|
|
14
|
-
target: {
|
|
15
|
-
value: event.target
|
|
16
|
-
},
|
|
17
|
-
currentTarget: {
|
|
18
|
-
value: event.currentTarget
|
|
19
|
-
}
|
|
20
|
-
}), event instanceof MouseEvent || event instanceof PointerEvent) transformPoint(event.clientX, event.clientY, transformMatrix, containerRect, transformedEvent); else if (event instanceof TouchEvent && event.touches.length > 0) {
|
|
21
|
-
const touch = event.touches[0];
|
|
22
|
-
transformPoint(touch.clientX, touch.clientY, transformMatrix, containerRect, transformedEvent);
|
|
23
|
-
}
|
|
24
|
-
return transformedEvent;
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export function createCanvasEventTransformer(canvasElement, getMatrix, getRect, transformPoint) {
|
|
29
|
-
return createEventTransformer(canvasElement.parentElement || canvasElement, getMatrix, getRect, transformPoint);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export function registerWindowEventTransformer(window, container, getMatrix, getRect, transformPoint) {
|
|
33
|
-
const transformer = createEventTransformer(container, getMatrix, getRect, transformPoint);
|
|
34
|
-
window.setEventListenerTransformer(transformer);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export function registerGlobalEventTransformer(global, container, getMatrix, getRect, transformPoint) {
|
|
38
|
-
const transformer = createEventTransformer(container, getMatrix, getRect, transformPoint);
|
|
39
|
-
global.setEventListenerTransformer(transformer);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export function transformPointForCanvas(clientX, clientY, matrix, rect, transformedEvent) {
|
|
43
|
-
const transformedPoint = {
|
|
44
|
-
x: clientX,
|
|
45
|
-
y: clientY
|
|
46
|
-
};
|
|
47
|
-
matrix.transformPoint(transformedPoint, transformedPoint), Object.defineProperties(transformedEvent, {
|
|
48
|
-
_canvasX: {
|
|
49
|
-
value: transformedPoint.x
|
|
50
|
-
},
|
|
51
|
-
_canvasY: {
|
|
52
|
-
value: transformedPoint.y
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
export function mapToCanvasPointForCanvas(nativeEvent) {
|
|
58
|
-
if (isNumber(nativeEvent._canvasX) && isNumber(nativeEvent._canvasY)) return {
|
|
59
|
-
x: nativeEvent._canvasX,
|
|
60
|
-
y: nativeEvent._canvasY
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
//# sourceMappingURL=event-transformer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/event-transformer.ts"],"names":[],"mappings":"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","file":"event-transformer.js","sourcesContent":["import type { IAABBBounds } from '@visactor/vutils';\nimport type { Matrix } from '@visactor/vutils';\nimport type { IGlobal, IWindow } from '../interface';\nimport { isNumber } from '../canvas/util';\n\nfunction isIdentityMatrix(matrix: Matrix): boolean {\n return matrix.a === 1 && matrix.b === 0 && matrix.c === 0 && matrix.d === 1 && matrix.e === 0 && matrix.f === 0;\n}\n\n/**\n * Create an event transformer that corrects event coordinates based on container transformations\n * @param containerElement The container element\n * @param matrix The transformation matrix to apply\n * @param rect Optional DOMRect of the container, if not provided will use getBoundingClientRect\n * @returns A function that transforms events to correct coordinates\n */\nexport function createEventTransformer(\n containerElement: HTMLElement,\n getMatrix: () => Matrix,\n getRect: () => IAABBBounds,\n transformPoint: (clientX: number, clientY: number, matrix: Matrix, rect: IAABBBounds, transformedEvent: Event) => void\n): (event: Event) => Event {\n return (event: Event): Event => {\n // Only transform mouse and touch events that have coordinates\n if (!(event instanceof MouseEvent) && !(event instanceof TouchEvent) && !(event instanceof PointerEvent)) {\n return event;\n }\n\n // Use provided matrix\n const transformMatrix = getMatrix();\n\n // If there's no transformation, return the original event\n if (isIdentityMatrix(transformMatrix)) {\n return event;\n }\n\n // Get the container's bounding rect for coordinate conversion\n const containerRect = getRect();\n\n // Create a copy of the event to modify\n const transformedEvent = new (event.constructor as any)(event.type, event);\n Object.defineProperties(transformedEvent, {\n target: { value: event.target },\n currentTarget: { value: event.currentTarget }\n });\n\n if (event instanceof MouseEvent || event instanceof PointerEvent) {\n transformPoint(event.clientX, event.clientY, transformMatrix, containerRect, transformedEvent);\n } else if (event instanceof TouchEvent) {\n // For touch events, we need to transform each touch point\n // This is a simplified version that assumes we're only using the first touch\n if (event.touches.length > 0) {\n const touch = event.touches[0];\n transformPoint(touch.clientX, touch.clientY, transformMatrix, containerRect, transformedEvent);\n }\n }\n\n return transformedEvent;\n };\n}\n\n/**\n * Create an event transformer for the given canvas element\n * @param canvasElement The canvas element\n * @param getMatrix The transformation matrix to apply\n * @param getRect Optional DOMRect of the container\n * @returns A function that transforms events to correct coordinates\n */\nexport function createCanvasEventTransformer(\n canvasElement: HTMLCanvasElement,\n getMatrix: () => Matrix,\n getRect: () => IAABBBounds,\n transformPoint: (clientX: number, clientY: number, matrix: Matrix, rect: IAABBBounds, transformedEvent: Event) => void\n): (event: Event) => Event {\n return createEventTransformer(canvasElement.parentElement || canvasElement, getMatrix, getRect, transformPoint);\n}\n\n/**\n * Register the event transformer with a DefaultWindow instance\n * @param window The window instance\n * @param container The container element\n * @param getMatrix The transformation matrix to apply\n * @param getRect Optional DOMRect of the container\n */\nexport function registerWindowEventTransformer(\n window: IWindow,\n container: HTMLElement,\n getMatrix: () => Matrix,\n getRect: () => IAABBBounds,\n transformPoint: (clientX: number, clientY: number, matrix: Matrix, rect: IAABBBounds, transformedEvent: Event) => void\n): void {\n const transformer = createEventTransformer(container, getMatrix, getRect, transformPoint);\n window.setEventListenerTransformer(transformer);\n}\n\n/**\n * Register the event transformer with a DefaultGlobal instance\n * @param global The global instance\n * @param container The container element\n * @param getMatrix The transformation matrix to apply\n * @param getRect Optional DOMRect of the container\n */\nexport function registerGlobalEventTransformer(\n global: IGlobal,\n container: HTMLElement,\n getMatrix: () => Matrix,\n getRect: () => IAABBBounds,\n transformPoint: (clientX: number, clientY: number, matrix: Matrix, rect: IAABBBounds, transformedEvent: Event) => void\n): void {\n const transformer = createEventTransformer(container, getMatrix, getRect, transformPoint);\n global.setEventListenerTransformer(transformer);\n}\n\nexport function transformPointForCanvas(\n clientX: number,\n clientY: number,\n matrix: Matrix,\n rect: IAABBBounds,\n transformedEvent: Event\n) {\n // Apply the inverse transformation\n const transformedPoint = { x: clientX, y: clientY };\n\n matrix.transformPoint(transformedPoint, transformedPoint);\n\n // Update the event properties\n Object.defineProperties(transformedEvent, {\n _canvasX: { value: transformedPoint.x },\n _canvasY: { value: transformedPoint.y }\n });\n return;\n}\n\nexport function mapToCanvasPointForCanvas(nativeEvent: any) {\n if (isNumber(nativeEvent._canvasX) && isNumber(nativeEvent._canvasY)) {\n return {\n x: nativeEvent._canvasX,\n y: nativeEvent._canvasY\n };\n }\n return;\n}\n"]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export interface IEventListenerManager {
|
|
2
|
-
setEventListenerTransformer: (transformer: (event: Event) => Event) => void;
|
|
3
|
-
addEventListener: (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) => void;
|
|
4
|
-
removeEventListener: (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions) => void;
|
|
5
|
-
dispatchEvent: (event: Event) => boolean;
|
|
6
|
-
clearAllEventListeners: () => void;
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/interface/event-listener-manager.ts"],"names":[],"mappings":"","file":"event-listener-manager.js","sourcesContent":["/**\n * Interface for event listener management with transformation capabilities\n */\nexport interface IEventListenerManager {\n /**\n * Set the event transformer function\n * @param transformer Function that transforms events\n */\n setEventListenerTransformer: (transformer: (event: Event) => Event) => void;\n\n /**\n * Add an event listener with event transformation\n * @param type Event type\n * @param listener Event listener function or object\n * @param options Event listener options\n */\n addEventListener: (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ) => void;\n\n /**\n * Remove an event listener\n * @param type Event type\n * @param listener Event listener to remove\n * @param options Event listener options\n */\n removeEventListener: (\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions\n ) => void;\n\n /**\n * Dispatch an event\n * @param event Event to dispatch\n */\n dispatchEvent: (event: Event) => boolean;\n\n /**\n * Clear all event listeners\n */\n clearAllEventListeners: () => void;\n}\n"]}
|