@react-aria/interactions 3.27.0 → 3.28.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.
Files changed (118) hide show
  1. package/dist/import.mjs +21 -15
  2. package/dist/main.js +45 -39
  3. package/dist/main.js.map +1 -1
  4. package/dist/module.js +21 -15
  5. package/dist/module.js.map +1 -1
  6. package/dist/types/src/index.d.ts +31 -0
  7. package/package.json +16 -15
  8. package/src/index.ts +31 -35
  9. package/dist/PressResponder.main.js +0 -61
  10. package/dist/PressResponder.main.js.map +0 -1
  11. package/dist/PressResponder.mjs +0 -51
  12. package/dist/PressResponder.module.js +0 -51
  13. package/dist/PressResponder.module.js.map +0 -1
  14. package/dist/Pressable.main.js +0 -69
  15. package/dist/Pressable.main.js.map +0 -1
  16. package/dist/Pressable.mjs +0 -60
  17. package/dist/Pressable.module.js +0 -60
  18. package/dist/Pressable.module.js.map +0 -1
  19. package/dist/context.main.js +0 -30
  20. package/dist/context.main.js.map +0 -1
  21. package/dist/context.mjs +0 -21
  22. package/dist/context.module.js +0 -21
  23. package/dist/context.module.js.map +0 -1
  24. package/dist/createEventHandler.main.js +0 -46
  25. package/dist/createEventHandler.main.js.map +0 -1
  26. package/dist/createEventHandler.mjs +0 -41
  27. package/dist/createEventHandler.module.js +0 -41
  28. package/dist/createEventHandler.module.js.map +0 -1
  29. package/dist/focusSafely.main.js +0 -40
  30. package/dist/focusSafely.main.js.map +0 -1
  31. package/dist/focusSafely.mjs +0 -35
  32. package/dist/focusSafely.module.js +0 -35
  33. package/dist/focusSafely.module.js.map +0 -1
  34. package/dist/textSelection.main.js +0 -77
  35. package/dist/textSelection.main.js.map +0 -1
  36. package/dist/textSelection.mjs +0 -71
  37. package/dist/textSelection.module.js +0 -71
  38. package/dist/textSelection.module.js.map +0 -1
  39. package/dist/types.d.ts +0 -255
  40. package/dist/types.d.ts.map +0 -1
  41. package/dist/useFocus.main.js +0 -65
  42. package/dist/useFocus.main.js.map +0 -1
  43. package/dist/useFocus.mjs +0 -60
  44. package/dist/useFocus.module.js +0 -60
  45. package/dist/useFocus.module.js.map +0 -1
  46. package/dist/useFocusVisible.main.js +0 -265
  47. package/dist/useFocusVisible.main.js.map +0 -1
  48. package/dist/useFocusVisible.mjs +0 -253
  49. package/dist/useFocusVisible.module.js +0 -253
  50. package/dist/useFocusVisible.module.js.map +0 -1
  51. package/dist/useFocusWithin.main.js +0 -105
  52. package/dist/useFocusWithin.main.js.map +0 -1
  53. package/dist/useFocusWithin.mjs +0 -100
  54. package/dist/useFocusWithin.module.js +0 -100
  55. package/dist/useFocusWithin.module.js.map +0 -1
  56. package/dist/useFocusable.main.js +0 -113
  57. package/dist/useFocusable.main.js.map +0 -1
  58. package/dist/useFocusable.mjs +0 -101
  59. package/dist/useFocusable.module.js +0 -101
  60. package/dist/useFocusable.module.js.map +0 -1
  61. package/dist/useHover.main.js +0 -159
  62. package/dist/useHover.main.js.map +0 -1
  63. package/dist/useHover.mjs +0 -154
  64. package/dist/useHover.module.js +0 -154
  65. package/dist/useHover.module.js.map +0 -1
  66. package/dist/useInteractOutside.main.js +0 -106
  67. package/dist/useInteractOutside.main.js.map +0 -1
  68. package/dist/useInteractOutside.mjs +0 -101
  69. package/dist/useInteractOutside.module.js +0 -101
  70. package/dist/useInteractOutside.module.js.map +0 -1
  71. package/dist/useKeyboard.main.js +0 -30
  72. package/dist/useKeyboard.main.js.map +0 -1
  73. package/dist/useKeyboard.mjs +0 -25
  74. package/dist/useKeyboard.module.js +0 -25
  75. package/dist/useKeyboard.module.js.map +0 -1
  76. package/dist/useLongPress.main.js +0 -86
  77. package/dist/useLongPress.main.js.map +0 -1
  78. package/dist/useLongPress.mjs +0 -81
  79. package/dist/useLongPress.module.js +0 -81
  80. package/dist/useLongPress.module.js.map +0 -1
  81. package/dist/useMove.main.js +0 -272
  82. package/dist/useMove.main.js.map +0 -1
  83. package/dist/useMove.mjs +0 -267
  84. package/dist/useMove.module.js +0 -267
  85. package/dist/useMove.module.js.map +0 -1
  86. package/dist/usePress.main.js +0 -763
  87. package/dist/usePress.main.js.map +0 -1
  88. package/dist/usePress.mjs +0 -758
  89. package/dist/usePress.module.js +0 -758
  90. package/dist/usePress.module.js.map +0 -1
  91. package/dist/useScrollWheel.main.js +0 -41
  92. package/dist/useScrollWheel.main.js.map +0 -1
  93. package/dist/useScrollWheel.mjs +0 -36
  94. package/dist/useScrollWheel.module.js +0 -36
  95. package/dist/useScrollWheel.module.js.map +0 -1
  96. package/dist/utils.main.js +0 -163
  97. package/dist/utils.main.js.map +0 -1
  98. package/dist/utils.mjs +0 -154
  99. package/dist/utils.module.js +0 -154
  100. package/dist/utils.module.js.map +0 -1
  101. package/src/PressResponder.tsx +0 -67
  102. package/src/Pressable.tsx +0 -97
  103. package/src/context.ts +0 -23
  104. package/src/createEventHandler.ts +0 -55
  105. package/src/focusSafely.ts +0 -45
  106. package/src/textSelection.ts +0 -101
  107. package/src/useFocus.ts +0 -87
  108. package/src/useFocusVisible.ts +0 -357
  109. package/src/useFocusWithin.ts +0 -132
  110. package/src/useFocusable.tsx +0 -191
  111. package/src/useHover.ts +0 -222
  112. package/src/useInteractOutside.ts +0 -142
  113. package/src/useKeyboard.ts +0 -36
  114. package/src/useLongPress.ts +0 -135
  115. package/src/useMove.ts +0 -259
  116. package/src/usePress.ts +0 -1093
  117. package/src/useScrollWheel.ts +0 -41
  118. package/src/utils.ts +0 -174
