@tamagui/react-native-use-responder-events 2.7.7 → 3.0.0-beta.643.1

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 (61) hide show
  1. package/dist/cjs/ResponderSystem.cjs +307 -344
  2. package/dist/cjs/ResponderSystem.native.cjs +357 -0
  3. package/dist/cjs/ResponderSystem.native.js +307 -343
  4. package/dist/cjs/ResponderSystem.native.js.map +1 -1
  5. package/dist/cjs/ResponderTouchHistoryStore.cjs +136 -149
  6. package/dist/cjs/ResponderTouchHistoryStore.native.cjs +217 -0
  7. package/dist/cjs/ResponderTouchHistoryStore.native.js +176 -189
  8. package/dist/cjs/ResponderTouchHistoryStore.native.js.map +1 -1
  9. package/dist/cjs/createResponderEvent.cjs +128 -132
  10. package/dist/cjs/createResponderEvent.native.cjs +147 -0
  11. package/dist/cjs/createResponderEvent.native.js +129 -132
  12. package/dist/cjs/createResponderEvent.native.js.map +1 -1
  13. package/dist/cjs/index.cjs +10 -11
  14. package/dist/cjs/index.native.cjs +21 -0
  15. package/dist/cjs/index.native.js +10 -10
  16. package/dist/cjs/index.native.js.map +1 -1
  17. package/dist/cjs/types.cjs +40 -41
  18. package/dist/cjs/types.native.cjs +79 -0
  19. package/dist/cjs/types.native.js +40 -40
  20. package/dist/cjs/types.native.js.map +1 -1
  21. package/dist/cjs/useResponderEvents.cjs +60 -85
  22. package/dist/cjs/useResponderEvents.native.cjs +87 -0
  23. package/dist/cjs/useResponderEvents.native.js +62 -86
  24. package/dist/cjs/useResponderEvents.native.js.map +1 -1
  25. package/dist/cjs/utils.cjs +123 -135
  26. package/dist/cjs/utils.native.cjs +160 -0
  27. package/dist/cjs/utils.native.js +124 -135
  28. package/dist/cjs/utils.native.js.map +1 -1
  29. package/dist/esm/ResponderSystem.mjs +291 -326
  30. package/dist/esm/ResponderSystem.mjs.map +1 -1
  31. package/dist/esm/ResponderSystem.native.js +291 -326
  32. package/dist/esm/ResponderSystem.native.js.map +1 -1
  33. package/dist/esm/ResponderTouchHistoryStore.mjs +123 -131
  34. package/dist/esm/ResponderTouchHistoryStore.mjs.map +1 -1
  35. package/dist/esm/ResponderTouchHistoryStore.native.js +163 -172
  36. package/dist/esm/ResponderTouchHistoryStore.native.js.map +1 -1
  37. package/dist/esm/createResponderEvent.mjs +115 -114
  38. package/dist/esm/createResponderEvent.mjs.map +1 -1
  39. package/dist/esm/createResponderEvent.native.js +116 -115
  40. package/dist/esm/createResponderEvent.native.js.map +1 -1
  41. package/dist/esm/index.js +1 -2
  42. package/dist/esm/index.mjs +1 -2
  43. package/dist/esm/index.native.js +1 -2
  44. package/dist/esm/types.mjs +7 -6
  45. package/dist/esm/types.mjs.map +1 -1
  46. package/dist/esm/types.native.js +7 -6
  47. package/dist/esm/types.native.js.map +1 -1
  48. package/dist/esm/useResponderEvents.mjs +45 -61
  49. package/dist/esm/useResponderEvents.mjs.map +1 -1
  50. package/dist/esm/useResponderEvents.native.js +47 -63
  51. package/dist/esm/useResponderEvents.native.js.map +1 -1
  52. package/dist/esm/utils.mjs +101 -111
  53. package/dist/esm/utils.mjs.map +1 -1
  54. package/dist/esm/utils.native.js +102 -112
  55. package/dist/esm/utils.native.js.map +1 -1
  56. package/package.json +2 -2
  57. package/types/ResponderTouchHistoryStore.d.ts.map +1 -1
  58. package/types/utils.d.ts.map +1 -1
  59. package/dist/esm/index.js.map +0 -1
  60. package/dist/esm/index.mjs.map +0 -1
  61. package/dist/esm/index.native.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["createResponderEvent","ResponderTouchHistoryStore","isCancelish","isEndish","isMoveish","isScroll","isSelectionChange","isStartish","canUseDOM","getLowestCommonAncestor","getResponderPaths","hasTargetTouches","hasValidSelection","isPrimaryPointerDown","setResponderId","emptyObject","startRegistration","bubbles","moveRegistration","scrollRegistration","shouldSetResponderEvents","touchstart","mousedown","touchmove","mousemove","scroll","emptyResponder","id","idPath","node","responderListenersMap","Map","isEmulatingMouseEvents","trackedTouchCount","currentResponder","responderTouchHistoryStore","changeCurrentResponder","responder","getResponderConfig","config","get","eventListener","domEvent","eventType","type","eventTarget","target","isStartEvent","isMoveEvent","isEndEvent","isScrollEvent","isSelectionChangeEvent","responderEvent","touches","length","recordTouchTrack","nativeEvent","eventPaths","wasNegotiated","wantsResponder","currentResponderIdPath","eventIdPath","lowestCommonAncestor","indexOfLowestCommonAncestor","indexOf","index","slice","nodePath","findWantsResponder","attemptTransfer","onResponderStart","onResponderMove","onResponderEnd","onResponderRelease","onResponderTerminate","onResponderTerminationRequest","cancelable","currentTarget","dispatchConfig","registrationName","isTerminateEvent","window","contains","relatedTarget","isReleaseEvent","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","isTamaguiResponderActive","Symbol","attachListeners","addEventListener","forEach","document","addNode","set","removeNode","terminateResponder","has","delete","event","getResponderNode"],"sources":["../../src/ResponderSystem.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ResponderSystem.native.js","names":[],"sources":["esm/ResponderSystem.native.js"],"sourcesContent":["import { createResponderEvent } from \"./createResponderEvent\";\nimport { ResponderTouchHistoryStore } from \"./ResponderTouchHistoryStore\";\nimport { isCancelish, isEndish, isMoveish, isScroll, isSelectionChange, isStartish } from \"./types\";\nimport { canUseDOM } from \"./utils\";\nimport { getLowestCommonAncestor, getResponderPaths, hasTargetTouches, hasValidSelection, isPrimaryPointerDown, setResponderId } from \"./utils\";\nvar emptyObject = {};\nvar startRegistration = [\n \"onStartShouldSetResponderCapture\",\n \"onStartShouldSetResponder\",\n {\n bubbles: true\n }\n];\nvar moveRegistration = [\n \"onMoveShouldSetResponderCapture\",\n \"onMoveShouldSetResponder\",\n {\n bubbles: true\n }\n];\nvar scrollRegistration = [\n \"onScrollShouldSetResponderCapture\",\n \"onScrollShouldSetResponder\",\n {\n bubbles: false\n }\n];\nvar shouldSetResponderEvents = {\n touchstart: startRegistration,\n mousedown: startRegistration,\n touchmove: moveRegistration,\n mousemove: moveRegistration,\n scroll: scrollRegistration\n};\nvar emptyResponder = {\n id: null,\n idPath: null,\n node: null\n};\nvar responderListenersMap = /* @__PURE__ */ new Map();\nvar isEmulatingMouseEvents = false;\nvar trackedTouchCount = 0;\nvar currentResponder = {\n id: null,\n node: null,\n idPath: null\n};\nvar responderTouchHistoryStore = new ResponderTouchHistoryStore();\nfunction changeCurrentResponder(responder) {\n currentResponder = responder;\n}\nfunction getResponderConfig(id) {\n var config = responderListenersMap.get(id);\n return config != null ? config : emptyObject;\n}\nfunction eventListener(domEvent) {\n var eventType = domEvent.type;\n var eventTarget = domEvent.target;\n if (eventType === \"touchstart\") {\n isEmulatingMouseEvents = true;\n }\n if (eventType === \"touchmove\" || trackedTouchCount > 1) {\n isEmulatingMouseEvents = false;\n }\n if (\n // Ignore browser emulated mouse events\n eventType === \"mousedown\" && isEmulatingMouseEvents || eventType === \"mousemove\" && isEmulatingMouseEvents || // Ignore mousemove if a mousedown didn't occur first\n eventType === \"mousemove\" && trackedTouchCount < 1\n ) {\n return;\n }\n if (isEmulatingMouseEvents && eventType === \"mouseup\") {\n if (trackedTouchCount === 0) {\n isEmulatingMouseEvents = false;\n }\n return;\n }\n var isStartEvent = isStartish(eventType) && isPrimaryPointerDown(domEvent);\n var isMoveEvent = isMoveish(eventType);\n var isEndEvent = isEndish(eventType);\n var isScrollEvent = isScroll(eventType);\n var isSelectionChangeEvent = isSelectionChange(eventType);\n var responderEvent = createResponderEvent(domEvent, responderTouchHistoryStore);\n if (isStartEvent || isMoveEvent || isEndEvent) {\n if (domEvent.touches) {\n trackedTouchCount = domEvent.touches.length;\n } else {\n if (isStartEvent) {\n trackedTouchCount = 1;\n } else if (isEndEvent) {\n trackedTouchCount = 0;\n }\n }\n responderTouchHistoryStore.recordTouchTrack(eventType, responderEvent.nativeEvent);\n }\n var eventPaths = getResponderPaths(domEvent);\n var wasNegotiated = false;\n var wantsResponder;\n if (isStartEvent || isMoveEvent || isScrollEvent && trackedTouchCount > 0) {\n var currentResponderIdPath = currentResponder.idPath;\n var eventIdPath = eventPaths.idPath;\n if (currentResponderIdPath != null && eventIdPath != null) {\n var lowestCommonAncestor = getLowestCommonAncestor(currentResponderIdPath, eventIdPath);\n if (lowestCommonAncestor != null) {\n var indexOfLowestCommonAncestor = eventIdPath.indexOf(lowestCommonAncestor);\n var index = indexOfLowestCommonAncestor + (lowestCommonAncestor === currentResponder.id ? 1 : 0);\n eventPaths = {\n idPath: eventIdPath.slice(index),\n nodePath: eventPaths.nodePath.slice(index)\n };\n } else {\n eventPaths = null;\n }\n }\n if (eventPaths != null) {\n wantsResponder = findWantsResponder(eventPaths, domEvent, responderEvent);\n if (wantsResponder != null) {\n attemptTransfer(responderEvent, wantsResponder);\n wasNegotiated = true;\n }\n }\n }\n if (currentResponder.id != null && currentResponder.node != null) {\n var { id, node } = currentResponder;\n var { onResponderStart, onResponderMove, onResponderEnd, onResponderRelease, onResponderTerminate, onResponderTerminationRequest } = getResponderConfig(id);\n responderEvent.bubbles = false;\n responderEvent.cancelable = false;\n responderEvent.currentTarget = node;\n if (isStartEvent) {\n if (onResponderStart != null) {\n responderEvent.dispatchConfig.registrationName = \"onResponderStart\";\n onResponderStart(responderEvent);\n }\n } else if (isMoveEvent) {\n if (onResponderMove != null) {\n responderEvent.dispatchConfig.registrationName = \"onResponderMove\";\n onResponderMove(responderEvent);\n }\n } else {\n var isTerminateEvent = isCancelish(eventType) || // native context menu\n eventType === \"contextmenu\" || // window blur\n eventType === \"blur\" && eventTarget === window || // responder (or ancestors) blur\n eventType === \"blur\" && eventTarget.contains(node) && domEvent.relatedTarget !== node || // native scroll without using a pointer\n isScrollEvent && trackedTouchCount === 0 || // native scroll on node that is parent of the responder (allow siblings to scroll)\n isScrollEvent && eventTarget.contains(node) && eventTarget !== node || // native select/selectionchange on node\n isSelectionChangeEvent && hasValidSelection(domEvent);\n var isReleaseEvent = isEndEvent && !isTerminateEvent && !hasTargetTouches(node, domEvent.touches);\n if (isEndEvent) {\n if (onResponderEnd != null) {\n responderEvent.dispatchConfig.registrationName = \"onResponderEnd\";\n onResponderEnd(responderEvent);\n }\n }\n if (isReleaseEvent) {\n if (onResponderRelease != null) {\n responderEvent.dispatchConfig.registrationName = \"onResponderRelease\";\n onResponderRelease(responderEvent);\n }\n changeCurrentResponder(emptyResponder);\n }\n if (isTerminateEvent) {\n var shouldTerminate = true;\n if (eventType === \"contextmenu\" || eventType === \"scroll\" || eventType === \"selectionchange\") {\n if (wasNegotiated) {\n shouldTerminate = false;\n } else if (onResponderTerminationRequest != null) {\n responderEvent.dispatchConfig.registrationName = \"onResponderTerminationRequest\";\n if (onResponderTerminationRequest(responderEvent) === false) {\n shouldTerminate = false;\n }\n }\n }\n if (shouldTerminate) {\n if (onResponderTerminate != null) {\n responderEvent.dispatchConfig.registrationName = \"onResponderTerminate\";\n onResponderTerminate(responderEvent);\n }\n changeCurrentResponder(emptyResponder);\n isEmulatingMouseEvents = false;\n trackedTouchCount = 0;\n }\n }\n }\n }\n}\nfunction findWantsResponder(eventPaths, domEvent, responderEvent) {\n var shouldSetCallbacks = shouldSetResponderEvents[domEvent.type];\n if (shouldSetCallbacks != null) {\n var { idPath, nodePath } = eventPaths;\n var shouldSetCallbackCaptureName = shouldSetCallbacks[0];\n var shouldSetCallbackBubbleName = shouldSetCallbacks[1];\n var { bubbles } = shouldSetCallbacks[2];\n var check = function(id3, node3, callbackName) {\n var config = getResponderConfig(id3);\n var shouldSetCallback = config[callbackName];\n if (shouldSetCallback != null) {\n responderEvent.currentTarget = node3;\n if (shouldSetCallback(responderEvent) === true) {\n var prunedIdPath = idPath.slice(idPath.indexOf(id3));\n return {\n id: id3,\n node: node3,\n idPath: prunedIdPath\n };\n }\n }\n };\n for (var i = idPath.length - 1; i >= 0; i--) {\n var id = idPath[i];\n var node = nodePath[i];\n var result = check(id, node, shouldSetCallbackCaptureName);\n if (result != null) {\n return result;\n }\n if (responderEvent.isPropagationStopped() === true) {\n return;\n }\n }\n if (bubbles) {\n for (var i1 = 0; i1 < idPath.length; i1++) {\n var id1 = idPath[i1];\n var node1 = nodePath[i1];\n var result1 = check(id1, node1, shouldSetCallbackBubbleName);\n if (result1 != null) {\n return result1;\n }\n if (responderEvent.isPropagationStopped() === true) {\n return;\n }\n }\n } else {\n var id2 = idPath[0];\n var node2 = nodePath[0];\n var target = domEvent.target;\n if (target === node2) {\n return check(id2, node2, shouldSetCallbackBubbleName);\n }\n }\n }\n}\nfunction attemptTransfer(responderEvent, wantsResponder) {\n var { id: currentId, node: currentNode } = currentResponder;\n var { id, node } = wantsResponder;\n var { onResponderGrant, onResponderReject } = getResponderConfig(id);\n responderEvent.bubbles = false;\n responderEvent.cancelable = false;\n responderEvent.currentTarget = node;\n if (currentId == null) {\n if (onResponderGrant != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = \"onResponderGrant\";\n onResponderGrant(responderEvent);\n }\n changeCurrentResponder(wantsResponder);\n } else {\n var { onResponderTerminate, onResponderTerminationRequest } = getResponderConfig(currentId);\n var allowTransfer = true;\n if (onResponderTerminationRequest != null) {\n responderEvent.currentTarget = currentNode;\n responderEvent.dispatchConfig.registrationName = \"onResponderTerminationRequest\";\n if (onResponderTerminationRequest(responderEvent) === false) {\n allowTransfer = false;\n }\n }\n if (allowTransfer) {\n if (onResponderTerminate != null) {\n responderEvent.currentTarget = currentNode;\n responderEvent.dispatchConfig.registrationName = \"onResponderTerminate\";\n onResponderTerminate(responderEvent);\n }\n if (onResponderGrant != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = \"onResponderGrant\";\n onResponderGrant(responderEvent);\n }\n changeCurrentResponder(wantsResponder);\n } else {\n if (onResponderReject != null) {\n responderEvent.currentTarget = node;\n responderEvent.dispatchConfig.registrationName = \"onResponderReject\";\n onResponderReject(responderEvent);\n }\n }\n }\n}\nvar documentEventsCapturePhase = [\n \"blur\",\n \"scroll\"\n];\nvar documentEventsBubblePhase = [\n // mouse\n \"mousedown\",\n \"mousemove\",\n \"mouseup\",\n \"dragstart\",\n // touch\n \"touchstart\",\n \"touchmove\",\n \"touchend\",\n \"touchcancel\",\n // other\n \"contextmenu\",\n \"select\",\n \"selectionchange\"\n];\nvar isTamaguiResponderActive = /* @__PURE__ */ Symbol();\nfunction attachListeners() {\n if (canUseDOM && !window[isTamaguiResponderActive]) {\n window.addEventListener(\"blur\", eventListener);\n documentEventsBubblePhase.forEach(function(eventType) {\n document.addEventListener(eventType, eventListener);\n });\n documentEventsCapturePhase.forEach(function(eventType) {\n document.addEventListener(eventType, eventListener, true);\n });\n window[isTamaguiResponderActive] = true;\n }\n}\nfunction addNode(id, node, config) {\n setResponderId(node, id);\n responderListenersMap.set(id, config);\n}\nfunction removeNode(id) {\n if (currentResponder.id === id) {\n terminateResponder();\n }\n if (responderListenersMap.has(id)) {\n responderListenersMap.delete(id);\n }\n}\nfunction terminateResponder() {\n var { id, node } = currentResponder;\n if (id != null && node != null) {\n var { onResponderTerminate } = getResponderConfig(id);\n if (onResponderTerminate != null) {\n var event = createResponderEvent({}, responderTouchHistoryStore);\n event.currentTarget = node;\n onResponderTerminate(event);\n }\n changeCurrentResponder(emptyResponder);\n }\n isEmulatingMouseEvents = false;\n trackedTouchCount = 0;\n}\nfunction getResponderNode() {\n return currentResponder.node;\n}\nexport {\n addNode,\n attachListeners,\n getResponderNode,\n removeNode,\n terminateResponder\n};\n//# sourceMappingURL=ResponderSystem.js.map\n"],"mappings":"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"}
