@visactor/vrender-core
Version:
```typescript import { xxx } from '@visactor/vrender-core'; ```
69 lines (68 loc) • 3.21 kB
TypeScript
import { FederatedPointerEvent, FederatedWheelEvent } from './federated-event';
import type { IEventTarget } from '../interface/event';
import type { FederatedEvent } from './federated-event/base-event';
import type { Cursor } from '../interface';
type TrackingData = {
pressTargetsByButton: {
[id: number]: IEventTarget[];
};
clicksByButton: {
[id: number]: {
clickCount: number;
target: IEventTarget;
timeStamp: number;
};
};
overTargets: IEventTarget[];
};
type EventManagerConfig = {
clickInterval?: number;
supportsTouchEvents?: boolean;
};
export declare class EventManager {
rootTarget: IEventTarget;
dispatch: any;
cursor: Cursor | string;
cursorTarget: IEventTarget | null;
pauseNotify: boolean;
protected mappingTable: Record<string, Array<{
fn: (e: FederatedEvent, target: IEventTarget) => void;
priority: number;
}>>;
protected mappingState: Record<string, any>;
protected eventPool: Map<typeof FederatedEvent, FederatedEvent[]>;
private _prePointTargetCache;
private _config;
constructor(root: IEventTarget, config: EventManagerConfig);
addEventMapping(type: string, fn: (e: FederatedEvent, target: IEventTarget) => void): void;
dispatchEvent(e: FederatedEvent, type?: string): void;
mapEvent(e: FederatedEvent): void;
propagate(e: FederatedEvent, type?: string): void;
propagationPath(target: IEventTarget): IEventTarget[];
protected notifyTarget(e: FederatedEvent, type?: string): void;
protected onPointerDown: (from: FederatedEvent, target: IEventTarget) => void;
protected onPointerMove: (from: FederatedEvent, target: IEventTarget) => void;
protected onPointerOver: (from: FederatedEvent, target: IEventTarget) => void;
protected onPointerOut: (from: FederatedEvent, target: IEventTarget) => void;
protected onPointerUp: (from: FederatedEvent, target: IEventTarget) => void;
protected onPointerUpOutside: (from: FederatedEvent, target: IEventTarget) => void;
protected onWheel: (from: FederatedEvent, target: IEventTarget) => void;
protected findMountedTarget(propagationPath: IEventTarget[] | null): IEventTarget | null;
protected createPointerEvent(from: FederatedPointerEvent, type?: string, target?: IEventTarget): FederatedPointerEvent;
protected createWheelEvent(from: FederatedWheelEvent, target?: IEventTarget): FederatedWheelEvent;
protected clonePointerEvent(from: FederatedPointerEvent, type?: string): FederatedPointerEvent;
copyWheelData(from: FederatedWheelEvent, to: FederatedWheelEvent): void;
copyPointerData(from: FederatedEvent, to: FederatedEvent): void;
copyMouseData(from: FederatedEvent, to: FederatedEvent): void;
copyData(from: FederatedEvent, to: FederatedEvent): void;
protected trackingData(id: number): TrackingData;
protected allocateEvent<T extends FederatedEvent>(constructor: {
new (boundary: EventManager): T;
}): T;
protected freeEvent<T extends FederatedEvent>(event: T): void;
private notifyListeners;
private emitDelegation;
private pickTarget;
release(): void;
}
export {};