@tamagui/react-native-use-responder-events 2.0.0-rc.8 → 2.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 (74) hide show
  1. package/dist/cjs/ResponderSystem.cjs +293 -152
  2. package/dist/cjs/ResponderSystem.native.js +312 -170
  3. package/dist/cjs/ResponderSystem.native.js.map +1 -1
  4. package/dist/cjs/ResponderTouchHistoryStore.cjs +97 -30
  5. package/dist/cjs/ResponderTouchHistoryStore.native.js +144 -68
  6. package/dist/cjs/ResponderTouchHistoryStore.native.js.map +1 -1
  7. package/dist/cjs/createResponderEvent.cjs +66 -52
  8. package/dist/cjs/createResponderEvent.native.js +51 -39
  9. package/dist/cjs/createResponderEvent.native.js.map +1 -1
  10. package/dist/cjs/index.cjs +7 -5
  11. package/dist/cjs/index.native.js +7 -5
  12. package/dist/cjs/index.native.js.map +1 -1
  13. package/dist/cjs/types.cjs +26 -24
  14. package/dist/cjs/types.native.js +26 -24
  15. package/dist/cjs/types.native.js.map +1 -1
  16. package/dist/cjs/useResponderEvents.cjs +49 -37
  17. package/dist/cjs/useResponderEvents.native.js +53 -42
  18. package/dist/cjs/useResponderEvents.native.js.map +1 -1
  19. package/dist/cjs/utils.cjs +101 -58
  20. package/dist/cjs/utils.native.js +104 -57
  21. package/dist/cjs/utils.native.js.map +1 -1
  22. package/dist/esm/ResponderSystem.mjs +276 -137
  23. package/dist/esm/ResponderSystem.mjs.map +1 -1
  24. package/dist/esm/ResponderSystem.native.js +295 -155
  25. package/dist/esm/ResponderSystem.native.js.map +1 -1
  26. package/dist/esm/ResponderTouchHistoryStore.mjs +85 -20
  27. package/dist/esm/ResponderTouchHistoryStore.mjs.map +1 -1
  28. package/dist/esm/ResponderTouchHistoryStore.native.js +132 -58
  29. package/dist/esm/ResponderTouchHistoryStore.native.js.map +1 -1
  30. package/dist/esm/createResponderEvent.mjs +54 -42
  31. package/dist/esm/createResponderEvent.mjs.map +1 -1
  32. package/dist/esm/createResponderEvent.native.js +38 -28
  33. package/dist/esm/createResponderEvent.native.js.map +1 -1
  34. package/dist/esm/index.js +1 -1
  35. package/dist/esm/index.js.map +1 -6
  36. package/dist/esm/types.mjs +14 -14
  37. package/dist/esm/types.mjs.map +1 -1
  38. package/dist/esm/types.native.js +14 -14
  39. package/dist/esm/types.native.js.map +1 -1
  40. package/dist/esm/useResponderEvents.mjs +21 -11
  41. package/dist/esm/useResponderEvents.mjs.map +1 -1
  42. package/dist/esm/useResponderEvents.native.js +25 -16
  43. package/dist/esm/useResponderEvents.native.js.map +1 -1
  44. package/dist/esm/utils.mjs +89 -48
  45. package/dist/esm/utils.mjs.map +1 -1
  46. package/dist/esm/utils.native.js +92 -47
  47. package/dist/esm/utils.native.js.map +1 -1
  48. package/package.json +5 -8
  49. package/dist/cjs/ResponderSystem.js +0 -205
  50. package/dist/cjs/ResponderSystem.js.map +0 -6
  51. package/dist/cjs/ResponderTouchHistoryStore.js +0 -117
  52. package/dist/cjs/ResponderTouchHistoryStore.js.map +0 -6
  53. package/dist/cjs/createResponderEvent.js +0 -121
  54. package/dist/cjs/createResponderEvent.js.map +0 -6
  55. package/dist/cjs/index.js +0 -15
  56. package/dist/cjs/index.js.map +0 -6
  57. package/dist/cjs/types.js +0 -58
  58. package/dist/cjs/types.js.map +0 -6
  59. package/dist/cjs/useResponderEvents.js +0 -81
  60. package/dist/cjs/useResponderEvents.js.map +0 -6
  61. package/dist/cjs/utils.js +0 -102
  62. package/dist/cjs/utils.js.map +0 -6
  63. package/dist/esm/ResponderSystem.js +0 -207
  64. package/dist/esm/ResponderSystem.js.map +0 -6
  65. package/dist/esm/ResponderTouchHistoryStore.js +0 -101
  66. package/dist/esm/ResponderTouchHistoryStore.js.map +0 -6
  67. package/dist/esm/createResponderEvent.js +0 -105
  68. package/dist/esm/createResponderEvent.js.map +0 -6
  69. package/dist/esm/types.js +0 -42
  70. package/dist/esm/types.js.map +0 -6
  71. package/dist/esm/useResponderEvents.js +0 -59
  72. package/dist/esm/useResponderEvents.js.map +0 -6
  73. package/dist/esm/utils.js +0 -86
  74. package/dist/esm/utils.js.map +0 -6