@@ -1,154 +1,146 @@
1
1
  import { isEndish, isMoveish, isStartish } from "./types.mjs";
2
- class ResponderTouchHistoryStore {
3
- _touchHistory = {
4
- touchBank: [],
5
- //Array<TouchRecord>
6
- numberActiveTouches: 0,
7
- // If there is only one active touch, we remember its location. This prevents
8
- // us having to loop through all of the touches all the time in the most
9
- // common case.
10
- indexOfSingleActiveTouch: -1,
11
- mostRecentTimeStamp: 0
12
- };
13
- recordTouchTrack(topLevelType, nativeEvent) {
14
- const touchHistory = this._touchHistory;
15
- if (isMoveish(topLevelType)) {
16
- nativeEvent.changedTouches.forEach(touch => recordTouchMove(touch, touchHistory));
17
- } else if (isStartish(topLevelType)) {
18
- nativeEvent.changedTouches.forEach(touch => recordTouchStart(touch, touchHistory));
19
- touchHistory.numberActiveTouches = nativeEvent.touches.length;
20
- if (touchHistory.numberActiveTouches === 1) {
21
- touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier;
22
- }
23
- } else if (isEndish(topLevelType)) {
24
- nativeEvent.changedTouches.forEach(touch => recordTouchEnd(touch, touchHistory));
25
- touchHistory.numberActiveTouches = nativeEvent.touches.length;
26
- if (touchHistory.numberActiveTouches === 1) {
27
- const {
28
- touchBank
29
- } = touchHistory;
30
- for (let i = 0; i < touchBank.length; i++) {
31
- const touchTrackToCheck = touchBank[i];
32
- if (touchTrackToCheck?.touchActive) {
33
- touchHistory.indexOfSingleActiveTouch = i;
34
- break;
35
- }
36
- }
37
- if (process.env.NODE_ENV === "development") {
38
- const activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch];
39
- if (!activeRecord?.touchActive) {
40
- console.error("Cannot find single active touch.");
41
- }
42
- }
43
- }
44
- }
45
- }
46
- get touchHistory() {
47
- return this._touchHistory;
48
- }
49
- }
2
+
3
+ var ResponderTouchHistoryStore = class {
4
+ _touchHistory = {
5
+ touchBank: [],
6
+ numberActiveTouches: 0,
7
+ indexOfSingleActiveTouch: -1,
8
+ mostRecentTimeStamp: 0
9
+ };
10
+ recordTouchTrack(topLevelType, nativeEvent) {
11
+ const touchHistory = this._touchHistory;
12
+ if (isMoveish(topLevelType)) {
13
+ nativeEvent.changedTouches.forEach((touch) => recordTouchMove(touch, touchHistory));
14
+ } else if (isStartish(topLevelType)) {
15
+ nativeEvent.changedTouches.forEach((touch) => recordTouchStart(touch, touchHistory));
16
+ touchHistory.numberActiveTouches = nativeEvent.touches.length;
17
+ if (touchHistory.numberActiveTouches === 1) {
18
+ touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier;
19
+ }
20
+ } else if (isEndish(topLevelType)) {
21
+ nativeEvent.changedTouches.forEach((touch) => recordTouchEnd(touch, touchHistory));
22
+ touchHistory.numberActiveTouches = nativeEvent.touches.length;
23
+ if (touchHistory.numberActiveTouches === 1) {
24
+ const { touchBank } = touchHistory;
25
+ for (let i = 0; i < touchBank.length; i++) {
26
+ const touchTrackToCheck = touchBank[i];
27
+ if (touchTrackToCheck?.touchActive) {
28
+ touchHistory.indexOfSingleActiveTouch = i;
29
+ break;
30
+ }
31
+ }
32
+ if (process.env.NODE_ENV === "development") {
33
+ const activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch];
34
+ if (!activeRecord?.touchActive) {
35
+ console.error("Cannot find single active touch.");
36
+ }
37
+ }
38
+ }
39
+ }
40
+ }
41
+ get touchHistory() {
42
+ return this._touchHistory;
43
+ }
44
+ };
50
45
  const MAX_TOUCH_BANK = 20;
