@haiilo/catalyst 0.5.0 → 0.5.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/catalyst/app-globals-23d8c4a8.js +948 -0
- package/dist/catalyst/app-globals-23d8c4a8.js.map +1 -0
- package/dist/catalyst/app-globals-3dd6a26b.js +948 -0
- package/dist/catalyst/app-globals-3dd6a26b.js.map +1 -0
- package/dist/catalyst/app-globals-42ce39cc.js +948 -0
- package/dist/catalyst/app-globals-42ce39cc.js.map +1 -0
- package/dist/catalyst/app-globals-5cf43b57.js +949 -0
- package/dist/catalyst/app-globals-5cf43b57.js.map +1 -0
- package/dist/catalyst/app-globals-8598c768.js +948 -0
- package/dist/catalyst/app-globals-8598c768.js.map +1 -0
- package/dist/catalyst/app-globals-a41af143.js +948 -0
- package/dist/catalyst/app-globals-a41af143.js.map +1 -0
- package/dist/catalyst/app-globals-c6a8b994.js +949 -0
- package/dist/catalyst/app-globals-c6a8b994.js.map +1 -0
- package/dist/catalyst/cat-alert.entry.js +33 -0
- package/dist/catalyst/cat-alert.entry.js.map +1 -0
- package/dist/catalyst/cat-badge.entry.js +44 -0
- package/dist/catalyst/cat-badge.entry.js.map +1 -0
- package/dist/catalyst/cat-button.entry.js +298 -0
- package/dist/catalyst/cat-button.entry.js.map +1 -0
- package/dist/catalyst/cat-card.entry.js +17 -0
- package/dist/catalyst/cat-card.entry.js.map +1 -0
- package/dist/catalyst/cat-checkbox.entry.js +75 -0
- package/dist/catalyst/cat-checkbox.entry.js.map +1 -0
- package/dist/catalyst/cat-i18n-registry-2a6187c9.js +75 -0
- package/dist/catalyst/cat-i18n-registry-2a6187c9.js.map +1 -0
- package/dist/catalyst/cat-i18n-registry-330db605.js +74 -0
- package/dist/catalyst/cat-i18n-registry-330db605.js.map +1 -0
- package/dist/catalyst/cat-i18n-registry-83d20604.js +74 -0
- package/dist/catalyst/cat-i18n-registry-83d20604.js.map +1 -0
- package/dist/catalyst/cat-i18n-registry-dd55821d.js +73 -0
- package/dist/catalyst/cat-i18n-registry-dd55821d.js.map +1 -0
- package/dist/catalyst/cat-i18n-registry-f6560651.js +75 -0
- package/dist/catalyst/cat-i18n-registry-f6560651.js.map +1 -0
- package/dist/catalyst/cat-icon-registry-2dcfc9fb.js +59 -0
- package/dist/catalyst/cat-icon-registry-2dcfc9fb.js.map +1 -0
- package/dist/catalyst/cat-icon.entry.js +31 -0
- package/dist/catalyst/cat-icon.entry.js.map +1 -0
- package/dist/catalyst/cat-input.entry.js +111 -0
- package/dist/catalyst/cat-input.entry.js.map +1 -0
- package/dist/catalyst/cat-menu.entry.js +850 -0
- package/dist/catalyst/cat-menu.entry.js.map +1 -0
- package/dist/catalyst/cat-radio.entry.js +66 -0
- package/dist/catalyst/cat-radio.entry.js.map +1 -0
- package/dist/catalyst/cat-scrollable.entry.js +4522 -0
- package/dist/catalyst/cat-scrollable.entry.js.map +1 -0
- package/dist/catalyst/cat-skeleton.entry.js +55 -0
- package/dist/catalyst/cat-skeleton.entry.js.map +1 -0
- package/dist/catalyst/cat-spinner.entry.js +23 -0
- package/dist/catalyst/cat-spinner.entry.js.map +1 -0
- package/dist/catalyst/cat-textarea.entry.js +87 -0
- package/dist/catalyst/cat-textarea.entry.js.map +1 -0
- package/dist/catalyst/cat-toggle.entry.js +66 -0
- package/dist/catalyst/cat-toggle.entry.js.map +1 -0
- package/dist/catalyst/cat-tooltip.entry.js +129 -0
- package/dist/catalyst/cat-tooltip.entry.js.map +1 -0
- package/dist/catalyst/catalyst.css +2033 -1
- package/dist/catalyst/catalyst.esm.js +133 -1
- package/dist/catalyst/catalyst.esm.js.map +1 -1
- package/dist/catalyst/css-shim-e6dd2538.js +6 -0
- package/dist/catalyst/css-shim-e6dd2538.js.map +1 -0
- package/dist/catalyst/dom-7fc649b0.js +75 -0
- package/dist/catalyst/dom-7fc649b0.js.map +1 -0
- package/dist/catalyst/first-tabbable-2d9f9e9a.js +2123 -0
- package/dist/catalyst/first-tabbable-2d9f9e9a.js.map +1 -0
- package/dist/catalyst/index-471d4e05.js +3059 -0
- package/dist/catalyst/index-471d4e05.js.map +1 -0
- package/dist/catalyst/index-bbb694f5.js +3059 -0
- package/dist/catalyst/index-bbb694f5.js.map +1 -0
- package/dist/catalyst/index.esm.js +4 -1
- package/dist/catalyst/index.esm.js.map +1 -1
- package/dist/{esm/cat-icon-registry-77963c26.js → catalyst/loglevel-7f0f71af.js} +35 -126
- package/dist/catalyst/loglevel-7f0f71af.js.map +1 -0
- package/dist/catalyst/shadow-css-4d56fa31.js +390 -0
- package/dist/catalyst/shadow-css-4d56fa31.js.map +1 -0
- package/dist/cjs/app-globals-aaefc070.js +950 -0
- package/dist/cjs/app-globals-aaefc070.js.map +1 -0
- package/dist/cjs/cat-alert.cjs.entry.js +37 -0
- package/dist/cjs/cat-alert.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-badge.cjs.entry.js +48 -0
- package/dist/cjs/cat-badge.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-button.cjs.entry.js +302 -0
- package/dist/cjs/cat-button.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-card.cjs.entry.js +21 -0
- package/dist/cjs/cat-card.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-checkbox.cjs.entry.js +79 -0
- package/dist/cjs/cat-checkbox.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-i18n-registry-a1379d1e.js +76 -0
- package/dist/cjs/cat-i18n-registry-a1379d1e.js.map +1 -0
- package/dist/cjs/cat-icon-registry-74247389.js +61 -0
- package/dist/cjs/cat-icon-registry-74247389.js.map +1 -0
- package/dist/cjs/cat-icon.cjs.entry.js +35 -0
- package/dist/cjs/cat-icon.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-input.cjs.entry.js +115 -0
- package/dist/cjs/cat-input.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-menu.cjs.entry.js +854 -0
- package/dist/cjs/cat-menu.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-radio.cjs.entry.js +70 -0
- package/dist/cjs/cat-radio.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-scrollable.cjs.entry.js +4526 -0
- package/dist/cjs/cat-scrollable.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-skeleton.cjs.entry.js +59 -0
- package/dist/cjs/cat-skeleton.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-spinner.cjs.entry.js +27 -0
- package/dist/cjs/cat-spinner.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-textarea.cjs.entry.js +91 -0
- package/dist/cjs/cat-textarea.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-toggle.cjs.entry.js +70 -0
- package/dist/cjs/cat-toggle.cjs.entry.js.map +1 -0
- package/dist/cjs/cat-tooltip.cjs.entry.js +133 -0
- package/dist/cjs/cat-tooltip.cjs.entry.js.map +1 -0
- package/dist/cjs/catalyst.cjs.js +118 -6
- package/dist/cjs/catalyst.cjs.js.map +1 -1
- package/dist/cjs/css-shim-6ca600c2.js +8 -0
- package/dist/cjs/css-shim-6ca600c2.js.map +1 -0
- package/dist/cjs/dom-8d415461.js +77 -0
- package/dist/cjs/dom-8d415461.js.map +1 -0
- package/dist/cjs/first-tabbable-2068dcc6.js +2133 -0
- package/dist/cjs/first-tabbable-2068dcc6.js.map +1 -0
- package/dist/cjs/index-abcb3941.js +3094 -0
- package/dist/cjs/index-abcb3941.js.map +1 -0
- package/dist/cjs/index.cjs.js +4 -2
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +20 -4
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/{cat-icon-registry-6895750f.js → loglevel-24040e9d.js} +34 -127
- package/dist/cjs/loglevel-24040e9d.js.map +1 -0
- package/dist/cjs/shadow-css-78860e39.js +392 -0
- package/dist/cjs/shadow-css-78860e39.js.map +1 -0
- package/dist/collection/components/cat-i18n/cat-i18n-registry.js +2 -1
- package/dist/collection/components/cat-i18n/cat-i18n-registry.js.map +1 -1
- package/dist/components/cat-i18n-registry.js +2 -1
- package/dist/components/cat-i18n-registry.js.map +1 -1
- package/dist/components/cat-scrollable.js +3209 -23
- package/dist/components/cat-scrollable.js.map +1 -1
- package/dist/components/first-tabbable.js +627 -0
- package/dist/components/first-tabbable.js.map +1 -1
- package/dist/components/index.js +769 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/loglevel.js +33 -2
- package/dist/components/loglevel.js.map +1 -1
- package/dist/esm/app-globals-3dd6a26b.js +948 -0
- package/dist/esm/app-globals-3dd6a26b.js.map +1 -0
- package/dist/esm/cat-alert.entry.js +33 -0
- package/dist/esm/cat-alert.entry.js.map +1 -0
- package/dist/esm/cat-badge.entry.js +44 -0
- package/dist/esm/cat-badge.entry.js.map +1 -0
- package/dist/esm/cat-button.entry.js +298 -0
- package/dist/esm/cat-button.entry.js.map +1 -0
- package/dist/esm/cat-card.entry.js +17 -0
- package/dist/esm/cat-card.entry.js.map +1 -0
- package/dist/esm/cat-checkbox.entry.js +75 -0
- package/dist/esm/cat-checkbox.entry.js.map +1 -0
- package/dist/esm/cat-i18n-registry-83d20604.js +74 -0
- package/dist/esm/cat-i18n-registry-83d20604.js.map +1 -0
- package/dist/esm/cat-icon-registry-2dcfc9fb.js +59 -0
- package/dist/esm/cat-icon-registry-2dcfc9fb.js.map +1 -0
- package/dist/esm/cat-icon.entry.js +31 -0
- package/dist/esm/cat-icon.entry.js.map +1 -0
- package/dist/esm/cat-input.entry.js +111 -0
- package/dist/esm/cat-input.entry.js.map +1 -0
- package/dist/esm/cat-menu.entry.js +850 -0
- package/dist/esm/cat-menu.entry.js.map +1 -0
- package/dist/esm/cat-radio.entry.js +66 -0
- package/dist/esm/cat-radio.entry.js.map +1 -0
- package/dist/esm/cat-scrollable.entry.js +4522 -0
- package/dist/esm/cat-scrollable.entry.js.map +1 -0
- package/dist/esm/cat-skeleton.entry.js +55 -0
- package/dist/esm/cat-skeleton.entry.js.map +1 -0
- package/dist/esm/cat-spinner.entry.js +23 -0
- package/dist/esm/cat-spinner.entry.js.map +1 -0
- package/dist/esm/cat-textarea.entry.js +87 -0
- package/dist/esm/cat-textarea.entry.js.map +1 -0
- package/dist/esm/cat-toggle.entry.js +66 -0
- package/dist/esm/cat-toggle.entry.js.map +1 -0
- package/dist/esm/cat-tooltip.entry.js +129 -0
- package/dist/esm/cat-tooltip.entry.js.map +1 -0
- package/dist/esm/catalyst.js +118 -6
- package/dist/esm/catalyst.js.map +1 -1
- package/dist/esm/css-shim-e6dd2538.js +6 -0
- package/dist/esm/css-shim-e6dd2538.js.map +1 -0
- package/dist/esm/dom-7fc649b0.js +75 -0
- package/dist/esm/dom-7fc649b0.js.map +1 -0
- package/dist/esm/first-tabbable-2d9f9e9a.js +2123 -0
- package/dist/esm/first-tabbable-2d9f9e9a.js.map +1 -0
- package/dist/esm/index-471d4e05.js +3059 -0
- package/dist/esm/index-471d4e05.js.map +1 -0
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +20 -4
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/loglevel-7f0f71af.js +346 -0
- package/dist/esm/loglevel-7f0f71af.js.map +1 -0
- package/dist/esm/shadow-css-4d56fa31.js +390 -0
- package/dist/esm/shadow-css-4d56fa31.js.map +1 -0
- package/dist/types/components/cat-alert/cat-alert.e2e.d.ts +1 -0
- package/dist/types/components/cat-alert/cat-alert.spec.d.ts +1 -0
- package/dist/types/components/cat-badge/cat-badge.e2e.d.ts +1 -0
- package/dist/types/components/cat-badge/cat-badge.spec.d.ts +1 -0
- package/dist/types/components/cat-button/cat-button.e2e.d.ts +1 -0
- package/dist/types/components/cat-button/cat-button.spec.d.ts +1 -0
- package/dist/types/components/cat-card/cat-card.e2e.d.ts +1 -0
- package/dist/types/components/cat-card/cat-card.spec.d.ts +1 -0
- package/dist/types/components/cat-checkbox/cat-checkbox.e2e.d.ts +1 -0
- package/dist/types/components/cat-checkbox/cat-checkbox.spec.d.ts +1 -0
- package/dist/types/components/cat-icon/cat-icon.e2e.d.ts +1 -0
- package/dist/types/components/cat-icon/cat-icon.spec.d.ts +1 -0
- package/dist/types/components/cat-input/cat-input.e2e.d.ts +1 -0
- package/dist/types/components/cat-input/cat-input.spec.d.ts +1 -0
- package/dist/types/components/cat-menu/cat-menu.e2e.d.ts +1 -0
- package/dist/types/components/cat-menu/cat-menu.spec.d.ts +1 -0
- package/dist/types/components/cat-radio/cat-radio.e2e.d.ts +1 -0
- package/dist/types/components/cat-radio/cat-radio.spec.d.ts +1 -0
- package/dist/types/components/cat-scrollable/cat-scrollable.e2e.d.ts +1 -0
- package/dist/types/components/cat-scrollable/cat-scrollable.spec.d.ts +1 -0
- package/dist/types/components/cat-skeleton/cat-skeleton.e2e.d.ts +1 -0
- package/dist/types/components/cat-skeleton/cat-skeleton.spec.d.ts +1 -0
- package/dist/types/components/cat-spinner/cat-spinner.e2e.d.ts +1 -0
- package/dist/types/components/cat-spinner/cat-spinner.spec.d.ts +1 -0
- package/dist/types/components/cat-textarea/cat-textarea.e2e.d.ts +1 -0
- package/dist/types/components/cat-textarea/cat-textarea.spec.d.ts +1 -0
- package/dist/types/components/cat-toggle/cat-toggle.e2e.d.ts +1 -0
- package/dist/types/components/cat-toggle/cat-toggle.spec.d.ts +1 -0
- package/dist/types/components/cat-tooltip/cat-tooltip.e2e.d.ts +1 -0
- package/dist/types/components/cat-tooltip/cat-tooltip.spec.d.ts +1 -0
- package/dist/types/utils/media-matcher.spec.d.ts +1 -0
- package/package.json +3 -3
- package/dist/catalyst/p-23d54bc6.js +0 -2
- package/dist/catalyst/p-23d54bc6.js.map +0 -1
- package/dist/catalyst/p-84693f87.entry.js +0 -24
- package/dist/catalyst/p-84693f87.entry.js.map +0 -1
- package/dist/catalyst/p-8f5cfa78.js +0 -2
- package/dist/catalyst/p-8f5cfa78.js.map +0 -1
- package/dist/catalyst/p-fa7da4c6.js +0 -2
- package/dist/catalyst/p-fa7da4c6.js.map +0 -1
- package/dist/cjs/app-globals-50e7504d.js +0 -180
- package/dist/cjs/app-globals-50e7504d.js.map +0 -1
- package/dist/cjs/cat-alert_15.cjs.entry.js +0 -4652
- package/dist/cjs/cat-alert_15.cjs.entry.js.map +0 -1
- package/dist/cjs/cat-icon-registry-6895750f.js.map +0 -1
- package/dist/cjs/index-2db8e23d.js +0 -1347
- package/dist/cjs/index-2db8e23d.js.map +0 -1
- package/dist/esm/app-globals-6906ac5c.js +0 -178
- package/dist/esm/app-globals-6906ac5c.js.map +0 -1
- package/dist/esm/cat-alert_15.entry.js +0 -4634
- package/dist/esm/cat-alert_15.entry.js.map +0 -1
- package/dist/esm/cat-icon-registry-77963c26.js.map +0 -1
- package/dist/esm/index-1f3ca03b.js +0 -1320
- package/dist/esm/index-1f3ca03b.js.map +0 -1
|
@@ -94,6 +94,21 @@ const computePosition$1 = async (reference, floating, config) => {
|
|
|
94
94
|
} = config;
|
|
95
95
|
const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));
|
|
96
96
|
|
|
97
|
+
if ("development" !== "production") {
|
|
98
|
+
if (platform == null) {
|
|
99
|
+
console.error(['Floating UI: `platform` property was not passed to config. If you', 'want to use Floating UI on the web, install @floating-ui/dom', 'instead of the /core package. Otherwise, you can create your own', '`platform`: https://floating-ui.com/docs/platform'].join(' '));
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if (middleware.filter(_ref => {
|
|
103
|
+
let {
|
|
104
|
+
name
|
|
105
|
+
} = _ref;
|
|
106
|
+
return name === 'autoPlacement' || name === 'flip';
|
|
107
|
+
}).length > 1) {
|
|
108
|
+
throw new Error(['Floating UI: duplicate `flip` and/or `autoPlacement`', 'middleware detected. This will lead to an infinite loop. Ensure only', 'one of either has been passed to the `middleware` array.'].join(' '));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
97
112
|
let rects = await platform.getElementRects({
|
|
98
113
|
reference,
|
|
99
114
|
floating,
|
|
@@ -105,8 +120,16 @@ const computePosition$1 = async (reference, floating, config) => {
|
|
|
105
120
|
} = computeCoordsFromPlacement(rects, placement, rtl);
|
|
106
121
|
let statefulPlacement = placement;
|
|
107
122
|
let middlewareData = {};
|
|
123
|
+
let _debug_loop_count_ = 0;
|
|
108
124
|
|
|
109
125
|
for (let i = 0; i < middleware.length; i++) {
|
|
126
|
+
if ("development" !== "production") {
|
|
127
|
+
_debug_loop_count_++;
|
|
128
|
+
|
|
129
|
+
if (_debug_loop_count_ > 100) {
|
|
130
|
+
throw new Error(['Floating UI: The middleware lifecycle appears to be', 'running in an infinite loop. This is usually caused by a `reset`', 'continually being returned without a break condition.'].join(' '));
|
|
131
|
+
}
|
|
132
|
+
}
|
|
110
133
|
|
|
111
134
|
const {
|
|
112
135
|
name,
|
|
@@ -258,6 +281,75 @@ async function detectOverflow(middlewareArguments, options) {
|
|
|
258
281
|
};
|
|
259
282
|
}
|
|
260
283
|
|
|
284
|
+
const min$1 = Math.min;
|
|
285
|
+
const max$1 = Math.max;
|
|
286
|
+
|
|
287
|
+
function within(min$1$1, value, max$1$1) {
|
|
288
|
+
return max$1(min$1$1, min$1(value, max$1$1));
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
/**
|
|
292
|
+
* Positions an inner element of the floating element such that it is centered
|
|
293
|
+
* to the reference element.
|
|
294
|
+
* @see https://floating-ui.com/docs/arrow
|
|
295
|
+
*/
|
|
296
|
+
const arrow = options => ({
|
|
297
|
+
name: 'arrow',
|
|
298
|
+
options,
|
|
299
|
+
|
|
300
|
+
async fn(middlewareArguments) {
|
|
301
|
+
// Since `element` is required, we don't Partial<> the type
|
|
302
|
+
const {
|
|
303
|
+
element,
|
|
304
|
+
padding = 0
|
|
305
|
+
} = options != null ? options : {};
|
|
306
|
+
const {
|
|
307
|
+
x,
|
|
308
|
+
y,
|
|
309
|
+
placement,
|
|
310
|
+
rects,
|
|
311
|
+
platform
|
|
312
|
+
} = middlewareArguments;
|
|
313
|
+
|
|
314
|
+
if (element == null) {
|
|
315
|
+
if ("development" !== "production") {
|
|
316
|
+
console.warn('Floating UI: No `element` was passed to the `arrow` middleware.');
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
return {};
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
const paddingObject = getSideObjectFromPadding(padding);
|
|
323
|
+
const coords = {
|
|
324
|
+
x,
|
|
325
|
+
y
|
|
326
|
+
};
|
|
327
|
+
const axis = getMainAxisFromPlacement(placement);
|
|
328
|
+
const length = getLengthFromAxis(axis);
|
|
329
|
+
const arrowDimensions = await platform.getDimensions(element);
|
|
330
|
+
const minProp = axis === 'y' ? 'top' : 'left';
|
|
331
|
+
const maxProp = axis === 'y' ? 'bottom' : 'right';
|
|
332
|
+
const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];
|
|
333
|
+
const startDiff = coords[axis] - rects.reference[axis];
|
|
334
|
+
const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));
|
|
335
|
+
const clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;
|
|
336
|
+
const centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the floating element if the center
|
|
337
|
+
// point is outside of the floating element's bounds
|
|
338
|
+
|
|
339
|
+
const min = paddingObject[minProp];
|
|
340
|
+
const max = clientSize - arrowDimensions[length] - paddingObject[maxProp];
|
|
341
|
+
const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;
|
|
342
|
+
const offset = within(min, center, max);
|
|
343
|
+
return {
|
|
344
|
+
data: {
|
|
345
|
+
[axis]: offset,
|
|
346
|
+
centerOffset: center - offset
|
|
347
|
+
}
|
|
348
|
+
};
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
});
|
|
352
|
+
|
|
261
353
|
const hash$1 = {
|
|
262
354
|
left: 'right',
|
|
263
355
|
right: 'left',
|
|
@@ -296,6 +388,121 @@ function getOppositeAlignmentPlacement(placement) {
|
|
|
296
388
|
return placement.replace(/start|end/g, matched => hash[matched]);
|
|
297
389
|
}
|
|
298
390
|
|
|
391
|
+
const sides = ['top', 'right', 'bottom', 'left'];
|
|
392
|
+
const allPlacements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + "-start", side + "-end"), []);
|
|
393
|
+
|
|
394
|
+
function getPlacementList(alignment, autoAlignment, allowedPlacements) {
|
|
395
|
+
const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);
|
|
396
|
+
return allowedPlacementsSortedByAlignment.filter(placement => {
|
|
397
|
+
if (alignment) {
|
|
398
|
+
return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
return true;
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
/**
|
|
406
|
+
* Automatically chooses the `placement` which has the most space available.
|
|
407
|
+
* @see https://floating-ui.com/docs/autoPlacement
|
|
408
|
+
*/
|
|
409
|
+
const autoPlacement = function (options) {
|
|
410
|
+
if (options === void 0) {
|
|
411
|
+
options = {};
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
return {
|
|
415
|
+
name: 'autoPlacement',
|
|
416
|
+
options,
|
|
417
|
+
|
|
418
|
+
async fn(middlewareArguments) {
|
|
419
|
+
var _middlewareData$autoP, _middlewareData$autoP2, _middlewareData$autoP3, _middlewareData$autoP4, _placementsSortedByLe;
|
|
420
|
+
|
|
421
|
+
const {
|
|
422
|
+
x,
|
|
423
|
+
y,
|
|
424
|
+
rects,
|
|
425
|
+
middlewareData,
|
|
426
|
+
placement,
|
|
427
|
+
platform,
|
|
428
|
+
elements
|
|
429
|
+
} = middlewareArguments;
|
|
430
|
+
const {
|
|
431
|
+
alignment = null,
|
|
432
|
+
allowedPlacements = allPlacements,
|
|
433
|
+
autoAlignment = true,
|
|
434
|
+
...detectOverflowOptions
|
|
435
|
+
} = options;
|
|
436
|
+
const placements = getPlacementList(alignment, autoAlignment, allowedPlacements);
|
|
437
|
+
const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);
|
|
438
|
+
const currentIndex = (_middlewareData$autoP = (_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.index) != null ? _middlewareData$autoP : 0;
|
|
439
|
+
const currentPlacement = placements[currentIndex];
|
|
440
|
+
|
|
441
|
+
if (currentPlacement == null) {
|
|
442
|
+
return {};
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
const {
|
|
446
|
+
main,
|
|
447
|
+
cross
|
|
448
|
+
} = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))); // Make `computeCoords` start from the right place
|
|
449
|
+
|
|
450
|
+
if (placement !== currentPlacement) {
|
|
451
|
+
return {
|
|
452
|
+
x,
|
|
453
|
+
y,
|
|
454
|
+
reset: {
|
|
455
|
+
placement: placements[0]
|
|
456
|
+
}
|
|
457
|
+
};
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
const currentOverflows = [overflow[getSide(currentPlacement)], overflow[main], overflow[cross]];
|
|
461
|
+
const allOverflows = [...((_middlewareData$autoP3 = (_middlewareData$autoP4 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP4.overflows) != null ? _middlewareData$autoP3 : []), {
|
|
462
|
+
placement: currentPlacement,
|
|
463
|
+
overflows: currentOverflows
|
|
464
|
+
}];
|
|
465
|
+
const nextPlacement = placements[currentIndex + 1]; // There are more placements to check
|
|
466
|
+
|
|
467
|
+
if (nextPlacement) {
|
|
468
|
+
return {
|
|
469
|
+
data: {
|
|
470
|
+
index: currentIndex + 1,
|
|
471
|
+
overflows: allOverflows
|
|
472
|
+
},
|
|
473
|
+
reset: {
|
|
474
|
+
placement: nextPlacement
|
|
475
|
+
}
|
|
476
|
+
};
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
const placementsSortedByLeastOverflow = allOverflows.slice().sort((a, b) => a.overflows[0] - b.overflows[0]);
|
|
480
|
+
const placementThatFitsOnAllSides = (_placementsSortedByLe = placementsSortedByLeastOverflow.find(_ref => {
|
|
481
|
+
let {
|
|
482
|
+
overflows
|
|
483
|
+
} = _ref;
|
|
484
|
+
return overflows.every(overflow => overflow <= 0);
|
|
485
|
+
})) == null ? void 0 : _placementsSortedByLe.placement;
|
|
486
|
+
const resetPlacement = placementThatFitsOnAllSides != null ? placementThatFitsOnAllSides : placementsSortedByLeastOverflow[0].placement;
|
|
487
|
+
|
|
488
|
+
if (resetPlacement !== placement) {
|
|
489
|
+
return {
|
|
490
|
+
data: {
|
|
491
|
+
index: currentIndex + 1,
|
|
492
|
+
overflows: allOverflows
|
|
493
|
+
},
|
|
494
|
+
reset: {
|
|
495
|
+
placement: resetPlacement
|
|
496
|
+
}
|
|
497
|
+
};
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
return {};
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
};
|
|
504
|
+
};
|
|
505
|
+
|
|
299
506
|
function getExpandedPlacements(placement) {
|
|
300
507
|
const oppositePlacement = getOppositePlacement(placement);
|
|
301
508
|
return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];
|
|
@@ -414,6 +621,76 @@ const flip = function (options) {
|
|
|
414
621
|
};
|
|
415
622
|
};
|
|
416
623
|
|
|
624
|
+
function getSideOffsets(overflow, rect) {
|
|
625
|
+
return {
|
|
626
|
+
top: overflow.top - rect.height,
|
|
627
|
+
right: overflow.right - rect.width,
|
|
628
|
+
bottom: overflow.bottom - rect.height,
|
|
629
|
+
left: overflow.left - rect.width
|
|
630
|
+
};
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
function isAnySideFullyClipped(overflow) {
|
|
634
|
+
return sides.some(side => overflow[side] >= 0);
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
/**
|
|
638
|
+
* Provides data to hide the floating element in applicable situations, such as
|
|
639
|
+
* when it is not in the same clipping context as the reference element.
|
|
640
|
+
* @see https://floating-ui.com/docs/hide
|
|
641
|
+
*/
|
|
642
|
+
const hide = function (_temp) {
|
|
643
|
+
let {
|
|
644
|
+
strategy = 'referenceHidden',
|
|
645
|
+
...detectOverflowOptions
|
|
646
|
+
} = _temp === void 0 ? {} : _temp;
|
|
647
|
+
return {
|
|
648
|
+
name: 'hide',
|
|
649
|
+
|
|
650
|
+
async fn(middlewareArguments) {
|
|
651
|
+
const {
|
|
652
|
+
rects
|
|
653
|
+
} = middlewareArguments;
|
|
654
|
+
|
|
655
|
+
switch (strategy) {
|
|
656
|
+
case 'referenceHidden':
|
|
657
|
+
{
|
|
658
|
+
const overflow = await detectOverflow(middlewareArguments, { ...detectOverflowOptions,
|
|
659
|
+
elementContext: 'reference'
|
|
660
|
+
});
|
|
661
|
+
const offsets = getSideOffsets(overflow, rects.reference);
|
|
662
|
+
return {
|
|
663
|
+
data: {
|
|
664
|
+
referenceHiddenOffsets: offsets,
|
|
665
|
+
referenceHidden: isAnySideFullyClipped(offsets)
|
|
666
|
+
}
|
|
667
|
+
};
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
case 'escaped':
|
|
671
|
+
{
|
|
672
|
+
const overflow = await detectOverflow(middlewareArguments, { ...detectOverflowOptions,
|
|
673
|
+
altBoundary: true
|
|
674
|
+
});
|
|
675
|
+
const offsets = getSideOffsets(overflow, rects.floating);
|
|
676
|
+
return {
|
|
677
|
+
data: {
|
|
678
|
+
escapedOffsets: offsets,
|
|
679
|
+
escaped: isAnySideFullyClipped(offsets)
|
|
680
|
+
}
|
|
681
|
+
};
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
default:
|
|
685
|
+
{
|
|
686
|
+
return {};
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
};
|
|
692
|
+
};
|
|
693
|
+
|
|
417
694
|
function convertValueToCoords(placement, rects, value, rtl) {
|
|
418
695
|
if (rtl === void 0) {
|
|
419
696
|
rtl = false;
|
|
@@ -490,6 +767,356 @@ const offset = function (value) {
|
|
|
490
767
|
};
|
|
491
768
|
};
|
|
492
769
|
|
|
770
|
+
function getCrossAxis(axis) {
|
|
771
|
+
return axis === 'x' ? 'y' : 'x';
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
/**
|
|
775
|
+
* Shifts the floating element in order to keep it in view when it will overflow
|
|
776
|
+
* a clipping boundary.
|
|
777
|
+
* @see https://floating-ui.com/docs/shift
|
|
778
|
+
*/
|
|
779
|
+
const shift = function (options) {
|
|
780
|
+
if (options === void 0) {
|
|
781
|
+
options = {};
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
return {
|
|
785
|
+
name: 'shift',
|
|
786
|
+
options,
|
|
787
|
+
|
|
788
|
+
async fn(middlewareArguments) {
|
|
789
|
+
const {
|
|
790
|
+
x,
|
|
791
|
+
y,
|
|
792
|
+
placement
|
|
793
|
+
} = middlewareArguments;
|
|
794
|
+
const {
|
|
795
|
+
mainAxis: checkMainAxis = true,
|
|
796
|
+
crossAxis: checkCrossAxis = false,
|
|
797
|
+
limiter = {
|
|
798
|
+
fn: _ref => {
|
|
799
|
+
let {
|
|
800
|
+
x,
|
|
801
|
+
y
|
|
802
|
+
} = _ref;
|
|
803
|
+
return {
|
|
804
|
+
x,
|
|
805
|
+
y
|
|
806
|
+
};
|
|
807
|
+
}
|
|
808
|
+
},
|
|
809
|
+
...detectOverflowOptions
|
|
810
|
+
} = options;
|
|
811
|
+
const coords = {
|
|
812
|
+
x,
|
|
813
|
+
y
|
|
814
|
+
};
|
|
815
|
+
const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);
|
|
816
|
+
const mainAxis = getMainAxisFromPlacement(getSide(placement));
|
|
817
|
+
const crossAxis = getCrossAxis(mainAxis);
|
|
818
|
+
let mainAxisCoord = coords[mainAxis];
|
|
819
|
+
let crossAxisCoord = coords[crossAxis];
|
|
820
|
+
|
|
821
|
+
if (checkMainAxis) {
|
|
822
|
+
const minSide = mainAxis === 'y' ? 'top' : 'left';
|
|
823
|
+
const maxSide = mainAxis === 'y' ? 'bottom' : 'right';
|
|
824
|
+
const min = mainAxisCoord + overflow[minSide];
|
|
825
|
+
const max = mainAxisCoord - overflow[maxSide];
|
|
826
|
+
mainAxisCoord = within(min, mainAxisCoord, max);
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
if (checkCrossAxis) {
|
|
830
|
+
const minSide = crossAxis === 'y' ? 'top' : 'left';
|
|
831
|
+
const maxSide = crossAxis === 'y' ? 'bottom' : 'right';
|
|
832
|
+
const min = crossAxisCoord + overflow[minSide];
|
|
833
|
+
const max = crossAxisCoord - overflow[maxSide];
|
|
834
|
+
crossAxisCoord = within(min, crossAxisCoord, max);
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
const limitedCoords = limiter.fn({ ...middlewareArguments,
|
|
838
|
+
[mainAxis]: mainAxisCoord,
|
|
839
|
+
[crossAxis]: crossAxisCoord
|
|
840
|
+
});
|
|
841
|
+
return { ...limitedCoords,
|
|
842
|
+
data: {
|
|
843
|
+
x: limitedCoords.x - x,
|
|
844
|
+
y: limitedCoords.y - y
|
|
845
|
+
}
|
|
846
|
+
};
|
|
847
|
+
}
|
|
848
|
+
|
|
849
|
+
};
|
|
850
|
+
};
|
|
851
|
+
|
|
852
|
+
/**
|
|
853
|
+
* Built-in `limiter` that will stop `shift()` at a certain point.
|
|
854
|
+
*/
|
|
855
|
+
const limitShift = function (options) {
|
|
856
|
+
if (options === void 0) {
|
|
857
|
+
options = {};
|
|
858
|
+
}
|
|
859
|
+
|
|
860
|
+
return {
|
|
861
|
+
options,
|
|
862
|
+
|
|
863
|
+
fn(middlewareArguments) {
|
|
864
|
+
const {
|
|
865
|
+
x,
|
|
866
|
+
y,
|
|
867
|
+
placement,
|
|
868
|
+
rects,
|
|
869
|
+
middlewareData
|
|
870
|
+
} = middlewareArguments;
|
|
871
|
+
const {
|
|
872
|
+
offset = 0,
|
|
873
|
+
mainAxis: checkMainAxis = true,
|
|
874
|
+
crossAxis: checkCrossAxis = true
|
|
875
|
+
} = options;
|
|
876
|
+
const coords = {
|
|
877
|
+
x,
|
|
878
|
+
y
|
|
879
|
+
};
|
|
880
|
+
const mainAxis = getMainAxisFromPlacement(placement);
|
|
881
|
+
const crossAxis = getCrossAxis(mainAxis);
|
|
882
|
+
let mainAxisCoord = coords[mainAxis];
|
|
883
|
+
let crossAxisCoord = coords[crossAxis];
|
|
884
|
+
const rawOffset = typeof offset === 'function' ? offset({ ...rects,
|
|
885
|
+
placement
|
|
886
|
+
}) : offset;
|
|
887
|
+
const computedOffset = typeof rawOffset === 'number' ? {
|
|
888
|
+
mainAxis: rawOffset,
|
|
889
|
+
crossAxis: 0
|
|
890
|
+
} : {
|
|
891
|
+
mainAxis: 0,
|
|
892
|
+
crossAxis: 0,
|
|
893
|
+
...rawOffset
|
|
894
|
+
};
|
|
895
|
+
|
|
896
|
+
if (checkMainAxis) {
|
|
897
|
+
const len = mainAxis === 'y' ? 'height' : 'width';
|
|
898
|
+
const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;
|
|
899
|
+
const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;
|
|
900
|
+
|
|
901
|
+
if (mainAxisCoord < limitMin) {
|
|
902
|
+
mainAxisCoord = limitMin;
|
|
903
|
+
} else if (mainAxisCoord > limitMax) {
|
|
904
|
+
mainAxisCoord = limitMax;
|
|
905
|
+
}
|
|
906
|
+
}
|
|
907
|
+
|
|
908
|
+
if (checkCrossAxis) {
|
|
909
|
+
var _middlewareData$offse, _middlewareData$offse2, _middlewareData$offse3, _middlewareData$offse4;
|
|
910
|
+
|
|
911
|
+
const len = mainAxis === 'y' ? 'width' : 'height';
|
|
912
|
+
const isOriginSide = ['top', 'left'].includes(getSide(placement));
|
|
913
|
+
const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? (_middlewareData$offse = (_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) != null ? _middlewareData$offse : 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);
|
|
914
|
+
const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : (_middlewareData$offse3 = (_middlewareData$offse4 = middlewareData.offset) == null ? void 0 : _middlewareData$offse4[crossAxis]) != null ? _middlewareData$offse3 : 0) - (isOriginSide ? computedOffset.crossAxis : 0);
|
|
915
|
+
|
|
916
|
+
if (crossAxisCoord < limitMin) {
|
|
917
|
+
crossAxisCoord = limitMin;
|
|
918
|
+
} else if (crossAxisCoord > limitMax) {
|
|
919
|
+
crossAxisCoord = limitMax;
|
|
920
|
+
}
|
|
921
|
+
}
|
|
922
|
+
|
|
923
|
+
return {
|
|
924
|
+
[mainAxis]: mainAxisCoord,
|
|
925
|
+
[crossAxis]: crossAxisCoord
|
|
926
|
+
};
|
|
927
|
+
}
|
|
928
|
+
|
|
929
|
+
};
|
|
930
|
+
};
|
|
931
|
+
|
|
932
|
+
/**
|
|
933
|
+
* Provides data to change the size of the floating element. For instance,
|
|
934
|
+
* prevent it from overflowing its clipping boundary or match the width of the
|
|
935
|
+
* reference element.
|
|
936
|
+
* @see https://floating-ui.com/docs/size
|
|
937
|
+
*/
|
|
938
|
+
const size = function (options) {
|
|
939
|
+
if (options === void 0) {
|
|
940
|
+
options = {};
|
|
941
|
+
}
|
|
942
|
+
|
|
943
|
+
return {
|
|
944
|
+
name: 'size',
|
|
945
|
+
options,
|
|
946
|
+
|
|
947
|
+
async fn(middlewareArguments) {
|
|
948
|
+
const {
|
|
949
|
+
placement,
|
|
950
|
+
rects,
|
|
951
|
+
platform,
|
|
952
|
+
elements
|
|
953
|
+
} = middlewareArguments;
|
|
954
|
+
const {
|
|
955
|
+
apply,
|
|
956
|
+
...detectOverflowOptions
|
|
957
|
+
} = options;
|
|
958
|
+
const overflow = await detectOverflow(middlewareArguments, detectOverflowOptions);
|
|
959
|
+
const side = getSide(placement);
|
|
960
|
+
const alignment = getAlignment(placement);
|
|
961
|
+
let heightSide;
|
|
962
|
+
let widthSide;
|
|
963
|
+
|
|
964
|
+
if (side === 'top' || side === 'bottom') {
|
|
965
|
+
heightSide = side;
|
|
966
|
+
widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';
|
|
967
|
+
} else {
|
|
968
|
+
widthSide = side;
|
|
969
|
+
heightSide = alignment === 'end' ? 'top' : 'bottom';
|
|
970
|
+
}
|
|
971
|
+
|
|
972
|
+
const xMin = max$1(overflow.left, 0);
|
|
973
|
+
const xMax = max$1(overflow.right, 0);
|
|
974
|
+
const yMin = max$1(overflow.top, 0);
|
|
975
|
+
const yMax = max$1(overflow.bottom, 0);
|
|
976
|
+
const dimensions = {
|
|
977
|
+
height: rects.floating.height - (['left', 'right'].includes(placement) ? 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max$1(overflow.top, overflow.bottom)) : overflow[heightSide]),
|
|
978
|
+
width: rects.floating.width - (['top', 'bottom'].includes(placement) ? 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max$1(overflow.left, overflow.right)) : overflow[widthSide])
|
|
979
|
+
};
|
|
980
|
+
const prevDimensions = await platform.getDimensions(elements.floating);
|
|
981
|
+
apply == null ? void 0 : apply({ ...dimensions,
|
|
982
|
+
...rects
|
|
983
|
+
});
|
|
984
|
+
const nextDimensions = await platform.getDimensions(elements.floating);
|
|
985
|
+
|
|
986
|
+
if (prevDimensions.width !== nextDimensions.width || prevDimensions.height !== nextDimensions.height) {
|
|
987
|
+
return {
|
|
988
|
+
reset: {
|
|
989
|
+
rects: true
|
|
990
|
+
}
|
|
991
|
+
};
|
|
992
|
+
}
|
|
993
|
+
|
|
994
|
+
return {};
|
|
995
|
+
}
|
|
996
|
+
|
|
997
|
+
};
|
|
998
|
+
};
|
|
999
|
+
|
|
1000
|
+
/**
|
|
1001
|
+
* Provides improved positioning for inline reference elements that can span
|
|
1002
|
+
* over multiple lines, such as hyperlinks or range selections.
|
|
1003
|
+
* @see https://floating-ui.com/docs/inline
|
|
1004
|
+
*/
|
|
1005
|
+
const inline = function (options) {
|
|
1006
|
+
if (options === void 0) {
|
|
1007
|
+
options = {};
|
|
1008
|
+
}
|
|
1009
|
+
|
|
1010
|
+
return {
|
|
1011
|
+
name: 'inline',
|
|
1012
|
+
options,
|
|
1013
|
+
|
|
1014
|
+
async fn(middlewareArguments) {
|
|
1015
|
+
var _await$platform$getCl;
|
|
1016
|
+
|
|
1017
|
+
const {
|
|
1018
|
+
placement,
|
|
1019
|
+
elements,
|
|
1020
|
+
rects,
|
|
1021
|
+
platform,
|
|
1022
|
+
strategy
|
|
1023
|
+
} = middlewareArguments; // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a
|
|
1024
|
+
// ClientRect's bounds, despite the event listener being triggered. A
|
|
1025
|
+
// padding of 2 seems to handle this issue.
|
|
1026
|
+
|
|
1027
|
+
const {
|
|
1028
|
+
padding = 2,
|
|
1029
|
+
x,
|
|
1030
|
+
y
|
|
1031
|
+
} = options;
|
|
1032
|
+
const fallback = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({
|
|
1033
|
+
rect: rects.reference,
|
|
1034
|
+
offsetParent: await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating)),
|
|
1035
|
+
strategy
|
|
1036
|
+
}) : rects.reference);
|
|
1037
|
+
const clientRects = (_await$platform$getCl = await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) != null ? _await$platform$getCl : [];
|
|
1038
|
+
const paddingObject = getSideObjectFromPadding(padding);
|
|
1039
|
+
|
|
1040
|
+
function getBoundingClientRect() {
|
|
1041
|
+
// There are two rects and they are disjoined
|
|
1042
|
+
if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {
|
|
1043
|
+
var _clientRects$find;
|
|
1044
|
+
|
|
1045
|
+
// Find the first rect in which the point is fully inside
|
|
1046
|
+
return (_clientRects$find = clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom)) != null ? _clientRects$find : fallback;
|
|
1047
|
+
} // There are 2 or more connected rects
|
|
1048
|
+
|
|
1049
|
+
|
|
1050
|
+
if (clientRects.length >= 2) {
|
|
1051
|
+
if (getMainAxisFromPlacement(placement) === 'x') {
|
|
1052
|
+
const firstRect = clientRects[0];
|
|
1053
|
+
const lastRect = clientRects[clientRects.length - 1];
|
|
1054
|
+
const isTop = getSide(placement) === 'top';
|
|
1055
|
+
const top = firstRect.top;
|
|
1056
|
+
const bottom = lastRect.bottom;
|
|
1057
|
+
const left = isTop ? firstRect.left : lastRect.left;
|
|
1058
|
+
const right = isTop ? firstRect.right : lastRect.right;
|
|
1059
|
+
const width = right - left;
|
|
1060
|
+
const height = bottom - top;
|
|
1061
|
+
return {
|
|
1062
|
+
top,
|
|
1063
|
+
bottom,
|
|
1064
|
+
left,
|
|
1065
|
+
right,
|
|
1066
|
+
width,
|
|
1067
|
+
height,
|
|
1068
|
+
x: left,
|
|
1069
|
+
y: top
|
|
1070
|
+
};
|
|
1071
|
+
}
|
|
1072
|
+
|
|
1073
|
+
const isLeftSide = getSide(placement) === 'left';
|
|
1074
|
+
const maxRight = max$1(...clientRects.map(rect => rect.right));
|
|
1075
|
+
const minLeft = min$1(...clientRects.map(rect => rect.left));
|
|
1076
|
+
const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);
|
|
1077
|
+
const top = measureRects[0].top;
|
|
1078
|
+
const bottom = measureRects[measureRects.length - 1].bottom;
|
|
1079
|
+
const left = minLeft;
|
|
1080
|
+
const right = maxRight;
|
|
1081
|
+
const width = right - left;
|
|
1082
|
+
const height = bottom - top;
|
|
1083
|
+
return {
|
|
1084
|
+
top,
|
|
1085
|
+
bottom,
|
|
1086
|
+
left,
|
|
1087
|
+
right,
|
|
1088
|
+
width,
|
|
1089
|
+
height,
|
|
1090
|
+
x: left,
|
|
1091
|
+
y: top
|
|
1092
|
+
};
|
|
1093
|
+
}
|
|
1094
|
+
|
|
1095
|
+
return fallback;
|
|
1096
|
+
}
|
|
1097
|
+
|
|
1098
|
+
const resetRects = await platform.getElementRects({
|
|
1099
|
+
reference: {
|
|
1100
|
+
getBoundingClientRect
|
|
1101
|
+
},
|
|
1102
|
+
floating: elements.floating,
|
|
1103
|
+
strategy
|
|
1104
|
+
});
|
|
1105
|
+
|
|
1106
|
+
if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {
|
|
1107
|
+
return {
|
|
1108
|
+
reset: {
|
|
1109
|
+
rects: resetRects
|
|
1110
|
+
}
|
|
1111
|
+
};
|
|
1112
|
+
}
|
|
1113
|
+
|
|
1114
|
+
return {};
|
|
1115
|
+
}
|
|
1116
|
+
|
|
1117
|
+
};
|
|
1118
|
+
};
|
|
1119
|
+
|
|
493
1120
|
function isWindow(value) {
|
|
494
1121
|
return (value == null ? void 0 : value.toString()) === '[object Window]';
|
|
495
1122
|
}
|