@aura3d/input 4.7.12 → 5.0.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.
Files changed (58) hide show
  1. package/dist/ActionMap.d.ts.map +1 -1
  2. package/dist/ActionMap.js.map +1 -1
  3. package/dist/ComboDetector.d.ts.map +1 -1
  4. package/dist/ComboDetector.js.map +1 -1
  5. package/dist/GamepadDevice.d.ts.map +1 -1
  6. package/dist/GamepadDevice.js.map +1 -1
  7. package/dist/GamepadInput.d.ts.map +1 -1
  8. package/dist/GamepadInput.js.map +1 -1
  9. package/dist/GestureControls.d.ts.map +1 -1
  10. package/dist/GestureControls.js.map +1 -1
  11. package/dist/GestureRecognizer.d.ts +5 -1
  12. package/dist/GestureRecognizer.d.ts.map +1 -1
  13. package/dist/GestureRecognizer.js +74 -18
  14. package/dist/GestureRecognizer.js.map +1 -1
  15. package/dist/Haptics.d.ts.map +1 -1
  16. package/dist/Haptics.js.map +1 -1
  17. package/dist/InputReplay.d.ts.map +1 -1
  18. package/dist/InputReplay.js +42 -13
  19. package/dist/InputReplay.js.map +1 -1
  20. package/dist/InputSnapshot.d.ts +62 -7
  21. package/dist/InputSnapshot.d.ts.map +1 -1
  22. package/dist/InputSnapshot.js +36 -5
  23. package/dist/InputSnapshot.js.map +1 -1
  24. package/dist/InputSystem.d.ts +10 -1
  25. package/dist/InputSystem.d.ts.map +1 -1
  26. package/dist/InputSystem.js +175 -12
  27. package/dist/InputSystem.js.map +1 -1
  28. package/dist/InputValueProcessors.d.ts.map +1 -1
  29. package/dist/InputValueProcessors.js.map +1 -1
  30. package/dist/InteractionSystem.d.ts +9 -4
  31. package/dist/InteractionSystem.d.ts.map +1 -1
  32. package/dist/InteractionSystem.js +93 -18
  33. package/dist/InteractionSystem.js.map +1 -1
  34. package/dist/KeyboardDevice.d.ts.map +1 -1
  35. package/dist/KeyboardDevice.js.map +1 -1
  36. package/dist/PickingRay.d.ts.map +1 -1
  37. package/dist/PickingRay.js.map +1 -1
  38. package/dist/PointerDevice.d.ts +61 -11
  39. package/dist/PointerDevice.d.ts.map +1 -1
  40. package/dist/PointerDevice.js +306 -34
  41. package/dist/PointerDevice.js.map +1 -1
  42. package/dist/PointerLeases.d.ts +22 -0
  43. package/dist/PointerLeases.d.ts.map +1 -0
  44. package/dist/PointerLeases.js +432 -0
  45. package/dist/PointerLeases.js.map +1 -0
  46. package/dist/TouchLayouts.d.ts.map +1 -1
  47. package/dist/TouchLayouts.js.map +1 -1
  48. package/dist/VirtualTouchControls.d.ts.map +1 -1
  49. package/dist/VirtualTouchControls.js.map +1 -1
  50. package/dist/WebXRSessionController.d.ts +161 -51
  51. package/dist/WebXRSessionController.d.ts.map +1 -1
  52. package/dist/WebXRSessionController.js +430 -203
  53. package/dist/WebXRSessionController.js.map +1 -1
  54. package/dist/index.d.ts +5 -3
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +1 -0
  57. package/dist/index.js.map +1 -1
  58. package/package.json +4 -3