51
46
  function timestampForTouch(touch) {
52
- return touch["timeStamp"] || touch.timestamp;
47
+ return touch["timeStamp"] || touch.timestamp;
53
48
  }
54
49
  function createTouchRecord(touch) {
55
- return {
56
- touchActive: true,
57
- startPageX: touch.pageX,
58
- startPageY: touch.pageY,
59
- startTimeStamp: timestampForTouch(touch),
60
- currentPageX: touch.pageX,
61
- currentPageY: touch.pageY,
62
- currentTimeStamp: timestampForTouch(touch),
63
- previousPageX: touch.pageX,
64
- previousPageY: touch.pageY,
65
- previousTimeStamp: timestampForTouch(touch)
66
- };
50
+ return {
51
+ touchActive: true,
52
+ startPageX: touch.pageX,
53
+ startPageY: touch.pageY,
54
+ startTimeStamp: timestampForTouch(touch),
55
+ currentPageX: touch.pageX,
56
+ currentPageY: touch.pageY,
57
+ currentTimeStamp: timestampForTouch(touch),
58
+ previousPageX: touch.pageX,
59
+ previousPageY: touch.pageY,
60
+ previousTimeStamp: timestampForTouch(touch)
61
+ };
67
62
  }
68
63
  function resetTouchRecord(touchRecord, touch) {
69
- touchRecord.touchActive = true;
70
- touchRecord.startPageX = touch.pageX;
71
- touchRecord.startPageY = touch.pageY;
72
- touchRecord.startTimeStamp = timestampForTouch(touch);
73
- touchRecord.currentPageX = touch.pageX;
74
- touchRecord.currentPageY = touch.pageY;
75
- touchRecord.currentTimeStamp = timestampForTouch(touch);
76
- touchRecord.previousPageX = touch.pageX;
77
- touchRecord.previousPageY = touch.pageY;
78
- touchRecord.previousTimeStamp = timestampForTouch(touch);
64
+ touchRecord.touchActive = true;
65
+ touchRecord.startPageX = touch.pageX;
66
+ touchRecord.startPageY = touch.pageY;
67
+ touchRecord.startTimeStamp = timestampForTouch(touch);
68
+ touchRecord.currentPageX = touch.pageX;
69
+ touchRecord.currentPageY = touch.pageY;
70
+ touchRecord.currentTimeStamp = timestampForTouch(touch);
71
+ touchRecord.previousPageX = touch.pageX;
72
+ touchRecord.previousPageY = touch.pageY;
73
+ touchRecord.previousTimeStamp = timestampForTouch(touch);
79
74
  }
