@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
@@ -17,34 +17,26 @@ import {
17
17
  isPrimaryPointerDown,
18
18
  setResponderId
19
19
  } from "./utils";
20
- const emptyObject = {};
21
- const startRegistration = [
20
+ const emptyObject = {}, startRegistration = [
22
21
  "onStartShouldSetResponderCapture",
23
22
  "onStartShouldSetResponder",
24
- { bubbles: true }
25
- ];
26
- const moveRegistration = [
23
+ { bubbles: !0 }
24
+ ], moveRegistration = [
27
25
  "onMoveShouldSetResponderCapture",
28
26
  "onMoveShouldSetResponder",
29
- { bubbles: true }
30
- ];
31
- const scrollRegistration = [
27
+ { bubbles: !0 }
28
+ ], scrollRegistration = [
32
29
  "onScrollShouldSetResponderCapture",
33
30
  "onScrollShouldSetResponder",
34
- { bubbles: false }
35
- ];
36
- const shouldSetResponderEvents = {
31
+ { bubbles: !1 }
32
+ ], shouldSetResponderEvents = {
37
33
  touchstart: startRegistration,
38
34
  mousedown: startRegistration,
39
35
  touchmove: moveRegistration,
40
36
  mousemove: moveRegistration,
41
37
  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 = {
38
+ }, emptyResponder = { id: null, idPath: null, node: null }, responderListenersMap = /* @__PURE__ */ new Map();
39
+ let isEmulatingMouseEvents = !1, trackedTouchCount = 0, currentResponder = {
48
40
  id: null,
49
41
  node: null,
50
42
  idPath: null
@@ -55,84 +47,44 @@ function changeCurrentResponder(responder) {
55
47
  }
56
48
  function getResponderConfig(id) {
57
49
  const config = responderListenersMap.get(id);
58
- return config != null ? config : emptyObject;
50
+ return config ?? emptyObject;
59
51
  }
60
52
  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
- ) {
53
+ const eventType = domEvent.type, eventTarget = domEvent.target;
54
+ if (eventType === "touchstart" && (isEmulatingMouseEvents = !0), (eventType === "touchmove" || trackedTouchCount > 1) && (isEmulatingMouseEvents = !1), // Ignore browser emulated mouse events
55
+ eventType === "mousedown" && isEmulatingMouseEvents || eventType === "mousemove" && isEmulatingMouseEvents || // Ignore mousemove if a mousedown didn't occur first
56
+ eventType === "mousemove" && trackedTouchCount < 1)
74
57
  return;
75
- }
76
58
  if (isEmulatingMouseEvents && eventType === "mouseup") {
77
- if (trackedTouchCount === 0) {
78
- isEmulatingMouseEvents = false;
79
- }
59
+ trackedTouchCount === 0 && (isEmulatingMouseEvents = !1);
80
60
  return;
81
61
  }
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;
62
+ const isStartEvent = isStartish(eventType) && isPrimaryPointerDown(domEvent), isMoveEvent = isMoveish(eventType), isEndEvent = isEndish(eventType), isScrollEvent = isScroll(eventType), isSelectionChangeEvent = isSelectionChange(eventType), responderEvent = createResponderEvent(domEvent, responderTouchHistoryStore);
63
+ (isStartEvent || isMoveEvent || isEndEvent) && (domEvent.touches ? trackedTouchCount = domEvent.touches.length : isStartEvent ? trackedTouchCount = 1 : isEndEvent && (trackedTouchCount = 0), responderTouchHistoryStore.recordTouchTrack(
64
+ eventType,
65
+ responderEvent.nativeEvent
66
+ ));
67
+ let eventPaths = getResponderPaths(domEvent), wasNegotiated = !1, wantsResponder;
106
68
  if (isStartEvent || isMoveEvent || isScrollEvent && trackedTouchCount > 0) {
107
- const currentResponderIdPath = currentResponder.idPath;
108
- const eventIdPath = eventPaths.idPath;
69
+ const currentResponderIdPath = currentResponder.idPath, eventIdPath = eventPaths.idPath;
109
70
  if (currentResponderIdPath != null && eventIdPath != null) {
110
71
  const lowestCommonAncestor = getLowestCommonAncestor(
111
72
  currentResponderIdPath,
112
73
  eventIdPath
113
74
  );
114
75
  if (lowestCommonAncestor != null) {
115
- const indexOfLowestCommonAncestor = eventIdPath.indexOf(lowestCommonAncestor);
116
- const index = indexOfLowestCommonAncestor + (lowestCommonAncestor === currentResponder.id ? 1 : 0);
76
+ const index = eventIdPath.indexOf(lowestCommonAncestor) + (lowestCommonAncestor === currentResponder.id ? 1 : 0);
117
77
  eventPaths = {
118
78
  idPath: eventIdPath.slice(index),
119
79
  nodePath: eventPaths.nodePath.slice(index)
120
80
  };
121
- } else {
81
+ } else
122
82
  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
83
  }
84
+ eventPaths != null && (wantsResponder = findWantsResponder(eventPaths, domEvent, responderEvent), wantsResponder != null && (attemptTransfer(responderEvent, wantsResponder), wasNegotiated = !0));
132
85
  }
133
86
  if (currentResponder.id != null && currentResponder.node != null) {
134
- const { id, node } = currentResponder;
135
- const {
87
+ const { id, node } = currentResponder, {
136
88
  onResponderStart,
137
89
  onResponderMove,
138
90
  onResponderEnd,
@@ -140,62 +92,21 @@ function eventListener(domEvent) {
140
92
  onResponderTerminate,
141
93
  onResponderTerminationRequest
142
94
  } = 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 {
95
+ if (responderEvent.bubbles = !1, responderEvent.cancelable = !1, responderEvent.currentTarget = node, isStartEvent)
96
+ onResponderStart != null && (responderEvent.dispatchConfig.registrationName = "onResponderStart", onResponderStart(responderEvent));
97
+ else if (isMoveEvent)
98
+ onResponderMove != null && (responderEvent.dispatchConfig.registrationName = "onResponderMove", onResponderMove(responderEvent));
99
+ else {
157
100
  const isTerminateEvent = isCancelish(eventType) || // native context menu
158
101
  eventType === "contextmenu" || // window blur
159
102
  eventType === "blur" && eventTarget === window || // responder (or ancestors) blur
160
103
  eventType === "blur" && eventTarget.contains(node) && domEvent.relatedTarget !== node || // native scroll without using a pointer
161
104
  isScrollEvent && trackedTouchCount === 0 || // native scroll on node that is parent of the responder (allow siblings to scroll)
162
105
  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
- }
106
+ isSelectionChangeEvent && hasValidSelection(domEvent), isReleaseEvent = isEndEvent && !isTerminateEvent && !hasTargetTouches(node, domEvent.touches);
107
+ if (isEndEvent && onResponderEnd != null && (responderEvent.dispatchConfig.registrationName = "onResponderEnd", onResponderEnd(responderEvent)), isReleaseEvent && (onResponderRelease != null && (responderEvent.dispatchConfig.registrationName = "onResponderRelease", onResponderRelease(responderEvent)), changeCurrentResponder(emptyResponder)), isTerminateEvent) {
108
+ let shouldTerminate = !0;
109
+ (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);
199
110
  }
200
111
  }
201
112
  }
@@ -203,101 +114,46 @@ function eventListener(domEvent) {
203
114
  function findWantsResponder(eventPaths, domEvent, responderEvent) {
204
115
  const shouldSetCallbacks = shouldSetResponderEvents[domEvent.type];
205
116
  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
- }
117
+ const { idPath, nodePath } = eventPaths, shouldSetCallbackCaptureName = shouldSetCallbacks[0], shouldSetCallbackBubbleName = shouldSetCallbacks[1], { bubbles } = shouldSetCallbacks[2], check = function(id, node, callbackName) {
118
+ const shouldSetCallback = getResponderConfig(id)[callbackName];
119
+ if (shouldSetCallback != null && (responderEvent.currentTarget = node, shouldSetCallback(responderEvent) === !0)) {
120
+ const prunedIdPath = idPath.slice(idPath.indexOf(id));
121
+ return { id, node, idPath: prunedIdPath };
219
122
  }
220
123
  };
221
124
  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) {
125
+ const id = idPath[i], node = nodePath[i], result = check(id, node, shouldSetCallbackCaptureName);
126
+ if (result != null)
226
127
  return result;
227
- }
228
- if (responderEvent.isPropagationStopped() === true) {
128
+ if (responderEvent.isPropagationStopped() === !0)
229
129
  return;
230
- }
231
130
  }
232
- if (bubbles) {
131
+ if (bubbles)
233
132
  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) {
133
+ const id = idPath[i], node = nodePath[i], result = check(id, node, shouldSetCallbackBubbleName);
134
+ if (result != null)
238
135
  return result;
239
- }
240
- if (responderEvent.isPropagationStopped() === true) {
136
+ if (responderEvent.isPropagationStopped() === !0)
241
137
  return;
242
- }
243
138
  }
244
- } else {
245
- const id = idPath[0];
246
- const node = nodePath[0];
247
- const target = domEvent.target;
248
- if (target === node) {
139
+ else {
140
+ const id = idPath[0], node = nodePath[0];
141
+ if (domEvent.target === node)
249
142
  return check(id, node, shouldSetCallbackBubbleName);
250
- }
251
143
  }
252
144
  }
253
145
  }
