@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.native.js";
|
|
2
|
-
import { ResponderTouchHistoryStore } from "./ResponderTouchHistoryStore.native.js";
|
|
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";
|
|
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
|
-
}];
|
|
16
|
-
var shouldSetResponderEvents = {
|
|
17
|
-
touchstart: startRegistration,
|
|
18
|
-
mousedown: startRegistration,
|
|
19
|
-
touchmove: moveRegistration,
|
|
20
|
-
mousemove: moveRegistration,
|
|
21
|
-
scroll: scrollRegistration
|
|
22
|
-
};
|
|
23
|
-
var emptyResponder = {
|
|
24
|
-
id: null,
|
|
25
|
-
idPath: null,
|
|
26
|
-
node: null
|
|
27
|
-
};
|
|
28
|
-
var responderListenersMap = /* @__PURE__ */new Map();
|
|
29
|
-
var isEmulatingMouseEvents = false;
|
|
30
|
-
var trackedTouchCount = 0;
|
|
31
|
-
var currentResponder = {
|
|
32
|
-
id: null,
|
|
33
|
-
node: null,
|
|
34
|
-
idPath: null
|
|
35
|
-
};
|
|
36
|
-
var responderTouchHistoryStore = new ResponderTouchHistoryStore();
|
|
37
|
-
function changeCurrentResponder(responder) {
|
|
38
|
-
currentResponder = responder;
|
|
39
|
-
}
|
|
40
|
-
function getResponderConfig(id) {
|
|
41
|
-
var config = responderListenersMap.get(id);
|
|
42
|
-
return config != null ? config : emptyObject;
|
|
43
|
-
}
|
|
44
|
-
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
|
-
}
|
|
189
|
-
}
|
|
190
|
-
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
|
-
}
|
|
249
|
-
}
|
|
250
|
-
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
|
-
}
|
|
306
|
-
}
|
|
307
|
-
var documentEventsCapturePhase = ["blur", "scroll"];
|
|
308
|
-
var documentEventsBubblePhase = [
|
|
309
|
-
// mouse
|
|
310
|
-
"mousedown", "mousemove", "mouseup", "dragstart",
|
|
311
|
-
// touch
|
|
312
|
-
"touchstart", "touchmove", "touchend", "touchcancel",
|
|
313
|
-
// other
|
|
314
|
-
"contextmenu", "select", "selectionchange"];
|
|
315
|
-
var isGuiResponderActive = /* @__PURE__ */Symbol();
|
|
316
|
-
function attachListeners() {
|
|
317
|
-
if (canUseDOM && !window[isGuiResponderActive]) {
|
|
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[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
|
-
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;
|
|
358
|
-
}
|
|
359
|
-
function getResponderNode() {
|
|
360
|
-
return currentResponder.node;
|
|
361
|
-
}
|
|
362
|
-
export { addNode, attachListeners, getResponderNode, removeNode, terminateResponder };
|
|
363
|
-
//# sourceMappingURL=ResponderSystem.native.js.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","id3","node3","callbackName","shouldSetCallback","prunedIdPath","i","result","isPropagationStopped","i1","id1","node1","result1","id2","node2","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":[]}
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
import { isEndish, isMoveish, isStartish } from "./types.mjs";
|
|
2
|
-
class ResponderTouchHistoryStore {
|
|
3
|
-
_touchHistory = {
|
|
4
|
-
touchBank: [],
|
|
5
|
-
//Array<TouchRecord>
|
|
6
|
-
numberActiveTouches: 0,
|
|
7
|
-
// If there is only one active touch, we remember its location. This prevents
|
|
8
|
-
// us having to loop through all of the touches all the time in the most
|
|
9
|
-
// common case.
|
|
10
|
-
indexOfSingleActiveTouch: -1,
|
|
11
|
-
mostRecentTimeStamp: 0
|
|
12
|
-
};
|
|
13
|
-
recordTouchTrack(topLevelType, nativeEvent) {
|
|
14
|
-
const touchHistory = this._touchHistory;
|
|
15
|
-
if (isMoveish(topLevelType)) {
|
|
16
|
-
nativeEvent.changedTouches.forEach(touch => recordTouchMove(touch, touchHistory));
|
|
17
|
-
} else if (isStartish(topLevelType)) {
|
|
18
|
-
nativeEvent.changedTouches.forEach(touch => recordTouchStart(touch, touchHistory));
|
|
19
|
-
touchHistory.numberActiveTouches = nativeEvent.touches.length;
|
|
20
|
-
if (touchHistory.numberActiveTouches === 1) {
|
|
21
|
-
touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier;
|
|
22
|
-
}
|
|
23
|
-
} else if (isEndish(topLevelType)) {
|
|
24
|
-
nativeEvent.changedTouches.forEach(touch => recordTouchEnd(touch, touchHistory));
|
|
25
|
-
touchHistory.numberActiveTouches = nativeEvent.touches.length;
|
|
26
|
-
if (touchHistory.numberActiveTouches === 1) {
|
|
27
|
-
const {
|
|
28
|
-
touchBank
|
|
29
|
-
} = touchHistory;
|
|
30
|
-
for (let i = 0; i < touchBank.length; i++) {
|
|
31
|
-
const touchTrackToCheck = touchBank[i];
|
|
32
|
-
if (touchTrackToCheck?.touchActive) {
|
|
33
|
-
touchHistory.indexOfSingleActiveTouch = i;
|
|
34
|
-
break;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
if (process.env.NODE_ENV === "development") {
|
|
38
|
-
const activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch];
|
|
39
|
-
if (!activeRecord?.touchActive) {
|
|
40
|
-
console.error("Cannot find single active touch.");
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
get touchHistory() {
|
|
47
|
-
return this._touchHistory;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
const MAX_TOUCH_BANK = 20;
|
|
51
|
-
function timestampForTouch(touch) {
|
|
52
|
-
return touch["timeStamp"] || touch.timestamp;
|
|
53
|
-
}
|
|
54
|
-
function createTouchRecord(touch) {
|
|
55
|
-
return {
|
|
56
|
-
touchActive: true,
|
|
57
|
-
startPageX: touch.pageX,
|
|
58
|
-
startPageY: touch.pageY,
|
|
59
|
-
startTimeStamp: timestampForTouch(touch),
|
|
60
|
-
currentPageX: touch.pageX,
|
|
61
|
-
currentPageY: touch.pageY,
|
|
62
|
-
currentTimeStamp: timestampForTouch(touch),
|
|
63
|
-
previousPageX: touch.pageX,
|
|
64
|
-
previousPageY: touch.pageY,
|
|
65
|
-
previousTimeStamp: timestampForTouch(touch)
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
function resetTouchRecord(touchRecord, touch) {
|
|
69
|
-
touchRecord.touchActive = true;
|
|
70
|
-
touchRecord.startPageX = touch.pageX;
|
|
71
|
-
touchRecord.startPageY = touch.pageY;
|
|
72
|
-
touchRecord.startTimeStamp = timestampForTouch(touch);
|
|
73
|
-
touchRecord.currentPageX = touch.pageX;
|
|
74
|
-
touchRecord.currentPageY = touch.pageY;
|
|
75
|
-
touchRecord.currentTimeStamp = timestampForTouch(touch);
|
|
76
|
-
touchRecord.previousPageX = touch.pageX;
|
|
77
|
-
touchRecord.previousPageY = touch.pageY;
|
|
78
|
-
touchRecord.previousTimeStamp = timestampForTouch(touch);
|
|
79
|
-
}
|
|
80
|
-
function getTouchIdentifier({
|
|
81
|
-
identifier
|
|
82
|
-
}) {
|
|
83
|
-
if (identifier == null) {
|
|
84
|
-
console.error("Touch object is missing identifier.");
|
|
85
|
-
}
|
|
86
|
-
if (process.env.NODE_ENV === "development") {
|
|
87
|
-
if (identifier > MAX_TOUCH_BANK) {
|
|
88
|
-
console.error("Touch identifier %s is greater than maximum supported %s which causes performance issues backfilling array locations for all of the indices.", identifier, MAX_TOUCH_BANK);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
return identifier;
|
|
92
|
-
}
|
|
93
|
-
function recordTouchStart(touch, touchHistory) {
|
|
94
|
-
const identifier = getTouchIdentifier(touch);
|
|
95
|
-
const touchRecord = touchHistory.touchBank[identifier];
|
|
96
|
-
if (touchRecord) {
|
|
97
|
-
resetTouchRecord(touchRecord, touch);
|
|
98
|
-
} else {
|
|
99
|
-
touchHistory.touchBank[identifier] = createTouchRecord(touch);
|
|
100
|
-
}
|
|
101
|
-
touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
|
|
102
|
-
}
|
|
103
|
-
function recordTouchMove(touch, touchHistory) {
|
|
104
|
-
const touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];
|
|
105
|
-
if (touchRecord) {
|
|
106
|
-
touchRecord.touchActive = true;
|
|
107
|
-
touchRecord.previousPageX = touchRecord.currentPageX;
|
|
108
|
-
touchRecord.previousPageY = touchRecord.currentPageY;
|
|
109
|
-
touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;
|
|
110
|
-
touchRecord.currentPageX = touch.pageX;
|
|
111
|
-
touchRecord.currentPageY = touch.pageY;
|
|
112
|
-
touchRecord.currentTimeStamp = timestampForTouch(touch);
|
|
113
|
-
touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
|
|
114
|
-
} else {
|
|
115
|
-
console.warn("Cannot record touch move without a touch start.\n", `Touch Move: ${printTouch(touch)}
|
|
116
|
-
`, `Touch Bank: ${printTouchBank(touchHistory)}`);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
function recordTouchEnd(touch, touchHistory) {
|
|
120
|
-
const touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];
|
|
121
|
-
if (touchRecord) {
|
|
122
|
-
touchRecord.touchActive = false;
|
|
123
|
-
touchRecord.previousPageX = touchRecord.currentPageX;
|
|
124
|
-
touchRecord.previousPageY = touchRecord.currentPageY;
|
|
125
|
-
touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;
|
|
126
|
-
touchRecord.currentPageX = touch.pageX;
|
|
127
|
-
touchRecord.currentPageY = touch.pageY;
|
|
128
|
-
touchRecord.currentTimeStamp = timestampForTouch(touch);
|
|
129
|
-
touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
|
|
130
|
-
} else {
|
|
131
|
-
console.warn("Cannot record touch end without a touch start.\n", `Touch End: ${printTouch(touch)}
|
|
132
|
-
`, `Touch Bank: ${printTouchBank(touchHistory)}`);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
function printTouch(touch) {
|
|
136
|
-
return JSON.stringify({
|
|
137
|
-
identifier: touch.identifier,
|
|
138
|
-
pageX: touch.pageX,
|
|
139
|
-
pageY: touch.pageY,
|
|
140
|
-
timestamp: timestampForTouch(touch)
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
|
-
function printTouchBank(touchHistory) {
|
|
144
|
-
const {
|
|
145
|
-
touchBank
|
|
146
|
-
} = touchHistory;
|
|
147
|
-
let printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));
|
|
148
|
-
if (touchBank.length > MAX_TOUCH_BANK) {
|
|
149
|
-
printed += ` (original size: ${touchBank.length})`;
|
|
150
|
-
}
|
|
151
|
-
return printed;
|
|
152
|
-
}
|
|
153
|
-
export { ResponderTouchHistoryStore };
|
|
154
|
-
//# sourceMappingURL=ResponderTouchHistoryStore.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["isEndish","isMoveish","isStartish","ResponderTouchHistoryStore","_touchHistory","touchBank","numberActiveTouches","indexOfSingleActiveTouch","mostRecentTimeStamp","recordTouchTrack","topLevelType","nativeEvent","touchHistory","changedTouches","forEach","touch","recordTouchMove","recordTouchStart","touches","length","identifier","recordTouchEnd","i","touchTrackToCheck","touchActive","process","env","NODE_ENV","activeRecord","console","error","MAX_TOUCH_BANK","timestampForTouch","timestamp","createTouchRecord","startPageX","pageX","startPageY","pageY","startTimeStamp","currentPageX","currentPageY","currentTimeStamp","previousPageX","previousPageY","previousTimeStamp","resetTouchRecord","touchRecord","getTouchIdentifier","warn","printTouch","printTouchBank","JSON","stringify","printed","slice"],"sources":["../../src/ResponderTouchHistoryStore.ts"],"sourcesContent":[null],"mappings":"AAQA,SAASA,QAAA,EAAUC,SAAA,EAAWC,UAAA,QAAkB;AAEzC,MAAMC,0BAAA,CAA2B;EACtCC,aAAA,GAAgB;IACdC,SAAA,EAAW,EAAC;IAAA;IACZC,mBAAA,EAAqB;IAAA;IAAA;IAAA;IAIrBC,wBAAA,EAA0B;IAC1BC,mBAAA,EAAqB;EACvB;EAEAC,iBAAiBC,YAAA,EAAsBC,WAAA,EAA+B;IACpE,MAAMC,YAAA,GAAe,KAAKR,aAAA;IAC1B,IAAIH,SAAA,CAAUS,YAAY,GAAG;MAC3BC,WAAA,CAAYE,cAAA,CAAeC,OAAA,CAASC,KAAA,IAAUC,eAAA,CAAgBD,KAAA,EAAOH,YAAY,CAAC;IACpF,WAAWV,UAAA,CAAWQ,YAAY,GAAG;MACnCC,WAAA,CAAYE,cAAA,CAAeC,OAAA,CAASC,KAAA,IAAUE,gBAAA,CAAiBF,KAAA,EAAOH,YAAY,CAAC;MACnFA,YAAA,CAAaN,mBAAA,GAAsBK,WAAA,CAAYO,OAAA,CAAQC,MAAA;MACvD,IAAIP,YAAA,CAAaN,mBAAA,KAAwB,GAAG;QAC1CM,YAAA,CAAaL,wBAAA,GAA2BI,WAAA,CAAYO,OAAA,CAAQ,CAAC,EAAEE,UAAA;MACjE;IACF,WAAWpB,QAAA,CAASU,YAAY,GAAG;MACjCC,WAAA,CAAYE,cAAA,CAAeC,OAAA,CAASC,KAAA,IAAUM,cAAA,CAAeN,KAAA,EAAOH,YAAY,CAAC;MACjFA,YAAA,CAAaN,mBAAA,GAAsBK,WAAA,CAAYO,OAAA,CAAQC,MAAA;MACvD,IAAIP,YAAA,CAAaN,mBAAA,KAAwB,GAAG;QAC1C,MAAM;UAAED;QAAU,IAAIO,YAAA;QACtB,SAASU,CAAA,GAAI,GAAGA,CAAA,GAAIjB,SAAA,CAAUc,MAAA,EAAQG,CAAA,IAAK;UACzC,MAAMC,iBAAA,GAAoBlB,SAAA,CAAUiB,CAAC;UAErC,IAAIC,iBAAA,EAAmBC,WAAA,EAAa;YAClCZ,YAAA,CAAaL,wBAAA,GAA2Be,CAAA;YACxC;UACF;QACF;QACA,IAAIG,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eAAe;UAC1C,MAAMC,YAAA,GAAevB,SAAA,CAAUO,YAAA,CAAaL,wBAAwB;UAEpE,IAAI,CAACqB,YAAA,EAAcJ,WAAA,EAAa;YAC9BK,OAAA,CAAQC,KAAA,CAAM,kCAAkC;UAClD;QACF;MACF;IACF;EACF;EAEA,IAAIlB,aAAA,EAA6B;IAC/B,OAAO,KAAKR,aAAA;EACd;AACF;AA4BA,MAAM2B,cAAA,GAAiB;AAEvB,SAASC,kBAAkBjB,KAAA,EAAsB;EAG/C,OAAOA,KAAA,CAAM,WAAW,KAAKA,KAAA,CAAMkB,SAAA;AACrC;AAMA,SAASC,kBAAkBnB,KAAA,EAA2B;EACpD,OAAO;IACLS,WAAA,EAAa;IACbW,UAAA,EAAYpB,KAAA,CAAMqB,KAAA;IAClBC,UAAA,EAAYtB,KAAA,CAAMuB,KAAA;IAClBC,cAAA,EAAgBP,iBAAA,CAAkBjB,KAAK;IACvCyB,YAAA,EAAczB,KAAA,CAAMqB,KAAA;IACpBK,YAAA,EAAc1B,KAAA,CAAMuB,KAAA;IACpBI,gBAAA,EAAkBV,iBAAA,CAAkBjB,KAAK;IACzC4B,aAAA,EAAe5B,KAAA,CAAMqB,KAAA;IACrBQ,aAAA,EAAe7B,KAAA,CAAMuB,KAAA;IACrBO,iBAAA,EAAmBb,iBAAA,CAAkBjB,KAAK;EAC5C;AACF;AAEA,SAAS+B,iBAAiBC,WAAA,EAA0BhC,KAAA,EAAoB;EACtEgC,WAAA,CAAYvB,WAAA,GAAc;EAC1BuB,WAAA,CAAYZ,UAAA,GAAapB,KAAA,CAAMqB,KAAA;EAC/BW,WAAA,CAAYV,UAAA,GAAatB,KAAA,CAAMuB,KAAA;EAC/BS,WAAA,CAAYR,cAAA,GAAiBP,iBAAA,CAAkBjB,KAAK;EACpDgC,WAAA,CAAYP,YAAA,GAAezB,KAAA,CAAMqB,KAAA;EACjCW,WAAA,CAAYN,YAAA,GAAe1B,KAAA,CAAMuB,KAAA;EACjCS,WAAA,CAAYL,gBAAA,GAAmBV,iBAAA,CAAkBjB,KAAK;EACtDgC,WAAA,CAAYJ,aAAA,GAAgB5B,KAAA,CAAMqB,KAAA;EAClCW,WAAA,CAAYH,aAAA,GAAgB7B,KAAA,CAAMuB,KAAA;EAClCS,WAAA,CAAYF,iBAAA,GAAoBb,iBAAA,CAAkBjB,KAAK;AACzD;AAEA,SAASiC,mBAAmB;EAAE5B;AAAW,GAAkB;EACzD,IAAIA,UAAA,IAAc,MAAM;IACtBS,OAAA,CAAQC,KAAA,CAAM,qCAAqC;EACrD;EACA,IAAIL,OAAA,CAAQC,GAAA,CAAIC,QAAA,KAAa,eAAe;IAC1C,IAAIP,UAAA,GAAaW,cAAA,EAAgB;MAC/BF,OAAA,CAAQC,KAAA,CACN,gJAEAV,UAAA,EACAW,cACF;IACF;EACF;EACA,OAAOX,UAAA;AACT;AAEA,SAASH,iBAAiBF,KAAA,EAAcH,YAAA,EAAoB;EAC1D,MAAMQ,UAAA,GAAa4B,kBAAA,CAAmBjC,KAAK;EAC3C,MAAMgC,WAAA,GAAcnC,YAAA,CAAaP,SAAA,CAAUe,UAAU;EACrD,IAAI2B,WAAA,EAAa;IACfD,gBAAA,CAAiBC,WAAA,EAAahC,KAAK;EACrC,OAAO;IACLH,YAAA,CAAaP,SAAA,CAAUe,UAAU,IAAIc,iBAAA,CAAkBnB,KAAK;EAC9D;EACAH,YAAA,CAAaJ,mBAAA,GAAsBwB,iBAAA,CAAkBjB,KAAK;AAC5D;AAEA,SAASC,gBAAgBD,KAAA,EAAcH,YAAA,EAAoB;EACzD,MAAMmC,WAAA,GAAcnC,YAAA,CAAaP,SAAA,CAAU2C,kBAAA,CAAmBjC,KAAK,CAAC;EACpE,IAAIgC,WAAA,EAAa;IACfA,WAAA,CAAYvB,WAAA,GAAc;IAC1BuB,WAAA,CAAYJ,aAAA,GAAgBI,WAAA,CAAYP,YAAA;IACxCO,WAAA,CAAYH,aAAA,GAAgBG,WAAA,CAAYN,YAAA;IACxCM,WAAA,CAAYF,iBAAA,GAAoBE,WAAA,CAAYL,gBAAA;IAC5CK,WAAA,CAAYP,YAAA,GAAezB,KAAA,CAAMqB,KAAA;IACjCW,WAAA,CAAYN,YAAA,GAAe1B,KAAA,CAAMuB,KAAA;IACjCS,WAAA,CAAYL,gBAAA,GAAmBV,iBAAA,CAAkBjB,KAAK;IACtDH,YAAA,CAAaJ,mBAAA,GAAsBwB,iBAAA,CAAkBjB,KAAK;EAC5D,OAAO;IACLc,OAAA,CAAQoB,IAAA,CACN,qDACA,eAAeC,UAAA,CAAWnC,KAAK,CAAC;AAAA,GAChC,eAAeoC,cAAA,CAAevC,YAAY,CAAC,EAC7C;EACF;AACF;AAEA,SAASS,eAAeN,KAAA,EAAcH,YAAA,EAAoB;EACxD,MAAMmC,WAAA,GAAcnC,YAAA,CAAaP,SAAA,CAAU2C,kBAAA,CAAmBjC,KAAK,CAAC;EACpE,IAAIgC,WAAA,EAAa;IACfA,WAAA,CAAYvB,WAAA,GAAc;IAC1BuB,WAAA,CAAYJ,aAAA,GAAgBI,WAAA,CAAYP,YAAA;IACxCO,WAAA,CAAYH,aAAA,GAAgBG,WAAA,CAAYN,YAAA;IACxCM,WAAA,CAAYF,iBAAA,GAAoBE,WAAA,CAAYL,gBAAA;IAC5CK,WAAA,CAAYP,YAAA,GAAezB,KAAA,CAAMqB,KAAA;IACjCW,WAAA,CAAYN,YAAA,GAAe1B,KAAA,CAAMuB,KAAA;IACjCS,WAAA,CAAYL,gBAAA,GAAmBV,iBAAA,CAAkBjB,KAAK;IACtDH,YAAA,CAAaJ,mBAAA,GAAsBwB,iBAAA,CAAkBjB,KAAK;EAC5D,OAAO;IACLc,OAAA,CAAQoB,IAAA,CACN,oDACA,cAAcC,UAAA,CAAWnC,KAAK,CAAC;AAAA,GAC/B,eAAeoC,cAAA,CAAevC,YAAY,CAAC,EAC7C;EACF;AACF;AAEA,SAASsC,WAAWnC,KAAA,EAAsB;EACxC,OAAOqC,IAAA,CAAKC,SAAA,CAAU;IACpBjC,UAAA,EAAYL,KAAA,CAAMK,UAAA;IAClBgB,KAAA,EAAOrB,KAAA,CAAMqB,KAAA;IACbE,KAAA,EAAOvB,KAAA,CAAMuB,KAAA;IACbL,SAAA,EAAWD,iBAAA,CAAkBjB,KAAK;EACpC,CAAC;AACH;AAEA,SAASoC,eAAevC,YAAA,EAAsB;EAC5C,MAAM;IAAEP;EAAU,IAAIO,YAAA;EACtB,IAAI0C,OAAA,GAAUF,IAAA,CAAKC,SAAA,CAAUhD,SAAA,CAAUkD,KAAA,CAAM,GAAGxB,cAAc,CAAC;EAC/D,IAAI1B,SAAA,CAAUc,MAAA,GAASY,cAAA,EAAgB;IACrCuB,OAAA,IAAW,oBAAoBjD,SAAA,CAAUc,MAAM;EACjD;EACA,OAAOmC,OAAA;AACT","ignoreList":[]}
|