@@ -1 +1 @@
1
- {"version":3,"file":"PickingRay.d.ts","sourceRoot":"","sources":["../../../../packages/input/src/PickingRay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAW,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAUxD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,kBAAoC,GAC7C,GAAG,CAQL"}
1
+ {"version":3,"file":"PickingRay.d.ts","sourceRoot":"","sources":["../src/PickingRay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAW,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAUxD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,kBAAoC,GAC7C,GAAG,CAQL"}
@@ -1 +1 @@
1
- {"version":3,"file":"PickingRay.js","sourceRoot":"","sources":["../../../../packages/input/src/PickingRay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAe,MAAM,eAAe,CAAC;AAiBxD,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,OAAe,EACf,OAAe,EACf,WAA+B,MAAM,CAAC,QAAQ;IAE9C,MAAM,CAAC,oBAAoB,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChE,MAAM,qBAAqB,GAAG,UAAU,CAAC,MAAM,CAAC,oBAAoB,CAAc,CAAC;IACnF,MAAM,IAAI,GAAG,aAAa,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,GAAG,GAAG,aAAa,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,aAAa,CAAC,MAAiB,EAAE,KAAa;IACrD,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACnB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACnB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACnB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7C,OAAO;QACL,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;QACnE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;QACnE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;KACrE,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"PickingRay.js","sourceRoot":"","sources":["../src/PickingRay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAe,MAAM,eAAe,CAAC;AAiBxD,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,OAAe,EACf,OAAe,EACf,WAA+B,MAAM,CAAC,QAAQ;IAE9C,MAAM,CAAC,oBAAoB,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/D,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChE,MAAM,qBAAqB,GAAG,UAAU,CAAC,MAAM,CAAC,oBAAoB,CAAc,CAAC;IACnF,MAAM,IAAI,GAAG,aAAa,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,GAAG,GAAG,aAAa,CAAC,qBAAqB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAClE,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,aAAa,CAAC,MAAiB,EAAE,KAAa;IACrD,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACnB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACnB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACnB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7C,OAAO;QACL,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;QACnE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;QACnE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI;KACrE,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { PointerTouch } from "./InputSnapshot.js";
1
+ import type { PointerCancellation, PointerCancellationReason, PointerContact } from "./InputSnapshot.js";
2
2
  export interface PointerEventLike {
3
3
  readonly clientX: number;
4
4
  readonly clientY: number;
@@ -6,13 +6,30 @@ export interface PointerEventLike {
6
6
  readonly buttons?: number;
7
7
  readonly pointerId?: number;
8
8
  readonly pointerType?: string;
9
+ readonly timeStamp?: number;
9
10
  preventDefault?(): void;
10
11
  }
11
12
  export interface WheelEventLike {
12
13
  readonly deltaX: number;
13
14
  readonly deltaY: number;
15
+ readonly clientX?: number;
16
+ readonly clientY?: number;
17
+ readonly timeStamp?: number;
14
18
  preventDefault?(): void;
15
19
  }
20
+ /** The drawing buffer can differ from CSS size and devicePixelRatio. */
21
+ export interface PointerCoordinateTarget {
22
+ readonly width?: number;
23
+ readonly height?: number;
24
+ readonly offsetWidth?: number;
25
+ readonly offsetHeight?: number;
26
+ getBoundingClientRect?(): {
27
+ readonly left: number;
28
+ readonly top: number;
29
+ readonly width: number;
30
+ readonly height: number;
31
+ };
32
+ }
16
33
  export declare class PointerDevice {
17
34
  x: number;
18
35
  y: number;
@@ -20,16 +37,28 @@ export declare class PointerDevice {
20
37
  deltaY: number;
21
38
  wheelX: number;
22
39
  wheelY: number;
23
- private readonly buttons;
40
+ private readonly contacts;
41
+ private readonly retired;
42
+ private readonly cancellations;
43
+ private readonly cancelledButtons;
44
+ private cancellationReason?;
24
45
  private previousButtons;
25
- private readonly touches;
26
46
  private pixelRatio;
47
+ private primaryId?;
48
+ private lastCoordinates;
49
+ private lastTimestamp;
50
+ private coordinateTarget?;
27
51
  setDevicePixelRatio(value: number): void;
28
- move(event: PointerEventLike): void;
29
- down(event: PointerEventLike): void;
30
- up(event: PointerEventLike): void;
31
- wheel(event: WheelEventLike): void;
32
- blur(): void;
52
+ setCoordinateTarget(target?: PointerCoordinateTarget): void;
53
+ move(event: PointerEventLike, target?: PointerCoordinateTarget): void;
54
+ down(event: PointerEventLike, target?: PointerCoordinateTarget): void;
55
+ up(event: PointerEventLike, target?: PointerCoordinateTarget): void;
56
+ cancel(event: PointerEventLike, reason?: PointerCancellationReason, target?: PointerCoordinateTarget): void;
57
+ /** End hover when a pointer leaves the target; an active captured contact continues. */
58
+ leave(event: PointerEventLike): void;
59
+ private retire;
60
+ wheel(event: WheelEventLike, target?: PointerCoordinateTarget): void;
61
+ blur(reason?: PointerCancellationReason, timestamp?: number): void;
33
62
  snapshotData(): {
34
63
  pointer: {
35
64
  x: number;
@@ -38,15 +67,36 @@ export declare class PointerDevice {
38
67
  deltaY: number;
39
68
  wheelX: number;
40
69
  wheelY: number;
41
- buttons: Map<number, {
70
+ timestamp: number;
71
+ primaryId: number | undefined;
72
+ buttons: Map<number, Readonly<{
42
73
  down: boolean;
43
74
  pressed: boolean;
44
75
  released: boolean;
45
- }>;
46
- touches: PointerTouch[];
76
+ }>>;
77
+ contacts: PointerContact[];
78
+ touches: PointerContact[];
79
+ cancellations: PointerCancellation[];
80
+ cancellationReason: PointerCancellationReason | undefined;
81
+ clientX: number;
82
+ clientY: number;
83
+ cssX: number;
84
+ cssY: number;
85
+ framebufferX: number;
86
+ framebufferY: number;
47
87
  };
48
88
  previousPointerButtons: Set<number>;
89
+ cancelledPointerButtons: Set<number>;
49
90
  };
50
91
  endFrame(): void;
92
+ private createContact;
93
+ private moveContact;
94
+ private updateOverTarget;
95
+ private cancelContact;
96
+ private currentButtons;
97
+ private syncButtons;
98
+ private selectPrimary;
99
+ private refreshPrimary;
100
+ private snapshotContact;
51
101
  }
52
102
  //# sourceMappingURL=PointerDevice.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PointerDevice.d.ts","sourceRoot":"","sources":["../../../../packages/input/src/PointerDevice.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,IAAI,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,IAAI,IAAI,CAAC;CACzB;AAED,qBAAa,aAAa;IACxB,CAAC,SAAK;IACN,CAAC,SAAK;IACN,MAAM,SAAK;IACX,MAAM,SAAK;IACX,MAAM,SAAK;IACX,MAAM,SAAK;IAEX,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,UAAU,CAAK;IAEvB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOxC,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAanC,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAKnC,EAAE,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAQjC,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAKlC,IAAI,IAAI,IAAI;IAKZ,YAAY;;;;;;;;;sBACgC,OAAO;yBAAW,OAAO;0BAAY,OAAO;;;;;;IAoBxF,QAAQ,IAAI,IAAI;CAOjB"}
1
+ {"version":3,"file":"PointerDevice.d.ts","sourceRoot":"","sources":["../src/PointerDevice.ts"],"names":[],"mappings":"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"}
@@ -5,71 +5,343 @@ export class PointerDevice {
5
5
  deltaY = 0;
6
6
  wheelX = 0;
7
7
  wheelY = 0;
8
- buttons = new Set();
8
+ contacts = new Map();
9
+ retired = [];
10
+ cancellations = [];
11
+ cancelledButtons = new Set();
12
+ cancellationReason;
9
13
  previousButtons = new Set();
10
- touches = new Map();
11
14
  pixelRatio = 1;
15
+ primaryId;
16
+ lastCoordinates = coordinates(0, 0, undefined, 1);
17
+ lastTimestamp = 0;
18
+ coordinateTarget;
12
19
  setDevicePixelRatio(value) {
13
- if (!Number.isFinite(value) || value <= 0) {
20
+ if (!Number.isFinite(value) || value <= 0)
14
21
  throw new Error("Device pixel ratio must be positive");
15
- }
16
22
  this.pixelRatio = value;
17
23
  }
18
- move(event) {
19
- const nextX = event.clientX * this.pixelRatio;
20
- const nextY = event.clientY * this.pixelRatio;
21
- this.deltaX += nextX - this.x;
22
- this.deltaY += nextY - this.y;
23
- this.x = nextX;
24
- this.y = nextY;
25
- if (event.pointerId !== undefined && event.pointerType !== "mouse" && event.pointerType !== "pen") {
26
- this.touches.set(event.pointerId, { id: event.pointerId, x: this.x, y: this.y });
24
+ setCoordinateTarget(target) {
25
+ this.coordinateTarget = target;
26
+ }
27
+ move(event, target) {
28
+ const id = event.pointerId ?? 0;
29
+ let contact = this.contacts.get(id);
30
+ if (contact?.cancelled)
31
+ return;
32
+ const wasActive = (contact?.buttons.size ?? 0) > 0;
33
+ // A mouse or pen can hover; a touch does not become active until pointerdown.
34
+ if (!contact && event.pointerType === "touch")
35
+ return;
36
+ if (!contact) {
37
+ contact = this.createContact(event, target);
38
+ this.contacts.set(id, contact);
39
+ if (this.primaryId === undefined)
40
+ this.primaryId = id;
41
+ }
42
+ else {
43
+ this.moveContact(contact, event, target);
44
+ }
45
+ this.updateOverTarget(contact, event, target);
46
+ // Pointer Events report extra mouse/pen chord changes on pointermove, not
47
+ // as another pointerdown/up. A zero mask is left to pointerup/cancel so a
48
+ // transient move cannot masquerade as an activation release.
49
+ if (wasActive && contact.pointerType !== "touch" && event.buttons !== undefined && event.buttons > 0) {
50
+ this.syncButtons(contact, event.buttons);
27
51
  }
52
+ if (![...this.contacts.values()].some(item => item.buttons.size > 0))
53
+ this.primaryId = id;
54
+ this.selectPrimary();
55
+ this.refreshPrimary();
28
56
  }
29
- down(event) {
30
- this.move(event);
31
- this.buttons.add(event.button ?? 0);
57
+ down(event, target) {
58
+ const id = event.pointerId ?? 0;
59
+ let contact = this.contacts.get(id);
60
+ if (contact && contact.buttons.size === 0 && (contact.released.size > 0 || contact.cancelled)) {
61
+ this.retired.push(contact);
62
+ this.contacts.delete(id);
63
+ contact = undefined;
64
+ }
65
+ if (!contact) {
66
+ contact = this.createContact(event, target);
67
+ this.contacts.set(id, contact);
68
+ }
69
+ else {
70
+ this.moveContact(contact, event, target);
71
+ if (contact.buttons.size === 0) {
72
+ contact.startedAt = eventTime(event.timeStamp);
73
+ contact.startClientX = event.clientX;
74
+ contact.startClientY = event.clientY;
75
+ contact.maxClientDistance = 0;
76
+ contact.hadMultipleContacts = false;
77
+ contact.deltaX = contact.deltaY = 0;
78
+ }
79
+ }
80
+ const button = event.button ?? 0;
81
+ contact.overTarget = true;
82
+ if (!contact.buttons.has(button))
83
+ contact.pressed.add(button);
84
+ contact.buttons.add(button);
85
+ this.cancelledButtons.delete(button);
86
+ if (contact.pointerType !== "touch" && event.buttons !== undefined && event.buttons > 0)
87
+ this.syncButtons(contact, event.buttons);
88
+ const active = [...this.contacts.values()].filter(item => item.buttons.size > 0 && item.pointerType === "touch");
89
+ if (active.length > 1)
90
+ for (const item of active)
91
+ item.hadMultipleContacts = true;
92
+ this.selectPrimary();
93
+ this.refreshPrimary();
32
94
  }
33
- up(event) {
34
- this.move(event);
35
- this.buttons.delete(event.button ?? 0);
36
- if (event.pointerId !== undefined) {
37
- this.touches.delete(event.pointerId);
95
+ up(event, target) {
96
+ const contact = this.contacts.get(event.pointerId ?? 0);
97
+ if (!contact || contact.buttons.size === 0)
98
+ return;
99
+ this.moveContact(contact, event, target);
100
+ this.updateOverTarget(contact, event, target);
101
+ const released = event.buttons === 0 && contact.pointerType !== "touch" ? [...contact.buttons] : [event.button ?? 0];
102
+ for (const button of released) {
103
+ if (contact.buttons.delete(button)) {
104
+ contact.released.add(button);
105
+ if (!this.currentButtons().has(button))
106
+ this.cancelledButtons.delete(button);
107
+ }
38
108
  }
109
+ if (contact.buttons.size === 0 && !contact.overTarget)
110
+ this.retire(contact);
111
+ this.selectPrimary();
112
+ this.refreshPrimary();
113
+ }
114
+ cancel(event, reason = "pointercancel", target) {
115
+ const contact = this.contacts.get(event.pointerId ?? 0);
116
+ if (!contact || contact.buttons.size === 0)
117
+ return;
118
+ this.moveContact(contact, event, target);
119
+ this.cancelContact(contact, reason, eventTime(event.timeStamp));
120
+ this.selectPrimary();
121
+ this.refreshPrimary();
39
122
  }
40
- wheel(event) {
123
+ /** End hover when a pointer leaves the target; an active captured contact continues. */
124
+ leave(event) {
125
+ const id = event.pointerId ?? 0;
126
+ const contact = this.contacts.get(id);
127
+ if (!contact)
128
+ return;
129
+ contact.overTarget = false;
130
+ if (contact.buttons.size > 0)
131
+ return;
132
+ this.retire(contact);
133
+ this.selectPrimary();
134
+ this.refreshPrimary();
135
+ }
136
+ retire(contact) {
137
+ const id = contact.id;
138
+ if (contact.released.size || contact.cancelled)
139
+ this.retired.push(contact);
140
+ this.contacts.delete(id);
141
+ if (this.primaryId === id)
142
+ this.primaryId = undefined;
143
+ }
144
+ wheel(event, target) {
41
145
  this.wheelX += event.deltaX;
42
146
  this.wheelY += event.deltaY;
147
+ if (Number.isFinite(event.clientX) && Number.isFinite(event.clientY)) {
148
+ const primary = this.primaryId === undefined ? undefined : this.contacts.get(this.primaryId);
149
+ if (primary) {
150
+ primary.clientX = event.clientX;
151
+ primary.clientY = event.clientY;
152
+ primary.target = target ?? primary.target ?? this.coordinateTarget;
153
+ }
154
+ this.lastCoordinates = coordinates(event.clientX, event.clientY, target ?? primary?.target ?? this.coordinateTarget, this.pixelRatio);
155
+ this.x = this.lastCoordinates.framebufferX;
156
+ this.y = this.lastCoordinates.framebufferY;
157
+ }
158
+ this.lastTimestamp = eventTime(event.timeStamp);
43
159
  }
44
- blur() {
45
- this.buttons.clear();
46
- this.touches.clear();
160
+ blur(reason = "blur", timestamp = eventTime()) {
161
+ this.cancellationReason = reason;
162
+ for (const [id, contact] of this.contacts) {
163
+ if (contact.buttons.size > 0)
164
+ this.cancelContact(contact, reason, timestamp);
165
+ else
166
+ this.contacts.delete(id);
167
+ }
168
+ this.selectPrimary();
169
+ this.refreshPrimary();
47
170
  }
48
171
  snapshotData() {
49
172
  const buttonMap = new Map();
50
- for (const button of this.buttons) {
173
+ for (const button of this.currentButtons())
51
174
  buttonMap.set(button, { down: true, pressed: false, released: false });
52
- }
175
+ const contacts = [...this.retired, ...this.contacts.values()].map((contact) => this.snapshotContact(contact));
176
+ const primary = this.primaryId === undefined ? undefined : this.contacts.get(this.primaryId);
177
+ this.refreshPrimary(); // also updates coordinates after target resizing or scrolling
53
178
  return {
54
179
  pointer: {
180
+ ...this.lastCoordinates,
55
181
  x: this.x,
56
182
  y: this.y,
57
183
  deltaX: this.deltaX,
58
184
  deltaY: this.deltaY,
59
185
  wheelX: this.wheelX,
60
186
  wheelY: this.wheelY,
187
+ timestamp: Math.max(this.lastTimestamp, primary?.timestamp ?? 0),
188
+ primaryId: this.primaryId,
61
189
  buttons: buttonMap,
62
- touches: [...this.touches.values()]
190
+ contacts,
191
+ touches: contacts.filter((contact) => contact.pointerType === "touch" && contact.down),
192
+ cancellations: [...this.cancellations],
193
+ cancellationReason: this.cancellationReason
63
194
  },
64
- previousPointerButtons: new Set(this.previousButtons)
195
+ previousPointerButtons: new Set(this.previousButtons),
196
+ cancelledPointerButtons: new Set(this.cancelledButtons)
65
197
  };
66
198
  }
67
199
  endFrame() {
68
- this.previousButtons = new Set(this.buttons);
69
- this.deltaX = 0;
70
- this.deltaY = 0;
71
- this.wheelX = 0;
72
- this.wheelY = 0;
200
+ this.previousButtons = this.currentButtons();
201
+ this.retired.length = 0;
202
+ this.cancellations.length = 0;
203
+ this.cancelledButtons.clear();
204
+ this.cancellationReason = undefined;
205
+ for (const [id, contact] of this.contacts) {
206
+ contact.pressed.clear();
207
+ contact.released.clear();
208
+ contact.deltaX = contact.deltaY = 0;
209
+ if (contact.buttons.size === 0 && (contact.pointerType === "touch" || contact.cancelled))
210
+ this.contacts.delete(id);
211
+ else
212
+ contact.cancelled = false;
213
+ }
214
+ this.selectPrimary();
215
+ this.deltaX = this.deltaY = 0;
216
+ this.wheelX = this.wheelY = 0;
73
217
  }
218
+ createContact(event, target) {
219
+ const time = eventTime(event.timeStamp);
220
+ this.lastTimestamp = time;
221
+ return {
222
+ id: event.pointerId ?? 0, pointerType: event.pointerType || "mouse", overTarget: true, clientX: event.clientX, clientY: event.clientY,
223
+ startClientX: event.clientX, startClientY: event.clientY, maxClientDistance: 0, hadMultipleContacts: false, timestamp: time, startedAt: time,
224
+ target: target ?? this.coordinateTarget, deltaX: 0, deltaY: 0,
225
+ buttons: new Set(), pressed: new Set(), released: new Set(), cancelled: false
226
+ };
227
+ }
228
+ moveContact(contact, event, target) {
229
+ const actualTarget = target ?? contact.target ?? this.coordinateTarget;
230
+ const previous = coordinates(contact.clientX, contact.clientY, actualTarget, this.pixelRatio);
231
+ const next = coordinates(event.clientX, event.clientY, actualTarget, this.pixelRatio);
232
+ contact.deltaX += next.framebufferX - previous.framebufferX;
233
+ contact.deltaY += next.framebufferY - previous.framebufferY;
234
+ contact.clientX = event.clientX;
235
+ contact.clientY = event.clientY;
236
+ contact.maxClientDistance = Math.max(contact.maxClientDistance, Math.hypot(event.clientX - contact.startClientX, event.clientY - contact.startClientY));
237
+ contact.target = actualTarget;
238
+ contact.timestamp = eventTime(event.timeStamp);
239
+ this.lastTimestamp = contact.timestamp;
240
+ }
241
+ updateOverTarget(contact, event, target) {
242
+ const rect = (target ?? contact.target)?.getBoundingClientRect?.();
243
+ contact.overTarget = !rect || (event.clientX >= rect.left && event.clientX < rect.left + rect.width &&
244
+ event.clientY >= rect.top && event.clientY < rect.top + rect.height);
245
+ }
246
+ cancelContact(contact, reason, timestamp) {
247
+ const buttons = [...contact.buttons];
248
+ contact.buttons.clear();
249
+ contact.cancelled = true;
250
+ contact.timestamp = timestamp;
251
+ this.lastTimestamp = timestamp;
252
+ const remaining = this.currentButtons();
253
+ for (const button of buttons)
254
+ if (!remaining.has(button))
255
+ this.cancelledButtons.add(button);
256
+ this.cancellations.push(Object.freeze({ id: contact.id, reason, timestamp }));
257
+ }
258
+ currentButtons() {
259
+ const result = new Set();
260
+ for (const contact of this.contacts.values())
261
+ for (const button of contact.buttons)
262
+ result.add(button);
263
+ return result;
264
+ }
265
+ syncButtons(contact, mask) {
266
+ const next = new Set();
267
+ const maskByButton = [1, 4, 2, 8, 16];
268
+ for (let button = 0; button < maskByButton.length; button++)
269
+ if (mask & maskByButton[button])
270
+ next.add(button);
271
+ for (const button of contact.buttons) {
272
+ if (!next.has(button)) {
273
+ contact.buttons.delete(button);
274
+ contact.released.add(button);
275
+ }
276
+ }
277
+ for (const button of next) {
278
+ if (!contact.buttons.has(button)) {
279
+ contact.buttons.add(button);
280
+ contact.pressed.add(button);
281
+ this.cancelledButtons.delete(button);
282
+ }
283
+ }
284
+ }
285
+ selectPrimary() {
286
+ const current = this.primaryId === undefined ? undefined : this.contacts.get(this.primaryId);
287
+ if (current?.buttons.size)
288
+ return;
289
+ const active = [...this.contacts.values()].find((contact) => contact.buttons.size > 0);
290
+ if (active)
291
+ this.primaryId = active.id;
292
+ else if (!current || current.cancelled)
293
+ this.primaryId = undefined;
294
+ }
295
+ refreshPrimary() {
296
+ const primary = this.primaryId === undefined ? undefined : this.contacts.get(this.primaryId);
297
+ if (!primary) {
298
+ this.deltaX = this.deltaY = 0;
299
+ return;
300
+ }
301
+ this.lastCoordinates = coordinates(primary.clientX, primary.clientY, primary.target, this.pixelRatio);
302
+ this.x = this.lastCoordinates.framebufferX;
303
+ this.y = this.lastCoordinates.framebufferY;
304
+ this.deltaX = primary.deltaX;
305
+ this.deltaY = primary.deltaY;
306
+ }
307
+ snapshotContact(contact) {
308
+ const point = coordinates(contact.clientX, contact.clientY, contact.target, this.pixelRatio);
309
+ const start = coordinates(contact.startClientX, contact.startClientY, contact.target, this.pixelRatio);
310
+ const buttons = new Map();
311
+ for (const button of new Set([...contact.buttons, ...contact.pressed, ...contact.released])) {
312
+ buttons.set(button, Object.freeze({ down: contact.buttons.has(button), pressed: contact.pressed.has(button), released: contact.released.has(button) }));
313
+ }
314
+ return Object.freeze({
315
+ ...point, id: contact.id, pointerType: contact.pointerType, overTarget: contact.overTarget, x: point.framebufferX, y: point.framebufferY,
316
+ timestamp: contact.timestamp, startedAt: contact.startedAt, startClientX: contact.startClientX, startClientY: contact.startClientY,
317
+ maxClientDistance: contact.maxClientDistance, hadMultipleContacts: contact.hadMultipleContacts,
318
+ startX: start.framebufferX, startY: start.framebufferY, deltaX: contact.deltaX, deltaY: contact.deltaY,
319
+ buttons, down: contact.buttons.size > 0, pressed: contact.pressed.size > 0,
320
+ released: contact.buttons.size === 0 && contact.released.size > 0 && !contact.cancelled,
321
+ cancelled: contact.cancelled
322
+ });
323
+ }
324
+ }
325
+ function coordinates(clientX, clientY, target, ratio) {
326
+ const rect = target?.getBoundingClientRect?.();
327
+ const view = target?.ownerDocument?.defaultView;
328
+ const style = view?.getComputedStyle && target ? view.getComputedStyle(target) : undefined;
329
+ const cssNumber = (value) => Number.parseFloat(value ?? "") || 0;
330
+ const renderedScaleX = rect && target?.offsetWidth ? rect.width / target.offsetWidth : 1;
331
+ const renderedScaleY = rect && target?.offsetHeight ? rect.height / target.offsetHeight : 1;
332
+ const left = cssNumber(style?.borderLeftWidth) + cssNumber(style?.paddingLeft);
333
+ const right = cssNumber(style?.borderRightWidth) + cssNumber(style?.paddingRight);
334
+ const top = cssNumber(style?.borderTopWidth) + cssNumber(style?.paddingTop);
335
+ const bottom = cssNumber(style?.borderBottomWidth) + cssNumber(style?.paddingBottom);
336
+ const contentWidth = rect && renderedScaleX > 0 ? rect.width / renderedScaleX - left - right : 0;
337
+ const contentHeight = rect && renderedScaleY > 0 ? rect.height / renderedScaleY - top - bottom : 0;
338
+ const cssX = (clientX - (rect?.left ?? 0)) / (renderedScaleX || 1) - left;
339
+ const cssY = (clientY - (rect?.top ?? 0)) / (renderedScaleY || 1) - top;
340
+ const scaleX = contentWidth > 0 && Number.isFinite(target?.width) ? target.width / contentWidth : ratio;
341
+ const scaleY = contentHeight > 0 && Number.isFinite(target?.height) ? target.height / contentHeight : ratio;
342
+ return { clientX, clientY, cssX, cssY, framebufferX: cssX * scaleX, framebufferY: cssY * scaleY };
343
+ }
344
+ function eventTime(timestamp) {
345
+ return timestamp !== undefined && Number.isFinite(timestamp) && timestamp >= 0 ? timestamp : (globalThis.performance?.now() ?? Date.now());
74
346
  }
75
347
  //# sourceMappingURL=PointerDevice.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PointerDevice.js","sourceRoot":"","sources":["../../../../packages/input/src/PointerDevice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PointerDevice.js","sourceRoot":"","sources":["../src/PointerDevice.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * The capture methods are optional so browser elements and headless event
3
+ * targets can share the same coordinator without requiring a DOM element.
4
+ */
5
+ export interface PointerCaptureTargetLike {
6
+ setPointerCapture?(pointerId: number): void;
7
+ hasPointerCapture?(pointerId: number): boolean;
8
+ releasePointerCapture?(pointerId: number): void;
9
+ }
10
+ export interface TouchActionStyleLike {
11
+ touchAction: string;
12
+ getPropertyPriority?(property: string): string;
13
+ setProperty?(property: string, value: string, priority?: string): void;
14
+ }
15
+ export interface TouchActionTargetLike {
16
+ readonly style?: TouchActionStyleLike | null;
17
+ }
18
+ export declare function acquireTouchAction(element: TouchActionTargetLike, owner: object): boolean;
19
+ export declare function releaseTouchAction(element: TouchActionTargetLike, owner: object): void;
20
+ export declare function acquirePointerCapture(element: PointerCaptureTargetLike | undefined, pointerId: number, owner: object): void;
21
+ export declare function releasePointerCaptureLease(element: PointerCaptureTargetLike | undefined, pointerId: number, owner: object, release: boolean, beforeRelease?: () => void): void;
22
+ //# sourceMappingURL=PointerLeases.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PointerLeases.d.ts","sourceRoot":"","sources":["../src/PointerLeases.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,iBAAiB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,iBAAiB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/C,qBAAqB,CAAC,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACjD;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/C,WAAW,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxE;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC9C;AAgKD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAiCzF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAatF;AA0FD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,wBAAwB,GAAG,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CA+C3H;AAcD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,wBAAwB,GAAG,SAAS,EAC7C,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,EAChB,aAAa,CAAC,EAAE,MAAM,IAAI,GACzB,IAAI,CAqBN"}