@hanzogui/react-native-use-responder-events 8.3.1 → 8.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/dist/cjs/ResponderSystem.js +444 -0
  2. package/dist/cjs/ResponderSystem.js.map +1 -0
  3. package/dist/cjs/ResponderTouchHistoryStore.js +175 -0
  4. package/dist/cjs/ResponderTouchHistoryStore.js.map +1 -0
  5. package/dist/cjs/createResponderEvent.js +151 -0
  6. package/dist/cjs/createResponderEvent.js.map +1 -0
  7. package/dist/cjs/index.js +5 -0
  8. package/dist/cjs/index.js.map +1 -0
  9. package/dist/cjs/package.json +1 -0
  10. package/dist/cjs/types.js +47 -0
  11. package/dist/cjs/types.js.map +1 -0
  12. package/dist/cjs/useResponderEvents.js +81 -0
  13. package/dist/cjs/useResponderEvents.js.map +1 -0
  14. package/dist/cjs/utils.js +182 -0
  15. package/dist/cjs/utils.js.map +1 -0
  16. package/dist/esm/ResponderSystem.js +437 -0
  17. package/dist/esm/ResponderSystem.js.map +1 -0
  18. package/dist/esm/ResponderTouchHistoryStore.js +171 -0
  19. package/dist/esm/ResponderTouchHistoryStore.js.map +1 -0
  20. package/dist/esm/createResponderEvent.js +148 -0
  21. package/dist/esm/createResponderEvent.js.map +1 -0
  22. package/dist/esm/index.js +2 -2
  23. package/dist/esm/index.js.map +1 -1
  24. package/dist/esm/types.js +38 -0
  25. package/dist/esm/types.js.map +1 -0
  26. package/dist/esm/useResponderEvents.js +76 -0
  27. package/dist/esm/useResponderEvents.js.map +1 -0
  28. package/dist/esm/utils.js +171 -0
  29. package/dist/esm/utils.js.map +1 -0
  30. package/package.json +18 -13
  31. package/src/ResponderSystem.ts +6 -6
  32. package/src/ResponderTouchHistoryStore.ts +2 -2
  33. package/src/createResponderEvent.ts +2 -2
  34. package/src/index.ts +1 -1
  35. package/src/useResponderEvents.ts +2 -2
  36. package/types/ResponderSystem.d.ts +1 -1
  37. package/types/ResponderSystem.d.ts.map +1 -1
  38. package/types/ResponderTouchHistoryStore.d.ts +1 -1
  39. package/types/ResponderTouchHistoryStore.d.ts.map +1 -1
  40. package/types/createResponderEvent.d.ts +1 -1
  41. package/types/createResponderEvent.d.ts.map +1 -1
  42. package/types/index.d.ts +1 -1
  43. package/types/index.d.ts.map +1 -1
  44. package/types/useResponderEvents.d.ts +2 -2
  45. package/types/useResponderEvents.d.ts.map +1 -1
  46. package/types/utils.d.ts.map +1 -1
  47. package/dist/cjs/ResponderSystem.cjs +0 -392
  48. package/dist/cjs/ResponderSystem.native.js +0 -395
  49. package/dist/cjs/ResponderSystem.native.js.map +0 -1
  50. package/dist/cjs/ResponderTouchHistoryStore.cjs +0 -179
  51. package/dist/cjs/ResponderTouchHistoryStore.native.js +0 -232
  52. package/dist/cjs/ResponderTouchHistoryStore.native.js.map +0 -1
  53. package/dist/cjs/createResponderEvent.cjs +0 -149
  54. package/dist/cjs/createResponderEvent.native.js +0 -152
  55. package/dist/cjs/createResponderEvent.native.js.map +0 -1
  56. package/dist/cjs/index.cjs +0 -20
  57. package/dist/cjs/index.native.js +0 -23
  58. package/dist/cjs/index.native.js.map +0 -1
  59. package/dist/cjs/types.cjs +0 -78
  60. package/dist/cjs/types.native.js +0 -81
  61. package/dist/cjs/types.native.js.map +0 -1
  62. package/dist/cjs/useResponderEvents.cjs +0 -107
  63. package/dist/cjs/useResponderEvents.native.js +0 -113
  64. package/dist/cjs/useResponderEvents.native.js.map +0 -1
  65. package/dist/cjs/utils.cjs +0 -169
  66. package/dist/cjs/utils.native.js +0 -173
  67. package/dist/cjs/utils.native.js.map +0 -1
  68. package/dist/esm/ResponderSystem.mjs +0 -363
  69. package/dist/esm/ResponderSystem.mjs.map +0 -1
  70. package/dist/esm/ResponderSystem.native.js +0 -363
  71. package/dist/esm/ResponderSystem.native.js.map +0 -1
  72. package/dist/esm/ResponderTouchHistoryStore.mjs +0 -154
  73. package/dist/esm/ResponderTouchHistoryStore.mjs.map +0 -1
  74. package/dist/esm/ResponderTouchHistoryStore.native.js +0 -204
  75. package/dist/esm/ResponderTouchHistoryStore.native.js.map +0 -1
  76. package/dist/esm/createResponderEvent.mjs +0 -124
  77. package/dist/esm/createResponderEvent.mjs.map +0 -1
  78. package/dist/esm/createResponderEvent.native.js +0 -124
  79. package/dist/esm/createResponderEvent.native.js.map +0 -1
  80. package/dist/esm/index.mjs +0 -2
  81. package/dist/esm/index.mjs.map +0 -1
  82. package/dist/esm/index.native.js +0 -2
  83. package/dist/esm/index.native.js.map +0 -1
  84. package/dist/esm/types.mjs +0 -34
  85. package/dist/esm/types.mjs.map +0 -1
  86. package/dist/esm/types.native.js +0 -34
  87. package/dist/esm/types.native.js.map +0 -1
  88. package/dist/esm/useResponderEvents.mjs +0 -69
  89. package/dist/esm/useResponderEvents.mjs.map +0 -1
  90. package/dist/esm/useResponderEvents.native.js +0 -72
  91. package/dist/esm/useResponderEvents.native.js.map +0 -1
  92. package/dist/esm/utils.mjs +0 -136
  93. package/dist/esm/utils.mjs.map +0 -1
  94. package/dist/esm/utils.native.js +0 -137
  95. package/dist/esm/utils.native.js.map +0 -1
