@tamagui/react-native-use-responder-events 1.88.12 → 1.88.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2020 Nate Wienert
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createResponderEvent.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["touches"]
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createResponderEvent.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["touches"]
6
6
  }
@@ -0,0 +1,223 @@
1
+ import createResponderEvent from "./createResponderEvent.mjs";
2
+ import { ResponderTouchHistoryStore } from "./ResponderTouchHistoryStore.mjs";
3
+ import { isCancelish, isEndish, isMoveish, isScroll, isSelectionChange, isStartish } from "./types.mjs";
4
+ import { canUseDOM } from "./utils.mjs";
5
+ import { getLowestCommonAncestor, getResponderPaths, hasTargetTouches, hasValidSelection, isPrimaryPointerDown, setResponderId } from "./utils.mjs";
6
+ const emptyObject = {},
7
+ startRegistration = ["onStartShouldSetResponderCapture", "onStartShouldSetResponder", {
8
+ bubbles: !0
9
+ }],
10
+ moveRegistration = ["onMoveShouldSetResponderCapture", "onMoveShouldSetResponder", {
11
+ bubbles: !0
12
+ }],
13
+ scrollRegistration = ["onScrollShouldSetResponderCapture", "onScrollShouldSetResponder", {
14
+ bubbles: !1
15
+ }],
16
+ shouldSetResponderEvents = {
17
+ touchstart: startRegistration,
18
+ mousedown: startRegistration,
19
+ touchmove: moveRegistration,
20
+ mousemove: moveRegistration,
21
+ scroll: scrollRegistration
22
+ },
23
+ emptyResponder = {
24
+ id: null,
25
+ idPath: null,
26
+ node: null
27
+ },
28
+ responderListenersMap = /* @__PURE__ */new Map();
29
+ let isEmulatingMouseEvents = !1,
30
+ trackedTouchCount = 0,
31
+ currentResponder = {
32
+ id: null,
33
+ node: null,
34
+ idPath: null
35
+ };
36
+ const responderTouchHistoryStore = new ResponderTouchHistoryStore();
37
+ function changeCurrentResponder(responder) {
38
+ currentResponder = responder;
39
+ }
40
+ function getResponderConfig(id) {
41
+ const config = responderListenersMap.get(id);
42
+ return config ?? emptyObject;
43
+ }
44
+ function eventListener(domEvent) {
45
+ const eventType = domEvent.type,
46
+ eventTarget = domEvent.target;
47
+ if (eventType === "touchstart" && (isEmulatingMouseEvents = !0), (eventType === "touchmove" || trackedTouchCount > 1) && (isEmulatingMouseEvents = !1),
48
+ // Ignore browser emulated mouse events
49
+ eventType === "mousedown" && isEmulatingMouseEvents || eventType === "mousemove" && isEmulatingMouseEvents ||
50
+ // Ignore mousemove if a mousedown didn't occur first
51
+ eventType === "mousemove" && trackedTouchCount < 1) return;
52
+ if (isEmulatingMouseEvents && eventType === "mouseup") {
53
+ trackedTouchCount === 0 && (isEmulatingMouseEvents = !1);
54
+ return;
55
+ }
56
+ const isStartEvent = isStartish(eventType) && isPrimaryPointerDown(domEvent),
57
+ isMoveEvent = isMoveish(eventType),
58
+ isEndEvent = isEndish(eventType),
59
+ isScrollEvent = isScroll(eventType),
60
+ isSelectionChangeEvent = isSelectionChange(eventType),
61
+ responderEvent = createResponderEvent(domEvent, responderTouchHistoryStore);
62
+ (isStartEvent || isMoveEvent || isEndEvent) && (domEvent.touches ? trackedTouchCount = domEvent.touches.length : isStartEvent ? trackedTouchCount = 1 : isEndEvent && (trackedTouchCount = 0), responderTouchHistoryStore.recordTouchTrack(eventType, responderEvent.nativeEvent));
63
+ let eventPaths = getResponderPaths(domEvent),
64
+ wasNegotiated = !1,
65
+ wantsResponder;
66
+ if (isStartEvent || isMoveEvent || isScrollEvent && trackedTouchCount > 0) {
67
+ const currentResponderIdPath = currentResponder.idPath,
68
+ eventIdPath = eventPaths.idPath;
69
+ if (currentResponderIdPath != null && eventIdPath != null) {
70
+ const lowestCommonAncestor = getLowestCommonAncestor(currentResponderIdPath, eventIdPath);
71
+ if (lowestCommonAncestor != null) {
72
+ const index = eventIdPath.indexOf(lowestCommonAncestor) + (lowestCommonAncestor === currentResponder.id ? 1 : 0);
73
+ eventPaths = {
74
+ idPath: eventIdPath.slice(index),
75
+ nodePath: eventPaths.nodePath.slice(index)
76
+ };
77
+ } else eventPaths = null;
78
+ }
79
+ eventPaths != null && (wantsResponder = findWantsResponder(eventPaths, domEvent, responderEvent), wantsResponder != null && (attemptTransfer(responderEvent, wantsResponder), wasNegotiated = !0));
80
+ }
81
+ if (currentResponder.id != null && currentResponder.node != null) {
82
+ const {
83
+ id,
84
+ node
85
+ } = currentResponder,
86
+ {
87
+ onResponderStart,
88
+ onResponderMove,
89
+ onResponderEnd,
90
+ onResponderRelease,
91
+ onResponderTerminate,
92
+ onResponderTerminationRequest
93
+ } = getResponderConfig(id);
94
+ if (responderEvent.bubbles = !1, responderEvent.cancelable = !1, responderEvent.currentTarget = node, isStartEvent) onResponderStart != null && (responderEvent.dispatchConfig.registrationName = "onResponderStart", onResponderStart(responderEvent));else if (isMoveEvent) onResponderMove != null && (responderEvent.dispatchConfig.registrationName = "onResponderMove", onResponderMove(responderEvent));else {
95
+ const isTerminateEvent = isCancelish(eventType) ||
96
+ // native context menu
97
+ eventType === "contextmenu" ||
98
+ // window blur
99
+ eventType === "blur" && eventTarget === window ||
100
+ // responder (or ancestors) blur
101
+ eventType === "blur" && eventTarget.contains(node) && domEvent.relatedTarget !== node ||
102
+ // native scroll without using a pointer
103
+ isScrollEvent && trackedTouchCount === 0 ||
104
+ // native scroll on node that is parent of the responder (allow siblings to scroll)
105
+ isScrollEvent && eventTarget.contains(node) && eventTarget !== node ||
106
+ // native select/selectionchange on node
107
+ isSelectionChangeEvent && hasValidSelection(domEvent),
108
+ isReleaseEvent = isEndEvent && !isTerminateEvent && !hasTargetTouches(node, domEvent.touches);
109
+ if (isEndEvent && onResponderEnd != null && (responderEvent.dispatchConfig.registrationName = "onResponderEnd", onResponderEnd(responderEvent)), isReleaseEvent && (onResponderRelease != null && (responderEvent.dispatchConfig.registrationName = "onResponderRelease", onResponderRelease(responderEvent)), changeCurrentResponder(emptyResponder)), isTerminateEvent) {
110
+ let shouldTerminate = !0;
111
+ (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);
112
+ }
113
+ }
114
+ }
115
+ }
116
+ function findWantsResponder(eventPaths, domEvent, responderEvent) {
117
+ const shouldSetCallbacks = shouldSetResponderEvents[domEvent.type];
118
+ if (shouldSetCallbacks != null) {
119
+ const {
120
+ idPath,
121
+ nodePath
122
+ } = eventPaths,
123
+ shouldSetCallbackCaptureName = shouldSetCallbacks[0],
124
+ shouldSetCallbackBubbleName = shouldSetCallbacks[1],
125
+ {
126
+ bubbles
127
+ } = shouldSetCallbacks[2],
128
+ check = (id, node, callbackName) => {
129
+ const shouldSetCallback = getResponderConfig(id)[callbackName];
130
+ if (shouldSetCallback != null && (responderEvent.currentTarget = node, shouldSetCallback(responderEvent) === !0)) {
131
+ const prunedIdPath = idPath.slice(idPath.indexOf(id));
132
+ return {
133
+ id,
134
+ node,
135
+ idPath: prunedIdPath
136
+ };
137
+ }
138
+ };
139
+ for (let i = idPath.length - 1; i >= 0; i--) {
140
+ const id = idPath[i],
141
+ node = nodePath[i],
142
+ result = check(id, node, shouldSetCallbackCaptureName);
143
+ if (result != null) return result;
144
+ if (responderEvent.isPropagationStopped() === !0) return;
145
+ }
146
+ if (bubbles) for (let i = 0; i < idPath.length; i++) {
147
+ const id = idPath[i],
148
+ node = nodePath[i],
149
+ result = check(id, node, shouldSetCallbackBubbleName);
150
+ if (result != null) return result;
151
+ if (responderEvent.isPropagationStopped() === !0) return;
152
+ } else {
153
+ const id = idPath[0],
154
+ node = nodePath[0];
155
+ if (domEvent.target === node) return check(id, node, shouldSetCallbackBubbleName);
156
+ }
157
+ }
158
+ }
159
+ function attemptTransfer(responderEvent, wantsResponder) {
160
+ const {
161
+ id: currentId,
162
+ node: currentNode
163
+ } = currentResponder,
164
+ {
165
+ id,
166
+ node
167
+ } = wantsResponder,
168
+ {
169
+ onResponderGrant,
170
+ onResponderReject
171
+ } = getResponderConfig(id);
172
+ if (responderEvent.bubbles = !1, responderEvent.cancelable = !1, responderEvent.currentTarget = node, currentId == null) onResponderGrant != null && (responderEvent.currentTarget = node, responderEvent.dispatchConfig.registrationName = "onResponderGrant", onResponderGrant(responderEvent)), changeCurrentResponder(wantsResponder);else {
173
+ const {
174
+ onResponderTerminate,
175
+ onResponderTerminationRequest
176
+ } = getResponderConfig(currentId);
177
+ let allowTransfer = !0;
178
+ 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));
179
+ }
180
+ }
181
+ const documentEventsCapturePhase = ["blur", "scroll"],
182
+ documentEventsBubblePhase = [
183
+ // mouse
184
+ "mousedown", "mousemove", "mouseup", "dragstart",
185
+ // touch
186
+ "touchstart", "touchmove", "touchend", "touchcancel",
187
+ // other
188
+ "contextmenu", "select", "selectionchange"],
189
+ isTamaguiResponderActive = Symbol();
190
+ function attachListeners() {
191
+ canUseDOM && !window[isTamaguiResponderActive] && (window.addEventListener("blur", eventListener), documentEventsBubblePhase.forEach(eventType => {
192
+ document.addEventListener(eventType, eventListener);
193
+ }), documentEventsCapturePhase.forEach(eventType => {
194
+ document.addEventListener(eventType, eventListener, !0);
195
+ }), window[isTamaguiResponderActive] = !0);
196
+ }
197
+ function addNode(id, node, config) {
198
+ setResponderId(node, id), responderListenersMap.set(id, config);
199
+ }
200
+ function removeNode(id) {
201
+ currentResponder.id === id && terminateResponder(), responderListenersMap.has(id) && responderListenersMap.delete(id);
202
+ }
203
+ function terminateResponder() {
204
+ const {
205
+ id,
206
+ node
207
+ } = currentResponder;
208
+ if (id != null && node != null) {
209
+ const {
210
+ onResponderTerminate
211
+ } = getResponderConfig(id);
212
+ if (onResponderTerminate != null) {
213
+ const event = createResponderEvent({}, responderTouchHistoryStore);
214
+ event.currentTarget = node, onResponderTerminate(event);
215
+ }
216
+ changeCurrentResponder(emptyResponder);
217
+ }
218
+ isEmulatingMouseEvents = !1, trackedTouchCount = 0;
219
+ }
220
+ function getResponderNode() {
221
+ return currentResponder.node;
222
+ }
223
+ export { addNode, attachListeners, getResponderNode, removeNode, terminateResponder };
@@ -0,0 +1,88 @@
1
+ import { isEndish, isMoveish, isStartish } from "./types.mjs";
2
+ const MAX_TOUCH_BANK = 20;
3
+ function timestampForTouch(touch) {
4
+ return touch.timeStamp || touch.timestamp;
5
+ }
6
+ function createTouchRecord(touch) {
7
+ return {
8
+ touchActive: !0,
9
+ startPageX: touch.pageX,
10
+ startPageY: touch.pageY,
11
+ startTimeStamp: timestampForTouch(touch),
12
+ currentPageX: touch.pageX,
13
+ currentPageY: touch.pageY,
14
+ currentTimeStamp: timestampForTouch(touch),
15
+ previousPageX: touch.pageX,
16
+ previousPageY: touch.pageY,
17
+ previousTimeStamp: timestampForTouch(touch)
18
+ };
19
+ }
20
+ function resetTouchRecord(touchRecord, 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);
22
+ }
23
+ function getTouchIdentifier({
24
+ identifier
25
+ }) {
26
+ return identifier == null && console.error("Touch object is missing identifier."), process.env.NODE_ENV === "development" && identifier > MAX_TOUCH_BANK && 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), identifier;
27
+ }
28
+ function recordTouchStart(touch, touchHistory) {
29
+ const identifier = getTouchIdentifier(touch),
30
+ touchRecord = touchHistory.touchBank[identifier];
31
+ touchRecord ? resetTouchRecord(touchRecord, touch) : touchHistory.touchBank[identifier] = createTouchRecord(touch), touchHistory.mostRecentTimeStamp = timestampForTouch(touch);
32
+ }
33
+ function recordTouchMove(touch, touchHistory) {
34
+ const touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];
35
+ 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(`Cannot record touch move without a touch start.
36
+ `, `Touch Move: ${printTouch(touch)}
37
+ `, `Touch Bank: ${printTouchBank(touchHistory)}`);
38
+ }
39
+ function recordTouchEnd(touch, touchHistory) {
40
+ const touchRecord = touchHistory.touchBank[getTouchIdentifier(touch)];
41
+ 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(`Cannot record touch end without a touch start.
42
+ `, `Touch End: ${printTouch(touch)}
43
+ `, `Touch Bank: ${printTouchBank(touchHistory)}`);
44
+ }
45
+ function printTouch(touch) {
46
+ return JSON.stringify({
47
+ identifier: touch.identifier,
48
+ pageX: touch.pageX,
49
+ pageY: touch.pageY,
50
+ timestamp: timestampForTouch(touch)
51
+ });
52
+ }
53
+ function printTouchBank(touchHistory) {
54
+ const {
55
+ touchBank
56
+ } = touchHistory;
57
+ let printed = JSON.stringify(touchBank.slice(0, MAX_TOUCH_BANK));
58
+ return touchBank.length > MAX_TOUCH_BANK && (printed += ` (original size: ${touchBank.length})`), printed;
59
+ }
60
+ class ResponderTouchHistoryStore {
61
+ _touchHistory = {
62
+ touchBank: [],
63
+ //Array<TouchRecord>
64
+ numberActiveTouches: 0,
65
+ // If there is only one active touch, we remember its location. This prevents
66
+ // us having to loop through all of the touches all the time in the most
67
+ // common case.
68
+ indexOfSingleActiveTouch: -1,
69
+ mostRecentTimeStamp: 0
70
+ };
71
+ recordTouchTrack(topLevelType, nativeEvent) {
72
+ const touchHistory = this._touchHistory;
73
+ if (isMoveish(topLevelType)) nativeEvent.changedTouches.forEach(touch => recordTouchMove(touch, touchHistory));else if (isStartish(topLevelType)) nativeEvent.changedTouches.forEach(touch => recordTouchStart(touch, touchHistory)), touchHistory.numberActiveTouches = nativeEvent.touches.length, touchHistory.numberActiveTouches === 1 && (touchHistory.indexOfSingleActiveTouch = nativeEvent.touches[0].identifier);else if (isEndish(topLevelType) && (nativeEvent.changedTouches.forEach(touch => recordTouchEnd(touch, touchHistory)), touchHistory.numberActiveTouches = nativeEvent.touches.length, touchHistory.numberActiveTouches === 1)) {
74
+ const {
75
+ touchBank
76
+ } = touchHistory;
77
+ for (let i = 0; i < touchBank.length; i++) if (touchBank[i]?.touchActive) {
78
+ touchHistory.indexOfSingleActiveTouch = i;
79
+ break;
80
+ }
81
+ process.env.NODE_ENV === "development" && (touchBank[touchHistory.indexOfSingleActiveTouch]?.touchActive || console.error("Cannot find single active touch."));
82
+ }
83
+ }
84
+ get touchHistory() {
85
+ return this._touchHistory;
86
+ }
87
+ }
88
+ export { ResponderTouchHistoryStore };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createResponderEvent.ts"],
4
- "mappings": "AAOA,SAAS,6BAA6B;AA2BtC,MAAM,gBAAgB,MAAM;AAAC,GACvB,cAAc,CAAC,GACf,aAAa,CAAC;AAOpB,SAAS,oBAAoB,YAAY;AACvC,SAAO,aAAa,KAAK,aAAa,KAAK;AAC7C;AAMe,SAAR,qBACL,UACA,4BACgB;AAChB,MAAI,MACA,wBAAwB,IACxB,gBACA;AAEJ,QAAM,yBAAyB,SAAS,gBAClC,eAAe,SAAS,MAExB,UAAU,SAAS,YAAY,IAC/B,WAAW,SAAS,aAAa,IACjC,QAAQ,yBAAyB,CAAC,EAAE,SAAS,GAC7C,aAAa,oBAAoB,yBAAyB,CAAC,EAAE,cAAc,CAAC,GAC5E,UAAU,yBAAyB,CAAC,EAAE,WAAW,SAAS,SAC1D,UAAU,yBAAyB,CAAC,EAAE,WAAW,SAAS,SAC1D,QAAQ,yBAAyB,CAAC,EAAE,SAAS,SAAS,OACtD,QAAQ,yBAAyB,CAAC,EAAE,SAAS,SAAS,OACtD,iBACJ,OAAO,SAAS,kBAAmB,aAC/B,SAAS,eAAe,KAAK,QAAQ,IACrC,eACA,YAAY,SAAS;AAE3B,WAAS,iBAAiBA,UAAS;AACjC,WAAO,MAAM,UAAU,MAAM,KAAKA,QAAO,EAAE,IAAI,CAAC,WACvC;AAAA,MACL,OAAO,MAAM;AAAA,MACb,YAAY,oBAAoB,MAAM,UAAU;AAAA,MAChD,IAAI,YAAY;AACd,eAAO,UAAU,MAAM,OAAO;AAAA,MAChC;AAAA,MACA,IAAI,YAAY;AACd,eAAO,UAAU,MAAM,OAAO;AAAA,MAChC;AAAA,MACA,OAAO,MAAM;AAAA,MACb,OAAO,MAAM;AAAA,MACb,QAAQ,MAAM;AAAA,MACd;AAAA,IACF,EACD;AAAA,EACH;AAEA,MAAI,0BAA0B;AAC5B,qBAAiB,iBAAiB,sBAAsB,GACxD,UAAU,iBAAiB,SAAS,OAAO;AAAA,OACtC;AACL,UAAM,kBAAkB;AAAA,MACtB;AAAA,QACE;AAAA,QACA;AAAA,QACA,IAAI,YAAY;AACd,iBAAO,UAAU,OAAO;AAAA,QAC1B;AAAA,QACA,IAAI,YAAY;AACd,iBAAO,UAAU,OAAO;AAAA,QAC1B;AAAA,QACA;AAAA,QACA;AAAA,QACA,QAAQ,SAAS;AAAA,QACjB;AAAA,MACF;AAAA,IACF;AACA,qBAAiB,iBACjB,UACE,iBAAiB,aAAa,iBAAiB,cAC3C,aACA;AAAA,EACR;AAEA,QAAM,iBAAiB;AAAA,IACrB,SAAS;AAAA,IACT,YAAY;AAAA;AAAA,IAEZ,eAAe;AAAA,IACf,kBAAkB,SAAS;AAAA,IAC3B,gBAAgB;AAAA,IAChB,YAAY,SAAS;AAAA,IACrB,qBAAqB;AACnB,aAAO,SAAS;AAAA,IAClB;AAAA,IACA,uBAAuB;AACrB,aAAO;AAAA,IACT;AAAA,IACA,WAAW,SAAS;AAAA,IACpB,aAAa;AAAA,MACX,QAAQ;AAAA,MACR,SAAS;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,IAAI,YAAY;AACd,eAAO,UAAU,OAAO;AAAA,MAC1B;AAAA,MACA,IAAI,YAAY;AACd,eAAO,UAAU,OAAO;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQ,SAAS;AAAA,MACjB;AAAA,MACA;AAAA,MACA,MAAM;AAAA,IACR;AAAA,IACA,SAAS;AAAA,IACT;AAAA,IACA,kBAAkB;AAChB,8BAAwB;AAAA,IAC1B;AAAA,IACA,QAAQ,SAAS;AAAA,IACjB,WAAW;AAAA,IACX,cAAc,2BAA2B;AAAA,EAC3C;AAKA,WAAS,UAAU,GAAG;AAEpB,QADA,OAAO,QAAQ,sBAAsB,eAAe,aAAa,GAC7D;AACF,aAAO,IAAI,KAAK;AAAA,EAEpB;AACA,WAAS,UAAU,GAAG;AAEpB,QADA,OAAO,QAAQ,sBAAsB,eAAe,aAAa,GAC7D;AACF,aAAO,IAAI,KAAK;AAAA,EAEpB;AAEA,SAAO;AACT;",
4
+ "mappings": "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",
5
5
  "names": ["touches"]