80
- function getTouchIdentifier({
81
- identifier
82
- }) {
83
- if (identifier == null) {
84
- console.error("Touch object is missing identifier.");
85
- }
86
- if (process.env.NODE_ENV === "development") {
87
- if (identifier > MAX_TOUCH_BANK) {
88
- 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);
89
- }
90
- }
91
- return identifier;
75
+ function getTouchIdentifier({ identifier }) {
76
+ if (identifier == null) {
77
+ console.error("Touch object is missing identifier.");
78
+ }
79
+ if (process.env.NODE_ENV === "development") {
80
+ if (identifier > MAX_TOUCH_BANK) {
81
+ 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);
82
+ }
83
+ }
84
+ return identifier;
92
85
  }
93
86
  function recordTouchStart(touch, touchHistory) {
94
- const identifier = getTouchIdentifier(touch);
95
- const touchRecord = touchHistory.touchBank[identifier];
96
- if (touchRecord) {
97
- resetTouchRecord(touchRecord, touch);
98
- } else {
99
- touchHistory.touchBank[identifier] = createTouchRecord(touch);
100
- }
101
- touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
87
+ const identifier = getTouchIdentifier(touch);
88
+ const touchRecord = touchHistory.touchBank[identifier];
89
+ if (touchRecord) {
90
+ resetTouchRecord(touchRecord, touch);
91
+ } else {
92
+ touchHistory.touchBank[identifier] = createTouchRecord(touch);
93
+ }
94
+ touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
102
95
  }