254
146
  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 {
147
+ const { id: currentId, node: currentNode } = currentResponder, { id, node } = wantsResponder, { onResponderGrant, onResponderReject } = getResponderConfig(id);
148
+ if (responderEvent.bubbles = !1, responderEvent.cancelable = !1, responderEvent.currentTarget = node, currentId == null)
149
+ onResponderGrant != null && (responderEvent.currentTarget = node, responderEvent.dispatchConfig.registrationName = "onResponderGrant", onResponderGrant(responderEvent)), changeCurrentResponder(wantsResponder);
150
+ else {
269
151
  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
- }
152
+ let allowTransfer = !0;
153
+ 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));
297
154
  }
298
155
  }
299
- const documentEventsCapturePhase = ["blur", "scroll"];
300
- const documentEventsBubblePhase = [
156
+ const documentEventsCapturePhase = ["blur", "scroll"], documentEventsBubblePhase = [
301
157
  // mouse
302
158
  "mousedown",
303
159
  "mousemove",
@@ -312,31 +168,19 @@ const documentEventsBubblePhase = [
312
168
  "contextmenu",
313
169
  "select",
314
170
  "selectionchange"
315
- ];
316
- const isTamaguiResponderActive = Symbol();
171
+ ], isTamaguiResponderActive = Symbol();
317
172
  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
- }
173
+ canUseDOM && !window[isTamaguiResponderActive] && (window.addEventListener("blur", eventListener), documentEventsBubblePhase.forEach((eventType) => {
174
+ document.addEventListener(eventType, eventListener);
175
+ }), documentEventsCapturePhase.forEach((eventType) => {
176
+ document.addEventListener(eventType, eventListener, !0);
177
+ }), window[isTamaguiResponderActive] = !0);
328
178
  }