6
6
  }
@@ -0,0 +1,111 @@
1
+ import { getBoundingClientRect } from "./utils.mjs";
2
+ const emptyFunction = () => {},
3
+ emptyObject = {},
4
+ emptyArray = [];
5
+ function normalizeIdentifier(identifier) {
6
+ return identifier > 20 ? identifier % 20 : identifier;
7
+ }
8
+ function createResponderEvent(domEvent, responderTouchHistoryStore) {
9
+ let rect,
10
+ propagationWasStopped = !1,
11
+ changedTouches,
12
+ touches;
13
+ const domEventChangedTouches = domEvent.changedTouches,
14
+ domEventType = domEvent.type,
15
+ metaKey = domEvent.metaKey === !0,
16
+ shiftKey = domEvent.shiftKey === !0,
17
+ force = domEventChangedTouches?.[0].force || 0,
18
+ identifier = normalizeIdentifier(domEventChangedTouches?.[0].identifier || 0),
19
+ clientX = domEventChangedTouches?.[0].clientX || domEvent.clientX,
20
+ clientY = domEventChangedTouches?.[0].clientY || domEvent.clientY,
21
+ pageX = domEventChangedTouches?.[0].pageX || domEvent.pageX,
22
+ pageY = domEventChangedTouches?.[0].pageY || domEvent.pageY,
23
+ preventDefault = typeof domEvent.preventDefault == "function" ? domEvent.preventDefault.bind(domEvent) : emptyFunction,
24
+ timestamp = domEvent.timeStamp;
25
+ function normalizeTouches(touches2) {
26
+ return Array.prototype.slice.call(touches2).map(touch => ({
27
+ force: touch.force,
28
+ identifier: normalizeIdentifier(touch.identifier),
29
+ get locationX() {
30
+ return locationX(touch.clientX);
31
+ },
32
+ get locationY() {
33
+ return locationY(touch.clientY);
34
+ },
35
+ pageX: touch.pageX,
36
+ pageY: touch.pageY,
37
+ target: touch.target,
38
+ timestamp
39
+ }));
40
+ }
41
+ if (domEventChangedTouches != null) changedTouches = normalizeTouches(domEventChangedTouches), touches = normalizeTouches(domEvent.touches);else {
42
+ const emulatedTouches = [{
43
+ force,
44
+ identifier,
45
+ get locationX() {
46
+ return locationX(clientX);
47
+ },
48
+ get locationY() {
49
+ return locationY(clientY);
50
+ },
51
+ pageX,
52
+ pageY,
53
+ target: domEvent.target,
54
+ timestamp
55
+ }];
56
+ changedTouches = emulatedTouches, touches = domEventType === "mouseup" || domEventType === "dragstart" ? emptyArray : emulatedTouches;
57
+ }
58
+ const responderEvent = {
59
+ bubbles: !0,
60
+ cancelable: !0,
61
+ // `currentTarget` is set before dispatch
62
+ currentTarget: null,
63
+ defaultPrevented: domEvent.defaultPrevented,
64
+ dispatchConfig: emptyObject,
65
+ eventPhase: domEvent.eventPhase,
66
+ isDefaultPrevented() {
67
+ return domEvent.defaultPrevented;
68
+ },
69
+ isPropagationStopped() {
70
+ return propagationWasStopped;
71
+ },
72
+ isTrusted: domEvent.isTrusted,
73
+ nativeEvent: {
74
+ altKey: !1,
75
+ ctrlKey: !1,
76
+ metaKey,
77
+ shiftKey,
78
+ changedTouches,
79
+ force,
80
+ identifier,
81
+ get locationX() {
82
+ return locationX(clientX);
83
+ },
84
+ get locationY() {
85
+ return locationY(clientY);
86
+ },
87
+ pageX,
88
+ pageY,
89
+ target: domEvent.target,
90
+ timestamp,
91
+ touches,
92
+ type: domEventType
93
+ },
94
+ persist: emptyFunction,
95
+ preventDefault,
96
+ stopPropagation() {
97
+ propagationWasStopped = !0;
98
+ },
99
+ target: domEvent.target,
100
+ timeStamp: timestamp,
101
+ touchHistory: responderTouchHistoryStore.touchHistory
102
+ };
103
+ function locationX(x) {
104
+ if (rect = rect || getBoundingClientRect(responderEvent.currentTarget), rect) return x - rect.left;
105
+ }
106
+ function locationY(y) {
107
+ if (rect = rect || getBoundingClientRect(responderEvent.currentTarget), rect) return y - rect.top;
108
+ }
109
+ return responderEvent;
110
+ }
111
+ export { createResponderEvent as default };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createResponderEvent.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["touches"]
6
6
  }
