@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.
Files changed (41) hide show
  1. package/dist/cjs/ResponderSystem.js +75 -243
  2. package/dist/cjs/ResponderSystem.js.map +1 -1
  3. package/dist/cjs/ResponderSystem.native.js +222 -0
  4. package/dist/cjs/ResponderSystem.native.js.map +6 -0
  5. package/dist/cjs/ResponderTouchHistoryStore.js +48 -115
  6. package/dist/cjs/ResponderTouchHistoryStore.js.map +1 -1
  7. package/dist/cjs/ResponderTouchHistoryStore.native.js +124 -0
  8. package/dist/cjs/ResponderTouchHistoryStore.native.js.map +6 -0
  9. package/dist/cjs/createResponderEvent.js +33 -61
  10. package/dist/cjs/createResponderEvent.js.map +1 -1
  11. package/dist/cjs/createResponderEvent.native.js +122 -0
  12. package/dist/cjs/createResponderEvent.native.js.map +6 -0
  13. package/dist/cjs/index.js +4 -8
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/index.native.js +20 -0
  16. package/dist/cjs/index.native.js.map +6 -0
  17. package/dist/cjs/types.js +6 -23
  18. package/dist/cjs/types.js.map +1 -1
  19. package/dist/cjs/types.native.js +82 -0
  20. package/dist/cjs/types.native.js.map +6 -0
  21. package/dist/cjs/useResponderEvents.js +18 -44
  22. package/dist/cjs/useResponderEvents.js.map +1 -1
  23. package/dist/cjs/useResponderEvents.native.js +56 -0
  24. package/dist/cjs/useResponderEvents.native.js.map +6 -0
  25. package/dist/cjs/utils.js +36 -95
  26. package/dist/cjs/utils.js.map +1 -1
  27. package/dist/cjs/utils.native.js +116 -0
  28. package/dist/cjs/utils.native.js.map +6 -0
  29. package/dist/esm/ResponderSystem.js +67 -225
  30. package/dist/esm/ResponderSystem.js.map +1 -1
  31. package/dist/esm/ResponderTouchHistoryStore.js +43 -106
  32. package/dist/esm/ResponderTouchHistoryStore.js.map +1 -1
  33. package/dist/esm/createResponderEvent.js +28 -52
  34. package/dist/esm/createResponderEvent.js.map +1 -1
  35. package/dist/esm/types.js +1 -14
  36. package/dist/esm/types.js.map +1 -1
  37. package/dist/esm/useResponderEvents.js +9 -26
  38. package/dist/esm/useResponderEvents.js.map +1 -1
  39. package/dist/esm/utils.js +31 -86
  40. package/dist/esm/utils.js.map +1 -1
  41. 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: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
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
- if (!__hasOwnProp.call(to, key) && key !== except)
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: true }), mod);
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["timeStamp"] || touch.timestamp;
23
+ return touch.timeStamp || touch.timestamp;
28
24
  }
