@hanzogui/floating 3.0.6 → 4.4.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/cjs/Floating.cjs +7 -5
- package/dist/cjs/Floating.native.js +18 -16
- package/dist/cjs/Floating.native.js.map +1 -1
- package/dist/cjs/index.cjs +28 -26
- package/dist/cjs/index.native.js +28 -26
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/interactions/PopupTriggerMap.cjs +21 -12
- package/dist/cjs/interactions/PopupTriggerMap.native.js +51 -27
- package/dist/cjs/interactions/PopupTriggerMap.native.js.map +1 -1
- package/dist/cjs/interactions/createFloatingEvents.cjs +21 -12
- package/dist/cjs/interactions/createFloatingEvents.native.js +22 -13
- package/dist/cjs/interactions/createFloatingEvents.native.js.map +1 -1
- package/dist/cjs/interactions/safePolygon.cjs +213 -131
- package/dist/cjs/interactions/safePolygon.native.js +182 -103
- package/dist/cjs/interactions/safePolygon.native.js.map +1 -1
- package/dist/cjs/interactions/types.cjs +7 -5
- package/dist/cjs/interactions/types.native.js +7 -5
- package/dist/cjs/interactions/types.native.js.map +1 -1
- package/dist/cjs/interactions/useClick.cjs +91 -49
- package/dist/cjs/interactions/useClick.native.js +96 -54
- package/dist/cjs/interactions/useClick.native.js.map +1 -1
- package/dist/cjs/interactions/useDelayGroup.cjs +63 -44
- package/dist/cjs/interactions/useDelayGroup.native.js +74 -58
- package/dist/cjs/interactions/useDelayGroup.native.js.map +1 -1
- package/dist/cjs/interactions/useFocus.cjs +73 -44
- package/dist/cjs/interactions/useFocus.native.js +75 -49
- package/dist/cjs/interactions/useFocus.native.js.map +1 -1
- package/dist/cjs/interactions/useHover.cjs +242 -109
- package/dist/cjs/interactions/useHover.native.js +268 -143
- package/dist/cjs/interactions/useHover.native.js.map +1 -1
- package/dist/cjs/interactions/useInnerOffset.cjs +88 -64
- package/dist/cjs/interactions/useInnerOffset.native.js +88 -65
- package/dist/cjs/interactions/useInnerOffset.native.js.map +1 -1
- package/dist/cjs/interactions/useInteractions.cjs +60 -31
- package/dist/cjs/interactions/useInteractions.native.js +133 -81
- package/dist/cjs/interactions/useInteractions.native.js.map +1 -1
- package/dist/cjs/interactions/useListNavigation.cjs +346 -181
- package/dist/cjs/interactions/useListNavigation.native.js +350 -214
- package/dist/cjs/interactions/useListNavigation.native.js.map +1 -1
- package/dist/cjs/interactions/useRole.cjs +83 -73
- package/dist/cjs/interactions/useRole.native.js +107 -99
- package/dist/cjs/interactions/useRole.native.js.map +1 -1
- package/dist/cjs/interactions/useTypeahead.cjs +115 -65
- package/dist/cjs/interactions/useTypeahead.native.js +122 -77
- package/dist/cjs/interactions/useTypeahead.native.js.map +1 -1
- package/dist/cjs/interactions/utils.cjs +68 -38
- package/dist/cjs/interactions/utils.native.js +93 -54
- package/dist/cjs/interactions/utils.native.js.map +1 -1
- package/dist/cjs/middleware/inner.cjs +79 -67
- package/dist/cjs/middleware/inner.native.js +86 -76
- package/dist/cjs/middleware/inner.native.js.map +1 -1
- package/dist/cjs/useFloating.cjs +48 -45
- package/dist/cjs/useFloating.native.js +50 -48
- package/dist/cjs/useFloating.native.js.map +1 -1
- package/dist/esm/Floating.native.js +5 -5
- package/dist/esm/Floating.native.js.map +1 -1
- package/dist/esm/interactions/PopupTriggerMap.mjs +9 -2
- package/dist/esm/interactions/PopupTriggerMap.mjs.map +1 -1
- package/dist/esm/interactions/PopupTriggerMap.native.js +39 -17
- package/dist/esm/interactions/PopupTriggerMap.native.js.map +1 -1
- package/dist/esm/interactions/createFloatingEvents.mjs +9 -2
- package/dist/esm/interactions/createFloatingEvents.mjs.map +1 -1
- package/dist/esm/interactions/createFloatingEvents.native.js +10 -3
- package/dist/esm/interactions/createFloatingEvents.native.js.map +1 -1
- package/dist/esm/interactions/safePolygon.mjs +201 -121
- package/dist/esm/interactions/safePolygon.mjs.map +1 -1
- package/dist/esm/interactions/safePolygon.native.js +170 -93
- package/dist/esm/interactions/safePolygon.native.js.map +1 -1
- package/dist/esm/interactions/useClick.mjs +79 -39
- package/dist/esm/interactions/useClick.mjs.map +1 -1
- package/dist/esm/interactions/useClick.native.js +82 -42
- package/dist/esm/interactions/useClick.native.js.map +1 -1
- package/dist/esm/interactions/useDelayGroup.mjs +39 -22
- package/dist/esm/interactions/useDelayGroup.mjs.map +1 -1
- package/dist/esm/interactions/useDelayGroup.native.js +42 -28
- package/dist/esm/interactions/useDelayGroup.native.js.map +1 -1
- package/dist/esm/interactions/useFocus.mjs +59 -32
- package/dist/esm/interactions/useFocus.mjs.map +1 -1
- package/dist/esm/interactions/useFocus.native.js +61 -37
- package/dist/esm/interactions/useFocus.native.js.map +1 -1
- package/dist/esm/interactions/useHover.mjs +215 -84
- package/dist/esm/interactions/useHover.mjs.map +1 -1
- package/dist/esm/interactions/useHover.native.js +240 -117
- package/dist/esm/interactions/useHover.native.js.map +1 -1
- package/dist/esm/interactions/useInnerOffset.mjs +61 -39
- package/dist/esm/interactions/useInnerOffset.mjs.map +1 -1
- package/dist/esm/interactions/useInnerOffset.native.js +61 -40
- package/dist/esm/interactions/useInnerOffset.native.js.map +1 -1
- package/dist/esm/interactions/useInteractions.mjs +48 -21
- package/dist/esm/interactions/useInteractions.mjs.map +1 -1
- package/dist/esm/interactions/useInteractions.native.js +121 -71
- package/dist/esm/interactions/useInteractions.native.js.map +1 -1
- package/dist/esm/interactions/useListNavigation.mjs +331 -168
- package/dist/esm/interactions/useListNavigation.mjs.map +1 -1
- package/dist/esm/interactions/useListNavigation.native.js +335 -201
- package/dist/esm/interactions/useListNavigation.native.js.map +1 -1
- package/dist/esm/interactions/useRole.mjs +59 -51
- package/dist/esm/interactions/useRole.mjs.map +1 -1
- package/dist/esm/interactions/useRole.native.js +82 -76
- package/dist/esm/interactions/useRole.native.js.map +1 -1
- package/dist/esm/interactions/useTypeahead.mjs +100 -52
- package/dist/esm/interactions/useTypeahead.mjs.map +1 -1
- package/dist/esm/interactions/useTypeahead.native.js +107 -64
- package/dist/esm/interactions/useTypeahead.native.js.map +1 -1
- package/dist/esm/interactions/utils.mjs +56 -28
- package/dist/esm/interactions/utils.mjs.map +1 -1
- package/dist/esm/interactions/utils.native.js +81 -44
- package/dist/esm/interactions/utils.native.js.map +1 -1
- package/dist/esm/middleware/inner.mjs +54 -44
- package/dist/esm/middleware/inner.mjs.map +1 -1
- package/dist/esm/middleware/inner.native.js +61 -53
- package/dist/esm/middleware/inner.native.js.map +1 -1
- package/dist/esm/useFloating.mjs +22 -21
- package/dist/esm/useFloating.mjs.map +1 -1
- package/dist/esm/useFloating.native.js +24 -24
- package/dist/esm/useFloating.native.js.map +1 -1
- package/package.json +3 -3
- package/src/middleware/inner.ts +4 -5
- package/types/middleware/inner.d.ts.map +1 -1
|
@@ -3,20 +3,22 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
3
3
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
4
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
5
|
var __export = (target, all) => {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
13
14
|
get: () => from[key],
|
|
14
15
|
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
15
16
|
});
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
18
20
|
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
19
|
-
value:
|
|
21
|
+
value: true
|
|
20
22
|
}), mod);
|
|
21
23
|
var utils_exports = {};
|
|
22
24
|
__export(utils_exports, {
|
|
@@ -48,27 +50,32 @@ function getDocument(node) {
|
|
|
48
50
|
return node?.ownerDocument || document;
|
|
49
51
|
}
|
|
50
52
|
function contains(parent, child) {
|
|
51
|
-
if (!parent || !child) return
|
|
53
|
+
if (!parent || !child) return false;
|
|
52
54
|
const rootNode = child.getRootNode?.();
|
|
53
|
-
if (parent.contains(child)) return
|
|
55
|
+
if (parent.contains(child)) return true;
|
|
54
56
|
if (rootNode && isShadowRoot(rootNode)) {
|
|
55
57
|
let next = child;
|
|
56
|
-
|
|
57
|
-
if (parent === next) return
|
|
58
|
+
while (next) {
|
|
59
|
+
if (parent === next) return true;
|
|
58
60
|
next = next.parentNode || next.host;
|
|
59
61
|
}
|
|
60
62
|
}
|
|
61
|
-
return
|
|
63
|
+
return false;
|
|
62
64
|
}
|
|
63
65
|
function isShadowRoot(node) {
|
|
64
66
|
return node instanceof ShadowRoot;
|
|
65
67
|
}
|
|
66
68
|
function getTarget(event) {
|
|
67
|
-
|
|
69
|
+
if ("composedPath" in event) {
|
|
70
|
+
return event.composedPath()[0];
|
|
71
|
+
}
|
|
72
|
+
return event.target;
|
|
68
73
|
}
|
|
69
74
|
function activeElement(doc) {
|
|
70
75
|
let el = doc.activeElement;
|
|
71
|
-
|
|
76
|
+
while (el?.shadowRoot?.activeElement != null) {
|
|
77
|
+
el = el.shadowRoot.activeElement;
|
|
78
|
+
}
|
|
72
79
|
return el;
|
|
73
80
|
}
|
|
74
81
|
function isHTMLElement(value) {
|
|
@@ -82,18 +89,23 @@ function isTypeableElement(element) {
|
|
|
82
89
|
return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);
|
|
83
90
|
}
|
|
84
91
|
function isTypeableCombobox(element) {
|
|
85
|
-
|
|
92
|
+
if (!element) return false;
|
|
93
|
+
return element.getAttribute("role") === "combobox" && isTypeableElement(element);
|
|
86
94
|
}
|
|
87
95
|
function getPlatform() {
|
|
88
96
|
const uaData = navigator.userAgentData;
|
|
89
|
-
|
|
97
|
+
if (uaData?.platform) return uaData.platform;
|
|
98
|
+
return navigator.platform;
|
|
90
99
|
}
|
|
91
100
|
function getUserAgent() {
|
|
92
101
|
const uaData = navigator.userAgentData;
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
102
|
+
if (uaData && Array.isArray(uaData.brands)) {
|
|
103
|
+
return uaData.brands.map(({
|
|
104
|
+
brand,
|
|
105
|
+
version
|
|
106
|
+
}) => `${brand}/${version}`).join(" ");
|
|
107
|
+
}
|
|
108
|
+
return navigator.userAgent;
|
|
97
109
|
}
|
|
98
110
|
function isSafari() {
|
|
99
111
|
return /apple/i.test(navigator.vendor);
|
|
@@ -105,28 +117,40 @@ function isJSDOM() {
|
|
|
105
117
|
return getUserAgent().includes("jsdom/");
|
|
106
118
|
}
|
|
107
119
|
function matchesFocusVisible(element) {
|
|
108
|
-
if (!element || isJSDOM()) return
|
|
120
|
+
if (!element || isJSDOM()) return true;
|
|
109
121
|
try {
|
|
110
122
|
return element.matches(":focus-visible");
|
|
111
123
|
} catch {
|
|
112
|
-
return
|
|
124
|
+
return true;
|
|
113
125
|
}
|
|
114
126
|
}
|
|
115
127
|
function isMouseLikePointerType(pointerType, strict) {
|
|
116
128
|
const values = ["mouse", "pen"];
|
|
117
|
-
|
|
129
|
+
if (!strict) {
|
|
130
|
+
values.push("", void 0);
|
|
131
|
+
}
|
|
132
|
+
return values.includes(pointerType);
|
|
118
133
|
}
|
|
119
134
|
function clearTimeoutIfSet(timeoutRef) {
|
|
120
|
-
timeoutRef.current !== -1
|
|
135
|
+
if (timeoutRef.current !== -1) {
|
|
136
|
+
clearTimeout(timeoutRef.current);
|
|
137
|
+
timeoutRef.current = -1;
|
|
138
|
+
}
|
|
121
139
|
}
|
|
122
140
|
function stopEvent(event) {
|
|
123
|
-
event.preventDefault()
|
|
141
|
+
event.preventDefault();
|
|
142
|
+
event.stopPropagation();
|
|
124
143
|
}
|
|
125
144
|
function isVirtualClick(event) {
|
|
126
|
-
|
|
145
|
+
if (event.mozInputSource === 0 && event.isTrusted) return true;
|
|
146
|
+
if (isAndroid() && event.pointerType) {
|
|
147
|
+
return event.type === "click" && event.buttons === 1;
|
|
148
|
+
}
|
|
149
|
+
return event.detail === 0 && !event.pointerType;
|
|
127
150
|
}
|
|
128
151
|
function isVirtualPointerEvent(event) {
|
|
129
|
-
|
|
152
|
+
if (isJSDOM()) return false;
|
|
153
|
+
return !isAndroid() && event.width === 0 && event.height === 0 || isAndroid() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === "mouse" || event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === "touch";
|
|
130
154
|
}
|
|
131
155
|
function isAndroid() {
|
|
132
156
|
const re = /android/i;
|
|
@@ -135,30 +159,36 @@ function isAndroid() {
|
|
|
135
159
|
let rafId = 0;
|
|
136
160
|
function enqueueFocus(el, options = {}) {
|
|
137
161
|
const {
|
|
138
|
-
preventScroll =
|
|
139
|
-
cancelPrevious =
|
|
140
|
-
sync =
|
|
162
|
+
preventScroll = false,
|
|
163
|
+
cancelPrevious = true,
|
|
164
|
+
sync = false
|
|
141
165
|
} = options;
|
|
142
166
|
cancelPrevious && cancelAnimationFrame(rafId);
|
|
143
167
|
const exec = () => el?.focus({
|
|
144
168
|
preventScroll
|
|
145
169
|
});
|
|
146
|
-
|
|
170
|
+
if (sync) {
|
|
171
|
+
exec();
|
|
172
|
+
} else {
|
|
173
|
+
rafId = requestAnimationFrame(exec);
|
|
174
|
+
}
|
|
147
175
|
}
|
|
148
176
|
function isListIndexDisabled(listRef, index, disabledIndices) {
|
|
149
|
-
if (typeof disabledIndices
|
|
177
|
+
if (typeof disabledIndices === "function") return disabledIndices(index);
|
|
150
178
|
if (disabledIndices) return disabledIndices.includes(index);
|
|
151
179
|
const element = listRef.current[index];
|
|
152
180
|
return element == null || element.hasAttribute("disabled") || element.getAttribute("aria-disabled") === "true";
|
|
153
181
|
}
|
|
154
182
|
function findNonDisabledListIndex(listRef, {
|
|
155
183
|
startingIndex = -1,
|
|
156
|
-
decrement =
|
|
184
|
+
decrement = false,
|
|
157
185
|
disabledIndices,
|
|
158
186
|
amount = 1
|
|
159
187
|
} = {}) {
|
|
160
188
|
let index = startingIndex;
|
|
161
|
-
do
|
|
189
|
+
do {
|
|
190
|
+
index += decrement ? -amount : amount;
|
|
191
|
+
} while (index >= 0 && index <= listRef.current.length - 1 && isListIndexDisabled(listRef, index, disabledIndices));
|
|
162
192
|
return index;
|
|
163
193
|
}
|
|
164
194
|
function getMinListIndex(listRef, disabledIndices) {
|
|
@@ -168,7 +198,7 @@ function getMinListIndex(listRef, disabledIndices) {
|
|
|
168
198
|
}
|
|
169
199
|
function getMaxListIndex(listRef, disabledIndices) {
|
|
170
200
|
return findNonDisabledListIndex(listRef, {
|
|
171
|
-
decrement:
|
|
201
|
+
decrement: true,
|
|
172
202
|
startingIndex: listRef.current.length,
|
|
173
203
|
disabledIndices
|
|
174
204
|
});
|
|
@@ -5,20 +5,22 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
7
|
var __export = (target, all) => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
15
16
|
get: () => from[key],
|
|
16
17
|
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
17
18
|
});
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
20
22
|
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
-
value:
|
|
23
|
+
value: true
|
|
22
24
|
}), mod);
|
|
23
25
|
var utils_exports = {};
|
|
24
26
|
__export(utils_exports, {
|
|
@@ -47,30 +49,44 @@ __export(utils_exports, {
|
|
|
47
49
|
});
|
|
48
50
|
module.exports = __toCommonJS(utils_exports);
|
|
49
51
|
function _instanceof(left, right) {
|
|
50
|
-
|
|
52
|
+
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
53
|
+
return !!right[Symbol.hasInstance](left);
|
|
54
|
+
} else {
|
|
55
|
+
return left instanceof right;
|
|
56
|
+
}
|
|
51
57
|
}
|
|
52
58
|
function getDocument(node) {
|
|
53
|
-
return node
|
|
59
|
+
return (node === null || node === void 0 ? void 0 : node.ownerDocument) || document;
|
|
54
60
|
}
|
|
55
61
|
function contains(parent, child) {
|
|
56
62
|
var _child_getRootNode;
|
|
57
|
-
if (!parent || !child) return
|
|
63
|
+
if (!parent || !child) return false;
|
|
58
64
|
var rootNode = (_child_getRootNode = child.getRootNode) === null || _child_getRootNode === void 0 ? void 0 : _child_getRootNode.call(child);
|
|
59
|
-
if (parent.contains(child)) return
|
|
60
|
-
if (rootNode && isShadowRoot(rootNode))
|
|
61
|
-
|
|
62
|
-
|
|
65
|
+
if (parent.contains(child)) return true;
|
|
66
|
+
if (rootNode && isShadowRoot(rootNode)) {
|
|
67
|
+
var next = child;
|
|
68
|
+
while (next) {
|
|
69
|
+
if (parent === next) return true;
|
|
70
|
+
next = next.parentNode || next.host;
|
|
71
|
+
}
|
|
63
72
|
}
|
|
64
|
-
return
|
|
73
|
+
return false;
|
|
65
74
|
}
|
|
66
75
|
function isShadowRoot(node) {
|
|
67
76
|
return _instanceof(node, ShadowRoot);
|
|
68
77
|
}
|
|
69
78
|
function getTarget(event) {
|
|
70
|
-
|
|
79
|
+
if ("composedPath" in event) {
|
|
80
|
+
return event.composedPath()[0];
|
|
81
|
+
}
|
|
82
|
+
return event.target;
|
|
71
83
|
}
|
|
72
84
|
function activeElement(doc) {
|
|
73
|
-
|
|
85
|
+
var _el_shadowRoot;
|
|
86
|
+
var el = doc.activeElement;
|
|
87
|
+
while ((el === null || el === void 0 ? void 0 : (_el_shadowRoot = el.shadowRoot) === null || _el_shadowRoot === void 0 ? void 0 : _el_shadowRoot.activeElement) != null) {
|
|
88
|
+
el = el.shadowRoot.activeElement;
|
|
89
|
+
}
|
|
74
90
|
return el;
|
|
75
91
|
}
|
|
76
92
|
function isHTMLElement(value) {
|
|
@@ -84,21 +100,26 @@ function isTypeableElement(element) {
|
|
|
84
100
|
return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);
|
|
85
101
|
}
|
|
86
102
|
function isTypeableCombobox(element) {
|
|
87
|
-
|
|
103
|
+
if (!element) return false;
|
|
104
|
+
return element.getAttribute("role") === "combobox" && isTypeableElement(element);
|
|
88
105
|
}
|
|
89
106
|
function getPlatform() {
|
|
90
107
|
var uaData = navigator.userAgentData;
|
|
91
|
-
|
|
108
|
+
if (uaData === null || uaData === void 0 ? void 0 : uaData.platform) return uaData.platform;
|
|
109
|
+
return navigator.platform;
|
|
92
110
|
}
|
|
93
111
|
function getUserAgent() {
|
|
94
112
|
var uaData = navigator.userAgentData;
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
113
|
+
if (uaData && Array.isArray(uaData.brands)) {
|
|
114
|
+
return uaData.brands.map(function (param) {
|
|
115
|
+
var {
|
|
116
|
+
brand,
|
|
117
|
+
version
|
|
118
|
+
} = param;
|
|
119
|
+
return `${brand}/${version}`;
|
|
120
|
+
}).join(" ");
|
|
121
|
+
}
|
|
122
|
+
return navigator.userAgent;
|
|
102
123
|
}
|
|
103
124
|
function isSafari() {
|
|
104
125
|
return /apple/i.test(navigator.vendor);
|
|
@@ -110,28 +131,40 @@ function isJSDOM() {
|
|
|
110
131
|
return getUserAgent().includes("jsdom/");
|
|
111
132
|
}
|
|
112
133
|
function matchesFocusVisible(element) {
|
|
113
|
-
if (!element || isJSDOM()) return
|
|
134
|
+
if (!element || isJSDOM()) return true;
|
|
114
135
|
try {
|
|
115
136
|
return element.matches(":focus-visible");
|
|
116
|
-
} catch {
|
|
117
|
-
return
|
|
137
|
+
} catch (e) {
|
|
138
|
+
return true;
|
|
118
139
|
}
|
|
119
140
|
}
|
|
120
141
|
function isMouseLikePointerType(pointerType, strict) {
|
|
121
142
|
var values = ["mouse", "pen"];
|
|
122
|
-
|
|
143
|
+
if (!strict) {
|
|
144
|
+
values.push("", void 0);
|
|
145
|
+
}
|
|
146
|
+
return values.includes(pointerType);
|
|
123
147
|
}
|
|
124
148
|
function clearTimeoutIfSet(timeoutRef) {
|
|
125
|
-
timeoutRef.current !== -1
|
|
149
|
+
if (timeoutRef.current !== -1) {
|
|
150
|
+
clearTimeout(timeoutRef.current);
|
|
151
|
+
timeoutRef.current = -1;
|
|
152
|
+
}
|
|
126
153
|
}
|
|
127
154
|
function stopEvent(event) {
|
|
128
|
-
event.preventDefault()
|
|
155
|
+
event.preventDefault();
|
|
156
|
+
event.stopPropagation();
|
|
129
157
|
}
|
|
130
158
|
function isVirtualClick(event) {
|
|
131
|
-
|
|
159
|
+
if (event.mozInputSource === 0 && event.isTrusted) return true;
|
|
160
|
+
if (isAndroid() && event.pointerType) {
|
|
161
|
+
return event.type === "click" && event.buttons === 1;
|
|
162
|
+
}
|
|
163
|
+
return event.detail === 0 && !event.pointerType;
|
|
132
164
|
}
|
|
133
165
|
function isVirtualPointerEvent(event) {
|
|
134
|
-
|
|
166
|
+
if (isJSDOM()) return false;
|
|
167
|
+
return !isAndroid() && event.width === 0 && event.height === 0 || isAndroid() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === "mouse" || event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === "touch";
|
|
135
168
|
}
|
|
136
169
|
function isAndroid() {
|
|
137
170
|
var re = /android/i;
|
|
@@ -139,35 +172,41 @@ function isAndroid() {
|
|
|
139
172
|
}
|
|
140
173
|
var rafId = 0;
|
|
141
174
|
function enqueueFocus(el) {
|
|
142
|
-
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
175
|
+
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
176
|
+
var {
|
|
177
|
+
preventScroll = false,
|
|
178
|
+
cancelPrevious = true,
|
|
179
|
+
sync = false
|
|
180
|
+
} = options;
|
|
148
181
|
cancelPrevious && cancelAnimationFrame(rafId);
|
|
149
182
|
var exec = function () {
|
|
150
|
-
return el
|
|
183
|
+
return el === null || el === void 0 ? void 0 : el.focus({
|
|
151
184
|
preventScroll
|
|
152
185
|
});
|
|
153
186
|
};
|
|
154
|
-
|
|
187
|
+
if (sync) {
|
|
188
|
+
exec();
|
|
189
|
+
} else {
|
|
190
|
+
rafId = requestAnimationFrame(exec);
|
|
191
|
+
}
|
|
155
192
|
}
|
|
156
193
|
function isListIndexDisabled(listRef, index, disabledIndices) {
|
|
157
|
-
if (typeof disabledIndices
|
|
194
|
+
if (typeof disabledIndices === "function") return disabledIndices(index);
|
|
158
195
|
if (disabledIndices) return disabledIndices.includes(index);
|
|
159
196
|
var element = listRef.current[index];
|
|
160
197
|
return element == null || element.hasAttribute("disabled") || element.getAttribute("aria-disabled") === "true";
|
|
161
198
|
}
|
|
162
199
|
function findNonDisabledListIndex(listRef) {
|
|
163
200
|
var {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
do
|
|
201
|
+
startingIndex = -1,
|
|
202
|
+
decrement = false,
|
|
203
|
+
disabledIndices,
|
|
204
|
+
amount = 1
|
|
205
|
+
} = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
206
|
+
var index = startingIndex;
|
|
207
|
+
do {
|
|
208
|
+
index += decrement ? -amount : amount;
|
|
209
|
+
} while (index >= 0 && index <= listRef.current.length - 1 && isListIndexDisabled(listRef, index, disabledIndices));
|
|
171
210
|
return index;
|
|
172
211
|
}
|
|
173
212
|
function getMinListIndex(listRef, disabledIndices) {
|
|
@@ -177,7 +216,7 @@ function getMinListIndex(listRef, disabledIndices) {
|
|
|
177
216
|
}
|
|
178
217
|
function getMaxListIndex(listRef, disabledIndices) {
|
|
179
218
|
return findNonDisabledListIndex(listRef, {
|
|
180
|
-
decrement:
|
|
219
|
+
decrement: true,
|
|
181
220
|
startingIndex: listRef.current.length,
|
|
182
221
|
disabledIndices
|
|
183
222
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","utils_exports","__export","activeElement","clearTimeoutIfSet","contains","enqueueFocus","findNonDisabledListIndex","getDocument","getMaxListIndex","getMinListIndex","getTarget","isElement","isHTMLElement","isIndexOutOfListBounds","isListIndexDisabled","isMac","isMouseLikePointerType","isSafari","isTypeableCombobox","isTypeableElement","isVirtualClick","isVirtualPointerEvent","matchesFocusVisible","stopEvent","module","exports","_instanceof","left","right","Symbol","hasInstance","node","ownerDocument","document","parent","child","_child_getRootNode","rootNode","getRootNode","call","isShadowRoot","next","parentNode","host","ShadowRoot","event","composedPath","target","doc","_el_shadowRoot","el","shadowRoot","HTMLElement","Element","TYPEABLE_SELECTOR","element","matches","getAttribute","getPlatform","uaData","navigator","userAgentData","platform","getUserAgent","Array","isArray","brands","map","param","brand","version","join","userAgent","test","vendor","toLowerCase","startsWith","maxTouchPoints","isJSDOM","includes","pointerType","strict","values","push","timeoutRef","current","clearTimeout","preventDefault","stopPropagation","mozInputSource","isTrusted","isAndroid","type","buttons","detail","width","height","pressure","re","rafId","options","arguments","length","preventScroll","cancelPrevious","sync","cancelAnimationFrame","exec","focus","requestAnimationFrame","listRef","index","disabledIndices","hasAttribute","startingIndex","decrement","amount"],"sources":["../../../src/interactions/utils.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","utils_exports","__export","activeElement","clearTimeoutIfSet","contains","enqueueFocus","findNonDisabledListIndex","getDocument","getMaxListIndex","getMinListIndex","getTarget","isElement","isHTMLElement","isIndexOutOfListBounds","isListIndexDisabled","isMac","isMouseLikePointerType","isSafari","isTypeableCombobox","isTypeableElement","isVirtualClick","isVirtualPointerEvent","matchesFocusVisible","stopEvent","module","exports","_instanceof","left","right","Symbol","hasInstance","node","ownerDocument","document","parent","child","_child_getRootNode","rootNode","getRootNode","call","isShadowRoot","next","parentNode","host","ShadowRoot","event","composedPath","target","doc","_el_shadowRoot","el","shadowRoot","HTMLElement","Element","TYPEABLE_SELECTOR","element","matches","getAttribute","getPlatform","uaData","navigator","userAgentData","platform","getUserAgent","Array","isArray","brands","map","param","brand","version","join","userAgent","test","vendor","toLowerCase","startsWith","maxTouchPoints","isJSDOM","includes","e","pointerType","strict","values","push","timeoutRef","current","clearTimeout","preventDefault","stopPropagation","mozInputSource","isTrusted","isAndroid","type","buttons","detail","width","height","pressure","re","rafId","options","arguments","length","preventScroll","cancelPrevious","sync","cancelAnimationFrame","exec","focus","requestAnimationFrame","listRef","index","disabledIndices","hasAttribute","startingIndex","decrement","amount"],"sources":["../../../src/interactions/utils.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|