@hanzogui/react-native-use-responder-events 8.3.0 → 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.
- package/dist/cjs/ResponderSystem.js +444 -0
- package/dist/cjs/ResponderSystem.js.map +1 -0
- package/dist/cjs/ResponderTouchHistoryStore.js +175 -0
- package/dist/cjs/ResponderTouchHistoryStore.js.map +1 -0
- package/dist/cjs/createResponderEvent.js +151 -0
- package/dist/cjs/createResponderEvent.js.map +1 -0
- package/dist/cjs/index.js +5 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/types.js +47 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/useResponderEvents.js +81 -0
- package/dist/cjs/useResponderEvents.js.map +1 -0
- package/dist/cjs/utils.js +182 -0
- package/dist/cjs/utils.js.map +1 -0
- package/dist/esm/ResponderSystem.js +437 -0
- package/dist/esm/ResponderSystem.js.map +1 -0
- package/dist/esm/ResponderTouchHistoryStore.js +171 -0
- package/dist/esm/ResponderTouchHistoryStore.js.map +1 -0
- package/dist/esm/createResponderEvent.js +148 -0
- package/dist/esm/createResponderEvent.js.map +1 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types.js +38 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/useResponderEvents.js +76 -0
- package/dist/esm/useResponderEvents.js.map +1 -0
- package/dist/esm/utils.js +171 -0
- package/dist/esm/utils.js.map +1 -0
- package/package.json +13 -13
- package/src/ResponderSystem.ts +6 -6
- package/src/ResponderTouchHistoryStore.ts +2 -2
- package/src/createResponderEvent.ts +2 -2
- package/src/index.ts +1 -1
- package/src/useResponderEvents.ts +2 -2
- package/types/ResponderSystem.d.ts +1 -1
- package/types/ResponderSystem.d.ts.map +1 -1
- package/types/ResponderTouchHistoryStore.d.ts +1 -1
- package/types/ResponderTouchHistoryStore.d.ts.map +1 -1
- package/types/createResponderEvent.d.ts +1 -1
- package/types/createResponderEvent.d.ts.map +1 -1
- package/types/index.d.ts +1 -1
- package/types/index.d.ts.map +1 -1
- package/types/useResponderEvents.d.ts +2 -2
- package/types/useResponderEvents.d.ts.map +1 -1
- package/types/utils.d.ts.map +1 -1
- package/dist/cjs/ResponderSystem.cjs +0 -392
- package/dist/cjs/ResponderSystem.native.js +0 -395
- package/dist/cjs/ResponderSystem.native.js.map +0 -1
- package/dist/cjs/ResponderTouchHistoryStore.cjs +0 -179
- package/dist/cjs/ResponderTouchHistoryStore.native.js +0 -232
- package/dist/cjs/ResponderTouchHistoryStore.native.js.map +0 -1
- package/dist/cjs/createResponderEvent.cjs +0 -149
- package/dist/cjs/createResponderEvent.native.js +0 -152
- package/dist/cjs/createResponderEvent.native.js.map +0 -1
- package/dist/cjs/index.cjs +0 -20
- package/dist/cjs/index.native.js +0 -23
- package/dist/cjs/index.native.js.map +0 -1
- package/dist/cjs/types.cjs +0 -78
- package/dist/cjs/types.native.js +0 -81
- package/dist/cjs/types.native.js.map +0 -1
- package/dist/cjs/useResponderEvents.cjs +0 -107
- package/dist/cjs/useResponderEvents.native.js +0 -113
- package/dist/cjs/useResponderEvents.native.js.map +0 -1
- package/dist/cjs/utils.cjs +0 -169
- package/dist/cjs/utils.native.js +0 -173
- package/dist/cjs/utils.native.js.map +0 -1
- package/dist/esm/ResponderSystem.mjs +0 -363
- package/dist/esm/ResponderSystem.mjs.map +0 -1
- package/dist/esm/ResponderSystem.native.js +0 -363
- package/dist/esm/ResponderSystem.native.js.map +0 -1
- package/dist/esm/ResponderTouchHistoryStore.mjs +0 -154
- package/dist/esm/ResponderTouchHistoryStore.mjs.map +0 -1
- package/dist/esm/ResponderTouchHistoryStore.native.js +0 -204
- package/dist/esm/ResponderTouchHistoryStore.native.js.map +0 -1
- package/dist/esm/createResponderEvent.mjs +0 -124
- package/dist/esm/createResponderEvent.mjs.map +0 -1
- package/dist/esm/createResponderEvent.native.js +0 -124
- package/dist/esm/createResponderEvent.native.js.map +0 -1
- package/dist/esm/index.mjs +0 -2
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/index.native.js +0 -2
- package/dist/esm/index.native.js.map +0 -1
- package/dist/esm/types.mjs +0 -34
- package/dist/esm/types.mjs.map +0 -1
- package/dist/esm/types.native.js +0 -34
- package/dist/esm/types.native.js.map +0 -1
- package/dist/esm/useResponderEvents.mjs +0 -69
- package/dist/esm/useResponderEvents.mjs.map +0 -1
- package/dist/esm/useResponderEvents.native.js +0 -72
- package/dist/esm/useResponderEvents.native.js.map +0 -1
- package/dist/esm/utils.mjs +0 -136
- package/dist/esm/utils.mjs.map +0 -1
- package/dist/esm/utils.native.js +0 -137
- package/dist/esm/utils.native.js.map +0 -1
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Nicolas Gallagher
|
|
3
|
+
* This source code is licensed under the MIT license found in the
|
|
4
|
+
* LICENSE file in the root directory of this source tree.
|
|
5
|
+
*/
|
|
6
|
+
import { getBoundingClientRect } from './utils.js';
|
|
7
|
+
const emptyFunction = () => { };
|
|
8
|
+
const emptyObject = {};
|
|
9
|
+
const emptyArray = [];
|
|
10
|
+
/**
|
|
11
|
+
* Safari produces very large identifiers that would cause the `touchBank` array
|
|
12
|
+
* length to be so large as to crash the browser, if not normalized like this.
|
|
13
|
+
* In the future the `touchBank` should use an object/map instead.
|
|
14
|
+
*/
|
|
15
|
+
function normalizeIdentifier(identifier) {
|
|
16
|
+
return identifier > 20 ? identifier % 20 : identifier;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Converts a native DOM event to a ResponderEvent.
|
|
20
|
+
* Mouse events are transformed into fake touch events.
|
|
21
|
+
*/
|
|
22
|
+
export function createResponderEvent(domEvent, responderTouchHistoryStore) {
|
|
23
|
+
let rect;
|
|
24
|
+
let propagationWasStopped = false;
|
|
25
|
+
let changedTouches;
|
|
26
|
+
let touches;
|
|
27
|
+
const domEventChangedTouches = domEvent.changedTouches;
|
|
28
|
+
const domEventType = domEvent.type;
|
|
29
|
+
const metaKey = domEvent.metaKey === true;
|
|
30
|
+
const shiftKey = domEvent.shiftKey === true;
|
|
31
|
+
const force = domEventChangedTouches?.[0].force || 0;
|
|
32
|
+
const identifier = normalizeIdentifier(domEventChangedTouches?.[0].identifier || 0);
|
|
33
|
+
const clientX = domEventChangedTouches?.[0].clientX || domEvent.clientX;
|
|
34
|
+
const clientY = domEventChangedTouches?.[0].clientY || domEvent.clientY;
|
|
35
|
+
const pageX = domEventChangedTouches?.[0].pageX || domEvent.pageX;
|
|
36
|
+
const pageY = domEventChangedTouches?.[0].pageY || domEvent.pageY;
|
|
37
|
+
const preventDefault = typeof domEvent.preventDefault === 'function'
|
|
38
|
+
? domEvent.preventDefault.bind(domEvent)
|
|
39
|
+
: emptyFunction;
|
|
40
|
+
const timestamp = domEvent.timeStamp;
|
|
41
|
+
function normalizeTouches(touches) {
|
|
42
|
+
return Array.prototype.slice.call(touches).map((touch) => {
|
|
43
|
+
return {
|
|
44
|
+
force: touch.force,
|
|
45
|
+
identifier: normalizeIdentifier(touch.identifier),
|
|
46
|
+
get locationX() {
|
|
47
|
+
return locationX(touch.clientX);
|
|
48
|
+
},
|
|
49
|
+
get locationY() {
|
|
50
|
+
return locationY(touch.clientY);
|
|
51
|
+
},
|
|
52
|
+
pageX: touch.pageX,
|
|
53
|
+
pageY: touch.pageY,
|
|
54
|
+
target: touch.target,
|
|
55
|
+
timestamp,
|
|
56
|
+
};
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
if (domEventChangedTouches != null) {
|
|
60
|
+
changedTouches = normalizeTouches(domEventChangedTouches);
|
|
61
|
+
touches = normalizeTouches(domEvent.touches);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
const emulatedTouches = [
|
|
65
|
+
{
|
|
66
|
+
force,
|
|
67
|
+
identifier,
|
|
68
|
+
get locationX() {
|
|
69
|
+
return locationX(clientX);
|
|
70
|
+
},
|
|
71
|
+
get locationY() {
|
|
72
|
+
return locationY(clientY);
|
|
73
|
+
},
|
|
74
|
+
pageX,
|
|
75
|
+
pageY,
|
|
76
|
+
target: domEvent.target,
|
|
77
|
+
timestamp,
|
|
78
|
+
},
|
|
79
|
+
];
|
|
80
|
+
changedTouches = emulatedTouches;
|
|
81
|
+
touches =
|
|
82
|
+
domEventType === 'mouseup' || domEventType === 'dragstart'
|
|
83
|
+
? emptyArray
|
|
84
|
+
: emulatedTouches;
|
|
85
|
+
}
|
|
86
|
+
const responderEvent = {
|
|
87
|
+
bubbles: true,
|
|
88
|
+
cancelable: true,
|
|
89
|
+
// `currentTarget` is set before dispatch
|
|
90
|
+
currentTarget: null,
|
|
91
|
+
defaultPrevented: domEvent.defaultPrevented,
|
|
92
|
+
dispatchConfig: emptyObject,
|
|
93
|
+
eventPhase: domEvent.eventPhase,
|
|
94
|
+
isDefaultPrevented() {
|
|
95
|
+
return domEvent.defaultPrevented;
|
|
96
|
+
},
|
|
97
|
+
isPropagationStopped() {
|
|
98
|
+
return propagationWasStopped;
|
|
99
|
+
},
|
|
100
|
+
isTrusted: domEvent.isTrusted,
|
|
101
|
+
nativeEvent: {
|
|
102
|
+
altKey: false,
|
|
103
|
+
ctrlKey: false,
|
|
104
|
+
metaKey,
|
|
105
|
+
shiftKey,
|
|
106
|
+
changedTouches,
|
|
107
|
+
force,
|
|
108
|
+
identifier,
|
|
109
|
+
get locationX() {
|
|
110
|
+
return locationX(clientX);
|
|
111
|
+
},
|
|
112
|
+
get locationY() {
|
|
113
|
+
return locationY(clientY);
|
|
114
|
+
},
|
|
115
|
+
pageX,
|
|
116
|
+
pageY,
|
|
117
|
+
target: domEvent.target,
|
|
118
|
+
timestamp,
|
|
119
|
+
touches,
|
|
120
|
+
type: domEventType,
|
|
121
|
+
},
|
|
122
|
+
persist: emptyFunction,
|
|
123
|
+
preventDefault,
|
|
124
|
+
stopPropagation() {
|
|
125
|
+
propagationWasStopped = true;
|
|
126
|
+
},
|
|
127
|
+
target: domEvent.target,
|
|
128
|
+
timeStamp: timestamp,
|
|
129
|
+
touchHistory: responderTouchHistoryStore.touchHistory,
|
|
130
|
+
};
|
|
131
|
+
// Using getters and functions serves two purposes:
|
|
132
|
+
// 1) The value of `currentTarget` is not initially available.
|
|
133
|
+
// 2) Measuring the clientRect may cause layout jank and should only be done on-demand.
|
|
134
|
+
function locationX(x) {
|
|
135
|
+
rect = rect || getBoundingClientRect(responderEvent.currentTarget);
|
|
136
|
+
if (rect) {
|
|
137
|
+
return x - rect.left;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
function locationY(y) {
|
|
141
|
+
rect = rect || getBoundingClientRect(responderEvent.currentTarget);
|
|
142
|
+
if (rect) {
|
|
143
|
+
return y - rect.top;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
return responderEvent;
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=createResponderEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createResponderEvent.js","sourceRoot":"","sources":["../../src/createResponderEvent.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
export * from './useResponderEvents.js';
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Nicolas Gallagher
|
|
3
|
+
* This source code is licensed under the MIT license found in the
|
|
4
|
+
* LICENSE file in the root directory of this source tree.
|
|
5
|
+
*/
|
|
6
|
+
export const BLUR = 'blur';
|
|
7
|
+
export const CONTEXT_MENU = 'contextmenu';
|
|
8
|
+
export const FOCUS_OUT = 'focusout';
|
|
9
|
+
export const MOUSE_DOWN = 'mousedown';
|
|
10
|
+
export const MOUSE_MOVE = 'mousemove';
|
|
11
|
+
export const MOUSE_UP = 'mouseup';
|
|
12
|
+
export const MOUSE_CANCEL = 'dragstart';
|
|
13
|
+
export const TOUCH_START = 'touchstart';
|
|
14
|
+
export const TOUCH_MOVE = 'touchmove';
|
|
15
|
+
export const TOUCH_END = 'touchend';
|
|
16
|
+
export const TOUCH_CANCEL = 'touchcancel';
|
|
17
|
+
export const SCROLL = 'scroll';
|
|
18
|
+
export const SELECT = 'select';
|
|
19
|
+
export const SELECTION_CHANGE = 'selectionchange';
|
|
20
|
+
export function isStartish(eventType) {
|
|
21
|
+
return eventType === TOUCH_START || eventType === MOUSE_DOWN;
|
|
22
|
+
}
|
|
23
|
+
export function isMoveish(eventType) {
|
|
24
|
+
return eventType === TOUCH_MOVE || eventType === MOUSE_MOVE;
|
|
25
|
+
}
|
|
26
|
+
export function isEndish(eventType) {
|
|
27
|
+
return eventType === TOUCH_END || eventType === MOUSE_UP || isCancelish(eventType);
|
|
28
|
+
}
|
|
29
|
+
export function isCancelish(eventType) {
|
|
30
|
+
return eventType === TOUCH_CANCEL || eventType === MOUSE_CANCEL;
|
|
31
|
+
}
|
|
32
|
+
export function isScroll(eventType) {
|
|
33
|
+
return eventType === SCROLL;
|
|
34
|
+
}
|
|
35
|
+
export function isSelectionChange(eventType) {
|
|
36
|
+
return eventType === SELECT || eventType === SELECTION_CHANGE;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoCH,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAA;AAC1B,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAA;AACzC,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAA;AACnC,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAA;AACrC,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAA;AACrC,MAAM,CAAC,MAAM,QAAQ,GAAG,SAAS,CAAA;AACjC,MAAM,CAAC,MAAM,YAAY,GAAG,WAAW,CAAA;AACvC,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAA;AACvC,MAAM,CAAC,MAAM,UAAU,GAAG,WAAW,CAAA;AACrC,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAA;AACnC,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAA;AACzC,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAA;AAC9B,MAAM,CAAC,MAAM,MAAM,GAAG,QAAQ,CAAA;AAC9B,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAAA;AAEjD,MAAM,UAAU,UAAU,CAAC,SAAkB;IAC3C,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,UAAU,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,SAAkB;IAC1C,OAAO,SAAS,KAAK,UAAU,IAAI,SAAS,KAAK,UAAU,CAAA;AAC7D,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,SAAkB;IACzC,OAAO,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,QAAQ,IAAI,WAAW,CAAC,SAAS,CAAC,CAAA;AACpF,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,SAAkB;IAC5C,OAAO,SAAS,KAAK,YAAY,IAAI,SAAS,KAAK,YAAY,CAAA;AACjE,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,SAAkB;IACzC,OAAO,SAAS,KAAK,MAAM,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAkB;IAClD,OAAO,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,gBAAgB,CAAA;AAC/D,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Nicolas Gallagher
|
|
3
|
+
* This source code is licensed under the MIT license found in the
|
|
4
|
+
* LICENSE file in the root directory of this source tree.
|
|
5
|
+
*/
|
|
6
|
+
import * as React from 'react';
|
|
7
|
+
import * as ResponderSystem from './ResponderSystem.js';
|
|
8
|
+
export * from './utils.js';
|
|
9
|
+
const emptyObject = {};
|
|
10
|
+
const Attached = new WeakMap();
|
|
11
|
+
const Ids = new WeakMap();
|
|
12
|
+
export function useResponderEvents(hostRef, configIn = emptyObject) {
|
|
13
|
+
const config = getResponderConfigIfDefined(configIn);
|
|
14
|
+
// hanzogui + rnw compat
|
|
15
|
+
const node = hostRef?.current?.host || hostRef?.current;
|
|
16
|
+
// Register and unregister with the Responder System as necessary
|
|
17
|
+
React.useEffect(() => {
|
|
18
|
+
if (config === emptyObject)
|
|
19
|
+
return;
|
|
20
|
+
ResponderSystem.attachListeners();
|
|
21
|
+
if (!Ids.has(hostRef)) {
|
|
22
|
+
Ids.set(hostRef, `${Math.random()}`);
|
|
23
|
+
}
|
|
24
|
+
const id = Ids.get(hostRef);
|
|
25
|
+
ResponderSystem.addNode(id, node, config);
|
|
26
|
+
Attached.set(hostRef, true);
|
|
27
|
+
return () => {
|
|
28
|
+
ResponderSystem.removeNode(node);
|
|
29
|
+
Attached.set(hostRef, false);
|
|
30
|
+
};
|
|
31
|
+
}, [config, hostRef]);
|
|
32
|
+
if (process.env.NODE_ENV === 'development') {
|
|
33
|
+
React.useDebugValue({
|
|
34
|
+
isResponder: node === ResponderSystem.getResponderNode(),
|
|
35
|
+
});
|
|
36
|
+
React.useDebugValue(config);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export function getResponderConfigIfDefined({ onMoveShouldSetResponder, onMoveShouldSetResponderCapture, onResponderEnd, onResponderGrant, onResponderMove, onResponderReject, onResponderRelease, onResponderStart, onResponderTerminate, onResponderTerminationRequest, onScrollShouldSetResponder, onScrollShouldSetResponderCapture, onSelectionChangeShouldSetResponder, onSelectionChangeShouldSetResponderCapture, onStartShouldSetResponder, onStartShouldSetResponderCapture, }) {
|
|
40
|
+
return onMoveShouldSetResponder ||
|
|
41
|
+
onMoveShouldSetResponderCapture ||
|
|
42
|
+
onResponderEnd ||
|
|
43
|
+
onResponderGrant ||
|
|
44
|
+
onResponderMove ||
|
|
45
|
+
onResponderReject ||
|
|
46
|
+
onResponderRelease ||
|
|
47
|
+
onResponderStart ||
|
|
48
|
+
onResponderTerminate ||
|
|
49
|
+
onResponderTerminationRequest ||
|
|
50
|
+
onScrollShouldSetResponder ||
|
|
51
|
+
onScrollShouldSetResponderCapture ||
|
|
52
|
+
onSelectionChangeShouldSetResponder ||
|
|
53
|
+
onSelectionChangeShouldSetResponderCapture ||
|
|
54
|
+
onStartShouldSetResponder ||
|
|
55
|
+
onStartShouldSetResponderCapture
|
|
56
|
+
? {
|
|
57
|
+
onMoveShouldSetResponder,
|
|
58
|
+
onMoveShouldSetResponderCapture,
|
|
59
|
+
onResponderEnd,
|
|
60
|
+
onResponderGrant,
|
|
61
|
+
onResponderMove,
|
|
62
|
+
onResponderReject,
|
|
63
|
+
onResponderRelease,
|
|
64
|
+
onResponderStart,
|
|
65
|
+
onResponderTerminate,
|
|
66
|
+
onResponderTerminationRequest,
|
|
67
|
+
onScrollShouldSetResponder,
|
|
68
|
+
onScrollShouldSetResponderCapture,
|
|
69
|
+
onSelectionChangeShouldSetResponder,
|
|
70
|
+
onSelectionChangeShouldSetResponderCapture,
|
|
71
|
+
onStartShouldSetResponder,
|
|
72
|
+
onStartShouldSetResponderCapture,
|
|
73
|
+
}
|
|
74
|
+
: emptyObject;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=useResponderEvents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useResponderEvents.js","sourceRoot":"","sources":["../../src/useResponderEvents.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AAEvD,cAAc,YAAY,CAAA;AAE1B,MAAM,WAAW,GAAG,EAAE,CAAA;AAEtB,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAgB,CAAA;AAC5C,MAAM,GAAG,GAAG,IAAI,OAAO,EAAe,CAAA;AAEtC,MAAM,UAAU,kBAAkB,CAChC,OAAY,EACZ,QAAQ,GAAoC,WAAW;IAEvD,MAAM,MAAM,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAA;IACpD,wBAAwB;IACxB,MAAM,IAAI,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,IAAI,OAAO,EAAE,OAAO,CAAA;IAEvD,iEAAiE;IACjE,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,MAAM,KAAK,WAAW;YAAE,OAAM;QAElC,eAAe,CAAC,eAAe,EAAE,CAAA;QAEjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;QACtC,CAAC;QACD,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAE,CAAA;QAE5B,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;QACzC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QAE3B,OAAO,GAAG,EAAE;YACV,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YAChC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAC9B,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAErB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC3C,KAAK,CAAC,aAAa,CAAC;YAClB,WAAW,EAAE,IAAI,KAAK,eAAe,CAAC,gBAAgB,EAAE;SACzD,CAAC,CAAA;QACF,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,EAC1C,wBAAwB,EACxB,+BAA+B,EAC/B,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,6BAA6B,EAC7B,0BAA0B,EAC1B,iCAAiC,EACjC,mCAAmC,EACnC,0CAA0C,EAC1C,yBAAyB,EACzB,gCAAgC,GACA;IAChC,OAAO,wBAAwB;QAC7B,+BAA+B;QAC/B,cAAc;QACd,gBAAgB;QAChB,eAAe;QACf,iBAAiB;QACjB,kBAAkB;QAClB,gBAAgB;QAChB,oBAAoB;QACpB,6BAA6B;QAC7B,0BAA0B;QAC1B,iCAAiC;QACjC,mCAAmC;QACnC,0CAA0C;QAC1C,yBAAyB;QACzB,gCAAgC;QAChC,CAAC,CAAC;YACE,wBAAwB;YACxB,+BAA+B;YAC/B,cAAc;YACd,gBAAgB;YAChB,eAAe;YACf,iBAAiB;YACjB,kBAAkB;YAClB,gBAAgB;YAChB,oBAAoB;YACpB,6BAA6B;YAC7B,0BAA0B;YAC1B,iCAAiC;YACjC,mCAAmC;YACnC,0CAA0C;YAC1C,yBAAyB;YACzB,gCAAgC;SACjC;QACH,CAAC,CAAC,WAAW,CAAA;AACjB,CAAC"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Nicolas Gallagher
|
|
3
|
+
* This source code is licensed under the MIT license found in the
|
|
4
|
+
* LICENSE file in the root directory of this source tree.
|
|
5
|
+
*/
|
|
6
|
+
const keyName = '__reactResponderId';
|
|
7
|
+
export const canUseDOM = !!(typeof window !== 'undefined' &&
|
|
8
|
+
window.document &&
|
|
9
|
+
window.document.createElement);
|
|
10
|
+
export const getBoundingClientRect = (node) => {
|
|
11
|
+
if (!node)
|
|
12
|
+
return;
|
|
13
|
+
if (node.nodeType !== 1)
|
|
14
|
+
return;
|
|
15
|
+
if (node.getBoundingClientRect) {
|
|
16
|
+
return node.getBoundingClientRect();
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
function getEventPath(domEvent) {
|
|
20
|
+
// The 'selectionchange' event always has the 'document' as the target.
|
|
21
|
+
// Use the anchor node as the initial target to reconstruct a path.
|
|
22
|
+
// (We actually only need the first "responder" node in practice.)
|
|
23
|
+
if (domEvent.type === 'selectionchange') {
|
|
24
|
+
const target = window.getSelection()?.anchorNode;
|
|
25
|
+
return composedPathFallback(target);
|
|
26
|
+
}
|
|
27
|
+
const path = domEvent.composedPath != null
|
|
28
|
+
? domEvent.composedPath()
|
|
29
|
+
: composedPathFallback(domEvent.target);
|
|
30
|
+
return path;
|
|
31
|
+
}
|
|
32
|
+
function composedPathFallback(target) {
|
|
33
|
+
const path = [];
|
|
34
|
+
while (target != null && target !== document.body) {
|
|
35
|
+
path.push(target);
|
|
36
|
+
target = target.parentNode;
|
|
37
|
+
}
|
|
38
|
+
return path;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Retrieve the responderId from a host node
|
|
42
|
+
*/
|
|
43
|
+
function getResponderId(node) {
|
|
44
|
+
if (node != null) {
|
|
45
|
+
return node[keyName];
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Store the responderId on a host node
|
|
51
|
+
*/
|
|
52
|
+
export function setResponderId(node, id) {
|
|
53
|
+
if (node != null) {
|
|
54
|
+
node[keyName] = id;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Filter the event path to contain only the nodes attached to the responder system
|
|
59
|
+
*/
|
|
60
|
+
export function getResponderPaths(domEvent) {
|
|
61
|
+
const idPath = [];
|
|
62
|
+
const nodePath = [];
|
|
63
|
+
const eventPath = getEventPath(domEvent);
|
|
64
|
+
for (let i = 0; i < eventPath.length; i++) {
|
|
65
|
+
const node = eventPath[i];
|
|
66
|
+
const id = getResponderId(node);
|
|
67
|
+
if (id != null) {
|
|
68
|
+
idPath.push(id);
|
|
69
|
+
nodePath.push(node);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return { idPath, nodePath };
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Walk the paths and find the first common ancestor
|
|
76
|
+
*/
|
|
77
|
+
export function getLowestCommonAncestor(pathA, pathB) {
|
|
78
|
+
let pathALength = pathA.length;
|
|
79
|
+
let pathBLength = pathB.length;
|
|
80
|
+
if (
|
|
81
|
+
// If either path is empty
|
|
82
|
+
pathALength === 0 ||
|
|
83
|
+
pathBLength === 0 ||
|
|
84
|
+
// If the last elements aren't the same there can't be a common ancestor
|
|
85
|
+
// that is connected to the responder system
|
|
86
|
+
pathA[pathALength - 1] !== pathB[pathBLength - 1]) {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
let itemA = pathA[0];
|
|
90
|
+
let indexA = 0;
|
|
91
|
+
let itemB = pathB[0];
|
|
92
|
+
let indexB = 0;
|
|
93
|
+
// If A is deeper, skip indices that can't match.
|
|
94
|
+
if (pathALength - pathBLength > 0) {
|
|
95
|
+
indexA = pathALength - pathBLength;
|
|
96
|
+
itemA = pathA[indexA];
|
|
97
|
+
pathALength = pathBLength;
|
|
98
|
+
}
|
|
99
|
+
// If B is deeper, skip indices that can't match
|
|
100
|
+
if (pathBLength - pathALength > 0) {
|
|
101
|
+
indexB = pathBLength - pathALength;
|
|
102
|
+
itemB = pathB[indexB];
|
|
103
|
+
pathBLength = pathALength;
|
|
104
|
+
}
|
|
105
|
+
// Walk in lockstep until a match is found
|
|
106
|
+
let depth = pathALength;
|
|
107
|
+
while (depth--) {
|
|
108
|
+
if (itemA === itemB) {
|
|
109
|
+
return itemA;
|
|
110
|
+
}
|
|
111
|
+
itemA = pathA[indexA++];
|
|
112
|
+
itemB = pathB[indexB++];
|
|
113
|
+
}
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Determine whether any of the active touches are within the current responder.
|
|
118
|
+
* This cannot rely on W3C `targetTouches`, as neither IE11 nor Safari implement it.
|
|
119
|
+
*/
|
|
120
|
+
export function hasTargetTouches(target, touches) {
|
|
121
|
+
if (!touches || touches.length === 0) {
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
for (let i = 0; i < touches.length; i++) {
|
|
125
|
+
const node = touches[i].target;
|
|
126
|
+
if (node != null) {
|
|
127
|
+
if (target.contains(node)) {
|
|
128
|
+
return true;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Ignore 'selectionchange' events that don't correspond with a person's intent to
|
|
136
|
+
* select text.
|
|
137
|
+
*/
|
|
138
|
+
export function hasValidSelection(domEvent) {
|
|
139
|
+
if (domEvent.type === 'selectionchange') {
|
|
140
|
+
return isSelectionValid();
|
|
141
|
+
}
|
|
142
|
+
return domEvent.type === 'select';
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Events are only valid if the primary button was used without specific modifier keys.
|
|
146
|
+
*/
|
|
147
|
+
export function isPrimaryPointerDown(domEvent) {
|
|
148
|
+
const { altKey, button, buttons, ctrlKey, type } = domEvent;
|
|
149
|
+
const isTouch = type === 'touchstart' || type === 'touchmove';
|
|
150
|
+
const isPrimaryMouseDown = type === 'mousedown' && (button === 0 || buttons === 1);
|
|
151
|
+
const isPrimaryMouseMove = type === 'mousemove' && buttons === 1;
|
|
152
|
+
const noModifiers = altKey === false && ctrlKey === false;
|
|
153
|
+
if (isTouch ||
|
|
154
|
+
(isPrimaryMouseDown && noModifiers) ||
|
|
155
|
+
(isPrimaryMouseMove && noModifiers)) {
|
|
156
|
+
return true;
|
|
157
|
+
}
|
|
158
|
+
return false;
|
|
159
|
+
}
|
|
160
|
+
export function isSelectionValid() {
|
|
161
|
+
const selection = window.getSelection();
|
|
162
|
+
if (!selection)
|
|
163
|
+
return false;
|
|
164
|
+
const string = selection.toString();
|
|
165
|
+
const anchorNode = selection.anchorNode;
|
|
166
|
+
const focusNode = selection.focusNode;
|
|
167
|
+
const isTextNode = (anchorNode && anchorNode.nodeType === window.Node.TEXT_NODE) ||
|
|
168
|
+
(focusNode && focusNode.nodeType === window.Node.TEXT_NODE);
|
|
169
|
+
return string.length >= 1 && string !== '\n' && !!isTextNode;
|
|
170
|
+
}
|
|
171
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,OAAO,GAAG,oBAAoB,CAAA;AAEpC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC,CACzB,OAAO,MAAM,KAAK,WAAW;IAC7B,MAAM,CAAC,QAAQ;IACf,MAAM,CAAC,QAAQ,CAAC,aAAa,CAC9B,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAAwB,EAAkB,EAAE;IAChF,IAAI,CAAC,IAAI;QAAE,OAAM;IACjB,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC;QAAE,OAAM;IAC/B,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAA;IACrC,CAAC;AACH,CAAC,CAAA;AAED,SAAS,YAAY,CAAC,QAAa;IACjC,uEAAuE;IACvE,mEAAmE;IACnE,kEAAkE;IAClE,IAAI,QAAQ,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,EAAE,EAAE,UAAU,CAAA;QAChD,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAA;IACrC,CAAC;IACD,MAAM,IAAI,GACR,QAAQ,CAAC,YAAY,IAAI,IAAI;QAC3B,CAAC,CAAC,QAAQ,CAAC,YAAY,EAAE;QACzB,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC3C,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAW;IACvC,MAAM,IAAI,GAAU,EAAE,CAAA;IACtB,OAAO,MAAM,IAAI,IAAI,IAAI,MAAM,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACjB,MAAM,GAAG,MAAM,CAAC,UAAU,CAAA;IAC5B,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,IAAS;IAC/B,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAA;IACtB,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAS,EAAE,EAAO;IAC/C,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAA;IACpB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAa;IAI7C,MAAM,MAAM,GAAU,EAAE,CAAA;IACxB,MAAM,QAAQ,GAAU,EAAE,CAAA;IAC1B,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;IAExC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;QACzB,MAAM,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;QAC/B,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACf,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAA;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAiB,EAAE,KAAiB;IAC1E,IAAI,WAAW,GAAG,KAAK,CAAC,MAAM,CAAA;IAC9B,IAAI,WAAW,GAAG,KAAK,CAAC,MAAM,CAAA;IAC9B;IACE,0BAA0B;IAC1B,WAAW,KAAK,CAAC;QACjB,WAAW,KAAK,CAAC;QACjB,wEAAwE;QACxE,4CAA4C;QAC5C,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,EACjD,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACpB,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IACpB,IAAI,MAAM,GAAG,CAAC,CAAA;IAEd,iDAAiD;IACjD,IAAI,WAAW,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,GAAG,WAAW,GAAG,WAAW,CAAA;QAClC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;QACrB,WAAW,GAAG,WAAW,CAAA;IAC3B,CAAC;IAED,gDAAgD;IAChD,IAAI,WAAW,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC;QAClC,MAAM,GAAG,WAAW,GAAG,WAAW,CAAA;QAClC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;QACrB,WAAW,GAAG,WAAW,CAAA;IAC3B,CAAC;IAED,0CAA0C;IAC1C,IAAI,KAAK,GAAG,WAAW,CAAA;IACvB,OAAO,KAAK,EAAE,EAAE,CAAC;QACf,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACpB,OAAO,KAAK,CAAA;QACd,CAAC;QACD,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;QACvB,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;IACzB,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAW,EAAE,OAAY;IACxD,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,KAAK,CAAA;IACd,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;QAC9B,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAa;IAC7C,IAAI,QAAQ,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACxC,OAAO,gBAAgB,EAAE,CAAA;IAC3B,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAA;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAa;IAChD,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAA;IAC3D,MAAM,OAAO,GAAG,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,WAAW,CAAA;IAC7D,MAAM,kBAAkB,GAAG,IAAI,KAAK,WAAW,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAA;IAClF,MAAM,kBAAkB,GAAG,IAAI,KAAK,WAAW,IAAI,OAAO,KAAK,CAAC,CAAA;IAChE,MAAM,WAAW,GAAG,MAAM,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK,CAAA;IAEzD,IACE,OAAO;QACP,CAAC,kBAAkB,IAAI,WAAW,CAAC;QACnC,CAAC,kBAAkB,IAAI,WAAW,CAAC,EACnC,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAA;IACvC,IAAI,CAAC,SAAS;QAAE,OAAO,KAAK,CAAA;IAC5B,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAA;IACnC,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAA;IACvC,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAA;IACrC,MAAM,UAAU,GACd,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;QAC7D,CAAC,SAAS,IAAI,SAAS,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC7D,OAAO,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,CAAA;AAC9D,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hanzogui/react-native-use-responder-events",
|
|
3
|
-
"version": "8.3.
|
|
3
|
+
"version": "8.3.2",
|
|
4
4
|
"files": [
|
|
5
5
|
"src",
|
|
6
6
|
"types",
|
|
@@ -8,36 +8,36 @@
|
|
|
8
8
|
],
|
|
9
9
|
"type": "module",
|
|
10
10
|
"sideEffects": false,
|
|
11
|
-
"main": "dist/cjs",
|
|
12
|
-
"module": "dist/esm",
|
|
11
|
+
"main": "./dist/cjs/index.js",
|
|
12
|
+
"module": "./dist/esm/index.js",
|
|
13
13
|
"types": "./types/index.d.ts",
|
|
14
14
|
"exports": {
|
|
15
15
|
"./package.json": "./package.json",
|
|
16
16
|
".": {
|
|
17
17
|
"types": "./types/index.d.ts",
|
|
18
|
-
"react-native": "./dist/esm/index.
|
|
19
|
-
"browser": "./dist/esm/index.
|
|
20
|
-
"module": "./dist/esm/index.
|
|
21
|
-
"import": "./dist/esm/index.
|
|
22
|
-
"require": "./dist/cjs/index.
|
|
23
|
-
"default": "./dist/esm/index.
|
|
18
|
+
"react-native": "./dist/esm/index.js",
|
|
19
|
+
"browser": "./dist/esm/index.js",
|
|
20
|
+
"module": "./dist/esm/index.js",
|
|
21
|
+
"import": "./dist/esm/index.js",
|
|
22
|
+
"require": "./dist/cjs/index.js",
|
|
23
|
+
"default": "./dist/esm/index.js"
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
26
|
"publishConfig": {
|
|
27
27
|
"access": "public"
|
|
28
28
|
},
|
|
29
29
|
"scripts": {
|
|
30
|
-
"build": "hanzogui-build",
|
|
30
|
+
"build": "hanzogui-build --skip-native",
|
|
31
31
|
"watch": "hanzogui-build --watch",
|
|
32
32
|
"clean": "hanzogui-build clean",
|
|
33
33
|
"clean:build": "hanzogui-build clean:build"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@hanzogui/build": "8.3.
|
|
37
|
-
"react": "
|
|
36
|
+
"@hanzogui/build": "8.3.2",
|
|
37
|
+
"react": "19.2.8"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
|
-
"react": ">=19"
|
|
40
|
+
"react": ">=19.2.8"
|
|
41
41
|
},
|
|
42
42
|
"repository": {
|
|
43
43
|
"type": "git",
|
package/src/ResponderSystem.ts
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* LICENSE file in the root directory of this source tree.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import type { ResponderEvent } from './createResponderEvent'
|
|
8
|
-
import { createResponderEvent } from './createResponderEvent'
|
|
9
|
-
import { ResponderTouchHistoryStore } from './ResponderTouchHistoryStore'
|
|
7
|
+
import type { ResponderEvent } from './createResponderEvent.ts'
|
|
8
|
+
import { createResponderEvent } from './createResponderEvent.ts'
|
|
9
|
+
import { ResponderTouchHistoryStore } from './ResponderTouchHistoryStore.ts'
|
|
10
10
|
import {
|
|
11
11
|
isCancelish,
|
|
12
12
|
isEndish,
|
|
@@ -14,8 +14,8 @@ import {
|
|
|
14
14
|
isScroll,
|
|
15
15
|
isSelectionChange,
|
|
16
16
|
isStartish,
|
|
17
|
-
} from './types'
|
|
18
|
-
import { canUseDOM } from './utils'
|
|
17
|
+
} from './types.ts'
|
|
18
|
+
import { canUseDOM } from './utils.ts'
|
|
19
19
|
import {
|
|
20
20
|
getLowestCommonAncestor,
|
|
21
21
|
getResponderPaths,
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
hasValidSelection,
|
|
24
24
|
isPrimaryPointerDown,
|
|
25
25
|
setResponderId,
|
|
26
|
-
} from './utils'
|
|
26
|
+
} from './utils.ts'
|
|
27
27
|
|
|
28
28
|
/* ------------ TYPES ------------ */
|
|
29
29
|
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import type { Touch, TouchEvent } from './types'
|
|
9
|
-
import { isEndish, isMoveish, isStartish } from './types'
|
|
8
|
+
import type { Touch, TouchEvent } from './types.ts'
|
|
9
|
+
import { isEndish, isMoveish, isStartish } from './types.ts'
|
|
10
10
|
|
|
11
11
|
export class ResponderTouchHistoryStore {
|
|
12
12
|
_touchHistory = {
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
import type {
|
|
8
8
|
ResponderTouchHistoryStore,
|
|
9
9
|
TouchHistory,
|
|
10
|
-
} from './ResponderTouchHistoryStore'
|
|
11
|
-
import { getBoundingClientRect } from './utils'
|
|
10
|
+
} from './ResponderTouchHistoryStore.ts'
|
|
11
|
+
import { getBoundingClientRect } from './utils.ts'
|
|
12
12
|
|
|
13
13
|
export type ResponderEvent = {
|
|
14
14
|
bubbles: boolean
|
package/src/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './useResponderEvents'
|
|
1
|
+
export * from './useResponderEvents.ts'
|
|
@@ -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 type { ResponderEvent } from './createResponderEvent';
|
|
6
|
+
import type { ResponderEvent } from './createResponderEvent.ts';
|
|
7
7
|
type ResponderId = string;
|
|
8
8
|
export type ResponderConfig = {
|
|
9
9
|
onResponderEnd?: ((e: ResponderEvent) => void) | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResponderSystem.d.ts","sourceRoot":"","sources":["../src/ResponderSystem.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ResponderSystem.d.ts","sourceRoot":"","sources":["../src/ResponderSystem.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAuB/D,KAAK,WAAW,GAAG,MAAM,CAAA;AAgBzB,MAAM,MAAM,eAAe,GAAG;IAE5B,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,IAAI,CAAA;IACrD,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,GAAG,OAAO,CAAC,GAAG,IAAI,CAAA;IACjE,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,IAAI,CAAA;IACtD,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,IAAI,CAAA;IACzD,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,IAAI,CAAA;IACxD,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,IAAI,CAAA;IACvD,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,IAAI,CAAA;IAC3D,6BAA6B,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,GAAG,IAAI,CAAA;IAEvE,yBAAyB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,GAAG,IAAI,CAAA;IACnE,gCAAgC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,GAAG,IAAI,CAAA;IAE1E,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,GAAG,IAAI,CAAA;IAClE,+BAA+B,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,GAAG,IAAI,CAAA;IAEzE,0BAA0B,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,GAAG,IAAI,CAAA;IACpE,iCAAiC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,GAAG,IAAI,CAAA;IAE3E,mCAAmC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,GAAG,IAAI,CAAA;IAC7E,0CAA0C,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,GAAG,IAAI,CAAA;CACrF,CAAA;AA4aD,wBAAgB,eAAe,SAW9B;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,QAG1E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,WAAW,QAOzC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,SAajC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,GAAG,CAEtC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
import type { TouchEvent } from './types';
|
|
7
|
+
import type { TouchEvent } from './types.ts';
|
|
8
8
|
export declare class ResponderTouchHistoryStore {
|
|
9
9
|
_touchHistory: {
|
|
10
10
|
touchBank: never[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResponderTouchHistoryStore.d.ts","sourceRoot":"","sources":["../src/ResponderTouchHistoryStore.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAS,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ResponderTouchHistoryStore.d.ts","sourceRoot":"","sources":["../src/ResponderTouchHistoryStore.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAS,UAAU,EAAE,MAAM,YAAY,CAAA;AAGnD,qBAAa,0BAA0B;IACrC,aAAa;QACX,SAAS;QACT,mBAAmB;QAInB,wBAAwB;QACxB,mBAAmB;MACpB;IAED,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,GAAG,IAAI,CAgCpE;IAED,IAAI,YAAY,IAAI,YAAY,CAE/B;CACF;AAED,KAAK,WAAW,GAAG;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,iBAAiB,EAAE,MAAM,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,wBAAwB,EAAE,MAAM,CAAA;IAChC,mBAAmB,EAAE,MAAM,CAAA;IAC3B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,CAAA;CAC9B,CAAA"}
|
|
@@ -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 type { ResponderTouchHistoryStore, TouchHistory } from './ResponderTouchHistoryStore';
|
|
6
|
+
import type { ResponderTouchHistoryStore, TouchHistory } from './ResponderTouchHistoryStore.ts';
|
|
7
7
|
export type ResponderEvent = {
|
|
8
8
|
bubbles: boolean;
|
|
9
9
|
cancelable: boolean;
|