@@ -3,112 +3,186 @@ import { ResponderTouchHistoryStore } from "./ResponderTouchHistoryStore.mjs";
3
3
  import { isCancelish, isEndish, isMoveish, isScroll, isSelectionChange, isStartish } from "./types.mjs";
4
4
  import { canUseDOM } from "./utils.mjs";
5
5
  import { getLowestCommonAncestor, getResponderPaths, hasTargetTouches, hasValidSelection, isPrimaryPointerDown, setResponderId } from "./utils.mjs";
6
- const emptyObject = {},
7
- startRegistration = ["onStartShouldSetResponderCapture", "onStartShouldSetResponder", {
8
- bubbles: !0
9
- }],
10
- moveRegistration = ["onMoveShouldSetResponderCapture", "onMoveShouldSetResponder", {
11
- bubbles: !0
12
- }],
13
- scrollRegistration = ["onScrollShouldSetResponderCapture", "onScrollShouldSetResponder", {
14
- bubbles: !1
15
- }],
16
- shouldSetResponderEvents = {
17
- touchstart: startRegistration,
18
- mousedown: startRegistration,
19
- touchmove: moveRegistration,
20
- mousemove: moveRegistration,
21
- scroll: scrollRegistration
22
- },
23
- emptyResponder = {
24
- id: null,
25
- idPath: null,
26
- node: null
27
- },
28
- responderListenersMap = /* @__PURE__ */new Map();
29
- let isEmulatingMouseEvents = !1,
30
- trackedTouchCount = 0,
31
- currentResponder = {
32
- id: null,
33
- node: null,
34
- idPath: null
35
- };
6
+ const emptyObject = {};
7
+ const startRegistration = ["onStartShouldSetResponderCapture", "onStartShouldSetResponder", {
8
+ bubbles: true
9
+ }];
10
+ const moveRegistration = ["onMoveShouldSetResponderCapture", "onMoveShouldSetResponder", {
11
+ bubbles: true
12
+ }];
13
+ const scrollRegistration = ["onScrollShouldSetResponderCapture", "onScrollShouldSetResponder", {
14
+ bubbles: false
15
+ }];
16
+ const shouldSetResponderEvents = {
17
+ touchstart: startRegistration,
18
+ mousedown: startRegistration,
19
+ touchmove: moveRegistration,
20
+ mousemove: moveRegistration,
21
+ scroll: scrollRegistration
22
+ };
23
+ const emptyResponder = {
24
+ id: null,
25
+ idPath: null,
26
+ node: null
27
+ };
28
+ const responderListenersMap = /* @__PURE__ */new Map();
29
+ let isEmulatingMouseEvents = false;
30
+ let trackedTouchCount = 0;
31
+ let currentResponder = {
32
+ id: null,
33
+ node: null,
34
+ idPath: null
35
+ };
36
36
  const responderTouchHistoryStore = new ResponderTouchHistoryStore();
37
37
  function changeCurrentResponder(responder) {
38
38
  currentResponder = responder;
39
39
  }
40
40
  function getResponderConfig(id) {
41
41
  const config = responderListenersMap.get(id);
42
- return config ?? emptyObject;
42
+ return config != null ? config : emptyObject;
43
43
  }
