@msobiecki/react-marauders-path 1.24.3 → 1.26.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 (33) hide show
  1. package/README.md +147 -12
  2. package/dist/index.d.ts +100 -0
  3. package/dist/index.js +29 -17
  4. package/dist/index.js.map +1 -1
  5. package/dist/use-double-tap/invoke-double-tap-action.js +7 -0
  6. package/dist/use-double-tap/invoke-double-tap-action.js.map +1 -0
  7. package/dist/use-double-tap/use-double-tap.js +77 -0
  8. package/dist/use-double-tap/use-double-tap.js.map +1 -0
  9. package/dist/use-double-tap/use-double-tap.types.js +9 -0
  10. package/dist/use-double-tap/use-double-tap.types.js.map +1 -0
  11. package/dist/use-drag/use-drag.js +68 -70
  12. package/dist/use-drag/use-drag.js.map +1 -1
  13. package/dist/use-key/use-key.js +96 -104
  14. package/dist/use-key/use-key.js.map +1 -1
  15. package/dist/use-pinch/use-pinch.js +77 -79
  16. package/dist/use-pinch/use-pinch.js.map +1 -1
  17. package/dist/use-press/invoke-press-action.js +7 -0
  18. package/dist/use-press/invoke-press-action.js.map +1 -0
  19. package/dist/use-press/use-press.js +98 -0
  20. package/dist/use-press/use-press.js.map +1 -0
  21. package/dist/use-press/use-press.types.js +9 -0
  22. package/dist/use-press/use-press.types.js.map +1 -0
  23. package/dist/use-swipe/use-swipe.js +61 -68
  24. package/dist/use-swipe/use-swipe.js.map +1 -1
  25. package/dist/use-tap/invoke-tap-action.js +7 -0
  26. package/dist/use-tap/invoke-tap-action.js.map +1 -0
  27. package/dist/use-tap/use-tap.js +94 -0
  28. package/dist/use-tap/use-tap.js.map +1 -0
  29. package/dist/use-tap/use-tap.types.js +9 -0
  30. package/dist/use-tap/use-tap.types.js.map +1 -0
  31. package/dist/use-wheel/use-wheel.js +33 -47
  32. package/dist/use-wheel/use-wheel.js.map +1 -1
  33. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
- import { useRef as a, useCallback as s, useEffect as b } from "react";
1
+ import { useRef as c, useCallback as l, useEffect as C } from "react";
2
2
  import { invokeDragAction as O } from "./invoke-drag-action.js";