@@ -0,0 +1 @@
1
+ export * from "./useResponderEvents.mjs";
@@ -0,0 +1,33 @@
1
+ const BLUR = "blur",
2
+ CONTEXT_MENU = "contextmenu",
3
+ FOCUS_OUT = "focusout",
4
+ MOUSE_DOWN = "mousedown",
5
+ MOUSE_MOVE = "mousemove",
6
+ MOUSE_UP = "mouseup",
7
+ MOUSE_CANCEL = "dragstart",
8
+ TOUCH_START = "touchstart",
9
+ TOUCH_MOVE = "touchmove",
10
+ TOUCH_END = "touchend",
11
+ TOUCH_CANCEL = "touchcancel",
12
+ SCROLL = "scroll",
13
+ SELECT = "select",
14
+ SELECTION_CHANGE = "selectionchange";
15
+ function isStartish(eventType) {
16
+ return eventType === TOUCH_START || eventType === MOUSE_DOWN;
17
+ }
18
+ function isMoveish(eventType) {
19
+ return eventType === TOUCH_MOVE || eventType === MOUSE_MOVE;
20
+ }
21
+ function isEndish(eventType) {
22
+ return eventType === TOUCH_END || eventType === MOUSE_UP || isCancelish(eventType);
23
+ }
24
+ function isCancelish(eventType) {
25
+ return eventType === TOUCH_CANCEL || eventType === MOUSE_CANCEL;
26
+ }
27
+ function isScroll(eventType) {
28
+ return eventType === SCROLL;
29
+ }
30
+ function isSelectionChange(eventType) {
31
+ return eventType === SELECT || eventType === SELECTION_CHANGE;
32
+ }
33
+ export { BLUR, CONTEXT_MENU, FOCUS_OUT, MOUSE_CANCEL, MOUSE_DOWN, MOUSE_MOVE, MOUSE_UP, SCROLL, SELECT, SELECTION_CHANGE, TOUCH_CANCEL, TOUCH_END, TOUCH_MOVE, TOUCH_START, isCancelish, isEndish, isMoveish, isScroll, isSelectionChange, isStartish };
@@ -0,0 +1,28 @@
1
+ import * as React from "react";
2
+ import * as ResponderSystem from "./ResponderSystem.mjs";
3
+ export * from "./utils.mjs";
4
+ const emptyObject = {};
5
+ function useResponderEvents(hostRef, config = emptyObject) {
6
+ const id = React.useId(),
7
+ isAttachedRef = React.useRef(!1);
8
+ React.useEffect(() => (ResponderSystem.attachListeners(), () => {
9
+ ResponderSystem.removeNode(id);
10
+ }), [id]), React.useEffect(() => {
11
+ const {
12
+ onMoveShouldSetResponder,
13
+ onMoveShouldSetResponderCapture,
14
+ onScrollShouldSetResponder,
15
+ onScrollShouldSetResponderCapture,
16
+ onSelectionChangeShouldSetResponder,
17
+ onSelectionChangeShouldSetResponderCapture,
18
+ onStartShouldSetResponder,
19
+ onStartShouldSetResponderCapture
20
+ } = config,
21
+ requiresResponderSystem = onMoveShouldSetResponder != null || onMoveShouldSetResponderCapture != null || onScrollShouldSetResponder != null || onScrollShouldSetResponderCapture != null || onSelectionChangeShouldSetResponder != null || onSelectionChangeShouldSetResponderCapture != null || onStartShouldSetResponder != null || onStartShouldSetResponderCapture != null,
22
+ node = hostRef.current;
23
+ requiresResponderSystem ? (ResponderSystem.addNode(id, node, config), isAttachedRef.current = !0) : isAttachedRef.current && (ResponderSystem.removeNode(id), isAttachedRef.current = !1);
24
+ }, [config, hostRef, id]), process.env.NODE_ENV === "development" && (React.useDebugValue({
25
+ isResponder: hostRef.current === ResponderSystem.getResponderNode()
26
+ }), React.useDebugValue(config));
27
+ }
28
+ export { useResponderEvents };
@@ -0,0 +1,94 @@
1
+ const keyName = "__reactResponderId",
2
+ canUseDOM = !!(typeof window < "u" && window.document && window.document.createElement),
3
+ getBoundingClientRect = node => {
4
+ if (node && node.nodeType === 1 && node.getBoundingClientRect) return node.getBoundingClientRect();
5
+ };
6
+ function getEventPath(domEvent) {
7
+ if (domEvent.type === "selectionchange") {
8
+ const target = window.getSelection()?.anchorNode;
9
+ return composedPathFallback(target);
10
+ }
11
+ return domEvent.composedPath != null ? domEvent.composedPath() : composedPathFallback(domEvent.target);
12
+ }
13
+ function composedPathFallback(target) {
14
+ const path = [];
15
+ for (; target != null && target !== document.body;) path.push(target), target = target.parentNode;
16
+ return path;
17
+ }
18
+ function getResponderId(node) {
19
+ return node != null ? node[keyName] : null;
20
+ }
21
+ function setResponderId(node, id) {
22
+ node != null && (node[keyName] = id);
23
+ }
24
+ function getResponderPaths(domEvent) {
25
+ const idPath = [],
26
+ nodePath = [],
27
+ eventPath = getEventPath(domEvent);
28
+ for (let i = 0; i < eventPath.length; i++) {
29
+ const node = eventPath[i],
30
+ id = getResponderId(node);
31
+ id != null && (idPath.push(id), nodePath.push(node));
32
+ }
33
+ return {
34
+ idPath,
35
+ nodePath
36
+ };
37
+ }
38
+ function getLowestCommonAncestor(pathA, pathB) {
39
+ let pathALength = pathA.length,
40
+ pathBLength = pathB.length;
41
+ if (
42
+ // If either path is empty
43
+ pathALength === 0 || pathBLength === 0 ||
44
+ // If the last elements aren't the same there can't be a common ancestor
45
+ // that is connected to the responder system
46
+ pathA[pathALength - 1] !== pathB[pathBLength - 1]) return null;
47
+ let itemA = pathA[0],
48
+ indexA = 0,
49
+ itemB = pathB[0],
50
+ indexB = 0;
51
+ pathALength - pathBLength > 0 && (indexA = pathALength - pathBLength, itemA = pathA[indexA], pathALength = pathBLength), pathBLength - pathALength > 0 && (indexB = pathBLength - pathALength, itemB = pathB[indexB], pathBLength = pathALength);
52
+ let depth = pathALength;
53
+ for (; depth--;) {
54
+ if (itemA === itemB) return itemA;
55
+ itemA = pathA[indexA++], itemB = pathB[indexB++];
56
+ }
57
+ return null;
58
+ }
59
+ function hasTargetTouches(target, touches) {
60
+ if (!touches || touches.length === 0) return !1;
61
+ for (let i = 0; i < touches.length; i++) {
62
+ const node = touches[i].target;
63
+ if (node != null && target.contains(node)) return !0;
64
+ }
65
+ return !1;
66
+ }
67
+ function hasValidSelection(domEvent) {
68
+ return domEvent.type === "selectionchange" ? isSelectionValid() : domEvent.type === "select";
69
+ }
70
+ function isPrimaryPointerDown(domEvent) {
71
+ const {
72
+ altKey,
73
+ button,
74
+ buttons,
75
+ ctrlKey,
76
+ type
77
+ } = domEvent,
78
+ isTouch = type === "touchstart" || type === "touchmove",
79
+ isPrimaryMouseDown = type === "mousedown" && (button === 0 || buttons === 1),
80
+ isPrimaryMouseMove = type === "mousemove" && buttons === 1,
81
+ noModifiers = altKey === !1 && ctrlKey === !1;
82
+ return !!(isTouch || isPrimaryMouseDown && noModifiers || isPrimaryMouseMove && noModifiers);
83
+ }
84
+ function isSelectionValid() {
85
+ const selection = window.getSelection();
86
+ if (!selection) return !1;
87
+ const string = selection.toString(),
88
+ anchorNode = selection.anchorNode,
89
+ focusNode = selection.focusNode,
90
+ isTextNode = anchorNode && anchorNode.nodeType === window.Node.TEXT_NODE || focusNode && focusNode.nodeType === window.Node.TEXT_NODE;
91
+ return string.length >= 1 && string !== `
92
+ ` && !!isTextNode;
93
+ }
94
+ export { canUseDOM, getBoundingClientRect, getLowestCommonAncestor, getResponderPaths, hasTargetTouches, hasValidSelection, isPrimaryPointerDown, isSelectionValid, setResponderId };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/react-native-use-responder-events",
3
- "version": "1.88.12",
3
+ "version": "1.88.14",
4
4
  "types": "./types/index.d.ts",
