@tamagui/react-native-use-responder-events 1.61.2 → 1.62.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/dist/cjs/ResponderSystem.js +75 -243
- package/dist/cjs/ResponderSystem.js.map +1 -1
- package/dist/cjs/ResponderSystem.native.js +222 -0
- package/dist/cjs/ResponderSystem.native.js.map +6 -0
- package/dist/cjs/ResponderTouchHistoryStore.js +48 -115
- package/dist/cjs/ResponderTouchHistoryStore.js.map +1 -1
- package/dist/cjs/ResponderTouchHistoryStore.native.js +124 -0
- package/dist/cjs/ResponderTouchHistoryStore.native.js.map +6 -0
- package/dist/cjs/createResponderEvent.js +33 -61
- package/dist/cjs/createResponderEvent.js.map +1 -1
- package/dist/cjs/createResponderEvent.native.js +122 -0
- package/dist/cjs/createResponderEvent.native.js.map +6 -0
- package/dist/cjs/index.js +4 -8
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/index.native.js +20 -0
- package/dist/cjs/index.native.js.map +6 -0
- package/dist/cjs/types.js +6 -23
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/types.native.js +82 -0
- package/dist/cjs/types.native.js.map +6 -0
- package/dist/cjs/useResponderEvents.js +18 -44
- package/dist/cjs/useResponderEvents.js.map +1 -1
- package/dist/cjs/useResponderEvents.native.js +56 -0
- package/dist/cjs/useResponderEvents.native.js.map +6 -0
- package/dist/cjs/utils.js +36 -95
- package/dist/cjs/utils.js.map +1 -1
- package/dist/cjs/utils.native.js +116 -0
- package/dist/cjs/utils.native.js.map +6 -0
- package/dist/esm/ResponderSystem.js +67 -225
- package/dist/esm/ResponderSystem.js.map +1 -1
- package/dist/esm/ResponderTouchHistoryStore.js +43 -106
- package/dist/esm/ResponderTouchHistoryStore.js.map +1 -1
- package/dist/esm/createResponderEvent.js +28 -52
- package/dist/esm/createResponderEvent.js.map +1 -1
- package/dist/esm/types.js +1 -14
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/useResponderEvents.js +9 -26
- package/dist/esm/useResponderEvents.js.map +1 -1
- package/dist/esm/utils.js +31 -86
- package/dist/esm/utils.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
10
|
+
}, __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
return to;
|
|
15
|
+
};
|
|
16
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
17
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
18
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
19
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
20
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
|
|
22
|
+
mod
|
|
23
|
+
)), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
24
|
+
var ResponderSystem_exports = {};
|
|
25
|
+
__export(ResponderSystem_exports, {
|
|
26
|
+
addNode: () => addNode,
|
|
27
|
+
attachListeners: () => attachListeners,
|
|
28
|
+
getResponderNode: () => getResponderNode,
|
|
29
|
+
removeNode: () => removeNode,
|
|
30
|
+
terminateResponder: () => terminateResponder
|
|
31
|
+
});
|
|
32
|
+
module.exports = __toCommonJS(ResponderSystem_exports);
|
|
33
|
+
var import_createResponderEvent = __toESM(require("./createResponderEvent")), import_ResponderTouchHistoryStore = require("./ResponderTouchHistoryStore"), import_types = require("./types"), import_utils = require("./utils"), import_utils2 = require("./utils");
|
|
34
|
+
const emptyObject = {}, startRegistration = [
|
|
35
|
+
"onStartShouldSetResponderCapture",
|
|
36
|
+
"onStartShouldSetResponder",
|
|
37
|
+
{ bubbles: !0 }
|
|
38
|
+
], moveRegistration = [
|
|
39
|
+
"onMoveShouldSetResponderCapture",
|
|
40
|
+
"onMoveShouldSetResponder",
|
|
41
|
+
{ bubbles: !0 }
|
|
42
|
+
], scrollRegistration = [
|
|
43
|
+
"onScrollShouldSetResponderCapture",
|
|
44
|
+
"onScrollShouldSetResponder",
|
|
45
|
+
{ bubbles: !1 }
|
|
46
|
+
], shouldSetResponderEvents = {
|
|
47
|
+
touchstart: startRegistration,
|
|
48
|
+
mousedown: startRegistration,
|
|
49
|
+
touchmove: moveRegistration,
|
|
50
|
+
mousemove: moveRegistration,
|
|
51
|
+
scroll: scrollRegistration
|
|
52
|
+
}, emptyResponder = { id: null, idPath: null, node: null }, responderListenersMap = /* @__PURE__ */ new Map();
|
|
53
|
+
let isEmulatingMouseEvents = !1, trackedTouchCount = 0, currentResponder = {
|
|
54
|
+
id: null,
|
|
55
|
+
node: null,
|
|
56
|
+
idPath: null
|
|
57
|
+
};
|
|
58
|
+
const responderTouchHistoryStore = new import_ResponderTouchHistoryStore.ResponderTouchHistoryStore();
|
|
59
|
+
function changeCurrentResponder(responder) {
|
|
60
|
+
currentResponder = responder;
|
|
61
|
+
}
|
|
62
|
+
function getResponderConfig(id) {
|
|
63
|
+
const config = responderListenersMap.get(id);
|
|
64
|
+
return config ?? emptyObject;
|
|
65
|
+
}
|
|
66
|
+
function eventListener(domEvent) {
|
|
67
|
+
const eventType = domEvent.type, eventTarget = domEvent.target;
|
|
68
|
+
if (eventType === "touchstart" && (isEmulatingMouseEvents = !0), (eventType === "touchmove" || trackedTouchCount > 1) && (isEmulatingMouseEvents = !1), // Ignore browser emulated mouse events
|
|
69
|
+
eventType === "mousedown" && isEmulatingMouseEvents || eventType === "mousemove" && isEmulatingMouseEvents || // Ignore mousemove if a mousedown didn't occur first
|
|
70
|
+
eventType === "mousemove" && trackedTouchCount < 1)
|
|
71
|
+
return;
|
|
72
|
+
if (isEmulatingMouseEvents && eventType === "mouseup") {
|
|
73
|
+
trackedTouchCount === 0 && (isEmulatingMouseEvents = !1);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const isStartEvent = (0, import_types.isStartish)(eventType) && (0, import_utils2.isPrimaryPointerDown)(domEvent), isMoveEvent = (0, import_types.isMoveish)(eventType), isEndEvent = (0, import_types.isEndish)(eventType), isScrollEvent = (0, import_types.isScroll)(eventType), isSelectionChangeEvent = (0, import_types.isSelectionChange)(eventType), responderEvent = (0, import_createResponderEvent.default)(domEvent, responderTouchHistoryStore);
|
|
77
|
+
(isStartEvent || isMoveEvent || isEndEvent) && (domEvent.touches ? trackedTouchCount = domEvent.touches.length : isStartEvent ? trackedTouchCount = 1 : isEndEvent && (trackedTouchCount = 0), responderTouchHistoryStore.recordTouchTrack(
|
|
78
|
+
eventType,
|
|
79
|
+
responderEvent.nativeEvent
|
|
80
|
+
));
|
|
81
|
+
let eventPaths = (0, import_utils2.getResponderPaths)(domEvent), wasNegotiated = !1, wantsResponder;
|
|
82
|
+
if (isStartEvent || isMoveEvent || isScrollEvent && trackedTouchCount > 0) {
|
|
83
|
+
const currentResponderIdPath = currentResponder.idPath, eventIdPath = eventPaths.idPath;
|
|
84
|
+
if (currentResponderIdPath != null && eventIdPath != null) {
|
|
85
|
+
const lowestCommonAncestor = (0, import_utils2.getLowestCommonAncestor)(
|
|
86
|
+
currentResponderIdPath,
|
|
87
|
+
eventIdPath
|
|
88
|
+
);
|
|
89
|
+
if (lowestCommonAncestor != null) {
|
|
90
|
+
const index = eventIdPath.indexOf(lowestCommonAncestor) + (lowestCommonAncestor === currentResponder.id ? 1 : 0);
|
|
91
|
+
eventPaths = {
|
|
92
|
+
idPath: eventIdPath.slice(index),
|
|
93
|
+
nodePath: eventPaths.nodePath.slice(index)
|
|
94
|
+
};
|
|
95
|
+
} else
|
|
96
|
+
eventPaths = null;
|
|
97
|
+
}
|
|
98
|
+
eventPaths != null && (wantsResponder = findWantsResponder(eventPaths, domEvent, responderEvent), wantsResponder != null && (attemptTransfer(responderEvent, wantsResponder), wasNegotiated = !0));
|
|
99
|
+
}
|
|
100
|
+
if (currentResponder.id != null && currentResponder.node != null) {
|
|
101
|
+
const { id, node } = currentResponder, {
|
|
102
|
+
onResponderStart,
|
|
103
|
+
onResponderMove,
|
|
104
|
+
onResponderEnd,
|
|
105
|
+
onResponderRelease,
|
|
106
|
+
onResponderTerminate,
|
|
107
|
+
onResponderTerminationRequest
|
|
108
|
+
} = getResponderConfig(id);
|
|
109
|
+
if (responderEvent.bubbles = !1, responderEvent.cancelable = !1, responderEvent.currentTarget = node, isStartEvent)
|
|
110
|
+
onResponderStart != null && (responderEvent.dispatchConfig.registrationName = "onResponderStart", onResponderStart(responderEvent));
|
|
111
|
+
else if (isMoveEvent)
|
|
112
|
+
onResponderMove != null && (responderEvent.dispatchConfig.registrationName = "onResponderMove", onResponderMove(responderEvent));
|
|
113
|
+
else {
|
|
114
|
+
const isTerminateEvent = (0, import_types.isCancelish)(eventType) || // native context menu
|
|
115
|
+
eventType === "contextmenu" || // window blur
|
|
116
|
+
eventType === "blur" && eventTarget === window || // responder (or ancestors) blur
|
|
117
|
+
eventType === "blur" && eventTarget.contains(node) && domEvent.relatedTarget !== node || // native scroll without using a pointer
|
|
118
|
+
isScrollEvent && trackedTouchCount === 0 || // native scroll on node that is parent of the responder (allow siblings to scroll)
|
|
119
|
+
isScrollEvent && eventTarget.contains(node) && eventTarget !== node || // native select/selectionchange on node
|
|
120
|
+
isSelectionChangeEvent && (0, import_utils2.hasValidSelection)(domEvent), isReleaseEvent = isEndEvent && !isTerminateEvent && !(0, import_utils2.hasTargetTouches)(node, domEvent.touches);
|
|
121
|
+
if (isEndEvent && onResponderEnd != null && (responderEvent.dispatchConfig.registrationName = "onResponderEnd", onResponderEnd(responderEvent)), isReleaseEvent && (onResponderRelease != null && (responderEvent.dispatchConfig.registrationName = "onResponderRelease", onResponderRelease(responderEvent)), changeCurrentResponder(emptyResponder)), isTerminateEvent) {
|
|
122
|
+
let shouldTerminate = !0;
|
|
123
|
+
(eventType === "contextmenu" || eventType === "scroll" || eventType === "selectionchange") && (wasNegotiated ? shouldTerminate = !1 : onResponderTerminationRequest != null && (responderEvent.dispatchConfig.registrationName = "onResponderTerminationRequest", onResponderTerminationRequest(responderEvent) === !1 && (shouldTerminate = !1))), shouldTerminate && (onResponderTerminate != null && (responderEvent.dispatchConfig.registrationName = "onResponderTerminate", onResponderTerminate(responderEvent)), changeCurrentResponder(emptyResponder), isEmulatingMouseEvents = !1, trackedTouchCount = 0);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
function findWantsResponder(eventPaths, domEvent, responderEvent) {
|
|
129
|
+
const shouldSetCallbacks = shouldSetResponderEvents[domEvent.type];
|
|
130
|
+
if (shouldSetCallbacks != null) {
|
|
131
|
+
const { idPath, nodePath } = eventPaths, shouldSetCallbackCaptureName = shouldSetCallbacks[0], shouldSetCallbackBubbleName = shouldSetCallbacks[1], { bubbles } = shouldSetCallbacks[2], check = function(id, node, callbackName) {
|
|
132
|
+
const shouldSetCallback = getResponderConfig(id)[callbackName];
|
|
133
|
+
if (shouldSetCallback != null && (responderEvent.currentTarget = node, shouldSetCallback(responderEvent) === !0)) {
|
|
134
|
+
const prunedIdPath = idPath.slice(idPath.indexOf(id));
|
|
135
|
+
return { id, node, idPath: prunedIdPath };
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
for (let i = idPath.length - 1; i >= 0; i--) {
|
|
139
|
+
const id = idPath[i], node = nodePath[i], result = check(id, node, shouldSetCallbackCaptureName);
|
|
140
|
+
if (result != null)
|
|
141
|
+
return result;
|
|
142
|
+
if (responderEvent.isPropagationStopped() === !0)
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
if (bubbles)
|
|
146
|
+
for (let i = 0; i < idPath.length; i++) {
|
|
147
|
+
const id = idPath[i], node = nodePath[i], result = check(id, node, shouldSetCallbackBubbleName);
|
|
148
|
+
if (result != null)
|
|
149
|
+
return result;
|
|
150
|
+
if (responderEvent.isPropagationStopped() === !0)
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
const id = idPath[0], node = nodePath[0];
|
|
155
|
+
if (domEvent.target === node)
|
|
156
|
+
return check(id, node, shouldSetCallbackBubbleName);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
function attemptTransfer(responderEvent, wantsResponder) {
|
|
161
|
+
const { id: currentId, node: currentNode } = currentResponder, { id, node } = wantsResponder, { onResponderGrant, onResponderReject } = getResponderConfig(id);
|
|
162
|
+
if (responderEvent.bubbles = !1, responderEvent.cancelable = !1, responderEvent.currentTarget = node, currentId == null)
|
|
163
|
+
onResponderGrant != null && (responderEvent.currentTarget = node, responderEvent.dispatchConfig.registrationName = "onResponderGrant", onResponderGrant(responderEvent)), changeCurrentResponder(wantsResponder);
|
|
164
|
+
else {
|
|
165
|
+
const { onResponderTerminate, onResponderTerminationRequest } = getResponderConfig(currentId);
|
|
166
|
+
let allowTransfer = !0;
|
|
167
|
+
onResponderTerminationRequest != null && (responderEvent.currentTarget = currentNode, responderEvent.dispatchConfig.registrationName = "onResponderTerminationRequest", onResponderTerminationRequest(responderEvent) === !1 && (allowTransfer = !1)), allowTransfer ? (onResponderTerminate != null && (responderEvent.currentTarget = currentNode, responderEvent.dispatchConfig.registrationName = "onResponderTerminate", onResponderTerminate(responderEvent)), onResponderGrant != null && (responderEvent.currentTarget = node, responderEvent.dispatchConfig.registrationName = "onResponderGrant", onResponderGrant(responderEvent)), changeCurrentResponder(wantsResponder)) : onResponderReject != null && (responderEvent.currentTarget = node, responderEvent.dispatchConfig.registrationName = "onResponderReject", onResponderReject(responderEvent));
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
const documentEventsCapturePhase = ["blur", "scroll"], documentEventsBubblePhase = [
|
|
171
|
+
// mouse
|
|
172
|
+
"mousedown",
|
|
173
|
+
"mousemove",
|
|
174
|
+
"mouseup",
|
|
175
|
+
"dragstart",
|
|
176
|
+
// touch
|
|
177
|
+
"touchstart",
|
|
178
|
+
"touchmove",
|
|
179
|
+
"touchend",
|
|
180
|
+
"touchcancel",
|
|
181
|
+
// other
|
|
182
|
+
"contextmenu",
|
|
183
|
+
"select",
|
|
184
|
+
"selectionchange"
|
|
185
|
+
], isTamaguiResponderActive = Symbol();
|
|
186
|
+
function attachListeners() {
|
|
187
|
+
import_utils.canUseDOM && !window[isTamaguiResponderActive] && (window.addEventListener("blur", eventListener), documentEventsBubblePhase.forEach((eventType) => {
|
|
188
|
+
document.addEventListener(eventType, eventListener);
|
|
189
|
+
}), documentEventsCapturePhase.forEach((eventType) => {
|
|
190
|
+
document.addEventListener(eventType, eventListener, !0);
|
|
191
|
+
}), window[isTamaguiResponderActive] = !0);
|
|
192
|
+
}
|
|
193
|
+
function addNode(id, node, config) {
|
|
194
|
+
(0, import_utils2.setResponderId)(node, id), responderListenersMap.set(id, config);
|
|
195
|
+
}
|
|
196
|
+
function removeNode(id) {
|
|
197
|
+
currentResponder.id === id && terminateResponder(), responderListenersMap.has(id) && responderListenersMap.delete(id);
|
|
198
|
+
}
|
|
199
|
+
function terminateResponder() {
|
|
200
|
+
const { id, node } = currentResponder;
|
|
201
|
+
if (id != null && node != null) {
|
|
202
|
+
const { onResponderTerminate } = getResponderConfig(id);
|
|
203
|
+
if (onResponderTerminate != null) {
|
|
204
|
+
const event = (0, import_createResponderEvent.default)({}, responderTouchHistoryStore);
|
|
205
|
+
event.currentTarget = node, onResponderTerminate(event);
|
|
206
|
+
}
|
|
207
|
+
changeCurrentResponder(emptyResponder);
|
|
208
|
+
}
|
|
209
|
+
isEmulatingMouseEvents = !1, trackedTouchCount = 0;
|
|
210
|
+
}
|
|
211
|
+
function getResponderNode() {
|
|
212
|
+
return currentResponder.node;
|
|
213
|
+
}
|
|
214
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
215
|
+
0 && (module.exports = {
|
|
216
|
+
addNode,
|
|
217
|
+
attachListeners,
|
|
218
|
+
getResponderNode,
|
|
219
|
+
removeNode,
|
|
220
|
+
terminateResponder
|
|
221
|
+
});
|
|
222
|
+
//# sourceMappingURL=ResponderSystem.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/ResponderSystem.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["import_utils", "createResponderEvent"]
|
|
6
|
+
}
|
|
@@ -1,21 +1,17 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
var __defProp = Object.defineProperty;
|
|
3
2
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
5
|
var __export = (target, all) => {
|
|
7
6
|
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable:
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
8
|
+
}, __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
12
10
|
for (let key of __getOwnPropNames(from))
|
|
13
|
-
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
11
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
12
|
return to;
|
|
17
13
|
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value:
|
|
14
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
19
15
|
var ResponderTouchHistoryStore_exports = {};
|
|
20
16
|
__export(ResponderTouchHistoryStore_exports, {
|
|
21
17
|
ResponderTouchHistoryStore: () => ResponderTouchHistoryStore
|
|
@@ -24,11 +20,11 @@ module.exports = __toCommonJS(ResponderTouchHistoryStore_exports);
|
|
|
24
20
|
var import_types = require("./types");
|
|
25
21
|
const MAX_TOUCH_BANK = 20;
|
|
26
22
|
function timestampForTouch(touch) {
|
|
27
|
-
return touch
|
|
23
|
+
return touch.timeStamp || touch.timestamp;
|
|
28
24
|
}
|
|
29
25
|
function createTouchRecord(touch) {
|
|
30
26
|
return {
|
|
31
|
-
touchActive:
|
|
27
|
+
touchActive: !0,
|
|
32
28
|
startPageX: touch.pageX,
|
|
33
29
|
startPageY: touch.pageY,
|
|
34
30
|
startTimeStamp: timestampForTouch(touch),
|
|
@@ -41,81 +37,38 @@ function createTouchRecord(touch) {
|
|
|
41
37
|
};
|
|
42
38
|
}
|
|
43
39
|
function resetTouchRecord(touchRecord, touch) {
|
|
44
|
-
touchRecord.touchActive =
|
|
45
|
-
touchRecord.startPageX = touch.pageX;
|
|
46
|
-
touchRecord.startPageY = touch.pageY;
|
|
47
|
-
touchRecord.startTimeStamp = timestampForTouch(touch);
|
|
48
|
-
touchRecord.currentPageX = touch.pageX;
|
|
49
|
-
touchRecord.currentPageY = touch.pageY;
|
|
50
|
-
touchRecord.currentTimeStamp = timestampForTouch(touch);
|
|
51
|
-
touchRecord.previousPageX = touch.pageX;
|
|
52
|
-
touchRecord.previousPageY = touch.pageY;
|
|
53
|
-
touchRecord.previousTimeStamp = timestampForTouch(touch);
|
|
40
|
+
touchRecord.touchActive = !0, touchRecord.startPageX = touch.pageX, touchRecord.startPageY = touch.pageY, touchRecord.startTimeStamp = timestampForTouch(touch), touchRecord.currentPageX = touch.pageX, touchRecord.currentPageY = touch.pageY, touchRecord.currentTimeStamp = timestampForTouch(touch), touchRecord.previousPageX = touch.pageX, touchRecord.previousPageY = touch.pageY, touchRecord.previousTimeStamp = timestampForTouch(touch);
|
|
54
41
|
}
|
|
55
42
|
function getTouchIdentifier({ identifier }) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
console.error(
|
|
62
|
-
"Touch identifier %s is greater than maximum supported %s which causes performance issues backfilling array locations for all of the indices.",
|
|
63
|
-
identifier,
|
|
64
|
-
MAX_TOUCH_BANK
|
|
65
|
-
);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return identifier;
|
|
43
|
+
return identifier == null && console.error("Touch object is missing identifier."), process.env.NODE_ENV === "development" && identifier > MAX_TOUCH_BANK && console.error(
|
|
44
|
+
"Touch identifier %s is greater than maximum supported %s which causes performance issues backfilling array locations for all of the indices.",
|
|
45
|
+
identifier,
|
|
46
|
+
MAX_TOUCH_BANK
|
|
47
|
+
), identifier;
|
|
69
48
|
}
|
|
70
49
|
function recordTouchStart(touch, touchHistory) {
|
|
71
|
-
const identifier = getTouchIdentifier(touch);
|
|
72
|
-
|
|
73
|
-
if (touchRecord) {
|
|
74
|
-
resetTouchRecord(touchRecord, touch);
|
|
75
|
-
} else {
|
|
76
|
-
touchHistory.touchBank[identifier] = createTouchRecord(touch);
|
|
77
|
-
}
|
|
78
|
-
touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
|
|
50
|
+
const identifier = getTouchIdentifier(touch), touchRecord = touchHistory.touchBank[identifier];
|
|
51
|
+
touchRecord ? resetTouchRecord(touchRecord, touch) : touchHistory.touchBank[identifier] = createTouchRecord(touch), touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
|
|
79
52
|
}
|
|
80
53
|
function recordTouchMove(touch, touchHistory) {
|
|
81
54
|
const touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
touchRecord.previousPageX = touchRecord.currentPageX;
|
|
85
|
-
touchRecord.previousPageY = touchRecord.currentPageY;
|
|
86
|
-
touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;
|
|
87
|
-
touchRecord.currentPageX = touch.pageX;
|
|
88
|
-
touchRecord.currentPageY = touch.pageY;
|
|
89
|
-
touchRecord.currentTimeStamp = timestampForTouch(touch);
|
|
90
|
-
touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
|
|
91
|
-
} else {
|
|
92
|
-
console.warn(
|
|
93
|
-
"Cannot record touch move without a touch start.\n",
|
|
94
|
-
`Touch Move: ${printTouch(touch)}
|
|
55
|
+
touchRecord ? (touchRecord.touchActive = !0, touchRecord.previousPageX = touchRecord.currentPageX, touchRecord.previousPageY = touchRecord.currentPageY, touchRecord.previousTimeStamp = touchRecord.currentTimeStamp, touchRecord.currentPageX = touch.pageX, touchRecord.currentPageY = touch.pageY, touchRecord.currentTimeStamp = timestampForTouch(touch), touchHistory.mostRecentTimeStamp = timestampForTouch(touch)) : console.warn(
|
|
56
|
+
`Cannot record touch move without a touch start.
|
|
95
57
|
`,
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
58
|
+
`Touch Move: ${printTouch(touch)}
|
|
59
|
+
`,
|
|
60
|
+
`Touch Bank: ${printTouchBank(touchHistory)}`
|
|
61
|
+
);
|
|
99
62
|
}
|
|
100
63
|
function recordTouchEnd(touch, touchHistory) {
|
|
101
64
|
const touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
touchRecord.previousPageX = touchRecord.currentPageX;
|
|
105
|
-
touchRecord.previousPageY = touchRecord.currentPageY;
|
|
106
|
-
touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;
|
|
107
|
-
touchRecord.currentPageX = touch.pageX;
|
|
108
|
-
touchRecord.currentPageY = touch.pageY;
|
|
109
|
-
touchRecord.currentTimeStamp = timestampForTouch(touch);
|
|
110
|
-
touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
|
|
111
|
-
} else {
|
|
112
|
-
console.warn(
|
|
113
|
-
"Cannot record touch end without a touch start.\n",
|
|
114
|
-
`Touch End: ${printTouch(touch)}
|
|
65
|
+
touchRecord ? (touchRecord.touchActive = !1, touchRecord.previousPageX = touchRecord.currentPageX, touchRecord.previousPageY = touchRecord.currentPageY, touchRecord.previousTimeStamp = touchRecord.currentTimeStamp, touchRecord.currentPageX = touch.pageX, touchRecord.currentPageY = touch.pageY, touchRecord.currentTimeStamp = timestampForTouch(touch), touchHistory.mostRecentTimeStamp = timestampForTouch(touch)) : console.warn(
|
|
66
|
+
`Cannot record touch end without a touch start.
|
|
115
67
|
`,
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
68
|
+
`Touch End: ${printTouch(touch)}
|
|
69
|
+
`,
|
|
70
|
+
`Touch Bank: ${printTouchBank(touchHistory)}`
|
|
71
|
+
);
|
|
119
72
|
}
|
|
120
73
|
function printTouch(touch) {
|
|
121
74
|
return JSON.stringify({
|
|
@@ -128,53 +81,33 @@ function printTouch(touch) {
|
|
|
128
81
|
function printTouchBank(touchHistory) {
|
|
129
82
|
const { touchBank } = touchHistory;
|
|
130
83
|
let printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));
|
|
131
|
-
|
|
132
|
-
printed += ` (original size: ${touchBank.length})`;
|
|
133
|
-
}
|
|
134
|
-
return printed;
|
|
84
|
+
return touchBank.length > MAX_TOUCH_BANK && (printed += ` (original size: ${touchBank.length})`), printed;
|
|
135
85
|
}
|
|
136
86
|
class ResponderTouchHistoryStore {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
};
|
|
148
|
-
}
|
|
87
|
+
_touchHistory = {
|
|
88
|
+
touchBank: [],
|
|
89
|
+
//Array<TouchRecord>
|
|
90
|
+
numberActiveTouches: 0,
|
|
91
|
+
// If there is only one active touch, we remember its location. This prevents
|
|
92
|
+
// us having to loop through all of the touches all the time in the most
|
|
93
|
+
// common case.
|
|
94
|
+
indexOfSingleActiveTouch: -1,
|
|
95
|
+
mostRecentTimeStamp: 0
|
|
96
|
+
};
|
|
149
97
|
recordTouchTrack(topLevelType, nativeEvent) {
|
|
150
98
|
const touchHistory = this._touchHistory;
|
|
151
|
-
if ((0, import_types.isMoveish)(topLevelType))
|
|
99
|
+
if ((0, import_types.isMoveish)(topLevelType))
|
|
152
100
|
nativeEvent.changedTouches.forEach((touch) => recordTouchMove(touch, touchHistory));
|
|
153
|
-
|
|
154
|
-
nativeEvent.changedTouches.forEach((touch) => recordTouchStart(touch, touchHistory));
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
touchHistory.numberActiveTouches = nativeEvent.touches.length;
|
|
162
|
-
if (touchHistory.numberActiveTouches === 1) {
|
|
163
|
-
const { touchBank } = touchHistory;
|
|
164
|
-
for (let i = 0; i < touchBank.length; i++) {
|
|
165
|
-
const touchTrackToCheck = touchBank[i];
|
|
166
|
-
if (touchTrackToCheck == null ? void 0 : touchTrackToCheck.touchActive) {
|
|
167
|
-
touchHistory.indexOfSingleActiveTouch = i;
|
|
168
|
-
break;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
if (process.env.NODE_ENV === "development") {
|
|
172
|
-
const activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch];
|
|
173
|
-
if (!(activeRecord == null ? void 0 : activeRecord.touchActive)) {
|
|
174
|
-
console.error("Cannot find single active touch.");
|
|
175
|
-
}
|
|
101
|
+
else if ((0, import_types.isStartish)(topLevelType))
|
|
102
|
+
nativeEvent.changedTouches.forEach((touch) => recordTouchStart(touch, touchHistory)), touchHistory.numberActiveTouches = nativeEvent.touches.length, touchHistory.numberActiveTouches === 1 && (touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier);
|
|
103
|
+
else if ((0, import_types.isEndish)(topLevelType) && (nativeEvent.changedTouches.forEach((touch) => recordTouchEnd(touch, touchHistory)), touchHistory.numberActiveTouches = nativeEvent.touches.length, touchHistory.numberActiveTouches === 1)) {
|
|
104
|
+
const { touchBank } = touchHistory;
|
|
105
|
+
for (let i = 0; i < touchBank.length; i++)
|
|
106
|
+
if (touchBank[i]?.touchActive) {
|
|
107
|
+
touchHistory.indexOfSingleActiveTouch = i;
|
|
108
|
+
break;
|
|
176
109
|
}
|
|
177
|
-
|
|
110
|
+
process.env.NODE_ENV === "development" && (touchBank[touchHistory.indexOfSingleActiveTouch]?.touchActive || console.error("Cannot find single active touch."));
|
|
178
111
|
}
|
|
179
112
|
}
|
|
180
113
|
get touchHistory() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/ResponderTouchHistoryStore.ts"],
|
|
4
|
-
"mappings": "
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
9
|
+
}, __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from == "object" || typeof from == "function")
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
|
+
return to;
|
|
14
|
+
};
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
16
|
+
var ResponderTouchHistoryStore_exports = {};
|
|
17
|
+
__export(ResponderTouchHistoryStore_exports, {
|
|
18
|
+
ResponderTouchHistoryStore: () => ResponderTouchHistoryStore
|
|
19
|
+
});
|
|
20
|
+
module.exports = __toCommonJS(ResponderTouchHistoryStore_exports);
|
|
21
|
+
var import_types = require("./types");
|
|
22
|
+
const MAX_TOUCH_BANK = 20;
|
|
23
|
+
function timestampForTouch(touch) {
|
|
24
|
+
return touch.timeStamp || touch.timestamp;
|
|
25
|
+
}
|
|
26
|
+
function createTouchRecord(touch) {
|
|
27
|
+
return {
|
|
28
|
+
touchActive: !0,
|
|
29
|
+
startPageX: touch.pageX,
|
|
30
|
+
startPageY: touch.pageY,
|
|
31
|
+
startTimeStamp: timestampForTouch(touch),
|
|
32
|
+
currentPageX: touch.pageX,
|
|
33
|
+
currentPageY: touch.pageY,
|
|
34
|
+
currentTimeStamp: timestampForTouch(touch),
|
|
35
|
+
previousPageX: touch.pageX,
|
|
36
|
+
previousPageY: touch.pageY,
|
|
37
|
+
previousTimeStamp: timestampForTouch(touch)
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function resetTouchRecord(touchRecord, touch) {
|
|
41
|
+
touchRecord.touchActive = !0, touchRecord.startPageX = touch.pageX, touchRecord.startPageY = touch.pageY, touchRecord.startTimeStamp = timestampForTouch(touch), touchRecord.currentPageX = touch.pageX, touchRecord.currentPageY = touch.pageY, touchRecord.currentTimeStamp = timestampForTouch(touch), touchRecord.previousPageX = touch.pageX, touchRecord.previousPageY = touch.pageY, touchRecord.previousTimeStamp = timestampForTouch(touch);
|
|
42
|
+
}
|
|
43
|
+
function getTouchIdentifier({ identifier }) {
|
|
44
|
+
return identifier == null && console.error("Touch object is missing identifier."), process.env.NODE_ENV === "development" && identifier > MAX_TOUCH_BANK && console.error(
|
|
45
|
+
"Touch identifier %s is greater than maximum supported %s which causes performance issues backfilling array locations for all of the indices.",
|
|
46
|
+
identifier,
|
|
47
|
+
MAX_TOUCH_BANK
|
|
48
|
+
), identifier;
|
|
49
|
+
}
|
|
50
|
+
function recordTouchStart(touch, touchHistory) {
|
|
51
|
+
const identifier = getTouchIdentifier(touch), touchRecord = touchHistory.touchBank[identifier];
|
|
52
|
+
touchRecord ? resetTouchRecord(touchRecord, touch) : touchHistory.touchBank[identifier] = createTouchRecord(touch), touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
|
|
53
|
+
}
|
|
54
|
+
function recordTouchMove(touch, touchHistory) {
|
|
55
|
+
const touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];
|
|
56
|
+
touchRecord ? (touchRecord.touchActive = !0, touchRecord.previousPageX = touchRecord.currentPageX, touchRecord.previousPageY = touchRecord.currentPageY, touchRecord.previousTimeStamp = touchRecord.currentTimeStamp, touchRecord.currentPageX = touch.pageX, touchRecord.currentPageY = touch.pageY, touchRecord.currentTimeStamp = timestampForTouch(touch), touchHistory.mostRecentTimeStamp = timestampForTouch(touch)) : console.warn(
|
|
57
|
+
`Cannot record touch move without a touch start.
|
|
58
|
+
`,
|
|
59
|
+
`Touch Move: ${printTouch(touch)}
|
|
60
|
+
`,
|
|
61
|
+
`Touch Bank: ${printTouchBank(touchHistory)}`
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
function recordTouchEnd(touch, touchHistory) {
|
|
65
|
+
const touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];
|
|
66
|
+
touchRecord ? (touchRecord.touchActive = !1, touchRecord.previousPageX = touchRecord.currentPageX, touchRecord.previousPageY = touchRecord.currentPageY, touchRecord.previousTimeStamp = touchRecord.currentTimeStamp, touchRecord.currentPageX = touch.pageX, touchRecord.currentPageY = touch.pageY, touchRecord.currentTimeStamp = timestampForTouch(touch), touchHistory.mostRecentTimeStamp = timestampForTouch(touch)) : console.warn(
|
|
67
|
+
`Cannot record touch end without a touch start.
|
|
68
|
+
`,
|
|
69
|
+
`Touch End: ${printTouch(touch)}
|
|
70
|
+
`,
|
|
71
|
+
`Touch Bank: ${printTouchBank(touchHistory)}`
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
function printTouch(touch) {
|
|
75
|
+
return JSON.stringify({
|
|
76
|
+
identifier: touch.identifier,
|
|
77
|
+
pageX: touch.pageX,
|
|
78
|
+
pageY: touch.pageY,
|
|
79
|
+
timestamp: timestampForTouch(touch)
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
function printTouchBank(touchHistory) {
|
|
83
|
+
const { touchBank } = touchHistory;
|
|
84
|
+
let printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));
|
|
85
|
+
return touchBank.length > MAX_TOUCH_BANK && (printed += ` (original size: ${touchBank.length})`), printed;
|
|
86
|
+
}
|
|
87
|
+
class ResponderTouchHistoryStore {
|
|
88
|
+
constructor() {
|
|
89
|
+
this._touchHistory = {
|
|
90
|
+
touchBank: [],
|
|
91
|
+
//Array<TouchRecord>
|
|
92
|
+
numberActiveTouches: 0,
|
|
93
|
+
// If there is only one active touch, we remember its location. This prevents
|
|
94
|
+
// us having to loop through all of the touches all the time in the most
|
|
95
|
+
// common case.
|
|
96
|
+
indexOfSingleActiveTouch: -1,
|
|
97
|
+
mostRecentTimeStamp: 0
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
recordTouchTrack(topLevelType, nativeEvent) {
|
|
101
|
+
const touchHistory = this._touchHistory;
|
|
102
|
+
if ((0, import_types.isMoveish)(topLevelType))
|
|
103
|
+
nativeEvent.changedTouches.forEach((touch) => recordTouchMove(touch, touchHistory));
|
|
104
|
+
else if ((0, import_types.isStartish)(topLevelType))
|
|
105
|
+
nativeEvent.changedTouches.forEach((touch) => recordTouchStart(touch, touchHistory)), touchHistory.numberActiveTouches = nativeEvent.touches.length, touchHistory.numberActiveTouches === 1 && (touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier);
|
|
106
|
+
else if ((0, import_types.isEndish)(topLevelType) && (nativeEvent.changedTouches.forEach((touch) => recordTouchEnd(touch, touchHistory)), touchHistory.numberActiveTouches = nativeEvent.touches.length, touchHistory.numberActiveTouches === 1)) {
|
|
107
|
+
const { touchBank } = touchHistory;
|
|
108
|
+
for (let i = 0; i < touchBank.length; i++)
|
|
109
|
+
if (touchBank[i]?.touchActive) {
|
|
110
|
+
touchHistory.indexOfSingleActiveTouch = i;
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
process.env.NODE_ENV === "development" && (touchBank[touchHistory.indexOfSingleActiveTouch]?.touchActive || console.error("Cannot find single active touch."));
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
get touchHistory() {
|
|
117
|
+
return this._touchHistory;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
121
|
+
0 && (module.exports = {
|
|
122
|
+
ResponderTouchHistoryStore
|
|
123
|
+
});
|
|
124
|
+
//# sourceMappingURL=ResponderTouchHistoryStore.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/ResponderTouchHistoryStore.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|