103
96
  function recordTouchMove(touch, touchHistory) {
104
- const touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];
105
- if (touchRecord) {
106
- touchRecord.touchActive = true;
107
- touchRecord.previousPageX = touchRecord.currentPageX;
108
- touchRecord.previousPageY = touchRecord.currentPageY;
109
- touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;
110
- touchRecord.currentPageX = touch.pageX;
111
- touchRecord.currentPageY = touch.pageY;
112
- touchRecord.currentTimeStamp = timestampForTouch(touch);
113
- touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
114
- } else {
115
- console.warn("Cannot record touch move without a touch start.\n", `Touch Move: ${printTouch(touch)}
97
+ const touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];
98
+ if (touchRecord) {
99
+ touchRecord.touchActive = true;
100
+ touchRecord.previousPageX = touchRecord.currentPageX;
101
+ touchRecord.previousPageY = touchRecord.currentPageY;
102
+ touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;
103
+ touchRecord.currentPageX = touch.pageX;
104
+ touchRecord.currentPageY = touch.pageY;
105
+ touchRecord.currentTimeStamp = timestampForTouch(touch);
106
+ touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
107
+ } else {
108
+ console.warn("Cannot record touch move without a touch start.\n", `Touch Move: ${printTouch(touch)}
116
109
  `, `Touch Bank: ${printTouchBank(touchHistory)}`);
117
- }
110
+ }
118
111
  }
119
112
  function recordTouchEnd(touch, touchHistory) {
120
- const touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];
121
- if (touchRecord) {
122
- touchRecord.touchActive = false;
123
- touchRecord.previousPageX = touchRecord.currentPageX;
124
- touchRecord.previousPageY = touchRecord.currentPageY;
125
- touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;
126
- touchRecord.currentPageX = touch.pageX;
127
- touchRecord.currentPageY = touch.pageY;
128
- touchRecord.currentTimeStamp = timestampForTouch(touch);
129
- touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
130
- } else {
131
- console.warn("Cannot record touch end without a touch start.\n", `Touch End: ${printTouch(touch)}
113
+ const touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];
114
+ if (touchRecord) {
115
+ touchRecord.touchActive = false;
116
+ touchRecord.previousPageX = touchRecord.currentPageX;
117
+ touchRecord.previousPageY = touchRecord.currentPageY;
118
+ touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;
119
+ touchRecord.currentPageX = touch.pageX;
120
+ touchRecord.currentPageY = touch.pageY;
121
+ touchRecord.currentTimeStamp = timestampForTouch(touch);
122
+ touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
123
+ } else {
124
+ console.warn("Cannot record touch end without a touch start.\n", `Touch End: ${printTouch(touch)}
132
125
  `, `Touch Bank: ${printTouchBank(touchHistory)}`);
133
- }
126
+ }
134
127
  }