44
44
  function eventListener(domEvent) {
45
- const eventType = domEvent.type,
46
- eventTarget = domEvent.target;
47
- if (eventType === "touchstart" && (isEmulatingMouseEvents = !0), (eventType === "touchmove" || trackedTouchCount > 1) && (isEmulatingMouseEvents = !1),
45
+ const eventType = domEvent.type;
46
+ const eventTarget = domEvent.target;
47
+ if (eventType === "touchstart") {
48
+ isEmulatingMouseEvents = true;
49
+ }
50
+ if (eventType === "touchmove" || trackedTouchCount > 1) {
51
+ isEmulatingMouseEvents = false;
52
+ }
53
+ if (
48
54
  // Ignore browser emulated mouse events
49
55
  eventType === "mousedown" && isEmulatingMouseEvents || eventType === "mousemove" && isEmulatingMouseEvents ||
50
56
  // Ignore mousemove if a mousedown didn't occur first
51
- eventType === "mousemove" && trackedTouchCount < 1) return;
57
+ eventType === "mousemove" && trackedTouchCount < 1) {
58
+ return;
59
+ }
52
60
  if (isEmulatingMouseEvents && eventType === "mouseup") {
53
- trackedTouchCount === 0 && (isEmulatingMouseEvents = !1);
61
+ if (trackedTouchCount === 0) {
62
+ isEmulatingMouseEvents = false;
63
+ }
54
64
  return;
55
65
  }
56
- const isStartEvent = isStartish(eventType) && isPrimaryPointerDown(domEvent),
57
- isMoveEvent = isMoveish(eventType),
58
- isEndEvent = isEndish(eventType),
59
- isScrollEvent = isScroll(eventType),
60
- isSelectionChangeEvent = isSelectionChange(eventType),
61
- responderEvent = createResponderEvent(domEvent, responderTouchHistoryStore);
62
- (isStartEvent || isMoveEvent || isEndEvent) && (domEvent.touches ? trackedTouchCount = domEvent.touches.length : isStartEvent ? trackedTouchCount = 1 : isEndEvent && (trackedTouchCount = 0), responderTouchHistoryStore.recordTouchTrack(eventType, responderEvent.nativeEvent));
63
- let eventPaths = getResponderPaths(domEvent),
64
- wasNegotiated = !1,
65
- wantsResponder;
66
+ const isStartEvent = isStartish(eventType) && isPrimaryPointerDown(domEvent);
67
+ const isMoveEvent = isMoveish(eventType);
68
+ const isEndEvent = isEndish(eventType);
69
+ const isScrollEvent = isScroll(eventType);
70
+ const isSelectionChangeEvent = isSelectionChange(eventType);
71
+ const responderEvent = createResponderEvent(domEvent, responderTouchHistoryStore);
72
+ if (isStartEvent || isMoveEvent || isEndEvent) {
73
+ if (domEvent.touches) {
74
+ trackedTouchCount = domEvent.touches.length;
75
+ } else {
76
+ if (isStartEvent) {
77
+ trackedTouchCount = 1;
78
+ } else if (isEndEvent) {
79
+ trackedTouchCount = 0;
80
+ }
81
+ }
82
+ responderTouchHistoryStore.recordTouchTrack(eventType, responderEvent.nativeEvent);
83
+ }
84
+ let eventPaths = getResponderPaths(domEvent);
85
+ let wasNegotiated = false;
86
+ let wantsResponder;
66
87
  if (isStartEvent || isMoveEvent || isScrollEvent && trackedTouchCount > 0) {
67
- const currentResponderIdPath = currentResponder.idPath,
68
- eventIdPath = eventPaths.idPath;
88
+ const currentResponderIdPath = currentResponder.idPath;
89
+ const eventIdPath = eventPaths.idPath;
69
90
  if (currentResponderIdPath != null && eventIdPath != null) {
70
91
  const lowestCommonAncestor = getLowestCommonAncestor(currentResponderIdPath, eventIdPath);
71
92
  if (lowestCommonAncestor != null) {
72
- const index = eventIdPath.indexOf(lowestCommonAncestor) + (lowestCommonAncestor === currentResponder.id ? 1 : 0);
93
+ const indexOfLowestCommonAncestor = eventIdPath.indexOf(lowestCommonAncestor);
94
+ const index = indexOfLowestCommonAncestor + (lowestCommonAncestor === currentResponder.id ? 1 : 0);
73
95
  eventPaths = {
74
96
  idPath: eventIdPath.slice(index),
75
97
  nodePath: eventPaths.nodePath.slice(index)
76
98
  };
77
- } else eventPaths = null;
99
+ } else {
100
+ eventPaths = null;
101
+ }
102
+ }
103
+ if (eventPaths != null) {
104
+ wantsResponder = findWantsResponder(eventPaths, domEvent, responderEvent);
105
+ if (wantsResponder != null) {
106
+ attemptTransfer(responderEvent, wantsResponder);
107
+ wasNegotiated = true;
108
+ }
78
109
  }
79
- eventPaths != null && (wantsResponder = findWantsResponder(eventPaths, domEvent, responderEvent), wantsResponder != null && (attemptTransfer(responderEvent, wantsResponder), wasNegotiated = !0));
80
110
  }