package/dist/useMove.mjs DELETED
@@ -1,267 +0,0 @@
1
- import {disableTextSelection as $14c0b72509d70225$export$16a4697467175487, restoreTextSelection as $14c0b72509d70225$export$b0d6fa1ab32e3295} from "./textSelection.mjs";
2
- import {useRef as $5GN7j$useRef, useCallback as $5GN7j$useCallback, useState as $5GN7j$useState, useMemo as $5GN7j$useMemo} from "react";
3
- import {useGlobalListeners as $5GN7j$useGlobalListeners, useEffectEvent as $5GN7j$useEffectEvent, useLayoutEffect as $5GN7j$useLayoutEffect} from "@react-aria/utils";
4
-
5
- /*
6
- * Copyright 2020 Adobe. All rights reserved.
7
- * This file is licensed to you under the Apache License, Version 2.0 (the "License");
8
- * you may not use this file except in compliance with the License. You may obtain a copy
9
- * of the License at http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software distributed under
12
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
13
- * OF ANY KIND, either express or implied. See the License for the specific language
14
- * governing permissions and limitations under the License.
15
- */
16
-
17
-
18
- function $e8a7022cf87cba2a$export$36da96379f79f245(props) {
19
- let { onMoveStart: onMoveStart, onMove: onMove, onMoveEnd: onMoveEnd } = props;
20
- let state = (0, $5GN7j$useRef)({
21
- didMove: false,
22
- lastPosition: null,
23
- id: null
24
- });
25
- let { addGlobalListener: addGlobalListener, removeGlobalListener: removeGlobalListener } = (0, $5GN7j$useGlobalListeners)();
26
- let move = (0, $5GN7j$useCallback)((originalEvent, pointerType, deltaX, deltaY)=>{
27
- if (deltaX === 0 && deltaY === 0) return;
28
- if (!state.current.didMove) {
29
- state.current.didMove = true;
30
- onMoveStart === null || onMoveStart === void 0 ? void 0 : onMoveStart({
31
- type: 'movestart',
32
- pointerType: pointerType,
33
- shiftKey: originalEvent.shiftKey,
34
- metaKey: originalEvent.metaKey,
35
- ctrlKey: originalEvent.ctrlKey,
36
- altKey: originalEvent.altKey
37
- });
38
- }
39
- onMove === null || onMove === void 0 ? void 0 : onMove({
40
- type: 'move',
41
- pointerType: pointerType,
42
- deltaX: deltaX,
43
- deltaY: deltaY,
44
- shiftKey: originalEvent.shiftKey,
45
- metaKey: originalEvent.metaKey,
46
- ctrlKey: originalEvent.ctrlKey,
47
- altKey: originalEvent.altKey
48
- });
49
- }, [
50
- onMoveStart,
51
- onMove,
52
- state
53
- ]);
54
- let moveEvent = (0, $5GN7j$useEffectEvent)(move);
55
- let end = (0, $5GN7j$useCallback)((originalEvent, pointerType)=>{
56
- (0, $14c0b72509d70225$export$b0d6fa1ab32e3295)();
57
- if (state.current.didMove) onMoveEnd === null || onMoveEnd === void 0 ? void 0 : onMoveEnd({
58
- type: 'moveend',
59
- pointerType: pointerType,
60
- shiftKey: originalEvent.shiftKey,
61
- metaKey: originalEvent.metaKey,
62
- ctrlKey: originalEvent.ctrlKey,
63
- altKey: originalEvent.altKey
64
- });
65
- }, [
66
- onMoveEnd,
67
- state
68
- ]);
69
- let endEvent = (0, $5GN7j$useEffectEvent)(end);
70
- let [pointerDown, setPointerDown] = (0, $5GN7j$useState)(null);
71
- (0, $5GN7j$useLayoutEffect)(()=>{
72
- if (pointerDown === 'pointer') {
73
- let onPointerMove = (e)=>{
74
- if (e.pointerId === state.current.id) {
75
- var _state_current_lastPosition, _state_current_lastPosition1;
76
- let pointerType = e.pointerType || 'mouse';
77
- var _state_current_lastPosition_pageX, _state_current_lastPosition_pageY;
78
- // Problems with PointerEvent#movementX/movementY:
79
- // 1. it is always 0 on macOS Safari.
80
- // 2. On Chrome Android, it's scaled by devicePixelRatio, but not on Chrome macOS
81
- moveEvent(e, pointerType, 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));
82
- state.current.lastPosition = {
83
- pageX: e.pageX,
84
- pageY: e.pageY
85
- };
86
- }
87
- };
88
- let onPointerUp = (e)=>{
89
- if (e.pointerId === state.current.id) {
90
- let pointerType = e.pointerType || 'mouse';
91
- endEvent(e, pointerType);
92
- state.current.id = null;
93
- removeGlobalListener(window, 'pointermove', onPointerMove, false);
94
- removeGlobalListener(window, 'pointerup', onPointerUp, false);
95
- removeGlobalListener(window, 'pointercancel', onPointerUp, false);
96
- setPointerDown(null);
97
- }
98
- };
99
- addGlobalListener(window, 'pointermove', onPointerMove, false);
100
- addGlobalListener(window, 'pointerup', onPointerUp, false);
101
- addGlobalListener(window, 'pointercancel', onPointerUp, false);
102
- return ()=>{
103
- removeGlobalListener(window, 'pointermove', onPointerMove, false);
104
- removeGlobalListener(window, 'pointerup', onPointerUp, false);
105
- removeGlobalListener(window, 'pointercancel', onPointerUp, false);
106
- };
107
- } else if (pointerDown === 'mouse' && process.env.NODE_ENV === 'test') {
108
- let onMouseMove = (e)=>{
109
- if (e.button === 0) {
110
- var _state_current_lastPosition, _state_current_lastPosition1;
111
- var _state_current_lastPosition_pageX, _state_current_lastPosition_pageY;
112
- moveEvent(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));
113
- state.current.lastPosition = {
114
- pageX: e.pageX,
115
- pageY: e.pageY
116
- };
117
- }
118
- };
119
- let onMouseUp = (e)=>{
120
- if (e.button === 0) {
121
- endEvent(e, 'mouse');
122
- removeGlobalListener(window, 'mousemove', onMouseMove, false);
123
- removeGlobalListener(window, 'mouseup', onMouseUp, false);
124
- setPointerDown(null);
125
- }
126
- };
127
- addGlobalListener(window, 'mousemove', onMouseMove, false);
128
- addGlobalListener(window, 'mouseup', onMouseUp, false);
129
- return ()=>{
130
- removeGlobalListener(window, 'mousemove', onMouseMove, false);
131
- removeGlobalListener(window, 'mouseup', onMouseUp, false);
132
- };
133
- } else if (pointerDown === 'touch' && process.env.NODE_ENV === 'test') {
134
- let onTouchMove = (e)=>{
135
- let touch = [
136
- ...e.changedTouches
137
- ].findIndex(({ identifier: identifier })=>identifier === state.current.id);
138
- if (touch >= 0) {
139
- var _state_current_lastPosition, _state_current_lastPosition1;
140
- let { pageX: pageX, pageY: pageY } = e.changedTouches[touch];
141
- var _state_current_lastPosition_pageX, _state_current_lastPosition_pageY;
142
- moveEvent(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));
143
- state.current.lastPosition = {
144
- pageX: pageX,
145
- pageY: pageY
146
- };
147
- }
148
- };
149
- let onTouchEnd = (e)=>{
150
- let touch = [
151
- ...e.changedTouches
152
- ].findIndex(({ identifier: identifier })=>identifier === state.current.id);
153
- if (touch >= 0) {
154
- endEvent(e, 'touch');
155
- state.current.id = null;
156
- removeGlobalListener(window, 'touchmove', onTouchMove);
157
- removeGlobalListener(window, 'touchend', onTouchEnd);
158
- removeGlobalListener(window, 'touchcancel', onTouchEnd);
159
- setPointerDown(null);
160
- }
161
- };
162
- addGlobalListener(window, 'touchmove', onTouchMove, false);
163
- addGlobalListener(window, 'touchend', onTouchEnd, false);
164
- addGlobalListener(window, 'touchcancel', onTouchEnd, false);
165
- return ()=>{
166
- removeGlobalListener(window, 'touchmove', onTouchMove, false);
167
- removeGlobalListener(window, 'touchend', onTouchEnd, false);
168
- removeGlobalListener(window, 'touchcancel', onTouchEnd, false);
169
- };
170
- }
171
- }, [
172
- pointerDown,
173
- addGlobalListener,
174
- removeGlobalListener
175
- ]);
176
- let moveProps = (0, $5GN7j$useMemo)(()=>{
177
- let moveProps = {};
178
- let start = ()=>{
179
- (0, $14c0b72509d70225$export$16a4697467175487)();
180
- state.current.didMove = false;
181
- };
182
- if (typeof PointerEvent === 'undefined' && process.env.NODE_ENV === 'test') {
183
- moveProps.onMouseDown = (e)=>{
184
- if (e.button === 0) {
185
- start();
186
- e.stopPropagation();
187
- e.preventDefault();
188
- state.current.lastPosition = {
189
- pageX: e.pageX,
190
- pageY: e.pageY
191
- };
192
- setPointerDown('mouse');
193
- }
194
- };
195
- moveProps.onTouchStart = (e)=>{
196
- if (e.changedTouches.length === 0 || state.current.id != null) return;
197
- let { pageX: pageX, pageY: pageY, identifier: identifier } = e.changedTouches[0];
198
- start();
199
- e.stopPropagation();
200
- e.preventDefault();
201
- state.current.lastPosition = {
202
- pageX: pageX,
203
- pageY: pageY
204
- };
205
- state.current.id = identifier;
206
- setPointerDown('touch');
207
- };
208
- } else moveProps.onPointerDown = (e)=>{
209
- if (e.button === 0 && state.current.id == null) {
210
- start();
211
- e.stopPropagation();
212
- e.preventDefault();
213
- state.current.lastPosition = {
214
- pageX: e.pageX,
215
- pageY: e.pageY
216
- };
217
- state.current.id = e.pointerId;
218
- setPointerDown('pointer');
219
- }
220
- };
221
- let triggerKeyboardMove = (e, deltaX, deltaY)=>{
222
- start();
223
- move(e, 'keyboard', deltaX, deltaY);
224
- end(e, 'keyboard');
225
- };
226
- moveProps.onKeyDown = (e)=>{
227
- switch(e.key){
228
- case 'Left':
229
- case 'ArrowLeft':
230
- e.preventDefault();
231
- e.stopPropagation();
232
- triggerKeyboardMove(e, -1, 0);
233
- break;
234
- case 'Right':
235
- case 'ArrowRight':
236
- e.preventDefault();
237
- e.stopPropagation();
238
- triggerKeyboardMove(e, 1, 0);
239
- break;
240
- case 'Up':
241
- case 'ArrowUp':
242
- e.preventDefault();
243
- e.stopPropagation();
244
- triggerKeyboardMove(e, 0, -1);
245
- break;
246
- case 'Down':
247
- case 'ArrowDown':
248
- e.preventDefault();
249
- e.stopPropagation();
250
- triggerKeyboardMove(e, 0, 1);
251
- break;
252
- }
253
- };
254
- return moveProps;
255
- }, [
256
- state,
257
- move,
258
- end
259
- ]);
260
- return {
261
- moveProps: moveProps
262
- };
263
- }
264
-
265
-
266
- export {$e8a7022cf87cba2a$export$36da96379f79f245 as useMove};
267
- //# sourceMappingURL=useMove.module.js.map
@@ -1,267 +0,0 @@
1
- import {disableTextSelection as $14c0b72509d70225$export$16a4697467175487, restoreTextSelection as $14c0b72509d70225$export$b0d6fa1ab32e3295} from "./textSelection.module.js";
2
- import {useRef as $5GN7j$useRef, useCallback as $5GN7j$useCallback, useState as $5GN7j$useState, useMemo as $5GN7j$useMemo} from "react";
3
- import {useGlobalListeners as $5GN7j$useGlobalListeners, useEffectEvent as $5GN7j$useEffectEvent, useLayoutEffect as $5GN7j$useLayoutEffect} from "@react-aria/utils";
4
-
5
- /*
6
- * Copyright 2020 Adobe. All rights reserved.
7
- * This file is licensed to you under the Apache License, Version 2.0 (the "License");
8
- * you may not use this file except in compliance with the License. You may obtain a copy
9
- * of the License at http://www.apache.org/licenses/LICENSE-2.0
10
- *
11
- * Unless required by applicable law or agreed to in writing, software distributed under
12
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
13
- * OF ANY KIND, either express or implied. See the License for the specific language
14
- * governing permissions and limitations under the License.
15
- */
16
-
17
-
18
- function $e8a7022cf87cba2a$export$36da96379f79f245(props) {
19
- let { onMoveStart: onMoveStart, onMove: onMove, onMoveEnd: onMoveEnd } = props;
20
- let state = (0, $5GN7j$useRef)({
21
- didMove: false,
22
- lastPosition: null,
23
- id: null
24
- });
25
- let { addGlobalListener: addGlobalListener, removeGlobalListener: removeGlobalListener } = (0, $5GN7j$useGlobalListeners)();
26
- let move = (0, $5GN7j$useCallback)((originalEvent, pointerType, deltaX, deltaY)=>{
27
- if (deltaX === 0 && deltaY === 0) return;
28
- if (!state.current.didMove) {
29
- state.current.didMove = true;
30
- onMoveStart === null || onMoveStart === void 0 ? void 0 : onMoveStart({
31
- type: 'movestart',
32
- pointerType: pointerType,
33
- shiftKey: originalEvent.shiftKey,
34
- metaKey: originalEvent.metaKey,
35
- ctrlKey: originalEvent.ctrlKey,
36
- altKey: originalEvent.altKey
37
- });
38
- }
39
- onMove === null || onMove === void 0 ? void 0 : onMove({
40
- type: 'move',
41
- pointerType: pointerType,
42
- deltaX: deltaX,
43
- deltaY: deltaY,
44
- shiftKey: originalEvent.shiftKey,
45
- metaKey: originalEvent.metaKey,
46
- ctrlKey: originalEvent.ctrlKey,
47
- altKey: originalEvent.altKey
48
- });
49
- }, [
50
- onMoveStart,
51
- onMove,
52
- state
53
- ]);
54
- let moveEvent = (0, $5GN7j$useEffectEvent)(move);
55
- let end = (0, $5GN7j$useCallback)((originalEvent, pointerType)=>{
56
- (0, $14c0b72509d70225$export$b0d6fa1ab32e3295)();
57
- if (state.current.didMove) onMoveEnd === null || onMoveEnd === void 0 ? void 0 : onMoveEnd({
58
- type: 'moveend',
59
- pointerType: pointerType,
60
- shiftKey: originalEvent.shiftKey,
61
- metaKey: originalEvent.metaKey,
62
- ctrlKey: originalEvent.ctrlKey,
63
- altKey: originalEvent.altKey
64
- });
65
- }, [
66
- onMoveEnd,
67
- state
68
- ]);
69
- let endEvent = (0, $5GN7j$useEffectEvent)(end);
70
- let [pointerDown, setPointerDown] = (0, $5GN7j$useState)(null);
71
- (0, $5GN7j$useLayoutEffect)(()=>{
72
- if (pointerDown === 'pointer') {
73
- let onPointerMove = (e)=>{
74
- if (e.pointerId === state.current.id) {
75
- var _state_current_lastPosition, _state_current_lastPosition1;
76
- let pointerType = e.pointerType || 'mouse';
77
- var _state_current_lastPosition_pageX, _state_current_lastPosition_pageY;
78
- // Problems with PointerEvent#movementX/movementY:
79
- // 1. it is always 0 on macOS Safari.
80
- // 2. On Chrome Android, it's scaled by devicePixelRatio, but not on Chrome macOS
81
- moveEvent(e, pointerType, 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));
82
- state.current.lastPosition = {
83
- pageX: e.pageX,
84
- pageY: e.pageY
85
- };
86
- }
87
- };
88
- let onPointerUp = (e)=>{
89
- if (e.pointerId === state.current.id) {
90
- let pointerType = e.pointerType || 'mouse';
91
- endEvent(e, pointerType);
92
- state.current.id = null;
93
- removeGlobalListener(window, 'pointermove', onPointerMove, false);
94
- removeGlobalListener(window, 'pointerup', onPointerUp, false);
95
- removeGlobalListener(window, 'pointercancel', onPointerUp, false);
96
- setPointerDown(null);
97
- }
98
- };
99
- addGlobalListener(window, 'pointermove', onPointerMove, false);
100
- addGlobalListener(window, 'pointerup', onPointerUp, false);
101
- addGlobalListener(window, 'pointercancel', onPointerUp, false);
102
- return ()=>{
103
- removeGlobalListener(window, 'pointermove', onPointerMove, false);
104
- removeGlobalListener(window, 'pointerup', onPointerUp, false);
105
- removeGlobalListener(window, 'pointercancel', onPointerUp, false);
106
- };
107
- } else if (pointerDown === 'mouse' && process.env.NODE_ENV === 'test') {
108
- let onMouseMove = (e)=>{
109
- if (e.button === 0) {
110
- var _state_current_lastPosition, _state_current_lastPosition1;
111
- var _state_current_lastPosition_pageX, _state_current_lastPosition_pageY;
112
- moveEvent(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));
113
- state.current.lastPosition = {
114
- pageX: e.pageX,
115
- pageY: e.pageY
116
- };
117
- }
118
- };
119
- let onMouseUp = (e)=>{
120
- if (e.button === 0) {
121
- endEvent(e, 'mouse');
122
- removeGlobalListener(window, 'mousemove', onMouseMove, false);
123
- removeGlobalListener(window, 'mouseup', onMouseUp, false);
124
- setPointerDown(null);
125
- }
126
- };
127
- addGlobalListener(window, 'mousemove', onMouseMove, false);
128
- addGlobalListener(window, 'mouseup', onMouseUp, false);
129
- return ()=>{
130
- removeGlobalListener(window, 'mousemove', onMouseMove, false);
131
- removeGlobalListener(window, 'mouseup', onMouseUp, false);
132
- };
133
- } else if (pointerDown === 'touch' && process.env.NODE_ENV === 'test') {
134
- let onTouchMove = (e)=>{
135
- let touch = [
136
- ...e.changedTouches
137
- ].findIndex(({ identifier: identifier })=>identifier === state.current.id);
138
- if (touch >= 0) {
139
- var _state_current_lastPosition, _state_current_lastPosition1;
140
- let { pageX: pageX, pageY: pageY } = e.changedTouches[touch];
141
- var _state_current_lastPosition_pageX, _state_current_lastPosition_pageY;
142
- moveEvent(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));
143
- state.current.lastPosition = {
144
- pageX: pageX,
145
- pageY: pageY
146
- };
147
- }
148
- };
149
- let onTouchEnd = (e)=>{
150
- let touch = [
151
- ...e.changedTouches
152
- ].findIndex(({ identifier: identifier })=>identifier === state.current.id);
153
- if (touch >= 0) {
154
- endEvent(e, 'touch');
155
- state.current.id = null;
156
- removeGlobalListener(window, 'touchmove', onTouchMove);
157
- removeGlobalListener(window, 'touchend', onTouchEnd);
158
- removeGlobalListener(window, 'touchcancel', onTouchEnd);
159
- setPointerDown(null);
160
- }
161
- };
162
- addGlobalListener(window, 'touchmove', onTouchMove, false);
163
- addGlobalListener(window, 'touchend', onTouchEnd, false);
164
- addGlobalListener(window, 'touchcancel', onTouchEnd, false);
165
- return ()=>{
166
- removeGlobalListener(window, 'touchmove', onTouchMove, false);
167
- removeGlobalListener(window, 'touchend', onTouchEnd, false);
168
- removeGlobalListener(window, 'touchcancel', onTouchEnd, false);
169
- };
170
- }
171
- }, [
172
- pointerDown,
173
- addGlobalListener,
174
- removeGlobalListener
175
- ]);
176
- let moveProps = (0, $5GN7j$useMemo)(()=>{
177
- let moveProps = {};
178
- let start = ()=>{
179
- (0, $14c0b72509d70225$export$16a4697467175487)();
180
- state.current.didMove = false;
181
- };
182
- if (typeof PointerEvent === 'undefined' && process.env.NODE_ENV === 'test') {
183
- moveProps.onMouseDown = (e)=>{
184
- if (e.button === 0) {
185
- start();
186
- e.stopPropagation();
187
- e.preventDefault();
188
- state.current.lastPosition = {
189
- pageX: e.pageX,
190
- pageY: e.pageY
191
- };
192
- setPointerDown('mouse');
193
- }
194
- };
195
- moveProps.onTouchStart = (e)=>{
196
- if (e.changedTouches.length === 0 || state.current.id != null) return;
197
- let { pageX: pageX, pageY: pageY, identifier: identifier } = e.changedTouches[0];
198
- start();
199
- e.stopPropagation();
200
- e.preventDefault();
201
- state.current.lastPosition = {
202
- pageX: pageX,
203
- pageY: pageY
204
- };
205
- state.current.id = identifier;
206
- setPointerDown('touch');
207
- };
208
- } else moveProps.onPointerDown = (e)=>{
209
- if (e.button === 0 && state.current.id == null) {
210
- start();
211
- e.stopPropagation();
212
- e.preventDefault();
213
- state.current.lastPosition = {
214
- pageX: e.pageX,
215
- pageY: e.pageY
216
- };
217
- state.current.id = e.pointerId;
218
- setPointerDown('pointer');
219
- }
220
- };
221
- let triggerKeyboardMove = (e, deltaX, deltaY)=>{
222
- start();
223
- move(e, 'keyboard', deltaX, deltaY);
224
- end(e, 'keyboard');
225
- };
226
- moveProps.onKeyDown = (e)=>{
227
- switch(e.key){
228
- case 'Left':
229
- case 'ArrowLeft':
230
- e.preventDefault();
231
- e.stopPropagation();
232
- triggerKeyboardMove(e, -1, 0);
233
- break;
234
- case 'Right':
235
- case 'ArrowRight':
236
- e.preventDefault();
237
- e.stopPropagation();
238
- triggerKeyboardMove(e, 1, 0);
239
- break;
240
- case 'Up':
241
- case 'ArrowUp':
242
- e.preventDefault();
243
- e.stopPropagation();
244
- triggerKeyboardMove(e, 0, -1);
245
- break;
246
- case 'Down':
247
- case 'ArrowDown':
248
- e.preventDefault();
249
- e.stopPropagation();
250
- triggerKeyboardMove(e, 0, 1);
251
- break;
252
- }
253
- };
254
- return moveProps;
255
- }, [
256
- state,
257
- move,
258
- end
259
- ]);
260
- return {
261
- moveProps: moveProps
262
- };
263
- }
264
-
265
-
266
- export {$e8a7022cf87cba2a$export$36da96379f79f245 as useMove};
267
- //# sourceMappingURL=useMove.module.js.map
@@ -1 +0,0 @@
1
- {"mappings":"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","sources":["packages/@react-aria/interactions/src/useMove.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {disableTextSelection, restoreTextSelection} from './textSelection';\nimport {DOMAttributes, MoveEvents, PointerType} from '@react-types/shared';\nimport React, {useCallback, useMemo, useRef, useState} from 'react';\nimport {useEffectEvent, useGlobalListeners, useLayoutEffect} from '@react-aria/utils';\n\nexport interface MoveResult {\n /** Props to spread on the target element. */\n moveProps: DOMAttributes\n}\n\ninterface EventBase {\n shiftKey: boolean,\n ctrlKey: boolean,\n metaKey: boolean,\n altKey: boolean\n}\n\n/**\n * Handles move interactions across mouse, touch, and keyboard, including dragging with\n * the mouse or touch, and using the arrow keys. Normalizes behavior across browsers and\n * platforms, and ignores emulated mouse events on touch devices.\n */\nexport function useMove(props: MoveEvents): MoveResult {\n let {onMoveStart, onMove, onMoveEnd} = props;\n\n let state = useRef<{\n didMove: boolean,\n lastPosition: {pageX: number, pageY: number} | null,\n id: number | null\n }>({didMove: false, lastPosition: null, id: null});\n\n let {addGlobalListener, removeGlobalListener} = useGlobalListeners();\n\n let move = useCallback((originalEvent: EventBase, pointerType: PointerType, deltaX: number, deltaY: number) => {\n if (deltaX === 0 && deltaY === 0) {\n return;\n }\n\n if (!state.current.didMove) {\n state.current.didMove = true;\n onMoveStart?.({\n type: 'movestart',\n pointerType,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n onMove?.({\n type: 'move',\n pointerType,\n deltaX: deltaX,\n deltaY: deltaY,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }, [onMoveStart, onMove, state]);\n let moveEvent = useEffectEvent(move);\n\n let end = useCallback((originalEvent: EventBase, pointerType: PointerType) => {\n restoreTextSelection();\n if (state.current.didMove) {\n onMoveEnd?.({\n type: 'moveend',\n pointerType,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey,\n altKey: originalEvent.altKey\n });\n }\n }, [onMoveEnd, state]);\n let endEvent = useEffectEvent(end);\n\n let [pointerDown, setPointerDown] = useState<'pointer' | 'mouse' | 'touch' | null>(null);\n useLayoutEffect(() => {\n if (pointerDown === 'pointer') {\n let onPointerMove = (e: PointerEvent) => {\n if (e.pointerId === state.current.id) {\n let pointerType = (e.pointerType || 'mouse') as PointerType;\n\n // Problems with PointerEvent#movementX/movementY:\n // 1. it is always 0 on macOS Safari.\n // 2. On Chrome Android, it's scaled by devicePixelRatio, but not on Chrome macOS\n moveEvent(e, pointerType, e.pageX - (state.current.lastPosition?.pageX ?? 0), e.pageY - (state.current.lastPosition?.pageY ?? 0));\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n }\n };\n\n let onPointerUp = (e: PointerEvent) => {\n if (e.pointerId === state.current.id) {\n let pointerType = (e.pointerType || 'mouse') as PointerType;\n endEvent(e, pointerType);\n state.current.id = null;\n removeGlobalListener(window, 'pointermove', onPointerMove, false);\n removeGlobalListener(window, 'pointerup', onPointerUp, false);\n removeGlobalListener(window, 'pointercancel', onPointerUp, false);\n setPointerDown(null);\n }\n };\n addGlobalListener(window, 'pointermove', onPointerMove, false);\n addGlobalListener(window, 'pointerup', onPointerUp, false);\n addGlobalListener(window, 'pointercancel', onPointerUp, false);\n return () => {\n removeGlobalListener(window, 'pointermove', onPointerMove, false);\n removeGlobalListener(window, 'pointerup', onPointerUp, false);\n removeGlobalListener(window, 'pointercancel', onPointerUp, false);\n };\n } else if (pointerDown === 'mouse' && process.env.NODE_ENV === 'test') {\n let onMouseMove = (e: MouseEvent) => {\n if (e.button === 0) {\n moveEvent(e, 'mouse', e.pageX - (state.current.lastPosition?.pageX ?? 0), e.pageY - (state.current.lastPosition?.pageY ?? 0));\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n }\n };\n let onMouseUp = (e: MouseEvent) => {\n if (e.button === 0) {\n endEvent(e, 'mouse');\n removeGlobalListener(window, 'mousemove', onMouseMove, false);\n removeGlobalListener(window, 'mouseup', onMouseUp, false);\n setPointerDown(null);\n }\n };\n addGlobalListener(window, 'mousemove', onMouseMove, false);\n addGlobalListener(window, 'mouseup', onMouseUp, false);\n return () => {\n removeGlobalListener(window, 'mousemove', onMouseMove, false);\n removeGlobalListener(window, 'mouseup', onMouseUp, false);\n };\n } else if (pointerDown === 'touch' && process.env.NODE_ENV === 'test') {\n let onTouchMove = (e: TouchEvent) => {\n let touch = [...e.changedTouches].findIndex(({identifier}) => identifier === state.current.id);\n if (touch >= 0) {\n let {pageX, pageY} = e.changedTouches[touch];\n moveEvent(e, 'touch', pageX - (state.current.lastPosition?.pageX ?? 0), pageY - (state.current.lastPosition?.pageY ?? 0));\n state.current.lastPosition = {pageX, pageY};\n }\n };\n let onTouchEnd = (e: TouchEvent) => {\n let touch = [...e.changedTouches].findIndex(({identifier}) => identifier === state.current.id);\n if (touch >= 0) {\n endEvent(e, 'touch');\n state.current.id = null;\n removeGlobalListener(window, 'touchmove', onTouchMove);\n removeGlobalListener(window, 'touchend', onTouchEnd);\n removeGlobalListener(window, 'touchcancel', onTouchEnd);\n setPointerDown(null);\n }\n };\n addGlobalListener(window, 'touchmove', onTouchMove, false);\n addGlobalListener(window, 'touchend', onTouchEnd, false);\n addGlobalListener(window, 'touchcancel', onTouchEnd, false);\n return () => {\n removeGlobalListener(window, 'touchmove', onTouchMove, false);\n removeGlobalListener(window, 'touchend', onTouchEnd, false);\n removeGlobalListener(window, 'touchcancel', onTouchEnd, false);\n };\n }\n }, [pointerDown, addGlobalListener, removeGlobalListener]);\n\n let moveProps = useMemo(() => {\n let moveProps: DOMAttributes = {};\n\n let start = () => {\n disableTextSelection();\n state.current.didMove = false;\n };\n\n if (typeof PointerEvent === 'undefined' && process.env.NODE_ENV === 'test') {\n moveProps.onMouseDown = (e: React.MouseEvent) => {\n if (e.button === 0) {\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n setPointerDown('mouse');\n }\n };\n moveProps.onTouchStart = (e: React.TouchEvent) => {\n if (e.changedTouches.length === 0 || state.current.id != null) {\n return;\n }\n\n let {pageX, pageY, identifier} = e.changedTouches[0];\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {pageX, pageY};\n state.current.id = identifier;\n setPointerDown('touch');\n };\n } else {\n moveProps.onPointerDown = (e: React.PointerEvent) => {\n if (e.button === 0 && state.current.id == null) {\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {pageX: e.pageX, pageY: e.pageY};\n state.current.id = e.pointerId;\n setPointerDown('pointer');\n }\n };\n }\n\n let triggerKeyboardMove = (e: EventBase, deltaX: number, deltaY: number) => {\n start();\n move(e, 'keyboard', deltaX, deltaY);\n end(e, 'keyboard');\n };\n\n moveProps.onKeyDown = (e) => {\n switch (e.key) {\n case 'Left':\n case 'ArrowLeft':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, -1, 0);\n break;\n case 'Right':\n case 'ArrowRight':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 1, 0);\n break;\n case 'Up':\n case 'ArrowUp':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 0, -1);\n break;\n case 'Down':\n case 'ArrowDown':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(e, 0, 1);\n break;\n }\n };\n\n return moveProps;\n }, [state, move, end]);\n\n return {moveProps};\n}\n"],"names":[],"version":3,"file":"useMove.module.js.map"}