@tamagui/react-native-use-responder-events 2.0.0-rc.4 → 2.0.0-rc.40

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