@@ -1,395 +0,0 @@
1
- "use strict";
2
-
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: true
11
- });
12
- };
13
- var __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from === "object" || typeof from === "function") {
15
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
- get: () => from[key],
17
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
- });
19
- }
20
- return to;
21
- };
22
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
- value: true
24
- }), mod);
25
- var ResponderSystem_exports = {};
26
- __export(ResponderSystem_exports, {
27
- addNode: () => addNode,
28
- attachListeners: () => attachListeners,
29
- getResponderNode: () => getResponderNode,
30
- removeNode: () => removeNode,
31
- terminateResponder: () => terminateResponder
32
- });
33
- module.exports = __toCommonJS(ResponderSystem_exports);
34
- var import_createResponderEvent = require("./createResponderEvent.native.js");
35
- var import_ResponderTouchHistoryStore = require("./ResponderTouchHistoryStore.native.js");
36
- var import_types = require("./types.native.js");
37
- var import_utils = require("./utils.native.js");
38
- var import_utils2 = require("./utils.native.js");
39
- var emptyObject = {};
40
- var startRegistration = ["onStartShouldSetResponderCapture", "onStartShouldSetResponder", {
41
- bubbles: true
42
- }];
43
- var moveRegistration = ["onMoveShouldSetResponderCapture", "onMoveShouldSetResponder", {
44
- bubbles: true
45
- }];
46
- var scrollRegistration = ["onScrollShouldSetResponderCapture", "onScrollShouldSetResponder", {
47
- bubbles: false
48
- }];
49
- var shouldSetResponderEvents = {
50
- touchstart: startRegistration,
51
- mousedown: startRegistration,
52
- touchmove: moveRegistration,
53
- mousemove: moveRegistration,
54
- scroll: scrollRegistration
55
- };
56
- var emptyResponder = {
57
- id: null,
58
- idPath: null,
59
- node: null
60
- };
61
- var responderListenersMap = /* @__PURE__ */new Map();
62
- var isEmulatingMouseEvents = false;
63
- var trackedTouchCount = 0;
64
- var currentResponder = {
65
- id: null,
66
- node: null,
67
- idPath: null
68
- };
69
- var responderTouchHistoryStore = new import_ResponderTouchHistoryStore.ResponderTouchHistoryStore();
70
- function changeCurrentResponder(responder) {
71
- currentResponder = responder;
72
- }
73
- function getResponderConfig(id) {
74
- var config = responderListenersMap.get(id);
75
- return config != null ? config : emptyObject;
76
- }
77
- function eventListener(domEvent) {
78
- var eventType = domEvent.type;
79
- var eventTarget = domEvent.target;
80
- if (eventType === "touchstart") {
81
- isEmulatingMouseEvents = true;
82
- }
83
- if (eventType === "touchmove" || trackedTouchCount > 1) {
84
- isEmulatingMouseEvents = false;
85
- }
86
- if (
87
- // Ignore browser emulated mouse events
88
- eventType === "mousedown" && isEmulatingMouseEvents || eventType === "mousemove" && isEmulatingMouseEvents ||
89
- // Ignore mousemove if a mousedown didn't occur first
90
- eventType === "mousemove" && trackedTouchCount < 1) {
91
- return;
92
- }
93
- if (isEmulatingMouseEvents && eventType === "mouseup") {
94
- if (trackedTouchCount === 0) {
95
- isEmulatingMouseEvents = false;
96
- }
97
- return;
98
- }
99
- var isStartEvent = (0, import_types.isStartish)(eventType) && (0, import_utils2.isPrimaryPointerDown)(domEvent);
100
- var isMoveEvent = (0, import_types.isMoveish)(eventType);
101
- var isEndEvent = (0, import_types.isEndish)(eventType);
102
- var isScrollEvent = (0, import_types.isScroll)(eventType);
103
- var isSelectionChangeEvent = (0, import_types.isSelectionChange)(eventType);
104
- var responderEvent = (0, import_createResponderEvent.createResponderEvent)(domEvent, responderTouchHistoryStore);
105
- if (isStartEvent || isMoveEvent || isEndEvent) {
106
- if (domEvent.touches) {
107
- trackedTouchCount = domEvent.touches.length;
108
- } else {
109
- if (isStartEvent) {
110
- trackedTouchCount = 1;
111
- } else if (isEndEvent) {
112
- trackedTouchCount = 0;
113
- }
114
- }
115
- responderTouchHistoryStore.recordTouchTrack(eventType, responderEvent.nativeEvent);
116
- }
117
- var eventPaths = (0, import_utils2.getResponderPaths)(domEvent);
118
- var wasNegotiated = false;
119
- var wantsResponder;
120
- if (isStartEvent || isMoveEvent || isScrollEvent && trackedTouchCount > 0) {
121
- var currentResponderIdPath = currentResponder.idPath;
122
- var eventIdPath = eventPaths.idPath;
123
- if (currentResponderIdPath != null && eventIdPath != null) {
124
- var lowestCommonAncestor = (0, import_utils2.getLowestCommonAncestor)(currentResponderIdPath, eventIdPath);
125
- if (lowestCommonAncestor != null) {
126
- var indexOfLowestCommonAncestor = eventIdPath.indexOf(lowestCommonAncestor);
127
- var index = indexOfLowestCommonAncestor + (lowestCommonAncestor === currentResponder.id ? 1 : 0);
128
- eventPaths = {
129
- idPath: eventIdPath.slice(index),
130
- nodePath: eventPaths.nodePath.slice(index)
131
- };
132
- } else {
133
- eventPaths = null;
134
- }
135
- }
136
- if (eventPaths != null) {
137
- wantsResponder = findWantsResponder(eventPaths, domEvent, responderEvent);
138
- if (wantsResponder != null) {
139
- attemptTransfer(responderEvent, wantsResponder);
140
- wasNegotiated = true;
141
- }
142
- }
143
- }
144
- if (currentResponder.id != null && currentResponder.node != null) {
145
- var {
146
- id,
147
- node
148
- } = currentResponder;
149
- var {
150
- onResponderStart,
151
- onResponderMove,
152
- onResponderEnd,
153
- onResponderRelease,
154
- onResponderTerminate,
155
- onResponderTerminationRequest
156
- } = getResponderConfig(id);
157
- responderEvent.bubbles = false;
158
- responderEvent.cancelable = false;
159
- responderEvent.currentTarget = node;
160
- if (isStartEvent) {
161
- if (onResponderStart != null) {
162
- responderEvent.dispatchConfig.registrationName = "onResponderStart";
163
- onResponderStart(responderEvent);
164
- }
165
- } else if (isMoveEvent) {
166
- if (onResponderMove != null) {
167
- responderEvent.dispatchConfig.registrationName = "onResponderMove";
168
- onResponderMove(responderEvent);
169
- }
170
- } else {
171
- var isTerminateEvent = (0, import_types.isCancelish)(eventType) ||
172
- // native context menu
173
- eventType === "contextmenu" ||
174
- // window blur
175
- eventType === "blur" && eventTarget === window ||
176
- // responder (or ancestors) blur
177
- eventType === "blur" && eventTarget.contains(node) && domEvent.relatedTarget !== node ||
178
- // native scroll without using a pointer
179
- isScrollEvent && trackedTouchCount === 0 ||
180
- // native scroll on node that is parent of the responder (allow siblings to scroll)
181
- isScrollEvent && eventTarget.contains(node) && eventTarget !== node ||
182
- // native select/selectionchange on node
183
- isSelectionChangeEvent && (0, import_utils2.hasValidSelection)(domEvent);
184
- var isReleaseEvent = isEndEvent && !isTerminateEvent && !(0, import_utils2.hasTargetTouches)(node, domEvent.touches);
185
- if (isEndEvent) {
186
- if (onResponderEnd != null) {
187
- responderEvent.dispatchConfig.registrationName = "onResponderEnd";
188
- onResponderEnd(responderEvent);
189
- }
190
- }
191
- if (isReleaseEvent) {
192
- if (onResponderRelease != null) {
193
- responderEvent.dispatchConfig.registrationName = "onResponderRelease";
194
- onResponderRelease(responderEvent);
195
- }
196
- changeCurrentResponder(emptyResponder);
197
- }
198
- if (isTerminateEvent) {
199
- var shouldTerminate = true;
200
- if (eventType === "contextmenu" || eventType === "scroll" || eventType === "selectionchange") {
201
- if (wasNegotiated) {
202
- shouldTerminate = false;
203
- } else if (onResponderTerminationRequest != null) {
204
- responderEvent.dispatchConfig.registrationName = "onResponderTerminationRequest";
205
- if (onResponderTerminationRequest(responderEvent) === false) {
206
- shouldTerminate = false;
207
- }
208
- }
209
- }
210
- if (shouldTerminate) {
211
- if (onResponderTerminate != null) {
212
- responderEvent.dispatchConfig.registrationName = "onResponderTerminate";
213
- onResponderTerminate(responderEvent);
214
- }
215
- changeCurrentResponder(emptyResponder);
216
- isEmulatingMouseEvents = false;
217
- trackedTouchCount = 0;
218
- }
219
- }
220
- }
221
- }
222
- }
223
- function findWantsResponder(eventPaths, domEvent, responderEvent) {
224
- var shouldSetCallbacks = shouldSetResponderEvents[domEvent.type];
225
- if (shouldSetCallbacks != null) {
226
- var {
227
- idPath,
228
- nodePath
229
- } = eventPaths;
230
- var shouldSetCallbackCaptureName = shouldSetCallbacks[0];
231
- var shouldSetCallbackBubbleName = shouldSetCallbacks[1];
232
- var {
233
- bubbles
234
- } = shouldSetCallbacks[2];
235
- var check = function (id3, node3, callbackName) {
236
- var config = getResponderConfig(id3);
237
- var shouldSetCallback = config[callbackName];
238
- if (shouldSetCallback != null) {
239
- responderEvent.currentTarget = node3;
240
- if (shouldSetCallback(responderEvent) === true) {
241
- var prunedIdPath = idPath.slice(idPath.indexOf(id3));
242
- return {
243
- id: id3,
244
- node: node3,
245
- idPath: prunedIdPath
246
- };
247
- }
248
- }
249
- };
250
- for (var i = idPath.length - 1; i >= 0; i--) {
251
- var id = idPath[i];
252
- var node = nodePath[i];
253
- var result = check(id, node, shouldSetCallbackCaptureName);
254
- if (result != null) {
255
- return result;
256
- }
257
- if (responderEvent.isPropagationStopped() === true) {
258
- return;
259
- }
260
- }
261
- if (bubbles) {
262
- for (var i1 = 0; i1 < idPath.length; i1++) {
263
- var id1 = idPath[i1];
264
- var node1 = nodePath[i1];
265
- var result1 = check(id1, node1, shouldSetCallbackBubbleName);
266
- if (result1 != null) {
267
- return result1;
268
- }
269
- if (responderEvent.isPropagationStopped() === true) {
270
- return;
271
- }
272
- }
273
- } else {
274
- var id2 = idPath[0];
275
- var node2 = nodePath[0];
276
- var target = domEvent.target;
277
- if (target === node2) {
278
- return check(id2, node2, shouldSetCallbackBubbleName);
279
- }
280
- }
281
- }
282
- }
283
- function attemptTransfer(responderEvent, wantsResponder) {
284
- var {
285
- id: currentId,
286
- node: currentNode
287
- } = currentResponder;
288
- var {
289
- id,
290
- node
291
- } = wantsResponder;
292
- var {
293
- onResponderGrant,
294
- onResponderReject
295
- } = getResponderConfig(id);
296
- responderEvent.bubbles = false;
297
- responderEvent.cancelable = false;
298
- responderEvent.currentTarget = node;
299
- if (currentId == null) {
300
- if (onResponderGrant != null) {
301
- responderEvent.currentTarget = node;
302
- responderEvent.dispatchConfig.registrationName = "onResponderGrant";
303
- onResponderGrant(responderEvent);
304
- }
305
- changeCurrentResponder(wantsResponder);
306
- } else {
307
- var {
308
- onResponderTerminate,
309
- onResponderTerminationRequest
310
- } = getResponderConfig(currentId);
311
- var allowTransfer = true;
312
- if (onResponderTerminationRequest != null) {
313
- responderEvent.currentTarget = currentNode;
314
- responderEvent.dispatchConfig.registrationName = "onResponderTerminationRequest";
315
- if (onResponderTerminationRequest(responderEvent) === false) {
316
- allowTransfer = false;
317
- }
318
- }
319
- if (allowTransfer) {
320
- if (onResponderTerminate != null) {
321
- responderEvent.currentTarget = currentNode;
322
- responderEvent.dispatchConfig.registrationName = "onResponderTerminate";
323
- onResponderTerminate(responderEvent);
324
- }
325
- if (onResponderGrant != null) {
326
- responderEvent.currentTarget = node;
327
- responderEvent.dispatchConfig.registrationName = "onResponderGrant";
328
- onResponderGrant(responderEvent);
329
- }
330
- changeCurrentResponder(wantsResponder);
331
- } else {
332
- if (onResponderReject != null) {
333
- responderEvent.currentTarget = node;
334
- responderEvent.dispatchConfig.registrationName = "onResponderReject";
335
- onResponderReject(responderEvent);
336
- }
337
- }
338
- }
339
- }
340
- var documentEventsCapturePhase = ["blur", "scroll"];
341
- var documentEventsBubblePhase = [
342
- // mouse
343
- "mousedown", "mousemove", "mouseup", "dragstart",
344
- // touch
345
- "touchstart", "touchmove", "touchend", "touchcancel",
346
- // other
347
- "contextmenu", "select", "selectionchange"];
348
- var isGuiResponderActive = /* @__PURE__ */Symbol();
349
- function attachListeners() {
350
- if (import_utils.canUseDOM && !window[isGuiResponderActive]) {
351
- window.addEventListener("blur", eventListener);
352
- documentEventsBubblePhase.forEach(function (eventType) {
353
- document.addEventListener(eventType, eventListener);
354
- });
355
- documentEventsCapturePhase.forEach(function (eventType) {
356
- document.addEventListener(eventType, eventListener, true);
357
- });
358
- window[isGuiResponderActive] = true;
359
- }
360
- }
361
- function addNode(id, node, config) {
362
- (0, import_utils2.setResponderId)(node, id);
363
- responderListenersMap.set(id, config);
364
- }
365
- function removeNode(id) {
366
- if (currentResponder.id === id) {
367
- terminateResponder();
368
- }
369
- if (responderListenersMap.has(id)) {
370
- responderListenersMap.delete(id);
371
- }
372
- }
373
- function terminateResponder() {
374
- var {
375
- id,
376
- node
377
- } = currentResponder;
378
- if (id != null && node != null) {
379
- var {
380
- onResponderTerminate
381
- } = getResponderConfig(id);
382
- if (onResponderTerminate != null) {
383
- var event = (0, import_createResponderEvent.createResponderEvent)({}, responderTouchHistoryStore);
384
- event.currentTarget = node;
385
- onResponderTerminate(event);
386
- }
387
- changeCurrentResponder(emptyResponder);
388
- }
389
- isEmulatingMouseEvents = false;
390
- trackedTouchCount = 0;
391
- }
392
- function getResponderNode() {
393
- return currentResponder.node;
394
- }
395
- //# sourceMappingURL=ResponderSystem.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","ResponderSystem_exports","__export","addNode","attachListeners","getResponderNode","removeNode","terminateResponder","module","exports","import_createResponderEvent","require","import_ResponderTouchHistoryStore","import_types","import_utils","import_utils2","emptyObject","startRegistration","bubbles","moveRegistration","scrollRegistration","shouldSetResponderEvents","touchstart","mousedown","touchmove","mousemove","scroll","emptyResponder","id","idPath","node","responderListenersMap","Map","isEmulatingMouseEvents","trackedTouchCount","currentResponder","responderTouchHistoryStore","ResponderTouchHistoryStore","changeCurrentResponder","responder","getResponderConfig","config","get","eventListener","domEvent","eventType","type","eventTarget","target","isStartEvent","isStartish","isPrimaryPointerDown","isMoveEvent","isMoveish","isEndEvent","isEndish","isScrollEvent","isScroll","isSelectionChangeEvent","isSelectionChange","responderEvent","createResponderEvent","touches","length","recordTouchTrack","nativeEvent","eventPaths","getResponderPaths","wasNegotiated","wantsResponder","currentResponderIdPath","eventIdPath","lowestCommonAncestor","getLowestCommonAncestor","indexOfLowestCommonAncestor","indexOf","index","slice","nodePath","findWantsResponder","attemptTransfer","onResponderStart","onResponderMove","onResponderEnd","onResponderRelease","onResponderTerminate","onResponderTerminationRequest","cancelable","currentTarget","dispatchConfig","registrationName","isTerminateEvent","isCancelish","window","contains","relatedTarget","hasValidSelection","isReleaseEvent","hasTargetTouches","shouldTerminate","shouldSetCallbacks","shouldSetCallbackCaptureName","shouldSetCallbackBubbleName","check","id3","node3","callbackName","shouldSetCallback","prunedIdPath","i","result","isPropagationStopped","i1","id1","node1","result1","id2","node2","currentId","currentNode","onResponderGrant","onResponderReject","allowTransfer","documentEventsCapturePhase","documentEventsBubblePhase","isGuiResponderActive","Symbol","canUseDOM","addEventListener","forEach","document","setResponderId","set","has","delete","event"],"sources":["../../src/ResponderSystem.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,179 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
- var __getOwnPropNames = Object.getOwnPropertyNames;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __export = (target, all) => {
6
- for (var name in all) __defProp(target, name, {
7
- get: all[name],
8
- enumerable: true
9
- });
10
- };
11
- var __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from === "object" || typeof from === "function") {
13
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
- get: () => from[key],
15
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
- });
17
- }
18
- return to;
19
- };
20
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
- value: true
22
- }), mod);
23
- var ResponderTouchHistoryStore_exports = {};
24
- __export(ResponderTouchHistoryStore_exports, {
25
- ResponderTouchHistoryStore: () => ResponderTouchHistoryStore
26
- });
27
- module.exports = __toCommonJS(ResponderTouchHistoryStore_exports);
28
- var import_types = require("./types.cjs");
29
- class ResponderTouchHistoryStore {
30
- _touchHistory = {
31
- touchBank: [],
32
- //Array<TouchRecord>
33
- numberActiveTouches: 0,
34
- // If there is only one active touch, we remember its location. This prevents
35
- // us having to loop through all of the touches all the time in the most
36
- // common case.
37
- indexOfSingleActiveTouch: -1,
38
- mostRecentTimeStamp: 0
39
- };
40
- recordTouchTrack(topLevelType, nativeEvent) {
41
- const touchHistory = this._touchHistory;
42
- if ((0, import_types.isMoveish)(topLevelType)) {
43
- nativeEvent.changedTouches.forEach(touch => recordTouchMove(touch, touchHistory));
44
- } else if ((0, import_types.isStartish)(topLevelType)) {
45
- nativeEvent.changedTouches.forEach(touch => recordTouchStart(touch, touchHistory));
46
- touchHistory.numberActiveTouches = nativeEvent.touches.length;
47
- if (touchHistory.numberActiveTouches === 1) {
48
- touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier;
49
- }
50
- } else if ((0, import_types.isEndish)(topLevelType)) {
51
- nativeEvent.changedTouches.forEach(touch => recordTouchEnd(touch, touchHistory));
52
- touchHistory.numberActiveTouches = nativeEvent.touches.length;
53
- if (touchHistory.numberActiveTouches === 1) {
54
- const {
55
- touchBank
56
- } = touchHistory;
57
- for (let i = 0; i < touchBank.length; i++) {
58
- const touchTrackToCheck = touchBank[i];
59
- if (touchTrackToCheck?.touchActive) {
60
- touchHistory.indexOfSingleActiveTouch = i;
61
- break;
62
- }
63
- }
64
- if (process.env.NODE_ENV === "development") {
65
- const activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch];
66
- if (!activeRecord?.touchActive) {
67
- console.error("Cannot find single active touch.");
68
- }
69
- }
70
- }
71
- }
72
- }
73
- get touchHistory() {
74
- return this._touchHistory;
75
- }
76
- }
77
- const MAX_TOUCH_BANK = 20;
78
- function timestampForTouch(touch) {
79
- return touch["timeStamp"] || touch.timestamp;
80
- }
81
- function createTouchRecord(touch) {
82
- return {
83
- touchActive: true,
84
- startPageX: touch.pageX,
85
- startPageY: touch.pageY,
86
- startTimeStamp: timestampForTouch(touch),
87
- currentPageX: touch.pageX,
88
- currentPageY: touch.pageY,
89
- currentTimeStamp: timestampForTouch(touch),
90
- previousPageX: touch.pageX,
91
- previousPageY: touch.pageY,
92
- previousTimeStamp: timestampForTouch(touch)
93
- };
94
- }
95
- function resetTouchRecord(touchRecord, touch) {
96
- touchRecord.touchActive = true;
97
- touchRecord.startPageX = touch.pageX;
98
- touchRecord.startPageY = touch.pageY;
99
- touchRecord.startTimeStamp = timestampForTouch(touch);
100
- touchRecord.currentPageX = touch.pageX;
101
- touchRecord.currentPageY = touch.pageY;
102
- touchRecord.currentTimeStamp = timestampForTouch(touch);
103
- touchRecord.previousPageX = touch.pageX;
104
- touchRecord.previousPageY = touch.pageY;
105
- touchRecord.previousTimeStamp = timestampForTouch(touch);
106
- }
107
- function getTouchIdentifier({
108
- identifier
109
- }) {
110
- if (identifier == null) {
111
- console.error("Touch object is missing identifier.");
112
- }
113
- if (process.env.NODE_ENV === "development") {
114
- if (identifier > MAX_TOUCH_BANK) {
115
- console.error("Touch identifier %s is greater than maximum supported %s which causes performance issues backfilling array locations for all of the indices.", identifier, MAX_TOUCH_BANK);
116
- }
117
- }
118
- return identifier;
119
- }
120
- function recordTouchStart(touch, touchHistory) {
121
- const identifier = getTouchIdentifier(touch);
122
- const touchRecord = touchHistory.touchBank[identifier];
123
- if (touchRecord) {
124
- resetTouchRecord(touchRecord, touch);
125
- } else {
126
- touchHistory.touchBank[identifier] = createTouchRecord(touch);
127
- }
128
- touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
129
- }
130
- function recordTouchMove(touch, touchHistory) {
131
- const touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];
132
- if (touchRecord) {
133
- touchRecord.touchActive = true;
134
- touchRecord.previousPageX = touchRecord.currentPageX;
135
- touchRecord.previousPageY = touchRecord.currentPageY;
136
- touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;
137
- touchRecord.currentPageX = touch.pageX;
138
- touchRecord.currentPageY = touch.pageY;
139
- touchRecord.currentTimeStamp = timestampForTouch(touch);
140
- touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
141
- } else {
142
- console.warn("Cannot record touch move without a touch start.\n", `Touch Move: ${printTouch(touch)}
143
- `, `Touch Bank: ${printTouchBank(touchHistory)}`);
144
- }
145
- }
146
- function recordTouchEnd(touch, touchHistory) {
147
- const touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];
148
- if (touchRecord) {
149
- touchRecord.touchActive = false;
150
- touchRecord.previousPageX = touchRecord.currentPageX;
151
- touchRecord.previousPageY = touchRecord.currentPageY;
152
- touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;
153
- touchRecord.currentPageX = touch.pageX;
154
- touchRecord.currentPageY = touch.pageY;
155
- touchRecord.currentTimeStamp = timestampForTouch(touch);
156
- touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
157
- } else {
158
- console.warn("Cannot record touch end without a touch start.\n", `Touch End: ${printTouch(touch)}
159
- `, `Touch Bank: ${printTouchBank(touchHistory)}`);
160
- }
161
- }
162
- function printTouch(touch) {
163
- return JSON.stringify({
164
- identifier: touch.identifier,
165
- pageX: touch.pageX,
166
- pageY: touch.pageY,
167
- timestamp: timestampForTouch(touch)
168
- });
169
- }
170
- function printTouchBank(touchHistory) {
171
- const {
172
- touchBank
173
- } = touchHistory;
174
- let printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));
175
- if (touchBank.length > MAX_TOUCH_BANK) {
176
- printed += ` (original size: ${touchBank.length})`;
177
- }
178
- return printed;
179
- }