@tamagui/floating 2.7.7 → 3.0.0-beta.1097.1
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 +9 -11
- package/dist/cjs/Floating.native.cjs +36 -0
- package/dist/cjs/Floating.native.js +19 -20
- package/dist/cjs/Floating.native.js.map +1 -1
- package/dist/cjs/index.cjs +44 -46
- package/dist/cjs/index.native.cjs +73 -0
- package/dist/cjs/index.native.js +44 -45
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/interactions/PopupTriggerMap.cjs +35 -39
- package/dist/cjs/interactions/PopupTriggerMap.native.cjs +95 -0
- package/dist/cjs/interactions/PopupTriggerMap.native.js +75 -75
- package/dist/cjs/interactions/PopupTriggerMap.native.js.map +1 -1
- package/dist/cjs/interactions/createFloatingEvents.cjs +35 -39
- package/dist/cjs/interactions/createFloatingEvents.native.cjs +51 -0
- package/dist/cjs/interactions/createFloatingEvents.native.js +38 -41
- package/dist/cjs/interactions/createFloatingEvents.native.js.map +1 -1
- package/dist/cjs/interactions/safePolygon.cjs +262 -252
- package/dist/cjs/interactions/safePolygon.native.cjs +293 -0
- package/dist/cjs/interactions/safePolygon.native.js +270 -259
- package/dist/cjs/interactions/safePolygon.native.js.map +1 -1
- package/dist/cjs/interactions/types.cjs +9 -11
- package/dist/cjs/interactions/types.native.cjs +18 -0
- package/dist/cjs/interactions/types.native.js +9 -10
- package/dist/cjs/interactions/types.native.js.map +1 -1
- package/dist/cjs/interactions/useClick.cjs +95 -105
- package/dist/cjs/interactions/useClick.native.cjs +121 -0
- package/dist/cjs/interactions/useClick.native.js +100 -109
- package/dist/cjs/interactions/useClick.native.js.map +1 -1
- package/dist/cjs/interactions/useDelayGroup.cjs +85 -91
- package/dist/cjs/interactions/useDelayGroup.native.cjs +118 -0
- package/dist/cjs/interactions/useDelayGroup.native.js +91 -96
- package/dist/cjs/interactions/useDelayGroup.native.js.map +1 -1
- package/dist/cjs/interactions/useFocus.cjs +107 -115
- package/dist/cjs/interactions/useFocus.native.cjs +130 -0
- package/dist/cjs/interactions/useFocus.native.js +113 -120
- package/dist/cjs/interactions/useFocus.native.js.map +1 -1
- package/dist/cjs/interactions/useHover.cjs +320 -335
- package/dist/cjs/interactions/useHover.native.cjs +356 -0
- package/dist/cjs/interactions/useHover.native.js +332 -347
- package/dist/cjs/interactions/useHover.native.js.map +1 -1
- package/dist/cjs/interactions/useInnerOffset.cjs +102 -111
- package/dist/cjs/interactions/useInnerOffset.native.cjs +131 -0
- package/dist/cjs/interactions/useInnerOffset.native.js +112 -120
- package/dist/cjs/interactions/useInnerOffset.native.js.map +1 -1
- package/dist/cjs/interactions/useInteractions.cjs +76 -92
- package/dist/cjs/interactions/useInteractions.native.cjs +199 -0
- package/dist/cjs/interactions/useInteractions.native.js +185 -200
- package/dist/cjs/interactions/useInteractions.native.js.map +1 -1
- package/dist/cjs/interactions/useListNavigation.cjs +404 -390
- package/dist/cjs/interactions/useListNavigation.native.cjs +446 -0
- package/dist/cjs/interactions/useListNavigation.native.js +416 -401
- package/dist/cjs/interactions/useListNavigation.native.js.map +1 -1
- package/dist/cjs/interactions/useRole.cjs +91 -106
- package/dist/cjs/interactions/useRole.native.cjs +120 -0
- package/dist/cjs/interactions/useRole.native.js +102 -116
- package/dist/cjs/interactions/useRole.native.js.map +1 -1
- package/dist/cjs/interactions/useTypeahead.cjs +114 -129
- package/dist/cjs/interactions/useTypeahead.native.cjs +143 -0
- package/dist/cjs/interactions/useTypeahead.native.js +127 -141
- package/dist/cjs/interactions/useTypeahead.native.js.map +1 -1
- package/dist/cjs/interactions/utils.cjs +125 -143
- package/dist/cjs/interactions/utils.native.cjs +201 -0
- package/dist/cjs/interactions/utils.native.js +132 -156
- package/dist/cjs/interactions/utils.native.js.map +1 -1
- package/dist/cjs/middleware/inner.cjs +73 -101
- package/dist/cjs/middleware/inner.native.cjs +101 -0
- package/dist/cjs/middleware/inner.native.js +82 -109
- package/dist/cjs/middleware/inner.native.js.map +1 -1
- package/dist/cjs/useFloating.cjs +33 -46
- package/dist/cjs/useFloating.native.cjs +55 -0
- package/dist/cjs/useFloating.native.js +36 -48
- package/dist/cjs/useFloating.native.js.map +1 -1
- package/dist/esm/Floating.mjs +1 -2
- package/dist/esm/Floating.native.js +6 -4
- package/dist/esm/Floating.native.js.map +1 -1
- package/dist/esm/index.js +4 -5
- package/dist/esm/index.mjs +4 -5
- package/dist/esm/index.native.js +4 -5
- package/dist/esm/interactions/PopupTriggerMap.mjs +23 -22
- package/dist/esm/interactions/PopupTriggerMap.mjs.map +1 -1
- package/dist/esm/interactions/PopupTriggerMap.native.js +62 -58
- package/dist/esm/interactions/PopupTriggerMap.native.js.map +1 -1
- package/dist/esm/interactions/createFloatingEvents.mjs +22 -21
- package/dist/esm/interactions/createFloatingEvents.mjs.map +1 -1
- package/dist/esm/interactions/createFloatingEvents.native.js +25 -24
- package/dist/esm/interactions/createFloatingEvents.native.js.map +1 -1
- package/dist/esm/interactions/safePolygon.mjs +250 -234
- package/dist/esm/interactions/safePolygon.mjs.map +1 -1
- package/dist/esm/interactions/safePolygon.native.js +258 -242
- package/dist/esm/interactions/safePolygon.native.js.map +1 -1
- package/dist/esm/interactions/types.mjs +0 -2
- package/dist/esm/interactions/types.native.js +0 -2
- package/dist/esm/interactions/useClick.mjs +83 -87
- package/dist/esm/interactions/useClick.mjs.map +1 -1
- package/dist/esm/interactions/useClick.native.js +88 -92
- package/dist/esm/interactions/useClick.native.js.map +1 -1
- package/dist/esm/interactions/useDelayGroup.mjs +68 -65
- package/dist/esm/interactions/useDelayGroup.mjs.map +1 -1
- package/dist/esm/interactions/useDelayGroup.native.js +74 -71
- package/dist/esm/interactions/useDelayGroup.native.js.map +1 -1
- package/dist/esm/interactions/useFocus.mjs +95 -97
- package/dist/esm/interactions/useFocus.mjs.map +1 -1
- package/dist/esm/interactions/useFocus.native.js +101 -103
- package/dist/esm/interactions/useFocus.native.js.map +1 -1
- package/dist/esm/interactions/useHover.mjs +304 -310
- package/dist/esm/interactions/useHover.mjs.map +1 -1
- package/dist/esm/interactions/useHover.native.js +316 -323
- package/dist/esm/interactions/useHover.native.js.map +1 -1
- package/dist/esm/interactions/useInnerOffset.mjs +87 -85
- package/dist/esm/interactions/useInnerOffset.mjs.map +1 -1
- package/dist/esm/interactions/useInnerOffset.native.js +97 -95
- package/dist/esm/interactions/useInnerOffset.native.js.map +1 -1
- package/dist/esm/interactions/useInteractions.mjs +65 -75
- package/dist/esm/interactions/useInteractions.mjs.map +1 -1
- package/dist/esm/interactions/useInteractions.native.js +172 -182
- package/dist/esm/interactions/useInteractions.native.js.map +1 -1
- package/dist/esm/interactions/useListNavigation.mjs +393 -373
- package/dist/esm/interactions/useListNavigation.mjs.map +1 -1
- package/dist/esm/interactions/useListNavigation.native.js +405 -385
- package/dist/esm/interactions/useListNavigation.native.js.map +1 -1
- package/dist/esm/interactions/useRole.mjs +76 -80
- package/dist/esm/interactions/useRole.mjs.map +1 -1
- package/dist/esm/interactions/useRole.native.js +87 -91
- package/dist/esm/interactions/useRole.native.js.map +1 -1
- package/dist/esm/interactions/useTypeahead.mjs +102 -111
- package/dist/esm/interactions/useTypeahead.mjs.map +1 -1
- package/dist/esm/interactions/useTypeahead.native.js +115 -124
- package/dist/esm/interactions/useTypeahead.native.js.map +1 -1
- package/dist/esm/interactions/utils.mjs +91 -106
- package/dist/esm/interactions/utils.mjs.map +1 -1
- package/dist/esm/interactions/utils.native.js +98 -120
- package/dist/esm/interactions/utils.native.js.map +1 -1
- package/dist/esm/middleware/inner.mjs +58 -75
- package/dist/esm/middleware/inner.mjs.map +1 -1
- package/dist/esm/middleware/inner.native.js +67 -84
- package/dist/esm/middleware/inner.native.js.map +1 -1
- package/dist/esm/useFloating.mjs +17 -21
- package/dist/esm/useFloating.mjs.map +1 -1
- package/dist/esm/useFloating.native.js +19 -23
- package/dist/esm/useFloating.native.js.map +1 -1
- package/package.json +8 -6
- package/src/interactions/useInteractions.ts +61 -59
- package/src/interactions/useListNavigation.ts +7 -2
- package/types/interactions/PopupTriggerMap.d.ts.map +1 -1
- package/types/interactions/useInteractions.d.ts +3 -3
- package/types/interactions/useInteractions.d.ts.map +1 -1
- package/types/interactions/useListNavigation.d.ts.map +1 -1
- package/types/middleware/inner.d.ts.map +1 -1
- package/types/useFloating.d.ts.map +1 -1
- package/dist/esm/Floating.mjs.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/index.mjs.map +0 -1
- package/dist/esm/index.native.js.map +0 -1
- package/dist/esm/interactions/types.mjs.map +0 -1
- package/dist/esm/interactions/types.native.js.map +0 -1
|
@@ -5,223 +5,199 @@ 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
|
-
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
12
|
};
|
|
13
13
|
var __copyProps = (to, from, except, desc) => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
21
|
};
|
|
22
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
-
value: true
|
|
24
|
-
}), mod);
|
|
22
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
25
23
|
var utils_exports = {};
|
|
26
24
|
__export(utils_exports, {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
25
|
+
activeElement: () => activeElement,
|
|
26
|
+
clearTimeoutIfSet: () => clearTimeoutIfSet,
|
|
27
|
+
contains: () => contains,
|
|
28
|
+
enqueueFocus: () => enqueueFocus,
|
|
29
|
+
findNonDisabledListIndex: () => findNonDisabledListIndex,
|
|
30
|
+
getDocument: () => getDocument,
|
|
31
|
+
getMaxListIndex: () => getMaxListIndex,
|
|
32
|
+
getMinListIndex: () => getMinListIndex,
|
|
33
|
+
getTarget: () => getTarget,
|
|
34
|
+
isElement: () => isElement,
|
|
35
|
+
isHTMLElement: () => isHTMLElement,
|
|
36
|
+
isIndexOutOfListBounds: () => isIndexOutOfListBounds,
|
|
37
|
+
isListIndexDisabled: () => isListIndexDisabled,
|
|
38
|
+
isMac: () => isMac,
|
|
39
|
+
isMouseLikePointerType: () => isMouseLikePointerType,
|
|
40
|
+
isSafari: () => isSafari,
|
|
41
|
+
isTypeableCombobox: () => isTypeableCombobox,
|
|
42
|
+
isTypeableElement: () => isTypeableElement,
|
|
43
|
+
isVirtualClick: () => isVirtualClick,
|
|
44
|
+
isVirtualPointerEvent: () => isVirtualPointerEvent,
|
|
45
|
+
matchesFocusVisible: () => matchesFocusVisible,
|
|
46
|
+
stopEvent: () => stopEvent
|
|
49
47
|
});
|
|
50
48
|
module.exports = __toCommonJS(utils_exports);
|
|
51
|
-
function _instanceof(left, right) {
|
|
52
|
-
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
53
|
-
return !!right[Symbol.hasInstance](left);
|
|
54
|
-
} else {
|
|
55
|
-
return left instanceof right;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
49
|
function getDocument(node) {
|
|
59
|
-
|
|
50
|
+
return (node === null || node === void 0 ? void 0 : node.ownerDocument) || document;
|
|
60
51
|
}
|
|
61
52
|
function contains(parent, child) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
53
|
+
var _child_getRootNode;
|
|
54
|
+
if (!parent || !child) return false;
|
|
55
|
+
var rootNode = (_child_getRootNode = child.getRootNode) === null || _child_getRootNode === void 0 ? void 0 : _child_getRootNode.call(child);
|
|
56
|
+
if (parent.contains(child)) return true;
|
|
57
|
+
if (rootNode && isShadowRoot(rootNode)) {
|
|
58
|
+
var next = child;
|
|
59
|
+
while (next) {
|
|
60
|
+
if (parent === next) return true;
|
|
61
|
+
next = next.parentNode || next.host;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return false;
|
|
74
65
|
}
|
|
75
66
|
function isShadowRoot(node) {
|
|
76
|
-
|
|
67
|
+
return node instanceof ShadowRoot;
|
|
77
68
|
}
|
|
78
69
|
function getTarget(event) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
70
|
+
if ("composedPath" in event) {
|
|
71
|
+
return event.composedPath()[0];
|
|
72
|
+
}
|
|
73
|
+
return event.target;
|
|
83
74
|
}
|
|
84
75
|
function activeElement(doc) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
76
|
+
var _el_shadowRoot;
|
|
77
|
+
var el = doc.activeElement;
|
|
78
|
+
while ((el === null || el === void 0 ? void 0 : (_el_shadowRoot = el.shadowRoot) === null || _el_shadowRoot === void 0 ? void 0 : _el_shadowRoot.activeElement) != null) {
|
|
79
|
+
el = el.shadowRoot.activeElement;
|
|
80
|
+
}
|
|
81
|
+
return el;
|
|
91
82
|
}
|
|
92
83
|
function isHTMLElement(value) {
|
|
93
|
-
|
|
84
|
+
return value instanceof HTMLElement;
|
|
94
85
|
}
|
|
95
86
|
function isElement(value) {
|
|
96
|
-
|
|
87
|
+
return value instanceof Element;
|
|
97
88
|
}
|
|
98
89
|
var TYPEABLE_SELECTOR = "input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])";
|
|
99
90
|
function isTypeableElement(element) {
|
|
100
|
-
|
|
91
|
+
return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);
|
|
101
92
|
}
|
|
102
93
|
function isTypeableCombobox(element) {
|
|
103
|
-
|
|
104
|
-
|
|
94
|
+
if (!element) return false;
|
|
95
|
+
return element.getAttribute("role") === "combobox" && isTypeableElement(element);
|
|
105
96
|
}
|
|
106
97
|
function getPlatform() {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
98
|
+
var uaData = navigator.userAgentData;
|
|
99
|
+
if (uaData === null || uaData === void 0 ? void 0 : uaData.platform) return uaData.platform;
|
|
100
|
+
return navigator.platform;
|
|
110
101
|
}
|
|
111
102
|
function getUserAgent() {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}).join(" ");
|
|
121
|
-
}
|
|
122
|
-
return navigator.userAgent;
|
|
103
|
+
var uaData = navigator.userAgentData;
|
|
104
|
+
if (uaData && Array.isArray(uaData.brands)) {
|
|
105
|
+
return uaData.brands.map(function(param) {
|
|
106
|
+
var { brand, version } = param;
|
|
107
|
+
return `${brand}/${version}`;
|
|
108
|
+
}).join(" ");
|
|
109
|
+
}
|
|
110
|
+
return navigator.userAgent;
|
|
123
111
|
}
|
|
124
112
|
function isSafari() {
|
|
125
|
-
|
|
113
|
+
return /apple/i.test(navigator.vendor);
|
|
126
114
|
}
|
|
127
115
|
function isMac() {
|
|
128
|
-
|
|
116
|
+
return getPlatform().toLowerCase().startsWith("mac") && !navigator.maxTouchPoints;
|
|
129
117
|
}
|
|
130
118
|
function isJSDOM() {
|
|
131
|
-
|
|
119
|
+
return getUserAgent().includes("jsdom/");
|
|
132
120
|
}
|
|
133
121
|
function matchesFocusVisible(element) {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
122
|
+
if (!element || isJSDOM()) return true;
|
|
123
|
+
try {
|
|
124
|
+
return element.matches(":focus-visible");
|
|
125
|
+
} catch (e) {
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
140
128
|
}
|
|
141
129
|
function isMouseLikePointerType(pointerType, strict) {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
130
|
+
var values = ["mouse", "pen"];
|
|
131
|
+
if (!strict) {
|
|
132
|
+
values.push("", void 0);
|
|
133
|
+
}
|
|
134
|
+
return values.includes(pointerType);
|
|
147
135
|
}
|
|
148
136
|
function clearTimeoutIfSet(timeoutRef) {
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
137
|
+
if (timeoutRef.current !== -1) {
|
|
138
|
+
clearTimeout(timeoutRef.current);
|
|
139
|
+
timeoutRef.current = -1;
|
|
140
|
+
}
|
|
153
141
|
}
|
|
154
142
|
function stopEvent(event) {
|
|
155
|
-
|
|
156
|
-
|
|
143
|
+
event.preventDefault();
|
|
144
|
+
event.stopPropagation();
|
|
157
145
|
}
|
|
158
146
|
function isVirtualClick(event) {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
147
|
+
if (event.mozInputSource === 0 && event.isTrusted) return true;
|
|
148
|
+
if (isAndroid() && event.pointerType) {
|
|
149
|
+
return event.type === "click" && event.buttons === 1;
|
|
150
|
+
}
|
|
151
|
+
return event.detail === 0 && !event.pointerType;
|
|
164
152
|
}
|
|
165
153
|
function isVirtualPointerEvent(event) {
|
|
166
|
-
|
|
167
|
-
|
|
154
|
+
if (isJSDOM()) return false;
|
|
155
|
+
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";
|
|
168
156
|
}
|
|
169
157
|
function isAndroid() {
|
|
170
|
-
|
|
171
|
-
|
|
158
|
+
var re = /android/i;
|
|
159
|
+
return re.test(getPlatform()) || re.test(getUserAgent());
|
|
172
160
|
}
|
|
173
161
|
var rafId = 0;
|
|
174
162
|
function enqueueFocus(el) {
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
};
|
|
187
|
-
if (sync) {
|
|
188
|
-
exec();
|
|
189
|
-
} else {
|
|
190
|
-
rafId = requestAnimationFrame(exec);
|
|
191
|
-
}
|
|
163
|
+
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
164
|
+
var { preventScroll = false, cancelPrevious = true, sync = false } = options;
|
|
165
|
+
cancelPrevious && cancelAnimationFrame(rafId);
|
|
166
|
+
var exec = function() {
|
|
167
|
+
return el === null || el === void 0 ? void 0 : el.focus({ preventScroll });
|
|
168
|
+
};
|
|
169
|
+
if (sync) {
|
|
170
|
+
exec();
|
|
171
|
+
} else {
|
|
172
|
+
rafId = requestAnimationFrame(exec);
|
|
173
|
+
}
|
|
192
174
|
}
|
|
193
175
|
function isListIndexDisabled(listRef, index, disabledIndices) {
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
176
|
+
if (typeof disabledIndices === "function") return disabledIndices(index);
|
|
177
|
+
if (disabledIndices) return disabledIndices.includes(index);
|
|
178
|
+
var element = listRef.current[index];
|
|
179
|
+
return element == null || element.hasAttribute("disabled") || element.getAttribute("aria-disabled") === "true";
|
|
198
180
|
}
|
|
199
181
|
function findNonDisabledListIndex(listRef) {
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
var index = startingIndex;
|
|
207
|
-
do {
|
|
208
|
-
index += decrement ? -amount : amount;
|
|
209
|
-
} while (index >= 0 && index <= listRef.current.length - 1 && isListIndexDisabled(listRef, index, disabledIndices));
|
|
210
|
-
return index;
|
|
182
|
+
var { startingIndex = -1, decrement = false, disabledIndices, amount = 1 } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
183
|
+
var index = startingIndex;
|
|
184
|
+
do {
|
|
185
|
+
index += decrement ? -amount : amount;
|
|
186
|
+
} while (index >= 0 && index <= listRef.current.length - 1 && isListIndexDisabled(listRef, index, disabledIndices));
|
|
187
|
+
return index;
|
|
211
188
|
}
|
|
212
189
|
function getMinListIndex(listRef, disabledIndices) {
|
|
213
|
-
|
|
214
|
-
disabledIndices
|
|
215
|
-
});
|
|
190
|
+
return findNonDisabledListIndex(listRef, { disabledIndices });
|
|
216
191
|
}
|
|
217
192
|
function getMaxListIndex(listRef, disabledIndices) {
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
193
|
+
return findNonDisabledListIndex(listRef, {
|
|
194
|
+
decrement: true,
|
|
195
|
+
startingIndex: listRef.current.length,
|
|
196
|
+
disabledIndices
|
|
197
|
+
});
|
|
223
198
|
}
|
|
224
199
|
function isIndexOutOfListBounds(listRef, index) {
|
|
225
|
-
|
|
200
|
+
return index < 0 || index >= listRef.current.length;
|
|
226
201
|
}
|
|
202
|
+
|
|
227
203
|
//# sourceMappingURL=utils.native.js.map
|
|
@@ -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","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":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,aAAA;AAAAC,QAAA,CAAAD,aAAA;EAAAE,aAAA,EAAAA,CAAA,KAAAA,aAAA;EAAAC,iBAAA,EAAAA,CAAA,KAAAA,iBAAA;EAAAC,QAAA,EAAAA,CAAA,KAAAA,QAAA;EAAAC,YAAA,EAAAA,CAAA,KAAAA,YAAA;EAAAC,wBAAA,EAAAA,CAAA,KAAAA,wBAAA;EAAAC,WAAA,EAAAA,CAAA,KAAAA,WAAA;EAAAC,eAAA,EAAAA,CAAA,KAAAA,eAAA;EAAAC,eAAA,EAAAA,CAAA,KAAAA,eAAA;EAAAC,SAAA,EAAAA,CAAA,KAAAA,SAAA;EAAAC,SAAA,EAAAA,CAAA,KAAAA,SAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAA,aAAA;EAAAC,sBAAA,EAAAA,CAAA,KAAAA,sBAAA;EAAAC,mBAAA,EAAAA,CAAA,KAAAA,mBAAA;EAAAC,KAAA,EAAAA,CAAA,KAAAA,KAAA;EAAAC,sBAAA,EAAAA,CAAA,KAAAA,sBAAA;EAAAC,QAAA,EAAAA,CAAA,KAAAA,QAAA;EAAAC,kBAAA,EAAAA,CAAA,KAAAA,kBAAA;EAAAC,iBAAA,EAAAA,CAAA,KAAAA,iBAAA;EAAAC,cAAA,EAAAA,CAAA,KAAAA,cAAA;EAAAC,qBAAA,EAAAA,CAAA,KAAAA,qBAAA;EAAAC,mBAAA,EAAAA,CAAA,KAAAA,mBAAA;EAAAC,SAAA,EAAAA,CAAA,KAAAA;AAAA;AAEOC,MAAA,CAAAC,OAAS,GAAA9B,YAAwD,CAAAK,aAAA;AACtE,SAAO0B,WAAMA,CAAAC,IAAA,EAAAC,KAAiB;EAChC,IAAAA,KAAA,mBAAAC,MAAA,oBAAAD,KAAA,CAAAC,MAAA,CAAAC,WAAA;IAEO,OAAS,EAAAF,KAAS,CAAAC,MAAA,CAAyBC,WAAiC,EAAAH,IAAA;EACjF,OAAK;IACL,OAAMA,IAAA,YAAiBC,KAAA;EACvB;AAEA;AACE,SAAIrB,WAAYA,CAAAwB,IAAA;EAChB,QAAAA,IAAO,KAAM,QAAAA,IAAA,uBAAAA,IAAA,CAAAC,aAAA,KAAAC,QAAA;AACX;AACA,SAAA7B,QAAOA,CAAK8B,MAAA,EAAAC,KAAA,EAAc;EAAK,IACjCC,kBAAA;EACF,KAAAF,MAAA,KAAAC,KAAA;EACA,IAAAE,QAAO,IAAAD,kBAAA,GAAAD,KAAA,CAAAG,WAAA,cAAAF,kBAAA,uBAAAA,kBAAA,CAAAG,IAAA,CAAAJ,KAAA;EACT,IAAAD,MAAA,CAAA9B,QAAA,CAAA+B,KAAA;EAEA,IAAAE,QAAS,IAAAG,YAA6C,CAAAH,QAAA;IACpD,IAAAI,IAAO,GAAAN,KAAA;IACT,OAAAM,IAAA;MAEO,IAASP,MAAA,KAAUO,IAAA,EAAkC;MACtDA,IAAA,GAAAA,IAAA,CAAAC,UAAkB,IAAOD,IAAA,CAAAE,IAAA;IAC3B;EACF;EACA,OAAQ;AACV;AAEO,SAASH,aAAAT,IAAc,EAA+B;EAC3D,OAAIL,WAAS,CAAAK,IAAA,EAAAa,UAAA;AACb;AACE,SAAKlC,SAAGA,CAAAmC,KAAW;EACrB,sBAAAA,KAAA;IACA,OAAOA,KAAA,CAAAC,YAAA;EACT;EAEO,OAASD,KAAA,CAAAE,MAAA;AACd;AACF,SAAA7C,cAAA8C,GAAA;EAEO,IAAAC,cAAmB;EACxB,IAAAC,EAAA,GAAOF,GAAA,CAAA9C,aAAiB;EAC1B,QAAAgD,EAAA,aAAAA,EAAA,wBAAAD,cAAA,GAAAC,EAAA,CAAAC,UAAA,cAAAF,cAAA,uBAAAA,cAAA,CAAA/C,aAAA;IAEAgD,EAAM,GAAAA,EAAA,CAAAC,UAAA,CAAAjD,aACJ;EAGK;EACL,OAAOgD,EAAA;AACT;AAEO,SAAStC,cAAAb,KAAmB;EACjC,OAAK2B,WAAS,CAAA3B,KAAO,EAAAqD,WAAA;AACrB;AACF,SAAAzC,UAAAZ,KAAA;EAEA,OAAS2B,WAAA,CAAA3B,KAAsB,EAAAsD,OAAA;AAC7B;AACA,IAAAC,iBAAY,GAAU,sHAAc;AACpC,SAAOnC,iBAAUA,CAAAoC,OAAA;EACnB,OAAA3C,aAAA,CAAA2C,OAAA,KAAAA,OAAA,CAAAC,OAAA,CAAAF,iBAAA;AAEA;AACE,SAAMpC,kBAA4BA,CAAAqC,OAAA;EAClC,IAAI,CAAAA,OAAA,EAAU,OAAM;EAClB,OAAAA,OAAO,CAAAE,YAAkB,CAAC,MAAE,MAAO,UAAQ,IAActC,iBAAgB,CAAEoC,OAAO;AAAG;AAEvF,SAAOG,WAAUA,CAAA;EACnB,IAAAC,MAAA,GAAAC,SAAA,CAAAC,aAAA;EAEO,IAAAF,MAAS,SAAoB,IAAAA,MAAA,uBAAAA,MAAA,CAAAG,QAAA,SAAAH,MAAA,CAAAG,QAAA;EAClC,OAAOF,SAAS,CAAAE,QAAK;AACvB;AAEO,SAASC,YAAiBA,CAAA;EAC/B,IAAAJ,MAAO,GAAAC,SAAc,CAAAC,aAAc;EACrC,IAAAF,MAAA,IAAAK,KAAA,CAAAC,OAAA,CAAAN,MAAA,CAAAO,MAAA;IAEA,OAASP,MAAA,CAAAO,MAAmB,CAAAC,GAAA,WAAAC,KAAA;MAC1B,IAAO;QAAAC,KAAA;QAAAC;MAAe,IAAAF,KAAS;MACjC,UAAAC,KAAA,IAAAC,OAAA;IAEO,GAAAC,IAAS;EACd;EACA,OAAIX,SAAA,CAAAY,SAAA;AACF;AAAuC,SACzCvD,QAAQA,CAAA;EACN,eAAO,CAAAwD,IAAA,CAAAb,SAAA,CAAAc,MAAA;AAAA;AAEX,SAAA3D,MAAA;EAEO,OAAS2C,WAAA,GAAAiB,WACd,GAAAC,UACA,MACS,MAAAhB,SAAA,CAAAiB,cAAA;AACT;AACA,SAAKC,OAAQA,CAAA;EACX,OAAAf,YAAgB,GAAAgB,QAAS;AAAA;AAE3B,SAAOzD,mBAAgBA,CAAAiC,OAAW;EACpC,KAAAA,OAAA,IAAAuB,OAAA;EAEO;IACL,OAAIvB,OAAW,CAAAC,OAAA,iBAAgB;EAC7B,SAAAwB,CAAA;IACA,WAAW;EACb;AACF;AAEO,SAAShE,sBAAqDA,CAAAiE,WAAA,EAAAC,MAAA;EACnE,IAAAC,MAAM,IACN,OAAM,EACR,MAEO;EACL,IAAK,CAAAD,MAAc;IACnBC,MAAI,CAAAC,IAAA,CAAU,SAAM,EAAuB;EACzC;EACF,OAAAD,MAAA,CAAAJ,QAAA,CAAAE,WAAA;AACA;AACF,SAAA9E,kBAAAkF,UAAA;EAEO,IAAAA,UAAS,CAAAC,OAAA,OAAsB;IACpCC,YAAe,CAAAF,UAAO,CAAAC,OAAA;IACtBD,UACI,CAAAC,OAAU,GAAK;EAarB;AAEA;AACE,SAAM/D,SAAKA,CAAAsB,KAAA;EACXA,KAAA,CAAA2C,cAAe;EACjB3C,KAAA,CAAA4C,eAAA;AAGA;AACO,SAASrE,cACdA,CAAAyB,KACA;EAEA,IAAAA,KAAQ,CAAA6C,cAAgB,UAAO7C,KAAA,CAAA8C,SAAiB,SAAM,IAAO;EAC7D,IAAAC,SAAA,MAAkB/C,KAAA,CAAAoC,WAAA;IAClB,OAAMpC,KAAO,CAAAgD,IAAM,KAAI,OAAQ,IAAAhD,KAAA,CAAAiD,OAAe;EAC9C;EACE,OAAKjD,KAAA,CAAAkD,MAAA,WAAAlD,KAAA,CAAAoC,WAAA;AAAA;AAEL,SAAA5D,qBAAQA,CAAAwB,KAAsB,EAAI;EACpC,IAAAiC,OAAA;EACF,QAAAc,SAAA,MAAA/C,KAAA,CAAAmD,KAAA,UAAAnD,KAAA,CAAAoD,MAAA,UAAAL,SAAA,MAAA/C,KAAA,CAAAmD,KAAA,UAAAnD,KAAA,CAAAoD,MAAA,UAAApD,KAAA,CAAAqD,QAAA,UAAArD,KAAA,CAAAkD,MAAA,UAAAlD,KAAA,CAAAoC,WAAA,gBAAApC,KAAA,CAAAmD,KAAA,QAAAnD,KAAA,CAAAoD,MAAA,QAAApD,KAAA,CAAAqD,QAAA,UAAArD,KAAA,CAAAkD,MAAA,UAAAlD,KAAA,CAAAoC,WAAA;AAMO;AAKL,SAAIW,SAAOA,CAAA;EACX,IAAIO,EAAA;EACJ,OAAMA,EAAA,CAAA1B,IAAA,CAAAf,WAAkB,OAAQyC,EAAA,CAAA1B,IAAK,CAAAV,YAAA;AACrC;AAKF,IAAAqC,KAAA;AAEO,SAAS/F,aAAA6C,EAAA;EAGZ,IAAAmD,OAAA,GAAAC,SAAgB,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;EAChB;IAAAE,aAAY;IAAAC,cAAA;IAAAC,IAAA;EAAA,IAAAL,OAAA;EACZI,cAAA,IAAAE,oBAAA,CAAAP,KAAA;EACA,IAAAQ,IAAA,GAAS,SAAAA,CAAA;IAMP,OACI1D,EAAA,aAAAA,EAAA,uBAAAA,EAAA,CAAA2D,KAAA;MACJL;IACJ,CAAG;EACD;EACF,IAAAE,IAAA,EACE;IAIFE,IAAA,CAAO;EACT;IAEOR,KAAS,GAAAU,qBACd,CACAF,IAAA;EAEA;AACF;AAEO,SAAS9F,mBACdA,CAAAiG,OACA,EAAAC,KAAA,EAAAC,eACQ;EACR,WAAOA,eAAA,eAAkC,SAAAA,eAAA,CAAAD,KAAA;EAAA,IACvCC,eAAW,SAAAA,eAAA,CAAAlC,QAAA,CAAAiC,KAAA;EAAA,IACXzD,OAAA,GAAAwD,OAAe,CAAAzB,OAAQ,CAAA0B,KAAQ;EAAA,OAC/BzD,OAAA,YAAAA,OAAA,CAAA2D,YAAA,gBAAA3D,OAAA,CAAAE,YAAA;AAAA;AAEJ,SAAAnD,yBAAAyG,OAAA;EAEO;IAAAI,aAAS;IAAAC,SACd,QACA;IAAAH,eACS;IAAAI,MAAA;EAAA,IAAAf,SAAA,CAAAC,MAAA,QAAAD,SAAA,iBAAAA,SAAA;EACT,IAAAU,KAAO,GAAAG,aAAa;EACtB","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"utils.native.js","names":[],"sources":["cjs/interactions/utils.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar utils_exports = {};\n__export(utils_exports, {\n activeElement: () => activeElement,\n clearTimeoutIfSet: () => clearTimeoutIfSet,\n contains: () => contains,\n enqueueFocus: () => enqueueFocus,\n findNonDisabledListIndex: () => findNonDisabledListIndex,\n getDocument: () => getDocument,\n getMaxListIndex: () => getMaxListIndex,\n getMinListIndex: () => getMinListIndex,\n getTarget: () => getTarget,\n isElement: () => isElement,\n isHTMLElement: () => isHTMLElement,\n isIndexOutOfListBounds: () => isIndexOutOfListBounds,\n isListIndexDisabled: () => isListIndexDisabled,\n isMac: () => isMac,\n isMouseLikePointerType: () => isMouseLikePointerType,\n isSafari: () => isSafari,\n isTypeableCombobox: () => isTypeableCombobox,\n isTypeableElement: () => isTypeableElement,\n isVirtualClick: () => isVirtualClick,\n isVirtualPointerEvent: () => isVirtualPointerEvent,\n matchesFocusVisible: () => matchesFocusVisible,\n stopEvent: () => stopEvent\n});\nmodule.exports = __toCommonJS(utils_exports);\nfunction getDocument(node) {\n return (node === null || node === void 0 ? void 0 : node.ownerDocument) || document;\n}\nfunction contains(parent, child) {\n var _child_getRootNode;\n if (!parent || !child) return false;\n var rootNode = (_child_getRootNode = child.getRootNode) === null || _child_getRootNode === void 0 ? void 0 : _child_getRootNode.call(child);\n if (parent.contains(child)) return true;\n if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n while (next) {\n if (parent === next) return true;\n next = next.parentNode || next.host;\n }\n }\n return false;\n}\nfunction isShadowRoot(node) {\n return node instanceof ShadowRoot;\n}\nfunction getTarget(event) {\n if (\"composedPath\" in event) {\n return event.composedPath()[0];\n }\n return event.target;\n}\nfunction activeElement(doc) {\n var _el_shadowRoot;\n var el = doc.activeElement;\n while ((el === null || el === void 0 ? void 0 : (_el_shadowRoot = el.shadowRoot) === null || _el_shadowRoot === void 0 ? void 0 : _el_shadowRoot.activeElement) != null) {\n el = el.shadowRoot.activeElement;\n }\n return el;\n}\nfunction isHTMLElement(value) {\n return value instanceof HTMLElement;\n}\nfunction isElement(value) {\n return value instanceof Element;\n}\nvar TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\nfunction isTypeableCombobox(element) {\n if (!element) return false;\n return element.getAttribute(\"role\") === \"combobox\" && isTypeableElement(element);\n}\nfunction getPlatform() {\n var uaData = navigator.userAgentData;\n if (uaData === null || uaData === void 0 ? void 0 : uaData.platform) return uaData.platform;\n return navigator.platform;\n}\nfunction getUserAgent() {\n var uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function(param) {\n var { brand, version } = param;\n return `${brand}/${version}`;\n }).join(\" \");\n }\n return navigator.userAgent;\n}\nfunction isSafari() {\n return /apple/i.test(navigator.vendor);\n}\nfunction isMac() {\n return getPlatform().toLowerCase().startsWith(\"mac\") && !navigator.maxTouchPoints;\n}\nfunction isJSDOM() {\n return getUserAgent().includes(\"jsdom/\");\n}\nfunction matchesFocusVisible(element) {\n if (!element || isJSDOM()) return true;\n try {\n return element.matches(\":focus-visible\");\n } catch (e) {\n return true;\n }\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n var values = [\n \"mouse\",\n \"pen\"\n ];\n if (!strict) {\n values.push(\"\", void 0);\n }\n return values.includes(pointerType);\n}\nfunction clearTimeoutIfSet(timeoutRef) {\n if (timeoutRef.current !== -1) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = -1;\n }\n}\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\nfunction isVirtualClick(event) {\n if (event.mozInputSource === 0 && event.isTrusted) return true;\n if (isAndroid() && event.pointerType) {\n return event.type === \"click\" && event.buttons === 1;\n }\n return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n if (isJSDOM()) return false;\n 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\";\n}\nfunction isAndroid() {\n var re = /android/i;\n return re.test(getPlatform()) || re.test(getUserAgent());\n}\nvar rafId = 0;\nfunction enqueueFocus(el) {\n var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var { preventScroll = false, cancelPrevious = true, sync = false } = options;\n cancelPrevious && cancelAnimationFrame(rafId);\n var exec = function() {\n return el === null || el === void 0 ? void 0 : el.focus({\n preventScroll\n });\n };\n if (sync) {\n exec();\n } else {\n rafId = requestAnimationFrame(exec);\n }\n}\nfunction isListIndexDisabled(listRef, index, disabledIndices) {\n if (typeof disabledIndices === \"function\") return disabledIndices(index);\n if (disabledIndices) return disabledIndices.includes(index);\n var element = listRef.current[index];\n return element == null || element.hasAttribute(\"disabled\") || element.getAttribute(\"aria-disabled\") === \"true\";\n}\nfunction findNonDisabledListIndex(listRef) {\n var { startingIndex = -1, decrement = false, disabledIndices, amount = 1 } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var index = startingIndex;\n do {\n index += decrement ? -amount : amount;\n } while (index >= 0 && index <= listRef.current.length - 1 && isListIndexDisabled(listRef, index, disabledIndices));\n return index;\n}\nfunction getMinListIndex(listRef, disabledIndices) {\n return findNonDisabledListIndex(listRef, {\n disabledIndices\n });\n}\nfunction getMaxListIndex(listRef, disabledIndices) {\n return findNonDisabledListIndex(listRef, {\n decrement: true,\n startingIndex: listRef.current.length,\n disabledIndices\n });\n}\nfunction isIndexOutOfListBounds(listRef, index) {\n return index < 0 || index >= listRef.current.length;\n}\n//# sourceMappingURL=utils.js.map\n"],"mappings":"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"}
|
|
@@ -5,114 +5,86 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
|
5
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
7
|
var __export = (target, all) => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
12
|
};
|
|
13
13
|
var __copyProps = (to, from, except, desc) => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
21
|
};
|
|
22
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
26
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
27
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
28
|
-
value: mod,
|
|
29
|
-
enumerable: true
|
|
22
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
23
|
+
value: mod,
|
|
24
|
+
enumerable: true
|
|
30
25
|
}) : target, mod));
|
|
31
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
32
|
-
value: true
|
|
33
|
-
}), mod);
|
|
26
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
34
27
|
var inner_exports = {};
|
|
35
|
-
__export(inner_exports, {
|
|
36
|
-
inner: () => inner
|
|
37
|
-
});
|
|
28
|
+
__export(inner_exports, { inner: () => inner });
|
|
38
29
|
module.exports = __toCommonJS(inner_exports);
|
|
39
30
|
var ReactDOM = __toESM(require("react-dom"), 1);
|
|
40
31
|
var import_react_dom = require("@floating-ui/react-dom");
|
|
41
32
|
function getArgsWithCustomFloatingHeight(state, height) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
33
|
+
return {
|
|
34
|
+
...state,
|
|
35
|
+
rects: {
|
|
36
|
+
...state.rects,
|
|
37
|
+
floating: {
|
|
38
|
+
...state.rects.floating,
|
|
39
|
+
height
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
};
|
|
52
43
|
}
|
|
53
|
-
const inner = props => ({
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
const maxHeight = rounder(Math.max(0, scrollEl.scrollHeight + (floatingIsBordered && floatingIsScrollEl || scrollElIsBordered ? clientTop * 2 : 0) - diffY - Math.max(0, overflow.bottom)));
|
|
101
|
-
scrollEl.style.maxHeight = `${maxHeight}px`;
|
|
102
|
-
scrollEl.scrollTop = diffY;
|
|
103
|
-
if (onFallbackChange) {
|
|
104
|
-
const shouldFallback = scrollEl.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, listRef.current?.length ?? 0) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold;
|
|
105
|
-
ReactDOM.flushSync(() => onFallbackChange(shouldFallback));
|
|
106
|
-
}
|
|
107
|
-
if (overflowRef) {
|
|
108
|
-
;
|
|
109
|
-
overflowRef.current = await (0, import_react_dom.detectOverflow)(getArgsWithCustomFloatingHeight({
|
|
110
|
-
...nextArgs,
|
|
111
|
-
y: nextY
|
|
112
|
-
}, scrollEl.offsetHeight + clientTop + floating.clientTop), detectOverflowOptions);
|
|
113
|
-
}
|
|
114
|
-
return {
|
|
115
|
-
y: nextY
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
});
|
|
44
|
+
const inner = (props) => ({
|
|
45
|
+
name: "inner",
|
|
46
|
+
options: props,
|
|
47
|
+
async fn(state) {
|
|
48
|
+
const { listRef, overflowRef, onFallbackChange, offset: innerOffset = 0, index = 0, minItemsVisible = 4, referenceOverflowThreshold = 0, scrollRef, padding = 0 } = props;
|
|
49
|
+
const { rects, elements: { floating } } = state;
|
|
50
|
+
const item = listRef.current?.[index ?? 0];
|
|
51
|
+
const scrollEl = scrollRef?.current || floating;
|
|
52
|
+
const clientTop = floating.clientTop || scrollEl.clientTop;
|
|
53
|
+
const floatingIsBordered = floating.clientTop !== 0;
|
|
54
|
+
const scrollElIsBordered = scrollEl.clientTop !== 0;
|
|
55
|
+
const floatingIsScrollEl = floating === scrollEl;
|
|
56
|
+
if (!item || index == null) {
|
|
57
|
+
onFallbackChange?.(true);
|
|
58
|
+
return {};
|
|
59
|
+
}
|
|
60
|
+
const nextArgs = {
|
|
61
|
+
...state,
|
|
62
|
+
...await (0, import_react_dom.offset)(-item.offsetTop - floating.clientTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state)
|
|
63
|
+
};
|
|
64
|
+
const detectOverflowOptions = { padding };
|
|
65
|
+
const overflow = await (0, import_react_dom.detectOverflow)(getArgsWithCustomFloatingHeight(nextArgs, scrollEl.scrollHeight + clientTop + floating.clientTop), detectOverflowOptions);
|
|
66
|
+
const refOverflow = await (0, import_react_dom.detectOverflow)(nextArgs, {
|
|
67
|
+
...detectOverflowOptions,
|
|
68
|
+
elementContext: "reference"
|
|
69
|
+
});
|
|
70
|
+
const diffY = Math.max(0, overflow.top);
|
|
71
|
+
const nextY = nextArgs.y + diffY;
|
|
72
|
+
const isScrollable = scrollEl.scrollHeight > scrollEl.clientHeight;
|
|
73
|
+
const rounder = isScrollable ? (v) => v : Math.round;
|
|
74
|
+
const maxHeight = rounder(Math.max(0, scrollEl.scrollHeight + (floatingIsBordered && floatingIsScrollEl || scrollElIsBordered ? clientTop * 2 : 0) - diffY - Math.max(0, overflow.bottom)));
|
|
75
|
+
scrollEl.style.maxHeight = `${maxHeight}px`;
|
|
76
|
+
scrollEl.scrollTop = diffY;
|
|
77
|
+
if (onFallbackChange) {
|
|
78
|
+
const shouldFallback = scrollEl.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, listRef.current?.length ?? 0) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold;
|
|
79
|
+
ReactDOM.flushSync(() => onFallbackChange(shouldFallback));
|
|
80
|
+
}
|
|
81
|
+
if (overflowRef) {
|
|
82
|
+
;
|
|
83
|
+
overflowRef.current = await (0, import_react_dom.detectOverflow)(getArgsWithCustomFloatingHeight({
|
|
84
|
+
...nextArgs,
|
|
85
|
+
y: nextY
|
|
86
|
+
}, scrollEl.offsetHeight + clientTop + floating.clientTop), detectOverflowOptions);
|
|
87
|
+
}
|
|
88
|
+
return { y: nextY };
|
|
89
|
+
}
|
|
90
|
+
});
|