81
111
  if (currentResponder.id != null && currentResponder.node != null) {
82
112
  const {
83
- id,
84
- node
85
- } = currentResponder,
86
- {
87
- onResponderStart,
88
- onResponderMove,
89
- onResponderEnd,
90
- onResponderRelease,
91
- onResponderTerminate,
92
- onResponderTerminationRequest
93
- } = getResponderConfig(id);
94
- if (responderEvent.bubbles = !1, responderEvent.cancelable = !1, responderEvent.currentTarget = node, isStartEvent) onResponderStart != null && (responderEvent.dispatchConfig.registrationName = "onResponderStart", onResponderStart(responderEvent));else if (isMoveEvent) onResponderMove != null && (responderEvent.dispatchConfig.registrationName = "onResponderMove", onResponderMove(responderEvent));else {
113
+ id,
114
+ node
115
+ } = currentResponder;
116
+ const {
117
+ onResponderStart,
118
+ onResponderMove,
119
+ onResponderEnd,
120
+ onResponderRelease,
121
+ onResponderTerminate,
122
+ onResponderTerminationRequest
123
+ } = getResponderConfig(id);
124
+ responderEvent.bubbles = false;
125
+ responderEvent.cancelable = false;
126
+ responderEvent.currentTarget = node;
127
+ if (isStartEvent) {
128
+ if (onResponderStart != null) {
129
+ responderEvent.dispatchConfig.registrationName = "onResponderStart";
130
+ onResponderStart(responderEvent);
131
+ }
132
+ } else if (isMoveEvent) {
133
+ if (onResponderMove != null) {
134
+ responderEvent.dispatchConfig.registrationName = "onResponderMove";
135
+ onResponderMove(responderEvent);
136
+ }
137
+ } else {
95
138
  const isTerminateEvent = isCancelish(eventType) ||
96
- // native context menu
97
- eventType === "contextmenu" ||
98
- // window blur
99
- eventType === "blur" && eventTarget === window ||
100
- // responder (or ancestors) blur
101
- eventType === "blur" && eventTarget.contains(node) && domEvent.relatedTarget !== node ||
102
- // native scroll without using a pointer
103
- isScrollEvent && trackedTouchCount === 0 ||
104
- // native scroll on node that is parent of the responder (allow siblings to scroll)
105
- isScrollEvent && eventTarget.contains(node) && eventTarget !== node ||
106
- // native select/selectionchange on node
107
- isSelectionChangeEvent && hasValidSelection(domEvent),
108
- isReleaseEvent = isEndEvent && !isTerminateEvent && !hasTargetTouches(node, domEvent.touches);
109
- if (isEndEvent && onResponderEnd != null && (responderEvent.dispatchConfig.registrationName = "onResponderEnd", onResponderEnd(responderEvent)), isReleaseEvent && (onResponderRelease != null && (responderEvent.dispatchConfig.registrationName = "onResponderRelease", onResponderRelease(responderEvent)), changeCurrentResponder(emptyResponder)), isTerminateEvent) {
110
- let shouldTerminate = !0;
111
- (eventType === "contextmenu" || eventType === "scroll" || eventType === "selectionchange") && (wasNegotiated ? shouldTerminate = !1 : onResponderTerminationRequest != null && (responderEvent.dispatchConfig.registrationName = "onResponderTerminationRequest", onResponderTerminationRequest(responderEvent) === !1 && (shouldTerminate = !1))), shouldTerminate && (onResponderTerminate != null && (responderEvent.dispatchConfig.registrationName = "onResponderTerminate", onResponderTerminate(responderEvent)), changeCurrentResponder(emptyResponder), isEmulatingMouseEvents = !1, trackedTouchCount = 0);
139
+ // native context menu
140
+ eventType === "contextmenu" ||
141
+ // window blur
142
+ eventType === "blur" && eventTarget === window ||
143
+ // responder (or ancestors) blur
144
+ eventType === "blur" && eventTarget.contains(node) && domEvent.relatedTarget !== node ||
145
+ // native scroll without using a pointer
146
+ isScrollEvent && trackedTouchCount === 0 ||
147
+ // native scroll on node that is parent of the responder (allow siblings to scroll)
148
+ isScrollEvent && eventTarget.contains(node) && eventTarget !== node ||
149
+ // native select/selectionchange on node
150
+ isSelectionChangeEvent && hasValidSelection(domEvent);
151
+ const isReleaseEvent = isEndEvent && !isTerminateEvent && !hasTargetTouches(node, domEvent.touches);
152
+ if (isEndEvent) {
153
+ if (onResponderEnd != null) {
154
+ responderEvent.dispatchConfig.registrationName = "onResponderEnd";
155
+ onResponderEnd(responderEvent);
156
+ }
157
+ }
158
+ if (isReleaseEvent) {
159
+ if (onResponderRelease != null) {
160
+ responderEvent.dispatchConfig.registrationName = "onResponderRelease";
161
+ onResponderRelease(responderEvent);
162
+ }
163
+ changeCurrentResponder(emptyResponder);
164
+ }
165
+ if (isTerminateEvent) {
166
+ let shouldTerminate = true;
167
+ if (eventType === "contextmenu" || eventType === "scroll" || eventType === "selectionchange") {
168
+ if (wasNegotiated) {
169
+ shouldTerminate = false;
170
+ } else if (onResponderTerminationRequest != null) {
171
+ responderEvent.dispatchConfig.registrationName = "onResponderTerminationRequest";
172
+ if (onResponderTerminationRequest(responderEvent) === false) {
173
+ shouldTerminate = false;
174
+ }
175
+ }
176
+ }
177
+ if (shouldTerminate) {
178
+ if (onResponderTerminate != null) {
179
+ responderEvent.dispatchConfig.registrationName = "onResponderTerminate";
180
+ onResponderTerminate(responderEvent);
181
+ }
182
+ changeCurrentResponder(emptyResponder);
183
+ isEmulatingMouseEvents = false;
184
+ trackedTouchCount = 0;
185
+ }
112
186
  }
113
187
  }
114
188
  }
@@ -117,17 +191,20 @@ function findWantsResponder(eventPaths, domEvent, responderEvent) {
117
191
  const shouldSetCallbacks = shouldSetResponderEvents[domEvent.type];
118
192
  if (shouldSetCallbacks != null) {
119
193
  const {
120
- idPath,
121
- nodePath
122
- } = eventPaths,
123
- shouldSetCallbackCaptureName = shouldSetCallbacks[0],
124
- shouldSetCallbackBubbleName = shouldSetCallbacks[1],
125
- {
126
- bubbles
127
- } = shouldSetCallbacks[2],
128
- check = (id, node, callbackName) => {
129
- const shouldSetCallback = getResponderConfig(id)[callbackName];
130
- if (shouldSetCallback != null && (responderEvent.currentTarget = node, shouldSetCallback(responderEvent) === !0)) {
194
+ idPath,
195
+ nodePath
196
+ } = eventPaths;
197
+ const shouldSetCallbackCaptureName = shouldSetCallbacks[0];
198
+ const shouldSetCallbackBubbleName = shouldSetCallbacks[1];
199
+ const {
200
+ bubbles
201
+ } = shouldSetCallbacks[2];
202
+ const check = (id, node, callbackName) => {
203
+ const config = getResponderConfig(id);
204
+ const shouldSetCallback = config[callbackName];
205
+ if (shouldSetCallback != null) {
206
+ responderEvent.currentTarget = node;
207
+ if (shouldSetCallback(responderEvent) === true) {
131
208
  const prunedIdPath = idPath.slice(idPath.indexOf(id));
132
209
  return {
133
210
  id,
@@ -135,70 +212,130 @@ function findWantsResponder(eventPaths, domEvent, responderEvent) {
135
212
  idPath: prunedIdPath
136
213
  };
137
214
  }
138
- };
215
+ }
216
+ };
139
217
  for (let i = idPath.length - 1; i >= 0; i--) {
140
- const id = idPath[i],
141
- node = nodePath[i],
142
- result = check(id, node, shouldSetCallbackCaptureName);
143
- if (result != null) return result;
144
- if (responderEvent.isPropagationStopped() === !0) return;
218
+ const id = idPath[i];
219
+ const node = nodePath[i];
220
+ const result = check(id, node, shouldSetCallbackCaptureName);
221
+ if (result != null) {
222
+ return result;
223
+ }
224
+ if (responderEvent.isPropagationStopped() === true) {
225
+ return;
226
+ }
145
227
  }
146
- if (bubbles) for (let i = 0; i < idPath.length; i++) {
147
- const id = idPath[i],
148
- node = nodePath[i],
149
- result = check(id, node, shouldSetCallbackBubbleName);
150
- if (result != null) return result;
151
- if (responderEvent.isPropagationStopped() === !0) return;
228
+ if (bubbles) {
229
+ for (let i = 0; i < idPath.length; i++) {
230
+ const id = idPath[i];
231
+ const node = nodePath[i];
232
+ const result = check(id, node, shouldSetCallbackBubbleName);
233
+ if (result != null) {
234
+ return result;
235
+ }
236
+ if (responderEvent.isPropagationStopped() === true) {
237
+ return;
238
+ }
239
+ }
152
240
  } else {
153
- const id = idPath[0],
154
- node = nodePath[0];
155
- if (domEvent.target === node) return check(id, node, shouldSetCallbackBubbleName);
241
+ const id = idPath[0];
242
+ const node = nodePath[0];
243
+ const target = domEvent.target;
244
+ if (target === node) {
245
+ return check(id, node, shouldSetCallbackBubbleName);
246
+ }
156
247
  }
157
248
  }
158
249
  }
159
250
  function attemptTransfer(responderEvent, wantsResponder) {
160
251
  const {
161
- id: currentId,
162
- node: currentNode
163
- } = currentResponder,
164
- {
165
- id,
166
- node
167
- } = wantsResponder,
168
- {
169
- onResponderGrant,
170
- onResponderReject
171
- } = getResponderConfig(id);
172
- if (responderEvent.bubbles = !1, responderEvent.cancelable = !1, responderEvent.currentTarget = node, currentId == null) onResponderGrant != null && (responderEvent.currentTarget = node, responderEvent.dispatchConfig.registrationName = "onResponderGrant", onResponderGrant(responderEvent)), changeCurrentResponder(wantsResponder);else {
252
+ id: currentId,
253
+ node: currentNode
254
+ } = currentResponder;
255
+ const {
256
+ id,
257
+ node
258
+ } = wantsResponder;
259
+ const {
260
+ onResponderGrant,
261
+ onResponderReject
262
+ } = getResponderConfig(id);
263
+ responderEvent.bubbles = false;
264
+ responderEvent.cancelable = false;
265
+ responderEvent.currentTarget = node;
266
+ if (currentId == null) {
267
+ if (onResponderGrant != null) {
268
+ responderEvent.currentTarget = node;
269
+ responderEvent.dispatchConfig.registrationName = "onResponderGrant";
270
+ onResponderGrant(responderEvent);
271
+ }
272
+ changeCurrentResponder(wantsResponder);
273
+ } else {
173
274
  const {
174
275
  onResponderTerminate,
175
276
  onResponderTerminationRequest
176
277
  } = getResponderConfig(currentId);
177
- let allowTransfer = !0;
178
- onResponderTerminationRequest != null && (responderEvent.currentTarget = currentNode, responderEvent.dispatchConfig.registrationName = "onResponderTerminationRequest", onResponderTerminationRequest(responderEvent) === !1 && (allowTransfer = !1)), allowTransfer ? (onResponderTerminate != null && (responderEvent.currentTarget = currentNode, responderEvent.dispatchConfig.registrationName = "onResponderTerminate", onResponderTerminate(responderEvent)), onResponderGrant != null && (responderEvent.currentTarget = node, responderEvent.dispatchConfig.registrationName = "onResponderGrant", onResponderGrant(responderEvent)), changeCurrentResponder(wantsResponder)) : onResponderReject != null && (responderEvent.currentTarget = node, responderEvent.dispatchConfig.registrationName = "onResponderReject", onResponderReject(responderEvent));
278
+ let allowTransfer = true;
279
+ if (onResponderTerminationRequest != null) {
280
+ responderEvent.currentTarget = currentNode;
281
+ responderEvent.dispatchConfig.registrationName = "onResponderTerminationRequest";
282
+ if (onResponderTerminationRequest(responderEvent) === false) {
283
+ allowTransfer = false;
284
+ }
285
+ }
286
+ if (allowTransfer) {
287
+ if (onResponderTerminate != null) {
288
+ responderEvent.currentTarget = currentNode;
289
+ responderEvent.dispatchConfig.registrationName = "onResponderTerminate";
290
+ onResponderTerminate(responderEvent);
291
+ }
292
+ if (onResponderGrant != null) {
293
+ responderEvent.currentTarget = node;
294
+ responderEvent.dispatchConfig.registrationName = "onResponderGrant";
295
+ onResponderGrant(responderEvent);
296
+ }
297
+ changeCurrentResponder(wantsResponder);
298
+ } else {
299
+ if (onResponderReject != null) {
300
+ responderEvent.currentTarget = node;
301
+ responderEvent.dispatchConfig.registrationName = "onResponderReject";
302
+ onResponderReject(responderEvent);
303
+ }
304
+ }
179
305
  }
180
306
  }
181
- const documentEventsCapturePhase = ["blur", "scroll"],
182
- documentEventsBubblePhase = [
183
- // mouse
184
- "mousedown", "mousemove", "mouseup", "dragstart",
185
- // touch
186
- "touchstart", "touchmove", "touchend", "touchcancel",
187
- // other
188
- "contextmenu", "select", "selectionchange"],
189
- isTamaguiResponderActive = /* @__PURE__ */Symbol();
307
+ const documentEventsCapturePhase = ["blur", "scroll"];
308
+ const documentEventsBubblePhase = [
309
+ // mouse
310
+ "mousedown", "mousemove", "mouseup", "dragstart",
311
+ // touch
312
+ "touchstart", "touchmove", "touchend", "touchcancel",
313
+ // other
314
+ "contextmenu", "select", "selectionchange"];
315
+ const isTamaguiResponderActive = /* @__PURE__ */Symbol();
190
316
  function attachListeners() {
191
- canUseDOM && !window[isTamaguiResponderActive] && (window.addEventListener("blur", eventListener), documentEventsBubblePhase.forEach(eventType => {
192
- document.addEventListener(eventType, eventListener);
193
- }), documentEventsCapturePhase.forEach(eventType => {
194
- document.addEventListener(eventType, eventListener, !0);
195
- }), window[isTamaguiResponderActive] = !0);
317
+ if (canUseDOM && !window[isTamaguiResponderActive]) {
318
+ window.addEventListener("blur", eventListener);
319
+ documentEventsBubblePhase.forEach(eventType => {
320
+ document.addEventListener(eventType, eventListener);
321
+ });
322
+ documentEventsCapturePhase.forEach(eventType => {
323
+ document.addEventListener(eventType, eventListener, true);
324
+ });
325
+ window[isTamaguiResponderActive] = true;
326
+ }
196
327
  }
197
328
  function addNode(id, node, config) {
198
- setResponderId(node, id), responderListenersMap.set(id, config);
329
+ setResponderId(node, id);
330
+ responderListenersMap.set(id, config);
199
331
  }
200
332
  function removeNode(id) {
201
- currentResponder.id === id && terminateResponder(), responderListenersMap.has(id) && responderListenersMap.delete(id);
333
+ if (currentResponder.id === id) {
334
+ terminateResponder();
335
+ }
336
+ if (responderListenersMap.has(id)) {
337
+ responderListenersMap.delete(id);
338
+ }
202
339
  }
203
340
  function terminateResponder() {
204
341
  const {
@@ -211,11 +348,13 @@ function terminateResponder() {
211
348
  } = getResponderConfig(id);
212
349
  if (onResponderTerminate != null) {
213
350
  const event = createResponderEvent({}, responderTouchHistoryStore);
214
- event.currentTarget = node, onResponderTerminate(event);
351
+ event.currentTarget = node;
352
+ onResponderTerminate(event);
215
353
  }
216
354
  changeCurrentResponder(emptyResponder);
217
355
  }
218
- isEmulatingMouseEvents = !1, trackedTouchCount = 0;
356
+ isEmulatingMouseEvents = false;
357
+ trackedTouchCount = 0;
219
358
  }
220
359
  function getResponderNode() {
221
360
  return currentResponder.node;
@@ -1 +1 @@
1
- {"version":3,"names":["createResponderEvent","ResponderTouchHistoryStore","isCancelish","isEndish","isMoveish","isScroll","isSelectionChange","isStartish","canUseDOM","getLowestCommonAncestor","getResponderPaths","hasTargetTouches","hasValidSelection","isPrimaryPointerDown","setResponderId","emptyObject","startRegistration","bubbles","moveRegistration","scrollRegistration","shouldSetResponderEvents","touchstart","mousedown","touchmove","mousemove","scroll","emptyResponder","id","idPath","node","responderListenersMap","Map","isEmulatingMouseEvents","trackedTouchCount","currentResponder","responderTouchHistoryStore","changeCurrentResponder","responder","getResponderConfig","config","get","eventListener","domEvent","eventType","type","eventTarget","target","isStartEvent","isMoveEvent","isEndEvent","isScrollEvent","isSelectionChangeEvent","responderEvent","touches","length","recordTouchTrack","nativeEvent","eventPaths","wasNegotiated","wantsResponder","currentResponderIdPath","eventIdPath","lowestCommonAncestor","index","indexOf","slice","nodePath","findWantsResponder","attemptTransfer","onResponderStart","onResponderMove","onResponderEnd","onResponderRelease","onResponderTerminate","onResponderTerminationRequest","cancelable","currentTarget","dispatchConfig","registrationName","isTerminateEvent","window","contains","relatedTarget","isReleaseEvent","shouldTerminate","shouldSetCallbacks","shouldSetCallbackCaptureName","shouldSetCallbackBubbleName","check","callbackName","shouldSetCallback","prunedIdPath","i","result","isPropagationStopped","currentId","currentNode","onResponderGrant","onResponderReject","allowTransfer","documentEventsCapturePhase","documentEventsBubblePhase","isTamaguiResponderActive","Symbol","attachListeners","addEventListener","forEach","document","addNode","set","removeNode","terminateResponder","has","delete","event","getResponderNode"],"sources":["../../src/ResponderSystem.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["createResponderEvent","ResponderTouchHistoryStore","isCancelish","isEndish","isMoveish","isScroll","isSelectionChange","isStartish","canUseDOM","getLowestCommonAncestor","getResponderPaths","hasTargetTouches","hasValidSelection","isPrimaryPointerDown","setResponderId","emptyObject","startRegistration","bubbles","moveRegistration","scrollRegistration","shouldSetResponderEvents","touchstart","mousedown","touchmove","mousemove","scroll","emptyResponder","id","idPath","node","responderListenersMap","Map","isEmulatingMouseEvents","trackedTouchCount","currentResponder","responderTouchHistoryStore","changeCurrentResponder","responder","getResponderConfig","config","get","eventListener","domEvent","eventType","type","eventTarget","target","isStartEvent","isMoveEvent","isEndEvent","isScrollEvent","isSelectionChangeEvent","responderEvent","touches","length","recordTouchTrack","nativeEvent","eventPaths","wasNegotiated","wantsResponder","currentResponderIdPath","eventIdPath","lowestCommonAncestor","indexOfLowestCommonAncestor","indexOf","index","slice","nodePath","findWantsResponder","attemptTransfer","onResponderStart","onResponderMove","onResponderEnd","onResponderRelease","onResponderTerminate","onResponderTerminationRequest","cancelable","currentTarget","dispatchConfig","registrationName","isTerminateEvent","window","contains","relatedTarget","isReleaseEvent","shouldTerminate","shouldSetCallbacks","shouldSetCallbackCaptureName","shouldSetCallbackBubbleName","check","callbackName","shouldSetCallback","prunedIdPath","i","result","isPropagationStopped","currentId","currentNode","onResponderGrant","onResponderReject","allowTransfer","documentEventsCapturePhase","documentEventsBubblePhase","isTamaguiResponderActive","Symbol","attachListeners","addEventListener","forEach","document","addNode","set","removeNode","terminateResponder","has","delete","event","getResponderNode"],"sources":["../../src/ResponderSystem.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}