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