3
- const F = {
3
+ const I = {
4
4
  eventPointerTypes: ["touch", "mouse", "pen"],
5
5
  eventCapture: !1,
6
6
  eventOnce: !1,
@@ -8,37 +8,35 @@ const F = {
8
8
  threshold: 0,
9
9
  container: { current: null },
10
10
  raf: !1
11
- }, q = (p, A = {}) => {
11
+ }, U = (f, b = {}) => {
12
12
  const {
13
- eventPointerTypes: c,
14
- eventCapture: i,
15
- eventOnce: f,
13
+ eventPointerTypes: r,
14
+ eventCapture: o,
15
+ eventOnce: p,
16
16
  eventStopImmediatePropagation: d,
17
- threshold: P,
17
+ threshold: v,
18
18
  container: y,
19
- raf: v
20
- } = { ...F, ...A }, o = a(null), n = a(null), l = a(null), g = a(null), h = a(null), u = a({
19
+ raf: E
20
+ } = { ...I, ...b }, a = c(null), i = c(null), s = c(null), Y = c(null), P = c(null), u = c({
21
21
  startX: 0,
22
22
  startY: 0,
23
23
  lastX: 0,
24
24
  lastY: 0,
25
25
  startTime: 0,
26
26
  active: !1
27
- }), m = s(() => {
28
- n.current?.abort();
29
- }, []), L = s(() => {
30
- l.current = null;
31
- const t = g.current, e = h.current;
32
- !t || !e || (O(e, t, p, {
27
+ }), T = l(() => {
28
+ s.current = null;
29
+ const t = Y.current, e = P.current;
30
+ !t || !e || (O(e, t, f, {
33
31
  stopImmediate: d,
34
- once: f,
32
+ once: p,
35
33
  onOnce: () => {
36
- m();
34
+ i.current?.abort();
37
35
  }
38
- }), g.current = null, h.current = null);
39
- }, [p, d, f, m]), T = s(
36
+ }), Y.current = null, P.current = null);
37
+ }, [f, d, p]), L = l(
40
38
  (t) => {
41
- t.isPrimary && c.includes(t.pointerType) && (u.current = {
39
+ t.isPrimary && r.includes(t.pointerType) && (u.current = {
42
40
  startX: t.clientX,
43
41
  startY: t.clientY,
44
42
  lastX: t.clientX,
@@ -47,95 +45,95 @@ const F = {
47
45
  active: !0
48
46
  });
49
47
  },
50
- [c]
51
- ), D = s(
48
+ [r]
49
+ ), g = l(
52
50
  (t) => {
53
51
  const e = u.current;
54
- if (!e.active || !t.isPrimary || !c.includes(t.pointerType))
52
+ if (!e.active || !t.isPrimary || !r.includes(t.pointerType))
55
53
  return;
56
- const X = t.clientX - e.startX, Y = t.clientY - e.startY, r = t.clientX - e.lastX, C = t.clientY - e.lastY;
57
- if (Math.hypot(X, Y) < P) return;
58
- const I = Date.now() - e.startTime, E = {
59
- deltaX: X,
60
- deltaY: Y,
61
- movementX: r,
62
- movementY: C,
63
- duration: I,
54
+ const m = t.clientX - e.startX, X = t.clientY - e.startY, h = t.clientX - e.lastX, n = t.clientY - e.lastY;
55
+ if (Math.hypot(m, X) < v)
56
+ return;
57
+ const A = Date.now() - e.startTime, w = {
58
+ deltaX: m,
59
+ deltaY: X,
60
+ movementX: h,
61
+ movementY: n,
62
+ duration: A,
64
63
  startX: e.startX,
65
64
  startY: e.startY,
66
65
  endX: t.clientX,
67
66
  endY: t.clientY
68
67
  };
69
- if (e.lastX = t.clientX, e.lastY = t.clientY, !v) {
70
- O(t, E, p, {
68
+ if (e.lastX = t.clientX, e.lastY = t.clientY, !E) {
69
+ O(t, w, f, {
71
70
  stopImmediate: d,
72
- once: f,
71
+ once: p,
73
72
  onOnce: () => {
74
- m();
73
+ i.current?.abort();
75
74
  }
76
75
  });
77
76
  return;
78
77
  }
79
- g.current = E, h.current = t, l.current === null && (l.current = requestAnimationFrame(L));
78
+ Y.current = w, P.current = t, s.current === null && (s.current = requestAnimationFrame(T));
80
79
  },
81
80
  [
82
- c,
83
- P,
81
+ r,
84
82
  v,
85
- p,
86
- d,
83
+ E,
87
84
  f,
88
- m,
89
- L
85
+ d,
86
+ p,
87
+ T
90
88
  ]
91
- ), R = s(
89
+ ), D = l(
92
90
  (t) => {
93
- t.isPrimary && c.includes(t.pointerType) && (u.current.active = !1);
91
+ t.isPrimary && r.includes(t.pointerType) && (u.current.active = !1);
94
92
  },
95
- [c]
96
- ), w = s(() => {
93
+ [r]
94
+ ), R = l(() => {
97
95
  u.current.active = !1;
98
96
  }, []);
99
- b(() => {
100
- o.current = y?.current ?? globalThis, n.current = new AbortController();
101
- const t = (r) => T(r), e = (r) => D(r), X = (r) => R(r), Y = () => w();
102
- return o.current.addEventListener(
97
+ C(() => {
98
+ a.current = y?.current ?? globalThis, i.current = new AbortController();
99
+ const { signal: t } = i.current, e = (n) => n instanceof PointerEvent && L(n), m = (n) => n instanceof PointerEvent && g(n), X = (n) => n instanceof PointerEvent && D(n), h = () => R();
100
+ return a.current.addEventListener(
103
101
  "pointerdown",
104
- t,
102
+ e,
105
103
  {
106
- capture: i,
107
- signal: n.current.signal
104
+ capture: o,
105
+ signal: t
108
106
  }
109
- ), o.current.addEventListener(
107
+ ), a.current.addEventListener(
110
108
  "pointermove",
111
- e,
109
+ m,
112
110
  {
113
- capture: i,
114
- signal: n.current.signal
111
+ capture: o,
112
+ signal: t
115
113
  }
116
- ), o.current.addEventListener("pointerup", X, {
117
- capture: i,
118
- signal: n.current.signal
119
- }), o.current.addEventListener(
114
+ ), a.current.addEventListener("pointerup", X, {
115
+ capture: o,
116
+ signal: t
117
+ }), a.current.addEventListener(
120
118
  "pointercancel",
121
- Y,
119
+ h,
122
120
  {
123
- capture: i,
124
- signal: n.current.signal
121
+ capture: o,
122
+ signal: t
125
123
  }
126
124
  ), () => {
127
- n.current?.abort(), u.current.active = !1, l.current !== null && cancelAnimationFrame(l.current);
125
+ i.current?.abort(), u.current.active = !1, s.current !== null && cancelAnimationFrame(s.current);
128
126
  };
129
127
  }, [
130
128
  y,
131
- i,
132
- T,
129
+ o,
130
+ L,
131
+ g,
133
132
  D,
134
- R,
135
- w
133
+ R
136
134
  ]);
137
135
  };
138
136
  export {
139
- q as default
137
+ U as default
140
138
  };
141
139
  //# sourceMappingURL=use-drag.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-drag.js","sources":["../../src/use-drag/use-drag.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from \"react\";\nimport {\n DragState,\n DragData,\n UseDragCallback,\n UseDragOptions,\n DragOptions,\n DragEventPointerType,\n} from \"./use-drag.types\";\nimport { invokeDragAction } from \"./invoke-drag-action\";\n\nconst defaultOptions: DragOptions = {\n eventPointerTypes: [\"touch\", \"mouse\", \"pen\"],\n eventCapture: false,\n eventOnce: false,\n eventStopImmediatePropagation: false,\n threshold: 0,\n container: { current: null },\n raf: false,\n};\n\nconst useDrag = (\n dragCallback: UseDragCallback,\n options: UseDragOptions = {},\n) => {\n const {\n eventPointerTypes,\n eventCapture,\n eventOnce,\n eventStopImmediatePropagation,\n threshold,\n container,\n raf,\n } = { ...defaultOptions, ...options };\n\n const targetReference = useRef<EventTarget | null>(null);\n const abortControllerReference = useRef<AbortController | null>(null);\n\n const frameReference = useRef<number | null>(null);\n const pendingDataReference = useRef<DragData | null>(null);\n const pendingEventReference = useRef<PointerEvent | null>(null);\n\n const dragStateReference = useRef<DragState>({\n startX: 0,\n startY: 0,\n lastX: 0,\n lastY: 0,\n startTime: 0,\n active: false,\n });\n\n const destroyListener = useCallback(() => {\n abortControllerReference.current?.abort();\n }, []);\n\n const flushFrame = useCallback(() => {\n frameReference.current = null;\n\n const data = pendingDataReference.current;\n const event = pendingEventReference.current;\n\n if (!data || !event) return;\n\n invokeDragAction(event, data, dragCallback, {\n stopImmediate: eventStopImmediatePropagation,\n once: eventOnce,\n onOnce: () => {\n destroyListener();\n },\n });\n\n pendingDataReference.current = null;\n pendingEventReference.current = null;\n }, [dragCallback, eventStopImmediatePropagation, eventOnce, destroyListener]);\n\n const handlePointerDown = useCallback(\n (event: PointerEvent) => {\n if (!event.isPrimary) return;\n\n if (\n !eventPointerTypes.includes(event.pointerType as DragEventPointerType)\n ) {\n return;\n }\n\n dragStateReference.current = {\n startX: event.clientX,\n startY: event.clientY,\n lastX: event.clientX,\n lastY: event.clientY,\n startTime: Date.now(),\n active: true,\n };\n },\n [eventPointerTypes],\n );\n\n const handlePointerMove = useCallback(\n (event: PointerEvent) => {\n const state = dragStateReference.current;\n if (!state.active) return;\n if (!event.isPrimary) return;\n\n if (\n !eventPointerTypes.includes(event.pointerType as DragEventPointerType)\n ) {\n return;\n }\n\n const deltaX = event.clientX - state.startX;\n const deltaY = event.clientY - state.startY;\n\n const movementX = event.clientX - state.lastX;\n const movementY = event.clientY - state.lastY;\n\n const distance = Math.hypot(deltaX, deltaY);\n\n if (distance < threshold) return;\n\n const duration = Date.now() - state.startTime;\n\n const data: DragData = {\n deltaX,\n deltaY,\n movementX,\n movementY,\n duration,\n startX: state.startX,\n startY: state.startY,\n endX: event.clientX,\n endY: event.clientY,\n };\n\n state.lastX = event.clientX;\n state.lastY = event.clientY;\n\n if (!raf) {\n invokeDragAction(event, data, dragCallback, {\n stopImmediate: eventStopImmediatePropagation,\n once: eventOnce,\n onOnce: () => {\n destroyListener();\n },\n });\n return;\n }\n\n pendingDataReference.current = data;\n pendingEventReference.current = event;\n\n if (frameReference.current === null) {\n frameReference.current = requestAnimationFrame(flushFrame);\n }\n },\n [\n eventPointerTypes,\n threshold,\n raf,\n dragCallback,\n eventStopImmediatePropagation,\n eventOnce,\n destroyListener,\n flushFrame,\n ],\n );\n\n const handlePointerUp = useCallback(\n (event: PointerEvent) => {\n if (!event.isPrimary) return;\n\n if (\n !eventPointerTypes.includes(event.pointerType as DragEventPointerType)\n ) {\n return;\n }\n\n dragStateReference.current.active = false;\n },\n [eventPointerTypes],\n );\n\n const handlePointerCancel = useCallback(() => {\n dragStateReference.current.active = false;\n }, []);\n\n useEffect(() => {\n targetReference.current = container?.current ?? globalThis;\n abortControllerReference.current = new AbortController();\n\n const pointerDownListener = (event: Event) =>\n handlePointerDown(event as PointerEvent);\n\n const pointerMoveListener = (event: Event) =>\n handlePointerMove(event as PointerEvent);\n\n const pointerUpListener = (event: Event) =>\n handlePointerUp(event as PointerEvent);\n\n const pointerCancelListener = () => handlePointerCancel();\n\n targetReference.current.addEventListener(\n \"pointerdown\",\n pointerDownListener,\n {\n capture: eventCapture,\n signal: abortControllerReference.current.signal,\n },\n );\n\n targetReference.current.addEventListener(\n \"pointermove\",\n pointerMoveListener,\n {\n capture: eventCapture,\n signal: abortControllerReference.current.signal,\n },\n );\n\n targetReference.current.addEventListener(\"pointerup\", pointerUpListener, {\n capture: eventCapture,\n signal: abortControllerReference.current.signal,\n });\n\n targetReference.current.addEventListener(\n \"pointercancel\",\n pointerCancelListener,\n {\n capture: eventCapture,\n signal: abortControllerReference.current.signal,\n },\n );\n\n return () => {\n abortControllerReference.current?.abort();\n dragStateReference.current.active = false;\n\n if (frameReference.current !== null) {\n cancelAnimationFrame(frameReference.current);\n }\n };\n }, [\n container,\n eventCapture,\n handlePointerDown,\n handlePointerMove,\n handlePointerUp,\n handlePointerCancel,\n ]);\n};\n\nexport default useDrag;\n"],"names":["defaultOptions","useDrag","dragCallback","options","eventPointerTypes","eventCapture","eventOnce","eventStopImmediatePropagation","threshold","container","raf","targetReference","useRef","abortControllerReference","frameReference","pendingDataReference","pendingEventReference","dragStateReference","destroyListener","useCallback","flushFrame","data","event","invokeDragAction","handlePointerDown","handlePointerMove","state","deltaX","deltaY","movementX","movementY","duration","handlePointerUp","handlePointerCancel","useEffect","pointerDownListener","pointerMoveListener","pointerUpListener","pointerCancelListener"],"mappings":"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"}
1
+ {"version":3,"file":"use-drag.js","sources":["../../src/use-drag/use-drag.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from \"react\";\nimport {\n DragState,\n DragData,\n UseDragCallback,\n UseDragOptions,\n DragOptions,\n DragEventPointerType,\n} from \"./use-drag.types\";\nimport { invokeDragAction } from \"./invoke-drag-action\";\n\nconst defaultOptions: DragOptions = {\n eventPointerTypes: [\"touch\", \"mouse\", \"pen\"],\n eventCapture: false,\n eventOnce: false,\n eventStopImmediatePropagation: false,\n threshold: 0,\n container: { current: null },\n raf: false,\n};\n\nconst useDrag = (\n dragCallback: UseDragCallback,\n options: UseDragOptions = {},\n) => {\n const {\n eventPointerTypes,\n eventCapture,\n eventOnce,\n eventStopImmediatePropagation,\n threshold,\n container,\n raf,\n } = { ...defaultOptions, ...options };\n\n const targetReference = useRef<EventTarget | null>(null);\n const abortControllerReference = useRef<AbortController | null>(null);\n\n const frameReference = useRef<number | null>(null);\n const pendingDataReference = useRef<DragData | null>(null);\n const pendingEventReference = useRef<PointerEvent | null>(null);\n\n const dragStateReference = useRef<DragState>({\n startX: 0,\n startY: 0,\n lastX: 0,\n lastY: 0,\n startTime: 0,\n active: false,\n });\n\n const flushFrame = useCallback(() => {\n frameReference.current = null;\n\n const data = pendingDataReference.current;\n const event = pendingEventReference.current;\n\n if (!data || !event) {\n return;\n }\n\n invokeDragAction(event, data, dragCallback, {\n stopImmediate: eventStopImmediatePropagation,\n once: eventOnce,\n onOnce: () => {\n abortControllerReference.current?.abort();\n },\n });\n\n pendingDataReference.current = null;\n pendingEventReference.current = null;\n }, [dragCallback, eventStopImmediatePropagation, eventOnce]);\n\n const handlePointerDown = useCallback(\n (event: PointerEvent) => {\n if (!event.isPrimary) {\n return;\n }\n\n if (\n !eventPointerTypes.includes(event.pointerType as DragEventPointerType)\n ) {\n return;\n }\n\n dragStateReference.current = {\n startX: event.clientX,\n startY: event.clientY,\n lastX: event.clientX,\n lastY: event.clientY,\n startTime: Date.now(),\n active: true,\n };\n },\n [eventPointerTypes],\n );\n\n const handlePointerMove = useCallback(\n (event: PointerEvent) => {\n const state = dragStateReference.current;\n if (!state.active) {\n return;\n }\n if (!event.isPrimary) {\n return;\n }\n\n if (\n !eventPointerTypes.includes(event.pointerType as DragEventPointerType)\n ) {\n return;\n }\n\n const deltaX = event.clientX - state.startX;\n const deltaY = event.clientY - state.startY;\n\n const movementX = event.clientX - state.lastX;\n const movementY = event.clientY - state.lastY;\n\n const distance = Math.hypot(deltaX, deltaY);\n\n if (distance < threshold) {\n return;\n }\n\n const duration = Date.now() - state.startTime;\n\n const data: DragData = {\n deltaX,\n deltaY,\n movementX,\n movementY,\n duration,\n startX: state.startX,\n startY: state.startY,\n endX: event.clientX,\n endY: event.clientY,\n };\n\n state.lastX = event.clientX;\n state.lastY = event.clientY;\n\n if (!raf) {\n invokeDragAction(event, data, dragCallback, {\n stopImmediate: eventStopImmediatePropagation,\n once: eventOnce,\n onOnce: () => {\n abortControllerReference.current?.abort();\n },\n });\n return;\n }\n\n pendingDataReference.current = data;\n pendingEventReference.current = event;\n\n if (frameReference.current === null) {\n frameReference.current = requestAnimationFrame(flushFrame);\n }\n },\n [\n eventPointerTypes,\n threshold,\n raf,\n dragCallback,\n eventStopImmediatePropagation,\n eventOnce,\n flushFrame,\n ],\n );\n\n const handlePointerUp = useCallback(\n (event: PointerEvent) => {\n if (!event.isPrimary) {\n return;\n }\n\n if (\n !eventPointerTypes.includes(event.pointerType as DragEventPointerType)\n ) {\n return;\n }\n\n dragStateReference.current.active = false;\n },\n [eventPointerTypes],\n );\n\n const handlePointerCancel = useCallback(() => {\n dragStateReference.current.active = false;\n }, []);\n\n useEffect(() => {\n targetReference.current = container?.current ?? globalThis;\n abortControllerReference.current = new AbortController();\n const { signal } = abortControllerReference.current;\n\n const pointerDownListener = (event: Event) =>\n event instanceof PointerEvent && handlePointerDown(event);\n\n const pointerMoveListener = (event: Event) =>\n event instanceof PointerEvent && handlePointerMove(event);\n\n const pointerUpListener = (event: Event) =>\n event instanceof PointerEvent && handlePointerUp(event);\n\n const pointerCancelListener = () => handlePointerCancel();\n\n targetReference.current.addEventListener(\n \"pointerdown\",\n pointerDownListener,\n {\n capture: eventCapture,\n signal,\n },\n );\n\n targetReference.current.addEventListener(\n \"pointermove\",\n pointerMoveListener,\n {\n capture: eventCapture,\n signal,\n },\n );\n\n targetReference.current.addEventListener(\"pointerup\", pointerUpListener, {\n capture: eventCapture,\n signal,\n });\n\n targetReference.current.addEventListener(\n \"pointercancel\",\n pointerCancelListener,\n {\n capture: eventCapture,\n signal,\n },\n );\n\n return () => {\n abortControllerReference.current?.abort();\n\n dragStateReference.current.active = false;\n\n if (frameReference.current !== null) {\n cancelAnimationFrame(frameReference.current);\n }\n };\n }, [\n container,\n eventCapture,\n handlePointerDown,\n handlePointerMove,\n handlePointerUp,\n handlePointerCancel,\n ]);\n};\n\nexport default useDrag;\n"],"names":["defaultOptions","useDrag","dragCallback","options","eventPointerTypes","eventCapture","eventOnce","eventStopImmediatePropagation","threshold","container","raf","targetReference","useRef","abortControllerReference","frameReference","pendingDataReference","pendingEventReference","dragStateReference","flushFrame","useCallback","data","event","invokeDragAction","handlePointerDown","handlePointerMove","state","deltaX","deltaY","movementX","movementY","duration","handlePointerUp","handlePointerCancel","useEffect","signal","pointerDownListener","pointerMoveListener","pointerUpListener","pointerCancelListener"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- import { useRef as w, useCallback as s, useEffect as H } from "react";
2
- import { KeyEventTypes as T } from "./use-key.types.js";
3
- import { parseKeySequences as F } from "./parse-key-sequences.js";
4
- import { resetSequenceState as G, advanceSequenceState as _ } from "./sequence-state.js";
5
- import { invokeKeyAction as P } from "./invoke-key-action.js";
6
- import { shouldHandleKeyboardEvent as J } from "./event-guards.js";
1
+ import { useRef as g, useCallback as c, useEffect as U } from "react";
2
+ import { KeyEventTypes as w } from "./use-key.types.js";
3
+ import { parseKeySequences as B } from "./parse-key-sequences.js";
4
+ import { resetSequenceState as F, advanceSequenceState as H } from "./sequence-state.js";
5
+ import { invokeKeyAction as b } from "./invoke-key-action.js";
6
+ import { shouldHandleKeyboardEvent as G } from "./event-guards.js";
7
7
  import { SPECIAL_KEYS as u } from "./normalize-key.js";
8
- const j = {
9
- eventType: T.KeyUp,
8
+ const _ = {
9
+ eventType: w.KeyUp,
10
10
  eventRepeat: !1,
11
11
  eventCapture: !1,
12
12
  eventOnce: !1,
@@ -14,87 +14,85 @@ const j = {
14
14
  sequenceThreshold: 1e3,
15
15
  combinationThreshold: 200,
16
16
  container: { current: null }
17
- }, ne = (L, f, B = j) => {
17
+ }, te = (x, f, j = _) => {
18
18
  const {
19
19
  eventType: d,
20
20
  eventRepeat: R,
21
- eventCapture: A,
21
+ eventCapture: v,
22
22
  eventOnce: m,
23
23
  eventStopImmediatePropagation: p,
24
- sequenceThreshold: b,
25
- combinationThreshold: K,
24
+ sequenceThreshold: P,
25
+ combinationThreshold: A,
26
26
  container: C
27
- } = { ...j, ...B }, S = w(null), l = w(null), y = w({
27
+ } = { ..._, ...j }, K = g(null), l = g(null), y = g({
28
28
  activeKeys: /* @__PURE__ */ new Map()
29
- }), c = w([]), h = s(() => {
30
- l.current && l.current.abort();
31
- }, []), D = s(() => {
29
+ }), a = g([]), L = c(() => {
32
30
  y.current.activeKeys.clear();
33
- }, []), i = s((e) => {
34
- c.current = G(
31
+ }, []), i = c((e) => {
32
+ a.current = F(
35
33
  e,
36
- c.current
34
+ a.current
37
35
  );
38
- }, []), I = s(
39
- (e) => J(e, {
36
+ }, []), D = c(
37
+ (e) => G(e, {
40
38
  repeat: R
41
39
  }),
42
40
  [R]
43
- ), O = s((e) => {
41
+ ), I = c((e) => {
44
42
  const t = e.key === " " ? u.SPACE : e.key;
45
43
  y.current.activeKeys.set(t, {
46
44
  pressedAt: Date.now()
47
45
  });
48
- }, []), z = s((e) => {
49
- const t = e.key === " " ? u.SPACE : e.key, n = y.current.activeKeys.get(t);
50
- n && (n.releasedAt = Date.now());
51
- }, []), k = s(() => {
46
+ }, []), O = c((e) => {
47
+ const t = e.key === " " ? u.SPACE : e.key, r = y.current.activeKeys.get(t);
48
+ r && (r.releasedAt = Date.now());
49
+ }, []), z = c(() => {
52
50
  const e = Date.now(), t = y.current;
53
- [...t.activeKeys.entries()].forEach(([n, r]) => {
54
- d === T.KeyDown ? r.releasedAt && t.activeKeys.delete(n) : r.releasedAt && e - r.releasedAt > K && t.activeKeys.delete(n);
51
+ [...t.activeKeys.entries()].forEach(([r, s]) => {
52
+ d === w.KeyDown ? s.releasedAt && t.activeKeys.delete(r) : s.releasedAt && e - s.releasedAt > A && t.activeKeys.delete(r);
55
53
  });
56
- }, [d, K]), E = s(
54
+ }, [d, A]), S = c(
57
55
  (e, t) => {
58
- if (d === T.KeyDown)
59
- return t.size === e.length && e.every((n) => n === u.ANY ? t.size > 0 : t.has(n));
60
- if (d === T.KeyUp) {
61
- const n = e.map((o) => {
56
+ if (d === w.KeyDown)
57
+ return t.size === e.length && e.every((r) => r === u.ANY ? t.size > 0 : t.has(r));
58
+ if (d === w.KeyUp) {
59
+ const r = e.map((o) => {
62
60
  if (o === u.ANY) {
63
- const U = [...t.entries()].at(-1);
64
- return U ? U[1] : void 0;
61
+ const N = [...t.entries()].at(-1);
62
+ return N ? N[1] : void 0;
65
63
  }
66
64
  return t.get(o);
67
65
  });
68
- if (n.some((o) => !o?.releasedAt))
66
+ if (r.some((o) => !o?.releasedAt))
69
67
  return !1;
70
- const r = n.map((o) => o?.pressedAt).filter((o) => o !== void 0), a = n.map((o) => o?.releasedAt).filter((o) => o !== void 0), g = Math.min(...a), x = Math.max(...a);
71
- return !(Math.max(...r) > g || x - g > K);
68
+ const s = r.map((o) => o?.pressedAt).filter((o) => o !== void 0), n = r.map((o) => o?.releasedAt).filter((o) => o !== void 0), E = Math.min(...n), T = Math.max(...n);
69
+ return !(Math.max(...s) > E || T - E > A);
72
70
  }
73
71
  return !1;
74
72
  },
75
- [d, K]
76
- ), q = s(
73
+ [d, A]
74
+ ), k = c(
77
75
  (e, t) => {
78
- const n = t.chord[0];
79
- if (Array.isArray(n)) {
80
- const { activeKeys: a } = y.current;
81
- if (!E(n, a))
76
+ const r = t.chord[0];
77
+ if (Array.isArray(r)) {
78
+ const { activeKeys: n } = y.current;
79
+ if (!S(r, n))
82
80
  return;
83
- P(e, t.key, f, {
81
+ b(e, t.key, f, {
84
82
  stopImmediate: p,
85
83
  once: m,
86
84
  onOnce: () => {
87
- h();
85
+ l.current?.abort();
88
86
  }
89
87
  });
90
88
  return;
91
89
  }
92
- const r = e.key === " " ? u.SPACE : e.key;
93
- n !== u.ANY && n !== r || P(e, t.key, f, {
90
+ const s = e.key === " " ? u.SPACE : e.key;
91
+ r !== u.ANY && r !== s || b(e, t.key, f, {
94
92
  stopImmediate: p,
95
93
  once: m,
96
94
  onOnce: () => {
97
- h();
95
+ l.current?.abort();
98
96
  }
99
97
  });
100
98
  },
@@ -102,105 +100,99 @@ const j = {
102
100
  p,
103
101
  m,
104
102
  f,
105
- E,
106
- h
103
+ S
107
104
  ]
108
- ), Y = s(
105
+ ), q = c(
109
106
  (e, t) => {
110
- const n = t.chord[t.index];
111
- if (Array.isArray(n)) {
112
- const { activeKeys: x } = y.current;
113
- if (!E(n, x))
107
+ const r = t.chord[t.index];
108
+ if (Array.isArray(r)) {
109
+ const { activeKeys: T } = y.current;
110
+ if (!S(r, T))
114
111
  return;
115
- const [v, o] = _(
112
+ const [h, o] = H(
116
113
  t,
117
- c.current,
118
- b,
114
+ a.current,
115
+ P,
119
116
  i
120
117
  );
121
- c.current = o, v.index === v.chord.length && (P(e, v.key, f, {
118
+ a.current = o, h.index === h.chord.length && (b(e, h.key, f, {
122
119
  stopImmediate: p,
123
120
  once: m,
124
121
  onOnce: () => {
125
- h();
122
+ l.current?.abort();
126
123
  }
127
- }), i(v));
124
+ }), i(h));
128
125
  return;
129
126
  }
130
- const r = e.key === " " ? u.SPACE : e.key;
131
- if (n !== u.ANY && n !== r) {
127
+ const s = e.key === " " ? u.SPACE : e.key;
128
+ if (r !== u.ANY && r !== s) {
132
129
  i(t);
133
130
  return;
134
131
  }
135
- const [a, g] = _(
132
+ const [n, E] = H(
136
133
  t,
137
- c.current,
138
- b,
134
+ a.current,
135
+ P,
139
136
  i
140
137
  );
141
- c.current = g, a.index === a.chord.length && (P(e, a.key, f, {
138
+ a.current = E, n.index === n.chord.length && (b(e, n.key, f, {
142
139
  stopImmediate: p,
143
140
  once: m,
144
141
  onOnce: () => {
145
- h();
142
+ l.current?.abort();
146
143
  }
147
- }), i(a));
144
+ }), i(n));
148
145
  },
149
146
  [
150
147
  m,
151
148
  p,
152
- b,
149
+ P,
153
150
  f,
154
151
  i,
155
- E,
156
- h
152
+ S
157
153
  ]
158
- ), M = s(
154
+ ), Y = c(
159
155
  (e) => {
160
- c.current.forEach((t) => {
161
- t.chord.length === 1 ? q(e, t) : Y(e, t);
156
+ a.current.forEach((t) => {
157
+ t.chord.length === 1 ? k(e, t) : q(e, t);
162
158
  });
163
159
  },
164
- [q, Y]
165
- ), N = s(
160
+ [k, q]
161
+ ), M = c(
166
162
  (e) => {
167
- I(e) && (k(), M(e));
163
+ D(e) && (z(), Y(e));
168
164
  },
169
- [I, k, M]
165
+ [D, z, Y]
170
166
  );
171
- H(() => {
172
- c.current = F(L);
173
- }, [L]), H(() => {
174
- S.current = C?.current ?? globalThis, l.current = new AbortController();
175
- const e = (r) => O(r);
176
- S.current.addEventListener("keydown", e, {
177
- capture: A,
178
- signal: l.current.signal
179
- });
180
- const t = (r) => z(r);
181
- S.current.addEventListener("keyup", t, {
182
- capture: A,
183
- signal: l.current.signal
184
- });
185
- const n = (r) => N(r);
186
- return S.current.addEventListener(d, n, {
187
- capture: A,
188
- signal: l.current.signal
167
+ U(() => {
168
+ a.current = B(x);
169
+ }, [x]), U(() => {
170
+ K.current = C?.current ?? globalThis, l.current = new AbortController();
171
+ const { signal: e } = l.current, t = (n) => I(n), r = (n) => O(n), s = (n) => M(n);
172
+ return K.current.addEventListener("keydown", t, {
173
+ capture: v,
174
+ signal: e
175
+ }), K.current.addEventListener("keyup", r, {
176
+ capture: v,
177
+ signal: e
178
+ }), K.current.addEventListener(d, s, {
179
+ capture: v,
180
+ signal: e
189
181
  }), () => {
190
- l.current?.abort(), D(), c.current.forEach((r) => i(r));
182
+ l.current?.abort(), L(), a.current.forEach((n) => i(n));
191
183
  };
192
184
  }, [
193
185
  d,
194
- A,
186
+ v,
195
187
  C,
188
+ I,
196
189
  O,
197
- z,
198
- N,
199
- D,
190
+ M,
191
+ L,
200
192
  i
201
193
  ]);
202
194
  };
203
195
  export {
204
- ne as default
196
+ te as default
205
197
  };
206
198
  //# sourceMappingURL=use-key.js.map