@tamagui/react-native-use-responder-events 2.7.7 → 3.0.0-beta.643.1

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