29
25
  function createTouchRecord(touch) {
30
26
  return {
31
- touchActive: true,
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 = true;
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
- if (identifier == null) {
57
- console.error("Touch object is missing identifier.");
58
- }
59
- if (process.env.NODE_ENV === "development") {
60
- if (identifier > MAX_TOUCH_BANK) {
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
- const touchRecord = touchHistory.touchBank[identifier];
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
- if (touchRecord) {
83
- touchRecord.touchActive = true;
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
- `Touch Bank: ${printTouchBank(touchHistory)}`
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
- if (touchRecord) {
103
- touchRecord.touchActive = false;
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
- `Touch Bank: ${printTouchBank(touchHistory)}`
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
- if (touchBank.length > MAX_TOUCH_BANK) {
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
- constructor() {
138
- this._touchHistory = {
139
- touchBank: [],
140
- //Array<TouchRecord>
141
- numberActiveTouches: 0,
142
- // If there is only one active touch, we remember its location. This prevents
143
- // us having to loop through all of the touches all the time in the most
144
- // common case.
145
- indexOfSingleActiveTouch: -1,
146
- mostRecentTimeStamp: 0
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
- } else if ((0, import_types.isStartish)(topLevelType)) {
154
- nativeEvent.changedTouches.forEach((touch) => recordTouchStart(touch, touchHistory));
155
- touchHistory.numberActiveTouches = nativeEvent.touches.length;
156
- if (touchHistory.numberActiveTouches === 1) {
157
- touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier;
158
- }
159
- } else if ((0, import_types.isEndish)(topLevelType)) {
160
- nativeEvent.changedTouches.forEach((touch) => recordTouchEnd(touch, touchHistory));
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": "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",
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": ";;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,mBAAgD;AA4BhD,MAAM,iBAAiB;AAEvB,SAAS,kBAAkB,OAAsB;AAG/C,SAAO,MAAM,aAAgB,MAAM;AACrC;AAMA,SAAS,kBAAkB,OAA2B;AACpD,SAAO;AAAA,IACL,aAAa;AAAA,IACb,YAAY,MAAM;AAAA,IAClB,YAAY,MAAM;AAAA,IAClB,gBAAgB,kBAAkB,KAAK;AAAA,IACvC,cAAc,MAAM;AAAA,IACpB,cAAc,MAAM;AAAA,IACpB,kBAAkB,kBAAkB,KAAK;AAAA,IACzC,eAAe,MAAM;AAAA,IACrB,eAAe,MAAM;AAAA,IACrB,mBAAmB,kBAAkB,KAAK;AAAA,EAC5C;AACF;AAEA,SAAS,iBAAiB,aAA0B,OAAoB;AACtE,cAAY,cAAc,IAC1B,YAAY,aAAa,MAAM,OAC/B,YAAY,aAAa,MAAM,OAC/B,YAAY,iBAAiB,kBAAkB,KAAK,GACpD,YAAY,eAAe,MAAM,OACjC,YAAY,eAAe,MAAM,OACjC,YAAY,mBAAmB,kBAAkB,KAAK,GACtD,YAAY,gBAAgB,MAAM,OAClC,YAAY,gBAAgB,MAAM,OAClC,YAAY,oBAAoB,kBAAkB,KAAK;AACzD;AAEA,SAAS,mBAAmB,EAAE,WAAW,GAAkB;AACzD,SAAI,cAAc,QAChB,QAAQ,MAAM,qCAAqC,GAEjD,QAAQ,IAAI,aAAa,iBACvB,aAAa,kBACf,QAAQ;AAAA,IACN;AAAA,IAEA;AAAA,IACA;AAAA,EACF,GAGG;AACT;AAEA,SAAS,iBAAiB,OAAc,cAAoB;AAC1D,QAAM,aAAa,mBAAmB,KAAK,GACrC,cAAc,aAAa,UAAU,UAAU;AACrD,EAAI,cACF,iBAAiB,aAAa,KAAK,IAEnC,aAAa,UAAU,UAAU,IAAI,kBAAkB,KAAK,GAE9D,aAAa,sBAAsB,kBAAkB,KAAK;AAC5D;AAEA,SAAS,gBAAgB,OAAc,cAAoB;AACzD,QAAM,cAAc,aAAa,UAAU,mBAAmB,KAAK,CAAC;AACpE,EAAI,eACF,YAAY,cAAc,IAC1B,YAAY,gBAAgB,YAAY,cACxC,YAAY,gBAAgB,YAAY,cACxC,YAAY,oBAAoB,YAAY,kBAC5C,YAAY,eAAe,MAAM,OACjC,YAAY,eAAe,MAAM,OACjC,YAAY,mBAAmB,kBAAkB,KAAK,GACtD,aAAa,sBAAsB,kBAAkB,KAAK,KAE1D,QAAQ;AAAA,IACN;AAAA;AAAA,IACA,eAAe,WAAW,KAAK,CAAC;AAAA;AAAA,IAChC,eAAe,eAAe,YAAY,CAAC;AAAA,EAC7C;AAEJ;AAEA,SAAS,eAAe,OAAc,cAAoB;AACxD,QAAM,cAAc,aAAa,UAAU,mBAAmB,KAAK,CAAC;AACpE,EAAI,eACF,YAAY,cAAc,IAC1B,YAAY,gBAAgB,YAAY,cACxC,YAAY,gBAAgB,YAAY,cACxC,YAAY,oBAAoB,YAAY,kBAC5C,YAAY,eAAe,MAAM,OACjC,YAAY,eAAe,MAAM,OACjC,YAAY,mBAAmB,kBAAkB,KAAK,GACtD,aAAa,sBAAsB,kBAAkB,KAAK,KAE1D,QAAQ;AAAA,IACN;AAAA;AAAA,IACA,cAAc,WAAW,KAAK,CAAC;AAAA;AAAA,IAC/B,eAAe,eAAe,YAAY,CAAC;AAAA,EAC7C;AAEJ;AAEA,SAAS,WAAW,OAAsB;AACxC,SAAO,KAAK,UAAU;AAAA,IACpB,YAAY,MAAM;AAAA,IAClB,OAAO,MAAM;AAAA,IACb,OAAO,MAAM;AAAA,IACb,WAAW,kBAAkB,KAAK;AAAA,EACpC,CAAC;AACH;AAEA,SAAS,eAAe,cAAsB;AAC5C,QAAM,EAAE,UAAU,IAAI;AACtB,MAAI,UAAU,KAAK,UAAU,UAAU,MAAM,GAAG,cAAc,CAAC;AAC/D,SAAI,UAAU,SAAS,mBACrB,WAAW,oBAAoB,UAAU,MAAM,MAE1C;AACT;AAEO,MAAM,2BAA2B;AAAA,EAAjC;AACL,yBAAgB;AAAA,MACd,WAAW,CAAC;AAAA;AAAA,MACZ,qBAAqB;AAAA;AAAA;AAAA;AAAA,MAIrB,0BAA0B;AAAA,MAC1B,qBAAqB;AAAA,IACvB;AAAA;AAAA,EAEA,iBAAiB,cAAsB,aAA+B;AACpE,UAAM,eAAe,KAAK;AAC1B,YAAI,wBAAU,YAAY;AACxB,kBAAY,eAAe,QAAQ,CAAC,UAAU,gBAAgB,OAAO,YAAY,CAAC;AAAA,iBACzE,yBAAW,YAAY;AAChC,kBAAY,eAAe,QAAQ,CAAC,UAAU,iBAAiB,OAAO,YAAY,CAAC,GACnF,aAAa,sBAAsB,YAAY,QAAQ,QACnD,aAAa,wBAAwB,MACvC,aAAa,2BAA2B,YAAY,QAAQ,CAAC,EAAE;AAAA,iBAExD,uBAAS,YAAY,MAC9B,YAAY,eAAe,QAAQ,CAAC,UAAU,eAAe,OAAO,YAAY,CAAC,GACjF,aAAa,sBAAsB,YAAY,QAAQ,QACnD,aAAa,wBAAwB,IAAG;AAC1C,YAAM,EAAE,UAAU,IAAI;AACtB,eAAS,IAAI,GAAG,IAAI,UAAU,QAAQ;AAGpC,YAF0B,UAAU,CAAC,GAEd,aAAa;AAClC,uBAAa,2BAA2B;AACxC;AAAA,QACF;AAEF,MAAI,QAAQ,IAAI,aAAa,kBACN,UAAU,aAAa,wBAAwB,GAEjD,eACjB,QAAQ,MAAM,kCAAkC;AAAA,IAGtD;AAAA,EAEJ;AAAA,EAEA,IAAI,eAA6B;AAC/B,WAAO,KAAK;AAAA,EACd;AACF;",
5
+ "names": []
6
+ }