@react-aria/interactions 3.21.2 → 3.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/PressResponder.mjs +1 -1
- package/dist/Pressable.mjs +1 -1
- package/dist/context.main.js +1 -1
- package/dist/context.mjs +2 -2
- package/dist/context.module.js +1 -1
- package/dist/createEventHandler.main.js +1 -1
- package/dist/createEventHandler.mjs +2 -2
- package/dist/createEventHandler.module.js +1 -1
- package/dist/textSelection.main.js +14 -14
- package/dist/textSelection.mjs +15 -15
- package/dist/textSelection.module.js +14 -14
- package/dist/types.d.ts +5 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/useFocus.mjs +1 -1
- package/dist/useFocusVisible.main.js +54 -54
- package/dist/useFocusVisible.mjs +55 -55
- package/dist/useFocusVisible.module.js +54 -54
- package/dist/useFocusWithin.mjs +1 -1
- package/dist/useHover.main.js +16 -16
- package/dist/useHover.main.js.map +1 -1
- package/dist/useHover.mjs +17 -17
- package/dist/useHover.module.js +16 -16
- package/dist/useHover.module.js.map +1 -1
- package/dist/useInteractOutside.main.js +14 -14
- package/dist/useInteractOutside.main.js.map +1 -1
- package/dist/useInteractOutside.mjs +15 -15
- package/dist/useInteractOutside.module.js +14 -14
- package/dist/useInteractOutside.module.js.map +1 -1
- package/dist/useKeyboard.mjs +1 -1
- package/dist/useLongPress.main.js +11 -11
- package/dist/useLongPress.main.js.map +1 -1
- package/dist/useLongPress.mjs +12 -12
- package/dist/useLongPress.module.js +11 -11
- package/dist/useLongPress.module.js.map +1 -1
- package/dist/useMove.main.js +36 -36
- package/dist/useMove.mjs +37 -37
- package/dist/useMove.module.js +36 -36
- package/dist/usePress.main.js +95 -54
- package/dist/usePress.main.js.map +1 -1
- package/dist/usePress.mjs +96 -55
- package/dist/usePress.module.js +95 -54
- package/dist/usePress.module.js.map +1 -1
- package/dist/useScrollWheel.main.js +1 -1
- package/dist/useScrollWheel.main.js.map +1 -1
- package/dist/useScrollWheel.mjs +2 -2
- package/dist/useScrollWheel.module.js +1 -1
- package/dist/useScrollWheel.module.js.map +1 -1
- package/dist/utils.main.js +5 -5
- package/dist/utils.mjs +6 -6
- package/dist/utils.module.js +5 -5
- package/package.json +6 -6
- package/src/DOMPropsContext.ts +3 -3
- package/src/useDOMPropsResponder.ts +2 -2
- package/src/useHover.ts +0 -1
- package/src/useInteractOutside.ts +3 -2
- package/src/useLongPress.ts +1 -1
- package/src/usePress.ts +60 -14
- package/src/useScrollWheel.ts +3 -3
package/dist/useMove.module.js
CHANGED
|
@@ -28,7 +28,7 @@ function $e8a7022cf87cba2a$export$36da96379f79f245(props) {
|
|
|
28
28
|
if (!state.current.didMove) {
|
|
29
29
|
state.current.didMove = true;
|
|
30
30
|
onMoveStart === null || onMoveStart === void 0 ? void 0 : onMoveStart({
|
|
31
|
-
type:
|
|
31
|
+
type: 'movestart',
|
|
32
32
|
pointerType: pointerType,
|
|
33
33
|
shiftKey: originalEvent.shiftKey,
|
|
34
34
|
metaKey: originalEvent.metaKey,
|
|
@@ -37,7 +37,7 @@ function $e8a7022cf87cba2a$export$36da96379f79f245(props) {
|
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
onMove === null || onMove === void 0 ? void 0 : onMove({
|
|
40
|
-
type:
|
|
40
|
+
type: 'move',
|
|
41
41
|
pointerType: pointerType,
|
|
42
42
|
deltaX: deltaX,
|
|
43
43
|
deltaY: deltaY,
|
|
@@ -50,7 +50,7 @@ function $e8a7022cf87cba2a$export$36da96379f79f245(props) {
|
|
|
50
50
|
let end = (0, $5GN7j$useEffectEvent)((originalEvent, pointerType)=>{
|
|
51
51
|
(0, $14c0b72509d70225$export$b0d6fa1ab32e3295)();
|
|
52
52
|
if (state.current.didMove) onMoveEnd === null || onMoveEnd === void 0 ? void 0 : onMoveEnd({
|
|
53
|
-
type:
|
|
53
|
+
type: 'moveend',
|
|
54
54
|
pointerType: pointerType,
|
|
55
55
|
shiftKey: originalEvent.shiftKey,
|
|
56
56
|
metaKey: originalEvent.metaKey,
|
|
@@ -64,12 +64,12 @@ function $e8a7022cf87cba2a$export$36da96379f79f245(props) {
|
|
|
64
64
|
(0, $14c0b72509d70225$export$16a4697467175487)();
|
|
65
65
|
state.current.didMove = false;
|
|
66
66
|
};
|
|
67
|
-
if (typeof PointerEvent ===
|
|
67
|
+
if (typeof PointerEvent === 'undefined') {
|
|
68
68
|
let onMouseMove = (e)=>{
|
|
69
69
|
if (e.button === 0) {
|
|
70
70
|
var _state_current_lastPosition, _state_current_lastPosition1;
|
|
71
71
|
var _state_current_lastPosition_pageX, _state_current_lastPosition_pageY;
|
|
72
|
-
move(e,
|
|
72
|
+
move(e, 'mouse', e.pageX - ((_state_current_lastPosition_pageX = (_state_current_lastPosition = state.current.lastPosition) === null || _state_current_lastPosition === void 0 ? void 0 : _state_current_lastPosition.pageX) !== null && _state_current_lastPosition_pageX !== void 0 ? _state_current_lastPosition_pageX : 0), e.pageY - ((_state_current_lastPosition_pageY = (_state_current_lastPosition1 = state.current.lastPosition) === null || _state_current_lastPosition1 === void 0 ? void 0 : _state_current_lastPosition1.pageY) !== null && _state_current_lastPosition_pageY !== void 0 ? _state_current_lastPosition_pageY : 0));
|
|
73
73
|
state.current.lastPosition = {
|
|
74
74
|
pageX: e.pageX,
|
|
75
75
|
pageY: e.pageY
|
|
@@ -78,9 +78,9 @@ function $e8a7022cf87cba2a$export$36da96379f79f245(props) {
|
|
|
78
78
|
};
|
|
79
79
|
let onMouseUp = (e)=>{
|
|
80
80
|
if (e.button === 0) {
|
|
81
|
-
end(e,
|
|
82
|
-
removeGlobalListener(window,
|
|
83
|
-
removeGlobalListener(window,
|
|
81
|
+
end(e, 'mouse');
|
|
82
|
+
removeGlobalListener(window, 'mousemove', onMouseMove, false);
|
|
83
|
+
removeGlobalListener(window, 'mouseup', onMouseUp, false);
|
|
84
84
|
}
|
|
85
85
|
};
|
|
86
86
|
moveProps.onMouseDown = (e)=>{
|
|
@@ -92,8 +92,8 @@ function $e8a7022cf87cba2a$export$36da96379f79f245(props) {
|
|
|
92
92
|
pageX: e.pageX,
|
|
93
93
|
pageY: e.pageY
|
|
94
94
|
};
|
|
95
|
-
addGlobalListener(window,
|
|
96
|
-
addGlobalListener(window,
|
|
95
|
+
addGlobalListener(window, 'mousemove', onMouseMove, false);
|
|
96
|
+
addGlobalListener(window, 'mouseup', onMouseUp, false);
|
|
97
97
|
}
|
|
98
98
|
};
|
|
99
99
|
let onTouchMove = (e)=>{
|
|
@@ -104,7 +104,7 @@ function $e8a7022cf87cba2a$export$36da96379f79f245(props) {
|
|
|
104
104
|
var _state_current_lastPosition, _state_current_lastPosition1;
|
|
105
105
|
let { pageX: pageX, pageY: pageY } = e.changedTouches[touch];
|
|
106
106
|
var _state_current_lastPosition_pageX, _state_current_lastPosition_pageY;
|
|
107
|
-
move(e,
|
|
107
|
+
move(e, 'touch', pageX - ((_state_current_lastPosition_pageX = (_state_current_lastPosition = state.current.lastPosition) === null || _state_current_lastPosition === void 0 ? void 0 : _state_current_lastPosition.pageX) !== null && _state_current_lastPosition_pageX !== void 0 ? _state_current_lastPosition_pageX : 0), pageY - ((_state_current_lastPosition_pageY = (_state_current_lastPosition1 = state.current.lastPosition) === null || _state_current_lastPosition1 === void 0 ? void 0 : _state_current_lastPosition1.pageY) !== null && _state_current_lastPosition_pageY !== void 0 ? _state_current_lastPosition_pageY : 0));
|
|
108
108
|
state.current.lastPosition = {
|
|
109
109
|
pageX: pageX,
|
|
110
110
|
pageY: pageY
|
|
@@ -116,11 +116,11 @@ function $e8a7022cf87cba2a$export$36da96379f79f245(props) {
|
|
|
116
116
|
...e.changedTouches
|
|
117
117
|
].findIndex(({ identifier: identifier })=>identifier === state.current.id);
|
|
118
118
|
if (touch >= 0) {
|
|
119
|
-
end(e,
|
|
119
|
+
end(e, 'touch');
|
|
120
120
|
state.current.id = null;
|
|
121
|
-
removeGlobalListener(window,
|
|
122
|
-
removeGlobalListener(window,
|
|
123
|
-
removeGlobalListener(window,
|
|
121
|
+
removeGlobalListener(window, 'touchmove', onTouchMove);
|
|
122
|
+
removeGlobalListener(window, 'touchend', onTouchEnd);
|
|
123
|
+
removeGlobalListener(window, 'touchcancel', onTouchEnd);
|
|
124
124
|
}
|
|
125
125
|
};
|
|
126
126
|
moveProps.onTouchStart = (e)=>{
|
|
@@ -134,15 +134,15 @@ function $e8a7022cf87cba2a$export$36da96379f79f245(props) {
|
|
|
134
134
|
pageY: pageY
|
|
135
135
|
};
|
|
136
136
|
state.current.id = identifier;
|
|
137
|
-
addGlobalListener(window,
|
|
138
|
-
addGlobalListener(window,
|
|
139
|
-
addGlobalListener(window,
|
|
137
|
+
addGlobalListener(window, 'touchmove', onTouchMove, false);
|
|
138
|
+
addGlobalListener(window, 'touchend', onTouchEnd, false);
|
|
139
|
+
addGlobalListener(window, 'touchcancel', onTouchEnd, false);
|
|
140
140
|
};
|
|
141
141
|
} else {
|
|
142
142
|
let onPointerMove = (e)=>{
|
|
143
143
|
if (e.pointerId === state.current.id) {
|
|
144
144
|
var _state_current_lastPosition, _state_current_lastPosition1;
|
|
145
|
-
let pointerType = e.pointerType ||
|
|
145
|
+
let pointerType = e.pointerType || 'mouse';
|
|
146
146
|
var _state_current_lastPosition_pageX, _state_current_lastPosition_pageY;
|
|
147
147
|
// Problems with PointerEvent#movementX/movementY:
|
|
148
148
|
// 1. it is always 0 on macOS Safari.
|
|
@@ -156,12 +156,12 @@ function $e8a7022cf87cba2a$export$36da96379f79f245(props) {
|
|
|
156
156
|
};
|
|
157
157
|
let onPointerUp = (e)=>{
|
|
158
158
|
if (e.pointerId === state.current.id) {
|
|
159
|
-
let pointerType = e.pointerType ||
|
|
159
|
+
let pointerType = e.pointerType || 'mouse';
|
|
160
160
|
end(e, pointerType);
|
|
161
161
|
state.current.id = null;
|
|
162
|
-
removeGlobalListener(window,
|
|
163
|
-
removeGlobalListener(window,
|
|
164
|
-
removeGlobalListener(window,
|
|
162
|
+
removeGlobalListener(window, 'pointermove', onPointerMove, false);
|
|
163
|
+
removeGlobalListener(window, 'pointerup', onPointerUp, false);
|
|
164
|
+
removeGlobalListener(window, 'pointercancel', onPointerUp, false);
|
|
165
165
|
}
|
|
166
166
|
};
|
|
167
167
|
moveProps.onPointerDown = (e)=>{
|
|
@@ -174,39 +174,39 @@ function $e8a7022cf87cba2a$export$36da96379f79f245(props) {
|
|
|
174
174
|
pageY: e.pageY
|
|
175
175
|
};
|
|
176
176
|
state.current.id = e.pointerId;
|
|
177
|
-
addGlobalListener(window,
|
|
178
|
-
addGlobalListener(window,
|
|
179
|
-
addGlobalListener(window,
|
|
177
|
+
addGlobalListener(window, 'pointermove', onPointerMove, false);
|
|
178
|
+
addGlobalListener(window, 'pointerup', onPointerUp, false);
|
|
179
|
+
addGlobalListener(window, 'pointercancel', onPointerUp, false);
|
|
180
180
|
}
|
|
181
181
|
};
|
|
182
182
|
}
|
|
183
183
|
let triggerKeyboardMove = (e, deltaX, deltaY)=>{
|
|
184
184
|
start();
|
|
185
|
-
move(e,
|
|
186
|
-
end(e,
|
|
185
|
+
move(e, 'keyboard', deltaX, deltaY);
|
|
186
|
+
end(e, 'keyboard');
|
|
187
187
|
};
|
|
188
188
|
moveProps.onKeyDown = (e)=>{
|
|
189
189
|
switch(e.key){
|
|
190
|
-
case
|
|
191
|
-
case
|
|
190
|
+
case 'Left':
|
|
191
|
+
case 'ArrowLeft':
|
|
192
192
|
e.preventDefault();
|
|
193
193
|
e.stopPropagation();
|
|
194
194
|
triggerKeyboardMove(e, -1, 0);
|
|
195
195
|
break;
|
|
196
|
-
case
|
|
197
|
-
case
|
|
196
|
+
case 'Right':
|
|
197
|
+
case 'ArrowRight':
|
|
198
198
|
e.preventDefault();
|
|
199
199
|
e.stopPropagation();
|
|
200
200
|
triggerKeyboardMove(e, 1, 0);
|
|
201
201
|
break;
|
|
202
|
-
case
|
|
203
|
-
case
|
|
202
|
+
case 'Up':
|
|
203
|
+
case 'ArrowUp':
|
|
204
204
|
e.preventDefault();
|
|
205
205
|
e.stopPropagation();
|
|
206
206
|
triggerKeyboardMove(e, 0, -1);
|
|
207
207
|
break;
|
|
208
|
-
case
|
|
209
|
-
case
|
|
208
|
+
case 'Down':
|
|
209
|
+
case 'ArrowDown':
|
|
210
210
|
e.preventDefault();
|
|
211
211
|
e.stopPropagation();
|
|
212
212
|
triggerKeyboardMove(e, 0, 1);
|
package/dist/usePress.main.js
CHANGED
|
@@ -52,12 +52,30 @@ class $0294ea432cd92340$var$PressEvent {
|
|
|
52
52
|
get shouldStopPropagation() {
|
|
53
53
|
return (0, $bBqCQ$swchelperscjs_class_private_field_getcjs._)(this, $0294ea432cd92340$var$_shouldStopPropagation);
|
|
54
54
|
}
|
|
55
|
-
constructor(type, pointerType, originalEvent){
|
|
55
|
+
constructor(type, pointerType, originalEvent, state){
|
|
56
56
|
(0, $bBqCQ$swchelperscjs_class_private_field_initcjs._)(this, $0294ea432cd92340$var$_shouldStopPropagation, {
|
|
57
57
|
writable: true,
|
|
58
58
|
value: void 0
|
|
59
59
|
});
|
|
60
60
|
(0, $bBqCQ$swchelperscjs_class_private_field_setcjs._)(this, $0294ea432cd92340$var$_shouldStopPropagation, true);
|
|
61
|
+
var _state_target;
|
|
62
|
+
let currentTarget = (_state_target = state === null || state === void 0 ? void 0 : state.target) !== null && _state_target !== void 0 ? _state_target : originalEvent.currentTarget;
|
|
63
|
+
const rect = currentTarget === null || currentTarget === void 0 ? void 0 : currentTarget.getBoundingClientRect();
|
|
64
|
+
let x, y = 0;
|
|
65
|
+
let clientX, clientY = null;
|
|
66
|
+
if (originalEvent.clientX != null && originalEvent.clientY != null) {
|
|
67
|
+
clientX = originalEvent.clientX;
|
|
68
|
+
clientY = originalEvent.clientY;
|
|
69
|
+
}
|
|
70
|
+
if (rect) {
|
|
71
|
+
if (clientX != null && clientY != null) {
|
|
72
|
+
x = clientX - rect.left;
|
|
73
|
+
y = clientY - rect.top;
|
|
74
|
+
} else {
|
|
75
|
+
x = rect.width / 2;
|
|
76
|
+
y = rect.height / 2;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
61
79
|
this.type = type;
|
|
62
80
|
this.pointerType = pointerType;
|
|
63
81
|
this.target = originalEvent.currentTarget;
|
|
@@ -65,9 +83,11 @@ class $0294ea432cd92340$var$PressEvent {
|
|
|
65
83
|
this.metaKey = originalEvent.metaKey;
|
|
66
84
|
this.ctrlKey = originalEvent.ctrlKey;
|
|
67
85
|
this.altKey = originalEvent.altKey;
|
|
86
|
+
this.x = x;
|
|
87
|
+
this.y = y;
|
|
68
88
|
}
|
|
69
89
|
}
|
|
70
|
-
const $0294ea432cd92340$var$LINK_CLICKED = Symbol(
|
|
90
|
+
const $0294ea432cd92340$var$LINK_CLICKED = Symbol('linkClicked');
|
|
71
91
|
function $0294ea432cd92340$export$45712eceda6fad21(props) {
|
|
72
92
|
let { onPress: onPress, onPressChange: onPressChange, onPressStart: onPressStart, onPressEnd: onPressEnd, onPressUp: onPressUp, isDisabled: isDisabled, isPressed: isPressedProp, preventFocusOnPress: preventFocusOnPress, shouldCancelOnPointerExit: shouldCancelOnPointerExit, allowTextSelectionOnPress: allowTextSelectionOnPress, // eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
73
93
|
ref: _, ...domProps } = $0294ea432cd92340$var$usePressResponderContext(props);
|
|
@@ -90,7 +110,7 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
|
|
|
90
110
|
let shouldStopPropagation = true;
|
|
91
111
|
state.isTriggeringEvent = true;
|
|
92
112
|
if (onPressStart) {
|
|
93
|
-
let event = new $0294ea432cd92340$var$PressEvent(
|
|
113
|
+
let event = new $0294ea432cd92340$var$PressEvent('pressstart', pointerType, originalEvent);
|
|
94
114
|
onPressStart(event);
|
|
95
115
|
shouldStopPropagation = event.shouldStopPropagation;
|
|
96
116
|
}
|
|
@@ -108,14 +128,14 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
|
|
|
108
128
|
state.isTriggeringEvent = true;
|
|
109
129
|
let shouldStopPropagation = true;
|
|
110
130
|
if (onPressEnd) {
|
|
111
|
-
let event = new $0294ea432cd92340$var$PressEvent(
|
|
131
|
+
let event = new $0294ea432cd92340$var$PressEvent('pressend', pointerType, originalEvent);
|
|
112
132
|
onPressEnd(event);
|
|
113
133
|
shouldStopPropagation = event.shouldStopPropagation;
|
|
114
134
|
}
|
|
115
135
|
if (onPressChange) onPressChange(false);
|
|
116
136
|
setPressed(false);
|
|
117
137
|
if (onPress && wasPressed && !isDisabled) {
|
|
118
|
-
let event = new $0294ea432cd92340$var$PressEvent(
|
|
138
|
+
let event = new $0294ea432cd92340$var$PressEvent('press', pointerType, originalEvent);
|
|
119
139
|
onPress(event);
|
|
120
140
|
shouldStopPropagation && (shouldStopPropagation = event.shouldStopPropagation);
|
|
121
141
|
}
|
|
@@ -127,7 +147,7 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
|
|
|
127
147
|
if (isDisabled) return false;
|
|
128
148
|
if (onPressUp) {
|
|
129
149
|
state.isTriggeringEvent = true;
|
|
130
|
-
let event = new $0294ea432cd92340$var$PressEvent(
|
|
150
|
+
let event = new $0294ea432cd92340$var$PressEvent('pressup', pointerType, originalEvent);
|
|
131
151
|
onPressUp(event);
|
|
132
152
|
state.isTriggeringEvent = false;
|
|
133
153
|
return event.shouldStopPropagation;
|
|
@@ -163,15 +183,15 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
|
|
|
163
183
|
if (!state.isPressed && !e.repeat) {
|
|
164
184
|
state.target = e.currentTarget;
|
|
165
185
|
state.isPressed = true;
|
|
166
|
-
shouldStopPropagation = triggerPressStart(e,
|
|
186
|
+
shouldStopPropagation = triggerPressStart(e, 'keyboard');
|
|
167
187
|
// Focus may move before the key up event, so register the event on the document
|
|
168
188
|
// instead of the same element where the key down event occurred. Make it capturing so that it will trigger
|
|
169
189
|
// before stopPropagation from useKeyboard on a child element may happen and thus we can still call triggerPress for the parent element.
|
|
170
190
|
let originalTarget = e.currentTarget;
|
|
171
191
|
let pressUp = (e)=>{
|
|
172
|
-
if ($0294ea432cd92340$var$isValidKeyboardEvent(e, originalTarget) && !e.repeat && originalTarget.contains(e.target) && state.target) triggerPressUp($0294ea432cd92340$var$createEvent(state.target, e),
|
|
192
|
+
if ($0294ea432cd92340$var$isValidKeyboardEvent(e, originalTarget) && !e.repeat && originalTarget.contains(e.target) && state.target) triggerPressUp($0294ea432cd92340$var$createEvent(state.target, e), 'keyboard');
|
|
173
193
|
};
|
|
174
|
-
addGlobalListener((0, $bBqCQ$reactariautils.getOwnerDocument)(e.currentTarget),
|
|
194
|
+
addGlobalListener((0, $bBqCQ$reactariautils.getOwnerDocument)(e.currentTarget), 'keyup', (0, $bBqCQ$reactariautils.chain)(pressUp, onKeyUp), true);
|
|
175
195
|
}
|
|
176
196
|
if (shouldStopPropagation) e.stopPropagation();
|
|
177
197
|
// Keep track of the keydown events that occur while the Meta (e.g. Command) key is held.
|
|
@@ -182,7 +202,7 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
|
|
|
182
202
|
// https://bugs.webkit.org/show_bug.cgi?id=55291
|
|
183
203
|
// https://bugzilla.mozilla.org/show_bug.cgi?id=1299553
|
|
184
204
|
if (e.metaKey && (0, $bBqCQ$reactariautils.isMac)()) (_state_metaKeyEvents = state.metaKeyEvents) === null || _state_metaKeyEvents === void 0 ? void 0 : _state_metaKeyEvents.set(e.key, e.nativeEvent);
|
|
185
|
-
} else if (e.key ===
|
|
205
|
+
} else if (e.key === 'Meta') state.metaKeyEvents = new Map();
|
|
186
206
|
},
|
|
187
207
|
onClick (e) {
|
|
188
208
|
if (e && !e.currentTarget.contains(e.target)) return;
|
|
@@ -191,12 +211,12 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
|
|
|
191
211
|
if (isDisabled) e.preventDefault();
|
|
192
212
|
// If triggered from a screen reader or by using element.click(),
|
|
193
213
|
// trigger as if it were a keyboard click.
|
|
194
|
-
if (!state.ignoreClickAfterPress && !state.ignoreEmulatedMouseEvents && !state.isPressed && (state.pointerType ===
|
|
214
|
+
if (!state.ignoreClickAfterPress && !state.ignoreEmulatedMouseEvents && !state.isPressed && (state.pointerType === 'virtual' || (0, $bBqCQ$reactariautils.isVirtualClick)(e.nativeEvent))) {
|
|
195
215
|
// Ensure the element receives focus (VoiceOver on iOS does not do this)
|
|
196
216
|
if (!isDisabled && !preventFocusOnPress) (0, $bBqCQ$reactariautils.focusWithoutScrolling)(e.currentTarget);
|
|
197
|
-
let stopPressStart = triggerPressStart(e,
|
|
198
|
-
let stopPressUp = triggerPressUp(e,
|
|
199
|
-
let stopPressEnd = triggerPressEnd(e,
|
|
217
|
+
let stopPressStart = triggerPressStart(e, 'virtual');
|
|
218
|
+
let stopPressUp = triggerPressUp(e, 'virtual');
|
|
219
|
+
let stopPressEnd = triggerPressEnd(e, 'virtual');
|
|
200
220
|
shouldStopPropagation = stopPressStart && stopPressUp && stopPressEnd;
|
|
201
221
|
}
|
|
202
222
|
state.ignoreEmulatedMouseEvents = false;
|
|
@@ -211,12 +231,12 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
|
|
|
211
231
|
var _state_metaKeyEvents1;
|
|
212
232
|
if ($0294ea432cd92340$var$shouldPreventDefaultKeyboard(e.target, e.key)) e.preventDefault();
|
|
213
233
|
let target = e.target;
|
|
214
|
-
triggerPressEnd($0294ea432cd92340$var$createEvent(state.target, e),
|
|
234
|
+
triggerPressEnd($0294ea432cd92340$var$createEvent(state.target, e), 'keyboard', state.target.contains(target));
|
|
215
235
|
removeAllGlobalListeners();
|
|
216
236
|
// If a link was triggered with a key other than Enter, open the URL ourselves.
|
|
217
237
|
// This means the link has a role override, and the default browser behavior
|
|
218
238
|
// only applies when using the Enter key.
|
|
219
|
-
if (e.key !==
|
|
239
|
+
if (e.key !== 'Enter' && $0294ea432cd92340$var$isHTMLAnchorLink(state.target) && state.target.contains(target) && !e[$0294ea432cd92340$var$LINK_CLICKED]) {
|
|
220
240
|
// Store a hidden property on the event so we only trigger link click once,
|
|
221
241
|
// even if there are multiple usePress instances attached to the element.
|
|
222
242
|
e[$0294ea432cd92340$var$LINK_CLICKED] = true;
|
|
@@ -224,17 +244,17 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
|
|
|
224
244
|
}
|
|
225
245
|
state.isPressed = false;
|
|
226
246
|
(_state_metaKeyEvents1 = state.metaKeyEvents) === null || _state_metaKeyEvents1 === void 0 ? void 0 : _state_metaKeyEvents1.delete(e.key);
|
|
227
|
-
} else if (e.key ===
|
|
247
|
+
} else if (e.key === 'Meta' && ((_state_metaKeyEvents = state.metaKeyEvents) === null || _state_metaKeyEvents === void 0 ? void 0 : _state_metaKeyEvents.size)) {
|
|
228
248
|
var _state_target;
|
|
229
249
|
// If we recorded keydown events that occurred while the Meta key was pressed,
|
|
230
250
|
// and those haven't received keyup events already, fire keyup events ourselves.
|
|
231
251
|
// See comment above for more info about the macOS bug causing this.
|
|
232
252
|
let events = state.metaKeyEvents;
|
|
233
253
|
state.metaKeyEvents = undefined;
|
|
234
|
-
for (let event of events.values())(_state_target = state.target) === null || _state_target === void 0 ? void 0 : _state_target.dispatchEvent(new KeyboardEvent(
|
|
254
|
+
for (let event of events.values())(_state_target = state.target) === null || _state_target === void 0 ? void 0 : _state_target.dispatchEvent(new KeyboardEvent('keyup', event));
|
|
235
255
|
}
|
|
236
256
|
};
|
|
237
|
-
if (typeof PointerEvent !==
|
|
257
|
+
if (typeof PointerEvent !== 'undefined') {
|
|
238
258
|
pressProps.onPointerDown = (e)=>{
|
|
239
259
|
// Only handle left clicks, and ignore events that bubbled through portals.
|
|
240
260
|
if (e.button !== 0 || !e.currentTarget.contains(e.target)) return;
|
|
@@ -243,7 +263,7 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
|
|
|
243
263
|
// https://bugs.webkit.org/show_bug.cgi?id=222627
|
|
244
264
|
// https://bugs.webkit.org/show_bug.cgi?id=223202
|
|
245
265
|
if ((0, $bBqCQ$reactariautils.isVirtualPointerEvent)(e.nativeEvent)) {
|
|
246
|
-
state.pointerType =
|
|
266
|
+
state.pointerType = 'virtual';
|
|
247
267
|
return;
|
|
248
268
|
}
|
|
249
269
|
// Due to browser inconsistencies, especially on mobile browsers, we prevent
|
|
@@ -259,9 +279,9 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
|
|
|
259
279
|
if (!isDisabled && !preventFocusOnPress) (0, $bBqCQ$reactariautils.focusWithoutScrolling)(e.currentTarget);
|
|
260
280
|
if (!allowTextSelectionOnPress) (0, $f7e14e656343df57$exports.disableTextSelection)(state.target);
|
|
261
281
|
shouldStopPropagation = triggerPressStart(e, state.pointerType);
|
|
262
|
-
addGlobalListener((0, $bBqCQ$reactariautils.getOwnerDocument)(e.currentTarget),
|
|
263
|
-
addGlobalListener((0, $bBqCQ$reactariautils.getOwnerDocument)(e.currentTarget),
|
|
264
|
-
addGlobalListener((0, $bBqCQ$reactariautils.getOwnerDocument)(e.currentTarget),
|
|
282
|
+
addGlobalListener((0, $bBqCQ$reactariautils.getOwnerDocument)(e.currentTarget), 'pointermove', onPointerMove, false);
|
|
283
|
+
addGlobalListener((0, $bBqCQ$reactariautils.getOwnerDocument)(e.currentTarget), 'pointerup', onPointerUp, false);
|
|
284
|
+
addGlobalListener((0, $bBqCQ$reactariautils.getOwnerDocument)(e.currentTarget), 'pointercancel', onPointerCancel, false);
|
|
265
285
|
}
|
|
266
286
|
if (shouldStopPropagation) e.stopPropagation();
|
|
267
287
|
};
|
|
@@ -277,7 +297,7 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
|
|
|
277
297
|
};
|
|
278
298
|
pressProps.onPointerUp = (e)=>{
|
|
279
299
|
// iOS fires pointerup with zero width and height, so check the pointerType recorded during pointerdown.
|
|
280
|
-
if (!e.currentTarget.contains(e.target) || state.pointerType ===
|
|
300
|
+
if (!e.currentTarget.contains(e.target) || state.pointerType === 'virtual') return;
|
|
281
301
|
// Only handle left clicks
|
|
282
302
|
// Safari on iOS sometimes fires pointerup events, even
|
|
283
303
|
// when the touch isn't over the target, so double check.
|
|
@@ -333,11 +353,11 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
|
|
|
333
353
|
state.isPressed = true;
|
|
334
354
|
state.isOverTarget = true;
|
|
335
355
|
state.target = e.currentTarget;
|
|
336
|
-
state.pointerType = (0, $bBqCQ$reactariautils.isVirtualClick)(e.nativeEvent) ?
|
|
356
|
+
state.pointerType = (0, $bBqCQ$reactariautils.isVirtualClick)(e.nativeEvent) ? 'virtual' : 'mouse';
|
|
337
357
|
if (!isDisabled && !preventFocusOnPress) (0, $bBqCQ$reactariautils.focusWithoutScrolling)(e.currentTarget);
|
|
338
358
|
let shouldStopPropagation = triggerPressStart(e, state.pointerType);
|
|
339
359
|
if (shouldStopPropagation) e.stopPropagation();
|
|
340
|
-
addGlobalListener((0, $bBqCQ$reactariautils.getOwnerDocument)(e.currentTarget),
|
|
360
|
+
addGlobalListener((0, $bBqCQ$reactariautils.getOwnerDocument)(e.currentTarget), 'mouseup', onMouseUp, false);
|
|
341
361
|
};
|
|
342
362
|
pressProps.onMouseEnter = (e)=>{
|
|
343
363
|
if (!e.currentTarget.contains(e.target)) return;
|
|
@@ -360,7 +380,7 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
|
|
|
360
380
|
};
|
|
361
381
|
pressProps.onMouseUp = (e)=>{
|
|
362
382
|
if (!e.currentTarget.contains(e.target)) return;
|
|
363
|
-
if (!state.ignoreEmulatedMouseEvents && e.button === 0) triggerPressUp(e, state.pointerType ||
|
|
383
|
+
if (!state.ignoreEmulatedMouseEvents && e.button === 0) triggerPressUp(e, state.pointerType || 'mouse');
|
|
364
384
|
};
|
|
365
385
|
let onMouseUp = (e)=>{
|
|
366
386
|
// Only handle left clicks
|
|
@@ -384,14 +404,14 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
|
|
|
384
404
|
state.isOverTarget = true;
|
|
385
405
|
state.isPressed = true;
|
|
386
406
|
state.target = e.currentTarget;
|
|
387
|
-
state.pointerType =
|
|
407
|
+
state.pointerType = 'touch';
|
|
388
408
|
// Due to browser inconsistencies, especially on mobile browsers, we prevent default
|
|
389
409
|
// on the emulated mouse event and handle focusing the pressable element ourselves.
|
|
390
410
|
if (!isDisabled && !preventFocusOnPress) (0, $bBqCQ$reactariautils.focusWithoutScrolling)(e.currentTarget);
|
|
391
411
|
if (!allowTextSelectionOnPress) (0, $f7e14e656343df57$exports.disableTextSelection)(state.target);
|
|
392
|
-
let shouldStopPropagation = triggerPressStart(e, state.pointerType);
|
|
412
|
+
let shouldStopPropagation = triggerPressStart($0294ea432cd92340$var$createTouchEvent(state.target, e), state.pointerType);
|
|
393
413
|
if (shouldStopPropagation) e.stopPropagation();
|
|
394
|
-
addGlobalListener((0, $bBqCQ$reactariautils.getOwnerWindow)(e.currentTarget),
|
|
414
|
+
addGlobalListener((0, $bBqCQ$reactariautils.getOwnerWindow)(e.currentTarget), 'scroll', onScroll, true);
|
|
395
415
|
};
|
|
396
416
|
pressProps.onTouchMove = (e)=>{
|
|
397
417
|
if (!e.currentTarget.contains(e.target)) return;
|
|
@@ -404,12 +424,12 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
|
|
|
404
424
|
if (touch && $0294ea432cd92340$var$isOverTarget(touch, e.currentTarget)) {
|
|
405
425
|
if (!state.isOverTarget && state.pointerType != null) {
|
|
406
426
|
state.isOverTarget = true;
|
|
407
|
-
shouldStopPropagation = triggerPressStart(e, state.pointerType);
|
|
427
|
+
shouldStopPropagation = triggerPressStart($0294ea432cd92340$var$createTouchEvent(state.target, e), state.pointerType);
|
|
408
428
|
}
|
|
409
429
|
} else if (state.isOverTarget && state.pointerType != null) {
|
|
410
430
|
state.isOverTarget = false;
|
|
411
|
-
shouldStopPropagation = triggerPressEnd(e, state.pointerType, false);
|
|
412
|
-
cancelOnPointerExit(e);
|
|
431
|
+
shouldStopPropagation = triggerPressEnd($0294ea432cd92340$var$createTouchEvent(state.target, e), state.pointerType, false);
|
|
432
|
+
cancelOnPointerExit($0294ea432cd92340$var$createTouchEvent(state.target, e));
|
|
413
433
|
}
|
|
414
434
|
if (shouldStopPropagation) e.stopPropagation();
|
|
415
435
|
};
|
|
@@ -422,9 +442,9 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
|
|
|
422
442
|
let touch = $0294ea432cd92340$var$getTouchById(e.nativeEvent, state.activePointerId);
|
|
423
443
|
let shouldStopPropagation = true;
|
|
424
444
|
if (touch && $0294ea432cd92340$var$isOverTarget(touch, e.currentTarget) && state.pointerType != null) {
|
|
425
|
-
triggerPressUp(e, state.pointerType);
|
|
426
|
-
shouldStopPropagation = triggerPressEnd(e, state.pointerType);
|
|
427
|
-
} else if (state.isOverTarget && state.pointerType != null) shouldStopPropagation = triggerPressEnd(e, state.pointerType, false);
|
|
445
|
+
triggerPressUp($0294ea432cd92340$var$createTouchEvent(state.target, e), state.pointerType);
|
|
446
|
+
shouldStopPropagation = triggerPressEnd($0294ea432cd92340$var$createTouchEvent(state.target, e), state.pointerType);
|
|
447
|
+
} else if (state.isOverTarget && state.pointerType != null) shouldStopPropagation = triggerPressEnd($0294ea432cd92340$var$createTouchEvent(state.target, e), state.pointerType, false);
|
|
428
448
|
if (shouldStopPropagation) e.stopPropagation();
|
|
429
449
|
state.isPressed = false;
|
|
430
450
|
state.activePointerId = null;
|
|
@@ -436,7 +456,7 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
|
|
|
436
456
|
pressProps.onTouchCancel = (e)=>{
|
|
437
457
|
if (!e.currentTarget.contains(e.target)) return;
|
|
438
458
|
e.stopPropagation();
|
|
439
|
-
if (state.isPressed) cancel(e);
|
|
459
|
+
if (state.isPressed) cancel($0294ea432cd92340$var$createTouchEvent(state.target, e));
|
|
440
460
|
};
|
|
441
461
|
let onScroll = (e)=>{
|
|
442
462
|
if (state.isPressed && e.target.contains(state.target)) cancel({
|
|
@@ -482,16 +502,16 @@ function $0294ea432cd92340$export$45712eceda6fad21(props) {
|
|
|
482
502
|
};
|
|
483
503
|
}
|
|
484
504
|
function $0294ea432cd92340$var$isHTMLAnchorLink(target) {
|
|
485
|
-
return target.tagName ===
|
|
505
|
+
return target.tagName === 'A' && target.hasAttribute('href');
|
|
486
506
|
}
|
|
487
507
|
function $0294ea432cd92340$var$isValidKeyboardEvent(event, currentTarget) {
|
|
488
508
|
const { key: key, code: code } = event;
|
|
489
509
|
const element = currentTarget;
|
|
490
|
-
const role = element.getAttribute(
|
|
510
|
+
const role = element.getAttribute('role');
|
|
491
511
|
// Accessibility for keyboards. Space and Enter only.
|
|
492
512
|
// "Spacebar" is for IE 11
|
|
493
|
-
return (key ===
|
|
494
|
-
!((role ===
|
|
513
|
+
return (key === 'Enter' || key === ' ' || key === 'Spacebar' || code === 'Space') && !(element instanceof (0, $bBqCQ$reactariautils.getOwnerWindow)(element).HTMLInputElement && !$0294ea432cd92340$var$isValidInputKey(element, key) || element instanceof (0, $bBqCQ$reactariautils.getOwnerWindow)(element).HTMLTextAreaElement || element.isContentEditable) && // Links should only trigger with Enter key
|
|
514
|
+
!((role === 'link' || !role && $0294ea432cd92340$var$isHTMLAnchorLink(element)) && key !== 'Enter');
|
|
495
515
|
}
|
|
496
516
|
function $0294ea432cd92340$var$getTouchFromEvent(event) {
|
|
497
517
|
const { targetTouches: targetTouches } = event;
|
|
@@ -506,13 +526,34 @@ function $0294ea432cd92340$var$getTouchById(event, pointerId) {
|
|
|
506
526
|
}
|
|
507
527
|
return null;
|
|
508
528
|
}
|
|
529
|
+
function $0294ea432cd92340$var$createTouchEvent(target, e) {
|
|
530
|
+
let clientX = 0;
|
|
531
|
+
let clientY = 0;
|
|
532
|
+
if (e.targetTouches && e.targetTouches.length === 1) {
|
|
533
|
+
clientX = e.targetTouches[0].clientX;
|
|
534
|
+
clientY = e.targetTouches[0].clientY;
|
|
535
|
+
}
|
|
536
|
+
return {
|
|
537
|
+
currentTarget: target,
|
|
538
|
+
shiftKey: e.shiftKey,
|
|
539
|
+
ctrlKey: e.ctrlKey,
|
|
540
|
+
metaKey: e.metaKey,
|
|
541
|
+
altKey: e.altKey,
|
|
542
|
+
clientX: clientX,
|
|
543
|
+
clientY: clientY
|
|
544
|
+
};
|
|
545
|
+
}
|
|
509
546
|
function $0294ea432cd92340$var$createEvent(target, e) {
|
|
547
|
+
let clientX = e.clientX;
|
|
548
|
+
let clientY = e.clientY;
|
|
510
549
|
return {
|
|
511
550
|
currentTarget: target,
|
|
512
551
|
shiftKey: e.shiftKey,
|
|
513
552
|
ctrlKey: e.ctrlKey,
|
|
514
553
|
metaKey: e.metaKey,
|
|
515
|
-
altKey: e.altKey
|
|
554
|
+
altKey: e.altKey,
|
|
555
|
+
clientX: clientX,
|
|
556
|
+
clientY: clientY
|
|
516
557
|
};
|
|
517
558
|
}
|
|
518
559
|
function $0294ea432cd92340$var$getPointClientRect(point) {
|
|
@@ -543,28 +584,28 @@ function $0294ea432cd92340$var$isOverTarget(point, target) {
|
|
|
543
584
|
}
|
|
544
585
|
function $0294ea432cd92340$var$shouldPreventDefault(target) {
|
|
545
586
|
// We cannot prevent default if the target is a draggable element.
|
|
546
|
-
return !(target instanceof HTMLElement) || !target.hasAttribute(
|
|
587
|
+
return !(target instanceof HTMLElement) || !target.hasAttribute('draggable');
|
|
547
588
|
}
|
|
548
589
|
function $0294ea432cd92340$var$shouldPreventDefaultKeyboard(target, key) {
|
|
549
590
|
if (target instanceof HTMLInputElement) return !$0294ea432cd92340$var$isValidInputKey(target, key);
|
|
550
|
-
if (target instanceof HTMLButtonElement) return target.type !==
|
|
591
|
+
if (target instanceof HTMLButtonElement) return target.type !== 'submit' && target.type !== 'reset';
|
|
551
592
|
if ($0294ea432cd92340$var$isHTMLAnchorLink(target)) return false;
|
|
552
593
|
return true;
|
|
553
594
|
}
|
|
554
595
|
const $0294ea432cd92340$var$nonTextInputTypes = new Set([
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
596
|
+
'checkbox',
|
|
597
|
+
'radio',
|
|
598
|
+
'range',
|
|
599
|
+
'color',
|
|
600
|
+
'file',
|
|
601
|
+
'image',
|
|
602
|
+
'button',
|
|
603
|
+
'submit',
|
|
604
|
+
'reset'
|
|
564
605
|
]);
|
|
565
606
|
function $0294ea432cd92340$var$isValidInputKey(target, key) {
|
|
566
607
|
// Only space should toggle checkboxes and radios, not enter.
|
|
567
|
-
return target.type ===
|
|
608
|
+
return target.type === 'checkbox' || target.type === 'radio' ? key === ' ' : $0294ea432cd92340$var$nonTextInputTypes.has(target.type);
|
|
568
609
|
}
|
|
569
610
|
|
|
570
611
|
|