EventService.d.ts 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import type { FederatedEvent } from '../dom/FederatedEvent';
  2. import { FederatedPointerEvent } from '../dom/FederatedPointerEvent';
  3. import { FederatedWheelEvent } from '../dom/FederatedWheelEvent';
  4. import type { IEventTarget } from '../dom/interfaces';
  5. import type { PointLike } from '../shapes';
  6. import type { Cursor, EventPosition } from '../types';
  7. import { CanvasContext, GlobalRuntime } from '..';
  8. type Picker = (position: EventPosition) => IEventTarget | null;
  9. export type EmitterListeners = Record<string, {
  10. fn: (...args: any[]) => any;
  11. context: any;
  12. once: boolean;
  13. }[] | {
  14. fn: (...args: any[]) => any;
  15. context: any;
  16. once: boolean;
  17. }>;
  18. export declare class EventService {
  19. private globalRuntime;
  20. private context;
  21. constructor(globalRuntime: GlobalRuntime, context: CanvasContext);
  22. private rootTarget;
  23. private emitter;
  24. cursor: Cursor | null;
  25. private mappingTable;
  26. private mappingState;
  27. private eventPool;
  28. private pickHandler;
  29. private tmpMatrix;
  30. private tmpVec3;
  31. init(): void;
  32. destroy(): void;
  33. client2Viewport(client: PointLike): PointLike;
  34. viewport2Client(canvas: PointLike): PointLike;
  35. viewport2Canvas({ x, y }: PointLike): PointLike;
  36. canvas2Viewport(canvasP: PointLike): PointLike;
  37. setPickHandler(pickHandler: Picker): void;
  38. addEventMapping(type: string, fn: (e: FederatedEvent) => void): void;
  39. mapEvent(e: FederatedEvent): void;
  40. onPointerDown: (from: FederatedPointerEvent) => void;
  41. onPointerUp: (from: FederatedPointerEvent) => void;
  42. onPointerMove: (from: FederatedPointerEvent) => void;
  43. onPointerOut: (from: FederatedPointerEvent) => void;
  44. onPointerOver: (from: FederatedPointerEvent) => void;
  45. onPointerUpOutside: (from: FederatedPointerEvent) => void;
  46. onWheel: (from: FederatedWheelEvent) => void;
  47. onClick: (from: FederatedPointerEvent) => void;
  48. onPointerCancel: (from: FederatedPointerEvent) => void;
  49. dispatchEvent(e: FederatedEvent, type?: string, skipPropagate?: boolean): void;
  50. propagate(e: FederatedEvent, type?: string): void;
  51. propagationPath(target: IEventTarget): IEventTarget[];
  52. hitTest(position: EventPosition): IEventTarget | null;
  53. /**
  54. * whether the native event trigger came from Canvas,
  55. * should account for HTML shape
  56. */
  57. private isNativeEventFromCanvas;
  58. /**
  59. * Find HTML from composed path in native UI event.
  60. */
  61. private getExistedHTML;
  62. private pickTarget;
  63. private createPointerEvent;
  64. private createWheelEvent;
  65. private trackingData;
  66. cloneWheelEvent(from: FederatedWheelEvent): FederatedWheelEvent;
  67. clonePointerEvent(from: FederatedPointerEvent, type?: string): FederatedPointerEvent;
  68. private copyPointerData;
  69. private copyMouseData;
  70. private copyWheelData;
  71. private copyData;
  72. private allocateEvent;
  73. private freeEvent;
  74. private notifyTarget;
  75. private notifyListeners;
  76. /**
  77. * some detached nodes may exist in propagation path, need to skip them
  78. */
  79. private findMountedTarget;
  80. private getCursor;
  81. }
  82. export {};
  83. //# sourceMappingURL=EventService.d.ts.map