@tamagui/react-native-use-responder-events 1.26.0 → 1.27.0
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/package.json +2 -2
- package/dist/esm/ResponderSystem.mjs +0 -365
- package/dist/esm/ResponderSystem.mjs.map +0 -6
- package/dist/esm/ResponderTouchHistoryStore.mjs +0 -164
- package/dist/esm/ResponderTouchHistoryStore.mjs.map +0 -6
- package/dist/esm/createResponderEvent.mjs +0 -129
- package/dist/esm/createResponderEvent.mjs.map +0 -6
- package/dist/esm/index.mjs +0 -2
- package/dist/esm/index.mjs.map +0 -6
- package/dist/esm/types.mjs +0 -55
- package/dist/esm/types.mjs.map +0 -6
- package/dist/esm/useResponderEvents.mjs +0 -45
- package/dist/esm/useResponderEvents.mjs.map +0 -6
- package/dist/esm/utils.mjs +0 -142
- package/dist/esm/utils.mjs.map +0 -6
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/react-native-use-responder-events",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.27.0",
|
|
4
4
|
"types": "./types/index.d.ts",
|
|
5
5
|
"main": "dist/cjs",
|
|
6
6
|
"module": "dist/esm",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"react": "*"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@tamagui/build": "1.
|
|
32
|
+
"@tamagui/build": "1.27.0",
|
|
33
33
|
"@types/react": "^18.0.15",
|
|
34
34
|
"react": "^18.2.0"
|
|
35
35
|
},
|
|
@@ -1,365 +0,0 @@
|
|
|
1
|
-
import createResponderEvent from "./createResponderEvent";
|
|
2
|
-
import { ResponderTouchHistoryStore } from "./ResponderTouchHistoryStore";
|
|
3
|
-
import {
|
|
4
|
-
isCancelish,
|
|
5
|
-
isEndish,
|
|
6
|
-
isMoveish,
|
|
7
|
-
isScroll,
|
|
8
|
-
isSelectionChange,
|
|
9
|
-
isStartish
|
|
10
|
-
} from "./types";
|
|
11
|
-
import { canUseDOM } from "./utils";
|
|
12
|
-
import {
|
|
13
|
-
getLowestCommonAncestor,
|
|
14
|
-
getResponderPaths,
|
|
15
|
-
hasTargetTouches,
|
|
16
|
-
hasValidSelection,
|
|
17
|
-
isPrimaryPointerDown,
|
|
18
|
-
setResponderId
|
|
19
|
-
} from "./utils";
|
|
20
|
-
const emptyObject = {};
|
|
21
|
-
const startRegistration = [
|
|
22
|
-
"onStartShouldSetResponderCapture",
|
|
23
|
-
"onStartShouldSetResponder",
|
|
24
|
-
{ bubbles: true }
|
|
25
|
-
];
|
|
26
|
-
const moveRegistration = [
|
|
27
|
-
"onMoveShouldSetResponderCapture",
|
|
28
|
-
"onMoveShouldSetResponder",
|
|
29
|
-
{ bubbles: true }
|
|
30
|
-
];
|
|
31
|
-
const scrollRegistration = [
|
|
32
|
-
"onScrollShouldSetResponderCapture",
|
|
33
|
-
"onScrollShouldSetResponder",
|
|
34
|
-
{ bubbles: false }
|
|
35
|
-
];
|
|
36
|
-
const shouldSetResponderEvents = {
|
|
37
|
-
touchstart: startRegistration,
|
|
38
|
-
mousedown: startRegistration,
|
|
39
|
-
touchmove: moveRegistration,
|
|
40
|
-
mousemove: moveRegistration,
|
|
41
|
-
scroll: scrollRegistration
|
|
42
|
-
};
|
|
43
|
-
const emptyResponder = { id: null, idPath: null, node: null };
|
|
44
|
-
const responderListenersMap = /* @__PURE__ */ new Map();
|
|
45
|
-
let isEmulatingMouseEvents = false;
|
|
46
|
-
let trackedTouchCount = 0;
|
|
47
|
-
let currentResponder = {
|
|
48
|
-
id: null,
|
|
49
|
-
node: null,
|
|
50
|
-
idPath: null
|
|
51
|
-
};
|
|
52
|
-
const responderTouchHistoryStore = new ResponderTouchHistoryStore();
|
|
53
|
-
function changeCurrentResponder(responder) {
|
|
54
|
-
currentResponder = responder;
|
|
55
|
-
}
|
|
56
|
-
function getResponderConfig(id) {
|
|
57
|
-
const config = responderListenersMap.get(id);
|
|
58
|
-
return config != null ? config : emptyObject;
|
|
59
|
-
}
|
|
60
|
-
function eventListener(domEvent) {
|
|
61
|
-
const eventType = domEvent.type;
|
|
62
|
-
const eventTarget = domEvent.target;
|
|
63
|
-
if (eventType === "touchstart") {
|
|
64
|
-
isEmulatingMouseEvents = true;
|
|
65
|
-
}
|
|
66
|
-
if (eventType === "touchmove" || trackedTouchCount > 1) {
|
|
67
|
-
isEmulatingMouseEvents = false;
|
|
68
|
-
}
|
|
69
|
-
if (
|
|
70
|
-
// Ignore browser emulated mouse events
|
|
71
|
-
eventType === "mousedown" && isEmulatingMouseEvents || eventType === "mousemove" && isEmulatingMouseEvents || // Ignore mousemove if a mousedown didn't occur first
|
|
72
|
-
eventType === "mousemove" && trackedTouchCount < 1
|
|
73
|
-
) {
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
if (isEmulatingMouseEvents && eventType === "mouseup") {
|
|
77
|
-
if (trackedTouchCount === 0) {
|
|
78
|
-
isEmulatingMouseEvents = false;
|
|
79
|
-
}
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
const isStartEvent = isStartish(eventType) && isPrimaryPointerDown(domEvent);
|
|
83
|
-
const isMoveEvent = isMoveish(eventType);
|
|
84
|
-
const isEndEvent = isEndish(eventType);
|
|
85
|
-
const isScrollEvent = isScroll(eventType);
|
|
86
|
-
const isSelectionChangeEvent = isSelectionChange(eventType);
|
|
87
|
-
const responderEvent = createResponderEvent(domEvent, responderTouchHistoryStore);
|
|
88
|
-
if (isStartEvent || isMoveEvent || isEndEvent) {
|
|
89
|
-
if (domEvent.touches) {
|
|
90
|
-
trackedTouchCount = domEvent.touches.length;
|
|
91
|
-
} else {
|
|
92
|
-
if (isStartEvent) {
|
|
93
|
-
trackedTouchCount = 1;
|
|
94
|
-
} else if (isEndEvent) {
|
|
95
|
-
trackedTouchCount = 0;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
responderTouchHistoryStore.recordTouchTrack(
|
|
99
|
-
eventType,
|
|
100
|
-
responderEvent.nativeEvent
|
|
101
|
-
);
|
|
102
|
-
}
|
|
103
|
-
let eventPaths = getResponderPaths(domEvent);
|
|
104
|
-
let wasNegotiated = false;
|
|
105
|
-
let wantsResponder;
|
|
106
|
-
if (isStartEvent || isMoveEvent || isScrollEvent && trackedTouchCount > 0) {
|
|
107
|
-
const currentResponderIdPath = currentResponder.idPath;
|
|
108
|
-
const eventIdPath = eventPaths.idPath;
|
|
109
|
-
if (currentResponderIdPath != null && eventIdPath != null) {
|
|
110
|
-
const lowestCommonAncestor = getLowestCommonAncestor(
|
|
111
|
-
currentResponderIdPath,
|
|
112
|
-
eventIdPath
|
|
113
|
-
);
|
|
114
|
-
if (lowestCommonAncestor != null) {
|
|
115
|
-
const indexOfLowestCommonAncestor = eventIdPath.indexOf(lowestCommonAncestor);
|
|
116
|
-
const index = indexOfLowestCommonAncestor + (lowestCommonAncestor === currentResponder.id ? 1 : 0);
|
|
117
|
-
eventPaths = {
|
|
118
|
-
idPath: eventIdPath.slice(index),
|
|
119
|
-
nodePath: eventPaths.nodePath.slice(index)
|
|
120
|
-
};
|
|
121
|
-
} else {
|
|
122
|
-
eventPaths = null;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
if (eventPaths != null) {
|
|
126
|
-
wantsResponder = findWantsResponder(eventPaths, domEvent, responderEvent);
|
|
127
|
-
if (wantsResponder != null) {
|
|
128
|
-
attemptTransfer(responderEvent, wantsResponder);
|
|
129
|
-
wasNegotiated = true;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
if (currentResponder.id != null && currentResponder.node != null) {
|
|
134
|
-
const { id, node } = currentResponder;
|
|
135
|
-
const {
|
|
136
|
-
onResponderStart,
|
|
137
|
-
onResponderMove,
|
|
138
|
-
onResponderEnd,
|
|
139
|
-
onResponderRelease,
|
|
140
|
-
onResponderTerminate,
|
|
141
|
-
onResponderTerminationRequest
|
|
142
|
-
} = getResponderConfig(id);
|
|
143
|
-
responderEvent.bubbles = false;
|
|
144
|
-
responderEvent.cancelable = false;
|
|
145
|
-
responderEvent.currentTarget = node;
|
|
146
|
-
if (isStartEvent) {
|
|
147
|
-
if (onResponderStart != null) {
|
|
148
|
-
responderEvent.dispatchConfig.registrationName = "onResponderStart";
|
|
149
|
-
onResponderStart(responderEvent);
|
|
150
|
-
}
|
|
151
|
-
} else if (isMoveEvent) {
|
|
152
|
-
if (onResponderMove != null) {
|
|
153
|
-
responderEvent.dispatchConfig.registrationName = "onResponderMove";
|
|
154
|
-
onResponderMove(responderEvent);
|
|
155
|
-
}
|
|
156
|
-
} else {
|
|
157
|
-
const isTerminateEvent = isCancelish(eventType) || // native context menu
|
|
158
|
-
eventType === "contextmenu" || // window blur
|
|
159
|
-
eventType === "blur" && eventTarget === window || // responder (or ancestors) blur
|
|
160
|
-
eventType === "blur" && eventTarget.contains(node) && domEvent.relatedTarget !== node || // native scroll without using a pointer
|
|
161
|
-
isScrollEvent && trackedTouchCount === 0 || // native scroll on node that is parent of the responder (allow siblings to scroll)
|
|
162
|
-
isScrollEvent && eventTarget.contains(node) && eventTarget !== node || // native select/selectionchange on node
|
|
163
|
-
isSelectionChangeEvent && hasValidSelection(domEvent);
|
|
164
|
-
const isReleaseEvent = isEndEvent && !isTerminateEvent && !hasTargetTouches(node, domEvent.touches);
|
|
165
|
-
if (isEndEvent) {
|
|
166
|
-
if (onResponderEnd != null) {
|
|
167
|
-
responderEvent.dispatchConfig.registrationName = "onResponderEnd";
|
|
168
|
-
onResponderEnd(responderEvent);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
if (isReleaseEvent) {
|
|
172
|
-
if (onResponderRelease != null) {
|
|
173
|
-
responderEvent.dispatchConfig.registrationName = "onResponderRelease";
|
|
174
|
-
onResponderRelease(responderEvent);
|
|
175
|
-
}
|
|
176
|
-
changeCurrentResponder(emptyResponder);
|
|
177
|
-
}
|
|
178
|
-
if (isTerminateEvent) {
|
|
179
|
-
let shouldTerminate = true;
|
|
180
|
-
if (eventType === "contextmenu" || eventType === "scroll" || eventType === "selectionchange") {
|
|
181
|
-
if (wasNegotiated) {
|
|
182
|
-
shouldTerminate = false;
|
|
183
|
-
} else if (onResponderTerminationRequest != null) {
|
|
184
|
-
responderEvent.dispatchConfig.registrationName = "onResponderTerminationRequest";
|
|
185
|
-
if (onResponderTerminationRequest(responderEvent) === false) {
|
|
186
|
-
shouldTerminate = false;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
if (shouldTerminate) {
|
|
191
|
-
if (onResponderTerminate != null) {
|
|
192
|
-
responderEvent.dispatchConfig.registrationName = "onResponderTerminate";
|
|
193
|
-
onResponderTerminate(responderEvent);
|
|
194
|
-
}
|
|
195
|
-
changeCurrentResponder(emptyResponder);
|
|
196
|
-
isEmulatingMouseEvents = false;
|
|
197
|
-
trackedTouchCount = 0;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
function findWantsResponder(eventPaths, domEvent, responderEvent) {
|
|
204
|
-
const shouldSetCallbacks = shouldSetResponderEvents[domEvent.type];
|
|
205
|
-
if (shouldSetCallbacks != null) {
|
|
206
|
-
const { idPath, nodePath } = eventPaths;
|
|
207
|
-
const shouldSetCallbackCaptureName = shouldSetCallbacks[0];
|
|
208
|
-
const shouldSetCallbackBubbleName = shouldSetCallbacks[1];
|
|
209
|
-
const { bubbles } = shouldSetCallbacks[2];
|
|
210
|
-
const check = function(id, node, callbackName) {
|
|
211
|
-
const config = getResponderConfig(id);
|
|
212
|
-
const shouldSetCallback = config[callbackName];
|
|
213
|
-
if (shouldSetCallback != null) {
|
|
214
|
-
responderEvent.currentTarget = node;
|
|
215
|
-
if (shouldSetCallback(responderEvent) === true) {
|
|
216
|
-
const prunedIdPath = idPath.slice(idPath.indexOf(id));
|
|
217
|
-
return { id, node, idPath: prunedIdPath };
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
};
|
|
221
|
-
for (let i = idPath.length - 1; i >= 0; i--) {
|
|
222
|
-
const id = idPath[i];
|
|
223
|
-
const node = nodePath[i];
|
|
224
|
-
const result = check(id, node, shouldSetCallbackCaptureName);
|
|
225
|
-
if (result != null) {
|
|
226
|
-
return result;
|
|
227
|
-
}
|
|
228
|
-
if (responderEvent.isPropagationStopped() === true) {
|
|
229
|
-
return;
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
if (bubbles) {
|
|
233
|
-
for (let i = 0; i < idPath.length; i++) {
|
|
234
|
-
const id = idPath[i];
|
|
235
|
-
const node = nodePath[i];
|
|
236
|
-
const result = check(id, node, shouldSetCallbackBubbleName);
|
|
237
|
-
if (result != null) {
|
|
238
|
-
return result;
|
|
239
|
-
}
|
|
240
|
-
if (responderEvent.isPropagationStopped() === true) {
|
|
241
|
-
return;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
} else {
|
|
245
|
-
const id = idPath[0];
|
|
246
|
-
const node = nodePath[0];
|
|
247
|
-
const target = domEvent.target;
|
|
248
|
-
if (target === node) {
|
|
249
|
-
return check(id, node, shouldSetCallbackBubbleName);
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
function attemptTransfer(responderEvent, wantsResponder) {
|
|
255
|
-
const { id: currentId, node: currentNode } = currentResponder;
|
|
256
|
-
const { id, node } = wantsResponder;
|
|
257
|
-
const { onResponderGrant, onResponderReject } = getResponderConfig(id);
|
|
258
|
-
responderEvent.bubbles = false;
|
|
259
|
-
responderEvent.cancelable = false;
|
|
260
|
-
responderEvent.currentTarget = node;
|
|
261
|
-
if (currentId == null) {
|
|
262
|
-
if (onResponderGrant != null) {
|
|
263
|
-
responderEvent.currentTarget = node;
|
|
264
|
-
responderEvent.dispatchConfig.registrationName = "onResponderGrant";
|
|
265
|
-
onResponderGrant(responderEvent);
|
|
266
|
-
}
|
|
267
|
-
changeCurrentResponder(wantsResponder);
|
|
268
|
-
} else {
|
|
269
|
-
const { onResponderTerminate, onResponderTerminationRequest } = getResponderConfig(currentId);
|
|
270
|
-
let allowTransfer = true;
|
|
271
|
-
if (onResponderTerminationRequest != null) {
|
|
272
|
-
responderEvent.currentTarget = currentNode;
|
|
273
|
-
responderEvent.dispatchConfig.registrationName = "onResponderTerminationRequest";
|
|
274
|
-
if (onResponderTerminationRequest(responderEvent) === false) {
|
|
275
|
-
allowTransfer = false;
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
if (allowTransfer) {
|
|
279
|
-
if (onResponderTerminate != null) {
|
|
280
|
-
responderEvent.currentTarget = currentNode;
|
|
281
|
-
responderEvent.dispatchConfig.registrationName = "onResponderTerminate";
|
|
282
|
-
onResponderTerminate(responderEvent);
|
|
283
|
-
}
|
|
284
|
-
if (onResponderGrant != null) {
|
|
285
|
-
responderEvent.currentTarget = node;
|
|
286
|
-
responderEvent.dispatchConfig.registrationName = "onResponderGrant";
|
|
287
|
-
onResponderGrant(responderEvent);
|
|
288
|
-
}
|
|
289
|
-
changeCurrentResponder(wantsResponder);
|
|
290
|
-
} else {
|
|
291
|
-
if (onResponderReject != null) {
|
|
292
|
-
responderEvent.currentTarget = node;
|
|
293
|
-
responderEvent.dispatchConfig.registrationName = "onResponderReject";
|
|
294
|
-
onResponderReject(responderEvent);
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
const documentEventsCapturePhase = ["blur", "scroll"];
|
|
300
|
-
const documentEventsBubblePhase = [
|
|
301
|
-
// mouse
|
|
302
|
-
"mousedown",
|
|
303
|
-
"mousemove",
|
|
304
|
-
"mouseup",
|
|
305
|
-
"dragstart",
|
|
306
|
-
// touch
|
|
307
|
-
"touchstart",
|
|
308
|
-
"touchmove",
|
|
309
|
-
"touchend",
|
|
310
|
-
"touchcancel",
|
|
311
|
-
// other
|
|
312
|
-
"contextmenu",
|
|
313
|
-
"select",
|
|
314
|
-
"selectionchange"
|
|
315
|
-
];
|
|
316
|
-
const isTamaguiResponderActive = Symbol();
|
|
317
|
-
function attachListeners() {
|
|
318
|
-
if (canUseDOM && !window[isTamaguiResponderActive]) {
|
|
319
|
-
window.addEventListener("blur", eventListener);
|
|
320
|
-
documentEventsBubblePhase.forEach((eventType) => {
|
|
321
|
-
document.addEventListener(eventType, eventListener);
|
|
322
|
-
});
|
|
323
|
-
documentEventsCapturePhase.forEach((eventType) => {
|
|
324
|
-
document.addEventListener(eventType, eventListener, true);
|
|
325
|
-
});
|
|
326
|
-
window[isTamaguiResponderActive] = true;
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
function addNode(id, node, config) {
|
|
330
|
-
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
|
-
const { id, node } = currentResponder;
|
|
343
|
-
if (id != null && node != null) {
|
|
344
|
-
const { onResponderTerminate } = getResponderConfig(id);
|
|
345
|
-
if (onResponderTerminate != null) {
|
|
346
|
-
const event = 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
|
-
}
|
|
358
|
-
export {
|
|
359
|
-
addNode,
|
|
360
|
-
attachListeners,
|
|
361
|
-
getResponderNode,
|
|
362
|
-
removeNode,
|
|
363
|
-
terminateResponder
|
|
364
|
-
};
|
|
365
|
-
//# sourceMappingURL=ResponderSystem.mjs.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/ResponderSystem.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
import { isEndish, isMoveish, isStartish } from "./types";
|
|
2
|
-
const MAX_TOUCH_BANK = 20;
|
|
3
|
-
function timestampForTouch(touch) {
|
|
4
|
-
return touch["timeStamp"] || touch.timestamp;
|
|
5
|
-
}
|
|
6
|
-
function createTouchRecord(touch) {
|
|
7
|
-
return {
|
|
8
|
-
touchActive: true,
|
|
9
|
-
startPageX: touch.pageX,
|
|
10
|
-
startPageY: touch.pageY,
|
|
11
|
-
startTimeStamp: timestampForTouch(touch),
|
|
12
|
-
currentPageX: touch.pageX,
|
|
13
|
-
currentPageY: touch.pageY,
|
|
14
|
-
currentTimeStamp: timestampForTouch(touch),
|
|
15
|
-
previousPageX: touch.pageX,
|
|
16
|
-
previousPageY: touch.pageY,
|
|
17
|
-
previousTimeStamp: timestampForTouch(touch)
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
function resetTouchRecord(touchRecord, touch) {
|
|
21
|
-
touchRecord.touchActive = true;
|
|
22
|
-
touchRecord.startPageX = touch.pageX;
|
|
23
|
-
touchRecord.startPageY = touch.pageY;
|
|
24
|
-
touchRecord.startTimeStamp = timestampForTouch(touch);
|
|
25
|
-
touchRecord.currentPageX = touch.pageX;
|
|
26
|
-
touchRecord.currentPageY = touch.pageY;
|
|
27
|
-
touchRecord.currentTimeStamp = timestampForTouch(touch);
|
|
28
|
-
touchRecord.previousPageX = touch.pageX;
|
|
29
|
-
touchRecord.previousPageY = touch.pageY;
|
|
30
|
-
touchRecord.previousTimeStamp = timestampForTouch(touch);
|
|
31
|
-
}
|
|
32
|
-
function getTouchIdentifier({ identifier }) {
|
|
33
|
-
if (identifier == null) {
|
|
34
|
-
console.error("Touch object is missing identifier.");
|
|
35
|
-
}
|
|
36
|
-
if (process.env.NODE_ENV === "development") {
|
|
37
|
-
if (identifier > MAX_TOUCH_BANK) {
|
|
38
|
-
console.error(
|
|
39
|
-
"Touch identifier %s is greater than maximum supported %s which causes performance issues backfilling array locations for all of the indices.",
|
|
40
|
-
identifier,
|
|
41
|
-
MAX_TOUCH_BANK
|
|
42
|
-
);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return identifier;
|
|
46
|
-
}
|
|
47
|
-
function recordTouchStart(touch, touchHistory) {
|
|
48
|
-
const identifier = getTouchIdentifier(touch);
|
|
49
|
-
const touchRecord = touchHistory.touchBank[identifier];
|
|
50
|
-
if (touchRecord) {
|
|
51
|
-
resetTouchRecord(touchRecord, touch);
|
|
52
|
-
} else {
|
|
53
|
-
touchHistory.touchBank[identifier] = createTouchRecord(touch);
|
|
54
|
-
}
|
|
55
|
-
touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
|
|
56
|
-
}
|
|
57
|
-
function recordTouchMove(touch, touchHistory) {
|
|
58
|
-
const touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];
|
|
59
|
-
if (touchRecord) {
|
|
60
|
-
touchRecord.touchActive = true;
|
|
61
|
-
touchRecord.previousPageX = touchRecord.currentPageX;
|
|
62
|
-
touchRecord.previousPageY = touchRecord.currentPageY;
|
|
63
|
-
touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;
|
|
64
|
-
touchRecord.currentPageX = touch.pageX;
|
|
65
|
-
touchRecord.currentPageY = touch.pageY;
|
|
66
|
-
touchRecord.currentTimeStamp = timestampForTouch(touch);
|
|
67
|
-
touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
|
|
68
|
-
} else {
|
|
69
|
-
console.warn(
|
|
70
|
-
"Cannot record touch move without a touch start.\n",
|
|
71
|
-
`Touch Move: ${printTouch(touch)}
|
|
72
|
-
`,
|
|
73
|
-
`Touch Bank: ${printTouchBank(touchHistory)}`
|
|
74
|
-
);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
function recordTouchEnd(touch, touchHistory) {
|
|
78
|
-
const touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];
|
|
79
|
-
if (touchRecord) {
|
|
80
|
-
touchRecord.touchActive = false;
|
|
81
|
-
touchRecord.previousPageX = touchRecord.currentPageX;
|
|
82
|
-
touchRecord.previousPageY = touchRecord.currentPageY;
|
|
83
|
-
touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;
|
|
84
|
-
touchRecord.currentPageX = touch.pageX;
|
|
85
|
-
touchRecord.currentPageY = touch.pageY;
|
|
86
|
-
touchRecord.currentTimeStamp = timestampForTouch(touch);
|
|
87
|
-
touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
|
|
88
|
-
} else {
|
|
89
|
-
console.warn(
|
|
90
|
-
"Cannot record touch end without a touch start.\n",
|
|
91
|
-
`Touch End: ${printTouch(touch)}
|
|
92
|
-
`,
|
|
93
|
-
`Touch Bank: ${printTouchBank(touchHistory)}`
|
|
94
|
-
);
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
function printTouch(touch) {
|
|
98
|
-
return JSON.stringify({
|
|
99
|
-
identifier: touch.identifier,
|
|
100
|
-
pageX: touch.pageX,
|
|
101
|
-
pageY: touch.pageY,
|
|
102
|
-
timestamp: timestampForTouch(touch)
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
function printTouchBank(touchHistory) {
|
|
106
|
-
const { touchBank } = touchHistory;
|
|
107
|
-
let printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));
|
|
108
|
-
if (touchBank.length > MAX_TOUCH_BANK) {
|
|
109
|
-
printed += ` (original size: ${touchBank.length})`;
|
|
110
|
-
}
|
|
111
|
-
return printed;
|
|
112
|
-
}
|
|
113
|
-
class ResponderTouchHistoryStore {
|
|
114
|
-
constructor() {
|
|
115
|
-
this._touchHistory = {
|
|
116
|
-
touchBank: [],
|
|
117
|
-
//Array<TouchRecord>
|
|
118
|
-
numberActiveTouches: 0,
|
|
119
|
-
// If there is only one active touch, we remember its location. This prevents
|
|
120
|
-
// us having to loop through all of the touches all the time in the most
|
|
121
|
-
// common case.
|
|
122
|
-
indexOfSingleActiveTouch: -1,
|
|
123
|
-
mostRecentTimeStamp: 0
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
recordTouchTrack(topLevelType, nativeEvent) {
|
|
127
|
-
const touchHistory = this._touchHistory;
|
|
128
|
-
if (isMoveish(topLevelType)) {
|
|
129
|
-
nativeEvent.changedTouches.forEach((touch) => recordTouchMove(touch, touchHistory));
|
|
130
|
-
} else if (isStartish(topLevelType)) {
|
|
131
|
-
nativeEvent.changedTouches.forEach((touch) => recordTouchStart(touch, touchHistory));
|
|
132
|
-
touchHistory.numberActiveTouches = nativeEvent.touches.length;
|
|
133
|
-
if (touchHistory.numberActiveTouches === 1) {
|
|
134
|
-
touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier;
|
|
135
|
-
}
|
|
136
|
-
} else if (isEndish(topLevelType)) {
|
|
137
|
-
nativeEvent.changedTouches.forEach((touch) => recordTouchEnd(touch, touchHistory));
|
|
138
|
-
touchHistory.numberActiveTouches = nativeEvent.touches.length;
|
|
139
|
-
if (touchHistory.numberActiveTouches === 1) {
|
|
140
|
-
const { touchBank } = touchHistory;
|
|
141
|
-
for (let i = 0; i < touchBank.length; i++) {
|
|
142
|
-
const touchTrackToCheck = touchBank[i];
|
|
143
|
-
if (touchTrackToCheck == null ? void 0 : touchTrackToCheck.touchActive) {
|
|
144
|
-
touchHistory.indexOfSingleActiveTouch = i;
|
|
145
|
-
break;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
if (process.env.NODE_ENV === "development") {
|
|
149
|
-
const activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch];
|
|
150
|
-
if (!(activeRecord == null ? void 0 : activeRecord.touchActive)) {
|
|
151
|
-
console.error("Cannot find single active touch.");
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
get touchHistory() {
|
|
158
|
-
return this._touchHistory;
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
export {
|
|
162
|
-
ResponderTouchHistoryStore
|
|
163
|
-
};
|
|
164
|
-
//# sourceMappingURL=ResponderTouchHistoryStore.mjs.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/ResponderTouchHistoryStore.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { getBoundingClientRect } from "./utils";
|
|
2
|
-
const emptyFunction = () => {
|
|
3
|
-
};
|
|
4
|
-
const emptyObject = {};
|
|
5
|
-
const emptyArray = [];
|
|
6
|
-
function normalizeIdentifier(identifier) {
|
|
7
|
-
return identifier > 20 ? identifier % 20 : identifier;
|
|
8
|
-
}
|
|
9
|
-
function createResponderEvent(domEvent, responderTouchHistoryStore) {
|
|
10
|
-
let rect;
|
|
11
|
-
let propagationWasStopped = false;
|
|
12
|
-
let changedTouches;
|
|
13
|
-
let touches;
|
|
14
|
-
const domEventChangedTouches = domEvent.changedTouches;
|
|
15
|
-
const domEventType = domEvent.type;
|
|
16
|
-
const metaKey = domEvent.metaKey === true;
|
|
17
|
-
const shiftKey = domEvent.shiftKey === true;
|
|
18
|
-
const force = (domEventChangedTouches == null ? void 0 : domEventChangedTouches[0].force) || 0;
|
|
19
|
-
const identifier = normalizeIdentifier((domEventChangedTouches == null ? void 0 : domEventChangedTouches[0].identifier) || 0);
|
|
20
|
-
const clientX = (domEventChangedTouches == null ? void 0 : domEventChangedTouches[0].clientX) || domEvent.clientX;
|
|
21
|
-
const clientY = (domEventChangedTouches == null ? void 0 : domEventChangedTouches[0].clientY) || domEvent.clientY;
|
|
22
|
-
const pageX = (domEventChangedTouches == null ? void 0 : domEventChangedTouches[0].pageX) || domEvent.pageX;
|
|
23
|
-
const pageY = (domEventChangedTouches == null ? void 0 : domEventChangedTouches[0].pageY) || domEvent.pageY;
|
|
24
|
-
const preventDefault = typeof domEvent.preventDefault === "function" ? domEvent.preventDefault.bind(domEvent) : emptyFunction;
|
|
25
|
-
const timestamp = domEvent.timeStamp;
|
|
26
|
-
function normalizeTouches(touches2) {
|
|
27
|
-
return Array.prototype.slice.call(touches2).map((touch) => {
|
|
28
|
-
return {
|
|
29
|
-
force: touch.force,
|
|
30
|
-
identifier: normalizeIdentifier(touch.identifier),
|
|
31
|
-
get locationX() {
|
|
32
|
-
return locationX(touch.clientX);
|
|
33
|
-
},
|
|
34
|
-
get locationY() {
|
|
35
|
-
return locationY(touch.clientY);
|
|
36
|
-
},
|
|
37
|
-
pageX: touch.pageX,
|
|
38
|
-
pageY: touch.pageY,
|
|
39
|
-
target: touch.target,
|
|
40
|
-
timestamp
|
|
41
|
-
};
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
if (domEventChangedTouches != null) {
|
|
45
|
-
changedTouches = normalizeTouches(domEventChangedTouches);
|
|
46
|
-
touches = normalizeTouches(domEvent.touches);
|
|
47
|
-
} else {
|
|
48
|
-
const emulatedTouches = [
|
|
49
|
-
{
|
|
50
|
-
force,
|
|
51
|
-
identifier,
|
|
52
|
-
get locationX() {
|
|
53
|
-
return locationX(clientX);
|
|
54
|
-
},
|
|
55
|
-
get locationY() {
|
|
56
|
-
return locationY(clientY);
|
|
57
|
-
},
|
|
58
|
-
pageX,
|
|
59
|
-
pageY,
|
|
60
|
-
target: domEvent.target,
|
|
61
|
-
timestamp
|
|
62
|
-
}
|
|
63
|
-
];
|
|
64
|
-
changedTouches = emulatedTouches;
|
|
65
|
-
touches = domEventType === "mouseup" || domEventType === "dragstart" ? emptyArray : emulatedTouches;
|
|
66
|
-
}
|
|
67
|
-
const responderEvent = {
|
|
68
|
-
bubbles: true,
|
|
69
|
-
cancelable: true,
|
|
70
|
-
// `currentTarget` is set before dispatch
|
|
71
|
-
currentTarget: null,
|
|
72
|
-
defaultPrevented: domEvent.defaultPrevented,
|
|
73
|
-
dispatchConfig: emptyObject,
|
|
74
|
-
eventPhase: domEvent.eventPhase,
|
|
75
|
-
isDefaultPrevented() {
|
|
76
|
-
return domEvent.defaultPrevented;
|
|
77
|
-
},
|
|
78
|
-
isPropagationStopped() {
|
|
79
|
-
return propagationWasStopped;
|
|
80
|
-
},
|
|
81
|
-
isTrusted: domEvent.isTrusted,
|
|
82
|
-
nativeEvent: {
|
|
83
|
-
altKey: false,
|
|
84
|
-
ctrlKey: false,
|
|
85
|
-
metaKey,
|
|
86
|
-
shiftKey,
|
|
87
|
-
changedTouches,
|
|
88
|
-
force,
|
|
89
|
-
identifier,
|
|
90
|
-
get locationX() {
|
|
91
|
-
return locationX(clientX);
|
|
92
|
-
},
|
|
93
|
-
get locationY() {
|
|
94
|
-
return locationY(clientY);
|
|
95
|
-
},
|
|
96
|
-
pageX,
|
|
97
|
-
pageY,
|
|
98
|
-
target: domEvent.target,
|
|
99
|
-
timestamp,
|
|
100
|
-
touches,
|
|
101
|
-
type: domEventType
|
|
102
|
-
},
|
|
103
|
-
persist: emptyFunction,
|
|
104
|
-
preventDefault,
|
|
105
|
-
stopPropagation() {
|
|
106
|
-
propagationWasStopped = true;
|
|
107
|
-
},
|
|
108
|
-
target: domEvent.target,
|
|
109
|
-
timeStamp: timestamp,
|
|
110
|
-
touchHistory: responderTouchHistoryStore.touchHistory
|
|
111
|
-
};
|
|
112
|
-
function locationX(x) {
|
|
113
|
-
rect = rect || getBoundingClientRect(responderEvent.currentTarget);
|
|
114
|
-
if (rect) {
|
|
115
|
-
return x - rect.left;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
function locationY(y) {
|
|
119
|
-
rect = rect || getBoundingClientRect(responderEvent.currentTarget);
|
|
120
|
-
if (rect) {
|
|
121
|
-
return y - rect.top;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
return responderEvent;
|
|
125
|
-
}
|
|
126
|
-
export {
|
|
127
|
-
createResponderEvent as default
|
|
128
|
-
};
|
|
129
|
-
//# sourceMappingURL=createResponderEvent.mjs.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/createResponderEvent.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": ["touches"]
|
|
6
|
-
}
|
package/dist/esm/index.mjs
DELETED
package/dist/esm/index.mjs.map
DELETED
package/dist/esm/types.mjs
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
const BLUR = "blur";
|
|
2
|
-
const CONTEXT_MENU = "contextmenu";
|
|
3
|
-
const FOCUS_OUT = "focusout";
|
|
4
|
-
const MOUSE_DOWN = "mousedown";
|
|
5
|
-
const MOUSE_MOVE = "mousemove";
|
|
6
|
-
const MOUSE_UP = "mouseup";
|
|
7
|
-
const MOUSE_CANCEL = "dragstart";
|
|
8
|
-
const TOUCH_START = "touchstart";
|
|
9
|
-
const TOUCH_MOVE = "touchmove";
|
|
10
|
-
const TOUCH_END = "touchend";
|
|
11
|
-
const TOUCH_CANCEL = "touchcancel";
|
|
12
|
-
const SCROLL = "scroll";
|
|
13
|
-
const SELECT = "select";
|
|
14
|
-
const SELECTION_CHANGE = "selectionchange";
|
|
15
|
-
function isStartish(eventType) {
|
|
16
|
-
return eventType === TOUCH_START || eventType === MOUSE_DOWN;
|
|
17
|
-
}
|
|
18
|
-
function isMoveish(eventType) {
|
|
19
|
-
return eventType === TOUCH_MOVE || eventType === MOUSE_MOVE;
|
|
20
|
-
}
|
|
21
|
-
function isEndish(eventType) {
|
|
22
|
-
return eventType === TOUCH_END || eventType === MOUSE_UP || isCancelish(eventType);
|
|
23
|
-
}
|
|
24
|
-
function isCancelish(eventType) {
|
|
25
|
-
return eventType === TOUCH_CANCEL || eventType === MOUSE_CANCEL;
|
|
26
|
-
}
|
|
27
|
-
function isScroll(eventType) {
|
|
28
|
-
return eventType === SCROLL;
|
|
29
|
-
}
|
|
30
|
-
function isSelectionChange(eventType) {
|
|
31
|
-
return eventType === SELECT || eventType === SELECTION_CHANGE;
|
|
32
|
-
}
|
|
33
|
-
export {
|
|
34
|
-
BLUR,
|
|
35
|
-
CONTEXT_MENU,
|
|
36
|
-
FOCUS_OUT,
|
|
37
|
-
MOUSE_CANCEL,
|
|
38
|
-
MOUSE_DOWN,
|
|
39
|
-
MOUSE_MOVE,
|
|
40
|
-
MOUSE_UP,
|
|
41
|
-
SCROLL,
|
|
42
|
-
SELECT,
|
|
43
|
-
SELECTION_CHANGE,
|
|
44
|
-
TOUCH_CANCEL,
|
|
45
|
-
TOUCH_END,
|
|
46
|
-
TOUCH_MOVE,
|
|
47
|
-
TOUCH_START,
|
|
48
|
-
isCancelish,
|
|
49
|
-
isEndish,
|
|
50
|
-
isMoveish,
|
|
51
|
-
isScroll,
|
|
52
|
-
isSelectionChange,
|
|
53
|
-
isStartish
|
|
54
|
-
};
|
|
55
|
-
//# sourceMappingURL=types.mjs.map
|
package/dist/esm/types.mjs.map
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/types.ts"],
|
|
4
|
-
"mappings": "AAwCO,MAAM,OAAO;AACb,MAAM,eAAe;AACrB,MAAM,YAAY;AAClB,MAAM,aAAa;AACnB,MAAM,aAAa;AACnB,MAAM,WAAW;AACjB,MAAM,eAAe;AACrB,MAAM,cAAc;AACpB,MAAM,aAAa;AACnB,MAAM,YAAY;AAClB,MAAM,eAAe;AACrB,MAAM,SAAS;AACf,MAAM,SAAS;AACf,MAAM,mBAAmB;AAEzB,SAAS,WAAW,WAA6B;AACtD,SAAO,cAAc,eAAe,cAAc;AACpD;AAEO,SAAS,UAAU,WAA6B;AACrD,SAAO,cAAc,cAAc,cAAc;AACnD;AAEO,SAAS,SAAS,WAA6B;AACpD,SAAO,cAAc,aAAa,cAAc,YAAY,YAAY,SAAS;AACnF;AAEO,SAAS,YAAY,WAA6B;AACvD,SAAO,cAAc,gBAAgB,cAAc;AACrD;AAEO,SAAS,SAAS,WAA6B;AACpD,SAAO,cAAc;AACvB;AAEO,SAAS,kBAAkB,WAA6B;AAC7D,SAAO,cAAc,UAAU,cAAc;AAC/C;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
import * as ResponderSystem from "./ResponderSystem";
|
|
3
|
-
export * from "./utils";
|
|
4
|
-
const emptyObject = {};
|
|
5
|
-
function useResponderEvents(hostRef, config = emptyObject) {
|
|
6
|
-
const id = React.useId();
|
|
7
|
-
const isAttachedRef = React.useRef(false);
|
|
8
|
-
React.useEffect(() => {
|
|
9
|
-
ResponderSystem.attachListeners();
|
|
10
|
-
return () => {
|
|
11
|
-
ResponderSystem.removeNode(id);
|
|
12
|
-
};
|
|
13
|
-
}, [id]);
|
|
14
|
-
React.useEffect(() => {
|
|
15
|
-
const {
|
|
16
|
-
onMoveShouldSetResponder,
|
|
17
|
-
onMoveShouldSetResponderCapture,
|
|
18
|
-
onScrollShouldSetResponder,
|
|
19
|
-
onScrollShouldSetResponderCapture,
|
|
20
|
-
onSelectionChangeShouldSetResponder,
|
|
21
|
-
onSelectionChangeShouldSetResponderCapture,
|
|
22
|
-
onStartShouldSetResponder,
|
|
23
|
-
onStartShouldSetResponderCapture
|
|
24
|
-
} = config;
|
|
25
|
-
const requiresResponderSystem = onMoveShouldSetResponder != null || onMoveShouldSetResponderCapture != null || onScrollShouldSetResponder != null || onScrollShouldSetResponderCapture != null || onSelectionChangeShouldSetResponder != null || onSelectionChangeShouldSetResponderCapture != null || onStartShouldSetResponder != null || onStartShouldSetResponderCapture != null;
|
|
26
|
-
const node = hostRef.current;
|
|
27
|
-
if (requiresResponderSystem) {
|
|
28
|
-
ResponderSystem.addNode(id, node, config);
|
|
29
|
-
isAttachedRef.current = true;
|
|
30
|
-
} else if (isAttachedRef.current) {
|
|
31
|
-
ResponderSystem.removeNode(id);
|
|
32
|
-
isAttachedRef.current = false;
|
|
33
|
-
}
|
|
34
|
-
}, [config, hostRef, id]);
|
|
35
|
-
if (process.env.NODE_ENV === "development") {
|
|
36
|
-
React.useDebugValue({
|
|
37
|
-
isResponder: hostRef.current === ResponderSystem.getResponderNode()
|
|
38
|
-
});
|
|
39
|
-
React.useDebugValue(config);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
export {
|
|
43
|
-
useResponderEvents
|
|
44
|
-
};
|
|
45
|
-
//# sourceMappingURL=useResponderEvents.mjs.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/useResponderEvents.ts"],
|
|
4
|
-
"mappings": "AAMA,YAAY,WAAW;AAEvB,YAAY,qBAAqB;AAEjC,cAAc;AAEd,MAAM,cAAc,CAAC;AAEd,SAAS,mBACd,SACA,SAA0C,aAC1C;AACA,QAAM,KAAK,MAAM,MAAM;AACvB,QAAM,gBAAgB,MAAM,OAAO,KAAK;AAKxC,QAAM,UAAU,MAAM;AACpB,oBAAgB,gBAAgB;AAChC,WAAO,MAAM;AACX,sBAAgB,WAAW,EAAE;AAAA,IAC/B;AAAA,EACF,GAAG,CAAC,EAAE,CAAC;AAGP,QAAM,UAAU,MAAM;AACpB,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI;AAEJ,UAAM,0BACJ,4BAA4B,QAC5B,mCAAmC,QACnC,8BAA8B,QAC9B,qCAAqC,QACrC,uCAAuC,QACvC,8CAA8C,QAC9C,6BAA6B,QAC7B,oCAAoC;AAEtC,UAAM,OAAO,QAAQ;AAErB,QAAI,yBAAyB;AAC3B,sBAAgB,QAAQ,IAAI,MAAM,MAAM;AACxC,oBAAc,UAAU;AAAA,IAC1B,WAAW,cAAc,SAAS;AAChC,sBAAgB,WAAW,EAAE;AAC7B,oBAAc,UAAU;AAAA,IAC1B;AAAA,EACF,GAAG,CAAC,QAAQ,SAAS,EAAE,CAAC;AAExB,MAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,UAAM,cAAc;AAAA,MAClB,aAAa,QAAQ,YAAY,gBAAgB,iBAAiB;AAAA,IACpE,CAAC;AACD,UAAM,cAAc,MAAM;AAAA,EAC5B;AACF;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
package/dist/esm/utils.mjs
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
const keyName = "__reactResponderId";
|
|
2
|
-
const canUseDOM = !!(typeof window !== "undefined" && window.document && window.document.createElement);
|
|
3
|
-
const getBoundingClientRect = (node) => {
|
|
4
|
-
if (!node)
|
|
5
|
-
return;
|
|
6
|
-
if (node.nodeType !== 1)
|
|
7
|
-
return;
|
|
8
|
-
if (node.getBoundingClientRect) {
|
|
9
|
-
return node.getBoundingClientRect();
|
|
10
|
-
}
|
|
11
|
-
};
|
|
12
|
-
function getEventPath(domEvent) {
|
|
13
|
-
var _a;
|
|
14
|
-
if (domEvent.type === "selectionchange") {
|
|
15
|
-
const target = (_a = window.getSelection()) == null ? void 0 : _a.anchorNode;
|
|
16
|
-
return composedPathFallback(target);
|
|
17
|
-
} else {
|
|
18
|
-
const path = domEvent.composedPath != null ? domEvent.composedPath() : composedPathFallback(domEvent.target);
|
|
19
|
-
return path;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
function composedPathFallback(target) {
|
|
23
|
-
const path = [];
|
|
24
|
-
while (target != null && target !== document.body) {
|
|
25
|
-
path.push(target);
|
|
26
|
-
target = target.parentNode;
|
|
27
|
-
}
|
|
28
|
-
return path;
|
|
29
|
-
}
|
|
30
|
-
function getResponderId(node) {
|
|
31
|
-
if (node != null) {
|
|
32
|
-
return node[keyName];
|
|
33
|
-
}
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
|
-
function setResponderId(node, id) {
|
|
37
|
-
if (node != null) {
|
|
38
|
-
node[keyName] = id;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
function getResponderPaths(domEvent) {
|
|
42
|
-
const idPath = [];
|
|
43
|
-
const nodePath = [];
|
|
44
|
-
const eventPath = getEventPath(domEvent);
|
|
45
|
-
for (let i = 0; i < eventPath.length; i++) {
|
|
46
|
-
const node = eventPath[i];
|
|
47
|
-
const id = getResponderId(node);
|
|
48
|
-
if (id != null) {
|
|
49
|
-
idPath.push(id);
|
|
50
|
-
nodePath.push(node);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
return { idPath, nodePath };
|
|
54
|
-
}
|
|
55
|
-
function getLowestCommonAncestor(pathA, pathB) {
|
|
56
|
-
let pathALength = pathA.length;
|
|
57
|
-
let pathBLength = pathB.length;
|
|
58
|
-
if (
|
|
59
|
-
// If either path is empty
|
|
60
|
-
pathALength === 0 || pathBLength === 0 || // If the last elements aren't the same there can't be a common ancestor
|
|
61
|
-
// that is connected to the responder system
|
|
62
|
-
pathA[pathALength - 1] !== pathB[pathBLength - 1]
|
|
63
|
-
) {
|
|
64
|
-
return null;
|
|
65
|
-
}
|
|
66
|
-
let itemA = pathA[0];
|
|
67
|
-
let indexA = 0;
|
|
68
|
-
let itemB = pathB[0];
|
|
69
|
-
let indexB = 0;
|
|
70
|
-
if (pathALength - pathBLength > 0) {
|
|
71
|
-
indexA = pathALength - pathBLength;
|
|
72
|
-
itemA = pathA[indexA];
|
|
73
|
-
pathALength = pathBLength;
|
|
74
|
-
}
|
|
75
|
-
if (pathBLength - pathALength > 0) {
|
|
76
|
-
indexB = pathBLength - pathALength;
|
|
77
|
-
itemB = pathB[indexB];
|
|
78
|
-
pathBLength = pathALength;
|
|
79
|
-
}
|
|
80
|
-
let depth = pathALength;
|
|
81
|
-
while (depth--) {
|
|
82
|
-
if (itemA === itemB) {
|
|
83
|
-
return itemA;
|
|
84
|
-
}
|
|
85
|
-
itemA = pathA[indexA++];
|
|
86
|
-
itemB = pathB[indexB++];
|
|
87
|
-
}
|
|
88
|
-
return null;
|
|
89
|
-
}
|
|
90
|
-
function hasTargetTouches(target, touches) {
|
|
91
|
-
if (!touches || touches.length === 0) {
|
|
92
|
-
return false;
|
|
93
|
-
}
|
|
94
|
-
for (let i = 0; i < touches.length; i++) {
|
|
95
|
-
const node = touches[i].target;
|
|
96
|
-
if (node != null) {
|
|
97
|
-
if (target.contains(node)) {
|
|
98
|
-
return true;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
return false;
|
|
103
|
-
}
|
|
104
|
-
function hasValidSelection(domEvent) {
|
|
105
|
-
if (domEvent.type === "selectionchange") {
|
|
106
|
-
return isSelectionValid();
|
|
107
|
-
}
|
|
108
|
-
return domEvent.type === "select";
|
|
109
|
-
}
|
|
110
|
-
function isPrimaryPointerDown(domEvent) {
|
|
111
|
-
const { altKey, button, buttons, ctrlKey, type } = domEvent;
|
|
112
|
-
const isTouch = type === "touchstart" || type === "touchmove";
|
|
113
|
-
const isPrimaryMouseDown = type === "mousedown" && (button === 0 || buttons === 1);
|
|
114
|
-
const isPrimaryMouseMove = type === "mousemove" && buttons === 1;
|
|
115
|
-
const noModifiers = altKey === false && ctrlKey === false;
|
|
116
|
-
if (isTouch || isPrimaryMouseDown && noModifiers || isPrimaryMouseMove && noModifiers) {
|
|
117
|
-
return true;
|
|
118
|
-
}
|
|
119
|
-
return false;
|
|
120
|
-
}
|
|
121
|
-
function isSelectionValid() {
|
|
122
|
-
const selection = window.getSelection();
|
|
123
|
-
if (!selection)
|
|
124
|
-
return false;
|
|
125
|
-
const string = selection.toString();
|
|
126
|
-
const anchorNode = selection.anchorNode;
|
|
127
|
-
const focusNode = selection.focusNode;
|
|
128
|
-
const isTextNode = anchorNode && anchorNode.nodeType === window.Node.TEXT_NODE || focusNode && focusNode.nodeType === window.Node.TEXT_NODE;
|
|
129
|
-
return string.length >= 1 && string !== "\n" && !!isTextNode;
|
|
130
|
-
}
|
|
131
|
-
export {
|
|
132
|
-
canUseDOM,
|
|
133
|
-
getBoundingClientRect,
|
|
134
|
-
getLowestCommonAncestor,
|
|
135
|
-
getResponderPaths,
|
|
136
|
-
hasTargetTouches,
|
|
137
|
-
hasValidSelection,
|
|
138
|
-
isPrimaryPointerDown,
|
|
139
|
-
isSelectionValid,
|
|
140
|
-
setResponderId
|
|
141
|
-
};
|
|
142
|
-
//# sourceMappingURL=utils.mjs.map
|
package/dist/esm/utils.mjs.map
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/utils.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|