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