135
128
  function printTouch(touch) {
136
- return JSON.stringify({
137
- identifier: touch.identifier,
138
- pageX: touch.pageX,
139
- pageY: touch.pageY,
140
- timestamp: timestampForTouch(touch)
141
- });
129
+ return JSON.stringify({
130
+ identifier: touch.identifier,
131
+ pageX: touch.pageX,
132
+ pageY: touch.pageY,
133
+ timestamp: timestampForTouch(touch)
134
+ });
142
135
  }
143
136
  function printTouchBank(touchHistory) {
144
- const {
145
- touchBank
146
- } = touchHistory;
147
- let printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));
148
- if (touchBank.length > MAX_TOUCH_BANK) {
149
- printed += ` (original size: ${touchBank.length})`;
150
- }
151
- return printed;
137
+ const { touchBank } = touchHistory;
138
+ let printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));
139
+ if (touchBank.length > MAX_TOUCH_BANK) {
140
+ printed += ` (original size: ${touchBank.length})`;
141
+ }
142
+ return printed;
152
143
  }
144
+
153
145
  export { ResponderTouchHistoryStore };
154
146
  //# sourceMappingURL=ResponderTouchHistoryStore.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["isEndish","isMoveish","isStartish","ResponderTouchHistoryStore","_touchHistory","touchBank","numberActiveTouches","indexOfSingleActiveTouch","mostRecentTimeStamp","recordTouchTrack","topLevelType","nativeEvent","touchHistory","changedTouches","forEach","touch","recordTouchMove","recordTouchStart","touches","length","identifier","recordTouchEnd","i","touchTrackToCheck","touchActive","process","env","NODE_ENV","activeRecord","console","error","MAX_TOUCH_BANK","timestampForTouch","timestamp","createTouchRecord","startPageX","pageX","startPageY","pageY","startTimeStamp","currentPageX","currentPageY","currentTimeStamp","previousPageX","previousPageY","previousTimeStamp","resetTouchRecord","touchRecord","getTouchIdentifier","warn","printTouch","printTouchBank","JSON","stringify","printed","slice"],"sources":["../../src/ResponderTouchHistoryStore.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ResponderTouchHistoryStore.js","names":[],"sources":["esm/ResponderTouchHistoryStore.js"],"sourcesContent":["import { isEndish, isMoveish, isStartish } from \"./types\";\nclass ResponderTouchHistoryStore {\n _touchHistory = {\n touchBank: [],\n //Array<TouchRecord>\n numberActiveTouches: 0,\n // If there is only one active touch, we remember its location. This prevents\n // us having to loop through all of the touches all the time in the most\n // common case.\n indexOfSingleActiveTouch: -1,\n mostRecentTimeStamp: 0\n };\n recordTouchTrack(topLevelType, nativeEvent) {\n const touchHistory = this._touchHistory;\n if (isMoveish(topLevelType)) {\n nativeEvent.changedTouches.forEach((touch) => recordTouchMove(touch, touchHistory));\n } else if (isStartish(topLevelType)) {\n nativeEvent.changedTouches.forEach((touch) => recordTouchStart(touch, touchHistory));\n touchHistory.numberActiveTouches = nativeEvent.touches.length;\n if (touchHistory.numberActiveTouches === 1) {\n touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier;\n }\n } else if (isEndish(topLevelType)) {\n nativeEvent.changedTouches.forEach((touch) => recordTouchEnd(touch, touchHistory));\n touchHistory.numberActiveTouches = nativeEvent.touches.length;\n if (touchHistory.numberActiveTouches === 1) {\n const { touchBank } = touchHistory;\n for (let i = 0; i < touchBank.length; i++) {\n const touchTrackToCheck = touchBank[i];\n if (touchTrackToCheck?.touchActive) {\n touchHistory.indexOfSingleActiveTouch = i;\n break;\n }\n }\n if (process.env.NODE_ENV === \"development\") {\n const activeRecord = touchBank[touchHistory.indexOfSingleActiveTouch];\n if (!activeRecord?.touchActive) {\n console.error(\"Cannot find single active touch.\");\n }\n }\n }\n }\n }\n get touchHistory() {\n return this._touchHistory;\n }\n}\nconst MAX_TOUCH_BANK = 20;\nfunction timestampForTouch(touch) {\n return touch[\"timeStamp\"] || touch.timestamp;\n}\nfunction createTouchRecord(touch) {\n return {\n touchActive: true,\n startPageX: touch.pageX,\n startPageY: touch.pageY,\n startTimeStamp: timestampForTouch(touch),\n currentPageX: touch.pageX,\n currentPageY: touch.pageY,\n currentTimeStamp: timestampForTouch(touch),\n previousPageX: touch.pageX,\n previousPageY: touch.pageY,\n previousTimeStamp: timestampForTouch(touch)\n };\n}\nfunction resetTouchRecord(touchRecord, touch) {\n touchRecord.touchActive = true;\n touchRecord.startPageX = touch.pageX;\n touchRecord.startPageY = touch.pageY;\n touchRecord.startTimeStamp = timestampForTouch(touch);\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchRecord.previousPageX = touch.pageX;\n touchRecord.previousPageY = touch.pageY;\n touchRecord.previousTimeStamp = timestampForTouch(touch);\n}\nfunction getTouchIdentifier({ identifier }) {\n if (identifier == null) {\n console.error(\"Touch object is missing identifier.\");\n }\n if (process.env.NODE_ENV === \"development\") {\n if (identifier > MAX_TOUCH_BANK) {\n console.error(\n \"Touch identifier %s is greater than maximum supported %s which causes performance issues backfilling array locations for all of the indices.\",\n identifier,\n MAX_TOUCH_BANK\n );\n }\n }\n return identifier;\n}\nfunction recordTouchStart(touch, touchHistory) {\n const identifier = getTouchIdentifier(touch);\n const touchRecord = touchHistory.touchBank[identifier];\n if (touchRecord) {\n resetTouchRecord(touchRecord, touch);\n } else {\n touchHistory.touchBank[identifier] = createTouchRecord(touch);\n }\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n}\nfunction recordTouchMove(touch, touchHistory) {\n const touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];\n if (touchRecord) {\n touchRecord.touchActive = true;\n touchRecord.previousPageX = touchRecord.currentPageX;\n touchRecord.previousPageY = touchRecord.currentPageY;\n touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n } else {\n console.warn(\n \"Cannot record touch move without a touch start.\\n\",\n `Touch Move: ${printTouch(touch)}\n`,\n `Touch Bank: ${printTouchBank(touchHistory)}`\n );\n }\n}\nfunction recordTouchEnd(touch, touchHistory) {\n const touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];\n if (touchRecord) {\n touchRecord.touchActive = false;\n touchRecord.previousPageX = touchRecord.currentPageX;\n touchRecord.previousPageY = touchRecord.currentPageY;\n touchRecord.previousTimeStamp = touchRecord.currentTimeStamp;\n touchRecord.currentPageX = touch.pageX;\n touchRecord.currentPageY = touch.pageY;\n touchRecord.currentTimeStamp = timestampForTouch(touch);\n touchHistory.mostRecentTimeStamp = timestampForTouch(touch);\n } else {\n console.warn(\n \"Cannot record touch end without a touch start.\\n\",\n `Touch End: ${printTouch(touch)}\n`,\n `Touch Bank: ${printTouchBank(touchHistory)}`\n );\n }\n}\nfunction printTouch(touch) {\n return JSON.stringify({\n identifier: touch.identifier,\n pageX: touch.pageX,\n pageY: touch.pageY,\n timestamp: timestampForTouch(touch)\n });\n}\nfunction printTouchBank(touchHistory) {\n const { touchBank } = touchHistory;\n let printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));\n if (touchBank.length > MAX_TOUCH_BANK) {\n printed += ` (original size: ${touchBank.length})`;\n }\n return printed;\n}\nexport {\n ResponderTouchHistoryStore\n};\n//# sourceMappingURL=ResponderTouchHistoryStore.js.map\n"],"mappings":"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"}