5
5
  "main": "dist/cjs",
6
6
  "module": "dist/esm",
@@ -30,7 +30,7 @@
30
30
  "react": "*"
31
31
  },
32
32
  "devDependencies": {
33
- "@tamagui/build": "1.88.12",
33
+ "@tamagui/build": "1.88.14",
34
34
  "react": "^18.2.0"
35
35
  },
36
36
  "publishConfig": {
@@ -4,7 +4,10 @@
4
4
  * LICENSE file in the root directory of this source tree.
5
5
  */
6
6
 
7
- import { ResponderTouchHistoryStore, TouchHistory } from './ResponderTouchHistoryStore'
7
+ import type {
8
+ ResponderTouchHistoryStore,
9
+ TouchHistory,
10
+ } from './ResponderTouchHistoryStore'
8
11
  import { getBoundingClientRect } from './utils'
9
12
 
10
13
  export type ResponderEvent = {
@@ -3,7 +3,7 @@
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
5
5
  */
6
- import { ResponderTouchHistoryStore, TouchHistory } from './ResponderTouchHistoryStore';
6
+ import type { ResponderTouchHistoryStore, TouchHistory } from './ResponderTouchHistoryStore';
7
7
  export type ResponderEvent = {
8
8
  bubbles: boolean;
9
9
  cancelable: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"createResponderEvent.d.ts","sourceRoot":"","sources":["../src/createResponderEvent.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAGvF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,aAAa,EAAE,GAAG,CAAA;IAClB,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAA;IAChC,cAAc,EAAE;QACd,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB,uBAAuB,CAAC,EAAE;YACxB,OAAO,EAAE,MAAM,CAAA;YACf,QAAQ,EAAE,MAAM,CAAA;SACjB,CAAA;KACF,CAAA;IACD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,kBAAkB,EAAE,MAAM,OAAO,CAAA;IACjC,oBAAoB,EAAE,MAAM,OAAO,CAAA;IACnC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAA;IACzB,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,WAAW,EAAE,UAAU,CAAA;IACvB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,MAAM,EAAE,GAAG,GAAG,IAAI,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,YAAY,CAAA;CAC3B,CAAA;AAeD;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAC1C,QAAQ,EAAE,GAAG,EACb,0BAA0B,EAAE,0BAA0B,GACrD,cAAc,CAoIhB"}
1
+ {"version":3,"file":"createResponderEvent.d.ts","sourceRoot":"","sources":["../src/createResponderEvent.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,0BAA0B,EAC1B,YAAY,EACb,MAAM,8BAA8B,CAAA;AAGrC,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,OAAO,CAAA;IACnB,aAAa,EAAE,GAAG,CAAA;IAClB,gBAAgB,EAAE,OAAO,GAAG,IAAI,CAAA;IAChC,cAAc,EAAE;QACd,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB,uBAAuB,CAAC,EAAE;YACxB,OAAO,EAAE,MAAM,CAAA;YACf,QAAQ,EAAE,MAAM,CAAA;SACjB,CAAA;KACF,CAAA;IACD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,kBAAkB,EAAE,MAAM,OAAO,CAAA;IACjC,oBAAoB,EAAE,MAAM,OAAO,CAAA;IACnC,SAAS,EAAE,OAAO,GAAG,IAAI,CAAA;IACzB,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,WAAW,EAAE,UAAU,CAAA;IACvB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,MAAM,EAAE,GAAG,GAAG,IAAI,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,YAAY,CAAA;CAC3B,CAAA;AAeD;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAC1C,QAAQ,EAAE,GAAG,EACb,0BAA0B,EAAE,0BAA0B,GACrD,cAAc,CAoIhB"}