@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.
- package/dist/cjs/ResponderSystem.cjs +307 -344
- package/dist/cjs/ResponderSystem.native.cjs +357 -0
- package/dist/cjs/ResponderSystem.native.js +307 -343
- package/dist/cjs/ResponderSystem.native.js.map +1 -1
- package/dist/cjs/ResponderTouchHistoryStore.cjs +136 -149
- package/dist/cjs/ResponderTouchHistoryStore.native.cjs +217 -0
- package/dist/cjs/ResponderTouchHistoryStore.native.js +176 -189
- package/dist/cjs/ResponderTouchHistoryStore.native.js.map +1 -1
- package/dist/cjs/createResponderEvent.cjs +128 -132
- package/dist/cjs/createResponderEvent.native.cjs +147 -0
- package/dist/cjs/createResponderEvent.native.js +129 -132
- package/dist/cjs/createResponderEvent.native.js.map +1 -1
- package/dist/cjs/index.cjs +10 -11
- package/dist/cjs/index.native.cjs +21 -0
- package/dist/cjs/index.native.js +10 -10
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/types.cjs +40 -41
- package/dist/cjs/types.native.cjs +79 -0
- package/dist/cjs/types.native.js +40 -40
- package/dist/cjs/types.native.js.map +1 -1
- package/dist/cjs/useResponderEvents.cjs +60 -85
- package/dist/cjs/useResponderEvents.native.cjs +87 -0
- package/dist/cjs/useResponderEvents.native.js +62 -86
- package/dist/cjs/useResponderEvents.native.js.map +1 -1
- package/dist/cjs/utils.cjs +123 -135
- package/dist/cjs/utils.native.cjs +160 -0
- package/dist/cjs/utils.native.js +124 -135
- package/dist/cjs/utils.native.js.map +1 -1
- package/dist/esm/ResponderSystem.mjs +291 -326
- package/dist/esm/ResponderSystem.mjs.map +1 -1
- package/dist/esm/ResponderSystem.native.js +291 -326
- package/dist/esm/ResponderSystem.native.js.map +1 -1
- package/dist/esm/ResponderTouchHistoryStore.mjs +123 -131
- package/dist/esm/ResponderTouchHistoryStore.mjs.map +1 -1
- package/dist/esm/ResponderTouchHistoryStore.native.js +163 -172
- package/dist/esm/ResponderTouchHistoryStore.native.js.map +1 -1
- package/dist/esm/createResponderEvent.mjs +115 -114
- package/dist/esm/createResponderEvent.mjs.map +1 -1
- package/dist/esm/createResponderEvent.native.js +116 -115
- package/dist/esm/createResponderEvent.native.js.map +1 -1
- package/dist/esm/index.js +1 -2
- package/dist/esm/index.mjs +1 -2
- package/dist/esm/index.native.js +1 -2
- package/dist/esm/types.mjs +7 -6
- package/dist/esm/types.mjs.map +1 -1
- package/dist/esm/types.native.js +7 -6
- package/dist/esm/types.native.js.map +1 -1
- package/dist/esm/useResponderEvents.mjs +45 -61
- package/dist/esm/useResponderEvents.mjs.map +1 -1
- package/dist/esm/useResponderEvents.native.js +47 -63
- package/dist/esm/useResponderEvents.native.js.map +1 -1
- package/dist/esm/utils.mjs +101 -111
- package/dist/esm/utils.mjs.map +1 -1
- package/dist/esm/utils.native.js +102 -112
- package/dist/esm/utils.native.js.map +1 -1
- package/package.json +2 -2
- package/types/ResponderTouchHistoryStore.d.ts.map +1 -1
- package/types/utils.d.ts.map +1 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/index.native.js.map +0 -1
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all) __defProp(target, name, {
|
|
10
|
+
get: all[name],
|
|
11
|
+
enumerable: true
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
var __copyProps = (to, from, except, desc) => {
|
|
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;
|
|
22
|
+
};
|
|
23
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
|
+
var ResponderSystem_exports = {};
|
|
25
|
+
__export(ResponderSystem_exports, {
|
|
26
|
+
addNode: () => addNode,
|
|
27
|
+
attachListeners: () => attachListeners,
|
|
28
|
+
getResponderNode: () => getResponderNode,
|
|
29
|
+
removeNode: () => removeNode,
|
|
30
|
+
terminateResponder: () => terminateResponder
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(ResponderSystem_exports);
|
|
33
|
+
var import_createResponderEvent = require("./createResponderEvent.native.js");
|
|
34
|
+
var import_ResponderTouchHistoryStore = require("./ResponderTouchHistoryStore.native.js");
|
|
35
|
+
var import_types = require("./types.native.js");
|
|
36
|
+
var import_utils = require("./utils.native.js");
|
|
37
|
+
var import_utils2 = require("./utils.native.js");
|
|
38
|
+
var emptyObject = {};
|
|
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
|
+
];
|
|
54
|
+
var shouldSetResponderEvents = {
|
|
55
|
+
touchstart: startRegistration,
|
|
56
|
+
mousedown: startRegistration,
|
|
57
|
+
touchmove: moveRegistration,
|
|
58
|
+
mousemove: moveRegistration,
|
|
59
|
+
scroll: scrollRegistration
|
|
60
|
+
};
|
|
61
|
+
var emptyResponder = {
|
|
62
|
+
id: null,
|
|
63
|
+
idPath: null,
|
|
64
|
+
node: null
|
|
65
|
+
};
|
|
66
|
+
var responderListenersMap = /* @__PURE__ */ new Map();
|
|
67
|
+
var isEmulatingMouseEvents = false;
|
|
68
|
+
var trackedTouchCount = 0;
|
|
69
|
+
var currentResponder = {
|
|
70
|
+
id: null,
|
|
71
|
+
node: null,
|
|
72
|
+
idPath: null
|
|
73
|
+
};
|
|
74
|
+
var responderTouchHistoryStore = new import_ResponderTouchHistoryStore.ResponderTouchHistoryStore();
|
|
75
|
+
function changeCurrentResponder(responder) {
|
|
76
|
+
currentResponder = responder;
|
|
77
|
+
}
|
|
78
|
+
function getResponderConfig(id) {
|
|
79
|
+
var config = responderListenersMap.get(id);
|
|
80
|
+
return config != null ? config : emptyObject;
|
|
81
|
+
}
|
|
82
|
+
function eventListener(domEvent) {
|
|
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
|
+
}
|
|
201
|
+
}
|
|
202
|
+
function findWantsResponder(eventPaths, domEvent, responderEvent) {
|
|
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
|
+
}
|
|
256
|
+
}
|
|
257
|
+
function attemptTransfer(responderEvent, wantsResponder) {
|
|
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
|
+
}
|
|
301
|
+
}
|
|
302
|
+
var documentEventsCapturePhase = ["blur", "scroll"];
|
|
303
|
+
var documentEventsBubblePhase = [
|
|
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();
|
|
317
|
+
function attachListeners() {
|
|
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
|
+
}
|
|
328
|
+
}
|
|
329
|
+
function addNode(id, node, config) {
|
|
330
|
+
(0, import_utils2.setResponderId)(node, id);
|
|
331
|
+
responderListenersMap.set(id, config);
|
|
332
|
+
}
|
|
333
|
+
function removeNode(id) {
|
|
334
|
+
if (currentResponder.id === id) {
|
|
335
|
+
terminateResponder();
|
|
336
|
+
}
|
|
337
|
+
if (responderListenersMap.has(id)) {
|
|
338
|
+
responderListenersMap.delete(id);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
function terminateResponder() {
|
|
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;
|
|
354
|
+
}
|
|
355
|
+
function getResponderNode() {
|
|
356
|
+
return currentResponder.node;
|
|
357
|
+
}
|