329
179
  function addNode(id, node, config) {
330
- setResponderId(node, id);
331
- responderListenersMap.set(id, config);
180
+ setResponderId(node, id), responderListenersMap.set(id, config);
332
181
  }
333
182
  function removeNode(id) {
334
- if (currentResponder.id === id) {
335
- terminateResponder();
336
- }
337
- if (responderListenersMap.has(id)) {
338
- responderListenersMap.delete(id);
339
- }
183
+ currentResponder.id === id && terminateResponder(), responderListenersMap.has(id) && responderListenersMap.delete(id);
340
184
  }
341
185
  function terminateResponder() {
342
186
  const { id, node } = currentResponder;
@@ -344,13 +188,11 @@ function terminateResponder() {
344
188
  const { onResponderTerminate } = getResponderConfig(id);
345
189
  if (onResponderTerminate != null) {
346
190
  const event = createResponderEvent({}, responderTouchHistoryStore);
347
- event.currentTarget = node;
348
- onResponderTerminate(event);
191
+ event.currentTarget = node, onResponderTerminate(event);
349
192
  }
350
193
  changeCurrentResponder(emptyResponder);
351
194
  }
352
- isEmulatingMouseEvents = false;
353
- trackedTouchCount = 0;
195
+ isEmulatingMouseEvents = !1, trackedTouchCount = 0;
354
196
  }
355
197
  function getResponderNode() {
356
198
  return currentResponder.node;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/ResponderSystem.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -1,11 +1,11 @@
1
1
  import { isEndish, isMoveish, isStartish } from "./types";
2
2
  const MAX_TOUCH_BANK = 20;
3
3
  function timestampForTouch(touch) {
4
- return touch["timeStamp"] || touch.timestamp;
4
+ return touch.timeStamp || touch.timestamp;
5
5
  }
6
6
  function createTouchRecord(touch) {
7
7
  return {
8
- touchActive: true,
8
+ touchActive: !0,
9
9
  startPageX: touch.pageX,
10
10
  startPageY: touch.pageY,
11
11
  startTimeStamp: timestampForTouch(touch),
@@ -18,81 +18,38 @@ function createTouchRecord(touch) {
18
18
  };
19
19
  }
20
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);
21
+ 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);
31
22
  }
32
23
  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;
24
+ return identifier == null && console.error("Touch object is missing identifier."), process.env.NODE_ENV === "development" && identifier > MAX_TOUCH_BANK && console.error(
25
+ "Touch identifier %s is greater than maximum supported %s which causes performance issues backfilling array locations for all of the indices.",
26
+ identifier,
27
+ MAX_TOUCH_BANK
28
+ ), identifier;
46
29
  }
47
30
  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);
31
+ const identifier = getTouchIdentifier(touch), touchRecord = touchHistory.touchBank[identifier];
32
+ touchRecord ? resetTouchRecord(touchRecord, touch) : touchHistory.touchBank[identifier] = createTouchRecord(touch), touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
56
33
  }
57
34
  function recordTouchMove(touch, touchHistory) {
58
35
  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)}
36
+ 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(
37
+ `Cannot record touch move without a touch start.
72
38
  `,
73
- `Touch Bank: ${printTouchBank(touchHistory)}`
74
- );
75
- }
39
+ `Touch Move: ${printTouch(touch)}
40
+ `,
41
+ `Touch Bank: ${printTouchBank(touchHistory)}`
42
+ );
76
43
  }
77
44
  function recordTouchEnd(touch, touchHistory) {
78
45
  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)}
46
+ 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(
47
+ `Cannot record touch end without a touch start.
92
48
  `,
93
- `Touch Bank: ${printTouchBank(touchHistory)}`
94
- );
95
- }
49
+ `Touch End: ${printTouch(touch)}
50
+ `,
51
+ `Touch Bank: ${printTouchBank(touchHistory)}`
52
+ );
96
53
  }
97
54
  function printTouch(touch) {
98
55
  return JSON.stringify({
@@ -105,53 +62,33 @@ function printTouch(touch) {
105
62
  function printTouchBank(touchHistory) {
106
63
  const { touchBank } = touchHistory;
107
64
  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;
65
+ return touchBank.length > MAX_TOUCH_BANK && (printed += ` (original size: ${touchBank.length})`), printed;
112
66
  }
113
67
  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
- }
68
+ _touchHistory = {
69
+ touchBank: [],
70
+ //Array<TouchRecord>
71
+ numberActiveTouches: 0,
72
+ // If there is only one active touch, we remember its location. This prevents
73
+ // us having to loop through all of the touches all the time in the most
74
+ // common case.
75
+ indexOfSingleActiveTouch: -1,
76
+ mostRecentTimeStamp: 0
77
+ };
126
78
  recordTouchTrack(topLevelType, nativeEvent) {
127
79
  const touchHistory = this._touchHistory;
128
- if (isMoveish(topLevelType)) {
80
+ if (isMoveish(topLevelType))
129
81
  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
- }
82
+ else if (isStartish(topLevelType))
83
+ nativeEvent.changedTouches.forEach((touch) => recordTouchStart(touch, touchHistory)), touchHistory.numberActiveTouches = nativeEvent.touches.length, touchHistory.numberActiveTouches === 1 && (touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier);
84
+ else if (isEndish(topLevelType) && (nativeEvent.changedTouches.forEach((touch) => recordTouchEnd(touch, touchHistory)), touchHistory.numberActiveTouches = nativeEvent.touches.length, touchHistory.numberActiveTouches === 1)) {
85
+ const { touchBank } = touchHistory;
86
+ for (let i = 0; i < touchBank.length; i++)
87
+ if (touchBank[i]?.touchActive) {
88
+ touchHistory.indexOfSingleActiveTouch = i;
89
+ break;
153
90
  }
154
- }
91
+ process.env.NODE_ENV === "development" && (touchBank[touchHistory.indexOfSingleActiveTouch]?.touchActive || console.error("Cannot find single active touch."));
155
92
  }
156
93
  }
157
94
  get touchHistory() {